Imported Upstream version 2.59.0
authorHyunjee Kim <hj0426.kim@samsung.com>
Tue, 3 Dec 2019 01:41:40 +0000 (10:41 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Tue, 3 Dec 2019 01:41:40 +0000 (10:41 +0900)
299 files changed:
.gitignore
.gitlab-ci.yml
.gitlab-ci/Dockerfile
.gitlab-ci/README.md [new file with mode: 0644]
.gitlab-ci/coverage-docker.sh
.gitlab-ci/lcovrc [new file with mode: 0644]
.gitlab-ci/run-docker.sh
.gitlab-ci/test-msvc.bat
.gitlab-ci/test-msys2.sh
CONTRIBUTING.md
ChangeLog.pre-1-2 [deleted file]
ChangeLog.pre-2-0 [deleted file]
ChangeLog.pre-2-10 [deleted file]
ChangeLog.pre-2-12 [deleted file]
ChangeLog.pre-2-14 [deleted file]
ChangeLog.pre-2-16 [deleted file]
ChangeLog.pre-2-18 [deleted file]
ChangeLog.pre-2-2 [deleted file]
ChangeLog.pre-2-20 [deleted file]
ChangeLog.pre-2-4 [deleted file]
ChangeLog.pre-2-6 [deleted file]
ChangeLog.pre-2-8 [deleted file]
Makefile.am
NEWS
README.win32
build/ChangeLog [deleted file]
build/Makefile.am
configure.ac
docs/reference/ChangeLog [deleted file]
docs/reference/gio/Makefile.am
docs/reference/gio/gio-docs.xml
docs/reference/gio/gio-sections.txt
docs/reference/gio/glib-compile-resources.xml
docs/reference/gio/meson.build
docs/reference/gio/overview.xml
docs/reference/glib/Makefile.am
docs/reference/glib/glib-docs.xml
docs/reference/glib/glib-sections.txt
docs/reference/glib/gvariant-text.xml
docs/reference/glib/meson.build
docs/reference/gobject/Makefile.am
docs/reference/gobject/glib-mkenums.xml
docs/reference/gobject/meson.build
docs/reference/gobject/tut_howto.xml
fuzzing/README.md [new file with mode: 0644]
fuzzing/driver.c [new file with mode: 0644]
fuzzing/fuzz.h [new file with mode: 0644]
fuzzing/fuzz_bookmark.c [new file with mode: 0644]
fuzzing/fuzz_bookmark.corpus [new file with mode: 0644]
fuzzing/fuzz_dbus_message.c [new file with mode: 0644]
fuzzing/fuzz_key.c [new file with mode: 0644]
fuzzing/fuzz_key.corpus [new file with mode: 0644]
fuzzing/fuzz_variant_binary.c [new file with mode: 0644]
fuzzing/fuzz_variant_text.c [new file with mode: 0644]
fuzzing/fuzz_variant_text.dict [new file with mode: 0644]
fuzzing/meson.build [new file with mode: 0644]
gio/.gitignore
gio/ChangeLog [deleted file]
gio/gappinfo.c
gio/gapplication.c
gio/gapplication.h
gio/gapplicationimpl-dbus.c
gio/gcancellable.c
gio/gcontenttype.c
gio/gcontenttype.h
gio/gdatainputstream.c
gio/gdbus-2.0/codegen/codegen.py
gio/gdbus-2.0/codegen/dbustypes.py
gio/gdbusconnection.c
gio/gdbusconnection.h
gio/gdbusintrospection.c
gio/gdbusmessage.c
gio/gdbusproxy.c
gio/gdesktopappinfo.c
gio/gdesktopappinfo.h
gio/gdtlsconnection.c
gio/gdtlsconnection.h
gio/gfileinfo-priv.h
gio/gfileinfo.c
gio/gfileinfo.h
gio/gioenums.h
gio/glib-compile-resources.c
gio/gliststore.c
gio/glocalfileinfo.c
gio/glocalfilemonitor.c
gio/gmountoperation.c
gio/gmountoperation.h
gio/gnetworkaddress.c
gio/gnetworkmonitornetlink.c
gio/gnetworkmonitornm.c
gio/gnetworkservice.c
gio/gproxyaddressenumerator.c
gio/gproxyaddressenumerator.h
gio/gresolver.c
gio/gresolver.h
gio/gseekable.c
gio/gsettings.c
gio/gsocket.c
gio/gsocketaddressenumerator.c
gio/gsocketaddressenumerator.h
gio/gsocketclient.c
gio/gsubprocess.c
gio/gtask.c
gio/gtask.h
gio/gthreadedresolver.c
gio/gtlsbackend.c
gio/gtlsbackend.h
gio/gtlscertificate.c
gio/gtlsconnection.c
gio/gtlsconnection.h
gio/gtlsdatabase.c
gio/gunixmounts.c
gio/gunixmounts.h
gio/gvolume.c
gio/gvolume.h
gio/gvolumemonitor.c
gio/gwin32appinfo.c
gio/meson.build
gio/tests/.gitignore
gio/tests/Makefile.am
gio/tests/actions.c
gio/tests/appinfo-test-gnome.desktop.in [moved from gio/tests/appinfo-test-gnome.desktop with 64% similarity]
gio/tests/appinfo-test-notgnome.desktop.in [moved from gio/tests/appinfo-test-notgnome.desktop with 63% similarity]
gio/tests/appinfo-test-static.desktop [new file with mode: 0644]
gio/tests/appinfo-test.c
gio/tests/appinfo-test.desktop.in [moved from gio/tests/appinfo-test.desktop with 83% similarity]
gio/tests/appinfo-test2.desktop.in [moved from gio/tests/appinfo-test2.desktop with 81% similarity]
gio/tests/appinfo.c
gio/tests/appmonitor.c
gio/tests/cert-tests/cert-crlf.pem [new file with mode: 0644]
gio/tests/cert-tests/key-crlf.pem [new file with mode: 0644]
gio/tests/cert-tests/key8enc.pem [new file with mode: 0644]
gio/tests/cert-tests/key_missing-footer.pem [new file with mode: 0644]
gio/tests/cert-tests/key_missing-header.pem [new file with mode: 0644]
gio/tests/data-output-stream.c
gio/tests/desktop-app-info.c
gio/tests/g-file-info-filesystem-readonly.c
gio/tests/g-file-info.c
gio/tests/gapplication.c
gio/tests/gdbus-example-objectmanager-client.c
gio/tests/gdbus-example-objectmanager-server.c
gio/tests/gdbus-example-peer.c [changed mode: 0644->0755]
gio/tests/gdbus-export.c
gio/tests/gdbus-message.c
gio/tests/gdbus-object-manager-example/Makefile.am
gio/tests/gdbus-object-manager-example/meson.build
gio/tests/gdbus-peer.c
gio/tests/gdbus-proxy-unique-name.c [new file with mode: 0644]
gio/tests/gdbus-serialization.c
gio/tests/gdbus-test-codegen.c
gio/tests/gdbus-test-fixture.c
gio/tests/gen-big-test-resource.py [new file with mode: 0644]
gio/tests/glistmodel.c
gio/tests/gmenumodel.c
gio/tests/gsocketclient-slow.c [new file with mode: 0644]
gio/tests/gsubprocess-testprog.c
gio/tests/gsubprocess.c
gio/tests/gtesttlsbackend.c
gio/tests/meson.build
gio/tests/mimeapps.c
gio/tests/mock-resolver.c [new file with mode: 0644]
gio/tests/mock-resolver.h [new file with mode: 0644]
gio/tests/network-address.c
gio/tests/network-monitor-race.c
gio/tests/pollable.c
gio/tests/proxy-test.c
gio/tests/resources.c
gio/tests/sleepy-stream.c
gio/tests/slow-connect-preload.c [new file with mode: 0644]
gio/tests/static-link.py [new file with mode: 0755]
gio/tests/static-link/app.c [new file with mode: 0644]
gio/tests/static-link/meson.build [new file with mode: 0644]
gio/tests/task.c
gio/tests/test-codegen.xml
gio/tests/test2.gresource.xml
gio/tests/test5.gresource.xml [new file with mode: 0644]
gio/tests/tls-certificate.c
gio/tests/tls-database.c [new file with mode: 0644]
gio/tests/trash.c
gio/xdgmime/xdgmime.c
gio/xdgmime/xdgmime.h
glib.supp
glib/Makefile.am
glib/docs.c
glib/garcbox.c
glib/garray.c
glib/gbase64.c
glib/gbookmarkfile.c
glib/gcharset.c
glib/gconvert.c
glib/gdatetime.c
glib/genviron.c
glib/gfileutils.c
glib/ghash.c
glib/giochannel.c
glib/gkeyfile.c
glib/glib-autocleanups.h
glib/glib-init.c
glib/glib-private.h
glib/glib_probes.d
glib/gmacros.h
glib/gmain.c
glib/gmarkup.c
glib/gmem.c
glib/gmessages.c
glib/gmessages.h
glib/grcbox.c
glib/grcboxprivate.h
glib/grefcount.c
glib/grefcount.h
glib/grefstring.h
glib/gregex.c
glib/gstdio.c
glib/gstrfuncs.c
glib/gstrfuncs.h
glib/gtestutils.c
glib/gtestutils.h
glib/gthread.c
glib/gthread.h
glib/gthreadpool.c
glib/gtimezone.c
glib/gunicode.h
glib/gunicodeprivate.h
glib/gutf8.c
glib/gutils.c
glib/gutils.h
glib/gutilsprivate.h [new file with mode: 0644]
glib/gvariant-core.c
glib/gvariant-parser.c
glib/gvariant-serialiser.c
glib/gvariant-serialiser.h
glib/gvariant.c
glib/gvarianttype.c
glib/gvarianttype.h
glib/gvarianttypeinfo.c
glib/gvarianttypeinfo.h
glib/gversionmacros.h
glib/meson.build
glib/tests/autoptr.c
glib/tests/charset.c
glib/tests/date.c
glib/tests/echo-script
glib/tests/environment.c
glib/tests/fileutils.c
glib/tests/gdatetime.c
glib/tests/gvariant.c
glib/tests/gwakeuptest.c
glib/tests/hash.c
glib/tests/keyfile.c
glib/tests/meson.build
glib/tests/rcbox.c
glib/tests/shell.c
glib/tests/strfuncs.c
glib/tests/testing.c
glib/tests/timeout.c
glib/tests/unix.c
glib/tests/utf8-validate.c
gmodule/ChangeLog [deleted file]
gmodule/meson.build
gobject/ChangeLog [deleted file]
gobject/gbinding.c
gobject/gclosure.c
gobject/glib-mkenums.in
gobject/gobject.c
gobject/meson.build
gobject/tests/Makefile.am
gobject/tests/autoptr.c [new file with mode: 0644]
gobject/tests/meson.build
gobject/tests/mkenums.py
gobject/tests/taptestrunner.py
gthread/ChangeLog [deleted file]
gthread/meson.build
meson.build
meson_options.txt
po/ChangeLog [deleted file]
po/Makefile.in.in
po/cs.po
po/de.po
po/el.po
po/es.po
po/eu.po
po/fur.po
po/id.po
po/it.po
po/lv.po
po/nb.po
po/oc.po
po/pt_BR.po
po/sl.po
po/sv.po
po/tr.po
subprojects/libffi.wrap
tests/gio-test.c
tests/gobject/meson.build
tests/mainloop-test.c
tests/meson.build
tests/refcount/closures.c
tests/refcount/meson.build
tests/refcount/signals.c

index 0caa0c0..111db82 100644 (file)
@@ -51,7 +51,6 @@ py-compile
 test-driver
 
 INSTALL
-ChangeLog
 /glib-lcov.info
 /glib-lcov/
 
index e4b4283..bb16a98 100644 (file)
@@ -1,4 +1,4 @@
-image: registry.gitlab.gnome.org/gnome/glib/2-58:v1
+image: registry.gitlab.gnome.org/gnome/glib/master:v11
 
 stages:
   - build
@@ -12,6 +12,7 @@ cache:
 variables:
   MESON_TEST_TIMEOUT_MULTIPLIER: 2
   G_MESSAGES_DEBUG: all
+  MESON_COMMON_OPTIONS: "--buildtype debug --fatal-meson-warnings"
 
 fedora-x86_64:
   stage: build
@@ -20,12 +21,27 @@ fedora-x86_64:
   variables:
     CFLAGS: "-coverage -ftest-coverage -fprofile-arcs"
   script:
-    - meson --buildtype debug --werror -Dsystemtap=true -Ddtrace=true -Dfam=true _build .
+    - meson ${MESON_COMMON_OPTIONS}
+            --werror
+            --default-library=both
+            --prefix=$HOME/glib-installed
+            --libdir=lib
+            -Dsystemtap=true
+            -Ddtrace=true
+            -Dfam=true
+            -Dinstalled_tests=true
+            _build
     - ninja -C _build
     - mkdir -p _coverage
-    - lcov --rc lcov_branch_coverage=1 --directory _build --capture --initial --output-file "_coverage/${CI_JOB_NAME}-baseline.lcov"
+    - lcov --config-file .gitlab-ci/lcovrc --directory _build --capture --initial --output-file "_coverage/${CI_JOB_NAME}-baseline.lcov"
     - meson test -C _build --timeout-multiplier ${MESON_TEST_TIMEOUT_MULTIPLIER}
-    - lcov --rc lcov_branch_coverage=1 --directory _build --capture --output-file "_coverage/${CI_JOB_NAME}.lcov"
+    - lcov --config-file .gitlab-ci/lcovrc --directory _build --capture --output-file "_coverage/${CI_JOB_NAME}.lcov"
+    # FIXME: We should run all installed tests, but do only this one for now
+    # because it cannot run uninstalled. Reconfigure with dtrace disabled
+    # because it breaks static link.
+    - meson configure -Ddtrace=false _build
+    - ninja -C _build install
+    - GLIB_TEST_COMPILATION=1 $HOME/glib-installed/libexec/installed-tests/glib/static-link.py $HOME/glib-installed/lib/pkgconfig
   artifacts:
     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
     when: always
@@ -76,21 +92,21 @@ cross-android_api21_arm64:
   <<: *cross-template
   script:
     # FIXME: add --werror
-    - meson --cross-file=/opt/cross_file_android_arm64_21.txt -Diconv=gnu -Dinternal_pcre=true --buildtype debug _build
+    - meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_21.txt -Diconv=gnu -Dinternal_pcre=true _build
     - ninja -C _build
 
 cross-android_api28_arm64:
   <<: *cross-template
   script:
     # FIXME: add --werror
-    - meson --cross-file=/opt/cross_file_android_arm64_28.txt -Dinternal_pcre=true --buildtype debug _build
+    - meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_android_arm64_28.txt -Dinternal_pcre=true _build
     - ninja -C _build
 
 cross-mingw64:
   <<: *cross-template
   script:
     # FIXME: Add --werror
-    - meson --cross-file=/opt/cross_file_mingw64.txt --buildtype debug _build
+    - meson ${MESON_COMMON_OPTIONS} --cross-file=/opt/cross_file_mingw64.txt _build
     - ninja -C _build
 
 msys2-mingw32:
@@ -127,8 +143,9 @@ vs2017-x64:
       - _build/meson-logs
 
 freebsd-11-x86_64:
-  when: manual
   stage: build
+  only:
+    - branches@GNOME/glib
   tags:
     # To run a FreeBSD builder, install gitlab-runner package and start both
     # gitlab-runner and dbus service because we need /var/lib/dbus/machine-id.
@@ -150,18 +167,17 @@ freebsd-11-x86_64:
     # FreeBSD iconv doesn't handle transliteration, so we use GNU libiconv here.
     # FreeBSD supports xattr, but its API is different from Linux xattr.
     # FIXME: extattr(2) support: https://gitlab.gnome.org/GNOME/glib/issues/1404
-    - meson -Db_lundef=false -Diconv=gnu -Dxattr=false --buildtype debug _build
+    - meson ${MESON_COMMON_OPTIONS} -Db_lundef=false -Diconv=gnu -Dxattr=false _build
     - ninja -C _build
     - meson test -C _build --timeout-multiplier "${MESON_TEST_TIMEOUT_MULTIPLIER}"
-  # FIXME: Remove this when we have a stable FreeBSD runner
-  # https://gitlab.gnome.org/Infrastructure/GitLab/issues/286
-  allow_failure: true
   except:
     - tags
   artifacts:
     name: "glib-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
     when: always
     paths:
+      - "_build/config.h"
+      - "_build/glib/glibconfig.h"
       - "_build/meson-logs"
 
 coverage:
@@ -191,7 +207,7 @@ dist-job:
   only:
     - tags
   script:
-    - meson --buildtype release -Dgtk_doc=true -Dman=true _build
+    - meson --buildtype release --fatal-meson-warnings -Dgtk_doc=true -Dman=true _build
     - cd _build
     - ninja dist
     - ninja glib-doc gobject-doc gio-doc
index 4d7efa3..c03a9ab 100644 (file)
@@ -3,9 +3,11 @@ FROM fedora:27
 RUN dnf -y install \
     autoconf \
     automake \
+    bindfs \
     desktop-file-utils \
     elfutils-libelf-devel \
     findutils \
+    fuse \
     gamin-devel \
     gcc \
     gcc-c++ \
@@ -13,6 +15,20 @@ RUN dnf -y install \
     git \
     glibc-devel \
     glibc-headers \
+    glibc-langpack-de \
+    glibc-langpack-el \
+    glibc-langpack-el \
+    glibc-langpack-en \
+    glibc-langpack-es \
+    glibc-langpack-es \
+    glibc-langpack-fa \
+    glibc-langpack-fr \
+    glibc-langpack-hr \
+    glibc-langpack-ja \
+    glibc-langpack-lt \
+    glibc-langpack-pl \
+    glibc-langpack-ru \
+    glibc-langpack-tr \
     gtk-doc \
     itstool \
     lcov \
@@ -52,7 +68,7 @@ RUN rm -rf $ANDROID_NDK_PATH
 
 COPY cross_file_mingw64.txt /opt
 
-RUN pip3 install meson==0.47.0
+RUN pip3 install meson==0.48.0
 
 ARG HOST_USER_ID=5555
 ENV HOST_USER_ID ${HOST_USER_ID}
diff --git a/.gitlab-ci/README.md b/.gitlab-ci/README.md
new file mode 100644 (file)
index 0000000..41dfd75
--- /dev/null
@@ -0,0 +1,23 @@
+# CI support stuff
+
+## Docker image
+
+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
+2. Edit `.gitlab-ci/run-docker.sh` and bump the version in `TAG`
+3. Run `.gitlab-ci/run-docker.sh` to build the new image, and launch a shell
+   inside it
+    * When you're done, exit the shell in the usual way
+4. Run `.gitlab-ci/run-docker.sh --push` to upload the new image to the GNOME
+   GitLab Docker registry
+    * If this is the first time you're doing this, you'll need to log into the
+      registry
+    * If you use 2-factor authentication on your GNOME GitLab account, you'll
+      need to [create a personal access token][pat] and use that rather than
+      your normal password
+5. Edit `.gitlab-ci.yml` (in the root of this repository) to use your new
+   image
+
+[pat]: https://gitlab.gnome.org/profile/personal_access_tokens
index 63e3051..b6421be 100755 (executable)
@@ -7,14 +7,14 @@ python3 ./.gitlab-ci/fixup-cov-paths.py _coverage/*.lcov
 
 for path in _coverage/*.lcov; do
     # Remove coverage from generated code in the build directory
-    lcov --rc lcov_branch_coverage=1 -r "${path}" '*/_build/*' -o "$(pwd)/${path}"
+    lcov --config-file .gitlab-ci/lcovrc -r "${path}" '*/_build/*' -o "$(pwd)/${path}"
     # Remove any coverage from system files
-    lcov --rc lcov_branch_coverage=1 -e "${path}" "$(pwd)/*" -o "$(pwd)/${path}"
+    lcov --config-file .gitlab-ci/lcovrc -e "${path}" "$(pwd)/*" -o "$(pwd)/${path}"
 done
 
 genhtml \
     --ignore-errors=source \
-    --rc lcov_branch_coverage=1 \
+    --config-file .gitlab-ci/lcovrc \
     _coverage/*.lcov \
     -o _coverage/coverage
 
diff --git a/.gitlab-ci/lcovrc b/.gitlab-ci/lcovrc
new file mode 100644 (file)
index 0000000..3901f81
--- /dev/null
@@ -0,0 +1,13 @@
+# lcov and genhtml configuration
+# See http://ltp.sourceforge.net/coverage/lcov/lcovrc.5.php
+
+# Always enable branch coverage
+lcov_branch_coverage = 1
+
+# Exclude precondition assertions, as we can never reasonably get full branch
+# coverage of them, as they should never normally fail.
+# See https://github.com/linux-test-project/lcov/issues/44
+lcov_excl_br_line = LCOV_EXCL_BR_LINE|g_return_if_fail|g_return_val_if_fail|g_assert|g_assert_
+
+# Similarly for unreachable assertions.
+lcov_excl_line = LCOV_EXCL_LINE|g_return_if_reached|g_return_val_if_reached|g_assert_not_reached
\ No newline at end of file
index df4e049..b7f1a9a 100755 (executable)
@@ -2,8 +2,9 @@
 
 set -e
 
-TAG="registry.gitlab.gnome.org/gnome/glib/2-58:v1"
+TAG="registry.gitlab.gnome.org/gnome/glib/master:v11"
 
+cd "$(dirname "$0")"
 docker build --build-arg HOST_USER_ID="$UID" --tag "${TAG}" \
     --file "Dockerfile" .
 
index 9b674f7..c3b19cd 100644 (file)
@@ -5,7 +5,7 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary
 @echo on
 
 :: FIXME: make warnings fatal
-pip3 install --upgrade --user meson==0.47.0  || goto :error
+pip3 install --upgrade --user meson==0.48.0  || goto :error
 meson _build || goto :error
 ninja -C _build || goto :error
 
index 48e18e9..ed129c0 100755 (executable)
@@ -33,7 +33,7 @@ mkdir -p _coverage
 mkdir -p _ccache
 export CCACHE_BASEDIR="$(pwd)"
 export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
-pip3 install --upgrade --user meson==0.47.0
+pip3 install --upgrade --user meson==0.48.0
 export PATH="$HOME/.local/bin:$PATH"
 export CFLAGS="-coverage -ftest-coverage -fprofile-arcs"
 DIR="$(pwd)"
@@ -44,7 +44,7 @@ ninja
 
 "${LCOV}" \
     --quiet \
-    --rc lcov_branch_coverage=1 \
+    --config-file "${DIR}"/.gitlab-ci/lcovrc \
     --directory "${DIR}/_build" \
     --capture \
     --initial \
@@ -55,7 +55,7 @@ meson test --timeout-multiplier ${MESON_TEST_TIMEOUT_MULTIPLIER} || true
 
 "${LCOV}" \
     --quiet \
-    --rc lcov_branch_coverage=1 \
+    --config-file "${DIR}"/.gitlab-ci/lcovrc \
     --directory "${DIR}/_build" \
     --capture \
     --output-file "${DIR}/_coverage/${CI_JOB_NAME}.lcov"
index 5345964..657566e 100644 (file)
@@ -25,10 +25,9 @@ people committing to GLib to follow a few rules:
 
 1) Ask _first_.
 
-2) With git, we no longer maintain a ChangeLog file, but you are expected
-   to produce a meaningful commit message. Changes without a sufficient
-   commit message will be reverted. See below for the expected format
-   of commit messages.
+2) You are expected to produce a meaningful commit message.
+   Changes without a sufficient commit message will be reverted. See below for
+   the expected format of commit messages.
 
 Notes:
 
diff --git a/ChangeLog.pre-1-2 b/ChangeLog.pre-1-2
deleted file mode 100644 (file)
index e5b481a..0000000
+++ /dev/null
@@ -1,2880 +0,0 @@
-Sun Feb 21 22:11:51 CST 1999  Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.2.0
-
-       * AUTHORS: updated
-
-Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * *.[ch]: inserted additional note to look for ChangeLog and
-         AUTHORS file for a log of modifications.
-
-Sun Feb 21 14:01:00 1999  Dr Mike <drmike@redhat.com>
-
-       * Made specfile generated, tweaked slightly
-       
-Thu Feb 18 08:24:12 1999  Tim Janik  <timj@gtk.org>
-
-       * gmem.c (g_realloc): plugged a memory leak, reported by Koen D'Hondt
-       <ripley@xs4all.nl> on 15 Oct 1998. allocate inital block from realloc.
-
-1999-02-17  Elliot Lee  <sopwith@redhat.com>
-
-       * glib.spec: Do --enable-debug=no for the .rpm's.
-
-Wed Feb 17 17:04:06 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32: Must define HAVE_PTHREAD_GETSPECIFIC_POSIX.
-
-Tue Feb 16 14:08:59 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * NEWS
-         README
-         INSTALL
-         config.h.win32
-         configure.in
-         glib.spec
-         glibconfig.h.win32
-         docs/glib-config.1: version=1.1.16 
-
-       * Released GLib 1.1.16
-
-1999-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h, glibconfig.h.win32, configure.in: Changed signature of
-       all g_static_mutex_* functions to take a pointer rather than the
-       struct itself. This is not an issue at the moment, because those
-       funcs are really macros, but is it un'G'ish and might fall on our
-       feet in the future.
-
-Mon Feb 15 07:45:54 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in (--enable-debug): default to yes for development trees.
-
-Mon Feb 15 06:18:58 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h: return guints instead of gints for g_hash_table_size
-       and g_hash_table_foreach_remove.
-
-Wed Feb 10 12:01:42 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in: don't reset G_MODULE_IMPL, so it can be overridden
-       from the command line.
-
-1999-02-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h: s/G_LOCK_DECLARE/G_LOCK_DEFINE/ throuhout glib. Added
-       G_LOCK_EXTERN macro to declare a lock externally.
-
-Wed Feb 10 06:20:30 1999  Tim Janik  <timj@gtk.org>
-
-       * gmutex.c (g_static_private_set): invoke destroy notifier when
-       overwriting values, initialize new array fields with NULL.
-       (g_static_private_free_data): do not skip destroy notification for
-       data == NULL.
-
-       * gutils.c (g_direct_equal): compare pointer values directly instead
-       of just their guint values which is a loosing conversion for
-       sizeof(gpointer)==8 systems.
-       (g_get_any_init): restructured code so we don't use endless loops like
-       while (1), which boil down to an ugly alias for goto.
-       strip ,.* from the real name.
-
-February 9, 1999 sopwith@redhat.com
-
-       . glist.c, gnode.c, gslist.c: allocate pools of 128 items instead
-       of 1024 items.
-
-1999-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in, acconfig.h: Changed the test for getpwuid_r to
-       exclude those systems (i.e. IRIX), that set ENOSYS after the call.
-       Test, if pthread_getspecific is posix like or something different,
-       as on PCThreads.        
-
-Sun Feb  7 21:56:00 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * gmem.c (g_mem_profile): Copy all elements
-       of the allocations[] array, including the last.
-       (Pointed out by "Matthew W. Samsonoff" <mws7323@osfmail.isc.rit.edu>)
-       
-1999-02-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Make the error message in case of a broken thread
-       system a bit more informative.
-
-       * gutils.c (g_get_any_init): Changed the error logic again, now
-       only leaving the memory doubling loop, when success is reached or
-       when the user isn't found or when the buffer is 32k big,
-       additionally now getpwuid will be run, if getpwuid_r didn't work
-       out properly. A warning is issued however.
-
-Thu Feb 04 20:42:24 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32 config.h.win32: Update GLIB_MICRO_VERSION.
-
-1999-02-04  Christopher Blizzard  <blizzard@redhat.com>
-
-       * glib.spec (Packager): Change my email address
-
-Thu Feb  4 01:45:01 PST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * ChangeLog
-         NEWS
-         README
-         configure.in
-         glib.spec
-         docs/glib-config.1: version=1.1.15
-
-       * Released GLib 1.1.15
-
-Tue Feb 02 00:08:54 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * gmessages.c (g_log_default_handler): (Win32:) Don't call
-       ensure_stdout_valid (which would open an unneeded console window)
-       if we're calling a logging function.  Define ensure_stdout_valid
-       as an empty macro on Unix.
-
-       * gutils.c (g_get_any_init): (Win32:) Trust HOME first if defined,
-       then try HOMEDRIVE and HOMEPATH.
-
-Mon Feb  1 19:04:28 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_main_iterate): Release the main_loop
-        lock around calls to prepare() and check() so
-        that we are not holding the main loop lock
-        over user code.
-
-1999-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Moved the check for MT safe function variants
-       after the determination of the MT cflags and use them there.
-
-1999-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Fixed typo. Now HPUX 11 thread system detection
-       should work.
-
-       * gutils.c (g_get_any_init): Changed initial bufsize to 64. Should
-       solve some problems out there.
-
-Wed Jan 27 23:21:50 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * INSTALL
-         NEWS
-         README
-         configure.in
-         glib.spec
-         docs/glib-config.1: version=1.1.14
-
-       * Released GLib 1.1.14
-
-1999-01-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Simplified configure.in test for posix threads,
-       systems, that provide /usr/include/pthread.h should also have the
-       posix thread library. This is to avoid writing down all the tests
-       twice. New test for thread system on HPUX 11. Info from Matt
-       Nottingham <matt@sar.dera.gov.uk>.
-
-Wed Jan 27 20:39:49 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4: Xsed isn't valid here, don't use it
-
-       * ltmain.sh
-       * ltconfig: better file magic regexp for Linux libs
-
-       * gmodule/Makefile.am: arg, noinst_LTLIBRARIES doesn't make shared
-       libs, revert my previous change to this file
-
-       * docs/texinfo.tex: add it so automake doesn't whine
-
-Wed Jan 27 01:57:19 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in (G_MODULE_HAVE_DLERROR): applied patch from Andrej
-       Borsenkow <borsenkow.msk@sni.de> to also check for dlsym() in system
-       libraries and -ldl, to catch systems that provide dlopen() in libc
-       and dlsym() in libdl. this is at least the case for Reliant UNIX
-       5.44 (labeling itself as SINIX).
-
-Tue Jan 26 13:39:22 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * configure.in: don't use backquotes in warning text
-
-1999-01-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gdate.c (g_date_set_time): Removed the #warning about MT
-       unsafety without localtime_r.
-
-       * configure.in: Moved it here.
-
-Mon Jan 25 10:07:53 1999  Raph Levien  <raph@gimp.org>
-
-       * configure.in: (#define G_THREADS_IMPL...) Changed the #define,
-       adding the G_THREADS_IMPL_ prefix to $g_threads_impl_def because
-       it looked wrong to me and was breaking gimp compile.
-
-Mon Jan 25 15:34:43 1999  Timur Bakeyev <mc@bat.ru>
-
-       * configure.in, gstrfuncs.c: Inverted logic of NO_SYS_SYGLIST_DECL -
-       now it's normal (see 1999-01-19 Josh MacDonald). Also, remove from
-       #include <signal.h> wrapper NO_SYS_SYGLIST - *sys_syglist[] declara-
-       tion hides there.
-
-1999-01-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Do not use the thread libs, when searching for
-       some functions, as this might require glib to always be linked
-       with the thread libs on some platforms.
-
-       * gutils.c (g_get_any_init): Don't set errno to zero and use it
-       only as the error code, if the function returned a value less
-       0. It might happen, that the call succeeds, even though the errno
-       is set during the call (i.e. it first looks for a passwd file,
-       which is not found). Submitted by Michael Natterer
-       <mitschel@cs.tu-berlin.de>. BTW: Sorry for all the mess with that
-       `getpwuid_r' change, but it had to be done once.
-
-Sun Jan 24 10:33:30 1999  Tim Janik  <timj@gtk.org>
-
-       * gutils.c (g_get_any_init): reverted raja's changes, since they leaked
-       a struct passwd contents buffer and for the rest mostly substituted a
-       while loop with a bunch of gotos.
-       restored the getpwuid() code to what we had after my recent clean ups
-       ("Sat Jan 23 02:14:28 1999 Tim Janik"), module yosh's recent changes.
-       to feature solaris behaviour of directly returning errno, we don't
-       modify error anymore if it's > 0 and simply reset errno.
-       don't reset g_home_dir for !NATIVE_WIN32 && !NATIVE_WIN32.
-
-1999-01-24  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * gutils.c 
-       (g_get_any_init) [HAVE_GETPWUID_R && HAVE_GETPWUID_R_POSIX]: 
-       Hopefully got the error handling for `getpwuid_r' right.
-       (g_get_any_init) [HAVE_GETPWUID_R && !HAVE_GETPWUID_R_POSIX]:
-       Fix typo (change `pw == NULL' to `pw != NULL').
-       
-Sun Jan 24 00:36:22 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * ghash.c:
-       - Revert previous "fix" (which really just did things a
-         different way).
-       - (g_hash_table_remove): Don't need to support multiple values
-         for a single key.
-
-       * tests/hash-test.c:
-       Add test where hash function always returns a single value.
-       Add beginnings of tests for g_hash_table_foreach[_remove] and
-       g_hash_table_remove.
-
-Sat Jan 23 20:40:06 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * gutils.c: removed the #warning about MT without getpwuid_r
-
-       * configure.in: and moved it here
-
-Sat Jan 23 22:45:59 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * ghash.c (g_hash_table_lookup_node, g_hash_table_lookup,
-                  g_hash_table_insert, g_hash_table_remove,
-                  g_hash_table_lookup_extended):
-         - Fixed bug that overwrote nodes in hash buckets instead of
-           adding them to the hash bucket node list.
-           Hash tables now work as advertised.
-
-       (g_hash_table_resize):
-         - Use g_new0 instead of manual init.
-         - Space out code a bit for readability.
-
-       (g_hash_nodes_destroy):
-         - Replaced "if (!hash_node) return;" with
-           "if (hash_node) {do stuff}".
-           Testing takes up less code space than explicit call to
-           'return' before end of function.  (look at gcc -S)
-
-       Updated module header copyright to 1999.
-       New module macro G_HASH_BUCKET for (table,key)->bucket lookups.
-
-       * tests/hash-test.c:
-       - Add two new tests, one with strings as the keys and values, and
-         one with ints as the keys and values.  Tests indirect (strings)
-         and direct (ints) hashing.
-       - Cleanup unused junk left over from testglib.c.
-       - Converted a g_print call to g_assert_not_reached.
-       - Updated copyright to 1999.
-
-       * testglib.c, tests/string-test.c:
-       - Init 'tmp_string' var to NULL, silencing uninit-var warning.
-
-1999-01-23  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * gutils.c (g_get_any_init) [HAVE_GETPWUID_R]:
-       Rewrite not to look at `errno' if library call succeeds, since
-       `errno' is not reset to 0.
-       
-Sat Jan 23 16:17:04 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32: Update the magic values for
-       pthread_mutex_t size and initializer bytes to match the
-       latest version of pthreads for Win32.
-
-Sat Jan 23 02:14:28 1999  Tim Janik  <timj@gtk.org>
-
-       * gutils.c (g_get_any_init): cleaned up the errno mess for
-       GETPWUID. we especially don't want to g_error() out here!
-       the warning for G_THREADS_ENABLED and !HAVE_GETPWUID_R isn't
-       gcc related.
-       if !HAVE_PWD_H and !NATIVE_WIN32, g_free the home dir before
-       resetting it to NULL, why are we doing this anyways?
-       reordered code a bit so we always provide defaults (except
-       for g_home_dir).
-
-Thu Jan 21 12:40:11 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * tests/{Makefile.am, string-test.c, strfunc-test.c}:
-       Separate string and strfunc tests, working towards goal of
-       having separate test for each of the GLib modules.
-       Add a couple GString length tests.
-
-Thu Jan 21 09:36:05 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * configure.in:
-       Use AC_PREREQ not AC_REQUIRE for autoconf version test.
-
-1999-01-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c (g_get_any_init): Changed error handling again, as the
-       error is not always set in errno, it is the return value on some
-       systems. What an evil world.
-
-Thu Jan 21 05:35:20 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * gstrfuncs.c: Include signal.h only when the signal names will be
-       needed.
-
-Wed Jan 20 22:09:59 EST 1999 Mandrake <mandrake@mandrake.net>
-
-       * configure.in / Makefile.am : made some adjustments for automake 1.4
-       and autoconf 2.13 (per suggestions made by  Raja R Harinath
-       <harinath@cs.umn.edu>)
-
-Wed Jan 20 20:33:14 EST 1999 Mandrake <mandrake@mandrake.net>
-
-       * autogen.sh: automake 1.4 and libtool 1.2d notices.
-       (maybe I'll write an actual test for automake 1.4 later)
-
-Wed Jan 20 15:05:25 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * HACKING: new file
-
-       * Makefile.am: since we require automake 1.4 now, ditch the build
-       top-level first and just use SUBDIRS
-
-       * gmodule/Makefile.am: use noinst_LTLIBRARIES instead of overriding
-       the install rule
-
-Wed Jan 20 16:16:01 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * gutils.c (g_get_any_init):
-       Revert previous patch, move error value set line down to proper
-       place.  Caught by Elliot Lee <sopwith@redhat.com>.
-
-Wed Jan 20 20:48:58 GMT 1999  Adam D. Moss  <adam@gimp.org>
-
-       * gutils.c (g_get_any_init): All gtk apps were broken
-       here on my setup.  I changed the error to a warning to at
-       least get things limping.
-
-1999-01-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c (g_get_any_init): Use getpwuid_r with the right
-       signature, if available.
-
-       * configure.in, acconfig.h: Test for existance of getpwuid_r and
-       its signature.
-
-Tue Jan 19 20:52:43 1999  Tor Lillqvist  <tml@iki.fi>
-       
-       * Makefile.am (EXTRA_DIST): Add new Win32 files.
-
-       * README.win32: Describe the conditional compilation macros.
-
-       * makefile.lcc: Removed.
-
-1999-01-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Moved test for localtime_r and rand_r to a place
-       after the determination of the G_THREAD_LIBS and use them for
-       finding those functions, necessary on systems with a different C
-       library libc_r for threaded progs, like FreeBSD 2.2.x. Info from
-       Timur Bakeyev <mc@bat.ru>.
-
-Tue Jan 19 00:44:24 1999  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
-
-       * gstrfuncs.c (g_strsignal): The "extern char* sys_siglist"
-       declaration breaks systems with different declarations, like
-       mine (FreeBSD).  So, I added a configuration variable to decide
-       whether the declaration is neccesary.  Change also appears on
-       line 275 of configure.in.
-
-Sun Jan 17 17:13:54 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.13
-
-       * README:
-         INSTALL:
-         docs/glib-config: ver=1.1.13
-
-Mon Jan 18 00:02:46 1999  Tim Janik  <timj@gtk.org>
-
-       * NEWS: updates for 1.1.13.
-
-Sun Jan 17 17:15:59 1999  Tim Janik  <timj@gtk.org>
-
-       * gtree.c (g_tree_traverse): removed assertion about rtree->root being
-       NULL, so this function can be applied to unpopulated trees as well, fix
-       provided by Simon Kagedal <sika8225@csd.uu.se>.
-
-Sun Jan 17 11:17:19 1999 Christopher Blizzard  <blizzard@appliedtheory.com>
-
-       * glib.spec: add packager address
-
-Sun Jan 17 11:10:05 1999 Christopher Blizzard  <blizzard@appliedtheory.com>
-
-       * glib.spec: increment version number to 1.1.13
-
-Sun Jan 17 16:14:03 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h (g_error): if !defined (G_LOG_DOMAIN) define G_LOG_DOMAIN as
-       ((gchar*) 0) instead of ((void*) 0) to silence egcs C++ mode, reported
-       by Seth Alves <alves@hungry.com>.
-
-Sun Jan 17 14:13:52 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h: added a define G_HOOK_DEFERRED_DESTROY, to substitute a noop
-       GHookList.hook_destroy function.
-
-       * ghook.c (g_hook_destroy_link): don't really call hook_destroy if it
-       is G_HOOK_DEFERRED_DESTROY. for the case where we invoke hook->destroy()
-       we now clean up the hook completely afterwards, i.e. data, func and
-       destroy are immediately set to NULL and hook_free can't play with that
-       values anymore.
-
-       * gmain.c (g_source_add): set hook_destroy to G_HOOK_DEFERRED_DESTROY,
-       instead of using an ugly _noop() hack, this is to avoid an uneccessary
-       function invocation. set hook_free to g_source_destroy_func, this way
-       we always invoke the destroy notifiers for user_data and source_data
-       after execution of dispatch(). thus, g_source_destroy_func() will always
-       be called within the main_loop lock (this wasn't really assured
-       before), and can release and reaquire the look around destroy notifier
-       invocation.
-
-Sun Jan 17 11:01:40 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32 glibconfig.h.win32: Increment version number here
-       also.
-
-Sun Jan 17 05:12:17 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in: incremented version number to 1.1.13, bin age 0,
-       interface age 0.
-
-       * glib.h: added hook_destroy member to struct _GHookList.
-
-       * ghook.c (g_hook_destroy_link): if the hook_list defines a hook_destroy
-       function, use that to marshal hook destruction notifiers.
-
-       * gmain.c: removed g_source_free_func and added g_source_destroy_func,
-       which marshalls the user_data and source_data destructors of sources
-       outside of the main_loop lock.
-       removed GIdleData struct since its sole member callback can be passed
-       as source_data directly.
-       added a gboolean return value to all g_source_remove* functions,
-       indicating whether the source could be removed, because these functions
-       don't issue warnings upon unseccessful removals themselves. this way at
-       least the caller gets a chance to warn upon failing removals.
-       (g_main_iterate): set in_check_or_prepare around calls to check() or
-       prepare().
-       (g_main_pending): simply return FALSE if called from within check() or
-       prepare().
-       (g_main_iteration): issue a warning if called from within check() or
-       prepare() and bail out with FALSE.
-       (g_main_run): likewise.
-       (g_source_remove_by_funcs_user_data): new function to remove sources by
-       user data and function table.
-       (g_idle_remove_by_data): new function to really remove idles only, since
-       g_source_remove_by_user_data would remove timeouts or other sources as
-       well.
-
-1999-01-16  Tor Lillqvist  <tml@iki.fi>
-
-       * Merge in current Win32 version:
-
-       * README.win32: More text.
-
-       * config.h.win32 glibconfig.h.win32: Update to match the
-       corresponding generated files on Unix.
-
-       * makefile.msc: Update with new source files, and gthread
-       library. Use the compiler flag -MD instead of using -D_DLL and
-       /nodefaultlib:libc msvcrt.lib in the link phase.
-
-       * glib.def: Update to include new functions, drop removed ones.
-
-       * glib.h: Add comments about main loop and polling on Win32. (In
-       general, it's only for the GIMP's use.) Add Win32 IO Channel
-       functions. Remove the obsoleted old IO Channel stuff (which was
-       in #if 0 already).
-
-       * giowin32.c: New file.
-
-       * gmain.c: Include config.h, conditionalize <sys/time.h>
-       inclusion.  Add g_poll implementation for Win32 (only for the
-       GIMP's needs for now, it's hard or even impossible to be as clean
-       and generic as on Unix). Implement g_get_current_time on Win32. If
-       threads aren't supported, don't try to wake up main thread's
-       loop. On Win32, use a semaphore and not a pipe to wake up the main
-       loop.
-
-       * gmessages.c: On Win32, allocate a console window if the standard
-       output handle is invalid before writing to stdout, and reopen stdout
-       to that console window.
-
-       * giochannel.c: Conditionalize unistd.h inclusion. Some indentation
-       cleanup.
-
-       * gstrfuncs.c: Include <signal.h>.
-
-       * gutils.c: On Win32, also check the HOMEDRIVE and HOMEPATH
-       environment variables.
-
-Sun Jan 17 01:06:38 1999 Timur Bakeyev <mc@bat.ru>
-
-       * configure.in: Add support for FreeBSD 2.2.x macro _THREAD_SAFE.
-
-Wed Jan 13 11:27:24 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * glib.h: don't use inline for !__GNUC__ case with g_warning,
-       g_error, and g_message wrappers since some compilers throw
-       away arguments in this case
-
-Tue Jan 12 21:59:14 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.2d (with fixes for irix6 and osf)
-
-       * testglib.c: removed unused cruft
-
-Tue Jan 12 09:57:06 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * gdate.c: #warning isn't portable, check for gcc
-
-1999-01-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-        * gdate.c: Include config.h to get HAVE_LOCALTIME_R macro.
-
-        * configure.in: Moved function check back to the place, they've
-        been before.
-
-1999-01-11  Jeff Garzik  <jgarzik@pobox.com>
-
-       * gstrfuncs.c:
-       Do not use vasprintf.
-
-       * configure.in, glib.h, testglib.c, tests/.cvsignore,
-         tests/Makefile.am, tests/alloca-test.c:
-       Do not use alloca.
-
-1999-01-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Test for localtime_r only after including the
-       right MT enabling CFLAGS (i.e. -D_REENTRANT on most systems).
-
-       * configure.in: Find right thread system on DG/UX. Thanks to Marc
-       J. Fraioli <fraioli@dg-rtp.dg.com> for hint. Finally removed the
-       stuff for -fstack-check, that didnt work anyway.
-
-       * gdate.c (g_date_set_time): Emit warning, if no localtime_r
-       function is available on thread enabled systems. Define ptm only,
-       if really needed, and assert on it.
-
-Sat Jan  9 15:08:44 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * testglib.c:
-       Make all aux functions static.
-
-       * tests/Makefile.am, tests/dirname-test.c, tests/type-test.c:
-       New tests dirname-test and type-test, from testglib.
-
-Sat Jan  9 13:53:00 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * configure.in:
-       Add checks for vasprintf, localtime_r.
-
-       * gdate.c (g_date_set_time):
-       Use localtime if localtime_r is not available.
-
-       * gstrfuncs.c (g_strdup_vprintf):
-       Use glibc vasprintf if possible; it's a bit faster than using
-       GLib routines, and makes output code a bit smaller.
-
-       * acconfig.h:
-       Remove HAVE_VSNPRINTF and HAVE_VPRINTF.  autoheader picks these
-       up automatically and puts them in config.h.in.
-
-Thu Jan  7 15:14:08 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_source_free_func): Call the source-specific
-       free function when the hook is freed not when it
-       is destroyed; this fixes a bug where a timeout destroyed
-       from itself would access already freed data.
-
-1999-01-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c (g_get_any_init): Here we must replace getpwuid by
-       getpwuid_r, but as I do not know how for now, I just made a FIXME
-       note ;-)
-
-       * gdate.c (g_date_set_time): localtime --> localtime_r to make it
-       thread safe.
-
-       * configure.in: We do not need to check for broken solaris mutex
-       intitializer any longer. Provide a macro to show the used thread
-       implementation. Not nice, but this is needed until thread support
-       is completed here inside glib.
-
-Tue Jan  5 12:23:52 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * configure.in: ditch whitespace before GLIB_SYSDEFS #includes,
-       the # needs to be in column 1
-
-       * gthread/testgthread.c: cleanups
-
-       * tests/node-test.c: #include unistd.h for exit()
-
-1999-01-04  Andrew T. Veliath  <andrewtv@usa.net>
-
-       * glib.h (g_array_insert_val): fix macro to be shorthand of
-       g_array_insert_vals.
-
-Mon Jan  4 15:35:29 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * acglib.m4: some echos interpret \n's and some don't. Deal with
-       accordingly.
-
-Mon Jan  4 20:58:50 1999  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c: eliminated extraneous "register" qualifiers in variable
-       declarations.
-
-       * gmain.c: #undef events and revents which may have been defined in
-       sys/poll.h for SVR3,4 compatibility on some AIX systems. fix been
-       provided by Philippe Defert <Philippe.Defert@cern.ch>.
-
-Mon Jan  4 14:38:11 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h: adjusted the g_strdup_a, g_strndup_a and g_strconcat3_a macros
-       so their arguments get only evaluated once. changed g_strconcat3_a to
-       have the same semantics as g_strconcat, i.e. if a certain argument is
-       NULL, the rest of the parameter list is skipped.
-
-       * tests/alloca-test.c: removed #if/#endif G_HAVE_ALLOCA, we need to be
-       able to compile on all systems. added test for g_strconcat() semantics.
-
-       * we need a alloca() replacement for !G_HAVE_ALLOCA rsn!
-
-Mon Jan  4 02:58:13 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-        * Released GLib 1.1.12
-
-        * INSTALL:
-          NEWS:
-          README:
-          configure.in:
-         glib.spec:
-          docs/glib-config.1: version=1.1.12
-
-       * tests/Makefile.am: fixed so it works properly with
-         builddir and srcdir.
-
-Sun Jan  3 01:38:14 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * tests/Makefile.am:
-       add array-test.c, tree-test.c
-
-       * tests/array-test.c, tests/tree-test.c:
-       New module, tests array family
-
-       * tests/hash-test.c, tests/list-test.c, tests/slist-test.c,
-         tests/string-test.c, tests/node-test.c:
-       Clean out cruft left over from testglib.
-
-Sat Jan  2 22:42:25 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * Makefile.am, configure.in, tests/*:
-       Added 'make check' tests, based on testglib code.
-
-Sat Jan  2 19:52:45 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * glib.h, testglib.c:
-       Added g_alloca, g_new_a, g_new0_a macros.
-
-Sat Jan  2 16:45:44 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * testglib.c: Added g_strdup_printf check.
-
-Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * glib.h:
-       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
-       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
-
-       * testglib.c:
-       Added g_strdup, g_strconcat checks.
-       Added str==NULL checks for alloca string macros.
-       s/g_strconcat_a/g_strconcat3_a/
-
-Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * testglib.c: made the alloca tests follow the testglib style
-
-       * Makefile.am: minor cleanups, mostly cosmetic
-
-Fri Jan  1 20:43:19 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * glib.h: added g_strndup_a macro
-
-       * testglib.c:
-       Added tests for new alloca-based string routines.
-       Reformatted a couple strings.
-
-Sat Jan  2 02:20:59 1999  Tim Janik  <timj@gtk.org>
-
-       * ghook.c:
-       (g_hook_list_invoke):
-       (g_hook_list_invoke_check):
-       (g_hook_list_marshal_check):
-       (g_hook_list_marshal): avoid unneccessary extra hook referencing (the
-       explicit hook referencing became unneccessarry with my changes from
-       Mon Dec 21 21:48:29 1998).
-
-       * gmain.c (g_main_iterate): fixed reference counting leaks with
-       premature loop aborts.
-
-Fri Jan  1 22:47:44 1999  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
-       as G_TOKEN_IDENTIFIER.
-
-Fri Jan  1 17:09:19 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * configure.in, glib.h:
-       Added two new alloca-based function macros, g_strdup_a and
-       g_strconcat_a.  These are stack-based and much faster than
-       their g_malloc-based counterparts.  Kudos to Ulrich Drepper
-       for help on this one.
-
-Wed Dec 30 18:24:57 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-        * Released GLib 1.1.11
-
-        * INSTALL:
-          NEWS:
-          README:
-          configure.in:
-          docs/glib-config.1: version=1.1.11
-
-1998-12-30  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * glib.h (G[U]INT64_FROM_{LE,BE}):
-       Define to G[U]INT64_TO_{LE,BE}, not G[U]INT32_TO_{LE,BE}.
-
-Fri Dec 25 19:56:33 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * acglib.m4
-       * configure.in: provide defaults for POLL sysdefs, simple enums
-       don't work with bitwise logic. Reported by Daniel Skarda
-       <0rfelyus@atrey.karlin.mff.cuni.cz>
-
-Wed Dec 23 00:43:25 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * INSTALL:
-         NEWS:
-         README:
-         configure.in:
-         docs/glib-config.1: version=1.1.10
-
-Wed Dec 23 04:18:11 1998  George Lebl  <jirka@5z.com>
-
-       * gmain.c: (g_get_current_time) don't cast to timeval since
-         timeval is for some reason not always a struct of longs, weird
-
-Tue Dec 22 10:32:11 1998  Tim Janik  <timj@gtk.org>
-
-       * ghook.c (g_hook_first_valid): fixed buglet that could cause bogus
-       warnings.
-
-Mon Dec 21 21:48:29 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gmain.c: there was a reference count race for hooks during invocation
-       loops. since all (known) hook loop implementations, do currently start
-       out with g_hook_first_valid() and iterate with g_hook_next_valid(),
-       g_hook_first_valid() will now return a referenced hook, and
-       g_hook_next_valid() will "eat" that, and eventually transfer it to
-       the next hook. <sigh> unfortunately this requires g_hook_next_valid()
-       to take the hook_list as additional argument.
-
-       * gmain.c (g_main_iterate): adjusted callers of g_hook_next_valid().
-
-Mon Dec 21 03:48:04 1998  Tim Janik  <timj@gtk.org>
-
-       * gmain.c (g_main_iterate): default initialize source_timeout with -1
-       so we have a sane timeout value if (*prpare) doesn't set it.
-
-Sat Dec 19 16:56:02 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h gmain.c (G_PRIORITY_LOW): Add #defines defining
-       scale of priorities.
-
-Sat Dec 19 16:56:02 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_main_poll): Allocate space for pollfd's
-       _after_ adding poll wake-up-pipe record.
-
-       * gmain.c (g_main_add_poll): Changed name
-       of internal function g_main_add_poll_unlocked()
-       back from the non-sensical g_main_add_unlocking_poll().
-
-Sat Dec 19 06:25:55 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.m4: fixed a minor bug that would let configures bail out
-       if the MODULES argument contained newlines.
-
-       * acglib.m4: new file to be included by configure.in. it holds
-       special GLIB_ autoconfiguration macros, eventually some of the
-       easier ones should be moved into glib.m4, e.g. GLIB_IF_VAR_EQ,
-       GLIB_STR_CONTAINS or GLIB_ADD_TO_VAR.
-
-Sat Dec 19 04:27:17 1998  Tim Janik  <timj@gtk.org>
-
-       * fixed up sys/poll.h and sys/types.h inclusions.
-
-Sat Dec 19 03:10:50 1998  Tim Janik  <timj@gtk.org>
-
-       * fixed up gthread includes, cleaned up glibconfig.h a little bit.
-
-Fri Dec 18 12:51:39 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c: Fix errors in computation of timeout
-       expiration times > 1sec.
-
-1998-12-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in (have_threads): Changed the last pthread_cond_init
-       to pthread_attr_init.
-
-Fri Dec 18 00:03:17 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gmain.c:
-       (g_main_is_running): new function to check whether a main loop has been
-       quitted.
-       (g_main_new): added a gboolean argument to determine whether the loop
-       should be considered initially running or not. however, g_main_run ()
-       will still reset the main loops running state to TRUE upon initial
-       entrance.
-
-       * gmain.c:
-       (g_main_iterate): documented this function's purpose in 5 steps.
-       for step 2), flag sources as G_SOURCE_READY even if !dispatch and
-       check G_SOURCE_READY prior to (*prepare), so we don't call (*prepare)
-       on them multiple times.
-
-Thu Dec 17 23:43:47 1998  Tim Janik  <timj@gtk.org>
-
-       * gmain.c (g_main_add_poll): reordered arguments, so GPollFD* comes
-       first, <sigh> (sorry Snorfle, i should have let you know in the first
-       place).
-       (g_main_dispatch): stack G_HOOK_FLAG_IN_CALL flags. call source's
-       destructor when destroying a source.
-
-1998-12-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * garray.c (g_ptr_array_remove_index): Fixed size in g_memmove,
-       reported by Alexander Larsson <alla@lysator.liu.se>.
-
-       * gmem.c: Fixed bug, that made compile fail for -DENABLE_MEM_PROFILE.
-
-Wed Dec 16 23:04:26 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.9
-
-       * INSTALL:
-         NEWS:
-         README:
-         configure.in:
-         glib.spec:
-         docs/glib-config.1: version=1.1.9
-
-Wed Dec 16 22:32:13 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * glib.h:
-         giounix.c: s/g_main_poll_add/g_main_remove_add/g
-                     s/g_main_poll_remove/g_main_remove_poll/g
-                     s/g_main_poll_add_unlocking/g_main_add_unlocking_poll/g
-          (from Tim Janik)
-
-Wed Dec 16 20:04:10 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * configure.in: check for pthread_attr_init in all cases, du4
-       needs this since most of the other functions are just #defines
-
-Thu Dec 17 04:10:49 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h (G_LOCK_DECLARE_*): if !G_THREADS_ENABLED, eat the
-       trailing semicolon with a bogus function declaration, instead
-       of with a bogus variable declarations, so we avoid unused
-       variable warnings.
-
-Wed Dec 16 07:49:16 PST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.8  (CVS tag is GLIB_1_1_8a)
-
-1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * giounix.c (g_io_channel_unix_get_fd): Fixed small bug.
-
-1998-12-16  Joel Becker  <jlbec@ocala.cs.miami.edu>
-
-       * glib.h, gscanner.c: changed func_data to user_data in
-        g_scanner_scope_symbol_foreach and associated friends, because
-       AIX headers #define func_data.
-
-1998-12-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Fixed stupid bug, that made
-       g_static_mutex_lock(*mutex) not work as expected.
-
-       * docs/glib-config.1: Updated to reflect the existence of gthread.
-
-       * gmain.c (g_main_poll_add_unlocking): Changed
-       g_main_poll_add_unlocked to g_main_poll_add_unlocking to match
-       semantic, (indeed, main_loop must be locked, when calling this
-       function). Removed the unlocking from the end of that function, as
-       that is not right. Made a 'HOLDS' comment above the function.
-
-Wed Dec 16 03:16:58 1998  Tim Janik  <timj@gtk.org>
-
-        * configure.in: version bump to 1.1.8, binary age 0, interface age 0.
-
-       * glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
-       g_trylock() to G_TRYLOCK(), since these are macros that expand to
-       nothing with --disable-threads.
-       changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
-       G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
-       changed semantics of g_thread_supported to g_thread_supported() so it
-       can be used as a function like g_module_supported(). the actuall
-       definition is still a macro that expands into a variable for
-       performance reasons though.
-       various indentation and coding style cleanups.
-
-       * configure.in: added --enable-threads that defaults to yes.
-
-       * gmutex.c: changed tests g_thread_supported to g_thread_supported (),
-       changed variable settings of g_thread_supported
-       to g_threads_got_initialized.
-
-       garray.c:
-       gcache.c:
-       gdataset.c:
-       gdate.c:
-       ghash.c:
-       glist.c:
-       gmain.c:
-       gnode.c:
-       gslist.c:
-       gstring.c:
-       gtree.c:
-       gutils.c:
-       changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
-       s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
-
-Tue Dec 15 23:16:05 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * INSTALL:
-         NEWS:
-         README
-         configure.in:
-         glib.spec:
-         docs/glib-config.1: Incremented version
-
-Wed Dec 16 22:29:48 1998  Joel Becker  <jlbec@ocala.cs.miami.edu>
-
-       * configure.in: fixed the AIX thread checking.
-       Just an error on the wildcard.  BTW, -D_THREAD_SAFE
-       is correct for AIX.
-
-Wed Dec 16 02:02:48 1998  Tim Janik  <timj@gtk.org>
-
-       * glib-config.in (lib_glib): fixed library and flag ordering for
-       --libs
-
-Tue Dec 15 17:17:46 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h giounix.c giochannel.c: Use an "inheritance"
-       scheme for IO channel memory allocation.h
-
-1998-12-15  Havoc Pennington  <hp@pobox.com>
-
-       * gdate.c (g_date_prepare_to_parse): Solaris has a broken strftime
-       that produced garbage output for the test date I was using to
-       set up the parser. So use a different date that Solaris seems
-       to like.
-
-1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Dont complain, if --without-threads or
-       --with-threads=none is supplied; Test for pthread_attr_init
-       instead of pthread_cond_init, if threads seems to be supported by
-       standard glib. (CFLAGS): Use G_THREAD_CFLAGS for compiling of glib
-       as well.
-
-       * glib.h, gmutex.c: Changed private to private_key to avoid
-       problems when compiling with under C++.
-
-1998-12-15  Jeff Garzik  <jgarzik@Pobox.com>
-
-       * configure.in:
-       bugfixes, correctly support --without-threads and friends
-
-       * gthread/testgthread.c: corrected 64-bitness problem
-
-Tue Dec 15 10:40:09 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * gnode.c glist.c gslist.c: Make sure all
-       calls to g_node_validate_allocator are within
-       current_allocator lock, so we have consistency
-       on that point. (Should not really matter,
-       but this way we match the comments)
-
-       * glist.c (g_list_free_1): Removed some lines
-       that should never have been committed. (For
-       debugging)
-
-1998-12-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread/gthread-nspr.c, configure.in: Added new default thread
-       implementation on top of the mozilla nspr library.
-
-       * gmem.c, gmessaged.c, gthread/gthread.c, gthread/gthread-*.c:
-       Changed GStaticMutex and GStaticPrivate in gmem.c and gmessages.c
-       into GMutex and GPrivate resp. to make error reporting and use of
-       gmem possible in most (not all, though) gthread functions. Also
-       initialized the modules via new init functions.
-
-       * configure.in: Fixed syntax bug in definition of type
-       GStaticMutex.
-
-       * gthread/testgthread.c: Updated to work with nspr, but see note
-       there for remaining problems.
-
-1998-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmutex.c, glib.h: Now abort, if a mutex/cond/private is
-       allocated before the thread system is set up.
-
-       * gthread/gthread.c (g_thread_init): Removed g_thread_try_init(),
-       as it is not necessary. Changed the error message. Corrected logic
-       for g_thread_use_default_impl.
-
-       * gmutex.c (g_mutex_init): Keep the thread private data array
-       after calling g_thread_init().
-
-1998-12-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread/testgthread.c (new_thread): Now also working for posix
-       threads; (wait_thread): Now a better implementation, that does not
-       use 100% CPU.
-
-       * Made the thread related code follow GNU coding standard.
-
-       * Made a comment (HOLDS:) above each function, that expects the
-       given locks to be held.
-
-       * Changed try_lock to trylock throughout.
-
-       * glib.c: Eventually removed the #if 0'ed code for old GStaticMutex.
-
-       * glib.c: Corrected g_trylock macro for G_DEBUG_LOCKS.
-
-       * gmain.c (g_main_poll_add_unlocked): first take a new poll record
-       form the poll_free_list.
-
-       * gmem.c, gstrfuncs.c, gutils.c: Made it MT safe.
-
-       * gthraed/*.c: Added copyright headers.
-
-       * gthread/gthread-solaris.c: do not use g_log for errors, as g_log
-       uses these module and endless recursions might happen, just use a
-       plain fprintf(stderr,...).
-
-       * gthread/gthread.c (g_thread_try_init): Call g_mutex_init().
-
-       * gthread/testgthread.c: updated test program.
-
-Tue Dec  8 18:49:56 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * Start at adding thread-safety. (mostly work
-       of Sebastian Wilhelmi <wilhelmi@ira.uka.de>)
-
-       - configure.in now looks for a system thread implementation.
-       Currently support is included for POSIX threads
-       and Solaris threads. The default support is built
-       into a separate library -lgthread.
-
-       - The thread implementation can be modified by passing
-       a vector of functions g_thread_init().
-
-       - The default or supplied functions are used to
-       implement a small set of thread functions for
-       mutexes, condition variables, and thread-private
-       data.
-
-       - GLib now uses these functions to provide thread
-       safety. (In the sense that all global static
-       data is locked... individual structures must still
-       be locked by the caller.)
-
-Sat Dec 12 19:08:59 1998  Tim Janik  <timj@gtk.org>
-
-       * configure.in: always define G_HAVE_INLINE if __cplusplus is
-       defined, reported by Wan-Teh Chang <wtc@netscape.com>.
-
-Thu Dec 10 21:49:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.7
-
-       * INSTALL:
-         NEWS:
-         README:
-         configure.in:
-         glib.spec:
-         docs/glib-config.1: Increased version to 1.1.7
-
-Wed Dec  9 22:44:44 EST 1998 Joel Becker <jlbec@ocala.cs.miami.edu>
-
-       * Removed #define of G_COMPILED_WITH_DEBUGGING from glibconfig.h
-       It shouldn't be there, and it was causing a double #define.
-        (config.h defines it also)
-
-Tue Dec  8 12:18:38 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.6
-
-       * NEWS: updated
-
-Mon Dec  7 23:10:41 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * gmain.c: fixes to #undef HAVE_POLL case
-
-1998-12-02  Havoc Pennington  <hp@pobox.com>
-
-       * gdate.c (g_date_set_month): If Julian is valid, we have to
-       update the dmy representation before setting the components
-       of it.
-       (g_date_set_day): Same.
-       (g_date_set_year): Same.
-
-1998-12-02  Havoc Pennington  <hp@pobox.com>
-
-       * testgdate.c, testgdateparser.c: Two new files. This is kind of
-       ugly code, but I want to go ahead and make the tests available.
-       It isn't contaminating any other code. :-) Since one of these
-       is interactive and the other takes a while to run, I've kept
-       them separate from testglib for now.
-       * Makefile.am: Build gdate test programs.
-
-1998-12-02  Havoc Pennington  <hp@pobox.com>
-
-       * gdate.c (g_date_valid): Rely on GDate::dmy and GDate::Julian
-       flags, rather than re-checking the validity of the actual
-       values. This should be the correct behavior, the old way was
-       leftover cruft.
-
-       * glib.h, gdate.c: Changed MDY to DMY throughout.
-
-Sat Nov 28 12:53:47 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am configure.in acconfig.h giochannel.c
-         glib.h glist.c gmain.c gutils.c:
-
-        - Revised GIOChannel to provide a generic virtual-function
-         based interface.
-       - Added unix fd-based GIOChannel's
-       - Added generic main-loop abstraction
-       - Added timeouts and idle functions using main-loop abstraction.
-
-1998-12-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h:
-       * gdate.c: changed `gpointer struct_tm_p' parameter of
-       g_date_to_struct_tm back to `struct tm *tm' and forward declared
-       `struct tm' in glib.h; yes, this is nice, we still need not
-       include time.h.
-
-Tue Dec  1 23:01:44 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * INSTALL:
-          NEWS:
-         README:
-         glib.spec:
-         docs/glib-config.1: Incremented versions to 1.1.6.
-
-Wed Dec  2 02:10:59 1998  Tim Janik  <timj@gtk.org>
-
-       * gdate.c: s/time_t/GTime/ and s/g_print/g_message/
-       include time.h.
-
-       * glib.h: removed #include <time.h>, changed time_t paramter of
-       g_date_set_time() to time_t, changed struct tm parameter of
-       g_date_to_struct_tm to `gpointer struct_tm_p'. yes, this is not
-       nice, but including time.h actually breaks a bunch of code.
-
-       * incremented GLib version to 1.1.6.
-
-1998-11-30  Havoc Pennington  <hp@pobox.com>
-
-       * gdate.c: New file, implements calendrical calculations.
-
-       * glib.h: Added declarations for GDate module.
-
-Mon Nov 30 07:12:10 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * ghook.c: added g_hook_list_marshal_check() to eventually destroy
-       hooks after they got marshalled.
-
-Sun Nov 29 17:31:43 EST 1998  Jeff Garzik  <jgarzik@pobox.com>
-
-       * configure.in, Makefile.am, gmodule/Makefile.am:
-       Put -DFOO stuff into Makefile.am INCLUDES.
-
-Sun Nov 29 14:17:09 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * configure.in: put debug -DFOO stuff into CPPFLAGS, not CFLAGS,
-       so CFLAGS can be overridden at make time properly
-
-Sat Nov 28 01:23:25 1998  Tim Janik  <timj@gtk.org>
-
-       * ghash.c: implemented incremental freezing facility.
-
-Thu Nov 26 01:36:20 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * ghash.c: reverted the g_hash_table_set_key_freefunc() addition,
-       since it's to specialized and needs to be resolved in a generic
-       fashion.
-
-Tue Nov 24 18:57:59 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * applied glib-tml-981120-0, change log appended below.
-
-       * glibconfig.h.win32: passthrough 64-bit constants unchanged, VC++
-       infers them
-
-Fri Nov 20 22:26:43 1998  Tor Lillqvist  <tml@iki.fi>
-
-        * glib.h: Moved MSC pragmas from glib.h to glibconfig.h.win32.
-        peer_offset field in WIN32 part of GIOChannel removed, need_wakeups
-        added. Added "extern" to __declspec(dllimport).
-
-        * gutils.c: Initialise need_wakeups.
-
-        * glibconfig.h.win32: Pragmas moved here. Define G_GINT64_CONSTANT.
-
-        * gmodule/gmodule.def: Added g_module_build_path.
-
-        * gscanner.c: (g_scanner_cur_value) Move initailisation of v
-        to before its use.
-
-        * glib.def: Added g_(s)list_sort.
-
-        * makefile.msc: A few more comments.
-
-Tue Nov 24 14:05:47 EST 1998   Michael K. Johnson <johnsonm@redhat.com>
-
-       * glib.h: added GFreeFunc and g_hash_table_set_key_freefunc()
-       prototype.
-       * ghash.c: added g_hash_table_set_key_freefunc() implementation.
-       Modified the prototypes of the functions g_hash_node_destroy() and
-       g_hash_nodes_destroy(), and changed the functions that call them
-       to match the new definitions.
-       This changes no external interfaces, and should create no binary
-       or source incompatibilities.  It does add a member to the
-       GHashTable structure.
-
-Tue Nov 24 09:40:00 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: removed the GListAllocator type and its g_*_allocator_*()
-       function variants (which weren't working anyways) in favour of a
-       generic GAllocator type. new functions:
-       g_allocator_new, g_allocator_free, g_slist_push_allocator,
-       g_slist_pop_allocator, g_list_push_allocator, g_list_pop_allocator,
-       g_node_push_allocator and g_node_pop_allocator.
-
-       * gstring.c: removed bogus slist allocator code.
-       * gtree.c: maintain own list of free tree nodes and don't waste
-       GSLists for that, removed bogus slist allocator code.
-       * glist.c: use GAllocators for node allocation.
-       * gslist.c: use GAllocators for node allocation.
-       * gnode.c: use GAllocators for node allocation.
-
-       * gdataset.c: cleanups wrt automatic initialization.
-
-Mon Nov 23 10:03:58 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * glib.h garray.[ch]: added g_array_insert_vals() to
-       insert elements at an arbitrary index, and
-       g_array_insert_val() macro.
-
-Sun Nov 22 17:07:03 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gslist.c: new function g_slist_copy() to duplicate a list with all its
-       data pointers.
-       * glist.c: new function g_list_copy.
-
-Sat Nov 21 14:57:39 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * INSTALL:
-         NEWS:
-         README:
-         configure.in:
-         glib.spec: Updated to version 1.1.5
-
-       * Released GLib 1.1.5
-
-Wed Nov 18 1998 Elliot Lee <sopwith@redhat.com>
-
-       * gdataset.c: There was a code path into g_data_set_internal
-         through a function (g_datalist_id_set_full). Neither function
-         checked for g_dataset_init having been run, but
-         g_data_set_internal used the memchunk. I added
-         a check into g_data_set_internal so it will do the
-         initialization if needed. (There's probably a better way.)
-
-Mon Nov 16 07:48:06 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h (g_bit_nth_msf): fixed off-by-one error, so we don't waste
-       a loop iteration if (-1) was passed, reported by Andreas Bombe
-       <andreas.bombe@munich.netsurf.de>.
-
-Fri Nov 13 15:17:34 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * glist.c gslist.c glib.h: Added g_list_sort() and
-       g_slist_sort() to merge sort GLists and GSLists.
-       Submitted by Sven Over <sven.over@ob.kamp.net>
-       over a year ago!
-
-       * testglib.c: Test the new sort functions.
-
-Wed Nov 11 23:23:22 EST 1998 Jeff Garzik <jgarzik@pobox.com>
-
-       * Makefile.am : INCLUDES is the right way to add to CFLAGS, not
-       DEFS.  Also there are bugs with '+=' in makefiles.
-       Got rid of DEFS line by moving G_LOG_DOMAIN setting into INCLUDES.
-       Removed redundant -I from INCLUDES.
-
-Wed Nov 11 18:11:24 EST 1998 Gregory McLean <gregm@comstar.net>
-
-       * docs/*.sgml : Batch of new documentation that should be easier
-       to maintain and extend. Plus generate whatever sort of doc file
-       you would like. I didn't change the Makefile stuff as I'm not sure
-       what default doc type people want. Oh and this is all DocBook format.
-       Enjoy!
-
-Tue Nov 10 17:12:45 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * configure.in: use __extension__ for long long on gcc >= 2.8 and
-       egcs, and provide a G_GINT64_CONSTANT wrapper so -ansi -pedantic
-       compiles clean.
-
-       * glib.h: make the endian x86 asm __const__ so the compiler can do
-       better optimizations. Also remove the cc clobber, these shouldn't
-       be changing condition codes. Ditch some redundant casts. Add an
-       optimization for 64-bit endian conversions in x86. Use constant
-       wrapper for the generic method.
-
-       * testglib.c: use constant wrappers for 64-bit constants
-
-1998-11-04  Phil Schwan  <pschwan@cmu.edu>
-
-       * configure.in: Added 'strncasecmp' to the list of functions to be
-       searched for.
-       * glib.h: Added a prototype for 'g_strncasecmp'
-       * gstrfuncs.c: (g_strncasecmp) new function modeled closely after
-       'g_strcasecmp'
-
-Wed Nov  4 15:06:44 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * config.h.win32 (new file)
-       * glibconfig.h.win32
-       * glib.def
-       * makefile.msc: applied glib-tml-981104, win32 sync
-
-1998-11-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h:
-       * garray.c:
-       (g_array_remove_index): new function for removing an entry from an
-       array while preserving the order
-       (g_array_remove_index_fast): new function for removing an entry
-       from an array. the order might be distorted
-       (g_ptr_array_remove_index_fast, g_ptr_array_remove_fast): new
-       functions; working similiar to the above. (they have the semantic
-       of the old g_ptr_array_remove[_index] functions)
-       (g_ptr_array_remove_index, g_ptr_array_remove): new semantic. now
-       the order of the elements in the array is not changed
-       (g_byte_array_remove_index, g_byte_array_remove_index_fast): new
-       functions; byte_array wrapper for g_array_remove_index[_fast]
-
-Sun Nov  1 23:00:18 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h
-       * configure.in: endian macros defined using the glibconfig.h
-       mechanism now
-
-       * ghook.c: casts for GHookFunc and GHookCheckFunc to avoid warnings
-
-Sat Oct 31 20:14:22 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * applied glib-tml-981101-1 patch from Tor Lillqvist (ChangeLog
-       entry appended below)
-
-       * testglib.c
-       * gstrfuncs.c
-       * glib.h: use G_HAVE_GINT64, since HAVE_GINT64 is gone
-
-       * gmessages.c
-       * gscanner.c: #include <config.h> in here too, for HAVE_UNISTD_H
-
-1998-11-01 Tor Lillqvist <tml@iki.fi>
-
-       * glib.def: Added the new functions.
-
-       * gutils.c:
-       (g_getenv): Better implementation on Win32. No loop necessary.
-       (g_get_any_init): Use P_tmpdir if defined as tmp directory. Don't
-       set home dir always to NULL on Win32.  Don't use tmp directory as
-       last resort home directory, but return NULL if no home
-       directory is known (application must check).
-
-       * makefile.msc: Better touch command, just COPYing a single file
-       sets the timestamp from that file, which isn't what touching should
-       do.
-
-1998-10-31  Raja R Harinath  <harinath@cs.umn.edu>
-
-       Land glib-rrh-19981025-0.patch.
-       * Makefile.am (glibconfig.h): New rule.
-       (stamp-gc-h): New rule.  Generate `glibconfig.h'.
-       * configure.in (AM_CONFIG_HEADER): It is now `config.h'.
-       (HAVE_BROKEN_WCTYPE): On Solaris, look for iswalnum in -lw before
-       concluding "broken wctype".
-       (glibconfig.h): Use AC_OUTPUT_COMMANDS to put generation code into
-       config.status.
-       * glib.h: Remove a lot of tests and defines.  All these have been
-       moved to `configure.in (glibconfig.h)'.
-       * gerror.c: Include <config.h>.
-       * gmem.c: Likewise.
-       * gstrfuncs.c: Likewise.
-       * gutils.c: Likewise.
-
-Sat Oct 31 05:08:26 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: removed old G_ENUM(), G_FLAGS(), G_NV() and G_SV() macros.
-       added macros G_STRUCT_OFFSET(), G_STRUCT_MEMBER_P() and
-       G_STRUCT_MEMBER() for handling structure fields through their offsets.
-       (struct _GHookList): added a hook_free function member, that can be used
-       to free additional fields in derived hook structures.
-       g_hook_free(): if hook_list->hook_free != NULL, call this function prior
-       to freeing the hook. (this functionality should have been there in the
-       first place, it just got forgotten as an implementation detail).
-
-Wed Oct 28 00:49:32 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h: G_BREAKPOINT for alpha from Robert Wilhelm
-       <robert@physiol.med.tu-muenchen.de>
-
-Tue Oct 27 07:25:53 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gscanner.c:
-       (g_scanner_sync_file_offset): new function for file input.
-       rewind the filedescriptor to the current buffer position and blow
-       the file read ahead buffer. usefull for third party uses of our
-       filedescriptor, which hooks onto the current scanning position.
-       (this became neccessary with the implementation of buffered
-       reads).
-       (g_scanner_input_file):
-       (g_scanner_input_text): automatically blow the read ahead buffer.
-       (g_scanner_get_char): blow the read ahead buffer when the end of
-       input is reached, i.e. a '\000' char is read.
-
-Tue Oct 27 00:27:31 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h: get rid of duplicate #g_htonl and friends in the
-       NATIVE_WIN32 part
-
-Mon Oct 26 22:42:01 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * glibconfig.h.win32
-       * gutils.c
-       * makefile.msc: win32 patch from Tor Lillqvist (glib-tml-981027-0),
-       fixes some minor win32 buglets
-
-Mon Oct 26 22:12:03 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h: reimplemented the endian stuff, using inline asm
-       for x86. #define g_htonl and friends.
-
-       * testglib.c: new tests for the endian stuff
-
-       * configure.in: care for AIX in gmodule linker flags test (from
-       Joel Becker <jlbec@raleigh.ibm.com>). Check $host_os for linux
-       instead of existance of /usr/include/linux
-
-       * gutils.c: buh-bye evil warning. Thou hast been #ifdef'd out
-       of thine existance!
-
-Tue Oct 27 03:00:50 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: removed dummy structure definitions for struct _GCache,
-       _GTree, _GTimer, _GMemChunk, _GListAllocator and _GStringChunk.
-
-       * gutils.c: implement glib's inline functions _after_ all include
-       statements have been processed.
-       removed Tor's MAXPATHLEN check since there already was one supplied
-       further down in this file.
-       (LibMain): special cased the #ifdef __LCC__ case for NATIVE_WIN32,
-       since lcc maybe used on other platforms as well. why in hell is this
-       stuff required?
-       (g_get_any_init): for windows, if the user name is supplied, use it as
-       realname also.
-       in general, if there is no homedir specified, use the tmpdir that
-       we already figured.
-
-       * gtimer.c (g_timer_elapsed): changed a g_assert() statement to
-       g_return_if_fail().
-
-       * applied glib-tml-981020-0.patch for WIN32 portability, added some
-       comments and g_return_if_fail() statements, minor indentation fixes.
-       ChangeLog entry from Tor Lillqvist is appended.
-
-       * glib.h (struct dirent): use lower case structure members.
-
-       * glib.h:
-       * makefile.lcc:
-       * makefile.msc:
-       s/COMPILING_GLIB/GLIB_COMPILATION/
-
-1998-10-20: Tor Lillqvist <tml@iki.fi>
-
-       * README.win32 glib.def gmodule.def
-       * glibconfig.h.win32 gmodule/gmoduleconf.h.win32:
-       New files for the Windows port. The .def files list exported
-       symbols for the Microsoft linker and compatibles.
-
-       * configure.in:
-       Added checks for some platform-dependent headers: pwd.h sys/param.h
-       sys/select.h sys/time.h sys/times.h unistd.h, and the function lstat.
-
-       * gerror.c:
-       Conditionalized inclusion of system-dependent headers. Changes
-       for Windows: no gdb to do a stack trace. Just call abort().
-
-       * glib.h:
-       Changes for Windows:
-
-       Added macros G_DIR_SEPARATOR, G_DIR_SEPARATOR_S for
-       platform-dependent file name syntax elements. Added macros
-       G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S for
-       platform-dependent search path syntax conventions.
-
-       Added pragmas for Microsoft C to make it more pedantic.
-
-       Marked GLib's global variables for export from DLL.
-
-       Added the function g_strescape that escapes backslashes.
-
-       Added functions g_path_is_absolute and g_path_skip_root to
-       handle platform-dependent file name syntax.
-
-       Added the function g_getenv that expands environment variables
-       that contain references to other environment variables, as is
-       typical on Windows NT.
-
-       Added the GIOChannel structure which is used to encapsulate the
-       IPC mechanism used by the GIMP's plug-ins, and possibly other
-       things later. On Unix a GIOChannel encapsulates just a file
-       descriptor. On Windows it contains a file handle from _pipe() and a
-       few other things related to the implementation of gdk_input_add
-       and GIMP plug-in communication. Subject to change.
-
-       Removed duplicate declarations of the version variables.
-
-       For the Microsoft compiler, declare own implementation of
-       ftruncate and the <dirent.h> functions.
-
-       * gmem.c:
-       Define a symbolic name  for the profiling table size.
-
-       * gmessages.c:
-       Conditionalized inclusion of unistd.h. On Windows, output using
-       stdio to stdout.
-
-       * gscanner.c:
-       Conditionalized inclusion of unistd.h. Added changes for
-       Microsoft C. Added CR to the skipped character set. Added small
-       workaround for MSC compiler bug in g_scanner_cur_value.
-
-       * gstrfuncs.c:
-       Added the function g_strescape, which escapes the backslash
-       character. Needed especially when printing Windows filenames.
-
-       * gtimer.c:
-       Conditionalized inclusion of unistd.h and sys/time.h. Added
-       implementations for Windows.
-
-       * gutils.c:
-       Conditionalized inclusion of platform-dependent headers. Use
-       the platform-independent file name syntax macros.
-       Conditionalize code on platform-dependent features. Added the
-       functions g_path_is_absolute g_path_skip_root and g_getenv.
-       Added the GIOChannel-related functions. Added
-       compiler-dependent Unix compatibility functions for Windows.
-
-       * makefile.lcc makefile.msc:
-       New files. Compiler-specific makefiles for LCC-Win32 and
-       Microsoft C. Only Microsoft C is actually supported currently.
-
-       * testglib.c:
-       Added pathname check cases for Windows. Added workaround for
-       bug in the Microsoft runtime library. Improved some tests a bit.
-
-Sun Oct 25 01:24:01 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.4
-
-       * docs/Makefile.am:
-       * docs/.cvsignore
-       * docs/glib-config.1:
-       * docs/glib.texi: Moved docs from gtk and created glib-config.1
-       from gtk-config.1 in gtk
-
-       * configure.in:
-       * Makefile.am:
-       * sanity_check: added in docs directory, change rule 'release'
-       to 'snapshot' and created a new 'release' rule for doing the
-       distribution.  Added in a 'sanity' rule.
-
-       * NEWS:
-       * README:
-       * INSTALL: Updated for the release
-
-Sun Oct 25 07:30:10 1998  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c:
-       (g_scanner_peek_next_char):
-       (g_scanner_get_char): no more characters are available if read() returns
-       anything less than 1, not only on 0 return.
-
-       * glib.h:
-       * gstrfuncs.c: final API cleanup of string arrays to suit sopwith's
-       argument order requirements.
-       (g_strsplit): renamed from g_str_array_split().
-       (g_strjoinv): renamed from g_str_array_joinv(), string array is
-       now passed as last parameter. removed `const' qualifier from string
-       array pointer (again).
-       (g_strjoin): new function from sopwith to concatenate strings with
-       an additional seperator.
-       (g_strfreev): renamed from g_str_array_free.
-
-Sat Oct 24 22:23:04 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * gnode.c: small fix to g_node_children_foreach to make it work right.
-       From Paco Moya <paco@cadnotebk17.eecs.berkeley.edu>
-
-Wed Oct 21 19:22:58 1998  Tim Janik  <timj@gtk.org>
-
-       * configure.in (G_MODULE_HAVE_DLERROR): reverted part of the changes
-       from Sebastian Wilhelmi (1998-10-20). don't specify a specific loading
-       behaviour (i.e. RTLD_NOW) when we are not sure whether it is supplied.
-       changed the return value from (!f2 && f1) to (!f2 || f1) so we default
-       to not needing an underscore. reverted the extra plugin.c building,
-       because .lo files are not ELF libraries, this can't work. This needs
-       further investigation on Solaris...
-
-Wed Oct 21 17:03:05 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gstrfuncs.c: API cleanups of the new g_str* functions for consistency
-       with the existing naming scheme for g_str* functions. grouped the g_str*
-       functions that will return a newly allocated string seperatedly. all of
-       the in_place arguments were skipped, the caller is supposed to pass a
-       g_strdup()ed string if he wants to retrive a new copy. indentation and
-       coding style fixups. added some g_return_if_fail() statements.
-       string array functions are prefixed with g_str_array_.
-       (g_strdelimit): return the modified string like all other g_str*
-       functions, that operate in place.
-       (g_strchug): renamed from g_str_chug(), removed in_place argument.
-       (g_strchomp): renamed from g_str_chomp(), removed in_place argument.
-       (g_strstrip): renamed from g_str_strip(), removed in_place argument.
-       (g_str_array_join): renamed from g_strconcatv(), since it actually
-       operates on a string array and has totaly different semantics from
-       g_strconcat(). check for separator != NULL, don't segfault if the first
-       string is NULL. removed the `const' from the string array that's passed,
-       so users can operate on gchar** string arrays.
-       (g_str_array_split): renamed from g_str_split() because we actually
-       produce a string array. reimplemented this function for efficiency.
-       removed macro aliases g_str_joinv and g_str_join.
-
-1998-10-20  Elliot Lee  <sopwith@redhat.com>
-
-       * glib.h, gstrfuncs.c: Move string join/split/free routines from
-       libgnome/gnome-string, rename, and add g_str_chug.
-
-1998-10-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: made the check for needed _ in module's func-names
-       work on solaris. (G_MODULE_NEED_USCORE must be set outside
-       AC_CACHE_VAL, dlopen(0,0) refused to work on solaris).
-
-Tue Oct 20 03:32:58 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * configure.in
-       * acconfig.h: added test for endianness
-
-       * glib.h: #define endian macros for system and some conversions
-       between byte order
-
-Thu Oct  8 06:47:27 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gdataset.c: removed functions g_dataset_id_set_destroy and
-       g_datalist_id_set_destroy and macros g_dataset_set_destroy and
-       g_datalist_set_destroy.
-       added new functions g_dataset_id_remove_no_notify and
-       g_datalist_id_remove_no_notify plus associated macros
-       g_dataset_remove_no_notify and g_datalist_remove_no_notify, which
-       will remove a certain data portion without invocation of its destroy
-       notifier, this should only be used in very controled circumstances.
-
-Wed Oct  7 05:31:24 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       removed the #pragma } statement after extern "C" {. use
-       (c-set-offset 'inextern-lang 0) to fixup emacs cc-mode indentation.
-
-       * glib.h:
-       * ghook.c: API and code cleanups. changed the G_HOOK_ACTIVE and
-       G_HOOK_IN_CALL enum vals to G_HOOK_FLAG_ACTIVE and G_HOOK_FLAG_IN_CALL.
-       changed the G_HOOK_IS_ACTIVE() and G_HOOK_IS_IN_CALL() macros to
-       G_HOOK_ACTIVE() and G_HOOK_IN_CALL().
-       fixed the g_hook_find* functions, so they iterate over non-active
-       hooks as well.
-       (g_hook_first_valid):
-       (g_hook_next_valid): added an extra argument gboolean may_be_in_call,
-       which indicates whether G_HOOK_IN_CALL() hooks are considered valid
-       or not. these two functions are meant as iterators for the hook list
-       invocation, so they need to a) provide functionality to implement
-       may_recurse bahaviour and b) only walk active hooks.
-
-Tue Oct  6 14:29:47 1998  Tim Janik  <timj@gtk.org>
-
-       * gmem.c (g_malloc0): fixed memory offsett when ENABLE_MEM_CHECK is
-       defined and ENABLE_MEM_PROFILE is not (patch from Martin Pool
-       <mbp@wistful.humbug.org.au>).
-
-Sat Oct  3 01:18:10 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * ghook.c:
-       (g_hook_list_invoke):
-       (g_hook_list_invoke):
-       (g_hook_list_marshal): properly handle the first valid hook to call,
-       it maybe IN_CALL already.
-       (g_hook_list_marshal): minor name change.
-
-Fri Oct  2 23:21:21 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * ghook.c: renamed GHook.id to GHook.hook_id so we don't get troubles
-       with ObjC which reserves "id" as a keyword (Raja R Harinath
-       <harinath@cs.umn.edu>).
-
-Wed Sep 30 10:53:03 1998  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am: added ghook.c.
-
-       * glib.h:
-       * ghook.c: generic callback maintenance functions.
-
-       * glib.h: define G_GNUC_UNUSED.
-
-Fri Sep 25 00:04:37 1998  Tim Janik  <timj@gtk.org>
-
-       * configure.in: version bump to 1.1.4, binary age 0, interface age 0.
-
-       * glib.h (struct _GScanner): dumped peeked_char and text_len in favour
-       of *text_end and *buffer for buffered read()s.
-
-       * gscanner.c: changed peeking and retrival of next character so we
-       have buffered reads. fixed minor bug with number parsing error
-       reporting. made some static!!! variables local ones (why did we use
-       static temporary variables in the lowlevel tokenization code anyways?).
-
-Mon Sep 21 23:23:10 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.3
-
-Mon Sep 21 07:43:13 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: added g_renew() which works as g_new() for g_realloc().
-
-Mon Sep 21 02:22:12 1998  Tim Janik  <timj@gtk.org>
-
-       * NEWS file update for upcoming release of GLib + GModule
-       version 1.1.3, binary age 0, interface age 0. (GModule uses
-       the same version numbers as GLib.)
-
-       * glib.h: swap the inclusion of of float.h and limits.h to work
-       around a egcs 1.1 oddity on Solaris 2.5.1 (fix provided by
-       Per Abrahamsen  <abraham@dina.kvl.dk>).
-
-       * glib.h:
-       * gscanner.c: renamed the GValue union to GTokenValue, this should
-       not affect source compatibility in most cases.
-
-       * ghash.c: added some g_return_if_fail() statements. make
-       g_hash_table_lookup_node() an inline function so we save an extra
-       function invocation on lookups.
-
-Sun Sep 20 18:21:46 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * ltmain.sh: Patch to libtool-1.2b to make --disable-static
-       work.
-
-Sun Sep 20 02:09:44 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
-
-       * glib.h: New function g_hash_table_foreach_remove is similar to
-       g_hash_table_foreach, but the callback's return value indicates
-       whether to remove the element (if TRUE) or not (if FALSE).
-       Returns the number of elements deleted.
-
-Fri Sep 18 11:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h
-       * gstrfuncs.c: added g_memdup implementation
-
-Fri Sep 18 18:46:14 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gdataset.c: make the datalists a safe type (not using a generic
-       gpointer) by expecting a GData* argument in the g_datalist functions.
-       provide g_dataset_foreach() and g_datalist_foreach() functions that
-       allow a GDataForeachFunc function to walk the data lists.
-       (g_dataset_destroy_internal): made this function truely reentrant (i.e.
-       can be called from within destroy notifiers as well).
-       the *_foreach functions are _not_ reentrant (unless all the other
-       dataset and datalist functions).
-
-Fri Sep 18 03:41:20 1998  Tim Janik  <timj@gtk.org>
-
-       * gtree.c (g_tree_new): check for key_compare_func != NULL (reported
-       by Michal Kara).
-
-Thu Sep 17 18:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * config.h.in: removed from repository
-
-       * install-sh
-       * missing
-       * mkinstalldirs: updated to latest automake version
-
-Thu Sep 17 06:36:25 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gdataset.c: implemented g_datalist_* along the lines of g_dataset,
-       but operates on an opaque gpointer *datalist; pointer, e.g. for the
-       implementation of GtkObject named data.
-       we cache a certain portion of the already freed data entries now, to
-       gain a slight performance improve with data reallocation.
-
-Tue Sep 15 14:57:30 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am glib-config.in l*: Update to libtool-1.2b,
-       change library versioning scheme to drop LT_RELEASE
-       from the -l line, while keeping it in the soname.
-
-Fri Sep 11 02:11:46 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: explicitely include the prototypes for inline functions
-       to cure gcc warnings for -Wmissing-prototypes.
-
-Wed Sep  9 02:52:04 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * configure.in: added -posix check for NeXTStep
-
-Tue Sep  8 05:04:06 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: abandon the use of ATEXIT(), we keep the fallback
-       macros for backwards compatibility. people ought to use g_atexit().
-
-       * gutils.c (g_atexit): new function to take over the implementation
-       of ATEXIT. this function is guarranteed to succeed, similar to
-       g_malloc().
-
-Mon Sep  7 20:07:38 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * configure.in: comment the -std1 check and save LIBS properly
-
-Mon Sep  7 07:53:21 1998  Tim Janik  <timj@gtk.org>
-
-       * configure.in: check for all three inline keywords individually.
-
-       * glib.h: inlining hassle. for compilers that don't allow the `inline'
-       keyword, mostly because of strict ANSI C compliance or dumbness, we try
-       to fall back to either `__inline__' or `__inline'.
-       we define G_CAN_INLINE, if the compiler seems to be actually *capable*
-       to do function inlining, in which case inline function bodys do make
-       sense. we also define G_INLINE_FUNC to properly export the function
-       prototypes if no inlinig can be performed. we special case most of the
-       stuff, so inline functions can have a normal implementation by defining
-       G_INLINE_FUNC to extern and G_CAN_INLINE to 1.
-
-       * ltconfig: (compiler PIC flag test): special case linux for non
-       aout systems to honour lcc's position independant code (cases
-       "linux*aout)" and "linux*)" got added). (this needs to go into
-       libtool which does an advanced test, checking for __LCC__).
-
-       * autogen.sh: take $CC=lcc into account by invoking automake with
-       --include-deps so lcc isn't scared by gcc's auto-dependancy
-       generation code. care about $ACLOCAL_FLAGS. optionally feature
-       autoheader.
-
-       * minor fixups in other places to cure some of lcc's warnings.
-
-Sun Sep  6 19:08:53 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * configure.in: added -std1 check for ANSI compliance (from gtk)
-
-Sun Sep  6 12:31:50 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h: provide proper ATEXIT behavior on NeXTStep by !atexit
-
-Sat Sep  5 18:03:36 1998  Tom Tromey  <tromey@cygnus.com>
-
-       * gutils.c (GLIB_INLINE): Define.
-       * glib.h (GLIB_INLINE): New define.
-       (g_bit_nth_msf): Use it.  Also, add prototype.
-       (g_bit_storage): Likewise.
-       (g_bit_storage): Likewise.
-
-Sat Sep  5 04:40:02 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       (g_chunk_new0): use g_mem_chunk_alloc0() to allocate the memchunk,
-       so the correct size of the memchunk is allocated with 0's and not
-       a memory portion of the size of the desired type.
-
-       * gmem.c: new function g_mem_chunk_alloc0() which will initialize
-       a memory area allocated with g_mem_chunk_alloc() with 0's.
-
-Wed Sep  2 19:13:28 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * garray.c glib.h (g_array_[ap/pre]pend_vals): make
-       data argument const.
-
-Wed Aug 26 06:32:40 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gstrfuncs.c: new function g_strnfill() to return a new string
-       of specified length, filled with a specific character.
-
-Tue Sep  1 23:46:31 1998  Josh MacDonald  <jmacd@axis.hip.berkeley.edu>
-
-       * testglib.c (main): Update the array tests.  Reduce the number of
-       iterations for the prepend test from 10000 to 100 since it is
-       O(n^2) and was taking longer than I would like to wait.
-
-       * garray.c: I've worked on the GArray interface, mostly.  It was
-       seriously broken before and I hate to do it, but this is going to
-       break some code.  It is important to do this now, because more and
-       more people are starting to use glib and the interface was both
-       broken and inconsistent.  First, rename the _truncate functions of
-       both the GArray and GPtrArray classes to _set_size, since this
-       function can also be used to extend the arrays.  GArray now
-       accepts two more initialization arguments: clear and element_size.
-       Instead of providing the type to each access function, the array
-       now stores the element size.  Clear, if set, causes the library to
-       zero element's memory as the array expands.  The major broken-ness
-       here was that array->len was in bytes, not elements.  Now, since
-       the array knows its element size, array->len is correct and I have
-       removed the g_array_length macro.  The only macro which now
-       accepts the type as an argument is g_array_index, which casts the
-       element to the right type--this interface does not change.  The
-       append and prepend functions simply need the types removed.
-       g_ptr_array_remove_index now returns the removed element.
-
-       * gprimes.c (g_spaced_primes_closest): Move this function out of
-       ghash.c and rename it from g_hash_closest_prime.  Fix the primes
-       so that they are actually prime (they weren't all -- isn't that
-       nice?).
-
-Mon Aug 24 02:08:56 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gstring.c:
-       * gstrfuncs.c:
-       (g_vsprintf): removed this function which was not publically
-       exported in glib.h. to export it, it should have been named
-       differently in the first place, since its semantics differ from
-       vsprintf(). apart from that, it was a possible cause for
-       problems since it worked on a previously allocated memory area and
-       was used in a lot places of glib. exporting it would have been a
-       guararant for problems with threaded programs.
-       (g_printf_string_upper_bound): exported this function to return
-       a string size, guarranteed to be big enough to hold the fully
-       expanded format+args string. added 'q', 'L' and 'll' flag handling.
-       in fact, the newly allocated area is in most cases much bigger than
-       required.
-       (g_strdup_vprintf()): new function returning a newly allocated string
-       containing the contents of *format and associated args (size is
-       calculated with g_printf_string_upper_bound()).
-       (g_strdup_printf): new function which wraps g_strdup_vprintf().
-
-       * configure.in: check for va_copy() or __va_copy() alternatively.
-       check whether va_lists can be copyied by value.
-
-       * glib.h: provide a definition for G_VA_COPY.
-
-       * glib.h:
-       * gmessages.c:
-       (g_logv):
-       (g_vsnprintf):
-       pass va_lists by value, not by reference, since this causes problems
-       on platforms that implement va_list as as arrays. internaly, use
-       G_VA_COPY (new_arg, org_arg); va_end (new_arg); to produce a second
-       va_list variable, if multiple passes are required. changed all
-       callers.
-
-       * glib.h:
-       * gerror.h:
-       renamed g_debug() to g_on_error_query(), cleaned up a bit.
-       renamed g_stack_trace() to g_on_error_stack_trace() since both
-       functions cluttered different namespaces.
-       there is an appropriate comment in glib.h now that explains the
-       unix and gdb specific dependencies of both functions.
-       removed g_attach_process().
-       g_on_error_stack_trace() should probably be handled with caution,
-       i've seem several different linux versions (2.0.x) become unstable
-       after invocation of this function.
-
-1998-08-18: Elliot Lee <sopwith@redhat.com>
-
-       * In gmem.c, add the ability to exclude memory chunks from the
-         memory profiling information.
-
-Tue Aug 18 18:23:09 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h
-       * gstrfuncs.c: added g_strndup
-
-Tue Aug 18 04:40:17 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gmessages.c: new function g_log_set_always_fatal() to set an
-       additional fatal_mask for log levels that are considered to be fatal
-       globally (required by gtk). since this mask is not domain-associated,
-       it is restricted to the log levels, introduced by glib itself.
-
-       * gmem.c:
-       * grel.c:
-       * gtree.c (g_tree_node_check):
-       don't use g_print() calls for informational/debugging output,
-       but log all this stuff through g_log() with G_LOG_LEVEL_INFO.
-       libraries shouldn't use printf(), g_print() or g_printerr() at all.
-
-Tue Aug 18 02:46:44 1998  Tim Janik  <timj@gtk.org>
-
-
-       * glib.h (__STRICT_ANSI__): if __STRICT_ANSI__ is defined, make
-       `inline' a noop, since strict ANSI rules don't permit `inline'.
-
-Mon Aug 17 15:21:42 1998  Tim Janik  <timj@gtk.org>
-
-       * grel.c: made private functions static.
-
-Sun Aug 16 23:23:46 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * gmodule/Makefile.am: added gmodule-dl.c and gmodule-dld.c to
-         EXTRA_DIST
-       * glib.spec: version = 1.1.3
-
-Mon Aug 17 01:46:14 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.m4: feature an extra MODULES parameter, so glib-config can
-       be invoked with the "gmodule" argument.
-
-       * glib.h: changed the log level to G_LOG_LEVEL_CRITICAL for all
-       g_return*_if_fail statements, and made them issue a message
-       like "assertion `%s' failed".
-
-       * gmessages.c (g_logv): ugh, don't pass log_domain as NULL to
-       g_log_find_domain.
-
-Sun Aug 16 20:28:27 1998  Tim Janik  <timj@gtk.org>
-
-        * version bump to 1.1.3, binary age 0, interface age 0.
-
-       * glib.h: be nice to platforms that don't have gint64 and don't
-       issue #warning on every compilation. since glib doesn't require
-       gint64 itself, packages that need gint64 should test for this
-       themselves.
-
-       * glib.h:
-       * gutils.c: added a new function g_vsnprintf().
-
-Sun Aug 16 Elliot Lee
-
-       glib.h: #error out if we don't recognize the SIZEOF_VOID_P
-               #warning if no gint64
-
-Fri Aug 14 16:41:53 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: added static inline functions for bit mask tests:
-       g_bit_nth_lsf, g_bit_nth_msf and g_bit_storage.
-
-Fri Aug 13 14:23:37 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gmessages.c:
-       revised the message handling system, which is now based on a new
-       mechanism g_log*. most of the assertment macros got adapted to
-       feature the new g_log() call with an additional specification of
-       the log level in a preprocessor macro G_LOG_DOMAIN. if G_LOG_DOMAIN
-       is undefined upon the includion of glib.h, it'll be defined with a
-       value of (NULL) and thus preserves the original bahaviour for
-       warning and error messages. the message handler setting functions
-       for g_warning, g_error and g_message are only provided for backwards
-       compatibility and might get removed somewhen.
-
-       * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
-       to "GLib" upon compilation. we currently have to add this definition
-       to the DEFS variable.
-       * testglib.c: we need an ugly #undef G_LOG_DOMAIN at the start
-       of this file currently, since automake doesn't support per target
-       _CFLAGS yet.
-
-       * glib.h: changed some gints to gbooleans, made a few const corrections,
-       removed some superfluous G_STMT_START{}G_STMT_END wrappers, added some
-       in other required places.
-
-       * gnode.c:
-       (g_node_prepend):
-       (g_node_insert_before):
-       (g_node_insert):
-       (g_node_append_data):
-       (g_node_prepend_data):
-       (g_node_insert_data_before):
-       (g_node_insert_data):
-       (g_node_append):
-       return (node), so these macros/functions can be usefully chained with
-       g_node_new().
-
-Mon Aug 10 17:56:11 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h: it's GTime now, and it's back!
-
-Mon Aug 10 02:17:19 1998  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am: minor hack to cause SUBDIRS (gmodule) to be build
-       last. we do this by making all-recursive-am depend on all-am.
-
-Sun Aug  9 15:56:11 1998  Tim Janik  <timj@gtk.org>
-
-       * configure.in: added GModule checks. generate files in gmodule/.
-       * glib-config.in: support library specifications `glib' and `gmodule'.
-       * Makefile.am: feature the gmodule/ subdir.
-
-Wed Aug  5 10:04:29 PDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.2
-
-Wed Aug 05 01:15:36 1998  George Lebl  <jirka@5z.com>
-
-       * testglib.c: fix 64-bitness in g_prints, sizeof doesn't
-         seem to return int so I cast it for printing, probably
-         just cosmetic
-
-Tue Aug  4 19:54:06 PDT 1998 Shawn T. Amundson <amundson@gkt.org>
-
-       * Released GLib 1.1.1
-
-Tue Aug  4 15:17:54 1998  Tim Janik  <timj@gtk.org>
-
-       * configure.in: version bump to 1.1.1, binary age 1, interface age 0.
-       * NEWS: updates.
-       * README: updates.
-       * INSTALL: updates and fixes.
-       * COPYING: include the GNU LGPL, rather than shipping an empty file.
-       * AUTHORS: listed original authors here, and added people who made
-       significant improvements to glib.
-
-       * glib.h:
-       * gutils.c: implement g_get_current_dir() which returns a newly
-       allocated string, instead of a g_getcwd() variant that operates
-       on a static buffer.
-       export glib_interface_age and glib_binary_age.
-       as a convenience, macro definitions have been added for
-       g_node_insert_data, g_node_insert_data_before, g_node_append_data and
-       g_node_prepend_data.
-
-       * testglib.c: minor cleanups, print current dir.
-
-Mon Aug  3 16:02:26 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gnode.c: change order of gpointer data; field in struct _GNode to
-       be partly binary compatible with GList and GSList.
-
-1998-08-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * garray.c (g_ptr_array_remove_index): bugfix: index check for
-       array has been wrong.
-
-Fri Jul 31 22:17:05 1998  Tim Janik  <timj@gtk.org>
-
-       * testglib.c (g_node_test): added a GNode test.
-
-Fri Jul 31 09:08:16 1998  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am: compile gnode.c.
-
-       * glib.h:
-       * gnode.c: added implementation of n-way trees.
-
-       * gtree.c (g_tree_traverse): added a warning to the switch() statement
-       which says that G_LEVEL_ORDER is not implemented.
-
-Mon Jul 27 00:17:30 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.1.0
-
-Mon Jul 27 01:02:27 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: #if 0'ed out the GTime definition, until it is definitively
-       needed. #if 0'ed out the g_getcwd() version, because it is the wrong
-       implementation.
-
-Sat Jul 25 16:09:00 1998  Mark Crichton <crichton@expert.cc.purdue.edu>
-
-       * glib.h: gtime changed to g_time.  gtime is used in
-       /usr/include/time.h in NetBSD, causing multiple headaches.
-       If this isn't the right way of fixing it.... ;)
-
-Thu Jul 23 00:29:14 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gscanner.c: new functions to make a scanner scope sensitive wrt
-       symbol lookups.
-       g_scanner_scope_foreach_symbol, g_scanner_scope_lookup_symbol,
-       g_scanner_scope_remove_symbol, g_scanner_scope_add_symbol and
-       g_scanner_set_scope.
-       g_scanner_add_symbol, g_scanner_remove_symbol and
-       g_scanner_foreach_symbol are now aliases for scope 0.
-
-Mon Jul 20 23:05:34 1998  George Lebl  <jirka@5z.com>
-
-       * glib.h: typo fixed for alphas for gint64
-
-Tue Jul 14 09:05:18 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gutils.c: new fuction g_dirname() which returns a newlly
-       allocated string.
-
-Fri Jul 10 06:33:43 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gutils.h: added a bunch of utility/wrapper functions:
-       g_basename(), g_getcwd(), g_get_user_name(), g_get_real_name(),
-       g_get_home_dir(), g_get_tmp_dir(), g_get_prgname() and g_set_prgname().
-
-       * gutils.c: removed all g_str* functions.
-       * gstrfuncs.c: moved the bunch g_str* functions from gutils.c in this
-       place. this file shall never include <unistd.h> to avoid clashes for
-       some of the g_str* functions on some OSes.
-
-Fri Jul 10 00:29:03 EEST 1998 Lauri Alanko <nether@gimp.org>
-
-       * glib.h:
-       * ghash.c: Renamed g_hash_table_lookup_full to
-       g_hash_table_lookup_extended to conform with naming conventions.
-
-Tue Jul  7 03:18:58 EEST 1998 Lauri Alanko <nether@gimp.org>
-
-       * glib.h:
-       * ghash.c: Generic cleanup, added a function:
-       (g_hash_table_lookup_full): Return whether the lookup succeeded,
-       and also retrieve the key and value. This allows one to
-       distinguish between failed lookup and finding a NULL, and also
-       allows one to free a key in the hash.
-
-Mon Jul  6 10:12:05 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * ltconfig: fix for properly detecting shared lib support on
-       SunPro cc (taken from libtool 1.2.a)
-
-Sat Jul  4 13:38:52 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h: added g_array_length
-
-Tue Jun 30 11:58:25 1998  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_unexp_token): take symbol_2_token into
-       account. react on valid/invalid string pairs.
-
-Sat Jun 27 21:55:46 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.m4: ftp.glib.org -> ftp.gtk.org, since glib.org isn't
-       ours. ;)
-
-Fri Jun 19 03:11:02 1998  Tim Janik  <timj@gtk.org>
-
-       * gdataset.c: removed g_dataset_try_key, g_dataset_force_id and
-       g_dataset_retrive_key in favour of GQuarks.
-       a GQuark is an numeric id wich is associated with a certain string.
-       (g_quark_try_string): try to get the quark associated with this string,
-       if the lookup failed return 0.
-       (g_quark_from_string): get the associated quark for a string, if there
-       isn't currently a GQuark associated with this string, then allocate a
-       new quark and return that.
-       (g_quark_from_static_string): like the above function, but the string
-       isn't strdup()ed to save memory.
-       (g_quark_to_string): get the string that is associated with a certain
-       GQuark.
-
-       * gdataset.c (g_dataset_id_set_data_full): invoke the destroy function
-       _after_ the new data has been setup.
-
-Thu Jun 18 02:35:21 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * glib.h: Changed messages for g_return_[val]_if_fail to
-       be somewhat more clear: assertion "blah" failed.
-
-1998-06-18  Federico Mena Quintero  <federico@nuclecu.unam.mx>
-
-       * testglib.c (main): Use GINT_TO_POINTER casts to remove compiler
-       warnings.
-
-       * grel.c: #include <string.h>
-
-Fri Jun 12 15:39:06 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h (GScanner): cleanups of the structure fields (binary
-       incompatible).
-
-Fri Jun 12 00:39:28 1998  Josh MacDonald  <jmacd@icw.EECS.Berkeley.EDU>
-
-       * glib.h: add new hash and equal functions g_int_*.  complement
-       g_direct_hash with g_direct_equal.
-
-       * grel.c: new file, GRelations implement tuples of N-N mappings.
-       A comment in glib.h briefly describes the interface.
-
-       * ghash.c: new function, g_hash_table_size
-
-       * glib.h: new typedefs, gsize, gssize, gtime.
-
-       * garray.c: new functions implementing a simplified GArray.  This
-       GPtrArray is an array of gpointers and has functions to add and
-       remove elements, much like java.lang.Vector.
-
-       * garray.c: new functions for the single-byte special case of
-       GArray.  The functions g_byte_array* operate on arrays of bytes.
-       Internally, a GArray is used.
-
-       * testglib.c: tests for g_ptr_array, g_byte_array, and g_relation...
-
-1998-06-11  Federico Mena Quintero  <federico@nuclecu.unam.mx>
-
-       * gdataset.c: #include <string.h>
-
-Thu Jun 11 04:15:31 1998  Tim Janik  <timj@gtk.org>
-
-        * glib.h:
-        * gdataset.c: new function g_dataset_retrive_key. adjusted prealloc
-        sizes, to take up less space on initial allocation.
-
-1998-06-10  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * acinclude.m4: New file.  Contains `libtool.m4' from libtool-1.2,
-       the version from which glib's libtool forked.  Needed for people
-       who use post-1.2 alphas of libtool.
-       * configure.in (enable_mem_check, enable_mem_profile): Replace
-       `echo -n' with AC_MSG_CHECKING.
-       (fd_set): Explain test for `fd_set' better.
-
-Wed Jun 10 19:29:51 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * Makefile.am glib.m4 configure.in:
-
-       Moved out from GTK+; added AM_PATH_GLIB macro.
-
-Wed Jun 10 12:56:07 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * glib.h: renamed g_const_pointer => gconstpointer
-
-Tue Jun  9 17:47:33 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * glib.h: Remove #error - HP/UX.
-
-Sat May 23 19:00:01 1998  Owen Taylor  <otaylor@gtk.org>
-  [ Combination of:
-     gtk-rrh-980412-0.patch (Raja R Harinath <harinath@cs.umn.edu>)
-     gtk-jbuhler-980516-0 (Jeremy Buhler <jbuhler@cs.washington.edu>) ]
-
-       * glib.h ghash.c gstring.c gdataset.c gutils.c:
-       - Added new typedef g_const_pointer; expunged all incorrect
-         uses of 'const gpointer'.
-       - Fixed up warnings that that created,
-       - Changed GHashFunc and GCompareFunc to take g_const_pointer
-         arguments. (Necessary, but will cause warnings in existing
-         code until fixed)
-       - Added other new const in harmless positions.
-
-Mon Jun  8 01:06:47 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: added enum-helper macros for code generation.
-       added G_BREAKPOINT().
-
-Sat Jun  6 14:09:22 PDT 1998 Manish Singh <yosh@gimp.org>
-
-       * gmem.c: commented out MEM_PROFILE and MEM_CHECK, causing weird
-       problems
-
-Wed Jun  3 06:19:42 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h (g_chunk_new0): convenience macro, for allocating small chunks
-       like g_chunk_new() with additional 0 initialization.
-
-Mon Jun  1 04:43:27 1998  Tim Janik  <timj@gtk.org>
-
-       * ghash.c (g_hash_table_insert): wrote a comment describing why
-       a hash node's key should not also get replaced when overriding
-       previous entries.
-
-Tue May 26 18:30:06 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h (g_string_sized_new): new function to controll the preallocated
-       size of a GString.
-
-       * glib.h (g_strreversed): new function to reverse a string.
-
-Mon May 18 22:14:39 1998  Owen Taylor  <otaylor@gtk.org>
-(Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp> : gtk-joke-980517-0.patch)
-
-       * gutils.c: Restored a missing prototype for g_vsprintf.
-
-Wed May 20 05:02:26 1998  Tim Janik  <timj@gtk.org>
-
-        * glib.h: conditionally define NULL, FALSE and TRUE.
-        (g_mem_chunk_create): new convenience macro as a short hand for
-        g_mem_chunk_new().
-        (g_chunk_free): new convenience macro to be consistent with g_chunk_new.
-
-Tue, 19 May 1998 09:00:02 +0200  Paolo Molaro <lupus@debian.org>
-
-       * gcompletion.c: generic functions for com<TAB>pletion...
-
-Sun May 17 10:48:27 1998  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_unexp_token): provide usefull default
-       specifications for identifier_spec and symbol_spec.
-
-       * glib.h: new functions g_slist_nth_data and g_list_nth_data to return
-       the data of the nth element in the list.
-
-Fri May 15 22:31:49 1998  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_unexp_token): removed spurious va_end(args)
-       that for some reason didn't produce a compiler warning on my machine
-       (is va_end defined to nothing for i386?).
-
-Fri May 15 12:32:08 1998  rodo  <doulik@karlin.mff.cuni.cz>
-
-       * gscanner.c: replaced some snprintf with g_snprintf
-
-Fri May 15 00:56:59 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: further support for gcc function attributes: G_GNUC_FORMAT,
-       G_GNUC_NORETURN and G_GNUC_CONST.
-
-       * gscanner.c (g_scanner_stat_mode): changed stat() to lstat().
-       (g_scanner_msg_handler): "\n" at end of line!
-       (g_scanner_foreach_symbol): new function to iterate over the symbol
-       table (GScanner does value-wrapping).
-
-Thu May 14 04:14:12 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h: typedef gint gboolean;
-       this is needed to provide portability with big-endian platforms (e.g.
-       try sizeof(bool) for c++ on big-endians - it's 4).
-       this is also needed to maintain some_union.d_gint==some_union.d_gboolean.
-       plus, gint to gboolean casts and vice versa need to be possible without
-       loss.
-
-Tue May 12 19:22:58 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * glib/glib.h: Added macros G[U]INT_TO_POINTER() and
-       GPOINTER_TO_[U]INT for storing small integers integers
-       inside pointers.
-
-       * glib/testglib.c: Print sizeof() results
-       as g_print("%ld", (glong)sizeof(foo)), to deal with
-       size_t being long on Alpha's.
-
-Tue May 12 16:54:15 1998  Owen Taylor  <otaylor@gtk.org>
-       (James A <jamesa@demon.net> : gtk-jamesa-980511-4.patch)
-
-       * glib.h gstring.c gmessages.c: Added some missing
-       const to arguments.
-
-       * gutils.c (g_strsignal.c): Added missing return statements.
-
-Mon May 11 21:11:54 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * gutils.c gmessages.c: Moved g_error, g_warning, g_message and
-       g_print from gutils.c to new file gmessages.c, to avoid having to
-       include <unistd.h> in gutils.c which was causing problems for the
-       g_strsignal implementation on FreeBSD boxes.
-
-Mon May 11 09:53:43 1998  Tim Janik  <timj@gtk.org>
-
-       * configure.in: preserve automake CFLAGS.
-
-       * Makefile.am: fully rename the created library to libglib-1.1.la.
-       this means we need to change certain portions of the Makefile.am on
-       major/minor version bumps.
-
-       * ltmain.sh: the -release option is not required anymore.
-
-        * glib.h: provide G_GNUC_FUNCTION and G_GNUC_PRETTY_FUNCTION to
-       avoid conditionals. unconditionally define NULL, TRUE, FALSE, MAX,
-       MIN, ABS and CLAMP, these macros might be screwed from other headers.
-
-Mon May 11 01:44:10 1998  Tim Janik  <timj@gtk.org>
-
-       * gdataset.c: new file, gdatasets implement the object data
-       mechanism from GtkObject. a generic data pointer is associated with
-       a certain location and a key id.
-
-Sat May  9 20:08:12 1998  Owen Taylor  <otaylor@gtk.org>
-
-        * glib/gmem.c: Experimentally restore GMemChunk
-        to its primeval state - where mem areas are
-        freed incrementally instead of searching the tree
-        every time a mem area is completely empty. Also,
-        always keep one mem chunk around. (Reduced calls
-        to malloc() a lot, but doesn't really improve
-        performance significiantly)
-
-Thu May  7 08:17:28 1998  Tim Janik  <timj@gtk.org>
-
-       * glib.h (G_GNUC_PRINTF):
-       (G_GNUC_SCANF): macros to facilitate the printf/scanf format argument
-       checking of gcc.
-
-       * gstring.c: const corrections, string!=NULL checks at function entry.
-       (g_string_down): new function for tolower(3) conversion.
-       (g_string_up): new function for toupper(3) conversion.
-
-       * gutils.c: const corrections.
-       (g_strdown): g_string_down() counterpart.
-       (g_strup): g_string_up() counterpart.
-
-       * gscanner.c (g_scanner_unexp_token):
-       (g_scanner_error):
-       (g_scanner_warn): new functions to let a scanner put out warnings
-       or errors, especially to react on unexpected tokens.
-
-       * gslist.c:
-       (g_slist_index): find out about about the position of a
-       certain data pointer.
-       (g_slist_position): find out about about the position of a
-       certain node.
-
-       * glist.c:
-       (g_list_index): find out about about the position of a
-       certain data pointer.
-
-Thu May  7 05:14:19 1998  Tim Janik  <timj@gtk.org>
-
-       * ltmain.sh: added a new commandline flag -postfix similar to -release,
-       but will immediately change the library name.
-
-       * Makefile.am: specify -postfix and -version-info
-
-       * configure.in: version bump to 1.1.0. added GLIB_INTERFACE_AGE and
-       GLIB_BINARY_AGE. calculate LT_* variables for libtool.
-
-Fri May  1 16:36:08 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * gutils.c: (g_strcasecmp). Check for isupper before
-       taking tolower, and account for macroized tolower.
-
-       * gutils.c (g_error): Check for recursion.
-
-1998-04-27  Elliot Lee  <sopwith@cuc.ml.org>
-
-       * glist.c (g_list_position): New function to find the position of
-       a link in a list - should be the inverse of g_list_nth(), but
-       haven't tested it so poof.
-
-Thu Apr 30 21:41:30 1998  Owen Taylor  <otaylor@gtk.org>
-
-       * gstring.c : Check arguments more carefully,
-       (gtk-draco-980423-1.patch; ramsey@rhrk.uni-kl.de)
-
-Tue Apr  7 19:36:48 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * gutils.c (g_direct_compare): Removed, because that's what
-       a NULL comparison function means. And it wasn't 64 bit safe.
-
-Mon Apr  6 18:43:25 1998  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_get_token_ll): fixed a bug that caused floats
-       of the format ".xxx" to be parsed as "xxx".
-
-Fri Apr  3 20:36:35 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * gutils.c (g_parse_debug_string): Make debug string
-       parsine case-insensitive
-
-Fri Apr  3 17:03:18 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * gstring.c: corrected possible overrun when inserting into
-       GStrings (thanks Elrond)
-
-Fri Apr  3 18:05:45 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * testglib.c: Removed literal german from strings
-       to appease SGI compiler.
-
-Thu Mar 26 20:47:21 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * configure.in glib glibconfig.h.in: Add test for atexit/on_exit -
-       use on_exit if atexit not found in definition of ATEXIT.
-
-Wed Mar 25 15:23:37 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * Makefile.am: Switched glibconfig.h rule from HEADERS
-       to DATA, so that it is not added to DISTFILES
-
-Wed Mar 18 22:27:08 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * garray.c: g_rarray_truncate length done correctly
-
-Sun Mar 15 07:13:34 1998  Tim Janik  <timj@gimp.org>
-
-       * gutils.c: changed *_handler variables to be named glib_*_handler,
-       so you can easily access them from gdb.
-
-Sat Mar 14 17:47:43 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * Makefile.am: Don't refer to current directory as $(top_builddir)
-       to avoid confusing non-gmakes
-
-Sat Mar 14 01:37:35 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * Makefile.am (configincludedir): Moved glibconfig.h to
-          $(pkglibdir)/include
-
-Tue Mar 10 02:03:12 1998  Tim Janik  <timj@gimp.org>
-
-       * gscanner.c (g_scanner_destroy_symbol_table_entry): new function to
-       free symbol table entries upon destruction
-       (gtk-gronlund-980309-0.patch.gz).
-
-Mon Mar  9 15:02:21 1998  Tim Janik  <timj@gimp.org>
-
-       * glib.h: changed *_length functions to return guint.
-       changed *_nth functions to take guint as argument.
-
-       * glist.c: adapted g_list_length and g_list_length.
-
-       * gslist.c: adapted g_slist_length and g_slist_length.
-
-Mon Mar  2 17:51:18 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * glib.h gutils.c : changed g_strcasecmp
-         to take gchar* not guchar*
-
-       * testglib.c: Remove trailing ; after functions
-
-Sun Mar  1 19:04:40 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * glib.h gstring.c: Added g_string_insert[_c]()
-         and g_string_erase().
-
-         From: Stefan Wille  <1wille@vsys1.informatik.uni-hamburg.de>
-
-Mon Feb 16 23:05:06 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * glist.c (g_list_insert_sorted): Changed function
-         so elements are always inserted, even if they compare
-         equal with another.
-
-Thu Feb 12 22:48:11 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * gstring.c glib.h: removed deprecated g_string_equal
-         and g_string_hash.
-
-Tue Feb 10 13:04:36 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * configure.in: Add check to see if the C library's
-         iswalnum can actually be used. (Not true for
-         Linux libc-5.4.38)
-
-Sat Feb  7 11:48:09 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * gstring.c gutils.c: added some additional consts in
-         appropriate places to remove a warning
-
-Sat Feb  7 11:15:54 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * gutils.c: include <ctype.h> for tolower()
-
-Fri Jan 30 23:57:17 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * added and autoconfigured in a new utility function
-       g_strcasecmp
-
-Wed Jan 28 23:53:27 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * glist.c
-       * gslist.c
-       * testglib.c: the sort functions compared backwards. Fixed
-       * glib.h: list iterator macros now check for NULL pointers
-
-Tue Jan 27 09:46:57 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * gstring.c: g_string_prepend and g_string_prepend_c had
-       interchanged src and dest parameters for g_memmove. Fixed.
-
-Tue Jan 27 01:38:52 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * gslist.c: fixed a really, really lame error. g_slist_insert
-       didn't hook the data in! Reworked the routine to reflect the
-       functionality of g_list
-
-Wed Jan 21 01:13:25 1998  Tim Janik  <timj@psynet.net>
-
-       * Applied patch from (Raja R Harinath <harinath@cs.umn.edu>)
-         to add function g_snprintf.
-        * configure.in (AC_CHECK_FUNCS): Check for vsnprintf.
-        * glib.h: Add prototype for g_snprintf.
-        * glibconfig.h.in: Add HAVE_VSNPRINTF.
-        * gutils.c (g_snprintf): new function.
-
-Sat Jan 17 23:52:40 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * gstring.{c,h} gscanner.c:
-          renamed g_string_equal => g_str_equal
-          renamed g_string_hash => g_str_hash
-         And const corrected. Old functions left in for now.
-
-Fri Jan  9 20:03:46 1998  Tim Janik  <timj@psynet.net>
-
-       * gutils.c (g_strerror): changed message for EAGAIN from
-       "no more processes" to "try again" since EAGAIN is used with
-       functions else than fork().
-
-       * gscanner.c (g_scanner_get_token_ll): use strtol() instead of
-       strtoul() to avoid conflicts with solaris.
-
-       * merged the glib portions from Jan 2 to Jan 7 out of gtk+/ChangeLog
-       into this file.
-
-Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
-
-       * glib.h:
-       * glist.c:
-       * gslist.c:
-       * testglib.c: Added g_[s]list_insert_sorted function
-       and appropriate tests in testglib
-
-Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
-
-       * glib.h: Changed guint32 -> guint for bitfields.
-       (Bitfields must be int or unsigned int?)
-
-Fri Jan  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
-
-       * glib_pre1.h:
-       * glib_pre2.h:
-       * glib.h: reverted glibconfig.h and glib.h files back to the
-       way they were before my ugly hack.
-
-       * gscanner.c: removed inlines from clist and gscanner
-
-Tue Dec 23 02:49:51 1997  Tim Janik  <timj@psynet.net>
-
-       * gscanner.c: new file for GScanner: Flexible lexical scanner for
-       general purpose.
-       * glib_pre2.h: added GScanner includes. added g_strconcat and g_strtod.
-       gutils.c (g_strconcat): new function for string concatenation of NULL
-       terminated parameter list.
-       (g_strtod): new function to perform best string to double conversion
-       with or without consideration of the current locale.
-
-Mon Dec 15 19:33:58 1997  Tim Janik  <timj@psynet.net>
-
-       * glist.c: minor optimizations:
-       (g_list_append): `if' optimized for common code path, commented out
-       unneccessary `assert', saved one variable assignment.
-       (g_list_prepend): saved two (conditioned) variable assignment.
-       (g_list_insert): saved one  (conditioned) variable assignment,
-       saved one variable assignment.
-       (g_list_remove): `if' optimized for common code path, saved two
-       variable assignments by using `g_list_free_1' (which is even
-       faster) instead of `g_list_free'.
-       (g_list_reverse): saved allocation of one variable, saved one
-       variable assignment.
-
-Wed Dec 10 23:27:20 1997  Tim Janik  <timj@psynet.net>
-
-       * glib_pre1.h:
-       * glib_pre2.h:
-       * glib.h: this file now gets concatenated by makeglib_h from
-       glib_pre1.h and glib_pre2.h to merge in glibconfig.h wich got
-       created by configure (done by Jay Painter).
-
-       * glib_pre2.h: the g_assert*() and g_return_*_fail() macros
-       are wrapped by G_STMT_START and G_STMT_END now, to avoid conflicts
-       when used within if (...) g_macro(); else ... conditionals.
-
-Tue Dec 17 13:14:07 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
-
-       * glib.h: Changed 'g_return_if_fail' and 'g_return_val_if_fail' to
-       not call 'g_string' but to simply stringify the
-       expression. Calling 'g_string' causes the expression to be
-       expanded which is undesired.
-
-Sun Dec  1 01:30:48 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
-
-       * Started ChangeLog
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
deleted file mode 100644 (file)
index 5eb3071..0000000
+++ /dev/null
@@ -1,7225 +0,0 @@
-Fri Mar  8 10:58:28 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * ======== Released 2.0.0 ========
-
-Fri Mar  8 10:20:46 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * NEWS: Final updates for 2.0.0
-
-       * glib/gstrfuncs.c: Convert the results of strerror()
-       and strsignal() to UTF-8.
-
-       * glib/gconvert.c glib/gdir.c glib/giochannel.c glib/giounix.c
-       glib/giowin32.c: Use g_strerror(), not strerror().
-
-Fri Mar  8 00:15:29 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * README.in: Updates.
-
-       * README.in: Add warnings about current encoding problems with .po
-       files and error logging functions.
-
-       * configure.in: Check for bind_textdomain_codeset().
-
-       * glib/gutils.c (_glib_gettext): Call 
-       bind_textdomain_codeset, if present.
-
-       * INSTALL.in: Some updates.
-
-       * AUTHORS: Updates.
-
-       * Makefile.am (EXTRA_DIST): Remove TODO.xml from EXTRA_DIST.
-
-       * docs/Makefile.am (EXTRA_DIST): Remove Changes-2.0.txt
-       from EXTRA_DIST.
-
-2002-03-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Fixed recognition of dce. Do not use -lc_r on
-       OpenBSD and FreeBSD. Instead use -pthread. Move scheduling
-       parameter check to after the case..esac block for finding the
-       right thread libs. (#73686)
-
-Tue Mar  5 19:41:02 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * GTK+-2.0.0 rc1
-
-2002-03-05  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmain.c (g_source_set_priority): Finish docs.  
-       (#67064)
-
-Tue Mar  5 00:38:54 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gutils.c (g_get_any_init): Where we have
-       getpwuid[_r], use that in preference to $HOME, and
-       only check $HOME as a fallback if getpwuid fails.
-       (#2311)
-
-Sun Mar  3 21:09:24 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Default to --disable-gtk-doc, to avoid
-       Jade setup hassles.
-
-       * autogen.sh: Add --enable-gtk-doc.
-
-       * configure.in: Default to --disable-static to go
-       along with Pango, GTK+ where we need to do that for
-       bin-compat reasons.
-
-       * Makefile.am: Add a slightly modified distcheck rule
-       that passes --enable-gtk-doc to the configure inside.
-       (So that 'make dist' succeeds inside.)
-
-       * configure.in *.pc.in **/Makefile.am m4macros/glib-2.0.m4
-       tests/makefile.mingw.in: Switch everything over to
-       glib-2.0.
-
-Sun Mar  3 02:30:05 2002  Tim Janik  <timj@gtk.org>
-
-       * glib/gscanner.h (_GScannerConfig): added padding.
-
-       * glib/ghook.h (struct _GHook): add two padding pointers.
-
-Thu Feb 28 11:13:49 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gshell.c (g_shell_unquote): Fix memory leak.
-       (#72990, Paolo Maggi)
-
-2002-02-28  Sven Neumann  <sven@gimp.org>
-
-       * m4macros/glib-2.0.m4: nicer output of configure --help.
-
-2002-02-27  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/gdate.c (g_date_strftime): Remove the shortcut
-       for UTF-8 locales to ensure consistent behaviour.  Fix
-       handling of the strftime return value, and avoid looping
-       if strftime is buggy and constantly returns 0.  Always
-       return 0 if the output buffer was to small. (#72544)
-
-Tue Feb 26 21:44:01 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * config.status config.guess: Remove these files
-       from CVS so we more-or-less current versions from
-       automake --add-missing. (Reported by Finlay Dobbie,
-       #60342)
-
-2002-02-26  Matthias Clasen  <maclas@gmx.de>
-
-       * docs/debugging.txt, gobject/glib-genmarshal.c,
-       gobject/glib-genmarshal.1, gobject/Makefile.am, gobject/gtype.c:
-       Remove references to gruntime. This includes renaming the test
-       program testgruntime to testgobject and the debug envvar
-       GRUNTIME_DEBUG to GOBJECT_DEBUG.  (#50877)
-
-Tue Feb 26 14:56:31 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-2.0.pc.in: Reorder @INTL_LIBS@ and @ICONV_LIBS@ in case
-       -lintl depends on -licon. (Miroslaw Dobrzanski-Neumann #72708)
-
-Mon Feb 25 23:01:53 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in acconfig.h config.h.win32.in
-       glib/gconvert.c: Check for iconv_* in -liconv
-       as well as libiconv_* in -liconv since AIX ships
-       the system iconv in a separate library.
-       Patch from Miroslaw Dobrzanski-Neumann (#72569) 
-
-Mon Feb 25 22:46:29 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gdebug.h: Fix trailing , in enumeration
-       Miroslaw Dobrzanski-Neumann (#72574)
-       
-Mon Feb 25 21:58:01 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/guniprop.c (g_unichar_toupper/lower): Account
-       for some characters having now uppercase/lowercase
-       equivalents in code, docs. (#65416)
-
-Mon Feb 25 16:31:09 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gshell.c (tokenize_command_line): Fix quoting
-       of \' sequence (#72548, Christian Rose)
-
-2002-02-24  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Edits.
-
-       * config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
-       _FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
-
-       * glibconfig.h.win32.in: Add the gcc-2.95.x undef of
-       G_HAVE_ISO_VARARGS.
-
-Sat Feb 23 21:36:51 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: 1.3.15, binary, interface age 0.
-
-       * NEWS: Updated.
-
-Sat Feb 23 14:54:13 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.h (struct _GIOChannel): Add a little bit
-       of padding.
-       
-       * glib/gmain.h (struct _GSource): Add a little bit of padding.
-
-2002-02-21  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gdebug.h: New header containing GTK_DEBUG-style debugging
-       support for GLib. Currently only the fatal_warnings debug option exists. 
-
-       * glib/gmessages.c (g_log_msg_prefix_init): New one-shot function
-       for parsing G_MESSAGES_PREFIXED.
-       (_g_debug_init): New one-shot function for parsing G_DEBUG.
-       (g_log_write_prefix): Use g_log_msg_prefix_init().
-       (g_messages_init): Use g_log_msg_prefix_init() and _g_debug_init().
-
-       * glib/Makefile.am (libglib_1_3_la_SOURCES): Add gdebug.h.
-
-Wed Feb 20 22:35:42 2002  Owen Taylor  <otaylor@redhat.com>
-
-       Fixes from Miroslaw Dobrzanski-Neumann (#71963)
-
-       * glib/giounix.c (g_io_channel_new_file): Fix trailing comma
-       in enum.
-
-       * configure.in: Check for unsetenv.
-
-       * test/uri-test.c: Fall back to trying putenv(VARNAME) if
-       unsetenv isn't present.
-
-2002-02-20  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/gstring.[ch] (g_string_erase): Use gssize instead of
-       gsize as type of the pos and len arguments. (#71964)
-
-2002-02-20  Simos Xenitellis  <simos@hellug.gr>
-
-       * configure.in: Added el to ALL_LINGUAS (Greek language).
-
-2002-02-19  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32.c: Include <config.h> first here, too. Use
-       g_io_channel_read_chars() instead of (deprecated)
-       g_io_channel_read(). Set encoding to NULL for the channels used
-       for the pipes from the child.
-
-       * glib/giowin32.c (buffer_read): Do return G_IO_STATUS_EOF when
-       EOF has been reached. Otherwise, with the above change to
-       gspawn-win32.c, spawn-test hangs.
-
-Mon Feb 18 20:18:23 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/libcharset/Makefile.am (EXTRA_DIST): Remove
-       charset.alias from EXTRA_DIST; we don't want the
-       charset.alias from the make distcheck machine
-       on the target system!. (#70974, reported by
-       Ryan Lovett)
-
-Mon Feb 18 12:40:36 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Turn off ISO varargs support for gcc-2.95
-       since it causes problems with ANSI and we we have GNUC
-       varargs. (#70024, reported by Morten Welinder, fix from
-       James Henstridge)
-
-Sun Feb 17 11:37:06 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * 1.3.14
-
-       * glib/glibintl.h: Error out of config.h wasn't included
-       rather than including it, since config.h must be the 
-       first thing included.
-
-       * glib/gconvert.c glib/gmarkup.c glib/gshell.c glib/gspawn.c
-       glib/gunibreak.c glib/gunidecomp.c glib/guniprop.c: 
-       Include config.h as the first thing. (#71704, Morten
-       Welinder)
-
-Fri Feb 15 11:41:42 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: 1.3.14, binary age 0, interface age 0.
-
-Fri Feb 15 10:41:51 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * NEWS: Updated.
-
-       * configure.in: Require autoconf-2.52, run AC_SYS_LARGEFILE.
-       (#71410, Sven Neumann)
-
-       * glib/giounix.c glib/giowin32.c glib/giochannel.[ch]:
-       Change offset type for g_io_channel_seek[_position] to
-       gint64.
-
-2002-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * tests/thread-test.c: Do not assume, that after
-       g_usleep(G_USEC_PER_SEC) the newly started thread began
-       running. Spotted by Miroslaw Dobrzanski-Neumann
-       <mne@mosaic-ag.com>. Make the test_g_static_rw_lock_thread threads
-       wait a random time. Make the test_g_static_rw_lock test run 5
-       seconds, not 1.
-
-2002-02-14  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gmessages.c (g_logv): Use the #if branch with
-       G_BREAKPOINT() also on Win32. Remove the separate __asm int 3 for
-       MSVC, G_BREAKPOINT() does exactly that.
-
-2002-02-14  James Henstridge  <james@daa.com.au>
-
-       * m4macros/glib-gettext.m4: add third argument to the AC_DEFINE
-       calls, so users of the macro don't need to add entries to
-       acconfig.h in their package.
-
-2002-02-13  Havoc Pennington  <hp@redhat.com>
-
-       * glib/gmain.c (g_main_context_check): never dispatch sources of
-       mixed priority, because while iterating over the dispatch array a
-       new source with more priority may be added, while a source with
-       less priority remains in the dispatch array
-
-2002-02-11  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gmessages.h: Use "if (expr) { } else" as I meant to in the
-       first place. The other form can trigger warnings in some compilers
-       that suspect a ";" after "if (expr)" is an error.
-
-2002-02-11  Manish Singh  <yosh@gimp.org>
-
-       * glib/gmessages.h: need statement terminators for the if clauses for
-       the preceding change.
-
-2002-02-11  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gmessages.h: Use "if (expr) else" rather than
-       "if (!(expr))" so the parentheses don't disable the gcc
-       warnings about = vs. ==.
-
-2002-02-11  jacob berkman  <jacob@ximian.com>
-
-       * glib/gmarkup.h (g_markup_error_quark): match the signature in
-       the implementation
-
-2002-02-10  Hans Breuer  <hans@breuer.org>
-
-       * glib/gfileutils.c : no sym links on win32, no lstat in msvcrt
-
-       * tests/makefile.msc.in : added uri-test
-
-2002-02-09  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gmarkup.c: (xml_isspace): New.
-       (skip_spaces): g_unichar_isspace -> xml_isspace
-       * glib/gstrfuncs.c: (g_ascii_strtod): isspace -> g_ascii_isspace
-       isxdigit -> g_ascii_isxdigit, isdigit -> g_ascii_isdigit
-
-2002-02-09  Matthias Clasen  <matthias@local>
-
-       * tests/markups/valid-4.gmarkup: Test attribute value delimiters.
-
-       * glib/gmarkup.c (g_markup_parse_context_parse): Support 
-       ' and " as attribute value delimiters.  (#70677)
-
-2002-02-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Make --disable-threads work again. (#71034)
-
-Fri Feb  8 23:52:27 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/gvaluetransform.c: Register transformations for
-       gint64, guint64. (#70780, patch from Andy Wingo)
-
-       * configure.in: Handle missing G_GINT64_FORMAT, 
-       G_GUINT64_FORMAT ... harder to require GNU libc than GCC.
-
-       * NEWS: Some cleanups that I had setting around.
-
-2002-02-08  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gconvert.h: Make hostname parameter const char *.
-       * glib/gconvert.c: (g_unescape_uri_string): Added a new
-       "ASCII must not be escaped" feature, and some missing error
-       checking.
-       (is_escalphanum): New.
-       (is_escalpha): New.
-       (hostname_validate): New.
-       (g_filename_from_uri): Don't allow hostnames to include
-       escaped ASCII, validate hostnames with the new
-       hostname_validate.
-       (g_filename_to_uri): Validate hostnames with the new
-       hostname_validate.
-
-       * tests/uri-test.c: Updated tests to reflect the hostname
-       validation changes above.
-
-       * glib/gdate.c: (g_date_fill_parse_tokens): Remove the
-       <ctype.h> include and do isdigit -> g_ascii_isdigit.
-
-Fri Feb  8 12:32:14 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/hash-test.c (second_hash_test): Fix access to
-       freed memory in test case (Miroslaw Dobrzanski-Neumann).
-       Re-enable and debug some commented out code.
-
-2002-02-08  Michael Natterer  <mitch@gimp.org>
-
-       * glib/gdir.c: g_dir_open: added g_return_val_if_fail() to prevent
-       us from calling opendir(NULL) (which simply crashes).
-
-2002-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gfileutils.c (g_file_test): Extended documentation.
-
-2002-02-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gfileutils.c (g_file_test): Do not follow symbolic links
-       for G_FILE_TEST_SYMLINK. Also fixed the correct "OR"-behaviour for
-       G_FILE_TEST_IS_EXECUTABLE and G_FILE_TEST_EXISTS. (#60048)
-
-2002-02-07  Changwoo Ryu  <cwryu@debian.org>
-
-       * configure.in (ALL_LINGUAS): Added "ko".
-
-Wed Feb  6 14:44:18 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_main_context_prepare): Handle 
-       NULL entries (already dispatched) in pending_dispatches array 
-       (pointed out by Manish Singh)
-
-Tue Feb  5 17:13:02 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_main_context_prepare): Unref pending
-       dispatches when discarding them.
-
-2002-02-04  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gthread.c (g_thread_create_full): Delay allocation until
-       after all g_return_val_if_fail ().
-
-       * glib/gthread.h: Make depth member guint for cosmetic reasons.
-
-       * glib/gthread.c: (g_static_rec_mutex_unlock_full): depth should
-       be unsigned. All that spotted by Jörgen Viksell
-       <jorgen.viksell@telia.com>
-
-2002-02-02  Manish Singh  <yosh@gimp.org>
-
-       * glib/gmain.c
-       * glib/gtree.c: remove references to deprecated functions in docs
-       and warning message.
-
-2002-01-31  jacob berkman  <jacob@ximian.com>
-
-       * glib-gettextize.in:
-       * m4macros/glib-gettext.m4 (AM_GLIB_GNU_GETTEXT): remove
-       references to po2tbl
-
-2002-01-29  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gmarkup.c (g_markup_parse_context_parse): Change the
-       order in which some error conditions are checked to improve
-       error messages. (#69646)
-
-Tue Jan 29 15:04:31 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * 1.3.13
-
-       * tests/shell-test.c: Workaround for MSVC bugs. (#61064)
-
-Tue Jan 29 14:06:22 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * NEWS: Update to include last change. 
-
-2002-01-21  Jeffrey Stedfast  <fejj@ximian.com>
-
-       * glib/gconvert.c (open_converter): Rewritten to cache iconv
-       conversion descriptors. On at least some Unix systems like
-       Solaris, iconv_open() must dlopen the necessary charset modules in
-       order to setup the descriptor. This can take a major toll on
-       performace if you are constantly opening and closing conversion
-       descriptors for the same charset conversions over and over.
-       (g_convert_with_fallback): Use close_converter() rather than
-       g_iconv_close() since open_converter() now caches iconv
-       descriptors.
-
-Tue Jan 29 11:18:44 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * NEWS: Updated.
-
-       * configure.in: Micro == 13, binary age, interface age 0.
-       [ binary breakage was return type of g_signal_connect_object(),
-       probably could have used binary age == 0, but a little safer not to.]
-
-       * configure.in: Remove configure warning.
-
-2002-01-28  Havoc Pennington  <hp@pobox.com>
-
-       * glib/gmarkup.c (add_attribute): NULL-terminate
-       context->attr_values so g_strfreev() is safe. 
-       Would previously crash if parsing was ended prior 
-       to ending the start tag.
-       (g_markup_parse_context_parse): add a couple assertions
-
-2002-01-28  Havoc Pennington  <hp@redhat.com>
-
-       * glib/gmacros.h: get rid of warning here
-
-Mon Jan 28 17:56:10 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmacros.h: Only use __FUNCTION__, __PRETTY_FUNCTION__ for
-       G_GNUC_FUNCTION, G_GNUC_PRETTY_FUNCTION, G_STRLOC when __GNUC__ <
-       3, since in 3.0.3 the semantics of these functions were changed in
-       an incompatible way. (#69097)
-
-2002-01-28  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: Some documentation fixes/elaborations
-       I really should have gotten in a long time ago
-
-2002-01-24  Sven Neumann  <sven@gimp.org>
-
-       * glib/gutf8.c (g_utf8_to_utf16): removed an empty line in the
-       inline documentation that confused gtk-doc.
-
-2002-01-23  Laszlo Peter  <laca@ireland.sun.com>
-
-       * glib/gmessages.c (g_printf_string_upper_bound): return 1 more
-       for the trailing '\0' when using vsnprintf. (#69474)
-
-2002-01-23  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gconvert.c: (strdup_len): Not used on Windows, don't even
-       compile it then.
-
-       (acceptable): Improve comments for the _acceptable_ table: put
-       each ASCII char above the hex number for it.
-
-       (g_escape_file_uri): On Windows, turn backslashes in the file name
-       into plain ("forward") slashes.
-
-       (g_filename_from_uri): On Windows, don't return the hostname
-       "localhost", because we can not be 100% sure it will be recognized
-       in all cases anyway, so simpler to turn it into a null
-       hostname. 
-
-       Change slashes in the filename into backslashes, as that is the
-       more canonical separator.
-
-       Recognize drive letters (either followed by a colon or a vertical
-       bar, as used by some browsers), and if the filename part starts
-       with a such, don't include any (back)slash.
-
-       Don't drop any extra leading slash in the filename on Unix.
-
-       (g_filename_to_uri): On Windows, if the hostname is "localhost",
-       don't use it, for consistency with g_filename_from_uri().
-       
-       * tests/uri-test.c: Change accordingly, so that all tests pass on
-       Windows. Unix, too, I hope, though I couldn't check that now.
-
-       (main): Unset the G_BROKEN_FILENAMES environment variable on Unix,
-       as some tests require that filenames are in UTF-8. Is unsetenv()
-       portable?
-
-       These changes should fix bugs #59387, #59652, #59657 and #59658.
-       
-2002-01-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Get the right multithread option for GCC 3.0 and
-       later on AIX. (#67583)
-
-2002-01-21  Jeffrey Stedfast  <fejj@ximian.com>
-
-       * glib/gconvert.c (g_convert_with_fallback): If g_convert fails,
-       set bytes_written to 0 and close the iconv descriptor that was
-       opened a few lines above. On a successful return, calculate
-       bytes_written to be outp - dest instead of outp - str.
-
-2002-01-16  Sven Neumann  <sven@gimp.org>
-
-       * acinclude.m4
-       * m4macros/glib-gettext.m4: removed the --disable-nls option. You
-       can't disable Native Language Support since we rely on it.
-
-       * configure.in: nicer --help output.
-
-Tue Jan  8 11:33:28 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * docs/Makefile.am (EXTRA_DIST): Add text files to EXTRA_DIST.
-       (#68239, Matthias Clasen)
-
-2002-01-07  Zbigniew Chyla  <cyba@gnome.pl>
-
-       * configure.in (ALL_LINGUAS): Added pl.
-
-2002-01-05  Hans Breuer  <hans@breuer.org>
-
-       * glibconfig.h.win32.in 
-         msvc_recommended_pragmas.h (new file) : moved warning to
-       error pragmas to their own file to not force 'good practice'
-       programming in downstream libs and apps. Instead the new header
-       will be used by -FImsvc_recommended_pragmas.h in gnome/cvs
-       makefile.msc
-       * */makefile.msc.in : use -FImsvc_recommended_pragmas.h
-
-       * makefile.am : add msvc_recommended_pragmas.h to EXTRA_DIST
-
-2001-12-31  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_get_any_init): (Win32) Use longer buffer for
-       user name.
-
-Sat Dec 29 15:07:21 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gspawn.c (script_execute): Copy trailing NULL
-       into new ARGV array. (#67673)
-
-2001-12-28  Sven Neumann  <sven@gimp.org>
-
-       * glib/gmessages.c: only include printf_string_upper_bound() if
-       HAVE_C99_VSNPRINTF is not defined.
-
-2001-12-27  Duarte Loreto <happyguy_pt@hotmail.com>
-
-        * configure.in: Added portuguese to ALL_LINGUAS
-
-Sat Dec 22 12:08:56 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: 1.3.12, binary, interface age 0.
-
-       * NEWS: Updated.
-
-2001-12-21  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Add (undefined) HAVE_C99_VSNPRINTF.
-
-       * glibconfig.h.win32.in: Add definition of G_HAVE_GROWING_STACK.
-
-       * tests/Makefile.am: Rename the progs_LDADD, thread_LDADD and
-       module_LDADD Make macros to progs_ldadd, thread_ldadd and
-       module_ldadd. Newer automakes reserve macros named *_LDADD for
-       the use as LDADDs for targets it knows.
-
-       * glib/giowin32.c: (struct _GIOWin32Watch): 'callback' wasn't used
-       here, either.
-
-2001-12-21  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gfileutils.c (g_file_get_contents): Remove FIXME. (#67063)
-
-2001-12-19  Mark McLoughlin  <mark@skynet.ie>
-
-       * glib/gscanner.c: (g_scanner_unexp_token): fix segfaults.
-
-2001-12-20  Michael Meeks  <michael@ximian.com>
-
-       * glib/giounix.c (struct _GIOUnixWatch): kill 'callback'
-
-Wed Dec 19 23:09:07 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gconvert.c (g_iconv_open): SGML doc fix.
-
-Tue Dec 18 21:11:10 2001  Tim Janik  <timj@gtk.org>
-
-       * configure.in: add configure check to determine G_HAVE_GROWING_STACK.
-
-2001-12-16  Havoc Pennington  <hp@pobox.com>
-
-       * glib/gfileutils.c (get_contents_regfile): use g_try_malloc and
-       return error on not-enough-memory
-       (get_contents_stdio): ditto
-
-2001-12-17  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gspawn.c, glib/gspawn-win32.c: Use <envar>, not <envvar>.
-
-2001-12-15  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gshell.c, glib/gspawn.c, glib/gspawn-win32.c, glib/gerror.c,
-       glib/gfileutils.c, glib/ghash.c, glib/gmain.c, glib/gasyncqueue.c,
-       glib/gtree.c: Minor markup fixes.
-
-2001-12-14  Havoc Pennington  <hp@pobox.com>
-
-       * glib/gshell.c (g_shell_parse_argv): note on how to free returned
-       vector
-
-2001-12-08  Havoc Pennington  <hp@pobox.com>
-
-       * glib/gspawn.c (fork_exec_with_pipes): include argv[0] in error
-       message about failure to exec
-
-2001-12-13  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gconvert.c, glib/giochannel.c, glib/gmain.c,
-       glib/gwin32.c: Revert mistaken change: it is UNIX, not Unix.
-
-Thu Dec 13 05:37:51 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gbsearcharray.[hc]: API revamp to shorten GValueArray
-       structure.
-
-2001-12-12  Matthias Clasen  <matthiasc@poet.de>
-
-       This fixes #60543:
-
-       * glib/gutils.c (g_snprintf, g_vsnprintf): Switch to C99-[v]snprintf().
-
-       * tests/strfunc-test.c: Add some tests for g_snprintf().
-
-2001-12-12  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gconvert.c, glib/grand.c, glib/ghash.c,
-       glib/gthreadpool.c, glib/gtree.c: Documentation fixes.
-
-Mon Dec 10 14:08:39 2001  HideToshi Tajima  <hidetoshi.tajima@sun.com>
-
-       * glib/libcharset/config.charset (os):
-       add ISO8859-3 for Solaris. (#66174)
-       
-2001-12-10  Sven Neumann  <sven@gimp.org>
-
-       * gobject/gvalue.c (g_value_register_transform_func): perform an exact
-       match on the two types instead of using transform_func_lookup().
-
-2001-12-09  Christopher Blizzard  <blizzard@redhat.com>
-
-       * glib/gmessages.h: Add pragma that will prevent warnings when you
-       are not using -std=99 and newer gcc compilers.  Patch from Red
-       Hat's gtk+ 1.2 rpm.
-
-2001-12-06  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gmacros.h: Do the same for "pure".
-
-2001-12-06  Matthias Clasen  <matthiasc@poet.de>
-
-       The following patch corrects some function attributes. (#61780)
-
-       * glib/ghash.h (g_int_equal, g_int_hash): These are not const.
-
-       * glib/glibintl.h (_glib_gettext): Add G_GNUC_FORMAT(1).
-
-       * glib/gmacros.h: Use reserved symbols in function attribute macros.
-
-2001-12-06  Matthias Clasen  <matthiasc@poet.de>
-
-       The following patch avoids manual printf()-format parsing 
-       if a C99-conforming vsnprintf() is available. (#55106)
-
-       * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): New macro to test for a
-       C99 conforming vsnprintf.
-
-       * configure.in: Use AC_FUNC_VSNPRINTF_C99. 
-
-       * glib/gmessages.c (g_printf_string_upper_bound): Use C99 vsnprintf().
-       
-2001-12-05  Sven Neumann  <sven@gimp.org>
-
-       * glib/gtree.c (g_tree_foreach): mention the fact that the tree is
-       traversed in sorted order.
-
-2001-12-03  Manish Singh  <yosh@gimp.org>
-
-       * tests/module-test.c: g_module_symbol takes a gpointer *, not just
-       a gpointer
-
-       * tests/libmoduletestplugin_a.c: here too
-
-2001-11-29  Havoc Pennington  <hp@redhat.com>
-
-       * glib/gtree.c (g_tree_foreach):
-       * glib/ghash.c (g_hash_table_foreach): 
-
-       Add notes about how you shouldn't modify these data structures as
-       you iterate over them.
-       
-Thu Nov 29 11:16:03 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * HACKING: Update (#65721, Dave Neary)
-
-2001-11-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gdate.c: Fixed wrong order in conversion.
-
-Wed Nov 28 18:34:22 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.[ch]: Rename (private) GSource.id and 
-       id parameter to g_main_context_find_source_by_id()
-       to avoid problems with Objective C where 'id' is 
-       a keyword. (#65616)
-
-2001-11-28  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/gutf8.c (utf8_skip_data): In order to avoid infinite loops
-       on invalid UTF-8 strings, change the skip count for 0xfe and 0xff
-       from 0 to 1.
-
-2001-11-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Always call GLIB_SIZEOF(..., system_thread). Fixes
-       #65624.
-
-2001-11-28  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Add GLIB_SIZEOF_SIZE_T here, too.
-
-2001-11-27  Dan Winship  <danw@ximian.com>
-
-       * configure.in (G_MODULE_LDFLAGS): Set this from libtool rather
-       than hardcoding values for certain platforms.
-
-       * glib/libcharset/config.charset: Add a rule for NetBSD.
-
-       * glib/libcharset/localcharset.c (_g_locale_get_charset_aliases):
-       If LIBCHARSET_ALIAS_DIR is set, look for charset.aliases there.
-
-       * tests/Makefile.am (TESTS_ENVIRONMENT): set LIBCHARSET_ALIAS_DIR
-       so we don't depend on charset.aliases having been installed
-
-2001-11-26  Matthias Clasen  <matthiasc@poet.de>
-       
-       * glib/gnode.c (g_node_traverse): Implement G_LEVEL_ORDER correctly.
-
-       * tests/node-test.c: Add a testcase for G_LEVEL_ORDER implementation.
-
-       * glib/gtree.h: Mark g_tree_traverse() as deprecated. (#65343)
-       
-       * glib/gtree.c (g_tree_traverse): Explain the deprecation in 
-       some detail.
-
-Mon Nov 26 09:42:24 2001  Tim Janik  <timj@gtk.org>
-
-       * configure.in: provide GLIB_SIZEOF_SIZE_T.
-
-2001-11-26  Jesus Bravo Alvarez  <jba@pobox.com>
-
-       * configure.in: Added gl (Galician) to ALL_LINGUAS
-
-2001-11-23  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : added -Zm400 to DEPCFLAGS to avoid :
-       gunidecomp.h(5846) : fatal error C1076: compiler limit : 
-       internal heap limit reached; use /Zm to specify a higher limit
-
-       * glibconfig.h.win32.in : added recommended pragma list for
-       msvc again. They are an invaluable help of letting the
-       compiler catch bugs.
-
-Thu Nov 22 13:56:55 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Version 1.3.11
-
-Thu Nov 22 13:14:18 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in (GLIB_MICRO_VERSION): Version 11, 
-       interface, binary age 0.
-
-       * NEWS: Updated.
-
-       * tests/Makefile.am (libmoduletestplugin_[ab]_la_LDFLAGS): 
-       Add dummy -rpath argument. On some (but not all) platforms,
-       libtool will only build a convenience library without this.
-       (#63486, Dan Winship)
-       * Makefile.am (EXTRA_DIST): Add README.in, INSTALL.in - 
-       autoconf-2.5x checks for 'make dist' in the tarball
-       when you make distcheck.
-
-       * glib/Makefile.am (EXTRA_DIST): Distribute 
-       makefile.msc/mingw.in, glib.rc.in.
-
-       * tests/patterntest.c: Include string.h.
-
-       * glib/gpattern.c (g_utf8_reverse): doc parsing fix.
-
-Thu Nov 22 02:50:18 2001  Tim Janik  <timj@gtk.org>
-
-       * NEWS: merged with gobject/NEWS.
-
-2001-11-21  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in
-       Makefile.am.
-
-Tue Nov 20 20:54:25 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gunidecomp.[ch] glib/gen-unicode-tables.pl: Patch
-       from Andrew Taylor to optimize the decomposition table
-       to eliminate relocations and save space. (#64982)
-
-2001-11-18  Hans Breuer  <hans@breuer.org>
-
-       * glib/glib.def : 
-       * glib/makefile.msc.in : remove g_log_domain_glib usage/export
-
-       * tests/makefile.msc.in : add iochannel-test
-
-Sat Nov 17 17:21:57 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am glib/*.c glib/gmessages.h: Get
-       rid of g_log_domain_glib variable in favor of just
-       using a string constant.
-
-Sat Nov 17 14:10:35 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gbsearcharray.h: Include gtypes.h not gobject/gtype.h
-
-       * glib/glib-object.h gobject/*.h: Prevent headers from
-       being included directly except when compiling GObject.
-
-       * gobject/gvaluecollector.h: Include glib-object.h so that
-       this file can be included directly, since we don't
-       include it _from_ glib-object.h.
-
-       * gobject/gtype.c: Remove struct _GValue hack since we 
-       now include glib/gvaluecollector.h which simply pulls in
-       glib-object.h.
-
-2001-11-15  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/giochannel.c: Documentation fixes.
-2001-11-15  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * configure.in: Added "ja" to ALL_LINGUAS.
-
-2001-11-15  Michael Meeks  <michael@ximian.com>
-
-       * glib/giounix.c (g_io_channel_unix_new): set the fd
-       before using it.
-
-2001-11-15  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/makefile.{mingw,msc}.in (TESTS): Add back mainloop-test
-       here, too.
-
-       * tests/Makefile.am: Remove leftover comment that claimed
-       mainloop-test is removed.
-
-2001-11-14  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gpattern.c: add UTF-8 support.
-
-       * tests/patterntest.c: add UTF-8 and equality tests.
-
-Wed Nov 14 07:34:24 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/galloca.h (g_newa): provide g_newa(ctype, count) on top of
-       g_alloca() like we provide g_new() on top of g_malloc().
-
-Tue Nov 13 21:25:35 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/{gen-unicode-tables.pl,gunibreak.c,gunibreak.h,
-       gunichartables.h, gunicomp.h, gunidecomp.[ch], 
-       guniprop.c}: Patch from Andrew Taylor to improve
-       tables and reduce relocations by using indices 
-       rather than pointers. (#64433)
-       
-       * tests/unicode-normalize.c (main): Fix for changes
-       to g_strsplit().
-
-2001-11-12  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gstrfuncs.c: (g_strsplit): Fix max_tokens == 1 case to
-       match documentation.
-       * tests/strfunc-test.c: (main): Add tests.
-
-       * tests/.cvsignore: Recently-added test.
-
-Mon Nov 12 03:01:28 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gscanner.c (g_scanner_eof): G_TOKEN_ERROR is also an end
-       of stream condition.
-
-2001-11-10  Tor Lillqvist  <tml@iki.fi>
-
-       * glib-zip.in (DEVZIP): Also share/glib-2.0.
-
-2001-11-09  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c (g_win32_getlocale): Add a couple of languages
-       that have LANG_* codes in newest headers, just for completeness.
-
-2001-11-08  Wang Jian  <lark@linux.net.cn>
-
-       * configure.in(ALL_LINGUAS): Added zh_CN for Simplified Chinese.
-
-2001-11-08  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c: Don't define LANG_AZERI etc in case those aren't
-       defined in the headers (MSVC 5.0).
-       (g_win32_getlocale): Instead, surround uses of those with
-       #ifdef. Those MSVC 5.0 users that want to build a GLib that
-       recognizes those languages should download the Platform SDK and
-       use the headers from it.
-
-2001-11-07  Peter Williams  <peterw@ximian.com>
-
-       * glib/gdir.c (g_dir_read_name): Return NULL when done reading.
-
-2001-11-06  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/Makefile.am (gspawn_win32_helper_LDFLAGS): Use -mwindows.
-
-2001-11-05  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Minor edits.
-
-       * glib-zip.in: Build separate runtime and developer packages.
-
-       * glib/libcharset/config.charset (os): Don't need to match mingw
-       after all, the charset.alias file isn't even used on Win32... (see
-       localcharset.c).
-
-       * glib/makefile.mingw.in: Add gdir.
-
-       * glib/glib.def: Add g_dir_* entry points.
-
-Sun Nov  4 20:45:21 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in (CFLAGS): Add check for dirent.h
-
-       * glib/glib.h glib/Makefile.am: Add gdir.
-
-       * glib/gdir.c (g_dir_close): Couple of small tweaks
-       now that it is actually compiling...
-
-Sun Nov  4 20:29:31 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gdir.[ch]: Indentation fixes, some rewriting of docs to
-       conform to gtk-doc standard.
-
-       * glib/gdir.[ch] (g_dir_close): Remove the boolean 
-       return value. What would you do if closing failed?
-       What would the user do if you printed a warning
-       message "closing directory %s failed"?
-
-2001-11-04  Hans Breuer  <hans@breuer.org>
-
-       * glib/gdir.[hc] : (new files) simplified wrapper around dirent 
-       functions to improve portability of downstream libs/apps
-       * glib/makefile.msc.in : use them
-       * glib/glib.def : export them
-       * config.h.win32.in : needing HAVE_DIRENT_H defined
-
-2001-11-04  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/Makefile.am: On Win32, create separate .exp file for
-       module-test.o and link with that. Otherwise the GNU linker doesn't
-       export the g_clash_func.
-
-2001-11-03  Hans Breuer  <hans@breuer.org>
-
-       * glib/giowin32.c : static correctness
-
-       * glib/gwin32.c : some more #if defined (SUBLANG_* ...
-       (g_win32_get_package_installation_subdirectory) use g_build_filename
-       instead of duplicating its logic
-
-       * glib/glib.def : removed duplicates, added mising, removed
-       compat cruft
-
-Fri Nov  2 19:54:16 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gbacktrace.h (G_BREAKPOINT): remove public signal.h include.
-
-Thu Nov  1 21:48:43 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/mainloop-test.c (recurser_idle): Recurse
-       with may_block = FALSE, so we don't get into
-       the pathology where the recurser_idle recurses
-       for 10 iterations, and the only thing that is
-       running is the recurser idle, which adds
-       another recursion for each of those 10 iterations
-       and....
-
-       * tests/mainloop-test.c (create_crawler): Fix race
-       condition where a crawler source could be destroyed
-       before it was added to the crawler array.
-
-       * test/Makefile.am: Add mainloop-test back.
-       
-2001-11-01  Marius Andreiana  <mandreiana@yahoo.com>
-
-       * configure.in: Added ro (Romanian) to ALL_LINGUAS
-
-2001-10-31  Havoc Pennington  <hp@redhat.com>
-
-       * glib/gmain.c (g_main_loop_run): fix to the locking so we don't
-       hang
-
-2001-10-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Make --with-threads=none mean, that we want thread
-       support, but no default thread implementation. This also was the
-       original intention, but disapeared around 1998... So it doesn't
-       seem to be the most requested feature, but we went far to make it
-       possible in the code, so I resurrected this feature.
-
-       * INSTALL.in: Describe the --enable-gc-friendly, --disable-threads
-       and --with-threads options of configure.
-
-       * glib/gmain.c (g_main_context_acquire, g_main_context_release,
-       g_main_context_wait): Use the right conditional (G_THREADS_ENABLED
-       instead of G_THREAD_ENABLED). Also remove wrong
-       return-statement. Unfortunately mainloop-test still does fail. Many
-       thanks to Andrea Fazekas <fazek@ludens.elte.hu> for spotting
-       this. (#63455)
-
-2001-10-31  Matthias Clasen  <matthiasc@poet.de>
-
-       * gobject/gsourceclosure.c (g_source_set_closure): Fix documentation.
-
-2001-10-30  Tor Lillqvist  <tml@iki.fi>
-
-       * glib-zip.in: New file, used to build distribution packages for
-       Windows.
-
-       * configure.in: Expand it.
-
-       * Makefile.am: Distribute it.
-
-       * config.h.win32.in: Update to match currently produced config.h
-
-2001-10-29  Daniel Egger  <degger@fhm.edu>
-
-       * glib/gbacktrace.h: Fix non-Intel/-Alpha version of the 
-       G_BREAKPOINT macro to include <signal.h> and use SIGTRAP.
-
-       * glib/gmessages.c: Conditionalise definition of args2
-       depending on the definition of HAVE_VSNPRINTF to avoid 
-       compiler warning.
-
-       * gobject/testgruntime.c
-       * tests/patterntest.c: Include <string.h> to avoid warnings.
-
-Mon Oct 29 11:29:37 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-2.0.m4: Don't try to use PKG_CONFIG
-       when we didn't find it. (#62944, Eric Lemings)
-
-       * m4macros/glib-2.0.m4: Fix problem with spaces around =
-       sign in assignment. (#63209, Arkadiusz Miskiewicz)
-
-Mon Oct 29 10:59:36 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Check for path to Perl, add gobject/glib-mkenums 
-       to AC_OUTPUT. (#63093, Dan Winship)
-
-Mon Oct 29 10:55:12 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/libcharset/Makefile.am (EXTRA_DIST): Dist
-       ref-add.sin, ref-del.sin. (#63092, Dan Winship)
-
-2001-10-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gmain.c (g_main_loop_quit): Conditionalize thread related
-       calls. (#63091)
-
-2001-10-28  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add missing g_pattern_match_simple and
-       g_pattern_spec_equal.
-
-       * glib/gwin32.c (g_win32_get_package_installation_subdirectory):
-       Set separator correctly.
-
-       * glib/libcharset/config.charset (os): Match also mingw*.
-
-       * tests/testglib.c (main): (Wibn32): Print the lib/locale
-       subdirectory, as that is what actually gets used.
-
-Wed Oct 24 11:10:54 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Version 1.3.10, interface age, binary age = 0.
-
-       * NEWS: Updates
-
-2001-10-26  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Don't default to win32 thread implementation on
-       Cygwin. The gthread-win32 implementation really is for Win32 with
-       MS runtime only. Let configure find pthreads when configuring for
-       Cygwin.
-
-       * README.win32: Updates.
-
-       * glib/glib.def: Update.
-
-       * tests/makefile.mingw.in
-       * tests/makefile.msc.in: Remove mainloop-test here, too.  Add ../*
-       to PATH before running tests to find DLLs. Separate the
-       interactive tests, don't run them in the check target.
-
-       * */makefile.msc.in: Include make.msc from GLib's build directory.
-
-Thu Oct 25 12:01:41 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/Makefile.am: Temporarily remove mainloop-test, since it
-       prevents distcheck.
-
-2001-10-24  Alex Larsson  <alexl@redhat.com>
-
-       * docs/reference/glib/glib-sections.txt:
-       Add g_strtod & co.
-
-       * docs/reference/glib/tmpl/string_utils.sgml:
-       Add docs for G_ASCII_DTOSTR_BUF_SIZE.
-
-       * glib/gstrfuncs.[ch]:
-       Added g_ascii_strtod, g_ascii_dtostr and g_ascii_formatd.
-
-       * tests/Makefile.am:
-       * tests/strtod-test.c:
-       Add tests for g_ascii_strtod & co.
-
-2001-10-23  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Typo: GLIB_MICRO_VERSION and
-       GLIB_MINOR_VERSION were swapped.
-
-       * glib/gutils.h: Remove G_HARDCODED_PATH_WRAPPER, Owen didn't like
-       it.
-       
-       * glib/gutils.c: Instead, expand it on Win32 as
-       _glib_get_locale_dir(), and #define GLIB_LOCALE_DIR as a call to
-       it.
-
-2001-10-23  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Typo.
-
-       * glibconfig.h.win32.in: Minor update to correspond to what
-       configure now generates.
-
-       * glib/Makefile.am: (Win32): If we have built the MSVC import
-       library, install it. Install the gcc import library. Also support
-       uninstall.
-
-       * glib/gutils.h: Add macros G_WIN32_DLLMAIN_FOR_DLL_NAME and
-       G_HARDCODED_PATH_WRAPPER. These are used to avoid hardcoding path
-       names into Windows DLLs.
-
-       * glib/gutils.c: Use them for GLIB_LOCALE_DIR.
-
-       * glib/gwin32.c (get_package_directory_from_module): Plug a small
-       memory leak. Minor code reordering.
-       (g_win32_get_package_installation_subdirectory):  Allow empty subdir.
-
-2001-10-19  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Fix test for lib.exe. Can't set ms_librarian
-       before calling AC_CHECK_PROG, as it doesn't actually check
-       anything if the result variable has been preset...
-
-2001-10-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gutils.c (g_set_prgname, g_get_prgname): Use another LOCK
-       for g_prgname to avoid deadlocking. (#62606)
-
-2001-10-19  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Check also ac_cv_sizeof___int64 when requiring a
-       64-bit type.
-
-2001-10-17  HideToshi Tajima  <hidetoshi.tajima@sun.com>
-
-       * glib/gconvert.c (g_iconv_open):
-       Fix a typo: to_codeset => from_codeset.
-       (#58195, #55152)
-
-Fri Oct 12 18:24:02 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gpattern.[hc]: make struct _GPatternSpec and GMatchType
-       private.
-       (g_pattern_equal): new function to return equality of two patterns
-       (required because GPatternSpec is private now).
-       (g_pattern_spec_new): fix bug wrg wildcard counting which produced
-       incorrect pattern specs (discovered by Matthias Clasen).
-       optimized code so we just keep one compiled pattern string now.
-       correctly canonicalize patterns. reduce string walks, optimize
-       decision about MATCH_ALL vs. MATCH_ALL_TAIL.
-       (g_pattern_match_string): call just g_pattern_match() with NULL
-       reversed string.
-       (g_pattern_match): allow NULL reversed strings now, reverse_dup
-       strings on demand.
-
-       * tests/patterntest.c (test_compilation): added an extended testcase
-       for pattern matching from Matthias Clasen <matthiasc@poet.de>.
-
-2001-10-11  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * configure.in (ac_cv_sizeof_long_long): Avoid '==' and '-a' in
-       'test's.
-
-Wed Oct 10 20:07:36 2001  Joshua N Pritikin  <vishnu@pobox.com>
-
-       * glib/gmessages.c glib/gtypes.h: Remove G_HAVE_GINT64
-       conditionalization.
-
-Wed Oct 10 17:34:15 2001  Joshua N Pritikin  <vishnu@pobox.com>
-
-       * configure.in: Un-conditionalize and require a 64-bit integer
-       type.
-
-2001-10-04  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * configure.in: Avoid 'test -a'.
-
-2001-10-05  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gwin32.c: Documentation update.
-
-2001-10-04  Havoc Pennington  <hp@redhat.com>
-
-       * glib/libcharset/Makefile.am (EXTRA_DIST): add config.charset
-
-2001-10-03  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (Win32) (DllMain): New function (DLL entry point)
-       to tuck away actual DLL name.
-       (GLIB_LOCALE_DIR) Use actual DLL name, instead of assuming one
-       naming convention for DLLs.
-
-       * glib/glib.def: g_string_append_printf.
-
-2001-10-02  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gstrfuncs.c, glib/giochannel.c: documentation update.
-
-       * glib/gqueue.c: add documentation.
-
-2001-10-02  Sven Neumann  <sven@gimp.org>
-
-       * glib/gstring.h (g_string_sprintfa): let the compatibility definition
-       point to the new name g_string_append_printf().
-
-2001-10-01  Alex Larsson  <alexl@redhat.com>
-
-       * glib/gconvert.[ch]:
-       Convert G_CONVERT_ERROR_NOT_ABSOLUTE_FILE_URI and
-       G_CONVERT_ERROR_INVALID_URI to G_CONVERT_ERROR_BAD_URI.
-
-       * tests/uri-test.c:
-       Update tests
-
-Mon Oct  1 16:01:24 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstring.[ch] glib/grel.c: Rename g_string_printfa()
-       to g_string_append_printf(). (#61041, Havoc Pennington.)
-
-2001-10-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c: Documentation cleanups. (#61487)
-
-2001-10-01  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gscanner.h (GScannerMsgFunc): make third argument
-       a gboolean.
-       (g_scanner_add_symbol, g_scanner_remove_symbol, 
-       g_scanner_foreach_symbol): mark these 
-       G_DISABLE_DEPRECATED. (#61469)
-
-       * glib/gscanner.c (g_scanner_msg_handler): make third 
-       argument gboolean. (#61468)
-
-2001-10-01  Sven Neumann  <sven@gimp.org>
-
-       * glib/gconvert.c
-       * glib/gspawn-win32.c
-       * glib/gspawn.c: some minor documentation fixes.
-
-2001-09-29  Alexander Larsson  <alla@lysator.liu.se>
-
-       * configure.in:
-       Add build/win32/dirent/Makefile to the list of makefiles
-
-2001-09-30  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c
-       * glib/gwin32.h
-       * glib/glib.def: Remove own implementation of dirent
-       functions. Instead, gcc (mingw) users should go ahead and use the
-       <dirent.h> included with the mingw gcc, and the dirent functions
-       included in libmingw32, while MSVC users can use the same (public
-       domain) code, extracted from mingw-runtime sources and placed in
-       build/win32/dirent.[ch].
-
-       * glib/gwin32.c (get_package_directory_from_module,
-       g_win32_get_package_installation_directory): Use static lock to
-       protect static hash table.
-
-Sat Sep 29 02:33:14 2001  George Lebl <jirka@5z.com>
-
-       * tests/testglib.c (main): cast the string size to gulong and use %lu
-         for printing to avoid 64bit issues
-
-       * glib/gstrfuncs.[ch] (g_ascii_strncasecmp): Change the 'n' argument 
-         to gsize instead guint.
-
-Fri Sep 28 19:41:32 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/libcharset/* configure.in: Fix macros from libcharset
-       to work with autoconf-2.5x. (From Laszlo Peter.)
-
-2001-09-27  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gstring.c: Fix inline docs for g_string_prepend_unichar.
-
-2001-09-29  Abel Cheung  <maddog@linux.org.hk>
-
-       * configure.in: Add quotes around test values. This fixes a minor
-         annoying warning if platform is not win32.
-
-2001-09-27  Manish Singh  <yosh@gimp.org>
-
-       * glib/grand.c (g_rand_new): fix typo (#if->#ifdef) so it compiles
-       again.
-
-2001-09-24  Bruno Haible  <haible@clisp.cons.org>
-
-       * glib/gwin32.c (g_win32_getlocale): When the sublangid is
-       SUBLANG_DEFAULT, return the locale of the language's main country,
-       not a country-neutral locale. E.g. "en_US" instead of "en". Add
-       handling of LANG_SORBIAN. Fix typo for SUBLANG_CHINESE_SIMPLIFIED
-       (China == CN, CH == Switzerland). Ignore empty environment
-       variable values.
-
-2001-09-28  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/makefile.{mingw,msc}.in: Add localcharset.o. Just copy the
-       source file from libcharset and compile in this directory.
-
-       * glib/giochannel.c: Mark rest of g_set_error strings for
-       translation, too.
-
-       * glib/giowin32.c: Add some debugging output functions, call them
-       when debugging.
-       (create_events, g_io_win32_msg_write): Free message fetched with
-       g_win32_error_message ().
-       (g_io_win32_check): Indentation fixes.
-       (g_io_win32_fd_read,g_io_win32_sock_read): Don't always return
-       G_IO_STATUS_NORMAL. Do return G_IO_STATUS_EOF if we got 0 bytes,
-       like on Unix. This helps making the test programs run
-       successfully.
-
-       * glib/gmain.c (g_poll): Return the code ifdeffed out with
-       TEST_WITHOUT_THIS. Can't remember why it was ifdeffed out. Things
-       seem to work as previously with the code in place. Especially
-       spawn-test didn't work with the code ifdeffed out (Bug#61067).
-
-       * glib/grand.c (g_rand_new): Don't try to use /dev/urandom unless
-       on Unix.
-
-       * glib/gspawn-win32-helper.c (WinMain): Remove Sleep(10000)
-       accidentally left in.
-
-Thu Sep 27 14:26:57 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c (g_ascii_strup/down): Use gssize to
-       match the header. (Reported by Elliot Lee.)
-
-Wed Sep 26 22:34:12 2001  Owen Taylor  <otaylor@redhat.com>
-
-       Fixes for #58195, based on some ideas from Hidetosh Tajima.
-
-       * aclibcharset.m4 glib/libcharset: Add Bruno Haible's
-       portable-current charset detection code from libiconv.
-
-       * glib/gutf8.c (g_utf8_get_charset_internal): Rewrite
-       to use _g_locale_charset().
-
-       * glib/gutf8.c (_g_charset_get_aliases): Private functions
-       to get aliases from libcharset for a particular canonical
-       name.
-
-       * glib/gconvert.c: If loading a charset fails, try 
-       aliases to look for fallbacks.
-       
-2001-09-26  Matthias Clasen  <matthiasc@poet.de>
-
-       * gmem.c (g_mem_is_system_malloc): Return !vtable_set.
-
-2001-09-26  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Retract my change earlier today. Don't preset
-       autoconf variables in a try to match both mingw and MSVC. Instead,
-       he who packages a prebuilt GLib developer distribution for Win32
-       runs configure twice: once for mingw, once for MSVC, and then uses
-       diff -D on the glibconfig.h files to generate a suitably ifdeffed
-       glibconfig.h for distribution that suits both compilers. (Ditto
-       for config.h, although that file wouldn't be distributed in a
-       developer package, but in a source package for Win32 users who
-       want to build GLib but can't use configure.)
-
-       * glibconfig.h.win32.in
-       * config.h.win32.in: Generated by using diff -D as described above.
-
-       * tests/makefile.mingw.in (.c.exe): Correct name of gthread (import)
-       library.
-
-Wed Sep 26 15:33:37 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am po/Makefile.in.in: Fix distclean to 
-       remove some extra files. #60993, Ben Gertzfield
-
-Wed Sep 26 14:37:52 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gen-unicode-tables.pl glib/guniprop.c 
-         glib/{gunibreak,gunichartables,gunidecomp}.h:
-       Patch from Andrew Taylor to make much of the unicode
-       table data const so that it can be made read-only
-       and shared.
-
-Wed Sep 26 12:41:05 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c (g_strdup_vprintf): Copy if 
-       !g_mem_is_system_malloc, not the other way around.
-       (Found by James Antill.)
-
-Wed Sep 26 11:00:31 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c (g_strnfill): Use memset; might be 
-       faster if someone used this for a biiig string.
-       (Suggestion from Jakub Jelinek)
-
-2001-09-26  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: (Win32:) Move the Win32 check closer to the start,
-       after the BeOS checks. Preset some autoconf variables so that
-       configure won't find those few headers and functions that gcc
-       (mingw) pretends to implement (even if the actual C library
-       doesn't), but MSVC doesn't. This because I want the same config.h
-       and glibconfig.h to be usable both from gcc and MSVC (as they use
-       the same C library). Some other minor hackery for this purpose.
-
-       * glibconfig.h.win32.in
-       * config.h.win32.in: Use versions generated by configure (and
-       hand-edited slightly).
-
-2001-09-25  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gtree.h: Use gboolean for return value of GTraverseFunc.
-
-Tue Sep 25 11:34:22 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Version 1.3.9 (binary, interface == 0)
-
-       * glib/gstrfuncs.c (g_ascii_strdown): Change g_ascii_strup/strdown
-       to take a 'len' argument to match g_utf8_strup/strdown. This
-       hopefully will also make it more obvious that they duplicate
-       the string rather than acting like g_strup/strdown.
-       (Suggestion from Matthias Clasen, #59550)
-
-2001-09-25  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: More Win32 automake macros. For .def files:
-       GLIB_DEF, GMODULE_DEF, GOBJECT_DEF and GTHREAD_DEF. For .exp
-       files: TESTGMODULE_EXP (for programs that need to export symbols,
-       just testgmodule here). A new conditional, MS_LIB_AVAILABLE to
-       test whether the Microsoft librarian ("ar") is available to build
-       MS import libraries.
-       * glib/Makefile.am
-       * gmodule/Makefile.am: Use above. New rule to build MS import
-       library.
-
-       * glib/makefile.msc.in
-       * tests/makefile.msc.in
-       * tests/makefile.mingw.in: Use same DLL and import library names as
-       libtool.
-
-2001-09-24  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gutf8.c, glib/gunibreak.c, glib/gunicollate.c,
-       glib/gunidecomp.c, glib/guniprop.c: Inline doc consistency fixes.
-
-2001-09-24  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * configure.in: Added "sk" to ALL_LINGUAS.
-
-2001-09-22  Hans Breuer  <hans@breuer.org>
-
-       * glib/giowin32.c : simply setting is_readable and is_writeable
-       to TRUE does make Gimp plug-ins work again. Still no API known
-       to request this info on Win32 (see #57690)
-
-2001-09-21  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc : added rule for glibconfig.h
-
-       * glib/giowin32.c (g_io_channel_new_file) : always open
-       in binary mode (fix for #57695)
-
-       * glib/glib.def : updated externals
-
-       * glib/gwin32.c : re-added LANG_* and SUBLANG_* definitions,
-       which are missing from the msvc 5.0 win32 sdk
-
-       * glib/makefile.msc.in : added gbsearcharry
-
-Thu Sep 20 20:33:45 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Rename g_mem_vtable_is_set() to g_mem_is_system_malloc().
-
-2001-09-20  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_path_is_absolute): (Win32:) Accept also forward
-       slashes. (But still don't accept them in the other functions
-       here. This is a thorny issue. Windows in fact does treat / like \
-       on input (at least as local directory separators, dunno about
-       server/share separators). But GLib only has the one
-       G_DIR_SEPARATOR value, that apps should scan for, and use when
-       building pathnames. To properly fix this would require totally
-       abstracting pathnames, and don't having any path name scanning and
-       building in applications at all. Fat chance.)
-       (GLIB_LOCALE_DIR): Redefine only on "pure" Win32, not Cygwin. Use
-       subdirectory "share\locale", as on Unix.
-
-       * glib/gwin32.c: Don't need to define those langiage and
-       sublanguage constants here, current mingw (w32api) headers have
-       them.
-
-       * glib/glib.def: Add a few missing entry points.
-
-       * tests/testglib.c (main): Use same name for DLL as libtool does.
-       Use G_DIR_SEPARATOR in g_path_get_basename tests.
-
-Wed Sep 19 16:35:22 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_main_context_find_source_by[_funcs]_user_data): 
-       Fix handling of user data when locating sources. 
-       (#60414, Katsuhiro Okuno)
-
-Wed Sep 19 14:17:31 2001  Owen Taylor  <otaylor@redhat.com>
-
-       Patch from Matthias Clasen (#59806)
-
-       * configure.in: Check for vasprintf().
-
-       * glib/gmem.[ch]: Add g_mem_vtable_is_set() to be used
-       for efficiency hacks to avoid extra copies when not
-       needed.
-
-       * glib/gstrfuncs.c: Use vasprintf() to implement
-       g_strdup_printf() when available.
-
-       * glib/gmessages.c (g_logv): Avoid using 
-       printf_string_upper_bound() when we have have vsnprintf.
-
-       * glib/gmessages.c (printf_string_upper_bound): Don't
-       segfault when warning about positional parameters.
-
-Wzed Sep 19 14:05:27 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/{gcache.c,gmem.c,grel.c,gstring.c,gtimer.c,gtree}:
-       Patch from Darin Adler to remove GReal* structures in
-       favor of simple opaque typedefs in cases where there
-       were no non-private members. (#59693)
-
-Wed Sep 19 13:03:38 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_channel_read/write_chars): Handle NUL
-       bytes_written, bytes_read. (Suggested by Joshua N Pritikin, #59550)
-
-Wed Sep 19 12:49:11 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gutils.c (g_get_any_init): Handle failure of
-       sysconf and pick a fixed size buffer. (Happens on Cygwin
-       #60242)
-
-Wed Sep 19 11:23:41 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Error out if gettext support is not found. (#59386)
-
-2001-09-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gthread.h (GThreadFunctions): Add thread_equal function to
-       allow for platform defined function to compare two threads.
-
-       * glib/gthread.c: Use g_thread_functions_for_glib_use.thread_equal
-       when non-NULL instead of ==.
-       
-Wed Sep 19 10:44:25 2001  Tim Janik  <timj@gtk.org>
-
-       * Released 1.3.8.
-
-Tue Sep 18 22:57:33 2001  Tim Janik  <timj@gtk.org>
-
-       * configure.in (GLIB_MICRO_VERSION): up version number to 1.3.8,
-       interface age 0, binary age 0.
-
-       * NEWS: updates.
-
-Tue Sep 18 18:23:02 2001  Owen Taylor  <otaylor@redhat.com>
-
-       Fixes for compilation on Solaris (#59026, Frank Belew)
-
-       * glib/gqsort.c (g_qsort_with_data): Use g_alloca().
-
-       * glib/giochannel.c (g_io_channel_read_to_end): Fix use
-       of ternary on left-hand-side.
-
-       * configure.in: Handle the ac_cv_working_alloca_h variable
-       set by autoconf-2.5x.
-
-Tue Sep 11 18:50:44 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4 acinclude.m4: Remove commented
-       out sections for clarity.
-
-Tue Sep 18 18:19:33 2001  Tim Janik  <timj@gtk.org>
-
-       * tests/testglib.c: add simple test for g_path_get_basename().
-
-       * glib/gfileutils.c (g_file_open_tmp): 
-       * glib/gstrfuncs.c (g_strerror): scratch erroneous usages
-       of "illegal".
-
-2001-09-18  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gmain.c
-       * glib/giowin32.c: Mark the _funcs tables for export.
-
-       * glib/glib.def: Add here, too.
-
-       * glib/gwin32.c (get_package_directory_from_module): No reason to
-       check for the module being in a bin or lib directory only when
-       module_name is non-NULL.
-
-       * glib/gwin32.c (g_win32_get_package_installation_directory):
-       Check first in HKEY_CURRENT_USER, then in HKEY_LOCAL_MACHINE.
-
-2001-09-17  Darin Adler  <darin@bentspoon.com>
-
-       * tests/strfunc-test.c: (main): Change so that it works
-       on platforms where isalpha is a macro only, without the
-       corresponding function that the C standard requires.
-       Also eliminate the multiple lists of ctype functions.
-
-       * tests/.cvsignore: Ignore the new test.
-
-2001-09-17  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Add variable for LT_CURRENT minus LT_AGE (the
-       suffix used by libtool on Win32 for DLLs). Set variables for the
-       compiled resource files on Windows. Handle the native Win32
-       threads gmodule.
-
-       * glib/Makefile.am
-       * gmodule/Makefile.am
-       * gobject/Makefile.am: (Win32) Add hacks to link in the object
-       file produced from the resource file. Use the lt-compile-resource
-       script from the build module. The non-hack way would be to teach
-       libtool, autoconf and automake about .rc files (which are a kind
-       of source code, after all, that gets compiled to object
-       files). But then there would be problems with those who don't have
-       bleeding edge auto* and libtool.
-
-       * glib/glib.def
-       * gobject/gobject.def: Updates.
-
-       * glib/glib.rc.in
-       * gmodule/gmodule.rc.in
-       * gobject/gobject.rc.in
-       * gthread/gthread.rc.in: Update InternalName and OriginalFilename to
-       match libtool's naming convention for DLLs.
-
-       * glib/gutils.c: Ditto when constructing the DLL name in the
-       definition for GLIB_LOCALE_DIR.
-
-       * glib/makefile.mingw.in
-       * gmodule/makefile.mingw.in
-       * gobject/makefile.mingw.in
-       * gthread/makefile.mingw.in: Update import library names.
-       
-Fri Sep 14 20:34:27 2001  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/gconvert.c (g_filename_from_uri): Replace `is contains'
-       by `contains' in two error messages. (#60395)
-
-2001-09-10  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.h glib/giochannel.c: Added a length argument
-       to g_io_channel_[set,get]_line_term(), allowing embeded nulls
-       and binary safe line termination strings
-
-       * glib/giochannel.c: Got rid of a compile warning in
-       g_io_channel_write_chars()
-
-Mon Sep 10 17:13:36 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gmessages.h: got rid of g_set_error_handler(),
-       g_set_warning_handler(), g_set_message_handler().
-
-Mon Sep 10 11:42:58 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gutf8.c glib/gstring.c glib/gfileutils.c glib/gmain.c: 
-       Doc fixes.
-
-Sat Sep  8 17:14:51 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gfileutils.[ch]: Add g_build_path(), 
-       g_build_filename(), to create separated paths, 
-       suppressing duplicate separators, from varargs
-       lists.
-
-       * tests/strfunc-test.c: Add tests for g_build_path(),
-       g_build_filename().
-
-Sat Sep  8 14:11:53 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am (libglib_1_3_la_SOURCES): Add
-       gbsearcharray.[ch].
-
-       * glib/glib-object.h: Remove include of gbsearcharray. 
-
-Mon Sep  3 23:29:51 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Version 1.3.7
-
-       * Makefile.am (EXTRA_DIST): Distribute po/po2tbl.sed.in
-
-       * Makefile.am: Remove references to glib.rc[.in]
-
-       * NEWS: Various additions.
-
-2001-09-04  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Update. Don't mention pthreads.
-
-       * build-dll: Remove, moved to the build module.
-
-       * glibconfig.h.win32.in: Don't mention pthreds here, either.
-
-       * glib/gstrfuncs.c: Mark the correct variable for export from DLL.
-
-       * glib/giowin32.c (g_io_win32_msg_create_watch): Owen forgot to
-       rename the win32_watch_funcs variable here, too.
-
-       * */makefile.mingw.in: Don't use version number in import library
-       name. Use whole version number in DLL name. Use build-dll from the
-       build module.
-
-Tue Sep  4 01:50:24 2001  Tim Janik  <timj@gtk.org>
-
-       * NEWS: updates for 1.3.7 release.
-
-Mon Aug 27 14:56:12 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.h: Add closure_marshal/closure_callback
-       fields to GSourceFuncs for use by g_source_set_closure().
-
-       * glib/gmain.c glib/giounix.c glib/giowin32.c 
-         glib/gmain.h: Export the SourceFuncs vtables so GObject
-       can use them to figure out closure callbacks/marshallers
-       for the default source types.
-
-Sun Sep  2 13:05:53 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c (g_strchomp): Replace some uses
-       of isspace() with g_ascii_isspace().
-
-       * glib/gutf8.c glib/gunicode.h glib/gstrfuncs.[ch]: Add
-       extra indirections to g_utf8_skip and g_ascii_table to
-       avoid great whopping copy relocs.
-
-Sun Sep  2 11:10:42 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gen-unicode-tables.pl glib/gunicomp.h
-       glib/gunichartables.h glib/giounix.c: Fix some variables that 
-       should have been static.
-
-2001-08-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gthread.h, glib/gthread.c: Add 'want_to_read' to
-       GStaticRWLock to avoid calling g_cond_broadcast, when no one is
-       waiting.
-
-       * glib/gmain.c (g_main_context_add_poll_unlocked): Don't free
-       cached_poll_array, when adding new poll's. This is taken care for
-       in g_main_context_iterate.
-
-2001-08-30  Tor Lillqvist  <tml@iki.fi>
-
-       After being away for about five months, I'm back working on
-       this...  For now, still using same build setup for Win32. Probably
-       will change to not including version numbers in the import library
-       names, though. (But the DLL names would still include them,
-       possibly even also the micro version number.) That would be more
-       Unix-like. Also, will have to check out newest mingw tool versions
-       to see if the build-dll script now can be retired.
-       
-       * makefile.mingw
-       * makefile.msc: New files, no need to generate from .in as
-       they don't contain references to automake variables.
-       
-       * makefile.mingw.in
-       * makefile.msc.in: Removed.
-       
-       * glib.rc.in: Remove
-       * glib/glib.rc.in: Moved here.
-       
-       * Makefile.am
-       * glib/Makefile.am: Corresponding changes.
-
-       * glib/glib.def: Fix typo, add new entries.
-
-       * glib/gspawn-win32-helper.c: More debugging. Doesn't work
-       currently (or then it never has on Win2k, which I now use?)
-
-       * glib/gstrfuncs.c
-       * glib/gstrfuncs.h: Mark g_ascii_table for export/import on Win32.
-
-       * */makefile.mingw.in: Reflect new location of glib library.
-       
-2001-08-30  Michael Natterer  <mitch@gimp.org>
-
-       * glib/giochannel.h: (struct GIOChannel): "gboolean foo : 1"
-       results in TRUE being -1 once assigned, use "guint foo : 1"
-       instead.
-
-2001-08-27  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gconvert.h:
-       * glib/gconvert.c: (g_filename_from_uri):
-       Updated name of error from G_CONVERT_ERROR_NOT_LOCAL_FILE to
-       G_CONVERT_ERROR_NOT_ABSOLUTE_FILE_URI.
-       
-       * tests/.cvsignore:
-       * tests/uri-test.c:
-       Added a lot more test for the new URI functions, including a
-       number that seem to indicate some minor bugs.
-
-2001-08-26  Alex Larsson  <alexl@redhat.com>
-
-       * glib/gconvert.[ch] (g_filename_from_uri,
-       g_filename_to_uri): New functions to convert
-       between local pahtnames and file: uris.
-
-       * tests/Makefile.am:
-       * tests/uri-test.c:
-       Tests for the new functions.
-
-2001-08-25  Alexander Larsson  <alla@lysator.liu.se>
-
-       * glib/gstrfuncs.[ch]:
-       * docs/reference/glib/glib-overrides.txt:
-       * docs/reference/glib/glib-sections.txt:
-       * docs/reference/glib/tmpl/string_utils.sgml:
-       Implement and document g_ascii_isxxx.
-
-       * tests/strfunc-test.c:
-       Add tests for g_ascii_isxxx
-       
-       * glib/guniprop.c (g_unichar_ispunct):
-       include symbols, not just punctuation.
-       (g_unichar_isspace): Vertical tab is not
-       considered whitespace.
-       
-       * tests/shell-test.c:
-       Output errors on stderr
-
-2001-08-24  Alexander Larsson  <alla@lysator.liu.se>
-
-       * glib/gconvert.[ch] (g_convert_with_iconv):
-       New function, doing the same as g_convert but taking
-       a GIConv argument. The old g_convert is just
-       a call to this with a newly opened GIConv.
-
-2001-08-24  Darin Adler  <darin@bentspoon.com>
-
-       * tests/shell-test.c: (check_string_result): Fix bad indenting.
-       I figured I should fix this since I just pointed Alex here to
-       look at this as an example.
-
-2001-08-24  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: Matthias Clasen's fix for
-       the buffer corruption bug by setting outbuf _after_
-       the call to g_string_set_size()
-
-       * glib/giochannel.c: kept the buffers from perpetually
-       growing by subtracting 1 from allocated_len in the calculation
-       of available space to account for the null at the end of the
-       buffer
-
-       * glib/giochannel.c: fixed g_io_channel_write_chars()
-       to not write more than space_in_buf bytes for the UTF-8 case
-
-Fri Aug 24 11:15:46 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c docs/Changes-2.0.txt: Patch from Darin
-       Adler to restore Glib-1.2 handling of empty strings,
-       and to fix off-by-one with @max_tokens. (#57663).
-       Doc improvements.
-
-       * tests/strfunc-test.c: Change tests to correspond to
-       new behavior of g_strsplit().
-
-Thu Aug 23 11:09:58 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/ghash.c (g_hash_table_foreach_remove_or_steal): 
-       Patch from Josh Pritikin to fix reversed key and value destroy 
-       functions. (#59433)
-
-       * glib/giochannel.h (struct _GIOChannel): Mark structure
-       /*< private >*/
-
-Thu Aug 23 16:14:17 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gmacros.h (G_GNUC_NO_INSTRUMENT): new macro.
-
-2001-08-21  Abel Cheung  <maddog@linux.org.hk>
-
-       * configure.in: Added "zh_TW" to ALL_LINGUAS.
-
-2001-08-20  Sven Neumann  <sven@gimp.org>
-
-       * Makefile.am: added po to SUBDIRS
-
-Sun Aug 19 21:32:39 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/ghash.c: Eliminate use of floating point when 
-       determining if the hash table needs to be resized,
-       and also factor out the test from g_hash_table_resize()
-       to save function calls for the common case.
-       (#59124)
-
-       * glib/gmain.c (g_main_context_query): Document the
-       return value.
-
-2001-08-19  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gshell.c: (g_shell_quote): Added missing \ character.
-
-       * tests/shell-test.c: (check_string_result), (test_shell_unquote),
-       (main): Added tests for g_shell_quote and g_shell_unquote.
-
-2001-08-19  Fatih Demir <kabalak@gtranslator.org>
-
-       * configure.in: Added "ta" to the languages list.
-
-2001-08-19  Havoc Pennington  <hp@pobox.com>
-
-       * glib/gshell.c (g_shell_unquote): add comment about shell quoting
-       rules to the docs.
-
-2001-08-16  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giounix.c: fixed an error in setting close_on_unref
-       in g_io_channel_new_file ()
-
-2001-08-16  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c glib/glib.def glib/giochannel.h: Added
-       new functions g_io_channel_[set,get]_close_on_unref ()
-
-       * glib/giochannel.c: glib/giochannel.h: Documentation fixes
-
-       * glib/giochannel.c: Fixed g_io_channel_write_chars ()
-       so that bytes_written is always set to an appropriate
-       value when it returns
-
-       * glib/giounix.c: changed g_io_channel_get_flags () to
-       set the is_readable and is_writeable flags cached
-       by the channel
-
-Wed Aug 15 11:09:56 2001  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am: let the generated .pc files depend on config.status,
-       so they get correctly remade.
-
-Sun Aug 12 21:05:13 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gmessages.h: fix g_return_if_fail, g_assert and friends to
-       have a body for G_DISABLE_CHECKS and G_DISABLE_ASSERT.
-       fixes #58873.
-
-2001-08-12  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: safer handling of errno, fixed
-       a bug in an assert
-
-Sun Aug 12 10:09:00 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/iochannel-test.c (main): Find test case for
-       srcdir != builddir, miscellaneous cleanups.
-
-       * tests/Makefile.am (EXTRA_DIST): Distribute casefold.txt,
-       casemap.txt iochannel-test-infile.
-
-       * glib-2.0-uninstalled.pc.in: Fix for move of glib files
-       into subdir. (Pointed out by Steve Baker)
-
-Sat Aug  4 01:04:08 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gscanner.c (g_scanner_unexp_token): fix INT and FLOAT warnings
-       for invalid token values.
-
-2001-08-10  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: Fixed a "sense of comparison" bug,
-       added an assert to check when g_io_channels_read_chars ()
-       is looping endlessly due to encoded_read_buf being corrupted.
-
-2001-08-06  Sven Neumann  <sven@gimp.org>
-
-       * glib/gutils.[ch]: added new function g_nullify_pointer().
-       
-2001-08-05  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c glib/giochannel.c glib/glib.def
-       docs/reference/glib/glib-sections.txt: Added new functions
-       g_io_channel_[read,write]_unichar ()
-
-       * glib/giochannel.h: Finally remembered to remove the
-       old error message G_IO_CHANNEL_ERROR_PCHAR_FLUSH
-
-       * glib/giochannel.c: Some fixes to g_io_channel_fill_buffer ()
-       and g_io_channel_write_chars ()
-
-2001-08-05  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: Replaced the local use_buf variable with a macro
-       in most places. This allows us to check some things without worrying
-       whether we have allocated the read buffers yet, and allows us to allocate
-       the buffers later in some cases.
-
-       * glib/giochannel.c: Introduced a MAX_CHAR_SIZE macro, which is
-       supposed to be greater than or equal to the length in bytes
-       of the longest character in any encoding. This is necessary
-       to get the minimum buffer size for successful writing.
-
-       * glib/giochannel.c: Fixed g_io_channel_set_encoding () so
-       that it just prints a warning if partial_write_buf isn't
-       empty instead of failing.
-
-       * glib/giochannel.c: Fixed several functions so they can accept
-       NULL parameters for pointers to return values.
-
-       * glib/giochannel.c: Altered the error handling for
-       g_io_channel_read_chars () to only return an error if
-       it doesn't have any buffered data.
-
-       * glib/giochannel.c: Rewrote g_io_channel_write_chars ()
-       to fix the error handling and remove duplicate sections
-       of code.
-
-       * glib/giounix.c: Fixed g_io_channel_new_file () to
-       call fstat () to set the is_seekable flag, in case someone
-       uses it on a FIFO.
-
-Sun Aug  5 08:25:30 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmacros.h: Include stddef.h so that we use
-       the system's definition of NULL. (#54730)
-
-2001-08-04  Alexander Larsson   <alexl@redhat.com>
-        
-       * win32-fixup.pl: 
-       Hacky script to fix up your .msc.in files on windows. 
-       Dunno if this is a good solution yet.
-       
-       * build/win32/module.defs:
-       Back down libiconv version to 1.3, since that is what tor distributes.
-       
-       * glib/glib.def:
-       Update
-
-       * gobject/makefile.msc.in:
-       build gobject-query.exe and gmarshal.strings, add libiconv dependency to linklines.
-
-       * gobject/marshal-genstrings.pl:
-       New file. perl script to generate gmarshal.strings.
-       
-2001-08-03  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: Fixed g_io_channel_seek_position()
-       so that G_SEEK_CUR can be used with UTF-8 encoding
-
-       * glib/giochannel.c: Changed test to decide whether
-       use_buf is encoded_read_buf or read_buf from
-       "if (channel->do_encode)" to "if (channel->encoding)" to
-       fix bug 58472
-
-       * tests/iochannel-test.c: Fixed so it doesn't output
-       double newlines
-
-        * glib/giochannel.c: Fixed g_io_channel_fill_buffer()
-       so that encoded_read_buf is created for UTF-8 encoding
-
-2001-08-03  Darin Adler  <darin@bentspoon.com>
-
-       * tests/strfunc-test.c: (strv_check), (main):
-       Improve strfunc test to test the split function in a way that
-       demonstrates its idiosyncrasies.
-       * tests/.cvsignore:
-
-2001-08-03  Sven Neumann  <sven@gimp.org>
-
-       * configure.in: beautified configure help output.
-       
-       * glib/gtree.c: changed help for g_tree_insert(); it was misleading.
-
-Fri Aug  3 10:20:10 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/guniprop.c (g_unichar_xdigit_value): Fix computation
-       (Fix from Cesar Rincon)
-
-2001-08-01  Christopher James Lahey  <clahey@ximian.com>
-
-       * glib/gutf8.c (g_utf8_find_prev_char): Made g_utf8_find_prev_char
-       able to return the first character of a string.
-
-2001-07-31  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.h: Committed this file, which is where
-       the changes in my previous changelog entry happened,
-       not giochannel.c
-
-2001-07-31  Sven Neumann  <sven@gimp.org>
-
-       * glib/gmem.c: declare gboolean vtable_set static.
-
-2001-07-30  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c docs/reference/glib/glib-sections.txt
-       tests/iochannel-test.c: removed G_IO_CHANNEL_*_LINE_TERM macros
-
-       * glib/giochannel.c put /*<public>*/ and /*<private>*/ tags in
-       the GIOChannel structure
-
-
-2001-07-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: #undef inline before testing whether it works to
-       avoid false positives. Patch from Garry R. Osgood
-       <grosgood@rcn.com>. Fixes bug #58272.
-
-       * gmodule/gmodule.c (parse_libtool_archive): build the library
-       name ourselfs ... so we can load the library specified and not
-       mangle any name not beggining in 'lib'. Patch from Michael Meeks
-       <michael@ximian.com>. Fixes bug #58226.
-
-2001-07-29  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: Matthias Classen's patch to give
-       g_io_channel_flush() the correct sense when testing
-       whether the buffer is empty
-       * glib/giounix.c: Matthias Classen's patch to set
-       the mode of a file created with g_io_channel_new_file()
-
-Sun Jul 29 16:08:17 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gscanner.[hc]: removed deprecated g_scanner_stat_mode().
-
-       * glib/gscanner.c (g_scanner_msg_handler): by default, print scanner
-       errors and warnings to stderr.
-
-2001-07-27  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gtypes.h: Use G_GNUC_EXTENSION instead of
-       __extension__. Patch from Pavel Roskin <proski@gnu.org>.
-
-2001-07-26  Darin Adler  <darin@bentspoon.com>
-
-       * configure.in:
-       * m4macros/glib-2.0.m4:
-       Update location of pkgconfig from sourceforge.net to new
-       location at freedeskop.org.
-
-2001-07-26  Michael Natterer  <mitch@convergence.de>
-
-       * gobject/glib-genmarshal.c: added a "release_check" to the
-       OutArgument structure, which, if present, gets integrated in the
-       marshaller code and protects us from stuff like
-       g_object_unref(NULL) on marshaller return values.
-
-2001-07-23  Padraig O'Briain  <Padraig.Obriain@sun.com>
-
-       * gobject/gobjectnotifyqueue.c: fix unconditional check of
-       first GParamSpec in g_object_notify_queue_thaw(); prevent
-       property notification being lost
-
-2001-07-23  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: fixed g_io_channel_seek_position() so that
-       G_SEEK_CUR works for UTF-8 channel encoding, and unallocated
-       converters are not flushed after the seek; fixed
-       g_io_channel_get_buffer_condition() so that G_IO_IN is only
-       set if the read buffer contains at least one full character
-
-2001-07-23  Sven Neumann  <sven@gimp.org>
-
-       * Makefile.am: removed glib.def from EXTRA_DIST ...
-       * glib/Makefile.am: ... and added it here.
-
-2001-07-22  Hans Breuer  <hans@breuer.org>
-
-       * glib/giochannel.c (g_io_channel_get_buffer_condition) : make
-       the code actually have an effect (Use |= to set bits). Not
-       absolutely sure if is the right one.
-
-       * glib/giowin32.c (g_io_win32_<check|prepare>) : don't modify
-       watch->condition but restored the previous behaviour.
-       Now gio-test as well as The Gimp work again ...
-       
-2001-07-21  Hans Breuer  <hans@breuer.org>
-
-       * glib/giowin32.c (g_io_channel_new_file) : set the
-       corresponding p(ermission)mode of the file when creating,
-       otherwise a wronly file couldn't be overwritten (at least
-       not on Win9x).
-
-2001-07-21  Hans Breuer  <hans@breuer.org>
-
-       * glib/giowin32.c : intial implementation of new API functions.
-       Not sure if it behaves as intended ...
-
-       * glib.def : removed, glib/glib.def is the file used since moved
-       * glib/glib.def : updated
-
-       * tests/makefile.msc : added iochannel-test
-
-Fri Jul 20 19:19:10 (UTC) 2001  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/giochannel.c: API changes, fixes to
-       error handling, some internal restructuring
-       * glib/giochannel.h: API changes, documentation for
-       elements in GIOChannel structure
-       * glib/giounix.c: Matched API changes, implemented
-       backend to set is_readable, is_writeable, is_seekable
-       flags, added a test to catch large values of count
-       for which the behavior of write() is undefined
-       * glib/giowin32.c: Changed to match new prototypes for
-       io_close() and io_seek(), removed references to
-       G_IO_STATUS_INTR, set is_seekable flag in channel
-       creation functions
-       * glib.def: Renamed g_channel_error_quark() and
-       g_channel_error_from_errno() to g_io_channel_error_quark() and
-       g_io_channel_error_from_errno(); added new functions
-       g_io_channel_get_buffered() and g_io_channel_set_buffered()
-       * docs/reference/glib/glib-sections.txt: Modified iochannel
-       section to reflect new functions and API changes
-       * tests/iochannel-test.c: Fixed to work with API changes
-       * tests/iochannel-test-infile: New file; input file
-       for iochannel-test
-       * tests/unicode-collate.c tests/unicode-normalize.c:
-       Changed G_IO_FILE_MODE_READ to "r" to match API change
-
-Fri Jul 20 19:16:24 (UTC) 2001  Ron Steinke  <rsteinke@w-link.net>
-
-       * gobject/glib-genmarshal.c: modified to create header files
-       using G_[BEGIN,END]_DECLS instead of #ifdef __cplusplus ...
-
-Fri Jul 20 14:11:29 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gutf8.c glib/gunidecomp.c: s/size_t/gsize/ to match
-       prototypes.
-
-Thu Jul 19 16:05:21 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gcompletion.c (g_completion_complete): Fix memory
-       leak and dubious list manipulation. (Found by 
-       Ron Koerner, #53408)
-
-       * glib/gfileutils.c (get_contents_stdio): Call fclose()
-       on FILE * on error. (#57057)
-
-2001-07-20  Hans Breuer  <hans@breuer.org>
-
-       * glib/glib/giowin32.c : make it compile again
-
-       * glib/glib.def : updated exports
-
-       * glib/makefile.msc.in :
-       * glib/makefile.mingw.in : 
-       * tests/makefile.msc.in : reflect glib move
-
-       * tests/mainloop-test.c : #include <io.h> for _pipe()
-
-       * tests/gio-test.c : casts for strict compiler settings
-
-       * makefile.msc.in : new master makefile reflecting the glib
-       move. The '.in' isn't really needed anymore, because there
-       is no version number in it
-
-2001-07-19  Darin Adler  <darin@bentspoon.com>
-
-       * glib/gstrfuncs.c: (g_ascii_strdown), (g_ascii_strup): Add
-       missing const.
-       (g_strsplit): Add g_return_val_if_fail for case of empty
-       delimiter, which can result in an infinite loop otherwise.
-       * glib/gstrfuncs.h: Add missing const.
-       * tests/.cvsignore: Ignore a generated file.
-       
-       * tests/array-test.c:
-       * tests/dirname-test.c:
-       * tests/hash-test.c:
-       * tests/list-test.c:
-       * tests/node-test.c:
-       * tests/relation-test.c:
-       * tests/shell-test.c:
-       * tests/slist-test.c:
-       * tests/spawn-test.c:
-       * tests/strfunc-test.c:
-       * tests/string-test.c:
-       * tests/testglib.c:
-       * tests/tree-test.c:
-       * tests/type-test.c:
-       Add an #undef G_DISABLE_ASSERT so all tests will assert even if
-       asserts are disabled inside glib itself.
-
-Fri Jul 13 19:20:06 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstring.c (g_string_insert/append/prepend_unichar):
-       Add functions to insert a unichar as UTF-8, since this
-       is reasonably common.
-
-       * glib/gutf8.c glib/gunicode.h (g_utf8_get_char_validated):
-       New function exposing iterating through possibly invalid/incomplete
-       UTF-8 to unicode to the outside world.
-
-       * glib/gutf8.c (g_utf8_get_char_extended): Fix max_len argument
-       to be gssize, not gsize.
-
-2001-07-17  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * configure.in: Added "nn" to ALL_LINGUAS.
-       
-2001-07-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gmain.c: Add some assertions. Simplify and fix
-       g_main_context_release(). Fix some locking bugs in
-       g_main_loop_run().
-
-2001-07-12  Mark Murnane  <Mark.Murnane@sun.com>
-
-       * glib/gmessages.c: Changed prototype of printf_string_upper_bound
-       to return gsize.  Now matches the actual function body.
-
-       * glib/gstrfuncs.c (g_strrstr_len): Changed type of parameter #2 
-       from gint to gssize.  Now matches the prototype in gstrfuncs.h.
-       
-2001-07-11  Darin Adler  <darin@bentspoon.com>
-
-       * .cvsignore: Add some generated files.
-
-       * glib/gmain.c: (g_main_context_iterate): Comment out cruft
-       after #endif to avoid gcc warning.
-       * gmodule/gmodule.c: (g_module_set_error_unduped): Remove
-       const from type to avoid gcc warning.
-       * gobject/gsignal.c: (g_signal_emitv): ifdef variable used
-       only if G_ENABLE_DEBUG to avoid gcc warning.
-       * gobject/gtype.c: (type_iface_vtable_init_Wm),
-       (type_iface_vtable_finalize_Wm): ifdef call needed only
-       if !G_DISABLE_ASSERT to avoid gcc warning.
-       * tests/testglib.c: (main): ifdef call needed only if
-       !G_DISABLE_ASSERT to avoid gcc warning. Maybe later we
-       should make the test to #undef G_DISABLE_ASSERT.
-       * tests/unicode-collate.c: Add include of <string.h> to
-       avoid gcc warning.
-
-Wed Jul 11 11:13:50 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am (libglib_1_3_la_SOURCES): Add gunicomp.h
-       (Reported by Sven Neumann).
-
-       * glib/guniprop.c (g_utf8_str/updown) glib/gunicollate.c
-       (g_utf8_collate_key): Fix shadowing problems reported by
-       many (D. Adler, S. Neumann, M. Murmane, L. Peter)
-
-Fri Jul  6 00:02:41 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/gmessages.c (printf_string_upper_bound): fix negative exponent
-       handling (numbers<0).
-       
-       * glib/gutils.h (g_bit_storage): take a gulong as argument.
-       same for g_bit_nth_lsf() and g_bit_nth_msf() as mask.
-
-2001-07-08  Martin Baulig  <baulig@suse.de>
-
-       * tests/unicode-normalize.c, tests/unicode-collate.c:
-       Reflect latest g_io_channel_new_file() API changes, use
-       G_IO_FILE_MODE_READ instead of "r".
-
-Fri Jul  6 22:34:32 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gunicode.h glib/gunidecomp.c glib/guniprop.c 
-         glib/gunicollate.c: Add length arguments to
-       g_utf8_{strup,strdown,casefold,collate_key}.
-
-       * glib/gdate.c: Fix for above.
-
-2001-07-06  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * configure.in: added Basque (eu) to ALL_LINGUAS
-
-Mon Jul  2 19:48:52  2001 Andrew Lanoix <alanoix@umich.edu>
-
-       *giowin32.c: g_source_remove()ing an socket iochannel closes
-       the socket when it should not. Patch by Peter Zelezny 
-       <zed@linux.com>
-
-       *giowin32.c: Fix a few typos
-       
-Mon Jul  2 16:03:21 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_channel_get_buffer_condition): Fix.
-
-       * glib/giunix.c: Fix prepare/check/dispatch for watches.
-
-       * tests/unicode-normalize.c: #include <string.h>
-
-Sat Jun 30 23:14:32 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/glist.[hc]: added g_list_insert_before().
-
-       * glib/gslist.c (g_slist_insert_before): provide an implementation,
-       prototype was already present...
-
-Sun Jul  1 20:16:25 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/guniprop.c (g_unichar_totitle): Use G_N_ELEMENTS
-       rather than a custom macro.
-
-       * glib/gen-unicode-tables.pl: Adapt to changes in table
-       formats for Unicode 3.1
-
-       * glib/gunicode.h glib/guniprop.c glib/gunichartables.h
-         glib/gen-unicode-tables.pl: Add case conversion functions
-        g_utf8_casefold, g_utf8_strup, g_utf8_strdown.
-
-       * tests/unicode-caseconv.c tests/gen-casefold-txt.pl
-         tests/gen-casemap-txt.pl tests/casefold.txt 
-         tests/casemap.txt: Test cases for case conversion.
-
-       * glib/gunicode.h glib/gunidecomp.[ch] glib/gunicomp.h
-         glib/gen-unicode-tables.pl: Add function to do Unicode
-        normalization g_utf8_normalize().
-
-       * tests/unicode-normalize.c: Test program for case conversion.
-
-       * glib/gunicode.h glib/gunicollate.c: Add collation functions
-       g_utf8_collate, g_utf8_collate_key.
-
-       * test/unicode-collate.c: Test program for collation.
-
-       * glib/gdate.c (g_date_fill_parse_tokens): Fix uninitialized
-       variable.
-
-       * glib/gdate.c (g_date_strftime) docs/Changes-2.0.txt:
-       Make work with UTF-8 even if the locale isn't UTF-8 based.
-       Still somewhat of broken, if the format string contains 
-       characters not representable in the current locale, will warn
-       and not work.
-       
-       * glib/gdate.c: Use UTF-8 normalization and casefolding.
-
-Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
-       Rename GSourceFuncs::destroy to GSourceFuncs::finalize.
-       (#56858)
-
-Sat Jun 30 15:49:10 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.[ch]: (Mostly patch from Sebastian Wilhemi)
-       Make some changes to the way that GMainContext works:
-
-        - a GMainContext is no longer associated with a single
-          thread, but any thread can acquire ownership 
-          of thread and iterate.
-
-        - There is a facility g_main_context_wait() for
-          non-owner-threads to wait either for ownership
-          or for a condition to be broadcast.
-
-        - For efficiency, GMainLoop just piggybacks of
-          of the loops mutex / condition instead of
-          having a separate mutex/condition for each
-          GMainLoop.
-
-       * glib/gthread.[ch]: Remove hacks to store the thread's
-       GMainContext in the GThread structures, since we
-       no longer have the GMainContext <=> GThread correspondence.
-       
-        * glib/gmain.[ch]: Make g_main_context_wakeup() public
-       so someone could completely duplicate GMainLoop 
-       with the public API.
-
-       * tests/mainloop-test: Fix up to the new API. Decidedly
-       doesn't work at the moment, but that may be the IO
-       channel changes, or preexisting locking problems.
-
-Sat Jun 30 13:18:28 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c glib/gstring.h: Try compiling
-       before committing, why don't you? Simple fixes
-       for my stupid typos. 
-
-Sat Jun 30 12:49:26 2001  Owen Taylor  <otaylor@redhat.com>
-
-        Patch from Darin Adler (#54166)
-       
-       * glib/gstrfuncs.[ch]: Add ascii-only, locale-insensitive
-       g_ascii_to[lower/upper], g_ascii_str[down/up],
-       g_ascii_is[upper/lower] and deprecate the locale-affected
-       versions which break for UTF-8, etc. Make
-       g_ascii_strup/strdown duplicating,
-       not in-place for consistency with UTF-8 functions.
-
-       * glib/gstring.[ch]: Add ascii-only, locale-insensitive
-       g_string_ascii_[down/up], and deprecate the locale-affected
-       versions which break for UTF-8, etc.
-
-       * glib/gutils.c glib/gwin32.c test/testglib.c: Use
-       the g_ascii_* functions where appropriate.
-
-Fri Jun 29 13:36:39 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstring.[ch] (g_string_set_size): Add function to 
-       allow setting the length of a string greater than the 
-       current length (for buffering usage)
-
-       * glib/gstring.[ch]: Expose string->allocated_len, since
-       that is useful when using GString simply as a buffer. 
-       (Renamed from string->alloc)
-
-       * glib/giochannel.[ch] glib/giounix.c glib/giowin32.c:
-       Major patch from Hidetoshi Tajima and Ron Steinke
-       reworking GIOChannel to have:
-
-        - Buffering
-        - Sane and useful error reporting
-        - Streaming encoding conversion with iconv
-        - Convenience functions to read by lines or 
-          an entire file.
-
-       Also fix remaining 64 bit cleanliness issues.
-
-       * tests/iochannel-test.c tests/Makefile.am: Test case
-       for IO channel streaming conversion. Still needs 
-       some fixing up.
-
-Thu Jun 28 16:57:44 2001  Tim Janik  <timj@gtk.org>
-
-       * configure.in (GLIB_MICRO_VERSION): up version number to 1.3.7,
-       interface age 0, binary age 0.
-
-2001-06-27  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * glib/gmarkup.c: Fix a typo.
-       
-2001-06-27  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am, configure.in: Removed glib-config-2.0, as we have
-       pkg-config now.
-
-       * glib/Makefile.am: Added -I$(top_srcdir) for builddir != srcdir.
-
-       * Makefile.am: Removed gen-unicode-tables.pl from EXTRA_DIST.
-
-Tue Jun 26 11:43:46 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in Makefile.am *.[ch] glib/*.[ch] glib/Makefile.am:
-       Move glib library into a subdirectory, make all GLib include
-       files include as <glib/glist.h>
-
-       * tests/testglib.c tests/testgdate.c tests/testgdateparser.c
-         tests/timeloop.c tests/timeloop-basic.c: Move all tests into
-       the tests/ subdirectory.
-
-Sat Jun 23 17:34:38 2001  Tim Janik  <timj@gtk.org>
-
-       * gmessages.c (g_logv): use G_BREAKPOINT() instead of raise(5).
-
-Wed Jun 20 12:00:54 2001  Owen Taylor  <otaylor@redhat.com>
-
-        Changes for 64-bit cleanliness, loosely based on patch 
-       from Mark Murnane.
-       
-       * gconvert.c (g_convert/g_convert_with_fallback): Remove
-       workarounds for since-fixed GNU libc bugs. Minor
-       doc fix.
-
-       * gconvert.[ch]: Change gint to gsize/gssize as
-       appropriate.
-
-       * gconvert.c (g_locale/filename_to/from_utf8): Fix incorrect
-       computation of bytes_read / bytes_written.
-
-       * gfileutils.[ch] (g_file_get_contents): Make length
-       out parameter 'gsize *len'.
-
-       * ghook.c (g_hook_compare_ids): Don't compare a
-       and b as 'a - b'.
-
-       * gmacros.h (GSIZE_TO_POINTER): Add GPOINTER_TO_SIZE,
-       GSIZE_TO_POINTER.
-
-       * gmain.c (g_timeout_prepare): Rewrite to avoid
-       overflows. (Fixes bug when system clock skews
-       backwards more than 24 days.)
-
-       * gmarkup.[ch]: Make lengths passed to callbacks
-       gsize, length for g_markup_parse-context_parse(),
-       g_markup_escape_text() gssize.
-
-       * gmessages.[ch] (g_printf_string_upper_bound): Change
-       return value to gsize.
-
-       * gmessages.c (printf_string_upper_bound): Remove
-       a ridiculous use of 'inline' on a 300 line function.
-
-       * gstring.[ch]: Represent size of string as a gsize,
-       not gint. Make parameters to functions take gsize,
-       or gssize where -1 is allowed.
-
-       * gstring.c (g_string_erase): Make
-       g_string_erase (string, pos, -1) a synonym for
-       g_string_truncate for consistency with other G*
-       APIs.
-
-       * gstrfuncs.[ch]: Make all functions taking a string
-       length, take a gsize, or gssize if -1 is allowed.
-       (g_strstr_len, g_strrstr_len). Also fix some boundary
-       conditions in g_str[r]str[_len].
-
-       * gutf8.c tests/unicode-encoding.c: Make parameters that 
-       are byte lengths gsize, gssize as appropriate. Make 
-       character offsets, other counts, glong.
-
-       * gasyncqueue.c gcompletion.c
-          timeloop.c timeloop-basic.c gutils.c gspawn.c.
-       Small 64 bit cleanliness fixups.
-
-       * glist.c (g_list_sort2, g_list_sort_real): Fix functions
-       that should have been static.
-
-       * gdate.c (g_date_fill_parse_tokens): Fix extra
-       declaration that was shadowing another.
-
-       * tests/module-test.c: Include string.h
-
-Mon Jun 18 15:43:29 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gutf8.c (g_get_charset): Make argument
-       G_CONST_RETURN char **.
-
-2001-06-22  Andrew Lanoix <alanoix@umich.edu>
-       
-       *giowin32.c: Debug and partial rewrite of async socket code
-       on windows, which fixes major MT issues. Some test code kindly 
-       provided by wroberts1@home.com.
-       
-Thu Jun 14 14:09:46 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gstrfuncs.c (g_strconcat): Fix a use of strcat that
-       wasn't replaced with g_stpcpy in the original 
-       stpcpy-for-efficiency patch.
-
-2001-06-11  Havoc Pennington  <hp@redhat.com>
-
-       * NEWS: updated
-
-       * configure.in (GLIB_MICRO_VERSION): increment version to 1.3.6
-
-2001-06-08  Alex Larsson  <alexl@redhat.com>
-
-       * gstrfuncs.[ch]:
-       Added new functions g_strstr_len, g_strrstr and g_strrstr_len
-       
-       * tests/strfunc-test.c:
-       Add some tests for the new functions.
-       
-       * gunicode.h:
-       * gutf8.c:
-       Add length argument to g_utf8_strchr and g_utf8_strrchr.
-       
-2001-06-08  Havoc Pennington  <hp@redhat.com>
-
-       * gspawn.c: support G_SPAWN_FILE_AND_ARGV_ZERO specifying that 
-       the vector passed in to g_spawn_* contains a filename to 
-       execute in argv[0] then the actual argv begins at argv + 1.
-       Kind of a lame hack, but this isn't something you commonly want
-       to do, and avoids adding more function arguments.
-
-2001-06-08  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * configure.in: Added Azeri (az) to ALL_LINGUAS
-
-2001-06-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * docs/Makefile.am, configure.in: Remove docs/glib-config.1.in.
-
-       * gthread-2.0-uninstalled.pc.in (Cflags): Add @G_THREAD_CFLAGS@.
-
-2001-06-07  Havoc Pennington  <hp@redhat.com>
-
-       * m4macros/glib-2.0.m4: subst GLIB_GENMARSHAL, GOBJECT_QUERY, 
-       GLIB_MKENUMS variables
-
-       * gmodule-2.0.pc.in: add gmodule_supported variable
-
-       * glib-2.0.pc.in: add glib_genmarshal, gobject_query,
-       glib_mkenums variables  
-
-       * configure.in: put G_MODULE_SUPPORTED value into 
-       .pc files
-
-       * autogen.sh: support AUTOGEN_SUBDIR_MODE
-
-       * Makefile.am: add -uninstalled.pc.in to EXTRA_DIST
-
-2001-06-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Look for nanosleep function. 
-
-       * gtimer.c: Use nanosleep for g_usleep, when found.
-
-       * gtimer.c, gtimer.h: Add g_time_val_add function. Closes #54271.
-
-       * gasyncqueue.c: Documentation updates.
-
-       * gthreadpool.c: Use g_time_val_add now that we have it.
-
-2001-06-01  Jon Trowbridge  <trow@gnu.org>
-
-       * gdate.c (g_date_update_julian): Changed to take a const
-       argument, and then to cast out const.
-       (g_date_update_dmy): Changed to take a const argument, and then
-       cast out const.
-       (g_date_get_weekday): Changed argument to be const.
-       (g_date_get_month): Changed argument to be const.
-       (g_date_get_year): Changed argument to be const.
-       (g_date_get_day): Changed argument to be const.
-       (g_date_get_julian): Changed argument to be const.
-       (g_date_get_day_of_year): Changed argument to be const.
-       (g_date_get_monday_week_of_year): Changed argument to be const.
-       (g_date_get_sunday_week_of_year): Changed argument to be const.
-       (g_date_compare): Changed arguments to be const.
-       (g_date_to_struct_tm): Changed GDate argument to be const.
-       (g_date_strftime): Changed GDate argument to be const.
-       (g_date_clamp): Added.  The equivalent of the CLAMP macro for
-       GDates.
-       (g_date_order): Added.  Ensure that the first GDate argument
-       preceeds the second, swapping them if necessary.
-       (g_date_days_between): Added.  Computes the (signed) number of days
-       between two dates.
-
-Mon Jun  4 16:02:57 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gstrfuncs.c (g_strup/strdown): to match g_strcasecmp,
-       check if it is lower/upper before converting to upper/lower
-       [ not required by ISO... ] (#55682, Jon Trowbridge)
-
-Mon Jun  4 15:59:15 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gunicode.h: Make a bit more standalone by adding include
-       of gerror.h. #54543.
-       
-       * gunicode.h: Change size_t to g_size. (Ugh)
-
-2001-05-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * grand.h (g_random_boolean, g_rand_boolean): Fix to stupid bug in
-       g_random_boolean, also both functions now return 1 or 0 instead of
-       1<<15 or 0.
-
-       * tests/rand-test.c: Extended testcases.
-
-       * configure.in: Remove G_HAVE_ISO_CXX_VARARGS and
-       G_HAVE_ISO_C_VARARGS and define G_HAVE_ISO_VARARGS directly
-       guarded by #if(n)def __cplusplus.
-
-2001-05-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-2.0.pc.in: Add @G_THREAD_CFLAGS@ to Cflags.
-
-Tue May 29 18:17:11 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * autogen.sh (have_libtool): Fix GNU sedism
-
-2001-05-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * tests/Makefile.am, tests/qsort-test.c: Add test case for the
-       g_qsort_with_data func. It works. This fixes bug #52605.
-
-       * tests/Makefile.am, tests/cxx-test.C: Now that we check for a C++
-       compiler in configure.in anyway, I added a test, that the GLib
-       headers can be inclued into a C++ program. This fixes bug #52605.
-
-       * configure.in: Don't bail out, if no C++ compiler is
-       found. Define G_HAVE_ISO_VARARGS only if appropriate.
-
-       * gmessages.h: Thus we can revert the previous patch.
-
-2001-05-29  James Henstridge  <james@daa.com.au>
-
-       * gmessages.h: "#ifdef G_HAVE_ISO_VARARGS" will always succeed
-       even when we don't have ISO vararg support.  Changed to
-       "#if G_HAVE_ISO_VARARGS".
-
-Mon May 28 11:40:34 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Check for __VARARGS__ separately for C and C++.
-
-2001-05-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Fix typo.
-
-Sun May 27 05:09:18 2001  Tim Janik  <timj@gtk.org>
-
-       * gmain.c (g_main_context_prepare): unlock context when bailing
-       out with a warning.
-       (g_main_context_check): same here.
-
-       * gmain.c (g_main_context_check): before returning due to
-       changed pollfds, unlock context.
-       
-Thu May 24 21:24:16 CEST 2001 Paolo Molaro <lupus@ximian.com>
-
-       * gmarkup.c: back out change by mitch@convergence.de and apply patch in
-       bug id #52067 that fixes the same problem in a more complete manner.
-       This fixes also a segfault for a malformed XML file and adds a new
-       test case.
-
-2001-05-24  Hans Breuer  <hans@breuer.org>
-
-       * grel.c : reflect renaming of g_string_sprintfa to g_string_printfa
-
-       * makefile.msc.in : create an additional static lib to be used from
-       (at least) glib-genmarshal
-
-2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * garray.c (g_array_remove_index_fast): Tiny speed improvement
-       suggested by noon@users.sourceforge.net.
-
-2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
-       "gthread-win32.c".
-
-       * glibconfig.h.win32.in: Define G_HAVE_ISO_VARARGS for gcc, don't
-       know about MSC. Define G_THREADS_IMPL_WIN32 instead of
-       G_THREADS_IMPL_POSIX and define the right static mutex macros and
-       types.
-
-       * glib.def: g_thread_create renamed to g_thread_create_full.
-
-       * gthread.c: memcpy is not necessary here. We can simply use
-       struct assignment.
-
-       * gmessages.c: Fix compilation error on win32. Added
-       GFileDescriptor, wich is gint on Unix and FILE* on win32.
-
-2001-05-21  Andrew Lanoix <alanoix@umich.edu>
-
-       *giowin32.c: G_IO_WIN32_WINDOWS_MESSAGES channels
-       not handled correctly in g_io_win32_check()
-
-Sun May 20 10:47:47 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Fix some problems in writing out varargs
-       tests in configure.in
-
-Fri May 18 10:52:23 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in gmessages.h: Use compile checks for ISO C99 and GNU
-       extension varargs macros syntax and store result in glibconfig.h
-       (G_HAVE_ISO_VARARGS, G_HAVE_GNUC_VARARGS) rather than relying
-       on checking predefined macros.
-
-2001-05-18  Michael Natterer  <mitch@convergence.de>
-
-       * gmarkup.c: don't g_strdup()/g_free() all parsed attributes and
-       their values twice but simply copy the string pointers from the
-       GMarkupAttribute struct to the string arrays before passing them
-       to start_element().
-
-2001-05-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c, gthread.h: Renamed g_thread_create to
-       g_thread_create_full and added macro g_thread_create, which omits
-       'stack_size', 'bound' and 'priority' parameters. Also removed
-       'bound' from GThread struct.
-
-       * gthreadpool.h, gthreadpool.c: Adapted GThreadPool to the above
-       changes. GThreadPool lost the 'priority' and 'bound'
-       members. g_thread_pool_new the 'stack_size', 'bound' and
-       'priority' parameters.
-
-       * tests/mainloop-test.c, tests/thread-test.c,
-       tests/threadpool-test.c: Adapted to the above changes.
-
-       * gmem.c (g_mem_profile): Fixed mutex deadlock.
-
-2001-05-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * makefile.mingw.in: Add gpattern.o to objects.
-
-       * glib.def: Export g_thread_exit as well.
-
-       * Makefile.am: Fix BUILT_EXTRA_DIST exporting.
-
-Sun May 13 10:31:17 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am gobject/Makefile.am gmodule/Makefile.am:
-       Add inter-library dependencies.
-
-       * acinclude.m4: Remove libtool macros.
-
-       * autogen.sh: Require libtool-1.4, automake-1.4p1.
-
-2001-05-15  Havoc Pennington  <hp@redhat.com>
-
-       * configure.in (AC_OUTPUT): m4macros/Makefile
-
-       * m4macros/Makefile.am, m4macros/glib-2.0.m4,
-       m4macros/glib-gettext.m4:
-       m4 files moved here on server, Makefile.am added
-        
-       This is so you can aclocal -I m4macros while avoiding acinclude.m4
-
-       * Makefile.am: add m4macros subdir, remove references to glib-2.0.m4
-
-2001-05-14  Havoc Pennington  <hp@redhat.com>
-
-       * gutf8.c (g_utf8_get_char): fix docs; they said we validated 
-       the UTF-8, but we can't possibly detect partial chars since
-       there's no length arg here, so trying to use this function 
-       on invalid UTF-8 is a bad idea.
-
-Thu May 10 23:21:30 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gmessages.c (g_log_write_prefix): Avoid using stdio
-       to be as robust as possible in out-of-memory.
-
-       * gmessages.c (g_log_default_handler): Remove some dead
-       code.
-
-       * gutils.c (g_parse_debug_string): Fix to avoid mallocs.
-
-Fri May 11 18:25:23 2001  Tim Janik  <timj@gtk.org>
-
-       * gdataset.c:
-       (g_dataset_foreach):
-       (g_datalist_foreach): make these safe against removal of the
-       current element.
-
-2001-05-10  Havoc Pennington  <hp@pobox.com>
-
-       * gmessages.c (g_log_write_prefix): change env variable to
-       G_MESSAGES_PREFIXED, suggested by Tim
-
-Thu May 10 15:19:01 2001  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_key_hash): use g_str_hash() algorithm
-       to generate hashes.
-
-       * gmem.c (standard_calloc): free() doesn't return a value
-       (Mark Murnane).
-
-2001-04-26  Havoc Pennington  <hp@redhat.com>
-
-       * configure.in: Get rid of --enable-msg-prefix
-
-       * gmessages.c: make whether to prefix the messages with
-       appname/pid a runtime setting, not a compile-time setting.  Change
-       default to include prefix for debug/warning/error type messages.
-
-2001-05-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c, gthread.h: Renamed 'value' and 'arg' to 'data' and
-       'thread_func' to 'func' to make it more consistent with the rest
-       of GLib.
-
-       * gthreadpool.c, gthreadpool.h: Moved 'stack_size' from the public
-       members of GThreadPool to the private ones. Renamed 'thread_func'
-       to 'func' as above. Moved up 'user_data' in g_thead_pool_new
-       argument list and in GThreadPool struct.
-       
-Tue May  8 15:33:31 2001  Tim Janik  <timj@gtk.org>
-
-       * gcompletion.h: removed #include <unistd.h> sneaked in by
-       sopwith in november.
-
-2001-05-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmain.c, gthread.c, gthread.h: Moved func and arg members from
-       GRealThread to GThread, such that they can be accessed by the
-       user.
-
-       * gthread.c, gthread.h: Due to popular demand (Tim being the
-       populus here ;-) threads now have a 'return value', which is
-       returned by g_thread_join and is either the return of the topmost
-       thread function or the value given to g_thread_exit.
-       
-       * gthreadpool.c, tests/mainloop-test.c, tests/thread-test.c:
-       Adapted to the above change.
-
-2001-01-06  Hans Breuer  <hans@breuer.org>
-
-       * glib.def : don't try to export g_strcpy, it is g_stpcpy;
-       updated and added some tweaking for functions which got 
-       renamed recently, to avoid the update hassle if it can 
-       simply be done compatible. Should vanish if there is a 
-       stable version for win32.
-
-Fri May  4 11:49:18 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Released 1.3.5
-
-       * NEWS: Updated
-
-       * configure.in (GLIB_MICRO_VERSION): Up version to 1.3.5,
-       interface/binary age 0.
-
-2001-05-04  Sven Neumann  <sven@convergence.de>
-
-       * ghash.c: fixed a typo in a comment.
-
-       * gtree.[ch]: added new functions g_tree_new_full(), g_tree_replace(), 
-       g_tree_steal() and g_tree_foreach() to adapt GTree to the GHashTable
-       API. Moved comments into the C file.
-
-       * docs/reference/glib/glib-sections.txt
-       * docs/reference/glib/tmpl/glib-unused.sgml
-       * docs/reference/glib/tmpl/hash_tables.sgml
-       * docs/reference/glib/tmpl/linked_lists_double.sgml
-       * docs/reference/glib/tmpl/linked_lists_single.sgml
-       * docs/reference/glib/tmpl/macros_misc.sgml
-       * docs/reference/glib/tmpl/trees-binary.sgml: updated documentation
-       
-Thu May  3 06:38:28 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * g[s]list.c (g_[s]list_foreach) docs/Changes-2.0.txt: Make
-       foreach() safe against removal of the _current_ element. While
-       this could break some code, the new behavior is consistent with
-       the rest of GLib/GTK+ and probably is what people expect in most
-       cases. (Suggested by Paul Kuykendall, #50071)
-
-Wed May  2 11:10:22 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gutf8.c (g_utf8_to_ucs4_fast): Fix read past end of the string.
-       (#50404, fix from Jonas Borgström)
-       
-Sun Apr 29 00:37:34 2001  Tim Janik  <timj@gtk.org>
-
-       * ghook.[hc]: made hook ids a gulong.
-
-2001-04-20  Dan Winship  <danw@ximian.com>
-
-       * configure.in: Add a check for the Darwin dynamic linker. Use
-       AC_TRY_LINK when checking for "nonposix getpwuid_r" so it notices
-       "no getpwuid_r" correctly.
-
-       * testglib.c (main): Make template[] bigger to prevent an overrun.
-       Remove an unused variable. Initialize error to NULL.
-
-       * tests/gio-test.c (main): Add a cast to prevent a warning when
-       size_t is a long.
-
-       * tests/type-test.c (main): Add an #ifdef to prevent a warning
-       when G_HAVE_GINT64 is defined and G_GINT64_FORMAT isn't.
-
-2001-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * ghash.c, ghash.h: Remove definition of g_hash_table_freeze and
-       g_hash_table_thaw. Instead added G_DISABLE_DEPRECATED-guarded
-       macros to ghash.h to go along the lines of the standard.
-
-       * gscanner.c, gscanner.h: Dito for g_scanner_freeze_symbol_table
-       and g_scanner_thaw_symbol_table.
-
-       * gutils.c, gutils.h: Dito for g_dirname. g_basename is still
-       defined in gutils.c, but declared ing gutils.h only
-       G_DISABLE_DEPRECATED-guarded.
-       
-       * configure.in: Removed bashism in test for the pkg-config
-       version.
-
-       * configure.in: Rewrote test for multithread flag. Now uses
-       localtime_r, which hopefully has a consistent prototype across
-       different platforms. Also it uses a clever double EGREP trick
-       instead of compiling, which could give false positives. Thanks to
-       Dan Winship <danw@ximian.com> for the hint.
-
-Wed Apr 18 17:35:38 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gutils.c (_glib_gettext): Add missing static pointed
-       out by Michael Meeks.
-
-Wed Apr 18 09:37:07 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * MAINTAINERS: Removed. Keeping README, README.cvs-commits
-       HACKING, and AUTHORS up to date is plenty without extra
-       random files that someone thought a module should have.
-       (Actually, I believe this was used for debbugs in the past.)
-
-Tue Apr 17 11:47:07 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Released 1.3.4
-
-       * NEWS: Updated
-
-Tue Apr 17 10:43:36 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gstrfuncs.c: Define _GNU_SOURCE for stpcpy
-
-       * tests/mainloop-test.c (main): Wait for all threads
-       to start before beginning tests.
-
-2001-04-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthreadpool.c (g_thread_pool_thread_proxy): Until now every
-       thread pool always had at least one tread waiting to avoid
-       switching overhead in case a new task would be added soon after
-       one finished. This however means a big waste of threads, if many
-       mostly inactive thread pools are involved. Now such a waiting
-       thread will only wait for half a second (This value is of course
-       very randomly picked) and go to the global threadpool afterwards.
-
-Mon Apr 16 12:04:52 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Remove warnings about conflicts with the
-       stable version.
-
-       * glib-2.0.m4: Fix some of the error text to be halfway
-       up to date.
-
-       * README.in INSTALL.in: Add these to generate README, INSTAL
-       (as in the stable branch). Update.
-
-       * HACKING: Update.
-
-2001-04-16  Havoc Pennington  <hp@redhat.com>
-
-       * gqsort.c: docs
-
-       * gfileutils.c: docs
-
-       * gwin32.c: docs fixes
-
-       * gconvert.c: docs
-
-       * guniprop.c: docs
-
-       * gutf8.c: docs
-
-2001-04-16  Havoc Pennington  <hp@redhat.com>
-
-       * glib-2.0.m4: put AC_PATH_PROG(pkg-config) before "Checking for
-       glib" so the output looks right 
-
-2001-03-23  Havoc Pennington  <hp@redhat.com>
-
-       * gutils.c (g_parse_debug_string): make GDebugKeys argument 
-       const
-
-2001-04-14  Hans Breuer  <hans@breuer.org>
-
-       * glib.def : 
-       * makefile.msc.in : updated
-
-       * gpattern.c : include "gutils.h" to resolve the inline hassle
-
-2001-04-11  Alexander Larsson  <alexl@redhat.com>
-
-       * glib-2.0.m4: Pass pkg-config options
-       before the other args so it works even if
-       POSIXLY_CORRECT is set.
-
-Mon Apr  9 18:57:44 2001  Tim Janik  <timj@gtk.org>
-
-       * configure.in: increment version to 1.3.4 (binary 0, interface 0).
-
-2001-04-05  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added sv to ALL_LINGUAS.
-
-Wed Apr  4 09:18:55 2001  Tim Janik  <timj@gtk.org>
-
-       * Released GLib-1.3.3.
-
-Tue Apr  3 20:22:59 2001  Tim Janik  <timj@gtk.org>
-
-       * NEWS: updates.
-
-       * NEWS.pre-1-3: take over old news.
-
-Tue Apr  3 12:38:16 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-config-2.0.in: Exit with an error message that you
-       should use pkg-config instead.
-
-       * configure.in (PACKAGE): Require pkg-config.
-
-       * tests/Makefile.am (EXTRA_DIST): Add utf8.txt.
-
-       * configure.in (GLIB_MICRO_VERSION): Up MICRO to 3,
-       leave interface/binary at 0.
-
-Tue Apr  3 13:46:22 2001  Tim Janik  <timj@gtk.org>
-
-       * glist.[hc]: added g_list_nth_prev() which walks ->prev instead
-       of ->next.
-
-       * gpattern.[hc]: added shell-style pattern matching code from beast,
-       derived from the gtk_pattern_*() code, but with a couple of bug fixes
-       and a number of optimizations.
-
-2001-04-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthreadpool.c: Added documentation.
-
-       * gthreadpool.c: The global thread pool now also is seperated for
-       bound and unbound threads. Only threads with standard stack size
-       go to the global pool. g_thread_pool_new now protects the global
-       setup of inform_mutex etc. with a lock. Fixed some typos. Unlock
-       the queue after g_thread_pool_wakeup_and_stop_all in the proxy.
-
-2001-04-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmain.c: Use the new GRealThread member "context" instead of a
-       GStaticPrivate to store the thread specific main loop context.
-
-       * gthread.c: Added "context" member to GRealThread and updated
-       g_thread_create, g_thread_self and g_thread_cleanup accordingly.
-       
-       * gthread.c, gthread.h: Removed the functions
-       g_static_private_(get|set)_for_thread and adapted
-       g_static_private_(get|set) and g_static_private_free
-       accordingly. This fixes Bug #51435.
-       
-2001-03-30  Sven Neumann  <sven@gimp.org>
-
-       * ghash.[ch]
-       * docs/reference/glib/tmpl/hash_tables.sgml: added new functions
-       g_hash_table_new_full, g_hash_table_replace, g_hash_table_steal and
-       g_hash_table_foreach_steal. Moved most docs out of the template
-       file into the C file. Please proofread the new documentation.
-
-2001-03-29  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Updates.
-       * tests/makefile.mingw.in
-       * tests/makefile.msc.in: Add module-test rules.
-
-Mon Mar 26 14:14:53 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am (INCLUDES): -DG_DISABLE_DEPRECATED
-
-       * gmain.h timeloop.c: Surround the cruftiest stuff with
-       #ifndef G_DISABLE_DEPRECATED.
-
-       * gcompat.h gdate.h: Move compat defines back to 
-       gdate.h, surround with #ifndef G_DISABLE_DEPRECATED. 
-       Remove gcompat.h.
-
-Mon Mar 26 13:34:50 2001  Owen Taylor  <otaylor@redhat.com>
-
-       [ Patch from DindinX  <David.Odin@bigfoot.com>, added docs ]
-       * gstrfuncs.c, gstrfuncs.h: Add g_stpcpy () for platform that
-       don't have stpcpy ().
-       * gstrfuncs.c (g_strjoin, g_strjoinv, g_strconcat): 
-       use g_stpcpy () so these functions run much faster.
-       * config.h.win32.in, glib.def: add reference to g_stpcpy ()
-       * configure.in: Add a test for the stpcpy () function.
-2001-03-20  Havoc Pennington  <hp@redhat.com>
-
-       * gutf8.c (g_utf8_strlen): rewrite, based on bug #52328 from
-       Anders
-
-2001-03-19  Havoc Pennington  <hp@redhat.com>
-
-       * gutf8.c (g_unichar_validate): added this function
-
-2001-03-18  Tor Lillqvist  <tml@iki.fi>
-
-       * gspawn-win32.c (SETUP_DEBUG): Add braces to silence gcc -Wall.
-
-       * gspawn-win32-helper.c (write_no_error): Remove unused function.
-
-       * tests/makefile.mingw.in (module-test.exe): Add rules for
-       building module-test.
-
-Wed Mar 14 18:46:54 2001  Tim Janik  <timj@gtk.org>
-
-       * gscanner.[hc]: removed archaic gpointer derived_data; relict and
-       added a GData member instead.
-       
-       * glist.[hc]: added g_list_remove_all().
-
-       * gslist.[hc]: added g_slist_remove_all().
-
-Sat Mar 17 19:54:51 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * timeloop.c: Reorder headers to make FreeBSD happy. 
-
-2001-03-13  Tor Lillqvist  <tml@iki.fi>
-
-       From Edward M. Lee  <tailbert@yahoo.com>:
-
-       * gdate.c (g_date_set_parse): add support for dates that in the
-       form "Wed Mar 14 2001". Running testgdate on cygwin requires this.
-
-Fri Mar  9 18:01:43 2001  Tim Janik  <timj@gtk.org>
-
-       * gscanner.[hc]: made config arg to g_scanner_new() const.
-
-2001-03-12  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/Makefile.am (libmoduletestplugin_b_la_LIBADD,
-       libmoduletestplugin_b_la_LIBADD): Link with the libgmodule la only
-       on Win32.
-
-2001-03-10  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Define G_PLATFORM_WIN32 here, too.
-
-       * tests/Makefile.am: Use the _LIBADD dependency on libglib only on
-       Win32.
-
-2001-03-09  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Update with some information about using configure
-       and libtool.
-
-2001-03-09  Hans Breuer  <hans@breuer.org>
-
-       * gobject/gobject.def : updated
-
-2001-03-08  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def
-       * gobject/gobject.def
-       * gobject/makefile.mingw.in: Update.
-
-2001-03-08  Sven Neumann  <sven@gimp.org>
-
-       * gtree.[ch]: 
-       * docs/reference/glib/tmpl/trees-binary.sgml: added new function 
-       g_tree_lookup_extended().
-
-Thu Mar  8 16:23:34 2001  Tim Janik  <timj@gtk.org>
-
-       * ghook.[hc]: destruction cleanup. there's one
-       ->finalize_hook member in the hooklist now that gets
-       called when a hook should be destroyed, that's it.
-       that function is guarranteed to be called only when
-       all ref_counts to the hook vanished, thus also when
-       the hook is not in call.
-
-2001-03-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in (FLAG_DOES_NOT_WORK): Fix typo and thus bug #51862.
-
-Wed Mar  7 09:32:06 2001  Tim Janik  <timj@gtk.org>
-
-       * glib-object.h: add gvaluearray.h.
-
-       * gstring.[hc]: fixup naming of g_string_sprint*.
-       
-       * gtypes.h: fixed GCompareDataFunc naming.
-
-2001-03-07  Christian Meyer  <chrisime@gnome.org>
-
-       * configure.in: Added de (German) to ALL_LINGUAS.
-
-2001-03-02  Christophe Merlet  <redfox@eikonex.org>
-
-       * configure.in: Added fr (French) to ALL_LINGUAS.
-
-2001-03-01  Tor Lillqvist  <tml@iki.fi>
-
-       * gutils.c (g_path_is_absolute): (Win32) Remove test for initial
-       double backslash (UNC path), this will of course be matched by the
-       test for an initial G_DIR_SEPARATOR right up front. Silly me.
-       (g_find_program_in_path): Implement on Win32. Append the
-       executable file name suffixes from PATHEXT in turn while looking
-       for the program.
-       (g_find_program_in_path): If the program we are looking for is a
-       relative path in a subdirectory, don't do any path search.
-       (g_get_any_init): (Win32) Also look for the USERPROFILE env var
-       indicating the home directory equivalent.
-       (g_find_program_in_path): (Win32): Use MAXPATHLEN, not PATH_MAX
-       which isn't defined with MSVC.
-
-       * testglib.c (main): Test g_find_program_in_path() on Win32 by
-       looking for more.com and regedit.
-
-       * glib.def: Add g_find_program_in_path.
-
-2001-02-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthreadpool.c (g_thread_pool_thread_proxy): Make
-       max_unused_threads work for -1 as well.
-
-2001-02-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.h (struct _GThread): Change the order to match the order
-       in g_thread_create().
-
-       * gthread.c (g_static_rec_mutex_lock_full): Also do the right
-       thing (behave like 'depth' calls to g_static_rec_mutex_lock) for a
-       mutex, that is already locked.
-
-Thu Feb 22 10:31:36 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_source_remove_poll): Add missing implementation
-       of g_source_remove_poll. (Pointed out by Stefan Westerfeld)
-
-2001-02-21  Tor Lillqvist  <tml@iki.fi>
-
-       * gutils.c (g_find_program_in_path): Implement on Win32.
-
-       Cygwin support contributed by Stefan Ondrejicka
-       <ondrej@idata.sk>. Hopefully I got it all in while simultaneously
-       adding support for auto*/libtool for mingw.
-
-       * Makefile.am: Changes for auto* support on Cygwin and Win32. Do
-       still distribute the hand-written makefiles and *.win32.in files,
-       though. Use GIO, GSPAWN and PLATFORMDEP macros set by configure.
-       Use -no-undefined. Pass -export-symbols glib.def to libtool.
-       
-       * configure.in: Define G_PLATFORM_WIN32 on both pure Win32 (mingw)
-       and Cygwin. Add AC_CYGWIN, AC_EXEEXT and AC_LIBTOOL_WIN32_DLL
-       calls for Cygwin and mingw support.  Check for %I64u guint64
-       format (in MS C library). Set G_MODULE_IMPL on mingw and
-       Cygwin. Use ac_object and ac_exeext.  Set GIO, GSPAWN, PLATFORMDEP
-       and G_LIBS_EXTRA. Compile timeloop only on Unix. Define OS_WIN32
-       automake conditional on Win32.
-       
-       * glib.h: Include gwin32.h also on Cygwin.
-
-       * gfileutils.c (get_contents_posix): Use O_BINARY (defined as 0 on
-       Unix) for Cygwin's sake.
-
-       * gtimer.c (GETTIME): Reduce #ifdefs, use a macro GETTIME().
-
-       * gconvert.c
-       * gthread.c
-       * gutf8.c
-       * gutils.c: For code needed both on Cygwin and native Win32,
-       test for G_PLATFORM_WIN32.
-
-       * gmarkup.h: Use G_BEGIN_DECLS and G_END_DECLS.
-       
-       * gtypes.h: Refine GLIB_VAR definition. Also check for DLL_EXPORT
-       in case compiling a static library on Win32 or Cygwin.
-
-       * gwin32.c: No <direct.h> on Cygwin. No need for ftruncate() or
-       dirent emulation on Cygwin.
-       (get_package_directory_from_module) Convert return value from
-       GetModuleFileName() to POSIX path on Cygwin.
-
-       * tests/Makefile.am (progs_LDADD): Link with libglib, libgthread
-       and libgmodule as appropriate. Use -no-undefined.
-
-       * gbacktrace.c: Move #ifdefs around a bit on Win32.
-
-2001-02-21  Tor Lillqvist  <tml@iki.fi>
-
-       * gshell.c (unquote_string_inplace): Make static.
-
-       * gthread.h: Include gtypes.h to be sure to get GLIB_VAR
-       definition, remove definition from here.
-
-       * gunicode.h: Remove duplicate GLIB_VAR definition from here, too.
-
-       * gutils.c: (Win32) Use USERPROFILE as home dir if present. On
-       Win2k, HOMEDRIVE and HOMEPATH aren't reliable.
-       
-       * Makefile.am (INCLUDES): Add -DGLIB_COMPILATION.
-
-       * makefile.mingw.in: Remove install target, Windows isn't Unix.
-       (DEFINES): Add -DDLL_EXPORT.
-
-       * testgdate.c
-       * testgdateparser.c
-       * testglib.c: Undefine GLIB_COMPILATION.
-
-       * testglib.c: Make some vars static. Add Cygwin path tests.
-
-       * glib.def: Updates.
-
-       * .cvsignore
-       * */.cvsignore: Ignore also .obj, .dll, .lib and .exe files.
-
-2001-02-19  Hans Breuer <hans@breuer.org>
-
-       * glib/glib.def, gobject/gobject.def : added nissing symbols
-
-       * gobject/makefile.msc : updated
-
-       * glib/gmessages.c : call the "debug interrupt" before exiting the
-       program, if build with msvc as debug version. Which gives the opportunity
-       to see the callstack, etc.
-
-       * glib/gthread.c : thread->pid is only defined #ifdef
-       G_THREAD_USE_PID_SURROGATE
-
-Mon Feb 19 07:32:38 2001  Tim Janik  <timj@gtk.org>
-
-       * glib-config-2.0.in (lib_glib): my name is glib-config-2.0!
-       don't exit with errorcode!=0 for --help or -h.
-       
-       * Makefile.am:
-       * configure.in: build glib-config-2.0.
-
-2001-02-17  Havoc Pennington  <hp@pobox.com>
-
-       * gthread.c: include string.h
-
-        Applied patch from Soeren Sandmann:
-       
-       * testglib.c: const fixes
-
-       * gwin32.h: format cleanups
-
-       * gutils.c (g_atexit): constify a variable
-       (g_find_program_in_path): constification
-       (g_basename): G_CONST_RETURN
-       (g_path_skip_root): G_CONST_RETURN
-       (g_getenv): G_CONST_RETURN
-       (g_get_user_name): G_CONST_RETURN
-       (g_get_real_name): G_CONST_RETURN
-       (g_get_home_dir): G_CONST_RETURN
-       (g_get_tmp_dir): G_CONST_RETURN
-       (g_get_prgname): G_CONST_RETURN
-       (_glib_gettext): G_CONST_RETURN
-
-       * gunicode.h: formatting cleanups
-
-       * gstrfuncs.c (g_strerror): G_CONST_RETURN
-       (g_strsignal): G_CONST_RETURN
-
-       * gspawn.c (g_execute): const on variables
-
-       * gmessages.c (printf_string_upper_bound): fix const on a variable
-
-       * gmem.c (g_mem_chunk_new): make the "name" arg const
-       (struct _GRealMemChunk): make the "name" field const
-
-       * gfileutils.c (g_file_open_tmp): store const return in a const
-       gchar* variable
-
-       * gdataset.c (g_quark_to_string): G_CONST_RETURN
-
-Sat Feb 17 07:26:33 2001  Tim Janik  <timj@gtk.org>
-
-       * configure.in (G_MODULE_HAVE_DLERROR): add check for broken RTLD_GLOBAL
-       (on OSF1 V5.0).
-
-2001-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * acconfig.h, configure.in: Reverted the changes necessary to
-       enlarge the system thread for G_THREAD_USE_PID_SURROGATE.
-
-       * gthread.c: Now implement G_THREAD_USE_PID_SURROGATE in gthread.c
-       instead of gthread/gthread-posix.c. While the latter has the
-       advantage, that it is conceptually cleaner, it makes
-       g_thread_self_posix_impl _very_ slow and that hurts
-       GStaticRecMutex and other things. So the new version is less
-       clean, but faster.
-
-2001-02-09  Havoc Pennington  <hp@redhat.com>
-
-       * gconvert.c (g_convert): don't overwrite errors
-
-       * gerror.c (g_set_error): improve warning message if an error is
-       overwritten     
-       (g_propagate_error): ditto
-
-2001-02-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c, gthread.h: Added functions g_static_rec_mutex_init,
-       g_static_rec_mutex_free, g_static_private_init,
-       g_static_private_free, g_static_rw_lock_init to allow the usage of
-       all those types dynamically. (g_static_rw_lock_free already
-       existed). Aditionally freed static_private indeces are reused
-       now. Untill now the array would just grow if you would use more
-       and more static_private. That required adding a slist of all
-       running threads, which could potentially be of good use later. It
-       is not exported however. Renamed a LOCK and small indentation
-       fixes.
-
-       * tests/thread-test.c: Test the new static_private index freing
-       and reusing feature.
-       
-Mon Feb 12 15:01:09 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in (gtk_doc_min_version): Add check for gtk-doc version.
-
-2001-02-10  Tor Lillqvist  <tml@iki.fi>
-
-       * gtypes.h
-       * gutils.h: Move GLIB_VAR definition from gutils.h to gtypes.h
-
-       * glib.def
-       * gmem.h: Mark glib_mem_profiler_table for export.
-
-       * gwin32.c (get_package_directory_from_module): Don't store
-       address of local variable in hashtable.
-
-2001-02-08  Fatih Demir        <kabalak@kabalak.net>
-
-       * configure.in: Added "tr" to ALL_LINGUAS.
-
-2001-02-04  Tor Lillqvist  <tml@iki.fi>
-
-       * gwin32.c (g_win32_getlocale): Use "nn" for Nynorsk, as nn.po
-       files are appearing now. If the sublanguage starts with '@', don't
-       use a '_' separator. South Africa is 'ZA', not 'SA'.
-
-Sun Feb  4 07:38:32 2001  Tim Janik  <timj@gtk.org>
-
-       * docs/debugging.txt: s/glib_trap_/g_trap_/. add comments on
-       g_trap_instance_signals, g_trace_instance_signals and
-       GRUNTIME_DEBUG.
-
-       * gmem.c: s/glib_trap_/g_trap_/.
-       
-2001-02-04  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/Makefile.am (thread_LDADD): Change order of libs,
-       put progs_LDADD last. Needed for cygwin, says jbdoll@kepri.re.kr.
-
-2001-02-02  Tor Lillqvist  <tml@iki.fi>
-
-       * giochannel.h
-       * giowin32.c
-       * gmain.c: Stylistic cleanups. Use G_STRLOC in g_warning() calls.
-
-       * glib.def: Add missing functions.
-
-2001-02-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c, gthread.h: Added g_static_mutex_init to allow
-       initialization of a GStaticMutex, that can not be initialized with
-       G_STATIC_MUTEX_INIT, for example in allocated structures.
-
-Wed Jan 31 13:46:58 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * acinclude.m4 glib-gettext.m4: Fix problem with --disable-nls.
-
-2001-01-31  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Corresponding change as below to
-       GStaticMutex.
-
-2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c, gthread.h: Added g_static_mutex_free to allow using
-       GStaticMutexes with limited lifetime without leaking.
-       
-       * configure.in: GStaticMutex doesn't have to provide extra space
-       for debugging information for G_ERRORCHECK_MUTEXES, as then the
-       non-default implementation (runtime_mutex) is used anyway.
-
-       * gthread.h (g_cond_wait): Added debug information for
-       g_mutex_free calls, if G_ERRORCHECK_MUTEXES is defined.
-
-2001-01-29  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Use the same GMutex structure as the
-       configure-generated glibconfig.h does.
-
-       * gstrfuncs.c (g_strsignal): Declare strsignal() on Cygwin, too,
-       says jbdoll@kepri.re.kr.
-
-2001-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c: Broadcast the condition, if there are waiting
-       readers, as all might read at the same time. Only signal the
-       writer thread, if there are no more readers.
-
-2001-01-25  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in
-       * */makefile.mingw.in: Protect the rule to rebuild makefile.mingw
-       if makefile.mingw.in has changed with a check if said .in file
-       exists. (This rule is mainly a convenience for yours truly.)
-
-       * giowin32.c: Socket support rewritten. It was utterly broken, and
-       untested in fact. We still do use a thread for each socket being
-       watched, but instead of blocking in recv() (which of course was
-       plain stupid for sockets being listen()ed on in a server-type
-       application), we block in select(). The read method for sockets
-       calls recv(). It is now possible for the application to call
-       accept(), recv() or send() in the callback, just like on
-       Unix. Tested with code kindly provided by Andrew Lanoix.
-
-       Rename g_io_channel_win32_new_stream_socket() to
-       g_io_channel_win32_new_socket() as it isn't restricted to stream
-       sockets.
-       
-       * gmain.c (g_poll): Related changes in the Win32 version of
-       g_poll(). When polling for messages, always do a PeekMessage()
-       first. We used to miss messages if several were posted between
-       calls to g_poll().
-
-       * giochannel.h: Improve Win32-related comments.
-
-       * gutf8.c: (Win32) Include <stdio.h> for sprintf.
-
-       * tests/gio-test.c: (Win32) Add tests for polling for Windows
-       messages.
-
-       * tests/makefile.mingw.in: Remove superfluous compilation command
-       line.
-
-2001-01-23  Alex Larsson  <alexl@redhat.com>
-
-       * gmain.c (g_source_callback_unref): Free the callback
-       (g_source_set_callback): Initialize the callback refcount
-
-2001-01-20  Tor Lillqvist  <tml@iki.fi>
-
-       * gutils.c (g_get_codeset): (Win32) Even if g_get_codeset() is
-       currently commented out from gutils.h, fix it to return the same
-       CP%d value as g_get_charset().
-
-2001-01-19  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * gconvert.c: Fix typo.
-       * gfileutils.c: Same here.
-       * configure.in: Added no to ALL_LINGUAS
-       
-2001-01-17  Tor Lillqvist  <tml@iki.fi>
-
-       * gwin32.c (g_win32_getlocale, g_win32_error_message): Add doc
-       comments.
-       (g_win32_get_package_installation_directory): Add one parameter,
-       the name of a DLL in the package. Add possibility to use that to
-       deduce the installation directory if not entered into the
-       Registry. Make the return value dynamically allocated.
-       (g_win32_get_package_installation_subdirectory): New convenience
-       function.
-
-       * gutils.c (GLIB_LOCALE_DIR)
-       * gwin32.h: Adapt accordingly.
-
-       * testglib.c (main): Adapt tests accordingly.
-
-Tue Jan 16 23:20:38 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gutils.c glibintl.h: Optimize for size rather than speed by
-       making _() always call _glib_gettext() instead of conditionally
-       calling gettext() or _glib_gettext_init. glib only uses translated
-       strings in slow error handling code anyways.
-
-       * glibintl.h: g'ify types.
-
-       * Makefile.am: include glibintl.h in _SOURCES
-
-2001-01-17  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Define ENABLE_NLS and GETTEXT_PACKAGE.
-
-       * makefile.mingw.in
-       * makefile.msc.in: Use the GNU intl library.
-
-       * gwin32.c (g_win32_get_package_installation_directory): New
-       function. To be used by various GLib-using packages to get their
-       installation directory, which should be stored in the Registry by
-       some installer.
-
-       * gwin32.h: Declare it.
-
-       * testglib.c (main): Test it.
-
-       * gutils.c: On Win32, define GLIB_LOCALE_DIR using
-       g_win32_get_package_installation_directory().
-
-       * glib.def: Update.
-
-Mon Jan 15 21:39:06 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-2.0.pc.in (Libs) glib-config-2.0.in: Add @INTLLIBS@.
-
-Mon Jan 15 21:12:49 2001  Owen Taylor  <otaylor@redhat.com>
-
-        * configure.in acconfig.h glibintl.h gutils.c
-       po/{Makefile.in.in,POTFILES.in,po2tbl.in}: Add gettext
-       support.
-
-       * glib-gettext.m4 acinclude.m4: Clean up the GTK+ gettext macros
-       some more and put them in this file, though they also need
-       to be included in acinclude.m4 due to the brokeness of
-       aclocal.
-
-       * gspawn.c gspawn-win32.c gutf8.c gconvert.c gfileutils.c
-       gshell.c: Remove dummy _() #defines, include glibintl.m4.
-
-2001-01-09  Tor Lillqvist  <tml@iki.fi>
-
-       * giowin32.c: Rework the changes needed to pass mainloop-test. Now
-       we don't need to call TerminateThread() after all, which is a
-       relief, as the docs have a BIG RED WARNING SIGN about using that
-       API. Instead, when closing a fd channel that has a reader thread
-       running, just mark it as non-running and additionally mark the fd
-       as ripe for closing. When the reader thread hopefully eventually
-       gets something (and EOF or some actual data), it will note that it
-       shouldn't be running, break out of the loop, and close the fd.
-
-       The socket channel closing code should probably be changed
-       similarily, but that will have to wait until I have a test case.
-       
-       (g_pipe_readable_msg, g_io_channel_win32_new_pipe,
-       g_io_channel_win32_new_pipe_with_wakeups,
-       g_io_channel_win32_pipe_request_wakeups,
-       g_io_channel_win32_pipe_readable): Remove these, have been
-       obsolete for some time.
-       
-       * gutils.c (g_basename, g_dirname): Don't warn about deprecation
-       on Win32. Code written for GLib 1.2 doesn't have much choice but
-       to use GLib >= 1.3 on Win32.
-
-       * glib.def: Update.
-
-2001-01-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmem.c: Made g_profile_mutex a GMutex* instead of
-       G_LOCK_DEFINE_STATIC to avoid deadlock for thread implementations
-       without native static mutexes. Contruct g_profile_mutex in
-       g_mem_init().
-
-2001-01-06  Tor Lillqvist  <tml@iki.fi>
-
-       * gconvert.c (g_locale_to_utf8, g_locale_from_utf8): Get len using
-       strlen() if arg is negative in the Win32 code, too.
-
-       * giowin32.c: Changes necessary to be able to run
-       mainloop-test. We can't close the fd that our (internal) reader
-       thread is sitting doing a blocking read() from. We must terminate
-       the thread first. Keep track of thread handle, and close it when
-       thread is dying. Start reader thread with the lower-level
-       CreateThread() instead of _beginthreadex() from the C runtime, in
-       order to be able to use TerminateThread(). Hopefuly this isn't
-       harmful.
-
-       * glib.def: Update.
-
-       * tests/makefile.{mingw,msc}.in (TESTS): Add mainloop-test and
-       unicode-encoding.
-
-       * tests/mainloop-test.c: Portability: <unistd.h>, need <fcntl.h>
-       on Win32.
-
-       * tests/unicode-encoding.c (process): Add missing "line" argument
-       to fail(). On Win32, convert UTF-16LE, as libiconv'c ivonf always
-       converts to UTF-16BE if we ask for unspecific UTF-16.
-       (main) Handle also '\r'.
-
-Fri Jan  5 11:25:42 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in (PACKAGE): move $enable_debug down below
-       checks for GCC to avoid setting CFLAGS prematurely,
-       change checks to avoid adding -g twice.
-
-       * gutf8.c (g_ucs4_to_utf8): Support len < 0 to mean
-       0 termination.
-
-       * gutf8.c (g_utf8_to_ucs4): Terminate result with 0.
-
-       * tests/mainloop-test.c (main): Fix uses of 
-       g_main_loop_destroy().
-
-       * tests/unicode-encoding.c tests/Makefile.am tests/utf8.txt:
-       Tests for unicode-conversion code.
-
-       * gconvert.c (g_convert, g_convert_with_fallback): work around
-       a couple of GNU libc bugs.
-
-       * gconvert.[ch] (g_{locale,filename}_{to,from}_utf8): Standardize
-       arguments to match g_convert(). Document.
-
-       * gunicode.[ch]: 
-         - Implement conversion functions to and from UTF-16
-         - Standardize unicode conversion functions on prototype like
-           g_convert.
-         - Add a lot of error checking to unicode conversion functions.
-
-       * gunicode.[ch] (g_utf8_to_ucs4_fast): Add fast, non-checking
-       variant of g_utf8_to_ucs4.
-
-       * gutf8.c (g_utf8_validate): 
-        - add g_return_if_fail (str != NULL).
-        - add checks for overlong strings, non-valid Unicode characters (>= 110000)
-          and single surrogates.
-
-2001-01-05  Tor Lillqvist  <tml@iki.fi>
-
-       * testglib.c (main): Add test for g_path_skip_root().
-
-       * gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
-       forward slashes in the template.
-
-       * gutils.c (g_path_skip_root): On Win32, skip the \\server\share
-       part of UNC paths. On all platforms, skip several initial
-       slashes. Add a few comments.
-       (g_get_any_init): On Win32, in case HOME is Unix-style with
-       (forward) slashes (some other applications apparently set it up
-       this way, convert to backslashed form.
-
-       * configure.in (glib_os): Remove stray 'v'. Add case for mingw,
-       although using configure for mingw surely doesn't work yet.
-
-       * glib.def: Update.
-
-2001-01-02  Havoc Pennington  <hp@redhat.com>
-
-       * configure.in: remove glib-config-2.0
-
-       * Makefile.am: remove glib-config-2.0
-
-2001-01-03  Havoc Pennington  <hp@pobox.com>
-
-       * tests/Makefile.am (INCLUDES): -I$(top_srcdir)/gmodule, 
-       fix from Michael Meeks
-
-       * Makefile.am (INCLUDES): DISABLE was spelled wrong
-
-Wed Jan  3 14:10:49 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.[ch]: Switch GMainLoop to be ref/unref, use to
-       make dropping reference to running loop safe.
-
-Wed Dec 13 20:41:49 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_source_unref_internal): Unref callback->cb_data
-       if it was still set when the source is freed. (Usually, this
-       will be done by g_source_destroy.)
-
-2001-01-02  Dan Winship  <danw@helixcode.com>
-
-       * garray.h (g_array_append_val, g_array_prepend_val,
-       g_array_insert_val): Use parentheses around an argument to make
-       these cause an error if you pass a non-lvalue for the value,
-       rather than silently doing the wrong thing.
-
-2000-12-29  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Add GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG.
-
-       * glib.def: Update.
-
-       * {.,*}/makefile.{mingw,msc}.in: Add -DG_ENABLE_DEBUG.
-       
-Fri Dec 29 14:53:18 2000  Tim Janik  <timj@gtk.org>
-
-       * configure.in: we can't grow _cv_ variables by using a backticked
-       expr that refers back to the variable (glib_cv_sizeof_system_thread for
-       G_THREAD_USE_PID_SURROGATE), that'd keep the variable growing every time
-       it's evaluated. quantum states, anyone?)
-
-Thu Dec 28 10:21:46 2000  Tim Janik  <timj@gtk.org>
-
-       * gmem.[hc]: got rid of outdated dmalloc support. provide g_try_malloc()
-       and g_try_realloc() which _may_ fail and return NULL.
-       nuked g_mem_check(), provided GMemVTable for memory function
-       virtualization, alterable at program startup with g_mem_set_vtable().
-       provided glib_mem_profiler_table and g_mem_profile() to support limited
-       profiling information out of the box (uses mprotect() for free()ed areas
-       on linux).
-       provide globally visible G_MEM_ALIGN.
-       buncha cleanups.
-
-       * docs/macros.txt: file to get a clue about the various configuration
-       macros.
-
-       * docs/debugging.txt: explain debugging traps.
-
-       * configure.in: got rid of --enable-mem-check and --enable-mem-profile,
-       define GLIB_SIZEOF_VOID_P and GLIB_SIZEOF_LONG. check malloc prototypes
-       and define SANE_MALLOC_PROTOS is we can use them.
-       <boy, is this file a mess>
-
-       * gutils.c, gscanner.c: fix up compatibility warnings, use g_message().
-
-2000-12-27  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Update.
-
-2000-12-25  Tor Lillqvist  <tml@iki.fi>
-
-       * gmessages.c: (Win32) Use a MessageBox for fatal
-       messages. Collect eror message into a buffer, and display that.
-
-       * glib.def: Update.
-
-       * glibconfig.h.win32.in: Update. Remove unused wchar and wctype
-       macros, add G_MODULE_SUFFIX.
-
-2000-12-24  Ali Abdin  <aliabdin@aucegypt.edu>
-
-       * Makefile.am, gcompat.h, glib.h: New gcompat.h header file
-         as recommended by Havoc.
-
-       * gdate.c, gdate.h, testgdate.c,
-         docs/reference/glib/glib-sections.txt,
-         docs/reference/glib/tmpl/date.sgml, tests/date-test.c: Rename some
-         of the gdate functions to use the '_get' in their name. Patch
-         reviewed by Havoc.
-               
-2000-12-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Determine the suffix of the shared librarries for
-       this system. This is done analogous to
-       ltconfig.sh. G_MODULE_SUFFIX in glibconfig.h is set to either
-       "sl", "dll", or (most often) "so".
-
-       * tests/Makefile.am, tests/module-test.c,
-       tests/libmoduletestplugin_a.c, tests/libmoduletestplugin_b.c:
-       Added new testcase for gmodule. This is mostly copied from
-       gmodule/testgmodule.c, but unlike that is is quiet. (Why BTW are
-       some tests that verbose, not to say loquacious...)
-
-2000-12-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * grand.c: Updated G_RAND_DOUBLE_TRANSFORM to be more
-       accurate. Redid g_rand_double() such that it returns 52 bits after
-       the point instead of 32 as before. That OTOH requires calling
-       g_rand_int() twice. Overhauled g_rand_int_range(), which is easier
-       now thanks to the new precision of g_rand_double(). Thanks to
-       Sverre Johansen <sj@ifi.uio.no> for the hint.
-
-       * grand.h: Added g_rand_boolean() and g_random_boolean()
-       macros. While they could be omitted due to extreme simplicity,
-       they make intention clearer in code and are therefore good to have.
-
-       * grand.c, grand.h: Renamed all 'min' and 'max' parameters to'
-       begin' and 'end' resp. to avoid making people think, that 'max' is
-       included in the interval. 'end' now isn't, whereas 'begin'
-       is. That's similar to the use in the STL.
-
-       * gslist.c, glist.c: Ok, I'm a moron. When I originally
-       implemented ENABLE_GC_FRIENDLY, I forgot to include config.h into
-       the affected files. Now that Alex did that for those two,
-       inevitable typos surfaced, which are now fixed.
-       
-       * garray.c, ghash.c, gqueue.c, gtree.c: Include config.h as well,
-       as ENABLE_GC_FRIENDLY should be known.
-
-2000-12-19  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.in:
-       Added --disable-mem-pools option.
-
-       * glist.c:
-       * gslist.c:
-       * gnode.c:
-       * gmem.c:
-       Disable free list and memory chunks if DISABLE_MEM_POOLS is defined.
-
-2000-12-17  Tor Lillqvist  <tml@iki.fi>
-
-       * gutf8.c (g_utf8_get_charset_internal): (Win32) Use GetACP to get
-       the current ANSI codepage.
-
-       * gunicode.h: Add comment that the static string g_get_charset
-       sets the parameter to point to should be copied in case the
-       charset might be changed later in the program.
-
-2000-12-14  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.{mingw,msc}.in: No need to -DGSPAWN_HELPER when
-       compiling gspawn-win32-helper any longer.
-
-       * giowin32.c (g_io_win32_dispatch): Warn if no callback. Call
-       callback correctly.
-       (g_io_win32_create_watch): Fix typo.
-       (g_io_win32_fd_create_watch): Ditto.
-       (g_io_channel_unix_new): If it is a file descriptor (i.e., a Unix
-       fd lookalike provided by the C library), call
-       g_io_channel_win32_new_fd(). If it is a socket (from WinSock),
-       call g_io_cahnnel_win32_new_stream_socket(). Hopefully sockets and
-       fds don't overlap. TODO: Implement also datagram sockets.
-       (g_io_channel_win32_poll): Call g_main_context_get_poll_func().
-
-       * gcompletion.h: Include <unistd.h> only on Unix. Is this
-       inclusion really needed here? OTOH, do include <stddef.h>, for
-       size_t.
-
-       * gmessages.c: (Win32) Don't define a function called "write" that
-       might clash with the prototype from <io.h>, use a #define.
-
-       * glib.def: Update.
-
-       * gmain.c (g_source_add_poll): Don't return a value from void
-       function.
-       (g_main_context_get_poll_func): Compile also for non-Win32, as
-       presumably was intended. The result var is a GPollFunc, not a
-       GPollFunc*. Return the result!
-
-2000-12-13  Havoc Pennington  <hp@redhat.com>
-
-       * gconvert.c (open_converter): make static
-
-       * gutf8.c (g_utf8_validate): Simplify logic a bit, maybe 
-       speeding it up - now we just return FALSE if we had to bail out
-       for any reason before getting to the end of the string, as defined 
-       by a nul byte if len was -1, defined by the len otherwise. This 
-       also fixes a bug where nul bytes were not treated as invalid 
-       when the length was specified.
-
-2000-12-12  Havoc Pennington  <hp@pobox.com>
-
-       * gmain.c (g_main_context_destroy): don't try to use thread stuff
-       unless G_THREADS_ENABLED
-       (g_main_context_query): ditto
-       (g_main_context_check): ditto
-       (g_main_loop_quit): ditto
-
-Tue Dec 12 18:58:22 2000  Tim Janik  <timj@gtk.org>
-
-       * ghash.c (g_hash_table_remove): return whether a value
-       got removed.
-
-Tue Dec 12 15:18:10 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.[ch]: Revert unauthorized changes.
-
-2000-12-12  Elliot Lee  <sopwith@redhat.com>
-
-       * gmain.c, gmain.h (g_main_context_new, g_main_context_destroy):
-       GMainContext useful in implementing some additional styles of
-       main loop usage.  To do this, however, Joe Hacker needs to be able
-       to create/destroy GMainContext's at will. This is just an export
-       of existing functionality, rather than any new functionality.
-
-       They are listed in the "Low level functions for implementing custom
-       main loops" section of the header file, to avoid confusing people.
-
-Sun Dec 10 10:47:11 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_source_destroy_internal): Remove pollfds
-       from the context here, not when actually freeing the
-       source.
-
-       * gmain.c (g_source_unref_internal): Free source list
-       and source, call source->source_funcs->destroy().
-
-       * giochannel.c: Unreference io_channel properly.
-
-Thu Dec  7 15:22:30 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/mainloop-test.c (recurser_start): Add a bunch
-       of unrefs.
-
-       * gmain.c (g_source_attach): Reference the source
-       when adding (pointed out by Elliot)
-
-2000-12-08  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * acglib.m4 (GLIB_AC_DIVERT_BEFORE_HELP): 
-       Rename from GLIB_DIVERT_BEFORE_HELP.  
-       Update to track autoconf 2.49b.
-       * configure.in: Reflect above change.
-       (AC_EGREP_HEADER): Rename from really obselete AC_HEADER_EGREP.
-       (debug_default): Replace "if test `expr ...`" with "case". 
-
-       * tests/Makefile.am (TESTS): Rearrange into other variables, and
-       include run-markup-tests.sh.
-       (TESTS_ENVIRONMENT): New.  Pass $srcdir to tests.
-       (noinst_PROGRAMS): Rename to ...
-       (check_PROGRAMS): ... this.  'automake' ensures that these are
-       built before running the tests.
-       * tests/run-markup-tests.sh: Support $srcdir != $builddir.
-
-2000-12-08  Havoc Pennington  <hp@pobox.com>
-
-       * tests/Makefile.am (TESTS): move markup-test to noinst_PROGRAMS;
-       it isn't a proper test, the proper test would be 
-       run-markup-tests.sh, but that can't go in tests, so we need 
-       a manual make check rule. Didn't do that yet.
-
-2000-12-07  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * gmain.h: Don't put anything after an #endif.
-       * gmain.c: Likewise.
-
-2000-12-06  Havoc Pennington  <hp@pobox.com>
-
-       * tests/strfunc-test.c (main): add g_strdupv test
-
-       * gstrfuncs.c (g_strdupv): Add a function to copy 
-       an array of strings
-
-Tue Dec  5 12:23:04 2000  Owen Taylor  <otaylor@redhat.com>
-
-        * gmain.[hc]: Major change in API for creating sources
-       to handle multiple main loops (GMainContext *). 
-
-       GSources are now exposed as GSource * and implemented
-       with structure derivation.
-
-       * giochannel.[ch]: Changed vtable for GIOChannel to correspond
-       to the new mainloop API, add g_io_channel_create_watch().
-        
-       * gtypes.h: Move GTimeVal here.
-
-       * gthread.h: Remove gmain.h include to avoid circularity.
-       
-        * giounix.c: Update for new GMain API.
-        
-       * giowin32.c: Update for new GMain API. (No check for
-       proper compilation or working.)
-
-       * timeloop.c timeloop-basic.c: A benchmarking program for
-       the main loop comparing the main loop against a 
-       hand-written (timeloop-basic.c) variant. 
-
-       * tests/mainloop-test.c: New torture test of mainloop.
-       
-       * docs/Changes-2.0.txt: Started. Added text about
-       changes to GMain.
-
-       * gmain.c (g_main_add_poll_unlocked): Initial fd->revents
-       to zero. (#8482, Benjamin Kahn)
-
-2000-12-01  Tor Lillqvist  <tml@iki.fi>
-
-       * {.,*}/makefile.msc.in: Include make.msc from GLib's build subdir.
-
-       * makefile.{mingw,msc}.in (glib_OBJECTS): Add gunibreak.
-
-       * glib.def: Update correspondingly.
-
-2000-11-21  Havoc Pennington  <hp@pobox.com>
-
-       * gmacros.h: Provide G_CONST_RETURN which is 'const' by default,
-       and nothing when G_DISABLE_CONST_RETURNS is defined.
-
-2000-11-29  Havoc Pennington  <hp@redhat.com>
-
-       * gunidecomp.c (COMBINING_CLASS): 
-       s/UNICODE_LAST_CHAR/G_UNICODE_LAST_CHAR/
-
-       * gunichartables.h: Update for data in Unicode 3.0.1
-
-       * gunidecomp.h: Ditto
-       
-       * gunicode.h (GUnicodeBreakType): Enum for line break properties
-       (g_unichar_break_type): Get the break property for a char
-       
-       * gunibreak.h: Autogenerated line break property tables
-
-       * gunibreak.c (g_unichar_break_type): added 
-       
-       * Makefile.am (EXTRA_DIST): dist gen-unicode-tables.pl
-
-       * Makefile.am (libglib_1_3_la_SOURCES): Add gunibreak.h, gunibreak.c
-       
-       * gen-unicode-tables.pl: Include the script to update the unicode
-       char tables
-
-2000-11-28  Elliot Lee  <sopwith@redhat.com>
-
-       * gmarkup.c: Fix warnings.
-
-       * guniprop.c, gunidecomp.c: Make warnings go away by using
-       GPOINTER_TO_INT() instead of (int).
-
-       * gcompletion.[ch]: Add g_completion_set_compare(),
-       to allow (for example) using case-insensitive completion.
-
-2000-11-28  Tor Lillqvist  <tml@iki.fi>
-
-       Patches by Hans Breuer:
-       
-       * gspawn-win32.c: Move the code for gspawn-win32-helper to its own
-       file.
-
-       * makefile.{mingw,msc}.in: Change accordingly.
-
-       * gspawn-win32-helper.c: New file.
-
-       * Makefile.am (EXTRA_DIST): Add it.
-
-       * gmarkup.c (find_current_text_end): Fix assertion not to check an
-       uninitialised variable.
-
-2000-11-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c: Set the thread data before locking the mutex, because
-       the locking call might use g_thread_self ().
-
-       * gthread.h: Do only show the location of the locking/unlocking
-       for -DG_ERRORCHECK_MUTEXES and not the name of the mutex. Add the
-       errorcheck capability for g_cond_wait and g_cond_timed_wait as
-       well.   
-
-2000-11-27  Havoc Pennington  <hp@redhat.com>
-
-       * gthread.h: Add void in empty function arg list
-
-2000-11-22  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.{mingw,msc}.in: Add gqsort.
-
-       * glib.def: Update.
-
-2000-11-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Add a surrogate for thread priorities using PID
-       niceness for systems with no thread priorities and different PIDs
-       for threads of the same process (most notably: Linux). Define
-       G_THREAD_USE_PID_SURROGATE in that case, as used by
-       gthread-posix.c. Also make the system thread bigger by
-       sizeof (long) to contain the thread's PID.
-
-       * gfileutils.c: Include stdlib.h for mkstemp prototype.
-
-       * gthread.c: Add priority range checks to the affected functions.
-
-       * gthreadpool.c: Remove unused variable.
-
-Mon Nov 20 18:55:17 2000  Jonathan Blandford  <jrb@redhat.com>
-
-       * gtree.[hc]: Patch from David Benson <daveb@idealab.com> to add
-       user_data support to gtree functions.
-
-Mon Nov 13 18:35:52 2000  Jonathan Blandford  <jrb@redhat.com>
-
-       * gtypes.h (GCompareFuncData): new func type to let you use user
-       data when comparing nodes.
-
-       * gslist.c (g_list_sort_with_data): new function to sort with
-       user_data. 
-
-       * glist.c (g_list_sort_with_data): new function to sort with
-       user_data. 
-
-       * garray.[ch]: Added convenience functions to sort arrays.
-
-2000-11-16  Havoc Pennington  <hp@redhat.com>
-
-       * guniprop.c (g_unichar_isspace): Use a switch here, maybe helps 
-       the compiler optimize things. Also, ' ' is a SPACE_SEPARATOR,
-       so don't special case it.
-
-2000-11-17  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Add g_trash_stack entry points.
-
-Fri Nov 17 15:43:00 2000  Owen Taylor  <otaylor@redhat.com>
-
-        * Released 1.3.2
-       
-       * NEWS: Update.
-
-       * tests/Makefile.am (dist-hook): Add code to distribute
-       markup test files.
-
-2000-11-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Check for the sched.h header and include it on
-       gthread/gthread-posix.c if available.
-
-       * configure.in: Add -D_POSIX4_DRAFT_SOURCE to
-       GTHREAD_COMPILE_IMPL_DEFINES. Also add -D_POSIX4A_DRAFT10_SOURCE
-       to G_THREAD_CFLAGS. Really deploy GTHREAD_COMPILE_IMPL_DEFINES,
-       when searching for thread libs. Look for sched_* functions in
-       -lrte as well. All of that is necessary on DG/UX.
-
-       * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADERS in
-       various places to make it work more reliable, to make it accept
-       macros instead of functions etc.
-
-       * configure.in: Replace some NULL's for checks with 0 to make it
-       work without stdio.h everywhere.
-
-       * configure.in, gutils.c: changed the test for getpwuid_r to first
-       test for a posix version and then for a non-posix version. No code
-       change in gutils.c. Again this change deals better with getpwuid_r
-       being a macro and not a function. Most of the above with kind help
-       from Tethys <tet@isengard.europe.dg.com>. This fixes Bug #13403.
-       
-2000-11-14  Tor Lillqvist  <tml@iki.fi>
-
-       * gwin32.h: Make #endif comment match #ifdef.
-
-Mon Nov 13 14:00:20 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Up version to 1.3.2
-
-       * gconvert.h (enum GConvertError): Remove trailing ,
-
-       * gfileutils.c (g_file_open_tmp): Fix comment to 
-       properly describe return value.
-
-2000-11-13  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Add USE_LIBICONV.
-
-       * gconvert.c: Check G_OS_WIN32 only after including glib.h. 
-
-       * glib.def: Update.
-
-2000-11-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c (g_static_rec_mutex_*): Made recursive mutexes also
-       work when the thread system is not (yet) initialized.
-
-Sun Nov 12 18:34:32 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gconvert.[ch]: Create wrapper functions for iconv()
-       so that we can transparently use the native iconv, 
-       libiconv, or (in the future) a mini-iconv included
-       with glib.
-
-       * glib-config-2.0.in glib-2.0.pc.in: Include @ICONV_LIBS@
-
-       * INSTALL: Added note about libiconv.
-
-       * configure.in: Add checks for libiconv from pango. If
-       EILSEQ is not defined in errno.h add define for it into
-       glibconfig.h so g_iconv can use it. (Note, recompiling
-       from a system without EILSEQ to a system with EILSEQ
-       will break binary compatibility)
-
-2000-11-12  Robert Brady  <robert@suse.co.uk>
-
-       * gstrfuncs.c, gstrfuncs.h: Remove g_filename_{to,from}_utf8
-
-       * gconvert.c, gconvert.h: Add g_filename_{to,from}_utf8 and
-       g_locale_{to.from}_utf8.  The locale_ variant honours 
-       nl_langinfo(CODESET), the filename_ variant uses UTF-8 unless
-       asked otherwise.
-
-       (g_convert): Add G_CONVERT_ERROR_PARTIAL_INPUT error, if bytesread
-       != length and no bytesread pointer passed.
-
-Sun Nov 12 15:29:53 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gfileutils.[ch]: template is a reserved word in
-       C++ s/template/tmpl/. 
-
-2000-11-11  Havoc Pennington  <hp@pobox.com>
-
-       * gmarkup.c (g_markup_parse_context_parse): Handle a long stream
-       of bytes containing no UTF-8 character starts
-
-2000-11-11  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Add missing entry points.
-
-       * gfileutils.c (g_mkstemp): Improve chance to generate unique
-       names with less effort a bit.
-
-       * gfileutils.h: Add g_file_open_tmp() declaration.
-
-       * testglib.c: Include <io.h> on Win32.
-
-       * makefile.mingw.in: Correct the way to invoke sub-makes.
-
-Sun Nov  5 13:20:54 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-object.h: Add gtypemodule.h
-
-2000-11-11  Tor Lillqvist  <tml@iki.fi>
-
-       * gfileutils.c (g_file_open_tmp): New function, suggested by Havoc
-       earlier this month.
-       (g_mkstemp): Use only one case for letters in temp file name, as
-       this will be used on systems with case-insensitive file systems.
-
-       * testglib.c (main): Test g_mkstemp() and g_file_open_tmp().
-
-2000-11-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthreadpool.c: Don't take other threads with other priorities
-       into account as changing the priority is highly
-       unportable. (Actually using it at all already is unportable, but
-       even sometimes where that works, changing priority is not
-       possible).
-
-2000-11-05  Havoc Pennington  <hp@pobox.com>
-
-       * gmarkup.h: rename G_MARKUP_FOO to
-       G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG
-
-       * gmarkup.c: don't start doc comments with "Returns"
-       
-2000-11-05  Havoc Pennington  <hp@pobox.com>
-
-       * gmarkup.c: inline docs
-       (unescape_text): properly check strtoul for failure.
-       
-       * gerror.c (g_propagate_error): Free the src error if the dest
-       location is NULL - I'm pretty sure that's what this function was 
-       supposed to do.
-
-2000-11-05  Havoc Pennington  <hp@pobox.com>
-
-       * gutils.c (g_find_program_in_path): cleanup docs, sync param 
-       names to those in the header
-
-       * gfileutils.c (g_mkstemp): clean up docs
-
-       * gshell.h: sync param names with param names in .c file
-
-       * gfileutils.h (enum GFileTest): remove trailing comma from last
-       member, confuses gtk-doc
-
-       * gmarkup.h: s/GMarkupErrorType/GMarkupError/g; to follow
-       convention
-
-2000-11-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gasyncqueue.c: Added documentation for asyncronous queues.
-
-       * gspawn.c: Include sys/select.h (some platforms need it for
-       select). 
-
-       * gspawn.c: Changed unportable __FUNCTION__ to the verbatim
-       function name.
-
-2000-10-31  Tor Lillqvist  <tml@iki.fi>
-
-       * gutils.c
-       * gutils.h
-       * gfileutils.c
-       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
-
-2000-10-30  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Check for mkstemp.
-
-       * gutils.c (g_mkstemp): New function. If HAVE_MKSTEMP, just call
-       it, otherwise use code lifted from glibc.
-
-       * gutils.h: Declare it.
-
-       * glib.def: Here, too. Plus two missing functions.
-
-2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gcache.h, gcache.c, ghash.h, ghash.c, grel.c, grel.h, gtypes.h:
-       Introduced new function type GEqualFunc to return TRUE for equal
-       params. This is now used instead of GCompareFunc (which should
-       work akin to strcmp) here. This kind of fixes Bug #14412. Note
-       that technically GCompareFunc and GEqualFunc are still the same
-       types, as gint == gboolean.
-
-       * ghash.h, gutils.c: g_int_equal and g_direct_equal now return
-       gboolean to be really become GEqualFunc.
-
-       * gscanner.c, testglib.c, tests/hash-test.c: Some tiny changes to
-       follow the above change.
-
-2000-10-27  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.{mingw,msc}.in (glib_OBJECTS): Add gmarkup.
-
-       * glib.def: Add missing functions.
-
-       * tests/makefile.{mingw,msc}.in (TESTS): Add markup-test.
-
-2000-10-24  Havoc Pennington  <hp@pobox.com>
-
-       * gmarkup.h, gmarkup.c: New module to parse a simple
-       markup language
-       
-       * Makefile.am: add gmarkup.h, gmarkup.c
-
-       * tests/Makefile.am: add markup-test
-
-       * gstring.h (g_string_new_len): new function to create a string
-       with a length
-       (g_string_new): avoid a gratuitous realloc
-
-2000-10-26  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.{mingw,msc}.in: Cosmetics.
-
-2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gstrfuncs.c (g_strsplit): When the string is ended by a
-       delimiter, return an extra empty string just like for a delimiter
-       at the start of the string. This makes the function behave more
-       consistent and also fixes Bug #15026.
-
-Tue Oct 24 22:09:14 2000  Tim Janik  <timj@gtk.org>
-
-       * glib-object.h: added newly added gobject/ headers.
-
-       * gmesage.c: print g_message() output to stderr instead of stdout.
-
-2000-10-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Use one = instead of two, which is plainly wrong.
-
-2000-10-19  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.msc.in: Pass -DGSPAWN_HELPER when building it. Link
-       with user32.lib.
-
-       * gspawn-win32.c
-       * gfileutils.c: Make them compile with picky MSVC.
-
-       * gwin32.h: New file. Move Win32-only stuff that isn't related to
-       GIOChannels here from giochannel.h.
-
-       * Makefile.am: Add it here.
-
-       * giochannel.h: Move stuff to gwin32.h.
-
-       * glib.h: On Win32, include gwin32.h.
-
-Mon Sep 11 10:03:24 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h convert.c (g_convert_with_fallback): Change
-       ERROR_OTHER to ERROR_FAILED, add some dummy marking with _().
-
-       * docs/reference/glib/glib-sections.txt
-       docs/reference/glib/glib-docs.sgml Update for g_convert,
-       g_unicode_validate.
-
-2000-10-16  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Remove alloca stuff from here. galloca.h
-       takes care of it, correctly.
-
-       * giowin32.c (reader_thread): Some more debugging output.
-       (g_io_channel_win32_poll): Remove unused vars.
-
-       * gfileutils.c: Changes for Win32, with no unistd.h and no
-       S_ISLNK().
-
-       * gspawn-win32.c: Implementation of the g_spwan_* functions for
-       Win32. Due to the general non-Unixness of Win32, much of the
-       functionality that is relatively clean to implement on Unix, is
-       hard to do on Win32. We must use a separate helper program to
-       change directory, close extra file descriptors, redirect the std
-       ones, as needed, and only then start the child process. No child
-       process pid can be returned, unfortunately. Or if we used
-       CreateProcess directly, it probably could. (Now we use the spawnv*
-       functions from msvcrt.)
-
-       * Makefile.am (EXTRA_DIST): Add gspawn-win32.c
-
-       * glib.def: Add new entry points.
-
-       * glib.def
-       * giowin32.c: Remove g_io_channel_win32_wait_for_condition(),
-       g_io_channel_win32_poll() subsumes it.
-
-       * gbacktrace.h: G_BREAKPOINT for MSVC (on the ix86).
-
-       * gwin32.c (g_win32_getlocale): Use "sp" for
-       LANG_CROATIAN+SUBLANG_SERBIAN_LATIN.
-
-       * makefile.{mingw,msc}.in (glib_OBJECTS): Add new files.
-       Add gspawn-win32-helper.exe rule.
-
-       * tests/makefile.{mingw,msc}.in (TESTS): Add shell-test and
-       spawn-test.
-
-       * tests/spawn-test.c: (run_tests): On Win32, don't try to run
-       /bin/sh, but ipconfig (no special significance in choosing that,
-       just a program that outputs something to stdout).
-
-2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
-
-       Remove need for acconfig.h, and misc. cleanups.
-       * acglib.m4 (GLIB_SIZEOF): Add 'autoheader' comment to
-       AC_DEFINE_UNQUOTED.
-       (GLIB_BYTE_CONTENTS): Likewise.
-
-       * configure.in: Add 'autoheader' comments to all AC_DEFINE(...)
-       and AC_DEFINE_UNQUOTED(...) lines.
-       Replace AC_MSG_CHECKING/AC_CACHE_VAL with AC_CACHE_CHECK.
-       (AM_PROG_LIBTOOL): Move after AC_PROG_CC.
-       
-       * acconfig.h: Empty out.
-
-       * Makefile.am (BUILT_EXTRA_DIST): New variable.  List 'dist'able
-       files that are created in the builddir.
-       (dist-hook): Handle those files.
-       (libglib_1_3_la_SOURCES): Remove @ALLOCA@.  @ALLOCA@ should only
-       be used in an _LDADD or _LIBADD, since it expands (if necessary)
-       to 'alloca.o'.
-
-       * tests/Makefile.am (BUILT_EXTRA_DIST): New variable.
-       (dist-hook): Handle $(BUILT_EXTRA_DIST).
-       
-2000-10-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * grand.c: Added inline documentation. 
-
-       * gtypes.h, gnode.h, gutils.h: Readded GFreeFunc,
-       g_node_insert_after and g_find_program_in_path resp., which
-       mysteriously disappeared during the glib.h dissection.
-
-2000-10-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glibconfig.h.win32.in: Adapted accordingly to header separation
-       and GLIB_HAVE_ALLOCA_H renaming.
-
-       * Makefile.am: Added the new headers to glibinclude_HEADERS.
-
-       * glib.h: Forgot to include gerror.h.
-
-       * glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
-       gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
-       ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
-       gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
-       grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
-       gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
-       into many header files mostly according to the resp. *.c-files.
-       
-       * gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
-       of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
-       __END_DECLS.
-
-       * configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
-       gunicode.h, : Changed guard-macro names to something more
-       consistent.
-
-       * configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
-
-       * configure.in: Defined GLIB_HAVE_ALLOCA_H instead of including
-       alloca.h in glibconfig.h, GLIB_HAVE_ALLOCA_H is used in glib.h.
-
-       * configure.in: Removed cruft from old threading code.
-
-2000-10-09  Raja R Harinath  <harinath@cs.umn.edu>
-
-       Work with beta autoconf 2.50.
-       * configure.in (GLIB_MAJOR_VERSION): Use GLIB_DIVERT_BEFORE_HELP
-       instead of AC_DIVERT_PUSH(),AC_DIVERT_POP.
-       (AC_CHECK_HEADERS): Remove redundant AC_DEFINE(HAVE_...).
-       (REALLOC_0_WORKS): Move AC_DEFINE outside AC_CACHE_VAL.
-       (dlopen): Quote nested AC_CHECK_... calls.
-
-       * acglib.m4 (GLIB_TR_SH, GLIB_TR_CPP): Utility macros copied from
-       beta autoconf 2.50.
-       (GLIB_DIVERT_BEFORE_HELP): New macro that works both with autoconf
-       2.13 and beta autoconf 2.50.
-       (GLIB_SIZEOF, GLIB_BYTECONTENTS): Use GLIB_TR_*.
-
-       * Makefile.am (CONFIGURE_DEPENDENCIES): Use this to specify
-       that 'configure' depends on acglib.m4.
-
-2000-10-09  Havoc Pennington  <hp@redhat.com>
-
-       * Makefile.am, tests/Makefile.am: Add new files.
-
-       * tests/spawn-test.c, tests/shell-test.c: new tests for
-       the shell/spawn stuff
-
-       * gutils.c (g_find_program_in_path): convert a relative
-       program name into an absolute pathname to an existing 
-       executable
-
-       * gspawn.h, gspawn.c: New fork/exec API
-
-       * gshell.h, gshell.c: Shell-related utilities, at the moment
-       simply routines to parse argv and quote/unquote strings
-
-       * guniprop.c (g_unichar_isspace): Return TRUE for the 
-       ASCII space characters isspace() returns TRUE for.
-
-       * gfileutils.c (g_file_get_contents): Convenience function 
-       to slurp entire file into a string and return it. Partially
-       written by Joel Becker.
-       (g_file_test): file test function
-
-2000-10-06  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.msc.in: Revamp to be like makefile.mingw.in, make
-       the MSVC build actually work again.
-
-       * gmodule/makefile.msc.in
-       * gobject/makefile.msc.in
-       * gthread/makefile.msc.in: New files, like their mingw counterparts.
-
-       * gmodule/Makefile.am
-       * gobject/Makefile.am
-       * gthread/Makefile.am: Make and distribute them.
-
-       * */makefile.mingw.in: Allow override of GLib version number from
-       the build/win32/module.defs file.
-
-       * glib.def: Add new entry point.
-
-       * tests/gio-test.c (main): Fix the Win32-only code to use current
-       API, g_io_channel_win32_make_pollfd() and g_io_channel_win32_poll().
-
-       Fixes from Hans Breuer:
-
-       * glib.h (struct DIR): Keep the last readdir result cached inside
-       the DIR struct, to enable several DIRs being open simultaneously.
-
-       * gwin32.c (g_win32_readdir): Use the above instead of static.
-
-       * giowin32.c (g_io_channel_win32_make_pollfd): Insert cast to keep
-       MSVC happy.
-
-2000-10-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h: Changed alloca stuff a bit: when we have a working
-       alloca.h, we're not messing with alloca any further. Should fix a
-       bug reported by Bernd Demian <wega@csc-dd.de>.
-
-2000-09-29  Jonathan Blandford  <jrb@redhat.com>
-
-       * gnode.c (g_node_insert_after): Added function to keep symmetry
-       with g_node_insert_before. 
-
-2000-09-29  Martin Baulig  <baulig@suse.de>
-
-       Several minor ANSI C fixes.
-
-       Added missing casts:
-       * gdate.c (g_date_fill_parse_tokens): `s = (guchar *) str'.
-       * gmain.c (g_idle_dispatch): `func = (GSourceFunc) source_data'.
-       (g_idle_add_full): `(gpointer) function' in call to g_source_add().
-       * gstrfuncs.c (g_strdown): `s = (guchar *) string' and
-       `return (gchar *) string'.
-       (g_strup): Likewise.
-       (g_strchug): `start = (guchar*) string' in 1st for() argument;
-       `strlen ((gchar *) start)' in call to g_memmove().
-       * gstring.c (g_string_down): `s = (guchar *) string->str'.
-       (g_string_up): Likewise.
-       * gthreadpool.c (stop_this_thread_marker):
-       `(gpointer) &g_thread_pool_new'.
-       * gunidecomp.h (decomp_table[]): Cast all the strings to
-       `unsigned char *'.
-
-       Put text following #endif into comments:
-       * gmain.c: here.
-
-2000-09-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in, glib.h: Added errorcheck mutexes. These are
-       activated through the preprocessor symbol
-       G_ERRORCHECK_MUTEXES. Need to add an extra word to StaticMutex in
-       order to achieve this. g_(static_)mutex_* functions instrument the
-       mutex operations with mutex name and location, when compiled with
-       -DG_ERRORCHECK_MUTEXES. g_thread_init activates the errorcheck
-       mutexes, when compiled with -DG_ERRORCHECK_MUTEXES.
-
-2000-09-28  Havoc Pennington  <hp@pobox.com>
-
-       * glib.h (GThreadPriority): fix indentation
-       (GConvertError): generic error is conventionally called
-       _FAILED rather than _OTHER, at least at the moment, 
-       according to GError docs in docs/reference.
-
-       * gconvert.c: s/_OTHER/_FAILED/
-
-2000-09-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Adjusted the test for an unimplemented
-        getpwuid_r. Info from Michael Pruett. This is just a forward
-        merge from glib-1-2.
-
-       * configure.in: Moved determination of G_THREAD_FLAGS before
-       G_THREAD_LIBS. Check for UnixWare systems and set the right cflags
-       and libs there (it needs -Kthread for the native compiler and
-       -pthread for gcc). Thanks to Boyd Lynn Gerber <gerberb@zenez.com>
-       for the info.
-
-       * configure.in: Fail immediately, when no thread library is found,
-       instead of continuing searching for rt libs etc. Changed almost
-       all occurances of $enable_threads to $have_threads, as that's,
-       what we want.
-
-       * tests/threadpool-test.c: Define vars inside the guard to avoid
-       warnings.
-
-       * configure.in, tests/type-test.c: Some platforms support 64 bit
-       'long long', but you can not printf or scanf them. In that case,
-       don't define G_G{UINT|INT}64_FORMAT. Changed the type-test program
-       to reflect that.
-
-       * gutils.c (g_get_current_dir): max_len can't be initialized
-       statically as it might call a function. So do it at first call.
-
-Tue Sep 26 2000 Elliot Lee <sopwith@redhat.com>
-
-       * glib.h: Add G_GNUC_PURE macro (but don't use it anywhere).
-
-Mon Sep 25 2000 Elliot Lee <sopwith@redhat.com>
-
-       * garray.c, glib.h, gmem.c: Add a few missing G_GNUC_CONST's.
-
-2000-09-21  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: Add gconvert.o. Use libiconv.
-
-       * config.h.win32.in: Define HAVE_GETCWD.
-
-       * glib.def: Add new entry points.
-
-2000-09-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: The last released automake (1.4) still requires
-       AM_PROG_LIBTOOL instead of AC_PROG_LIBTOOL, so use that for the
-       time being.
-
-2000-09-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * acconfig.h, configure.in, gutils.c: Test for the existence of
-       getcwd, and use it only when found.
-
-       * glib.h: Only use the gcc-variable-macro-argument-extension for
-       gcc >= 2.4. Both patches from Jonas Oberg <jonas@gnu.org>.
-
-Mon Sep 18 10:58:21 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gutf8.c: Implement g_ucs4_to_utf8 which was in
-       the header file but not implemented.
-
-Sun Sep 17 2000 Elliot Lee <sopwith@redhat.com>
-
-       * glib.h configure.in: Define g_alloca() as an
-       alloca-that-works-anywhere.
-
-       * gconvert.c: Fix warnings which could have caused problems on
-       64-bit platforms.
-
-Sun Sep 10 12:37:40 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h gconvert.c (g_convert): Havoc Pennington's implementation 
-       of convenient character set conversion using iconv, with
-       the addition of GError. We probably need a fallback that
-       just does conversions between, say UTF-8,16,32 and ISO-8859-1
-       for targets without iconv at all.
-
-       Also add g_convert_with_fallback() to take care of conversions 
-       where we accept some loss going to the target encoding.
-
-2000-09-10  Havoc Pennington  <hp@redhat.com>
-
-       * gutf8.c (g_utf8_validate): Add this function.
-
-Sat Sep  9 18:50:42 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gstrfuncs.c (g_strescape): Add a missing g_return_if_fail().
-
-Mon Aug 21 03:57:46 2000  Tim Janik  <timj@gtk.org>
-
-       * glib.h (G_BREAKPOINT): for non-i386 and non-alpha, or non gcc,
-       implement BREAKPOINT() as raise (5 /* SIGTRAP */);
-
-       * glib.h: provide user-definable switch G_IMPLEMENT_INLINES,
-       to turn on compilation of inline function implementations provided
-       in header files with extern linkage.
-       wrap inline function implementations into ifdef __G_UTILS_C__, so we
-       really only compile them for gutils.c and not also into arbitrary user
-       code that wants to make use of G_IMPLEMENT_INLINES.
-       adjusted comment apropriately.
-
-       * gutils.c: to turn on compilation of inline functions, provide
-       #define G_IMPLEMENT_INLINES 1 and #define __G_UTILS_C__.
-
-2000-09-06  Havoc Pennington  <hp@redhat.com>
-
-       * gerror.c: docs
-
-       * docs/reference/glib/tmpl/error_reporting.sgml: docs
-
-Wed Sep  6 10:28:34 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * guniprop.c gunicode.h gutf8.c: Some inline docs fixes.
-
-2000-09-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h, gtimer.c, tests/thread-test.c:
-       s/G_MICROSEC/G_USEC_PER_SEC/
-
-       * glib.h: Removed G_G{U}{SHORT|INT|LONG}_FORMAT from glib.h, as
-       they are really superfluous.
-
-Tue Sep  5 20:16:27 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in docs/Makefile.am: Add gtk-doc checks
-       for newly added docs/reference/ subdir.
-
-2000-09-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread.c (g_thread_error_quark): Don't use a G_LOCK, as it
-       isn't necessary.
-
-2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gstring.c (g_string_free): Use g_return_val_if_fail instead of
-       g_return_if_fail, as the function now is supposed to return
-       something.
-
-       * gerror.c, gerror.h (g_propagte_error): Added function
-       g_propagte_error to hand over local errors to the calling
-       function.
-
-       * glib.h: Include gerror.h before it is used for some g_thread_*
-       functions.
-
-       * gthread.c, gthreadpool.c, glib.h: Enable error reporting for
-       thread creation, namely for g_thread_create, g_thread_pool_new,
-       g_thread_pool_push and g_thread_pool_set_max_threads.
-
-       * tests/thread-test.c, tests/threadpool-test.c: Adapted
-       accordingly.
-
-2000-08-31  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h
-       * glib.def
-       * giowin32.c (g_io_channel_win32_make_pollfd): New function, to
-       make a GPollFD from a GIOChannel. Creates the events and starts
-       the reader thread if necessary.
-
-       * glib.h
-       * giowin32.c (g_io_channel_win32_poll): No use for separate
-       condition parameter.
-
-       * gmain.c (g_get_current_time): (Win32): Simplify, use
-       GetSystemTimeAsFileTime().
-
-2000-08-27  Tor Lillqvist  <tml@iki.fi>
-
-       * giowin32.c (g_io_channel_win32_poll): New function, otherwise
-       like g_io_channel_win32_wait_for_condition(), but accept several
-       GPollFDs.
-       (g_io_channel_win32_wait_for_condition): Call
-       g_io_channel_win32_poll().
-
-       * glib.h: Declare g_io_channel_win32_poll().
-
-       * gwin32.c (g_win32_error_message): Don't believe return value
-       from FormatMessage.
-
-2000-08-25 Elliot Lee <sopwith@redhat.com>
-
-       * glib.h, gunicode.h, gmodule/gmodule.h:
-       Mark the following functions G_GNUC_CONST (to allow optimization)
-       because their results are a function of only their parameters: 
-       g_int_hash, g_int_equal, g_direct_hash, g_direct_equal,
-       g_quark_to_string, g_date_is_leap_year, g_date_days_in_month,
-       g_date_monday_weeks_in_year, g_date_sunday_weeks_in_year,
-       g_spaced_primes_closest, g_unichar_is*, g_unichar_to*,
-       g_unichar_*digit_value, g_unichar_type
-
-2000-08-21 Elliot Lee <sopwith@redhat.com>
-
-       * gobject/Makefile.am, gobject/gobject-query.c,
-       gobject/gparamspecs.c: Fix inclusion of config.h
-
-Mon Aug 21 14:46:23 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gio-test.c: Fix a couple of trivial bugs that
-       were causing warnings.
-
-Mon Aug 21 14:39:36 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h: Use C99 varargs macros where possible 
-       (check __STDC_VERSION__), otherwise, on gcc, use an alternate 
-       form of gcc varargs which is more likely
-       to be supported going forward. (Based on some code
-       from Raja Harinath)
-
-2000-08-17  Darin Adler  <darin@eazel.com>
-
-       * glib.h:
-       * garray.c: (g_array_free), (g_ptr_array_free),
-       (g_byte_array_free): Return the data left behind.
-       * gstring.c: (g_string_free): Return the data left behind.
-
-       Changed the free calls that leave data behind so they
-       return a pointer to the left-behind data, NULL if told not
-       to leave anything behind. This makes these calls easier
-       to use correctly, without any incompatible API change for
-       callers that don't know about the return value. Of course,
-       it would be even clearer if the free calls weren't dual-purpose
-       in the first place.
-
-2000-08-12  Tor Lillqvist  <tml@iki.fi>
-
-       * giowin32.c: Some indentation and spacing fixes. Add some more
-       logging.
-       (g_io_win32_add_watch): New function, with common code from
-       g_io_win32_fd_add_watch and g_io_win32_sock_add_watch. Don't start
-       more than one reader thread for a GIOChannel. We should obviously
-       have just one reader thread reading a file descriptor or socket.
-
-2000-08-10  Havoc Pennington  <hp@redhat.com>
-
-       * gthread-2.0.pc.in (Cflags): don't duplicate glib Cflags
-
-       * gmodule-2.0.pc.in (Cflags): don't duplicate glib Cflags
-
-       * gobject-2.0.pc.in (Cflags): don't duplicate Cflags from glib
-       itself
-
-2000-08-10  Havoc Pennington  <hp@redhat.com>
-
-       * glib-2.0.pc.in (Cflags): Look in glib-2.0/include for
-       glibconfig.h
-
-2000-08-07  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/gio-test.c (shutdown_source): New function, that calls
-       g_source_remove(). Check return value of g_source_remove(), and
-       decrement running subprocess counter only if g_source_remove()
-       actually did remove the source.
-
-       (recv_message): Call shutdown_source() on EOF condition. Return
-       FALSE on G_IO_HUP and G_IO_ERR condition. Fix printf format typo.
-
-Sun Aug  6 20:06:02 2000  Tim Janik  <timj@gtk.org>
-
-       * gmessages.c (g_log_domain_check_free): keep *last updated while
-       running through the domain list, so we don't screw up the removal,
-       patch provided by Gady Kozma <gadykozma@hotmail.com>.
-
-Sun Aug  6 20:03:41 2000  Tim Janik  <timj@gtk.org>
-
-       * gmessages.c (g_log_remove_handler): keep *last updated while running
-       through the handler list, so we don't screw up the removal.
-
-Sun Jul 30 16:54:13 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gunicode.h: Fix stray character
-
-       * gutf8.c (g_unichar_to_utf8): Allow outbuf to be NULL, in
-       which case we just compute the length.
-
-2000-07-31  Havoc Pennington  <hp@redhat.com>
-
-       * Makefile.am (EXTRA_DIST): forgot to add .pc.in to EXTRA_DIST
-
-2000-07-31  Havoc Pennington  <hp@redhat.com>
-
-       * glib-2.0.pc.in, gobject-2.0.pc.in, gmodule-2.0.pc.in,
-       gobject-2.0.pc.in: pkg-config data files         
-
-       * Makefile.am: Install/dist the .pc files
-
-       * configure.in: Output the .pc files
-
-2000-07-31  Tor Lillqvist  <tml@iki.fi>
-
-       * giowin32.c (buffer_read): The code didn't compile (must
-       have been sleepy when committing). "return" instead of "break"
-
-       (g_io_win32_fd_add_watch): Cannot check if the file descriptor is
-       readable by calling ReadFile to read zero bytes. ReadFile blocks
-       on NT even if trying to read nothing at all. So, don't check if
-       file descriptor is readable; assume this function isn't called
-       otherwise.
-
-Sun Jul 30 10:44:16 2000  Tim Janik  <timj@gtk.org>
-
-       * gmain.c (g_get_current_time): fix tor's recent changes which
-       got rid of a required variable in the non-windows path.
-
-2000-07-30  Tor Lillqvist  <tml@iki.fi>
-
-       Finally, a new and improved IO Channel and condition watch
-       implementation for Win32. Based on code provided by Craig Setera.
-
-       When watching file descriptors, for which there is no select()
-       like functionality on Win32 that would work on all Win32 platforms
-       for all types of file descriptors (including anonymous pipes), we
-       start a new thread that blocks while trying to read from the file
-       descriptor. When the read returns, a Win32 Event is signalled that
-       the polling routine eventually notices. Meanwhile, the data being
-       read is stored in a circular buffer, from where the IO channel's
-       read() method picks it up.
-
-       If the buffer fills up the reading thread has to wait for space
-       becoming available. For this another Win32 Event is used. The IO
-       Channel's read() method signals this when it has read some data
-       out of the buffer.
-
-       The separate reader thread(s), and the circular buffer(s) with
-       associated events mean lots of possibilities for fun parallelism
-       errors. But it seems to work OK, i.e. GIMP runs.
-
-       * gmain.c: Small changes to the Win32 polling function.
-       (g_main_win32_get_poll_func): New function. Perhaps it would be a
-       good idea to provide this on all platforms.
-
-       * giowin32.c: The bulk of the new implementation.
-       (g_io_channel_win32_wait_for_condition): New function. To be used
-       where on Unix one does a select() on the channel's fd, like
-       libgimp's gimp_extension_process(). Could be provided on all
-       platforms.
-
-       * glib.h: Update documentation for IO Channels on Win32. Remove
-       the declarations for the as of now obsolete old functions related
-       to IO Channels for pipes with "wakeup" messages.
-
-       * glib.def: Some new functions.
-
-       * tests/gio-test.c: New file, to test GIOChannel and main loop.
-
-       * tests/Makefile.am
-       * tests/makefile.mingw.in: Add it.
-
-       (Later the same night:)
-
-       * giowin32.c: Compile in the debugging code all the time, but only
-       output debug messages if told so. Add (unadvertised) function to
-       turn on/off debug messages for a channel.
-
-       (buffer_read): Don't loop. It is expected behaviour to return a
-       short read occasionally, for instance when reading from
-       pipes. It's the calling code that should loop if it *knows* how
-       much the writer has written.
-
-       * tests/gio-test.c: Correct the program's name in the output.
-       (recv_message): Loop calling g_io_channel_read() (in a new
-       function read_all()) until we have all the bytes we want (that we
-       know the writer has written/will write).
-
-Thu Jul 27 05:15:11 2000  Tim Janik  <timj@gtk.org>
-
-       * gstrfuncs.c (g_strlcpy, g_strlcat): completed tor's fix
-       to cover both #ifdef branches.
-
-2000-07-26  Tor Lillqvist  <tml@iki.fi>
-
-       * gstrfuncs.c (g_strlcpy, g_strlcat): Return 0 on error, not NULL.
-
-       * glib.def: Add g_strlcpy, g_strlcat.
-
-       * glibconfig.h.win32.in: Add gsize and gssize.
-
-Wed Jul 26 12:59:31 2000  Tim Janik  <timj@gtk.org>
-
-       * *.[hc]: applied patch from Andreas Persenius <ndap@swipnet.se> that
-       updates the license headers to the GNU Lesser General Public License,
-       as well as updating the copyright year to 2000.
-
-Wed Jul 26 05:47:48 2000  Tim Janik  <timj@gtk.org>
-
-       * configure.in:
-       * testglib.c:
-       * gstrfuncs.c:
-       * glib.h: added g_strlcat() and g_strlcpy() wrappers, supplied by
-       David Wheeler <dwheeler@ida.org>:
-
-       * glib.h, gstrfuncs.c: added g_strlcpy and g_strlcat to support
-         safe manipulation of fixed-length string buffers.
-         These functions were originally developed by Todd Miller to simplify
-         development of security-related programs, and
-         are available on many (but not all) Unix-like systems,
-         including OpenBSD, FreeBSD, and Solaris.  See
-         ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/strlcpy.3
-         and http://www.openbsd.org/security.html.
-         If there's a strlcpy/strlcat on the system, it's called, otherwise
-         an implementation is provided.
-
-       * testglib.c: Added tests for g_strlcpy, g_strlcat.
-
-Wed Jul 26 05:03:24 2000  Tim Janik  <timj@gtk.org>
-
-       * acglib.m4 (GLIB_SIZEOF): include <stdlib.h> and <stddef.h> if
-       STDC_HEADERS is defined.
-
-       * glib.h:
-       * glibconfig.h: define gsize and gssize in terms of GLIB_SIZEOF_SIZE_T
-
-       * glib.h (g_return_if_reached): applied darin's fix for copy'n
-       paste error in the macro implementation.
-
-Wed Jul 26 00:46:03 2000  Tim Janik  <timj@gtk.org>
-
-       * glib.h: applied patch from Darin Adler <darin@eazel.com> which
-       supplies g_return_if_reached(), g_return_val_if_reached() and
-       g_critical().
-
-2000-07-22  Tor Lillqvist  <tml@iki.fi>
-
-       * build-dll: Fix resource handling, the resource file got left out
-       from the DLL after all... Remove the WIN32APIHEADERS, not needed
-       with current windres.
-
-       * glib.def: Add new functions.
-
-2000-07-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c, glib.h: Mark the functions g_basename and g_dirname
-       deprecated. They will issue an warning once, when compiled with
-       G_ENABLE_DEBUG, but continue to work as before. Instead the
-       functions g_path_get_basename and g_path_get_dirname should be
-       used, which BOTH return newly allocated memory, that has to freed
-       by g_free. The new g_path_get_basename now strips trailing slashes
-       from the path. This fixes #5097. For discussion see
-       http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
-
-       * gwin32.c, testglib.c, tests/dirname-test.c: Use the new
-       functions instead of the old ones.
-
-       * ghash.c, gscanner.c, glib.h: Mark the functions
-       g_hash_table_freeze, g_hash_table_thaw and thus
-       g_scanner_freeze_symbol_table and g_scanner_thaw_symbol_table
-       deprecated. They will issue an warning once, when compiled with
-       G_ENABLE_DEBUG. This fixes Bug #3883. For discussion see
-       http://mail.gnome.org/pipermail/gtk-devel-list/2000-April/003139.html
-
-2000-07-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in, glib.h: glibconfig.h and glib.h now include files
-       outside of the extern "C" block. Makes some C++ compiler
-       happy. Reported by Denis Vakatov <vakatov@peony.nlm.nih.gov>.
-
-Sat Jul 15 23:49:03 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/glib.texi: Remove incomplete start of info file -
-       real docs are in RDP.   
-
-Sat Jul 15 22:44:22 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Add build/Makefile and 
-       build/win32/Makefile to AC_OUTPUT() so things build
-       again.
-
-Sat Jul 15 09:11:46 2000  Tim Janik  <timj@gtk.org>
-
-       * gstrfuncs.c (g_strncasecmp): fixed an off by 0 error (yeah,
-       the function went off when the while (n--) loop failed due to
-       n==0 ;), reported by Jean-Louis HAMEL <jlhamel@club-internet.fr>.
-
-2000-07-15  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (SUBDIRS): Include the "build" module in GLib, too,
-       to make it more self-contained. If your CVS client doesn't
-       automatically get it, do a cvs get build in glib.
-
-       * */makefile.mingw.in: Include make.mingw from build in the glib
-       source directory.
-
-Fri Jul 14 16:26:35 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Release 1.3.1
-
-Fri Jul 14 12:22:49 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in Makefile.am glib-config.m4 glib.m4: Move
-       glib-config to glib-config-2.0 move glib.m4 to
-       glib-2.0.m4
-
-       * Makefile.am gobject/Makefile.am gmodule/Makefile.am
-       gthread/Makefile.am tests/Makefile.am: Change 
-       library names to libglib-1.3.la, etc, so that we
-       can distinguish glib-1.2 and glib-2.0 on the linkline.
-
-       * Makefile.am gobject/Makefile.am gmodule/Makefile.am:
-       Move include files into /usr/include/glib-2.0.
-
-Thu Jul  6 18:54:49 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * docs/Makefile.am (EXTRA_DIST): Remove info files
-       from the build.
-
-2000-07-14  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Add g_error functions.
-
-       * makefile.mingw.in: Add gbacktrace.o.
-
-       * gbacktrace.c: No need to include <process.h>.
-
-2000-07-12  Havoc Pennington  <hp@redhat.com>
-
-       * glib.h: #include <gerror.h>
-
-       * Makefile.am (include_HEADERS): Add gerror.h
-       (libglib_la_SOURCES): Add gbacktrace.c
-
-       * gbacktrace.c: Move g_on_error_query() in here (moved on the 
-       server, so history is preserved)
-
-       * gerror.h: GError interface
-
-       * gerror.c: GError implementation replaces stuff that's now in 
-       gbacktrace.c
-
-Sun Jul  9 21:20:45 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gunicode.h: Include stddef.h instead of stdlib.h
-
-2000-07-08  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h (GLIB_VAR): Rename the GUTILS_C_VAR macro to GLIB_VAR.
-
-       * gunicode.h: Mark the g_utf8_skip array with GLIB_VAR.
-
-       * glib.def: Add two missing entry points.
-
-Thu Jul  6 15:35:28 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Release 1.3.1
-
-       * Makefile.am (EXTRA_DIST): Dist fixes.
-
-       * configure.in: Moderate the warnings just a little bit.
-
-2000-07-05  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Update.
-
-Mon Jul  3 17:58:02 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gutf8.c (g_utf8_get_charset_internal): Fix up
-       to correspond to configure.in checks.
-
-Mon Jul  3 17:18:19 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h: Comment g_get_codeset() out of the header file
-       temporarily. (Very similar to g_get_charset(), need
-       to resolve the two.)
-
-2000-07-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Add new entry points.
-
-       * makefile.{mingw,msc}.in: Add the new Unicode object files.
-
-Thu Jun 29 15:57:28 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * NEWS: updated
-
-       * Makefile.am: added snapcheck target to go along with snapshot
-
-       * gstring.c glib.h (g_string_hash): Add g_string_hash to 
-       go along with g_string_equal.
-
-Tue Jun 27 12:40:23 EDT 2000  David A. Wheeler <dwheeler@dwheeler.com>
-
-       * glib.h: Added g_string_equal for comparing GStrings;
-       changed g_str_equal so it returns gboolean (instead of gint).
-
-       * gstring.c: Modified GString implementation to support embedded
-       ASCII NUL ('\0') characters, and implemented g_string_equal.
-
-       * testglib.c tests/string-test.c: Added tests for g_string_equal
-       and tests for proper handling of embedded ASCII NUL characters.
-
-Wed Jun 28 22:52:00 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am (libglib_la_SOURCES): Fix
-       gunichartable.h => gunichartables.h. (From Eric Limings)
-
-Fri Jun 23 17:20:26 2000  Tim Janik  <timj@gtk.org>
-
-       * glib.h: define gstring in terms of gchar*. this typedef reflects
-       the type name of the primitive G_TYPE_STRING in the gobject module.
-
-Wed Jun 21 12:09:03 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gunicode.h gutf8.c guniprop.c gunidecomp.[ch] gunichartables.h
-       Makefile.am glib.h: Initial pass at adding unicode support
-       functions. A few things still need to be implemented, a bit
-       of cleanup needs to be done, tests need to be added, and 
-       the docs need to be finished, but this should allow replacing
-       most or all use of libunicode.
-
-2000-06-06  Tor Lillqvist  <tml@iki.fi>
-
-       * giowin32.c (g_io_channel_win32_pipe_readable): If we are
-       watching the same pipe for different conditions (with different
-       callbacks), check them all. Only call the callback for G_IO_IN
-       from here. (This bug popped up when a watch for G_IO_ERR|G_IO_HUP
-       was added to gimplib.)
-
-2000-05-30  Tor Lillqvist  <tml@iki.fi>
-
-       * gutils.c (g_locale_get_codeset): Implement on Win32.
-
-       * glib.def: Add g_get_codeset.
-
-       * tests/Makefile.am (EXTRA_DIST): makefile.cygwin* has been
-       renamed to makefile.mingw*.
-
-Tue May 30 16:01:32 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h gutils.c: Move the g_locale_get_codeset() up in the 
-       header file to correspond to to comments about memory
-       management. Rename to g_get_codeset() to avoid 
-       polluting the g_locale_* namespace, which probably
-       would have g_locale_get_codeset (GLocale *locale).
-       Add a doc comment.
-
-Mon May 29 14:10:35 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gutils.c (g_locale_get_codeset): Add function to get the 
-       codeset name for the current locale.
-
-       * configure.in acconfig.h: Add check for nl_langinfo(CODESET);
-
-Fri May 19 11:39:29 2000  Tim Janik  <timj@gtk.org>
-
-       * gutils.c (g_snprintf):
-       (g_vsnprintf): added argument assertments.
-
-       * gstring.c (g_string_assign): added argument assertments.
-       (g_string_truncate): make len a guint.
-
-Fri May 19 09:00:44 2000  Tim Janik  <timj@gtk.org>
-
-       * gmem.c (g_free): fixed SIZEOF_LONG==4 assumption with
-       ENABLE_MEM_CHECK, from Art Haas <ahaas@neosoft.com>.
-
-       * gslist.c (g_slist_reverse): shut up compiler.
-
-       * gscanner.c (g_scanner_get_token_ll): removed inline assignment.
-
-       * garray.c: remove index>=0 checks for unsigned indices.
-
-       * gmain.c (g_idle_prepare): timeout assignment fix.
-
-       * gtree.c (g_tree_node_rotate_right): shut up compiler.
-
-2000-05-13  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in
-       * tests/makefile.mingw.in
-       * build-dll: Rename makefile.cygwin(.in) to
-       makefile.mingw(.in), which better describes what it is. Move the
-       build of gmodule, gthread and gobject DLLs to makefiles in those
-       directories. Move resource file handling and build number bump to
-       build-dll, where it sits much cleaner.
-
-       * README.win32
-       * Makefile.am (EXTRA_DIST): Update accordingly.
-
-       * glib.h: Add G_PI, G_PI_2, G_PI_4, G_E, G_LN2, G_LN10 and
-       G_SQRT2. M_PI etc aren't necessarily in <math.h> in strict ISO C
-       implementations.
-
-       * glib.def: Add g_strcanon.
-
-       * gtree.c (g_tree_node_rotate_left): Remove unused variables.
-
-       * gwin32.c (g_win32_opendir): Remove unneeded statement.
-
-Thu May  4 02:04:46 2000  Tim Janik  <timj@gtk.org>
-
-       * configure.in (STRIP_DUMMY): some Make 3.79 $(strip ) versions are
-       broken and require an empty arg, give it to them.
-
-Fri Apr 28 23:54:35 2000  Tim Janik  <timj@gtk.org>
-
-       * setup things for a new sub-library libgobject:
-
-       * Makefile.am (SUBDIRS): added gobject
-
-       * glib-config.in: feature -lgobject.
-
-       * configure.in (AC_OUTPUT): generate gobject/Makefile.
-
-       * glib.m4 (AM_PATH_GLIB): feature gobject module.
-
-       * glib.spec.in: added %{prefix}/lib/libgobject-1.3.so.*
-
-Fri Apr 28 21:41:49 2000  Tim Janik  <timj@gtk.org>
-
-       * glib.h: added G_STRLOC macro.
-       G_STRUCT_OFFSET(): signedness corrections.
-       (G_CSET_DIGITS): list 0-9.
-       * gscanner.c (g_scanner_config_template): use G_CSET_DIGITS.
-
-       * glib.h: 
-       * gstrfuncs.c:
-       (g_strdown):
-       (g_strup):
-       (g_strreverse): return the modified string instead of void, so
-       calls to these functions can be nested.
-       (g_strcanon): new function, canonicalizes string according to
-       a given character set.
-
-Fri Apr 28 19:45:16 2000  Tim Janik  <timj@gtk.org>
-
-       * gasyncqueue.c (g_async_queue_unref): get rid of an unused variable.
-
-Wed May 10 19:52:44 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.m4: Print found version when test succeeds.
-
-2000-05-04  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.cygwin.in
-       * tests/makefile.cygwin.in: Include the common makefile snippet
-       from ../build/win32.
-
-       Maybe CVSROOT/modules should be changed so that the 'build' module
-       is included within the glib module (and gtk+, and gimp, and maybe
-       others later), in the same way as the 'macros' module is included
-       in lots of GNOME CVS modules?
-
-2000-05-02  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Add new functions.
-
-       * makefile.{cygwin,msc}.in (glib_OBJECTS): Add new object files.
-
-       * tests/makefile.{cygwin,msc}.in: Add thread pool-test.
-
-2000-04-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gasyncqueue.c: New File implementing an asynchronous queue to be
-       used for asynchronous inter-thread communication.
-
-       * gthreadpool.c: New File implementing a thread pool to be used
-       for distributing work among several threads. 
-
-       * glib.h: Added the type and function declarations for these two
-       types.
-
-       * tests/threadpool-test.c: New File implementing a test for the
-       thread pool. This also checks the asynchronous queue underlying
-       the thread pool.
-
-       * tests/Makefile.am: Changed accordingly.
-
-2000-04-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Look for both pthread_create and pthread_join in
-       the thread library. Some systems define one of them, but not both
-       in libc. Arghh. Now we really start a thread and join it later and
-       check, whether the thread to actually ran.
-
-       * glib.h, gcache.c, gtree.c: Changed the 'value' parameter of
-       g_cache_remove from gpointer to gconstpointer. Dito for the 'key'
-       parameter of g_tree_lookup and g_tree_remove and the 'data'
-       parameter of g_tree_search. This function now takes a function of
-       type GCompareFunc instead of GSearchFunc. This fixes Bug
-       #8267. Thanks to Juan Toledo <toledo@users.sourceforge.net> for
-       pointing that out.
-
-       * glib.h: Removed declaration of GSearchFunc.
-
-       * gmem.c: s/GSearchFunc/GCompareFunc/.
-
-2000-04-19  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Update entry point list.
-
-2000-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
-       for compilers with funny G_STMT_(START|END) macros.
-
-       * tests/thread-test.c: Implemented a check for that.
-
-       * gutils.c (g_getenv): Changed the win32 part of this function to
-       be thread safe and to make the returned environment string
-       persistent to match the UN*X behavior. This is again a response to
-       Bug #8983.
-
-       * glib.h (G_LOCK_NAME): Removed parentheses around the lock name,
-       as that seems to cause problems for some compilers and really
-       isn't necessary.
-
-Wed Apr 19 08:32:32 2000  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_new): make sure that
-       scanner->config->cset_skip_characters is "" instead of NULL, so we
-       don't segfault further on.
-
-2000-04-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h, glist.h, gslist.h: Changed the 'data' parameters from
-       gpointer to gconstpointer for the functions
-       g_(list|slist)_(remove|find|find_custom|index), as they do not
-       change this parameter. This fixes bug #4836.
-
-       * glib.h: Changed comment for g_getenv to reflect, that the
-       returned memory must not be freed. Fixes bug #8983.
-
-2000-04-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in, acconfig.h: Add configure test for garbage
-       collector friendliness for GLib. If enabled, ENABLE_GC_FRIENDLY
-       will be defined.
-
-       * garray.c, ghash.c, glist.c, gmain.c, gmem.c, gnode.c, gqueue.c,
-       gslist.c, gtree.c: If ENABLE_GC_FRIENDLY is defined, NULLify all
-       memory released by the user, but cached by GLib. This lets a
-       garbage collector have a more correct view of the actually used
-       memory.
-
-       * garray.c, glib.h: Added g_(array|ptr_array|byte_array)_sized_new
-       functions, that reserve a certain amount of memeory for the array
-       at creation time to avoid reallocation. Fixes bug #6707 from
-       Charles Kerr <ckerr@osserver1.nssl.noaa.gov>.
-
-       * glib.h, gqueue.c, tests/queue-test.c (main): Renamed
-       g_queue_create to g_queue_new in conformance to all other GLib
-       data types.
-
-2000-04-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * grand.c (g_rand_new): Fixed bug. Thanks to Marko Kreen
-       <marko@l-t.ee> for reporting that.
-
-2000-03-26  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Tell about using the mingw-based gcc, which is
-       much easier than modifying the cygwin gcc to product mingw code
-       for the msvcrt runtime.
-
-       * makefile.cygwin.in (WIN32APIHEADERS): Kludge to make it work
-       with a "pure" mingw gcc, too.
-
-2000-03-24  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * garray.c: Made GArray behave correctly. Now zero_terminated
-       really means, that the element array->data[array->len] exists and
-       is zeroed, and clear means that any unassigned elements obtained
-       through g_array_set_size (the only way to get unassigned elements
-       AFAICT) are zeroed. Added some macros to make the code more
-       obvoius. Also made GPtrArray zero elements after
-       g_ptr_array_set_size. This is done in a portbale way (assignment
-       of NULL instead of just memsetting it to zero), though that might
-       be more portability than we actually want.
-
-       * Makefile.am, gthread/Makefile.am, gmodule/Makefile.am,
-       tests/Makefile.am: Added various win32 related *.in files to
-       EXTRA_DIST to let 'make distcheck' procude all the corresponding
-       files, which it silently fails to do currently.
-
-2000-03-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: After finding the right thread library (containing
-       e.g. pthread_create) we now search for the right realtime library
-       (containing e.g. sched_get_priority_max). Makes the output of the
-       thread related libraries correct. 
-
-       * gtimer.c (g_usleep): The current implementation of g_usleep
-       (simply calling select) doesn't work reliable for multi-threaded
-       programs on some platforms (bad omen for the main loop....), so I
-       changed the implementation for thread-using programs to wait for a
-       GCond for the specified amount of time (NB: sleep and usleep are
-       not MT-safe in general, because they often use signals).
-
-Wed Mar 22 16:49:57 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gmem.c (g_mem_chunk_area_compare): Fix indentation.
-
-2000-03-22 Elliot Lee <sopwith@redhat.com>
-
-       * gmem.c (g_mem_chunk_area_compare): Fix 64-bitness bug in
-       comparing two pointers more than 4G apart.
-
-2000-03-22  Tor Lillqvist  <tml@iki.fi>
-
-       * gutils.c: Move Win32-only includes after inclusion of glib.h, so
-       that G_OS_WIN32 is defined.
-
-       * glibconfig.h.win32.in: Add GSystemThread.
-
-2000-03-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c (g_get_current_dir): Ok, Marcus Brinkmann
-       <Marcus.Brinkmann@ruhr-uni-bochum.de> convinced me, that 128 KB
-       path length might not be enough for the HURD. So I changed the
-       loop to at least avoid an integer overflow, which could happen at
-       beyond 2GB size ;-)
-
-       * configure.in: Test for sched_yield as the native yield function
-       first. Corrected typo g_thread_sleep -> g_usleep. Corrected
-       message for the pthread_create test. Negative Priorities are
-       allowed (and used on Solaris), so consider
-       sched_get_priority_min failed only if it returns -1, not <0. Check
-       for sched_get_priority_min also in -lrt, if not found in -lpthread
-       alone and add -lrt to G_THREAD_LIBS then. Remove special case
-       handling of priorities for older solaris versions and posix
-       threads. Thanks to Wan-Teh Chang <wtc@netscape.com> for suggesting
-       some of those changes.
-
-       * config.guess, config.sub, ltconfig, ltmain.sh:
-       Upgrade to libtool 1.3.4.
-
-2000-03-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h, configure.in, gutils.h: always define G_GNUC_EXTENSION,
-       even when not needed by GLib. That's actually also the way, the
-       GLib reference manual describes that macro. Therefore I had to
-       remove the lonesome #include <glibconfig.h> in gutils.c, which
-       doesn't seem to be needed there however. This change should make
-       Ben Gertzfield <che@debian.org> happy.
-
-       * gutils.c: Furthermore two warnings in gutils.c were voided,
-       which crept in due to my last change.
-
-       * gutils.c (g_get_current_dir): Allocate only up to 128KB for a
-       pathname. While this is an arbitrary value just like 2048, it
-       seems to be enough (after all, even 4GB is an arbitrary value).
-
-2000-03-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmain.c (g_main_poll): Warn in case of an error during the call
-       to poll(2). Closes Bug#7564 as reported by David Helder
-       <dhelder@umich.edu>.
-
-       * gutils.c (g_get_current_dir): Make g_get_current_dir work on
-       systems with unlimited pathname length like the HURD (It worked
-       there before, but only for pathes shorter than 2048). Closes
-       Bug#4525 as reported by Marcus Brinkmann
-       <Marcus.Brinkmann@ruhr-uni-bochum.de>.
-
-2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * giounix.c (g_io_unix_write, g_io_unix_read): Interpret EINTR as
-       G_IO_ERROR_AGAIN.
-
-2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Added the missing POSIX_NO_YIELD and
-       POSIX_NO_PRIORITIES warning messages.
-
-       * configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
-       real thread support. On solaris pthread_create can be linked to
-       even in -lc, but it doesn't work then.
-
-       * configure.in: Don't use priorities for threads, when the
-       minimal/maximal priorities couldn't be determined at configure
-       time.
-
-       * configure.in, gthread.c: Always define GSystemThread in
-       glibconfig.h to represent a system thread.
-
-       * configure.in: Do not use native recursive threads, when
-       possibe. We use some features, that they do not expose (namely the
-       depth counter).
-
-       * glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
-       now implemented in a different way, which should be way
-       faster. Alsothere are now functions g_static_rec_mutex_unlock_full
-       and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
-       completly.
-
-       * gthread.c (g_thread_self): Do not test the system_thread to be
-       non-zero to speed things up.
-
-       * gthread.c (g_mutex_init): Therefore set the system_thread of the
-       main thread here.
-
-       * tests/thread-test.c: Rerun all tests once again, but this time
-       we fool the system into thinking, that the available thread system
-       is not native, but userprovided.
-
-2000-03-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gqueue.c (g_queue_push_tail_link, g_queue_push_head_link): We
-       want the next and prev pointer of the inserted link to be NULL.
-
-2000-03-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Another small change to the pthread_.. search
-       pattern. Should work *now* for AIX.
-
-2000-03-04  Tor Lillqvist  <tml@iki.fi>
-
-       * gwin32.c (g_win32_error_message): New function that returns the
-       message string for a Win32 error code.
-
-       * glib.h: Declare it.
-
-       * glib.def: Export it, plus g_node_copy.
-
-2000-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Make the search for pthread_attr_... prototypes
-       find names at the start of a line also, like it is on AIX. Thanks
-       to Valdis Kletnieks <Valdis.Kletnieks@vt.edu> for the info.
-
-Wed Mar  1 10:39:39 2000  Tim Janik  <timj@gtk.org>
-
-       * gslist.c (g_slist_reverse): minor optimization.
-
-       * testglib.c (g_node_test): added a couple of tests for
-       g_node_copy().
-
-       * glib.h:
-       * gnode.c (g_node_copy): new function to copy subtrees,
-       supplied by dbsears@ix.netcom.com.
-       changed iterator to walk the children list backwards, so
-       we get down from O(n^2) to O(n).
-
-       * gnode.c (g_node_first_sibling): applied patch from
-       dbsears@ix.netcom.com to optimize access if node->parent
-       is present.
-
-       * gutils.c (g_get_any_init): backed out HAVE_PW_GECOS check around
-       assignment of g_real_name, sicne HAVE_PW_GECOS is never defined and
-       thus breaks the original code.
-
-       * merged changes from 1.2.7.
-
-Fri Jan 28 11:37:41 2000  Owen Taylor  <otaylor@redhat.com>
-
-       Bug #4156 - Changes vaguely modelled after Scott Gifford's patch
-
-       * gtimer.c (g_timer_elapsed): Never report negative times -
-       clip times to 0.
-
-       * gmain.c (g_timeout_prepare): Guard against unexpected
-       clock shifts by never setting a timeout of more than
-       data->interval msecs.
-
-2000-02-27  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Add new functions.
-
-2000-02-23  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Add a missing step to the setup instructions for
-       gcc-2.95.2. Thanks to Arnaud Charlet.
-
-       * glib.def: Add missing entry point.
-
-2000-02-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Changed GCC version test to also accept major
-       versions > 2. Thanks to Ben Gertzfield <che@debian.org> for
-       pointing this out.
-
-Thu Feb 17 12:53:44 2000  Tim Janik  <timj@gtk.org>
-
-       * gstring.c: changed g_str_hash() to a 31 bit version based on
-       a submission by Karl Nelson and hand optimized ad absurdum by
-       various people ;)
-
-       * gstring.c: applied patch from havoc for new gstring functions,
-       added some more sanity checks, coding style fixups.
-
-2000-02-13  Havoc Pennington  <hp@pobox.com>
-
-       * tests/string-test.c (main): Add tests for the new GString 
-       features
-
-       * testglib.c (main): Add tests for the new GString features
-
-       * gstring.c (g_string_insert_len): New function; insert 
-       a given length of string at a given position. 
-       (g_string_append): reimplement in terms of g_string_insert_len
-       (g_string_append_len): new function
-       (g_string_insert_c): accept -1 for "pos" arg to mean "append"
-       (g_string_append_c): reimplement in terms of g_string_insert_c
-       (g_string_prepend): reimplement in terms of g_string_insert_len
-       (g_string_prepend_len): new function
-       (g_string_prepend_c): reimplement in terms of g_string_insert_c
-       (g_string_insert): reimplement in terms of g_string_insert_len
-
-       * glib.h: Declare g_string_insert_len, g_string_append_len,
-       g_string_prepend_len
-
-Sun Feb 13 08:16:47 2000  Tim Janik  <timj@gtk.org>
-
-       * configure.in: wtf??? someone destroyed the configure.in, reverting to
-       an older version from Feb 4 which apears to still work.
-
-2000-02-07  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule.rc.in gthread.rc.in: Move to corresponding subdirectories.
-
-       * Makefile.am
-       * gmodule/Makefile.am
-       * gthread/Makefile.am: Change accordingly.
-
-       * makefile.cygwin: Corresponding changes, some cleanup.
-
-2000-02-05  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.rc.in gmodule.rc.in gthread.rc.in: New files, for putting
-       version info in the DLLs on Win32.
-
-       * Makefile.am: Generate corresponding *.rc files and distribute
-       them.
-
-       * makefile.cygwin.in: Add rules to automatically bump a "build
-       number" in the version info in the rc files each time the DLL is
-       built. But do this only for the person who releases binaries. If
-       others build the DLLs, the build number is set to zero.
-
-Fri Feb  4 19:36:05 2000  Tim Janik  <timj@gtk.org>
-
-       * glib.h: 
-       * gdataset.c: return stolen data from g_datalist_id_remove_no_notify()
-       and g_dataset_id_remove_no_notify() to avoid second lookup for common
-       use.
-
-2000-02-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h
-       * gstrfuncs.c (g_filename_to_utf8, g_filename_from_utf8): New
-       functions for conversion between UTF-8 and the encoding expected
-       by C runtime functions like open() and stat(), and returned by
-       readdir().
-
-       Implement them on Win32 where we use the system "ANSI" codepage,
-       which might be single-byte or double-byte. On Unix, just skip the
-       issue for now and provide dummy implementations that return a copy
-       of the argument.
-
-       * README.win32
-       * build-dll
-       * glib.def: Minor updates.
-
-Wed Jan 26 05:24:38 2000  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gmain.c: s/current_time/dispatch_time/ for the dispatch() handlers.
-       refetch the current time after invocation of poll() to cover up for
-       the time spent in that function call.
-
-Fri Jan 21 10:18:24 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib.h (G_N_ELEMENTS): Added G_N_ELEMENTS macro to determine
-       the number of elements in an array.
-
-Sun Jan  9 13:28:36 2000  Tim Janik  <timj@gtk.org>
-
-       * gstrfuncs.c (g_strtod): correctly fetch the current locale,
-       fix from owen.
-
-1999-12-16  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule/gmodule-win32.c: Use FormatMessage to translate system
-       error codes into textual messages.
-
-1999-11-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h (G_TRYLOCK): This of course should return TRUE in a
-       program with a thread-disabled GLib.
-
-1999-11-18  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: g_strjoin was missing.
-
-1999-11-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * acconfig.h, config.h.win32.in, configure.in: Renamed
-       GLIB_SIZEOF_PTHREAD_T to GLIB_SIZEOF_SYSTEM_THREAD to reflect
-       changed meaning.
-
-       * configure.in: Cope with systems, that have a pthread_t type,
-       that is not a pointer. Hint from Karl Nelson
-       <kenelson@ece.ucdavis.edu>. Define GLIB_SIZEOF_SYSTEM_THREAD to 4
-       for Solaris. Cope with systems, that have no default mutex
-       initialize, like obviously most DCE systems.
-
-       * glib.h, gthread.c: Changed the prototype of thread_create and
-       thread_self to return the system thread into provided memory
-       instead of a return value. This is necessary, as HPUX has a
-       pthread_t, that is bigger than the biggest integral type there.
-
-       * gthread.c: system_thread is no longer a pointer, but an memory
-       area of size GLIB_SIZEOF_SYSTEM_THREAD. Changed the
-       zeroinitialization and the tests for zeroness accordingly.
-
-1999-11-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Create docs/glib-config.1 from
-       docs/glib-config.1.in. Makes 'make distcheck' happy (and me too).
-
-       * glib-config.1: Removed from CVS, as it is a generated file.
-
-1999-11-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Make the test for getpwuid_r work on newer AIX
-       versions, too. Still works on Solaris and Linux. Patch from Craig
-       Rodrigues <rodrigc@mediaone.net>.
-
-1999-11-08  Tor Lillqvist  <tml@iki.fi>
-
-       * gwin32.c (g_win32_getlocale): Look at env vars LC_ALL, LC_CTYPE
-       and LANG first. Some refinements to the sublanguage logic.
-
-1999-11-04  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.{cygwin,msc}.in: Add gwin32 object. Add rule to make .i
-       (preprocessed source) files.
-
-1999-11-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h
-       * glib.def: Rename Win32-only functions from gwin_* to g_win32_*
-       to match the GLib naming conventions.
-
-       * gutils.c
-       * gwin32.c
-       * testglib.c
-       * Makefile.am: Move the Win32-only functions to the new
-       file gwin32.c
-
-1999-10-31  Tor Lillqvist  <tml@iki.fi>
-
-       * gutils.c (gwin_getlocale): New Win32-specific function, returns
-       a Unixish current locale string (en, zh_TW etc).
-
-       * glib.h: Declare it.
-
-       * glib.def: Export it.
-
-       * testglib.c: Test it.
-
-       * gmessages.c (Win32: ensure_stdout_valid): Some improvements,
-       make sure we don't call AllocConsole several times, which I think
-       has happened.
-
-Sun Oct 31 18:55:01 1999  ape@spacetec.no  (Asbjorn Pettersen)
-
-       * gcache.c (g_cache_remove): Test if node is NULL.
-       If not tested, GIMP's script-fu will crash. 
-
-Sun Oct 17 18:11:40 1999  Tim Janik  <timj@gtk.org>
-
-       * gdataset.c (g_data_set_internal): remove g_dataset_global_lock around
-       destroy() notification here as well.
-
-1999-10-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gdataset.c (g_datalist_clear_i): Avoid Freezing, when g_datalist
-       is called recursivly. Reported by Ola Andersson <rand@ling.umu.se>.
-
-Tue Oct 12 14:17:12 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h: removed useless g_string(x) macro that cluttered the namespace
-       and was just a poor wrapper around the cpp '#' symbol, use #x if you
-       need to work around this.
-       added new macro G_STRINGIFY(arg) that will convert arg to a string,
-       no matter whether it contains macros or not.
-
-1999-10-12  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Define the new GLIB_SIZEOF_* constants here,
-       too.
-
-       * glib.h: Small Win32 comments improvement.
-
-Tue Oct 12 12:16:12 1999  Tim Janik  <timj@gtk.org>
-
-       * gmessages.c (g_printf_string_upper_bound): completly new
-       implementation for printf string upper bounds calculation.
-       we handle all glibc 2.1 format specifiers now, except for positional
-       parameters (%nn$...) and wide char strings, plus some obscure upper
-       case variants of the standard conversions. this fixes a lot of
-       bugs in the old code, i.e.
-       - NULL format strings
-       - floats with exponents >+24
-       - %G
-       - precision specifications in general
-       - negative field widths
-       - %p for SIZEOF_VOID_P > 4 platforms
-       we now issue warnigns in places where the old code would have
-       caused buffer overruns anyways. warnings are suppressed when invoked
-       from glogv(), to avoid infinite recursions if someone passes a log
-       message that comes with really obscure format specifications.
-
-Tue Oct 12 11:49:00 1999  Tim Janik  <timj@gtk.org>
-
-       * gstrfuncs.c: nuked old g_printf_string_upper_bound() version.
-
-Tue Oct 12 03:34:40 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h: added GFloatIEEE754 and GDoubleIEEE754 unions to access sign,
-       mantissa and exponent of IEEE floats and doubles (required by the new
-       version of g_printf_string_upper_bound). the unions are endian specific,
-       we handle G_LITTLE_ENDIAN and G_BIG_ENDIAN as of currently. ieee floats
-       and doubles are supported (used for storage) by at least intel, ppc and
-       sparc, reference:
-       http://twister.ou.edu/workshop.docs/common-tools/numerical_comp_guide/ncg_math.doc.html
-
-Mon Oct 11 18:01:49 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in: added additional checks to figure sizes of size_t,
-       ptrdiff_t and intmax_t (required by g_printf_string_upper_bound).
-
-Wed Oct  6 12:44:23 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * configure.in: blah. use G_WITH_CYGWIN instead of G_HAVE_CYGWIN
-
-1999-10-05  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h: (Win32) Drop the mapping of POSIX function names to the
-       underscored versions, it's unnecessary after all. With MSVC we get
-       them from oldnames.lib, with gcc-2.95 and mingw32 from
-       -lmoldname-msvc. Add comment about what headers to include for
-       prototypes.
-
-       * glibconfig.h.win32.in: Don't define WIN32 and NATIVE_WIN32.
-
-       * gerror.c (g_on_error_query): (Win32) Slightly increased verbosity.
-
-       * build-dll: Don't strip.
-
-       * tests/string-test.c tests/dirname-test.c: Use G_OS_WIN32.
-
-       * glib.def: Add g_thread_use_default_impl.
-
-Sun Oct  3 19:46:55 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * configure.in: use G_HAVE_CYGWIN instead of G_OS_FEATURE_CYGWIN
-
-Sun Oct  3 19:25:42 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * acconfig.h
-       * configure.in
-       * glibconfig.h.win32: G_OS_FOO #defines. I *think* I got the cygwin
-       and beos stuff right, but I haven't tested it. The respective
-       porters should fix any screwups
-
-       * glib.h
-       * gerror.c
-       * gmain.c
-       * gmessages.c
-       * gscanner.c
-       * gthread.c
-       * gtimer.c
-       * gutils.c
-       * testglib.c: use G_OS stuff
-
-Wed Sep 22 01:53:18 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h (NULL): define NULL as (0L) if __cplusplus is defined, to
-       avoid "ANSI C++ forbids implicit conversion from `void *' in argument
-       passing" errors upon NULL usage in C++ programs (gcc-2.95 is on crack
-       for erroring out on this, instead of just issueing a warning).
-
-       * glib.h (g_trash_stack_pop): use uncasted NULL again.
-
-Fri Sep 17 10:24:45 1999  Tim Janik  <timj@gtk.org>
-
-       * gmem.c (g_mem_chunk_compute_size) (g_mem_chunk_new): applied
-       patch from Soeren Sandmann <sandmann@daimi.au.dk>, to force mem
-       chunk's area sizes to be a multitiple of atom_size, and to
-       eliminate the MAX_MEM_AREA restriction of 65536 bytes. we also
-       catch cases where users pass an area size < atom size with a
-       return_if_fail statement now (which is ok, because previously this
-       lead to memory corruption anyways).
-
-Thu Sep 16 13:19:54 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h (g_trash_stack_pop): add explicit (GTrashStack*) cast for NULL
-       pointer to cure ANSI C++ error.
-
-Mon Sep 13 23:25:59 1999  Tim Janik  <timj@gtk.org>
-
-       * gmessages.c (g_logv): in case we have to abort the program,
-       debugging is enabled and we are not called recursively, try
-       to abort with raise (SIGTRAP) first, so developers may ignore
-       certain failure conditions during debugging stage.
-
-Thu Aug 26 15:09:36 1999  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am:
-       * gmodule/Makefile.am:
-       * gthread/Makefile.am: added --export-dynamic so we can load dynmic
-       modules, (required, according to the libtool 1.3.3 docu).
-
-1999-07-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * grand.c (g_rand_new): Use /dev/urandom, as it doesn't block,
-       which /dev/random might do. Do not XOR the time, when getting the
-       seed form /dev/urandom, as this is good itself. Prevent the
-       initial seed from being zero, which causes the PRNG to produce
-       only zeros. Hints from Colin Plumb <colin@pgp.com>.
-
-1999-08-17  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h (g_trash_stack_push): Add a cast.
-
-       * gslist.c
-       * glist.c: Make the inline functions static inline, and add
-       separate extern wrappers. Not all compilers produce callable entry
-       points for inline functions, even if gcc does.
-
-Sun Aug 15 02:47:14 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h (g_trash_stack_pop): eliminate memset() call, since string.h
-       has not neccessarily been included prior to glib.h.
-
-Mon Aug  2 21:03:10 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in: added --enable-msg-prefix option.
-
-       * gmessages.c (g_log_default_handler): feature "prg_name (pid:%u): "
-       if --enable-msg-prefix was selected (use "(process:%u): " if
-       g_get_prgname () returns NULL, along the lines of g_on_error_query).
-
-1999-08-03  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h
-       * gstrfuncs.c
-       * tests/strfunc-test.c: Rename g_strccpy to g_strcompress and
-       g_strecpy to g_strescape per Tim Janik's suggestion. Dropped the
-       destination parameter, always g_malloc a new string.  Fix bug in
-       g_strcompress, octal digits were gobbled up without limit, should
-       use max three.
-
-       Sources that use g_strescape must have ifdefs to be compilable
-       both with GLib 1.2 and 1.3.
-
-Sat Jul 31 17:52:03 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * glib.h
-       * gstrfuncs.c: the #define for g_strescape interfered with the
-       compilation of the function, so just remove the function and
-       note that it's deprecated in the header
-
-1999-08-01  Tor Lillqvist  <tml@iki.fi>
-
-       * gstrfuncs.c (g_strccpy, g_strecpy): New functions.
-
-       * glib.h: Declare and document them. Define the deprecated
-       g_strescape as a macro that calls g_strecpy.
-
-       * tests/strfunc-test.c (main): Test them.
-
-       * makefile.{cygwin,msc}.in
-       * tests/makefile.{cygwin,msc}.in: Remove gstack and its test
-       program.
-
-       * glib.def: Additions and removals.
-
-       * README.win32: Improve gcc build instructions.
-
-       * build-dll: Also build import library for MSVC.
-
-Sat Jul 24 20:11:35 1999  Tim Janik  <timj@gtk.org>
-
-       * merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
-       * incorporated proposed cleanups from gtk-devel-list.
-
-       * bumped version number to GLib-1.3.1
-
-       * glib.h:
-       * gqueue.c:
-       * gstring.c:
-       * glist.c:
-       removed string tokenisation (we got g_strsplit() and g_strjoin()
-       already) and readline functions.
-       s/g_list_delete/g_list_delete_link.
-       implemented g_slist_delete_link.
-       removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
-       macro, g_atexit() is provided for public consumption.
-       added GTrashStack inline utility functions.
-       reimplement double eneded queues.
-       removed GStack implementation, people can use a queue or a (singly)
-       linked list for this task.
-       deprecated g_strescape(), we need the SunOS variants here.
-
-       * gdate.c: added DEBUG_MSG() macro to wrap old messages.
-
-       * *.*: CVS merges.
-
-       * upgrade to libtool 1.3.3.
-
-1999-07-21  Tor Lillqvist  <tml@iki.fi>
-
-       Win32: With the latest gcc (2.95, pre-release), we can have binary
-       compatibility with MSVC by using the switch -fnative-struct. No
-       longer build DLLs with .gcc in the name when using gcc.
-
-       * README.win32: Renew gcc build instructions.
-
-       * build-dll: Comments change, handle also .a files.
-
-       * makefile.cygwin.in
-       * tests/makefile.cygwin.in: Remove .gcc from DLL name.
-
-1999-07-13  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Correct URL for mingw runtime sources.
-
-       * build-dll: Combine commands with &&.
-
-       * glib.h: Map also rmdir() and hypot() for MSVCRT library.
-
-       * makefile.cygwin.in
-       * tests/makefile.cygwin.in: New DLL naming style. GCC-compiled DLLs are
-       now called *.gcc.dll, to avoid binary incompatibilities with
-       MSVC-compiled versions.
-
-       * makefile.msc.in: Cosmetics.
-
-1999-07-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Test for pthread_join rather than for
-       pthread_create to determine the right thread-lib. Makes it work on
-       mips-sgi-irix6.5. Hitn from to Jari Vuoksenranta
-       <javu@piano.ux.phys.jyu.fi>.
-
-1999-07-02  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Note about need to fix another bug in the mingw32
-       headers.
-
-       * makefile.msc.in: Debugging turned on via an nmake variable,
-       no need to edit the makefile.
-
-1999-07-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in, acconfig.h, gutils.c: Added a g_memmove
-       replacement for platforms without memmove, where bcopy can't
-       handle overlapping copies and the corresponding checks, which is
-       taken form the PERL Configure routine.
-
-       * glib.h: Updated the commentary about g_memmove to be right and
-       more GLib-like.
-
-       * configure.in: Removed test for rand_r, as it isn't used anymore.
-
-1999-06-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h, grand.c: Finally removed the g_random_normal and
-       g_rand_normal functions.
-
-1999-06-28  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.def: Add missing export of g_strncasecmp.
-
-1999-06-21  Jose Mercado  <jmercado@mit.edu>
-
-       * glib.spec.in: Changed version number (1.1->1.3) in files section
-       to allow rpm to build packages again.
-
-1999-06-21  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Update the pthreads snapshot version we want.
-       Advice how to hand-expand the makefile.*.in files.
-
-       * config.h.win32.in: Define values needed by Sebastian Wilhelmi's
-       new thread stuff.
-
-       * glib.def: Add new functions.
-
-       * glibconfig.h.win32.in: Update the pthreads snapshot version.
-       Fix typo.
-
-       * gthread.c: Include config.h, guard inclusion of unistd.h.  When
-       using gcc on Win32, g_thread_functions_for_glib_use must be marked
-       for export here, too.
-
-       * gtimer.c: Implement g_usleep on native Win32 using Sleep (which
-       only has millisecond granularity, though).
-
-       * makefile.cygwin.in
-       * makefile.msc.in: Update pthreads snapshot version. File
-       name changes. Remove testgthread.
-
-       * tests/makefile.cygwin.in
-       * tests/makefile.msc.in: Add thread-test. Link with gthread lib.
-
-1999-06-18  Jeff Garzik  <jgarzik@pobox.com>
-
-       * tests/Makefile.am:  Re-order tests in alpha order.
-
-1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Changed test for pthread_attr_setstacksize from
-       AC_TRY_COMPILE to AC_TRY_LINK.
-
-1999-06-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
-       Completed the thread support in GLib. Thread creation,
-       prioritizing threads, yielding, joining threads as well as
-       reader/writer locks and recursive mutexes are now in place. Please
-       test heavily on your platform. It is so far tested on
-       Linux/i386/pthreads, Solaris/Sparc/pthreads and
-       Solaris/Sparc/solaristhreads.
-
-       * gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
-       thread safe sleeping. (sleep() is not MT-safe at all!)
-
-       * gutils.c: Avoid compiler warning.
-
-       * tests/Makefile.am, tests/thread-test.c: New program to test some
-       aspects of the thread implementation.
-
-       * gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
-       change of content.
-
-       * configure.in: Purged all appearances of nspr. 
-
-Wed Jun  2 11:42:46 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4
-       * config.guess
-       * config.status
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.3.2 (BeOS changes merged)
-
-1999-05-29  Tor Lillqvist  <tml@iki.fi>
-
-       * gstrfuncs.c (g_strescape): Backslashify also '"' characters.
-
-       * glib.h: Document g_strescape.
-
-1999-05-12  Tor Lillqvist  <tml@iki.fi>
-
-       * glib.h (Win32): Map fileno to _fileno for mingw32. Map fstat to
-       _fstat.
-
-       * README.win32: Advice also to remove -lmoldname in the
-       patch to the egcs-1.1.2 spec file.
-
-Wed May 12 00:23:55 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * gmodule/Makefile.am: Another small fix.
-
-1999-05-08  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am tests/Makefile.am: Correct rules for making the
-       win32-related files that are made from corresponding .in files.
-       Is there a cleaner way than explicitly writing rules that invoke
-       config.status?
-
-Fri Jul 16 22:18:36 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.3.3
-
-1999-06-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gdate.c, gstrfuncs.c, gstring.c: Fixed the use of the
-       is..... and to..... macros, which take unsigned chars, not chars!
-       Thanks to Morten Welinder <terra@diku.dk> for pointing this out.
-
-Thu Jun  3 16:30:31 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * gerror.c (g_on_error_query): check isatty() before querying so
-       we don't loop endlessly
-
-Sat May 29 11:16:29 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4
-       * config.guess
-       * config.status
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.3.2
-
-1999-05-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmain.c: provide a poll prototype for SunOS, as they do not do
-       it self. Hint from Christian Parg <cparg@fs-design.de>.
-
-Tue May 25 12:23:07 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * gstrfuncs.c (g_strchug): Use g_memmove() not memmove().
-       (Reported by Charles Levert <charles@comm.polymtl.ca>)
-
-Mon May 10 22:03:52 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.2.3
-
-1999-05-08  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am tests/Makefile.am: Correct rules for making the
-       win32-related files that are made from corresponding .in files.
-       Is there a cleaner way than explicitly writing rules that invoke
-       config.status?
-
-Sat May  1 10:18:01 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4
-       * config.guess
-       * config.status
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.3
-
-1999-04-30  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: Don't distribute glibconfig.h.win32.in, but
-       glibconfig.h.win32. Generate it when making a dist. Also generate
-       makefile.msc and config.h.win32 from corresponding .in files when
-       making dist.
-
-       * configure.in: Also substitute @GLIB_INTERFACE_AGE@ and
-       @GLIB_BINARY_AGE@ (needed in config.h.win32).
-
-       * glibconfig.h.win32.in: Use static mutex structure and initial
-       value corresponding to the 1999-04-07 snapshot of pthreads-win32.
-
-       * tests/Makefile.am: Distribute makefile.msc. Generate it when
-       making dist.
-
-       * tests/makefile.msc.in: New file.
-
-       * tests/node-test.c: Include <stdlib.h> for exit().
-
-Thu Apr 29 02:16:36 1999  Tim Janik  <timj@gtk.org>
-
-       * gstrfuncs.c: minor code cleanups.
-
-Tue Apr 27 13:11:29 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_main_poll): Mask out ERR HUP and NVAL from
-       the events field so we don't give IRIX fits.
-
-Tue Apr 20 08:42:22 1999  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_unexp_token): behave conservative with
-       G_TOKEN_IDENTIFIER_NULL and always assume scanner->value.v_string
-       to be "null" in that case.
-
-1999-04-20  Havoc Pennington  <hp@pobox.com>
-
-       * gutils.c (g_vsnprintf):  When using the vsnprintf()
-       implementation, '\0'-terminate the resulting string
-       and return its length rather than -1.
-
-Mon Apr 19 13:42:21 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_main_iterate): Added missing
-       #ifdef G_THREADS_ENABLED. (I never liked G_THREADS_ENABLED in
-       the first place!)
-
-1999-04-18  Havoc Pennington  <hp@pobox.com>
-
-       * gutils.c (g_snprintf): When using the vsnprintf()
-       implementation, '\0'-terminate the resulting string
-       and return its length rather than -1.
-
-Fri Apr 16 06:52:07 1999  Tim Janik  <timj@gtk.org>
-
-       * gscanner.c (g_scanner_unexp_token): feature G_TOKEN_EOF as a valid
-       expected token as well, so we get "- expected end of file" instead of
-       "- expected (unknown) token <0>".
-
-Tue Apr 13 16:16:14 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.2.2
-
-1999-04-12  Elliot Lee  <sopwith@mh69.mh.cuc.edu>
-
-       * g_strchug(): s/strcpy/memmove/
-
-1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Adjusted the test for an unimplemented
-       getpwuid_r. Info from Michael Pruett <mikep@ugcs.caltech.edu>.
-
-Sun Apr 11 15:07:34 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in: bumped versin number to GLib 1.2.2, interface 2,
-       binary 2.
-
-       * NEWS: updates.
-
-Sun Apr 11 14:37:06 1999  Tim Janik  <timj@gtk.org>
-
-       * gstrfuncs.c (g_strcasecmp): always check for s1, s2 != NULL.
-
-Sat Apr 10 19:30:50 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h: removed braces around inline strings for the G_GNUC_FUNCTION
-       and G_GNUC_PRETTY_FUNCTION macros, so the macros can be used for
-       compile time string concatenation.
-
-Thu Apr  8 19:53:19 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * gmain.c (g_main_iterate): Check for two threads
-       calling g_main_iterate at once.
-
-       * gmain.c: If the set of poll file descriptors changes
-       during a call to poll(), abort that call, and start
-       a new poll. My test program still segfaults
-       obscurely on glibc 2.0 (in read()!!!), but now it works on
-       glibc 2.1, so I'll blame something else for the other segfault.
-
-1999-03-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Fixed slight bug, that made configure hang on some
-       systems. Please do not merge this into 1.3 branch. It's taken care
-       of differently there. Info from J. Rhett Aultman
-       <cuplan@alley.gator.net>
-
-Wed Mar 24 21:23:47 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.2.1
-
-       * README:
-         INSTALL: 
-         NEWS: 
-         sanity_check: updated
-
-       * glibconfig.h.win32.in:
-         Makefile.am:
-         docs/glib-config.1.in:
-         docs/Makefile.am: Added files used to generate new files.
-
-       * glibconfig.h.win32:
-         docs/glib-config.1: Removed, now generated.
-
-       * configure.in: Added to output now-generated files.
-
-Tue Mar 23 13:43:39 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * giounix.c: add user_data param to check and prepare functions
-
-Mon Mar 22 03:54:43 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h:
-       * gmain.c: add user_data to the GSource ->check and ->prepare
-       functions, so it can be used to e.g. pass a GPollFd.
-       (g_main_poll): only add poll records with an events mask != 0 to the
-       fd_array. don't even bother calling poll_func() if fds=timeout=0.
-       added debugging printouts around poll_func() invocation that can be
-       enabled with #define G_MAIN_POLL_DEBUG.
-
-Fri Mar 19 16:29:50 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4
-       * config.guess
-       * config.sub
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.2f
-
-       * autogen.sh: libtool is not required to autogen glib
-
-       * acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly
-       needed)
-
-1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmem.c: Fixed another stupid fault of mine: Did
-       s/g_static_/g_private_/g
-
-Wed Mar 17 03:17:42 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in bumped versin number to GLib 1.2.1, interface 1,
-       binary 1.
-
-       * NEWS: updates.
-
-       * glib.h: added GLIB_CHECK_VERSION() macro similar to
-       GTK_CHECK_VERSION().
-
-Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>
-
-       * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
-       to g_return_if_fail().
-       (g_mem_profile): 
-       (g_mem_chunk_print): 
-       (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
-       messages.
-
-       * gtimer.c (g_timer_*): changed a bunch of g_assert() statements
-       to g_return_if_fail().
-       * grel.c (g_*): changed a bunch of g_assert() statements to
-       g_return_if_fail() and added some extra ones to check relation != NULL.
-
-1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Also accept _Pctime_r instead of ctime_r, while
-       seraching for the right `_REENTRANT' flag. This is for Digital
-       UNIX 4.0d. Thanks to Sascha Brawer <sb@adasys.ch>.
-
-Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in: check for working realloc (NULL,).
-       * gmem.c (g_realloc): use malloc() for initial allocation on systems
-       where realloc(NULL,) will not work (this is the case on SunOS, reported
-       by Tom Geiger).
-
-Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>
-
-       * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
-       flag around the call to g_hook_free() to avoid spurious
-       warnings (happens during destruction phase).
-
-1999-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
-       from config.h.win32 to glibconfig.h.win32
-
-       * acconfig.h, configure.in, config.h.win32: Added test for DCE
-       versions of mutex_trylock and cond_timedwait. The win32 versions
-       are posix, aren't they?
-
-1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
-       Friedrich Dominicus <Friedrich.Dominicus@inka.de>
-
-1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c (g_get_any_init): Fixed yet another bloody
-       implementation of getpwuid_r on AIX. Thanks to Olaf Dietsche
-       <olaf.dietsche+list.gtk@netcologne.de>. I would like a configure
-       test better than that, but have no idea, how to do that easily.
-
-Sun Feb 21 22:11:51 CST 1999  Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.2.0
-
-       * AUTHORS: updated
-
-Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * *.[ch]: inserted additional note to look for ChangeLog and
-         AUTHORS file for a log of modifications.
-
-Sun Feb 21 14:01:00 1999  Dr Mike <drmike@redhat.com>
-
-       * Made specfile generated, tweaked slightly
-
-Sat May  8 06:00:17 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * configure.in
-         gmodule/Makefile.am
-         gthread/Makefile.am: Better testing reveals better
-         methods.  Fixes for BeOS.
-
-Sat May  8 01:52:29 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * configure.in
-         gerror.c
-         gmain.c
-         gstrfuncs.c
-         gutils.c
-         ltconfig
-         ltmain.sh
-         gmodule/Makefile.am
-         gmodule/gmodule.c
-         gmodule/gmoduleconf.h.in
-         gmodule/gmodule-beos.c
-         gthread/Makefile.am: Port to BeOS by myself and Richard Offer.
-
-1999-05-06  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.msc.in makefile.cygwin.in glibconfig.h.win32.in
-       config.h.win32.in tests/makefile.msc.in tests/makefile.cygwin.in:
-       New files, used to generate corresponding non-.in files when
-       making a dist. This is just so the version numbers will be kept in
-       synch automatically.
-
-       * configure.in: Also substitute @GLIB_MAJOR_VERSION@,
-       @GLIB_MINOR_VERSION@, and @GLIB_INTERFACE_AGE@.
-
-       * Makefile.am tests/Makefile.am: Also distribute makefile.cygwin.
-
-       * gerror.c (g_on_error_query): On Win32, put up a MessageBox and
-       then exit.
-
-       * glib.def: Add a couple of functions.
-
-Sat May  1 10:26:20 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4
-       * config.guess
-       * config.status
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.3
-
-1999-04-25  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: More editing.
-       * build-dll: Use gcc, not ld to link.
-       * glib.h: On native Win32 use _unlink().
-       * gscanner.c: Use corrent NATIVE_WIN32 feature test macro,
-       not _MSC_VER.
-       * gstring.c: Include <io.h> on Win32 for _read prototype.
-       * gutils.c: Remove old IO channel code (was in #if 0).
-       * makefile.cygwin: Don't need to link with kernel32 and msvcrt
-       explicitly, they are included anyway.
-
-1999-04-24  Tor Lillqvist  <tml@iki.fi>
-
-       Support added for building using a GNU toolchain on Win32,
-       i.e. gcc -mno-cygwin on cygwin (a.k.a. mingw32, using egcs-1.1.2).
-
-       * README.win32: Updated.
-       * build-dll makefile.cygwin tests/makefile.cygwin: New files.
-       * glib.h glib.def glibconfig.h.win32: Slight updates. 
-       * gmain.c: No need to include <fcntl.h> and <io.h> on Win32.
-       * gmain.c gutils.c testglib.c tests/string-test.c: Test for
-       NATIVE_WIN32, not _MSC_VER.
-       * gmutex.c: Must declare g_thread_functions_for_glib_use as
-       exported (using the GUTILS_C_VAR macro).
-       * gutils.c gmodule/libgplugin_[ab].c: LibMain not needed.
-       * gmodule/gmoduleconf.h.win32: Need underscore with gcc.
-       * gthread/gthread.c: With gcc on Win32, must use memcpy to assign
-       value of g_thread_functions_for_glib_use (?).
-       * makefile.msc tests/makefile.msc: Cosmetics.
-
-Fri Apr 23 14:29:25 BST 1999  Tony Gale <gale@gtk.org>
-
-       * glib.h: Fix typo in g_string_ncasecmp macro (by me).
-         Add b_string_strncasecmp macro.
-
-1999-04-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c (g_get_any_init): use sysconf (_SC_GETPW_R_SIZE_MAX) as
-       the new initinal bufsize for getpwuid_r on systems, that support
-       this. Hint from Holger Duerer <H.Duerer@zait.uni-bremen.de>.
-
-Sat Apr 17 20:55:13 BST 1999  Tony Gale <gale@gtk.org>
-
-       * glib.h, gstring.c: Add new g_string functions for reading
-         from file/socket descriptors, and tokenising strings.
-
-         Added various g_string macros.
-
-Tue Apr 13 23:28:32 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Mention the tests directory.
-
-       * glib.def: Add the functions from grand.c.
-
-       * glibconfig.h.win32: Add unsigned max values, and the format
-       strings.
-
-       * makefile.msc: Add grand.
-
-       * tests/{date-test,node-test}.c: Include <stdlib.h> for exit().
-
-       * tests/makefile.msc: New file.
-
-1999-04-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib.h: Moved struct declaration up. Style fixes.
-
-       * grand.c: Style fixes. Only try to open /dev/random once.
-
-       * tests/rand-test.c (main): New tests; Slight bug fix. 
-
-1999-04-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * grand.c, tests/rand-test.c: New files to implement the Mersenne
-       Twister Pseudo Random Number Generator.
-
-       * glib.h, AUTHORS, Makefile.am, tests/Makefile.am: Changed
-       accordingly.
-
-Thu Apr  8 21:12:30 CDT 1999 Shawn T. Amundson <amundson@gtk.org>
-
-       * Released GLib 1.3.0
-
-1999-03-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Added a check for the right format to printf and
-       scanf long longs. It is %qi instead of %lli on FreeBSD for
-       whatever reason.
-
-1999-03-28  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * Makefile.am (glibconfig.h): Make sure `glibconfig.h' exists
-       after the rule is fired.
-       (install-exec-local): Install glibconfig.h only if the contents
-       are different from the currently installed glibconfig.h.
-
-1999-03-26  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * Makefile.am (configexecincludedir): Rename from 
-       configincludedir so that glibconfig.h will be installed 
-       as part of `make install-exec'. 
-
-Thu Mar 25 22:45:47 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32: Update version numbers.
-
-       * glibconfig.h.win32: Update version numbers and pthreads-win32-
-       related magic values.
-
-       * README.win32: Some improvements.
-
-       * makefile.msc: Add gqueue and gstack. Correct version number.
-
-Fri Mar 19 16:29:50 PST 1999 Manish Singh <yosh@gimp.org>
-
-       * acinclude.m4
-       * config.guess
-       * config.sub
-       * ltconfig
-       * ltmain.sh: upgrade to libtool 1.2f
-
-       * autogen.sh: libtool is not required to autogen glib
-
-       * acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly
-       needed)
-
-1999-03-18  Jeff Garzik  <jgarzik@pobox.com>
-
-       * glib.def: Add new g_list, g_stack, g_queue functions.
-
-1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
-       to hold various defines to get the right thread implementation on
-       different platforms. Also look in -ldce for pthread_create. Should
-       make it work on HP-UX 10.x. Information from "D. Emilio Grimaldo
-       Tunon" <emilio_tunon@nl.compuware.com>.
-
-1999-03-17  Jeff Garzik  <jgarzik@pobox.com>
-
-       * gstack.c, gqueue.c:
-       Add copyright, clean up code a bit.
-
-1999-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Added missing values for G_MAXU(SHORT|INT|LONG) on
-       platforms with only /usr/include/values.h.
-
-       * acconfig.h: Removed unnecessary macros.
-
-       * glibconfig.h.win32, config.h.win32: Moved G_THREADS_IMPL_POSIX
-       from config.h.win32 to glibconfig.h.win32. Taken from glib 1.2
-       branch.
-
-       * configure.in: Also accept _Pctime_r instead of ctime_r, while
-       seraching for the right `_REENTRANT' flag. This is for Digital
-       UNIX 4.0d. Taken from glib 1.2 branch.
-
-Wed Mar 17 03:14:56 1999  Tim Janik  <timj@gtk.org>
-
-       * glib.h: added GLIB_CHECK_VERSION() macro similar to
-       GTK_CHECK_VERSION().
-
-Wed Mar 17 01:46:28 1999  Tim Janik  <timj@gtk.org>
-
-       * merges from glib-1-2:
-
-Sun Mar 14 17:50:35 1999  Tim Janik  <timj@gtk.org>
-
-       * gmem.c (g_mem_chunk_*): changed a bunch of g_assert() statements
-       to g_return_if_fail().
-       (g_mem_profile):
-       (g_mem_chunk_print):
-       (g_mem_chunk_info): removed some extraneous "\n"s at the end of the log
-       messages.
-
-       * gtimer.c (g_timer_*): changed a bunch of g_assert() statements
-       to g_return_if_fail().
-       * grel.c (g_*): changed a bunch of g_assert() statements to
-       g_return_if_fail() and added some extra ones to check relation != NULL.
-
-Tue Mar  9 23:25:50 1999  Tim Janik  <timj@gtk.org>
-
-       * configure.in: check for working realloc (NULL,).
-       * gmem.c (g_realloc): use malloc() for initial allocation on systems
-       where realloc(NULL,) will not work (this is the case on SunOS, reported
-       by Tom Geiger).
-
-Mon Mar  8 07:42:08 1999  Tim Janik  <timj@gtk.org>
-
-       * ghook.c (g_hook_unref): when !hook_list->is_setup, wrap the
-       flag around the call to g_hook_free() to avoid spurious
-       warnings (happens during destruction phase).
-
-1999-03-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmem.c: Fixed a stupid cut'n'paste error of mine. Thanks to
-       Friedrich Dominicus <Friedrich.Dominicus@inka.de>
-
-1999-03-16  Timur Bakeyev  <mc@bat.ru>
-
-       * configure.in: Fix problem with pthread_create in libc, as running
-       "gcc test.c -l " is not legal.
-
-1999-03-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * tests/type-test.c: Added a test for the
-       G_(U)?INT(16|32|64)_FORMAT and G_(MIN|MAX|MAXU)(SHORT|INT|LONG)
-       macros.
-
-       * configure.in: Removed G_(U)?INT8_FORMAT again, as it can't be
-       used for scanf.
-
-       * configure.in: Added the macros G_MAXU(SHORT|INT|LONG). I do not
-       know how to handle these on platforms with /usr/include/values.h,
-       but without /usr/include/limits.h. Please someone add this.
-
-
-1999-03-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Added the macros G_(U)?INT(8|16|32|64)_FORMAT to
-       use for printf and (much more important) scanf format strings for
-       the corresponding GLib types. 
-
-       * glib.h Added G_(U)?(SHORT|INT|LONG)_FORMAT for consistency. It
-       however makes no sense to also provide G_(FLOAT|DOUBLE)_FORMAT, as
-       they are different for printf (f for both) and scanf (f for float,
-       lf for double). Defining G_INT_FORMAT makes sense however, as we
-       might want to define gint to something different than int someday
-       in the future. Idea from Sascha Brawer <sb@adasys.ch>.
-
-1999-03-14  Jeff Garzik  <jgarzik@pobox.com>
-
-       * gdate.c:
-       Commented out debugging output.
-
-       * tests/Makefile.am, tests/date-test.c:
-       Added test of the GDate module, based closely on testgdate.c.
-
-       * tests/Makefile.am:
-       Bugfix - compile tests with @GLIB_DEBUG_FLAGS@.
-
-1999-03-14  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * configure.in (glibconfig.h): Remove widechar tests and defines.
-       (fd_set): Change the grep for `fd_mask' to search for `fd_set'.
-       * gerror.c (fd_mask): Remove conditional typedef.  It is not used
-       elsewhere in the file.
-       * gmain.c (fd_mask): Likewise.
-
-1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Test for posix threads first, then for dce threads.
-
-1999-03-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Revamped the thread configure stuff. Now dce
-       threads (old posix draft) are recogniced. This is necessary,
-       because dce threads are in fact working quite differently from
-       posix threads. Also changed the conditions for checking for MT
-       safe functions a bit, because G_THREADS_IMPL_NONE still have to
-       compile thread safe. NOTE: Please do not commit my change to
-       glib-1-2/{acconfig.h,configure.in,config.h.win32} from 1999-03-03,
-       as the current change will take care of that too.
-
-Tue Mar  9 14:37:32 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * Makefile.am, glib.h, gstack.c, gqueue.c,
-         tests/Makefile.am, tests/queue-test.c, tests/stack-test.c:
-       Added stack, queue ADTs and related tests.
-
-       * glib.h, glist.c:
-       New g_list_delete() function.
-
-Sat Mar  6 11:03:08 1999  Asbjorn Pettersen  <ape@lrdpf.spacetec.no>
-
-       * gutils.c (g_get_any_init): add OS/2 changes.
-       change '\\' in HOME to '/'.
-
-1999-03-03  Josh MacDonald  <jmacd@spin.dsl.pacbell.net>
-
-       * glib.def: g_spaced_primes_closest was omitted here, so I
-       couldn't build Xdelta on Windows.
-
-1999-03-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gutils.c (g_get_any_init): Fixed yet another bloody
-       implementation of getpwuid_r on AIX. Thanks to Olaf Dietsche
-       <olaf.dietsche+list.gtk@netcologne.de>. I would like a configure
-       test better than that, but have no idea, how to do that easily.
-
-Sat Feb 27 01:18:47 1999  Tim Janik  <timj@gtk.org>
-
-       * ChangeLog: moved old ChangeLog to ChangeLog.pre-1-2, and started
-       new one.
-
-       * configure.in: set glib version to 1.3.0.
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
deleted file mode 100644 (file)
index b2074b9..0000000
+++ /dev/null
@@ -1,1368 +0,0 @@
-2006-03-23  Matthias Clasen <mclasen@redhat.com> 
-
-       Retroactively branch for 2.10 before the last commit.
-
-       * glib/gtimer.c: Change to "Since 2.12".
-
-2006-03-23  Emmanuele Bassi  <ebassi@cvs.gnome.org>
-
-       * configure.in: Check for timegm.
-       
-       * glib/gtimer.h:
-       * glib/gtimer.c:
-       * glib/glib.symbols:
-       * docs/reference/glib/glib-sections.txt: Added g_time_val_to_iso8601
-       and g_time_val_from_iso8601, to convert a GTimeVal to and from an
-       ISO 8601 encoded date.
-
-       * tests/testglib.c: Added test cases for g_time_val_to_iso8601()
-       and g_time_val_from_iso8601() functions.
-
-2006-03-20  Vladimer Sichinava  <vlsichinava@gmail.com>
-
-        * configure.in: Added "ka" (Georgian) to ALL_LINGUAS
-
-2006-03-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmem.c (profiler_log): use standard_calloc to allocate
-       the profile_data.  (#335209, Chris Wilson)
-
-       * glib/gmain.c (g_main_context_unref): Avoid a deadlock.
-       (#335207, Chris Wilson)
-
-       Minor optimizations (#335216, Chris Wilson):
-       
-       * glib/gasyncqueue.c (g_async_queue_pop_intern_unlocked): Use
-       g_queue_peek_tail_link instead of g_queue_peek_tail.  
-
-       * glib/glist.c: 
-       * glib/gslist.c: Avoid some memset calls. 
-
-2006-03-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * MAINTAINERS: Add this, at the request of the GNOME sysadmin team.
-
-2006-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (g_option_context_parse): Only set the prgname
-       if it hasn't been set before.  (#334611, Chong Kai Xiong)
-
-2006-03-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_parse_debug_string): Don't read past the
-       end of the string.  (#334471, Morten Welinder)
-
-       * tests/testglib.c (test_g_parse_debug_string): Add testss
-       for g_parse_debug_string.
-
-       * glib/goption.c (parse_short_option): Don't create the
-       option_name twice.  (#334519, Chris Wilson)
-
-2006-03-13  Anders Carlsson  <andersca@luminoth.local>
-
-       * configure.in: Revert fix for #322476, it breaks module loading
-       since libtool on darwin makes shared modules use .so and shared
-       libraries use .dylib. The fix breaks shared module loading everywhere
-       in GTK+.
-
-2006-03-02  Marcus Brinkmann  <mb@g10code.de>
-
-       Implement watches for GIOChannels for write file descriptors on
-       Win32 (#333098).
-       
-       * glib/giowin32.c (GIOWin32Channel): Add a new direction field.
-       (read_thread): Initialize direction.
-       (write_thread): New function.
-       (buffer_write): New function.
-       (g_io_win32_prepare): Handle the G_IO_WIN32_FILE_DESC case for the
-       write direction.
-       (g_io_win32_fd_write): Call buffer_write() if there is a writer
-       thread.
-       (g_io_win32_fd_close): Set space_avail_event for writer threads.
-       (g_io_win32_fd_create_watch): Create the writer thread if
-       condition is G_IO_OUT.
-       (g_io_channel_win32_make_pollfd): Likewise here.
-
-2006-03-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.am: Add ChangeLog.pre-2.8 to EXTRA_DIST.
-
-2006-03-08  Tor Lillqvist  <tml@novell.com>
-
-       * glibconfig.h.win32.in: Add G_GUINT64_CONSTANT.
-
-2006-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * ===  Released 2.10.1 ===
-
-       * NEWS: Updates.
-
-       * glib/gutf8.c (_g_charset_get_aliases): Match the prototype
-       in gconvert.c to fix build problems in NetBSD.  (#333651,
-       Julio M. Merino Vidal)
-
-2006-03-06  Anders Carlsson  <andersca@imendio.com>
-
-       * configure.in:
-       Make .dylib the shared library suffix on darwin.
-       (#322476, Vladimir Panov)
-       
-2006-03-06  Anders Carlsson  <andersca@imendio.com>
-
-       * configure.in:
-       Skip checking thread flags on Darwin. Fix suggested by Manish Singh.
-       (#314794, Gregor Riepl)
-       
-2006-03-01  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (g_listenv): Separate implementation on Win32: Use
-       the wide character API on NT-based Windows. Return UTF-8 strings.
-
-       * glib/glib.symbols: Don't mark g_listenv as PRIVATE, as that
-       meant it wasn't present in the import library. PRIVATE is used
-       only for the backwards-compatibility DLL ABI stability hacks.
-
-2006-02-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.10.0 ===
-
-       * README.in: Mention the slice allocator and GInitiallyUnowned.
-
-       * NEWS: Updates
-
-       * configure.in: Bump version to 2.10.0
-
-       * tests/utf8-pointer.c: Add tests for g_utf8_strlen().
-
-       * glib/gutf8.c: Fix boundary cases in g_utf8_strlen().
-       (#332435)
-
-2006-02-23  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * tests/completion-test.c: (main): Plug leaks reported by
-       valgrind.
-       * tests/convert-test.c: (test_iconv_state), (test_one_half):
-       Same.
-       * tests/patterntest.c: (test_compilation): Same
-       * tests/shell-test.c: (do_argv_test): Same.
-       * tests/unicode-caseconv.c: (main): Same.
-       * tests/uri-test.c: (run_to_uri_tests): Same.
-       Closes bug #332093.
-
-2006-02-19  Martyn Russell  <martyn@imendio.com>
-       
-       * tests/asyncqueue-test.c: 
-       * tests/list-test.c: 
-       * tests/slist-test.c: Updated to test _sort, _sort_with_data,
-       _insert_sorted and _insert_sorted_with_data API. 
-
-2006-02-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/gobject/Makefile.am: Add paramspec-test
-
-       * tests/gobject/paramspec-test.c: Some GParamSpec tests. 
-
-       * tests/gobject/gvalue-test.c: Add more tests.
-
-2006-02-17  Kang Jeong-Hee  <keizie@gmail.com>
-
-       * glib/gutf8.c (g_utf8_find_prev_char): Correct documentation typo.
-
-2006-02-15  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gthreadpool.c: Fix deadlock when signalling the thread
-       which freed a thread pool (#331110, Chris Wilson).
-
-Tue Feb 14 17:00:43 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: only define _XOPEN_SOURCE to 600 to get at 
-       posix_memalign() in case we actually are going to use it, because
-       we detected a compliant implementation (#328997).
-
-       * configure.in (enable_included_printf): don't include malloc.h when
-       testing for posix_memalign() funcitonality, since this may break the 
-       test on some systems (#328997).
-
-2006-02-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c: Improve docs.
-
-2006-02-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2006-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.6 ===
-
-       * NEWS: Updates
-
-2006-01-31  Behdad Esfahbod  <behdad@gnome.org>
-
-       * docs/reference/glib/tmpl/relations.sgml (g_relation_insert): Specify
-       the type of varargs arguments. (bug #317679)
-
-2006-01-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * autogen.sh: Touch README and INSTALL here to pacify 
-       automake.  (#329124, Kjartan Maraas, Tim Janik)
-       
-Tue Jan 31 16:45:03 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gdataset.c: carry out all dtalist pointer accesses atomically,
-       some missing cases where pointed out by Sebastian Wilhelmi.
-
-Tue Jan 31 12:33:48 2006  Tim Janik  <timj@imendio.com>
-
-       * configure.in: generate build/win32/vs8/Makefile, to fix build breakage.
-
-2006-01-30  David Schleef  <ds@schleef.org>
-
-       * glib/grand.c: Update URL
-
-2006-01-29  Sven Herzberg  <herzi@gnome-de.org>
-
-       * docs/reference/gobject/tmpl/param_value_types.sgml: tell how to
-       create container classes which are as flexible as a GValue is
-
-2006-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.9.5 ===
-
-       * glib/glib.symbols: Add g_mem_gc_friendly as an exported
-       variable.
-
-       * NEWS: Updates
-
-2006-01-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmem.c (g_mem_init_nomessage): Fix C99isms.  (#328705, 
-       Kazuki Iwamoto)
-
-Wed Jan 25 19:16:57 2006  Tim Janik  <timj@imendio.com>
-
-       * fixed buglets reported by Jens Granseuer in #328254.
-
-       * configure.in: free the memory allocated in posix_memalign() tests.
-
-       * glib/gslice.c: spelling fixes.
-
-Wed Jan 25 16:39:18 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: honour g_mem_gc_friendly settings when freeing
-       slices, make sure g_mem_gc_friendly is properly initialized.
-
-       * gmem.[hc]: ensure g_mem_gc_friendly is initialized from G_DEBUG upon
-       the first allocation. applied some branching optimizations.
-
-       * docs/macros.txt: reflected --enable-gc-friendly change and
-       described ENABLE_GC_FRIENDLY_DEFAULT as well as G_DEBUG=gc-friendly.
-
-       * configure.in: changed --enable-gc-friendly=yes to define
-       ENABLE_GC_FRIENDLY_DEFAULT.
-
-       * glib/garray.c: changed ENABLE_GC_FRIENDLY macro #ifdef-s to
-       if (G_UNLIKELY (g_mem_gc_friendly)).
-
-       * glib/gtree.c:
-       * glib/ghash.c: removed ENABLE_GC_FRIENDLY code which is now taken
-       care of by g_slice_free1().
-
-       * tests/slice-test.c: fixed leaks, reported by Kjartan Maraas.
-
-Tue Jan 24 17:49:36 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: only use posix_memalign() if it's known to work,
-       revert to memalign() otherwise.
-
-       * configure.in: check for broken posix_memalign() implementations
-       to fix #328254.
-
-2006-01-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/unicode-encoding.c: Use UTF-16LE as target encoding
-       on all little-endian systems.  (#143380, Marc Moorcroft)
-
-2006-01-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Change the shared libary extension for hpux-ia64
-       to so.  (#328253, The Written Word)
-
-Mon Jan 23 17:30:33 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gutils.c (_g_getenv_nomalloc): wiped out all the wonderfull
-       G_OS_WIN32 code i wrote ;-[) after tml told me windows has getenv()
-       as well.
-
-Mon Jan 23 16:46:20 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c (slice_config_init): initialize GSlice config from
-       G_SLICE environment variable. we support G_SLICE=always-malloc
-       currently, which forces all g_slice_*() allocations to use the system
-       malloc instead.
-
-       * glib/gutils.c: 
-       g_parse_debug_string(): added a note about not using g_malloc() here.
-       _g_getenv_nomalloc(): getenv() variant that doesn't use g_malloc or 
-       g_slice. contains only guesswork in the WIN32 branch.
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * Bump version
-       
-       * === Released 2.9.4 ===
-
-       * NEWS: Updates
-
-2006-01-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_get_groups): Correct a g_new0()
-       call.  (#327421, Morten Welinder)
-
-2006-01-17  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gthreadpool.c: To avoid deadlocks get rid of the settings
-       G_LOCK. Use the unused_thread_queue lock instead. Change
-       g_thread_pool_thread_proxy such that threads only wait on
-       non-exlusive pools for at most a 1/2 second. Do not reorder tasks
-       due to superfluous tasks. Global tasks wait at most for
-       max-idle-time milliseconds. Make sure, that no task is woken up
-       twice for the same event via a wakeup_serial. This fixes #324228.
-
-       * tests/threadpool-test.c: Adapt test accordingly. Do not pass
-       invalid NULL into the thread pools. This as well fixes #327290.
-
-2006-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.9.3 ===
-
-       * NEWS: Updates
-
-       * glib/gthread.h (g_static_mutex_get_mutex_impl_shortcut): 
-       Rework the strict aliasing fix to not break C++, pointed
-       out by Murray Cumming.
-       
-       * glib/gasyncqueue.c (g_async_queue_push_sorted_unlocked):
-       Signal waiting threads, problem noticed by Christian Kellner.
-
-2006-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix bug 326747, Alberto Ruiz:
-       
-       * glib/gconvert.c (make_valid_utf8): Change this function to
-       replace unknown characters by the Unicode replacement character
-       instead of '?', and don't append "(invalid encoding)".
-       (g_filename_display_name, g_filename_display_basename): Document
-       how to determine if the filename was in an invalid encoding.
-
-2006-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtree.c: Replace the simple recursive implementation
-       by a nonrecursive, threaded implementation by Maurizio 
-       Monge.  (#169285)
-
-2006-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/asyncqueue-test.c (main): Fix the
-       assert to not always trigger.  (#326558, 
-       Daichi Kawahata)
-
-2006-01-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/convert-test.c: Don't test items_read and
-       items_written in error cases where it is not set.
-
-       * tests/asyncqueue-test.c: Set error to NULL.
-
-2006-01-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtree.c: Break some long lines.
-
-       * tests/tree-test.c: Add more tests.
-
-       * glib/gslice.c: Include config.h first, pointed out
-       by Bogdan Nicula.
-
-2005-12-20  Sven Herzberg  <herzi@gnome-de.org>
-
-       * docs/reference/gobject/tmpl/gtype.sgml: explain that
-       G_TYPE_INSTANCE_GET_CLASS() does behave different during
-       initialization
-
-2006-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslice.c: Only define _XOPEN_SOURCE if we know
-       that we have posix_memalign().  (#323937, Bogdan Nicula)
-
-2006-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.9.2 ===
-
-2006-01-05  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : added gslice.obj
-
-2006-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-       * glib/gmain.c: Clarify the documentation of source ids
-       a bit.  (#325874, Dan Williams)
-
-       * configure.in: Fix another strict aliasing problem.
-
-       * glib/gthreadpool.c: Avoid use of varargs macro.  (#325864,
-       Kazuki IWAMOTO)
-
-2006-01-04  Manish Singh  <yosh@gimp.org>
-
-       * glib/glib.symbols
-       * glib/gstdio.h: don't macroized g_access, g_chdir, and g_unlink
-       either, since they have the same issue as g_rmdir. (Related to
-       bug #325249)
-
-Wed Jan  4 13:33:25 2006  Tim Janik  <timj@gtk.org>
-
-       * glib/gslice.c (magazine_cache_pop_magazine): don't reverse chunk 
-       order when creating magazines, so we hand out chunks with ascending
-       adresses.
-
-2006-01-04  Abel Cheung  <maddog@linuxhall.org>
-
-       * configure.in: Added "ml" "zh_HK" to ALL_LINGUAS.
-
-2006-01-03  Martyn Russell  <martyn@imendio.com>
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/glib.symbols:
-       * glib/gthreadpool.[ch]:
-       - Added new API g_thread_pool_get_idle_time() and
-       g_thread_pool_set_idle_time(). (#324228).
-       
-       * tests/threadpool-test.c: 
-       - Updated test case to do thread pool sorting, thread pool with
-       no sorting and a thread pool with idle thread timeouts.
-       
-2006-01-03  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/gmain.h: Add new functions here, too.
-
-       * glib/glib.symbols: Add new functions.
-
-2005-12-20  Michael Meeks  <michael.meeks@novell.com>
-
-       * glib/gmain.c (g_main_context_is_owner): new method
-       to determine if the current thread is the owner of the
-       context.
-
-2006-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: 
-       * glib/gstdio.h: 
-       * glib/gstdio.c (g_rmdir): Don't provide g_rmdir() as a macro
-       expanding to rmdir, since rmdir is not declared in a portable
-       system header we can include in gstdio.h.  (#325249, Jani Monoses)
-
-2006-01-01  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gspawn-win32.c (g_spawn_sync_utf8): Set the GIOChannels for
-       stdout and stderr to unbuffered. Otherwise the giochannel layer
-       will try to read from them regardless whether the
-       g_io_channel_win32_poll() call here has indicated
-       readability or not. (#325310)
-
-2005-12-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (glib_check_version): Fix a copy-and-paste error
-       in the docs.  (#325273, Declan Naughton)
-
-2005-12-27  Manish Singh  <yosh@gimp.org>
-
-       * tests/run-collate-tests.sh: use LC_ALL instead of LC_COLLATE, to
-       make sure we really override things.
-
-2005-12-27  Matthias Clasen  <mclasen@redhat.com>
-       
-       Fix #316221, Michal Benes, Stanislav Brabec;
-
-       * configure.in: Fix a strict aliasing problem in 
-       g_static_mutex_get_mutex(). 
-       * glib/gthread.h: ...and in 
-       g_static_mutex_get_mutex_impl_shortcut().
-
-       * glib/gdatasetprivate.h: Add a cast to silence compiler
-       warnings.  (#321978, Andrew Paprocki)
-
-       Partial fix for bug #323937, Bogdan Nicula.
-
-       * configure.in: Check for malloc.h
-       * glib/gslice.c: Don't include malloc.h unconditionally.
-
-2005-12-27  Manish Singh  <yosh@gimp.org>
-
-       * tests/run-collate-tests.sh: export LC_COLLATE so it takes.
-       (#324950, Dan Yefimov)
-
-2005-12-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslice.c: On Win32, include process.h  (#325015, Kazuki
-       Iwamoto)
-
-2005-12-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * AUTHORS: Update my email
-
-       * tests/slice-test.c: Fix C99isms.  (#324950, Dan Yefimov)
-
-2005-12-21  Matthias Clasen  <mclasen@redhat.com>
-       
-       * README.in: Add some notes on when 'make check' may fail.
-
-2005-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: 
-       * glib/gthreadpool.h: 
-       * glib/gthreadpool.c (g_thread_pool_set_sort_function): New function
-       to sort tasks pushed into a threadpool.  (#324479, Martyn Russell)
-
-       * tests/threadpool-test.c: Test this.
-
-Tue Dec 20 18:14:14 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.[hc]: added mem_error() and mem_assert() to test and 
-       handle  errors without depending on gmessage.c which might not be
-       setup when the error occours.
-       removed G_SLICE_CONFIG_ALWAYS_FREE config option, fixed the code so
-       always freeing can be achieved by adjusting the working set time to
-       0 with G_SLICE_CONFIG_WORKING_SET_MSECS.
-       added G_SLICE_CONFIG_COLOR_INCREMENT to test different color increments
-       (mainly 0 and 1). reduced the minimum block size to 128 bytes, to
-       minimize wastage if small amounts of differently sized structrues are
-       allocated, this does come at a performance cost of roughly 5% though.
-       fixed up block alignment calculation, so it works for varying
-       block sizes. only use strerror() not g_strerror() since the latter
-       depends on working GQuark and GSlice.
-       mem_error(): implemented in terms of fprintf and vfprintf.
-
-       * tests/slice-color.c: new program to test cache colorization effects.
-
-       * tests/slice-test.c: trade G_SLICE_CONFIG_ALWAYS_FREE for 0 duration
-       G_SLICE_CONFIG_WORKING_SET_MSECS.
-
-2005-12-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (parse_short_option): Set an error in all
-       failure cases.  (#324332, Tim-Philipp Müller) 
-
-2005-12-17  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get
-       and g_atomic_pointer_get. Add g_atomic_int_set and
-       g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES &&
-       G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them
-       as functions (additionally to the macros in the header) for the 
-       !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case.
-
-2005-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       *  glib/gmem.c (g_allocator_new): Don't return a pointer to
-       a const struct, since apps expect to be able to modify it. 
-       (#324179, J. Ali Harlow)
-
-Tue Dec 13 10:13:32 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gatomic.h: added g_atomic_pointer_set() and g_atomic_int_set()
-       for systems where the initialization of atomic variables requires a
-       write memory barrier.
-
-2005-12-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.9.1 ===
-
-2005-12-09  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/glist.h: 
-       * glib/gslist.h:
-       Use G_GNUC_WARN_UNUSED_RESULT on list functions that return
-       the whole list.
-
-2005-12-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2005-12-07  Martyn Russell  <martyn@imendio.com>
-
-       * glib/gasyncqueue.c:
-       - Call g_queue_insert_sorted() instead of duplicating the code.
-       - Call g_queue_sort() instead of duplicating the code.
-       - Invert sort function results to make sure the same sort function
-       gives the same results across glist, gslist, gqueue and
-       gasyncqueue.
-
-       * tests/asyncqueue-test.c:
-       - Updated the sort function to reflect the example in the
-       documentation for gasyncqueue.c.
-
-2005-12-07  Martyn Russell  <martyn@imendio.com>
-
-       * docs/reference/glib/glib-sections.txt:
-       * docs/reference/glib/tmpl/linked_lists_double.sgml:
-       * docs/reference/glib/tmpl/linked_lists_single.sgml:
-       * glib/glist.[ch]: 
-       * glib/gslist.[ch]: 
-       - Added g_list_insert_sorted_with_data () and
-       g_slist_insert_sorted_with_data ().
-       - Removed the extra check in g_list_sort() and g_slist_sort() for
-       GCompareDataFunc vs. GCompareFunc.
-       
-2005-12-07  Tor Lillqvist  <tml@novell.com>
-
-       * glib-gettextize.in: Look up prefix at run-time on Win32,
-       assuming the standard directory structure with glib-gettextize in
-       $prefix/bin.
-
-2005-12-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmem.h: Exempt GTK+ from the mem chunk deprecation, since
-       we need GTK+ 2.8 to compile against GLib 2.10.
-
-2005-12-05  Manish Singh  <yosh@gimp.org>
-
-       * tests/run-collate-test.sh: set LC_COLLATE, not LANG, to be sure
-       to override any user settings.
-
-2005-12-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Revert an accidential commit
-
-2005-12-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutf8.c: Documentation updates.  (#323291, Morten Welinder)
-
-       * tests/Makefile.am (TESTS_ENVIRONMENT): 
-       * tests/gobject/Makefile.am (TESTS_ENVIRONMENT): Set
-       MALLOC_CHECK_ and MALLOC_PERTURB_
-
-       * tests/run-collate-tests.sh: Run the collation tests explicitly 
-       in en_US locale. (#320463)
-
-       * glib/gmem.h: Really deprecate GMemChunk.
-
-       * glib/gdate.c: 
-       * glib/gutils.c: 
-       * glib/gtree.c: 
-       * glib/gstring.c: 
-       * glib/giochannel.c: 
-       * glib/gstrfuncs.c: Add versioned deprecation docs. 
-
-2005-12-05  Martyn Russell  <martyn@imendio.com>
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/gasyncqueue.[ch]:
-       - Added support for sorting async queues by with _push_sorted(),
-       _push_sorted_unlocked(), _sort() and _sort_unlocked() (#323047).
-       
-       * tests/Makefile.am:
-       * tests/asyncqueue-test.c:
-       - Added test case for gasyncqueue.c
-
-Mon Dec  5 15:53:20 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: implement chain walking for arbitrary ->next pointer
-       offsets in g_slice_free_chain_with_offset() based on a patch by behdad
-       in bug 323178. moved time consuming logic from g_slice_free() out of
-       the inner loop, so g_slice_free_chain_with_offset() provides a real
-       performance benefit over g_slice_free1() now.
-       
-       * glib/gslice.h: renamed g_slice_free_chain() to
-       g_slice_free_chain_with_offset(). implemented g_slice_free_chain() as
-       a type-safe macro as suggested in bug 323178.
-       simplified the macro implementation of g_slice_free() and implemented
-       it in a type safe manner for all compliers as suggested by Morten
-       Welinder <mortenw@gnome.org>.
-
-       * glib/gmain.c:
-       * glib/glist.c:
-       * glib/gslist.c:
-       * glib/glib.symbols: s/g_slice_free_chain/g_slice_free_chain_with_offset/
-
-2005-12-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gasyncqueue.c: Add some docs.
-
-       * tests/libmoduletestplugin_a.c: Fix compiler warnings.
-
-       * glib/gatomic.c: In the ia64 implementation, use
-       __sync builtin without _si or _di suffix.  (#321229,
-       Stanislav Brabec, patch by Andreas Schwab)
-
-2005-12-04  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gslice.h: Remove comma at the end of enum.
-
-2005-12-04  Matthias Clasen  <mclasen@redhat.com>
-
-       Handle multiple user names with the same UID better.
-       (#319535, Laszlo Peter)
-       
-       * glib/gutils.c (g_get_any_init_do): When determining user
-       data, first look up $LOGNAME. If the UID doesn't match
-       getuid(), fall back to the current behaviour of looking
-       up the user data based on getuid().
-
-2005-12-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmacros.h (G_GNUC_WARN_UNUSED_RESULT): Add a macro
-       to make gcc warn if a function result is ignored.  (#145466,
-       Arjan van de Ven, Alex Larsson)
-
-       * glib/gmem.h: Add the new attribute to g_realloc and 
-       g_try_realloc.
-
-2005-12-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: 
-       * glib/gcache.h: Deprecate g_cache_value_foreach. (#322956,
-       Nicolas Caniart)
-
-       * glib/gmappedfile.c: Make mapping of empty files
-       work.  (#321530)
-       
-       * glib/gfileutils.c: Don't fork a new process just to 
-       fix the permissions of the created temp file.  (#321318,
-       Alexis S. L. Carvalho)
-
-2005-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * README.in: Add a note about Solaris threads.
-
-       * glib/gspawn.c:
-       * configure.in: Remove support for Solaris threads. 
-       (#136971, Sebastian Wilhelmi, patch by Andrew Paprocki)
-
-2005-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Define G_GUINT64_CONSTANT in analogy to
-       G_GINT64_CONSTANT.  (#322568, Andrew Paprocki)
-
-2005-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslice.c: Win32 portability fixes and C99ism removal,
-       pointed out by Kazuki Iwamoto.  (#323052)
-       
-2005-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gatomic.c (g_atomic_int_add): Add a missing volatile for
-       the IA64 implementation.
-
-Fri Dec  2 16:18:09 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: some naming and type size fixups.
-
-Fri Dec  2 13:08:58 2005  Tim Janik  <timj@gtk.org>
-
-       * glib/gslice.h (g_slice_free): reworked GCC-specific type-safe macro
-       variant into something less verbose, but digestible for gcc-3.4.
-
-Fri Dec  2 10:55:07 2005  Tim Janik  <timj@imendio.com>
-
-       * tests/slice-test.c: extended to perform the benchmarking on the old
-       memchunk code if 'O' is selected.
-
-       * tests/memchunks.c: new file which contains the old GLib mem chunks
-       implementation with prefix old_mem_chunk_.
-
-       * tests/Makefile.am: added memchunks.c
-
-Fri Dec  2 00:16:59 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: improved gettimeofday() timer resolution by maintaining
-       acceptable load distribution of the syscall.
-       (allocator_get_magazine_threshold): reduce minimum/single-thread magazine
-       sizes to approximately page_size/2.5 to avoid excessive startup allocations.
-
-2005-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/gobject/ifacecheck.c (test_iface_base_init): Don't
-       double-free base interface members.
-
-       * tests/Makefile.am: Remove duplicate variable.
-
-Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.[hc]: new slice allocator implementation.
-
-       * tests/slice-test.c: added random slice allocation test.
-
-       * glib/gthread.[hc]: removed newly added private thread mem API.
-
-       * glib/gthreadinit.h:
-       * glib/gmessages.c:
-       * glib/gthread.c:
-       * glib/gmem.c: divided glib threading initialisation into three phases,
-       initialisation where private keys and messaging are not available (only
-       needed by gmem.c), initialisation without messaging but private keys
-       available (gslice.c, gmessage.c), and full fledged initialisers that
-       server the rest of glib. initialisation functions got renamed to reflect
-       the limitations of their corresponding phases.
-
-       * glib/gmem.c: removed memchunk code, defer allocations to 
-       g_slice_* instead.
-
-       * glib/gmem.[hc]: removed g_slice_* skeletons.
-
-       * glib/glib.symbols: added g_slice_* symbols.
-
-       * configure.in: check for availability of posix_memalign(3), memalign(3)
-       and valloc(3). 
-
-       * glib/Makefile.am: added gslice.[hc].
-
-2005-12-01  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.c (g_stat): In the Win32 implementation, strip
-       trailing slash(es) for non-root folders. stat() fails if non-root
-       folders are specified with trailing slashes. It's too much hassle
-       to demand that callers strip such slashes themselves, especially
-       as it is easy to get it wrong and strip the slash of a root
-       folder.
-       (g_rename): On NT-based Windows, use MoveFileEx() with
-       MOVEFILE_REPLACE_EXISTING to better match Unix behaviour.
-
-2005-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix G_STMT_START / G_STMT_END on Solaris.  (#321972,
-       Andrew Paprocki)
-       
-       * configure.in: Check whether do { } while (0) works.
-
-       * glib/gmacros.h: Use do { } while (0) for G_STMT_START / 
-       G_STMT_END if it works.
-       
-2005-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gthread.c (g_static_rw_lock_wait, g_static_rw_lock_signal): 
-       * glib/gnode.c (g_node_depth_traverse_level): 
-       * glib/gmem.c (g_allocator_new): 
-       * glib/ghash.c (g_hash_table_unref, g_hash_table_destroy) 
-       (g_hash_table_foreach_remove_or_steal): Silence compiler
-       warnings.
-
-2005-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gunicollate.c (g_utf8_collate_key_for_filename): 
-       Don't read beyond len.  (#322520, Christian Persch)
-
-Wed Nov 23 17:34:01 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gdataset.c: access datalist flags via atomic pointer access
-       functions, instead of acquiring the dataset lock. this is faster and
-       also matches the atomic pointer readouts in gdatalistprivate.h and
-       direct pointer modifications required by gobject.c.
-
-Wed Nov 23 13:35:31 2005  Tim Janik  <timj@gtk.org>
-
-       * glib/gdataset.c: streamlined initialization code somewhat,
-       removed GData node cache.
-
-2005-11-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/ghash.c (g_hash_table_ref): 
-       (g_hash_table_unref): Mark these as new API.
-
-       Avoid double locking in g_intern_string (#322133,
-       Benedikt Meurer)
-
-       * glib/gdataset.c (g_quark_from_string_internal): New 
-       internal function which factors out common parts of 
-       g_quark_from[_static]_string.
-       (g_quark_from_string, g_quark_from_static_string):
-       Use g_quark_from_string_internal.
-       (g_intern_string, g_intern_static_string): Use
-       g_quark_from_string_internal, and only take the
-       lock once.
-       (g_quark_new): Don't store the strings shifted by -1
-       in the g_quarks array.
-       (g_quark_to_string): Adapt to the previous change.
-
-Tue Nov 22 14:04:26 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/ghash.h: 
-       * glib/ghash.c: 
-       g_hash_table_new_full(): create hash tables with a ref count of 1.
-       g_hash_table_ref(): atomically ref_count+=1
-       g_hash_table_unref(): atomically ref_count-=1, destroys hash table
-       when refcount reaches 0.
-       g_hash_table_destroy(): just destroy keys and values, unref by 1.
-       g_hash_table_insert(): 
-       g_hash_table_replace(): assert ref_count>0.
-
-       * glib/gatomic.h: 
-       * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
-       integer pointers.
-
-2005-11-20  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
-       variables. (#321984, Andrew Paprocki)
-
-2005-11-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.0 ===
-
-       * glib/glib.symbols: Updates
-
-       * glib/gutf8.c (g_utf8_offset_to_pointer): Add some performance
-       hints to the docs. (Paolo Borelli)
-       
-       * NEWS: Updates
-
-       * glib/gthread.c (g_thread_foreach): Mark as new api.
-
-       * README.in: Updates.
-
-       * glib/glib.symbols: 
-       * glib/gdate.h: 
-       * glib/gdate.c (g_date_set_time_t): 
-       (g_date_set_time_val): Add functions to set a date from
-       a time_t and from a GTimeVal.
-       (g_date_set_time): Deprecate.  (#314067, Roger Leigh)
-       
-       * tests/Makefile.am:
-       * tests/utf8-pointer.c: Unit tests for g_utf8_pointer_to_offset
-       and g_utf8_offset_to_pointer.
-
-       * glib/gutf8.c (g_utf8_pointer_to_offset) 
-       (g_utf8_offset_to_pointer): Handle negative offsets, and use
-       "stutter stepping" for going backwards. (#320638, Larry
-       Ewing)
-
-       * glib/gbacktrace.c:
-       * glib/gdate.c:
-       * glib/gthread.c: const correctness fixes, found
-       by Arjan van de Ven and gcc.
-       
-2005-11-16  Behdad Esfahbod  <behdad@gnome.org>
-
-       * docs/reference/glib/tmpl/unicode.sgml: Correct typo on mentioning
-       @G_UNICODE_BREAK_UNKNOWN that should be #G_UNICODE_BREAK_UNKNOWN.
-
-2005-11-09  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/guniprop.c: Use bit hacks instead when checking a general
-       category value against multiple values.
-
-       * glib/gutf8.c: Change ISO10646 to Unicode in docs.
-
-2005-11-10  Simos Xenitellis  <simos@gnome.org>
-
-       * configure.in: Added tt (Tatar) to ALL_LINGUAS.
-
-2005-11-05  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c (g_io_win32_set_flags): Don't call g_warning().
-       (#320688) Instead set error and return failure.
-
-2005-11-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
-       while holding the context lock.  (#320886, Andy Wingo)
-
-2005-11-07  Billy Biggs <vektor@dumbterm.net>
-
-       * tests/refcount/Makefile.am: Add a missing reference to libglib
-       in the LDADD for this test.
-
-2005-11-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmem.c (g_allocator_new): We need to set n_preallocs to a
-       nonzero value, otherwise GTK+ 2.8 breaks when compiled against
-       GLib 2.9.  (#320755, Luca Ferretti)
-
-2005-11-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/Makefile.am: Apply a patch from Behdad Esfahbod to 
-       use a faster lookup table for g_unichar_get_mirror_char().
-       * glib/gmirroringtable.h: The new table.
-       * glib/gunichartables.h: Remove bidi_mirroring_table.
-       * glib/gen-unicode-tables.pl: Don't generate the mirroring
-       table.
-       * glib/glib-mirroring-tab/*: Sources for the program
-       which generated gmirroringtable.h.
-
-       * glib/glist.c: Avoid some code duplication.
-
-       * glib/gscanner.h: Include gdataset.h.  (#320322)
-
-       * glib/gdebug.h: add new GDebugFlag for fatal_criticals
-       * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
-       to help find critical warnings in applications.  (#320017,
-       Vincent Untz)
-
-2005-11-02  Tor Lillqvist  <tml@novell.com>
-
-       * glib/glib.symbols: Remove large amount of trailing whitespace
-       from one line. Remove #ifdef G_UNDEFINED from around
-       g_hash_table_new and g_hash_table_new_full symbols, what was the
-       purpose of that? Add the g_slice functions.
-
-Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
-       added g_slice_*() API to allocate and cache small bits of memory.
-       an actuall allocator implementation for g_slice_*() is still pending.
-
-       * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
-       changed GRealThread list to use in-structure *next; fields instead
-       of GSList, in order for thread iteration to not depenend on g_slice_*()
-       indirectly.
-       _g_thread_mem_private_get():
-       _g_thread_mem_private_set(): added accessors for private memory,
-       needed because the ordinary GPrivate implementation relies on GArray
-       and GSList and therefore indirectly on working g_slice_*() allocations.
-
-       * glib/gthread.[hc]:
-       g_thread_foreach(): new public API function to loop over all existing threads.
-
-       * glib/gdataset.c:
-       * glib/gstring.c:
-       * glib/gcache.c:
-       * glib/garray.c: 
-       * glib/gqueue.c:
-       * glib/gslist.c:
-       * glib/glist.c:
-       * glib/ghash.c:
-       * glib/gtree.c:
-       * glib/ghook.c:
-       * glib/gmain.c:
-       * glib/gnode.c:
-       removed GAllocator and free list usages and accompanying locks.
-       use g_slice_*() API to allocate and cache small bits of memory.
-
-       * glib/ghook.h: removed GMemChunk field from public API.
-
-       * glib/gslist.h:
-       * glib/glist.h: deprecate allocator API, provide _free1() for consistency.
-
-       * glib/gnode.h: deprecate allocator API.
-
-       * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
-       be used for poll rec lists.
-
-       * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
-       g_relation_destroy(): free all tuples from the all_tuples hash table,
-       this effectively maintains the life time track keeping of tuples.
-       g_relation_delete_tuple(): free tuples which are removed from the
-       all_tuples hash table. this fixes a temporary leak that was present
-       in the memchunk code until the destruction of the relation.
-
-2005-10-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/convert-test.c: Add some tests for conversions between
-       UTF-8, UCS-4 and UTF-16.
-
-       * glib/gutf8.c (g_utf8_to_ucs4, g_utf8_to_utf16): Fix handling
-       of len == -1, noticed by Morten Welinder.
-
-2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>
-
-       * configure.in: Added ku (Kurdish) to ALL_LINGUAS
-
-2005-10-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutf8.c (g_ucs4_to_utf8): Don't set items_read twice
-       in the error case, and add some documentation.  (#319806, Morten
-       Welinder)
-
-2005-10-19  Manish Singh  <yosh@gimp.org>
-
-       * configure.in: Use AC_CHECK_FUNCS for _NSGetEnviron, to get the
-       config.h symbol automatically. Fixes bug #313731.
-
-2005-10-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c (g_win32_get_package_installation_directory):
-       Return a g_strdup()ed copy of the value stored in the hash table,
-       so that it can be g_free()d without leaving a dangling pointer in
-       the hash table. (#319232)
-
-2005-10-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
-       all-zero sequences correctly.  (#317930, Sebastien Bacher)
-
-2005-10-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c (g_markup_escape_text): Doc addition
-
-       * Makefile.am: Add Collation tests.
-
-       * tests/collate/*: Inputs and expected outputs for collation tests.
-
-       * tests/run-collate-tests.sh: Script to run collation tests.
-
-       * tests/unicode-collate.c (main): Rework slightly to make
-       it usable in unit tests. Also test g_utf8_collate_key_for_filename().
-
-2005-10-01  Behdad Esfahbod  <behdad@gnome.org>
-
-       * docs/reference/glib/tmpl/unicode.sgml:
-       * glib/gen-unicode-tables.pl:
-       * glib/gunibreak.h:
-       * glib/gunichartables.h:
-       * glib/gunicode.h:
-       * tests/casefold.txt:
-       * tests/casemap.txt: Updated to Unicode 4.1.  There are five new
-       GUnicodeBreakType types.  That may break some applications, like
-       Pango <= 1.10.
-
-2005-09-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c (g_ascii_strtoull): Add details to the 
-       docs.  (#314393, Matthew F. Barnes)
-
-       * glib/glib.symbols:
-       * glib/gprintf.h: Remove g_snprintf() and g_vsnprintf(), since
-       they are already declared in glib.h. This doesn't break documented
-       use of gprintf.h, but should probably be pointed out in the 
-       release notes for 2.10. (#314232, Behdad Esfahbod)
-
-Tue Sep 20 13:16:04 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gpattern.c (g_pattern_ph_match): applied significant recursion
-       complexity optimization, based on a patch from Matthias Clasen.
-
-       * tests/patterntest.c: more tests, mostly from matthias.
-
-2005-09-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gqueue.c (g_queue_insert_sorted): Correct the docs.
-       (#316703, Mark Drago)
-
-Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/gpattern.c: applied a patch from matthias which checks on the
-       upper bound of GPatternSpec length to optimize matches.
-       cosmetic fixups.
-
-       * tests/patterntest.c: added more match cases.
-
-2005-09-16  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
-       warning to doc comment that these functions should not be used on
-       encodings like CP932.
-
-2005-09-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/keyfile-test.c: Add a test for grup names of length 1.
-
-       * glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
-       of length 1.  (#316309)
-       
-2005-09-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c (g_markup_escape_text): Clarify docs.
-
-2005-09-11  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * tests/refcount/Makefile.am (INCLUDES): Link the the refcount
-       tests to the system thread library $(G_THREAD_LIBS). Fixes #313744
-       and #314217.
-
-2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
-       (child_watch_helper_thread): Remove some dead code. Closes
-       bug #315278.
-
-2005-09-07  Tor Lillqvist  <tml@novell.com>
-
-       * glib/Makefile.am: Create also a console version of the
-       gspawn-win32-helper program, gspawn-win32-helper-console.exe.
-       It's otherwise identical to gspawn-win32-helper.exe, except marked
-       as a console application (linked without the -mwindows option).
-       
-       * glib/gspawn-win32.c (do_spawn_directly, do_spawn_with_pipes):
-       Drop the dont_wait parameter. Its truth value correlated 100% with
-       the NULLness of the exit_status parameter anyway, so it's enough
-       to check whether exit_status is NULL. Invert the sense of the
-       dont_return_handle parameter and rename it to do_return_handle, to
-       make the code easier to read by avoiding double negations.
-
-       (g_spawn_sync_utf8, g_spawn_async_with_pipes_utf8): Modify calls
-       to do_spawn_with_pipes() accordingly.
-
-       (do_spawn_with_pipes): If we have a console, use the console
-       version of the helper program, otherwise use the GUI one. This
-       avoids extra console windows opening up in some situations. (In
-       case a console application uses the GUI gspawn-win32-helper.exe to
-       spawn another console application we would get a separate console
-       for the spawned console application).
-
-       * glib-zip.in: Distribute also gspawn-win32-helper-console.exe.
-
-2005-09-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmappedfile.c (g_mapped_file_new): Report an error
-       if the file is too large.  (#315275, Kjartan Maraas)
-
-       * glib/gkeyfile.c (g_key_file_load_from_fd): The return value
-       of read() is signed.  (#315273, Kjartan Maraas)
-       
-2005-08-31  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where
-       the EXE and each DLL have their own atexit function chains.
-
-       #define g_atexit as atexit instead. This means it has a
-       better chance of doing what the caller wants. For instance,
-       gtkhtml calls g_atexit() registering a function in gtkhtml
-       itself. This caused a crash when g_atexit() was implemented as a
-       function in the GLib DLL. The gtkhtml DLL was already unloaded by
-       the time the GLib DLL got unloaded.
-
-       * glib/gutils.c: #undef the #define mentioned above, to also get a
-       real g_atexit() into the DLL for backward compatibility. Document
-       the Windows behaviour of g_atexit(), and document the varying ways
-       atexit() can behave in the context of dynamically loaded modules
-       on Unix.
-
-2005-08-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: 
-       * glib/gquark.h: 
-       * glib/gdataset.c: Add string interning functions.
-
-2005-08-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/giochannel.c: Unify some near-duplicate strings. (#314654,
-       Clytie Siddall)
-       
-2005-08-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version to 2.9.0
-
-2005-08-25  Tor Lillqvist  <tml@novell.com>
-
-       Make also the g_spawn*() functions take parameters in the GLib
-       file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
-       API or ABI. Like the other GLib API that was earlier changed to
-       use UTF-8 on Windows, the names of the functions that take UTF-8
-       have _utf8 suffixes added by using preprocessor macros in the
-       header file. The old names are kept for functions with the old
-       behaviour, taking parameters in the system codepage, for DLL ABI
-       stability.
-       
-       * glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
-       g_spawn*() functions.
-       
-       * glib/gspawn-win32.c: Use wide-char API on NT-based
-       Windows. Convert parameters from UTF-8 to wide chars (NT) or
-       system codepage (Win9x) and call the C library _wspawn*() or
-       spawn*() functions respectvely. Add DLL ABI stability versions
-       that take parameters in the system codepage.
-
-       * glib/gspawn-win32-helper.c: On NT-based Windows use the
-       wide-char versions of argv and envp, and use wide-char API to
-       change directory and spawn the program to run. Remove the verbose
-       debugging output, it was too complex to modify for the wide-char
-       features. (Just add temporary debugging printouts if needed, no
-       need to have them permanently in the source.)
-
-       * glib/gspawn.c: Corresponding documentation updates.
-
-       * glib/glib.symbols: Corresponding changes: Mark the ABI stability
-       symbols as PRIVATE, add the new _utf8-suffixed ones.
-
-2005-08-24  Stepan Kasal  <kasal@ucw.cz>
-
-       * glib/gtypes.h (G_MININT64): Cast the constant to gint64; it is
-       guint64 otherwise and that can produce warnings about comparison
-       between signed and unsigned.
-
-2005-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c: Fix the crt_externs.h include.
-
-2005-08-23  Stepan Kasal  <kasal@ucw.cz>
-
-       * NEWS: Fix spelling of my first name.
-
-2005-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * Bump version
-
-       * === Released 2.8.1 ===
-
-       * NEWS: Updates
-
-2005-08-20  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : link with ws2_32.lib
-
-2005-08-18  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Check for <sys/wait.h>
-
-       * glib/gbacktrace.c: Include <sys/wait.h> on if HAVE_SYS_WAIT_H.
-
-2005-08-18  Ross Burton  <ross@burtonini.com>
-
-       * glib/gstring.c:
-       Optimise single-character insertions.
-       
-       * glib/gutf8.c:
-       Note copied code.
-       
-       * tests/string-test.c:
-       Add tests for new optimisation, and fix a leak.
-
-2005-08-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Check for crt_externs.h and _NSGetEnviron.
-
-       * glib/gutils.c: On Darwin, include crt-externs.h and
-       define environ using _NSGetEnviron().  (#313731)
-
-2005-08-16  Stepan Kasal  <kasal@ucw.cz>
-
-       * glib/gutils.c (g_get_any_init): Move the body of the big if...
-       (g_get_any_init_do): ... to this new function.
-       (g_get_any_init): Declare as inline.
-       (g_get_any_init_locked): New inline function, does the locking.
-       Make use of these two throughout the code.
-
-2005-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
-       the child process and then simply return. This makes 
-       The "S" option work as documented in g_on_error_query().
-       (#313125, Matthew F. Barnes)
-
-       * glib/gunicode.h: Update the link to Unicode category
-       values.  (#313369, Behnam Esfahbod)
-
-       * glib/gqueue.c (g_queue_find_custom): Clarify docs
-       a little.  (#311727, Tristan van Berkom)
-
-       * glib/abicheck.sh, gobject/abicheck.sh: Make the 
-       check work on ia64 too, where some symbols ended up 
-       in yet another section.
-
diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12
deleted file mode 100644 (file)
index b88cdd2..0000000
+++ /dev/null
@@ -1,738 +0,0 @@
-2006-08-22  Matthias Clasen <mclasen@redhat.com>
-
-       * Branch for 2.12
-
-2006-08-20  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gnulib/vasnprintf.c (vasnprintf): Fix crash when printing
-       large 64-bit values on Win32 using the %I64x format. (#351034,
-       Neil Piercy)
-
-Wed Aug 16 13:59:07 2006  Tim Janik  <timj@gtk.org>
-
-       * tests/gobject/Makefile.am:
-       * tests/gobject/singleton.c: added test program which demonstrates
-       and checks singleton construction.
-
-2006-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbookmarkfile.c (g_bookmark_file_get_groups):
-       * glib/gmain.c (g_source_is_destroyed): Add Since tags.
-       * glib/gkeyfile.c (g_key_file_get_double_list): Fix
-       Since tag.  (#351583, Brian Cameron)
-
-       * configure.in: Bump version
-
-       * === Released 2.12.2 ===
-
-       * NEWS: Updates
-
-2006-08-08  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gbookmarkfile.c (g_bookmark_file_remove_group)
-       (g_bookmark_file_set_app_info): Plug a couple of leaks
-       when removing data from a bookmark.
-
-2006-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbookmarkfile.c (find_file_in_data_dirs): Correct the
-       grammar of an error message.  (#349792, Jakub Friedl)
-
-       * glib/gkeyfile.c (g_key_file_to_data): Don't insert unnecessary
-       newlines in keyfiles.  (#349825, Chris Wilson)
-
-       * glib/guniprop.c (g_unichar_toupper, g_unichar_tolower) 
-       (real_toupper, real_tolower): If a character can't be converted,
-       don't replace it with a NUL byte, but leave it unchanged.  
-       (#348491, Nikolai Weibull)
-
-       * tests/unicode-caseconv.c: Adapt to this change. 
-
-       * tests/unicode-caseconv.c (main): Add a comment to point out
-       a quirk in the test data that we are working around here.
-
-2006-07-31  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/guniprop.c (g_unichar_isxdigit): Make it only accept those
-       characters that we accept i g_unichar_xdigit_value(), i.e. don't
-       accept non-decimal digits. (#347842, Nikolai Weibull)
-
-2006-07-31  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gunidecomp.c (_g_utf8_normalize_wc): Update to reflect Unicode
-       PR #29 (#348694, Nikolai Weibull)
-
-       * tests/unicode-normalize.c (encode), (test_form): Make output more
-       useful, reporting the unexpected output of the test.
-
-2006-07-24  Tor Lillqvist  <tml@novell.com>
-
-       * tests/slice-test.c: Use g_get_current_time() insted of
-       gettimeofday().
-
-2006-07-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.12.1 ===
-
-       * glib/gconvert.c: Fix the prototype of _g_charset_get_aliases.
-       (#346494, Thomas Klausner)
-
-       * NEWS: Updates
-
-2006-07-21  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gmirroringtable.h: Updated to Unicode Character Database 5.0.0.
-
-2006-07-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/guniprop.c (real_toupper, real_tolower): Small optimization.
-       (#348011, Nikolai Weibull)
-
-2006-07-19  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gunibreak.h:
-       * glib/gunichartables.h:
-       * glib/gunicomp.h:
-       * glib/gunidecomp.h:
-       Update to final Unicode Character Database 5.0.0. (#336281)
-
-2006-07-06  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gutils.c (g_parse_debug_string): When matching debug flag keys, 
-       ignore case and accept any of comma, colon, semicolon, space, and tab
-       as separators.  Also, match dash with underscore.
-
-2006-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbase64.c: Fix typos in the docs.  (#346660, Mark
-       Drago)
-
-2006-07-03  Runa Bhattacharjee <runabh@gmail.com>
-
-       * configure.in: Added Bengali India (bn_IN) in ALL_LINGUAS.
-
-2006-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.12.0 ===
-
-2006-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-       * configure.in: Set version to 2.12.0
-
-2006-06-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtimer.c (mktime_utc): Fix an off-by-2 error
-       in the leap year calculation.  (#344905, Dan Winship)
-
-       * tests/testglib.c (main): Change the test data for
-       the g_time_val_from_iso8601 tests to expose an off-by-2
-       error in the leap year calculation.
-
-       * configure.in: Bump version
-
-       * === Released 2.11.4 ===
-
-       * NEWS: Updates
-
-2006-06-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/file-test.c (test_mkstemp): Add tests.
-
-       * glib/gfileutils.c (g_mkstemp): Allow the XXXXXX to occur
-       inside the template, not just at the end.  
-
-2006-06-14  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/gkeyfile.c (g_key_file_to_data): Separate groups by
-       an empty line  (#344868, Christian Persch)
-
-2006-06-14  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (g_listenv): Add Windows notes to doc comment.
-
-2006-06-12  Emmanuele Bassi  <ebassi@cvs.gnome.org>
-
-       * glib/gbookmarkfile.h:
-       * glib/gbookmarkfile.c (g_bookmark_file_remove_item): Return
-       a boolean instead of void.
-
-       * tests/bookmarkfile-test.c (test_modify): Add a test case
-       for g_bookmark_file_remove_item().
-
-2006-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * Bump version
-
-       * === Released 2.11.3 ===
-
-       * NEWS: Updates
-
-2006-06-09  Emmanuele Bassi  <ebassi@cvs.gnome.org>
-
-       * glib/gbookmarkfile.c (g_bookmark_file_remove_application): Use
-       an empty string to pass the test in set_app_info.
-
-       (g_bookmark_file_move_item): Remove the old item from the
-       look up table; return success in case of empty target.
-
-2006-06-08  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gunicollate.c (msc_strxfrm_wrapper): Workaround for bug in
-       strxfrm() in Microsoft's newer C runtimes. (#343919, Kazuki
-       Iwamoto)
-
-2006-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.11.2 ===
-
-       * configure.in: Set interface age to 0.
-
-       * NEWS: Updates
-
-       * glib/gmain.c: Fix some doc formatting issues.
-
-       * glib/gstrfuncs.c: Revert accidental commit.
-
-       * glib/gmain.c (get_dispatch): Don't leak the
-       dispatch struct.  (#321886)
-
-       * tests/strtod-test.c: Add some tests involving
-       leading whitespace.
-
-       * glib/gstrfuncs.c (g_ascii_formatd): Skip leading 
-       whitespace.  (#343899, Øystein Johansen)
-
-2006-06-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmain.h: 
-       * glib/gmain.c: Add three new functions, 
-       g_main_current_source, g_source_set_funcs and 
-       g_source_is_destroyed, that will be necessary to 
-       solve thread-safety issues with idles in GTK+.  
-       (#321886, Chris Wilson)
-
-2006-06-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/giochannel.c (g_io_channel_write_chars): Avoid
-       running in an assertion with small writes.  (#343566, Chris
-       Wilson)
-
-       * tests/iochannel-test.c: Add a testcase for small writes.
-
-       * glib/glib.symbols: 
-       * glib/ghash.h: 
-       * glib/ghash.c: Add g_hash_table_{remove,steal}_all to
-       remove all nodes from a hash table.  (#168538, Matt Barnes)
-
-2006-06-01  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gkeyfile.c (g_key_file_to_data),
-       (g_key_file_parse_value_as_comment),
-       (g_key_file_parse_comment_as_value):
-       * glib/gscanner.c (g_scanner_get_token_ll): Cleanup. Use return
-       value of g_string_free(...). (#343548, Chris Wilson)
-
-2006-05-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c (g_markup_parse_context_parse): 
-       Don't use g_str_has_{prefix,suffix} here.
-
-2006-05-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.h: Add a GMarkupParseFlags flag for
-       treating CDATA as text. 
-
-       * glib/gmarkup.c (g_markup_parse_context_parse): 
-       Implement it here.
-
-2006-05-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/markups/expected-*: Output that test-markup
-       is expected to produce when run on the valid gmarkup 
-       examples.
-
-       * tests/markup-test.c: Only dump the results of the
-       first, unchunked parse, to compare it against the expected
-       output. 
-
-       * tests/run-markup-tests.sh: For valid examples, compare
-       the output of test-markup against the corresponding
-       expected-<n> file.
-       
-2006-05-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Don't compile timeloop on Minix. 
-       (Leonard den Ottolander)
-
-2006-05-22  Sebastian Wilhelmi  <wilhelmi@google.com>
-
-       * glib/gthread.c (g_thread_init_glib): Run _g_atomic_thread_init
-       as the first of the full fledged initializers to allow the later
-       to potentially use atomic ints (which they currently do
-       not). (#342563, Peter Kjellerstedt)
-
-2006-05-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/Makefile.am: 
-       * tests/strtoll-test.c: Add tests for g_ascii_strtoll()
-       and g_ascii_strtoull().
-
-       * glib/glib.symbols:
-       * glib/gstrfuncs.h: 
-       * glib/gstrfuncs.c (g_ascii_strtoll): New function to
-       parse signed 64bit integers like strtoll does.  
-
-       * glib/goption.c (parse_int64): Use g_ascii_strtoll(),
-       since strtoll() is C99 and not available on some
-       systems.  (#341826, Kazuki Iwamoto)
-
-2006-05-15  Matthias Clasen  <mclasen@redhat.com>
-       
-       * configure.in: Bump version
-
-       * === Released 2.11.1 ===
-
-       * NEWS: Updates
-
-2006-05-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/grel.c: Fix several cases of deref-before-NULL-check.
-       (#341191, Pascal Terjan)
-
-       * glib/glib.symbols: 
-       * glib/goption.h: 
-       * glib/goption.c: Allow optional summary and description
-       texts before and after the option descriptions, and add
-       a way to translate them.  (#336120, Behdad Esfahbod)
-
-2006-05-12  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c (g_io_win32_sock_set_flags): Implement
-       setting/clearing G_IO_FLAG_NONBLOCK for channels attached to
-       sockets. (#341192)
-       (g_io_win32_unimpl_set_flags): set_flags method for the
-       unimplemented case.
-       
-2006-05-11  Bastien Nocera  <hadess@hadess.net>
-
-       * glib/goption.c: (parse_int64), (parse_arg), (free_changes_list):
-       * glib/goption.h:
-       * tests/option-test.c: (arg_test6), (main): add an int64 type for
-       GOption (G_OPTION_ARG_INT64) (#341237)
-
-2006-05-10  Sebastian Wilhelmi  <wilhelmi@google.com>
-
-       * glib/gthread.h, gthread/gthread-impl.c: Make the magic and
-       location arguments to the error-checking-mutex functions const and
-       do not write to them, as we might not own them. Clean up the
-       error-checking-mutex code quite a bit. (#335198, Chris Wilson)
-
-       * glib/gthread.c: Use g_atomic_pointer_set instead of old
-       homegrown version now that we have it. (#335198, Chris Wilson)
-
-       * gthread/gthread-posix.c, gthread/gthread-win32.c: Prevent
-       calling into g_cond_wait resp. g_mutex_lock/unlock directly to
-       avoid recursions into the errorcheking mutex code (and out of
-       principle anyway). (#335198, Chris Wilson)
-
-       * tests/errorcheck-mutex-test.c: Adapt to GLib coding standards.
-
-2006-05-09  Sebastian Wilhelmi  <wilhelmi@google.com>
-
-       * glib/gthreadinit.h: Renamed to glib/gthreadprivate.h and moved
-       system thread identifier comparision and assignment macros from
-       glib/gthread.c to glib/gthreadprivate.h.
-
-       * glib/Makefile.am, glib/gatomic.c, glib/gconvert.c, glib/gmain.c,
-       glib/gmem.c, glib/gmessages.c, glib/grand.c, glib/gslice.c,
-       glib/gthread.c, glib/gutils.c, gthread/gthread-impl.c: Use
-       glib/gthreadprivate.h instead of glib/gthreadinit.h.
-
-       * gthread/gthread-impl.c: Use GSystemThread instead of GThread for
-       owner determination. (#311043, jylefort@FreeBSD.org)
-
-       * tests/Makefile.am, tests/errorcheck-mutex-test: New test program
-       to test for all checked violations.
-
-       * glib/gprintf.c, glib/gspawn-win32.c, glib/gutf8.c,
-       gthread/gthread-impl.c, gthread/gthread-posix.c,
-       gthread/gthread-win32.c: Use canonical include form for internal
-       headers. config.h is always there.
-
-       * Remove obsolete gthread/gthread-solaris.c.
-
-2006-05-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/convert-test.c (test_one_half): Use encoding names which 
-       may work better on Solaris.  (#340434, Alessandro Vesely)
-
-       * tests/keyfile-test.c (test_number): Add some tests for
-       invalid floating point numbers.
-
-       * glib/gkeyfile.c (g_key_file_parse_value_as_double): Return
-       an error for the empty string.  (#339105, Morten Welinder)
-
-       * glib/gscanner.c (g_scanner_config_template): Make const,
-       noticed by Kjartan Maraas.
-
-2006-05-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_set_string_list)
-       (g_key_file_set_locale_string_list): Fix invalid memory
-       reads.  (#340816, Nick Treleaven)
-
-2006-05-04  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/gbase64.c: (g_base64_decode_step):
-       Fix OOB write (#340538)
-
-2006-05-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/base64-test.c: Add some more tests.
-
-       * glib/gbase64.c (g_base64_decode_step): Avoid writing
-       beyond the guaranteed lenght of the output buffer, if
-       there is padding.
-
-       * tests/base64-test.c (test_incremental): Use malloced memory
-       instead of stack-allocated, so that MALLOC_CHECK_=2 catches
-       the OOB write...
-
-       * glib/gbookmarkfile.c (g_bookmark_file_load_from_data): Remove
-       an overzealous return_if_fail check that causes make check to 
-       fail.
-
-2006-05-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-       
-       * === Released 2.11.0 ===
-
-       * NEWS: Updates
-
-       * tests/casemap.txt: 
-       * tests/casefold.txt: Regenerate from Unicode 5.0 data. 
-
-       * glib/guniprop.c: Make interval_compare static.
-
-Tue May  2 15:00:00 2006  Tim Janik  <timj@gtk.org>
-
-       * tests/gobject/deftype.c: added test code from Behdad Esfahbod, 
-       see #337128.
-
-Tue May  2 14:18:25 2006  Tim Janik  <timj@gtk.org>
-
-       * glib/goption.c (g_option_context_parse): fixed leak in short
-       option parsing. rewrote parts of the code to be more concise to
-       enhance readability. fixed exaggerated uses of strlen.
-
-2006-04-28  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/guniprop.c: #include <stdlib.h>
-
-2006-04-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Add g_unichar_iswide_cjk.
-       * glib/guniprop.c: Add a "Since: 2.12".
-
-       * NEWS: Updates
-
-2006-04-27  Behdad Esfahbod  <behdad@gnome.org>
-
-       * docs/reference/glib/glib-sections.txt,
-       * glib/gunicode.h glib/guniprop.c: Implement g_unichar_iswide_cjk().
-       (#105626)
-
-2006-04-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbookmarkfile.c (g_bookmark_file_set_description) 
-       (g_bookmark_file_set_title, g_bookmark_file_set_icon): 
-       Remove some special-casing of empty string which led to 
-       dangling pointers.  (#339337, Morten Welinder)
-       (expand_exec_line): Don't use printf() needlessly, handle
-       trailing '%' gracefully.  (#339338, Morten Welinder)
-       (is_element_full): Silence the compiler.
-       (g_bookmark_file_dump, bookmark_metadata_dump): 
-       (bookmark_app_info_dump): Escape strings before dumping 
-       them in xml.  (#339340, Morten Welinder)
-
-2006-04-27  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gunibreak.h, glib/gunichartables.h: Regenerated using
-       Unicode Character Database 5.0 beta.
-
-2006-04-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/grand.c (g_rand_new): Don't repeat a failed fclose()
-       call, since that invokes undefined behaviour.  (Coverity)
-
-2006-04-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbookmarkfile.c (is_element_full): Avoid a possible
-       NULL dereference (found by Coverity), also avoid some 
-       pointless strdups.
-
-       * tests/keyfile-test.c (test_comments): Add a test for
-       the previous change.
-
-       * glib/gkeyfile.c (g_key_file_lookup_group_node): Remove
-       redundant code.
-       (g_key_file_get_group_comment): Don't dereference before
-       checking for NULL.  (#338572, Coverity, Pascal Terjan)
-
-2006-04-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdataset.c: Add some missing Since: 2.8 tags.
-
-2006-04-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gatomic.c: Adapt to the changed prototype of
-       InterlockedCompareExchange() in newer SDKs. Use
-       InterlockedCompareExchangePointer() when applicable. (#155884,
-       John Ehresman)
-
-2006-04-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.h:
-       * glib/glib.symbols:
-       * glib/gkeyfile.c: Add api to get and set doubles and 
-       lists of doubles.  (#164719, Maurizio Monge, Dom Lachowicz)
-
-       * tests/keyfile-test.c: Add tests for new api.
-
-       * glib/gkeyfile.c (g_key_file_add_group): Accept duplicate
-       groups.  (#157877, Sebastien Bacher)
-
-       * tests/keyfile-test.c: Add tests for duplicate key and
-       duplicate group handling.
-
-2006-04-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gcompletion.c (g_completion_complete_utf8): Make passing
-       NULL for new_prefix work as documented.  (#338845, Yevgen Muntyan)
-
-       * tests/completion-test.c: Test that passing NULL for 
-       new_prefix in g_completion_complete_utf8 works.
-
-2006-04-17  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * configure.in: Remove obsolete entry for no_NO.
-       * po/no.po: And the translation.
-
-2006-04-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdate.c (g_date_fill_parse_tokens): Avoid an array
-       overrun.  (Coverity, fix by Pascal Terjan)
-
-2006-04-12  Bastien Nocera  <hadess@hadess.net>
-
-       reviewed by: Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gconvert.c: add more details about which RFC is concerned
-       when using g_filename_to_uri (#337553)
-
-2006-04-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (parse_arg): Add an assert to make it
-       clear when value can be NULL.
-
-2006-04-07  Martyn Russell  <martyn@imendio.com>
-
-       * tests/threadpool-test.c: (test_thread_stop_unused): Removed an
-       assertion which can fail and is not a critical test.
-
-2006-04-07  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : added gbase64.obj and derive the static libs
-       name from auto* variables
-       * glib/makefile.msc.in : link user32.lib for MessageBox()
-
-2006-04-07  Martyn Russell  <martyn@imendio.com>
-
-       * glib/gasyncqueue.[ch]: Added private API
-       _g_async_queue_get_mutex so that g_thread_pool_free() can use the
-       async queue mutex. 
-       
-       * glib/gthreadpool.c: Make sure
-       g_thread_pool_stop_unused_threads() actually stops unused threads
-       and global limits (like max idle time and max unused threads) can
-       be set without creating a thread pool first. Fixed #335215 (patch
-       from Chris Wilson).  
-       
-       * tests/threadpool-test.c: Added two new tests, tests setting
-       global limits before creating a thread pool. The second test
-       makes sure unused threads are actually stopped when using the
-       g_thread_pool_stop_unused_threads(). 
-
-2006-04-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gnulib/vasnprintf.c (vasnprintf): Make
-       long long printing work if snprintf is not 
-       available.  (#332841, Michael McDonald)
-
-2006-04-05  Behdad Esfahbod  <behdad@gnome.org>
-
-       * tests/option-test.c: Check the return value of g_get_prgname for
-       NULL before passing to strcmp.
-
-       * tests/slice-test.c: Report the correct name in Usage summary.
-
-2006-04-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/run-collate-tests.sh: Fix up shell script.
-
-       * tests/option-test.c (arg_test5): Skip the test if
-       setting the locale fails.
-       (empty_test1): Reset prgname before the test.
-
-       * tests/Makefile.am: Arrange for run-bookmark-test.sh
-       to be run by make check.
-
-       * tests/utf8-pointer.c: 
-       * tests/tree-test.c: Silence warnings.
-
-2006-04-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/gbase64.[hc]: Add G_GNUC_MALLOC where
-       appropriate, use glib types.
-
-2006-04-04  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/Makefile.am:
-       * glib/gbase64.[ch]:
-       * glib/glib.symbols:
-       Add base64 encode/decode functions
-       
-       * glib/glib.h:
-       Include gbase64.h
-       
-       * tests/Makefile.am:
-       * tests/base64-test.c:
-       Tests for base64 functions
-
-2006-04-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdate.c: Move short_month_names and long_month_names
-       to bss.
-
-       * glib/gspawn-win32.c (g_spawn_error_quark):
-       * glib/gspawn.c (g_spawn_error_quark):
-       * glib/gshell.c (g_shell_error_quark):
-       * glib/gmarkup.c (g_markup_error_quark):
-       * glib/goption.c (g_option_error_quark):
-       * glib/gkeyfile.c (g_key_file_error_quark):
-       * glib/giochannel.c (g_io_channel_error_quark):
-       * glib/gfileutils.c (g_file_error_quark):
-       * glib/gconvert.c (g_convert_error_quark):
-       * glib/gbookmarkfile.c (g_bookmark_file_error_quark):
-       * glib/gthread.c (g_thread_error_quark): No point in making
-       the error path fast by caching quarks.
-
-       * glib/gbookmarkfile.c: Make the parser struct const.
-
-2006-04-04  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gbookmarkfile.c: Fix accidentally broken build.
-
-2006-04-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbookmarkfile.c: Don't include sys/time.h  (#337027,
-        Kazuki IWAMOTO)
-
-2006-03-31  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.c (g_remove): Revert change below. It wasn't a good
-       idea after all, says the original bug reporter. See bug for
-       discussion.
-
-2006-03-30  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.c (g_remove): [Win32] call rmdir() only if remove()
-       fails with errno set to ENOENT, to leave errno set to EACCESS if
-       that is the problem. (#334799, Yevgen Muntyan)
-
-2006-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbookmarkfile.c (g_bookmark_file_get_app_info): Sync
-       the parameter names with the .h files, otherwise gtk-doc
-       misbehaves.
-
-2006-03-27  Emmanuele Bassi  <ebassi@cvs.gnome.org>
-
-       * tests/.cvsignore: Add bookmarkfile-test to the ignored files.
-
-2006-03-27  Emmanuele Bassi  <ebassi@cvs.gnome.org>
-
-       * tests/Makefile.am:
-       * tests/bookmarkfile-test.c:
-       * tests/run-bookmark-test.sh:
-       * tests/bookmarks/*.xbel: Add test suite for GBookmarkFile.
-
-2006-03-27  Emmanuele Bassi  <ebassi@cvs.gnome.org>
-
-       * docs/reference/glib/glib-docs.sgml:
-       * docs/reference/glib/glib-sections.txt:
-       * docs/reference/glib/tmpl/bookmarkfile.sgml: Add documentation for
-       GBookmarkFile to GLib's reference guide.
-
-2006-03-27  Emmanuele Bassi  <ebassi@cvs.gnome.org>
-
-       * glib/glib.h:
-       * glib/gbookmarkfile.h
-       * glib/gbookmarkfile.c: Add GBookmarkFile, a parser for files
-       containing bookmarks stored using the Desktop Bookmark
-       specification. Fixes bug #327662.
-
-       * glib/glib.symbols:
-       * glib/Makefile.am:
-       * glib/makefile.msc.in:
-       * glib/makefile.mingw.in: Build glue for GBookmarkFile.
-
-2006-03-27  Dom Lachowicz  <cinamod@hotmail.com>
-
-       * tests/option-test.c: Copy-and-paste error slipped into test5. Enable
-       test5, as per Matthias' comments in bug 329548#c11.
-
-       Change a gboolean to an int. Fixes bug #329789.
-
-       * configure.in: Bump version number to 2.11.0
-       
-2006-03-27  Matthias Clasen  <mclasen@redhat.com>
-
-       Add support for floating point numbers to goption.
-       (#329548, Behdad Esfahbod, patch by Antoine Dopffer and 
-        Dom Lachowicz)
-
-       * glib/goption.h:
-       * glib/goption.c: Support double arguments.
-
-       * tests/option-test.c: Test double arguments.`
-
-2006-03-26  Matthias Clasen  <mclasen@redhat.com>
-
-        * glib/goption.c (g_option_context_new): Improve the description
-        of parameter_string in the docs.  (#336085, Claudio Saavedra)
-
-2006-03-24  Martyn Russell  <martyn@imendio.com>
-
-       * glib/gthreadpool.c: Updated the documentation to explain that
-       when the maximum threads is > 1 the sort functionality is not 100%
-       accurate due to the ramdom nature of the scheduler choosing which
-       threads to execute. Fixes bug #334943.
-
-       * tests/threadpool-test.c: Disabled the debugging by default and
-       fixed the sort test to set the maximum threads to 1 to guarantee
-       the thread entry function is called in order. 
-
-2006-03-23  Matthias Clasen  <mclasen@redhat.com> 
-
-       === Branch for 2.10 ===
diff --git a/ChangeLog.pre-2-14 b/ChangeLog.pre-2-14
deleted file mode 100644 (file)
index 3a94a19..0000000
+++ /dev/null
@@ -1,1963 +0,0 @@
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       === Branch for 2.14 ===
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gspawn.c (g_spawn_async_with_pipes): Slightly improve
-       the wording of the docs.  (#492677, Areg Beketovski)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/pcre/Makefile.am: Add an include to fix builddir != srcdir
-       builds.  (#494602, Yevgen Muntyan)
-
-2007-11-07  Tor Lillqvist  <tml@novell.com>
-
-       * glib/update-pcre/notdll.patch: Not needed, just use -DPCRE_STATIC.
-
-       * glib/update-pcre/Makefile.am: Drop notdll.patch.
-
-       * glib/update-pcre/Makefile.am-1
-       * glib/update-pcre/update.sh
-       * glib/pcre/Makefile.am
-       * glib/Makefile.am: Use -DPCRE_STATIC.
-
-       * tests/gio-test.c
-       * tests/mainloop-test.c
-       * tests/spawn-test.c: #define pipe(fds) _pipe(fds, 4096,
-       _O_BINARY) on Windows
-
-       * tests/regex-test.c (test_expand): Don't print NULL with %s.
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.14.3 ===
-
-       * NEWS: Updates
-
-2007-11-06  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/pcre/*: Update the internal copy of PCRE to 7.4
-
-2007-10-22  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (_glib_gettext): Plug small one-time leak on
-       Windows. (#488068, Daniel Atallah)
-
-2007-10-21  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gdate.c (g_date_strftime):
-       * glib/gmain.c (g_main_context_check):
-       * glib/gregex.c (g_match_info_fetch_all), (g_regex_split_full):
-       * glib/gthread.c (g_once_init_enter_impl), (g_once_init_leave):
-       * glib/gthread.h:
-       * glib/gutf8.c (g_utf16_to_utf8), (g_utf16_to_ucs4):
-       * tests/errorcheck-mutex-test.c (lock_locked_mutex),
-       (trylock_locked_mutex), (unlock_unlocked_mutex),
-       (free_locked_mutex), (wait_on_unlocked_mutex),
-       (wait_on_otherwise_locked_mutex), (timed_wait_on_unlocked_mutex),
-       (timed_wait_on_otherwise_locked_mutex):
-       Fix warnings from sparse. (#487491, Kjartan Maraas)
-
-2007-10-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.2 ===
-
-       * NEWS: Updates
-
-       * configure.in: Check for sys/resource.h
-
-       * glib/gspawn.c: Improve the fdwalk implementation on Linux
-       to only walk over actually open file descriptors. (#469231, 
-       Lennart Poettering)
-
-2007-10-13  Sven Herzberg  <herzi@gnome-de.org>
-
-       Reviewed by Tim Janik.
-
-       Created marshallers that don't throw gcc warnings when compiling with
-       -WUnused (fixes #359165).
-
-       * gobject/glib-genmarshal.c: decorate return_value and invocation_hint
-       with G_GNUC_UNUSED
-
-2007-10-04  Tor Lillqvist  <tml@novell.com>
-
-       * glibconfig.h.win32.in: Always define G_CAN_INLINE. Even MSVC6 is
-       capable of inlining. (#483337, Steve Lhomme)
-
-2007-09-19  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/ghook.c (g_hook_free): Check for NULL finalizer. (#476849, Areg
-       Beketovski)
-
-2007-09-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.14.1 ===
-
-2007-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h (GUserDirectory): Fix doc formatting.
-       * glib/gmain.c (g_main_depth): Fix doc formatting.
-
-2007-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Replace -pthread by -lpthread for 
-       Freebsd, too.  (#475619, Roy Marples)
-
-2007-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: When compiling against system pcre, 
-       add a private dependency to the pc file. This should
-       fix static builds with system pcre.  (#475923)
-
-       * glib-2.0.pc.in: Add a Requires.private line
-
-2007-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2007-09-14 15:07:28  Tim Janik  <timj@gtk.org>
-
-       * glib/gutf8.c (g_utf8_strreverse): applied fix for bug #476840.
-
-       * tests/utf8-pointer.c (test_misc): added test for g_utf8_strreverse().
-
-2007-09-11  Marco Barisione <marco@barisione.org>
-
-       * glib/Makefile.am:
-       * configure.in: propagate the pcre flags to libglib and not to all
-       parts of glib. (#475854, dmacks@netspace.org)
-
-       * configure.in: fix a typo in the previous commit. (#475854, comment
-       #4)
-
-2007-09-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Define G_ATOMIC_ARM.
-
-       * glib/gatomic.c: Add Arm implementation of atomic
-       operations.  (#457601, Jussi Laako)
-
-2007-09-10  Marco Barisione <marco@barisione.org>
-
-       * glib/gregex.c: define PCRE_ERROR_NULLWSLIMIT if it's not defined by
-       PCRE, has PCRE 7.3 removed this definition. (#475474)
-       * configure.in: bump PCRE requirement to version 7.2.
-       * glib/gregex.c: use pcre_get_stringnumber() in
-       get_matched_substring_number() if G_REGEX_DUPNAMES was not set.
-       (#444765, Yevgen Muntyan)
-       * glib/gregex.c: change the type of ref_count from guint to gint, so
-       we can remove some ugly casts.
-
-2007-09-05  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gregex.c: Fix header inclusion. (#473879, Peter Kjellerstedt)
-
-Wed Aug 29 12:08:40 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gthread.h (g_once_init_enter): fixed compiler warning about
-       loosing volatile qualifier, bug #457641.
-
-2007-08-24  Michael Natterer  <mitch@imendio.com>
-
-       * glib/gslice.[ch]: make g_slice_copy() take a gconstpointer
-       instead of a gpointer.
-
-2007-08-22  Cody Russell  <bratsche@gnome.org>
-
-       * glib/gprintf.c: Document all printf functions to use
-       "bytes" terminology rather than "characters". (#469051)
-
-2007-08-20  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/guniprop.c: Document that g_unichar_get_script() is
-       equivalent to pango_script_for_unichar().
-
-2007-08-20  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gmappedfile.c:
-       * glib/gregex.c:
-       * glib/gstdio.c:
-       Fix typos (#468694).
-
-2007-08-14  Cody Russell  <bratsche@gnome.org>
-
-       * gobject/gsignal.c: g_type_default_interface_ref() was not
-       ensuring working g_signal_list_ids.  Added checks for
-       !G_TYPE_IS_INTERFACE (itype).
-       (#465625, by some guy who calls himself Yeti)
-
-Tue Aug 14 02:06:10 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gthread.c (g_once_init_enter_impl): prevent race covered
-       by g_once_init_enter(), by checking for previous initializations
-       before entering initialisation branch.
-
-       * tests/onceinit.c: added multi-thread/multi-initializer stress test
-       using unoptimized g_once_init_enter_impl().
-
-Mon Aug 13 14:30:15 2007  Tim Janik  <timj@imendio.com>
-
-       * tests/onceinit.c (main): fixed array size typo.
-
-Mon Aug 13 14:21:44 2007  Tim Janik  <timj@imendio.com>
-
-       * tests/onceinit.c: test g_once_init_*() before and after
-       g_thread_init() and test concurrency resolution.
-
-Mon Aug 13 14:18:22 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gthread.c (g_thread_create_full): prevent linking a freed
-       GThread structure into global thread list in error cases.
-
-2007-08-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c (append_escaped_text): Handle restricted
-       characters by converting them to numeric character 
-       entities.  (#464145, Andreas Monitzer)
-
-       * tests/markup-escape-test.c: Add tests for restricted
-       characters and numeric character entities. 
-
-2007-08-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/Makefile.am:
-       * glib/abicheck.sh: Make it work regardless of --enable-debug
-
-2007-08-08  Tristan Van Berkom <tvb@gnome.org>
-
-       * docs/reference/gobject/tmpl/gparamspec.sgml: Fixed minor typo in docs.
-
-2007-08-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * MAINTAINERS: Update for new format regulations
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.14.0 ===
-
-       * NEWS: Updates
-
-       * configure.in: Bump version to 2.14.0
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gregex.c: Revert the J handling change,
-       since it doesn't work.
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gregex.c: Fix a C99ism.  (#462549, Kazuki IWAMOTO)
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gregex.c: Handle J changes in the pattern
-       correctly.  (#444765, Yevgen Muntyan)
-
-2007-08-03  Pramod Raghavendra  <pramodleo@yahoo.co.uk>
-
-       * configure.in: Added kn to ALL_LINGUAS
-
-2007-08-01  Tor Lillqvist  <tml@novell.com>
-
-       * glib/update-pcre/notdll.patch: Update so it applies again.
-
-       * glib/pcre/pcre.h: Corresponding change.
-
-       * glib/gutils.c (get_special_folder): Drop leftover use of a
-       union.
-
-       * glibconfig.h.win32.in: Update to match what configure produces.
-
-2007-07-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pcre/*: Update the internal PCRE to 7.2
-
-2007-07-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pltcheck.sh: Fix some glitches
-
-       * glib/gregex.c: Remove debug spew
-
-2007-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gunidecomp.c:
-       * glib/gregex.c:
-       * glib/gstring.c: Various doc cleanups.
-
-2007-07-20  Alexander Larsson  <alexl@redhat.com>
-
-        * configure.in:
-       Add goffset type (64bit file size)
-       Add G_MAXSSIZE and G_MINSSIZE
-
-2007-07-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Fix the build.
-
-2007-07-19  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/glib.symbols:
-       * glib/gunicode.h:
-       * glib/gunicodeprivate.h:
-       * glib/gunidecomp.c (g_unichar_combining_class):
-       * glib/guniprop.c (has_more_above):
-       Make g_unichar_combining_class() public. (#453998)
-
-Fri Jul 13 01:01:46 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gthread.[hc]: more atomic ops pointer cast fixes. this time it'll
-       work with atomic op macros *and* atomic op functions.
-
-Fri Jul 13 00:50:40 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gthread.[hc]: fixed missing pointer casts when using atomic ops.
-
-2007-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.13.7 ===
-
-       * NEWS: Updates
-
-Thu Jul 12 17:31:08 2007  Tim Janik  <timj@imendio.com>
-
-       * tests/slice-concurrent.c: beautified output somewhat. fixed long
-       sleeps by reducing sleep accumulating and using randomized re-scheduling
-       (which works on UP and SMP). increased possible blocksizes.
-
-Thu Jul 12 17:26:05 2007  Tim Janik  <timj@imendio.com>
-
-       * tests/slice-concurrent.c: added GSLice test from Stefan Westerfeld,
-       bug #433314.
-
-Thu Jul 12 15:46:40 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: migrate per-thread magazine caches from single-thread
-       scenario to first thread using GSlice after g_thread_init(); based on
-       a patch by Tor Lillqvist, fixes #331853.
-       removed warning about g_thread_init() being called after other glib
-       functions (in particular g_slice* calls), because GSlice can cope
-       with this now and the rest of glib is believed to cope as well.
-
-       * tests/slice-threadinit.c: new test program which tests GSlice working
-       across g_thread_init() calls.
-
-2007-07-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pltcheck.sh: Add g_once_init_enter to the whitelist of
-       symbols allowed to have a local PLT entry, to fix 'make check'.
-
-Tue Jul 10 12:24:35 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gthread.[hc]: implemented g_once_init_enter(),
-       g_once_init_enter_impl() and g_once_init_leave(), based on a patch by
-       Antoine Tremblay, fixes #65041.
-       adapted exported inline function mechanism from gutils.[hc] for inlining
-       g_once_init_enter_impl() in gthread.[hc].
-
-2007-07-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2007-07-09  Loïc Minier  <lool@dooz.org>
-
-       * tests/refcount/closures.c: (main): Output newlines after thousand
-       iterations of the inner-loop of the closures test; this helps having
-       smaller lines and continuously outputting new lines.  (#447048).
-
-2007-07-09  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/gfileutils.c (write_to_temp_file): save errno to prevent it
-       being clobbered by call to g_filename_display_name().  Bug #453796.
-
-2007-07-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-gettext.m4: Fix a small problem with
-       msgfmt -c detection.  (#341988, Laszlo Peter)
-
-2007-07-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c (g_markup_parse_context_end_parse): Handle
-       all states.  (#454473)
-
-2007-07-06  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c (g_io_win32_check): When WSAEnumNetworkEvents()
-       signals FD_CONNECT that means that the connection attempt
-       finished, either successfully or failed. Test explicitly whether
-       the connnection succeeded and set either G_IO_OUT if it did,
-       G_IO_ERR|G_IO_HUP if it failed.
-
-       Make sure we never set both G_IO_OUT and G_IO_HUP simultaneously
-       because in Unix poll(2) POLLOUT and POLLHUP are mutually
-       exclusive.
-
-       Ignore whether the caller wants to watch G_IO_HUP or not. Always
-       select for FD_CLOSE because Unix poll(2) also ignores whether
-       POLLHUP in set the requested events bitmask or not.
-
-Fri Jun 29 2007  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.13.6 ===
-
-       * NEWS: Updates
-
-Mon Jun 25 16:43:13 2007  Tim Janik  <timj@gtk.org>
-
-       * glib/ghash.c: g_hash_table_find(), g_hash_table_foreach():
-       document performance caveats for linear order searches.
-
-2007-06-22  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
-
-       * glib/gstring.c: Use memcpy in g_string_append_vprintf (#57693).
-
-2007-06-18  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
-
-       * glib/gstring.c: Restore old behaviour of 
-       g_string_append_vprintf: g_vasprintf seems to be faster
-       than g_printf_string_upper_bound (#57693).
-
-2007-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_get_home_dir): Add some motivation.
-
-2007-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.13.5 ===
-
-       * NEWS: Updates
-
-2007-06-18  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gmain.h:
-       * glib/gmain.c:
-       * glib/glib.symbols: Add g_timeout_add_seconds_full() variant
-       to g_timeout_add_seconds(), accepting a destroy notification
-       function and a priority. (#448819)
-
-2007-06-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils (g_get_current_dir): Prevent segfaults on
-       long paths.  (#447935, Robby Griffin)
-
-2007-06-17  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gdataset.c (g_quark_from_string),
-       (g_quark_from_static_string): Accept NULL and return GQuark
-       value of zero. (#446859)
-
-2007-06-16  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
-
-       * glib/gstring.c: Correctly use g_printf_string_upper_bound
-       in g_string_append_vprintf. Fixes #447933.
-
-2007-06-15  Sebastian Wilhelmi  <wilhelmi@google.com>
-
-       * docs/reference/glib/tmpl/threads.sgml: Extended the comments on
-       those functions, that are NOOPs, before g_thread_init() has been
-       called. (#447583)
-
-       * glib/gthread.c (g_static_mutex_free): Clarified comment to
-       remind myself, that calling g_static_mutex_free() before
-       g_thread_init() is safe.
-
-2007-06-15  Cody Russell  <bratsche@gnome.org>
-
-       * docs/reference/gobject/tmpl/gboxed.sgml:
-       * docs/reference/gobject/gobject-sections.txt:
-       * glib/gregex.c:
-       * gobject/gboxed.[ch]:
-       * gobject/gobject.symbols: Added GRegex boxed type.
-       (#445065, Carlos Garnacho)
-
-2007-06-15  Sebastian Wilhelmi  <wilhelmi@google.com>
-
-       * glib/gregex.c: Replaced & by &amp; in <programlisting> to make
-       gtk-doc happy.
-
-2007-06-14  Ryan Lortie  <desrt@desrt.ca>
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/glib/symbols:
-       * glib/gstring.[ch] (g_string_printf_internal): Improve
-       performance by removing the use of an intermediate g_malloc'd
-       buffer.  Rename to g_string_append_vprintf, document, and expose
-       along with g_string_vprintf as new public API (#57693).
-
-2007-06-15  Mathias Hasselmann  <mathias.hasselmann@gmx.de>
-
-       * build, tests/string-test.c, glib/glib.symbols, 
-       glib/gstring.c, glib/gstring.h: Introduce g_string_overwrite(_len)?
-       for overwriting parts of strings (#368686, Samuel Cormier-Iijima)
-
-2007-06-14  Cody Russell  <bratsche@gnome.org>
-
-       * gobject/gtype.c (g_type_class_add_private): Check for 0-sized
-       private data. (#443869)
-
-2007-06-14  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/gmain.c (g_timeout_add_seconds): Fix doc typos.  (#447534,
-       Vincent Untz)
-
-2007-06-13  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/pltcheck.sh: Whitelist g_atomic_{int,pointer}_[gs]et() as
-       we don't alias them intentionally. (#354522)
-
-2007-06-13  Sven Neumann  <sven@gimp.org>
-
-       * glib/gslice.[ch] added g_slice_copy() and g_slice_dup() (#442029).
-
-       * glib/glib.symbols: updated.
-
-2007-06-12  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gunicode.h: Add more G_GNUC_CONST and G_GNUC_PURE.
-
-2007-06-11  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gutils.c (maybe_expire_user_special_dirs),
-       (g_get_user_special_dir): Remove the cache expiration logic: it
-       makes g_get_user_special_dir() not thread-safe. Document the fact
-       that on some platform the value might be changed by the user and
-       that GLib won't be able to reflect the change.
-
-2007-06-11  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c (g_win32_get_package_installation_directory)
-       (g_win32_get_package_installation_subdirectory): Update doc
-       comments. Mention that it is not recommeded to use the Registry
-       features.
-
-2007-06-06  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c: Add definitions for more CSIDL_* constants in
-       case missing from headers. Use CSIDL_PERSONAL instead of
-       CSIDL_MYDOCUMENTS as CSIDL_MYDOCUMENTS seems to be a new thing
-       that doesn't work in XP SP2 even.
-
-2007-06-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_get_user_special_dir): Fall back to
-       $HOME/Desktop for the DESKTOP directory, like 
-       xdg_user_dir_lookup() does.
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.13.4 ===
-
-       * NEWS: Updates
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_is_key_name):
-       (g_key_file_is_group_name): Don't assume the string is
-       valid UTF-8, since it may be user data.  (#444161, Ben Combee)
-
-2007-06-05  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gutf8.c: Add not to g_utf8_get_char_validated() about
-       nul-terminated strings.
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_get_user_special_dir): Don't deadlock
-       when running with threads.  (#444121, Christian Persch)
-
-2007-06-05  Vincent Untz  <vuntz@gnome.org>
-
-       * glib/goption.c: (g_option_context_get_help): don't replace the usage
-       line with the description for optional parameters, but append the
-       description. (#444130)
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-       
-       * === Released 2.13.3 ===
-
-       * NEWS: Updates
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-       
-       Add support for a number of special directories, as 
-       defined by the xdg-user-dirs specification.  (#432651,
-       Bastien Nocera, Emmanuele Bassi, Michael Natterer)
-
-       * glib/glib.symbols:
-       * glib/gutils.[hc]: Add the GUserDirectory enum and
-       g_get_user_special_dir(), with implementations based
-       on the xdg-user-dirs spec and on native interfaces
-       for Win32 and Carbon.
-       
-       * configure.in: Add Carbon checks.
-
-       * tests/tetsglib.c: Test g_get_user_special_dir().
-       
-2007-06-03  Yevgen Muntyan  <muntyan@tamu.edu>
-
-       * glib/gregex.c: fixed g_regex_fetch_named* for cases when (?J)
-       is used inside a pattern (#442265, comment #12).
-       * tests/regex-test.c: Test it.
-
-2007-06-03  Matthias Clasen <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2007-06-03  Yevgen Muntyan  <muntyan@tamu.edu>
-
-       Some API additions and changes (#442265).
-
-       * glib/gregex.c:
-       * glib/gregex.h: new functions: g_regex_ref(), g_regex_unref() which
-       replaces g_regex_free(); g_match_info_get_regex(), g_match_info_get_string();
-       g_regex_check_replacement().
-       Made g_match_info_expand_references() accept NULL; changed GRegexEvalCallback
-       to take only arguments which are likely to be actualy used.
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/glib.symbols: Added new functions.
-
-       * tests/regex-test.c: Test them.
-
-       * docs/reference/glib/tmpl/gregex.sgml: Updated GRegexEvalCallback docs.
-
-2007-05-31  Matthias Clasen <mclasen@redhat.com>
-
-       * README.win32: Fix a typo.  (#423708, Olivier Delhomme)
-
-2007-05-30  Dan Winship  <danw@novell.com>
-
-       * glib/gkeyfile.h: add defines for desktop file handling. #339225,
-       original patch from Vincent Untz.
-
-2007-05-29  Cody Russell  <bratsche@gnome.org>
-
-       * configure.in: Fix a sed script that doesn't correctly detect
-       i586-mingw32-gcc-3.4 compiler, and was causing -Wno-pointer-sign
-       errors when building with that compiler. (#440896, Yevgen Muntyan)
-
-2007-05-29  Marco Barisione <marco@barisione.org>
-
-       * glib/gregex.c: Fix g_regex_fetch_named() and
-       g_regex_fetch_named_pos() when G_REGEX_DUPNAMES is used  (#434358,
-       Yevgen Muntyan and #419376, Marco Barisione, patch by Yevgen Muntyan)
-
-2007-05-25  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/guniprop.c (g_unichar_iswide), (g_unichar_iswide_cjk):
-       Update to Markus Kuhn's updated wcwidth for Unicode 5.0.
-
-2007-05-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.13.2 ===
-
-       * README.in:
-       * NEWS: Updates
-
-2007-05-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Try again to move the compiler-dependency
-       of G_GNUC_INTERNAL to runtime.
-
-2007-05-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Don't let PERL_PATH be ''.  (#356769, Joseph Sacco)
-
-2007-05-17  Michael Natterer  <mitch@imendio.com>
-
-       * configure.in: hotfix: revert last change to fix the build on OS X.
-
-2007-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (g_option_context_set_translate_func): Fix
-       a doc typo.  (#439232, Vincent Untz)
-
-2007-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Move the compiler-dependency in the G_GNUC_INTERNAL
-       definition from configure-time to runtime (of the compiler).
-       (#438869, Damien Carbery)
-
-       * glib/gdebug.h:
-       * glib/gmessages.h:
-       * glib/gunicodeprivate.h:
-       * glib/gthreadprivate.h: Move G_GNUC_INTERNAL before function
-       declarations to fix compilation with sun studio.  (#438873,
-       Damien Carbery)
-
-2007-05-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslice.h:
-       * glib/gslice.c:
-       * glib/glib.symbols: Make g_slice_debug_tree_statistics() 
-       debug-only functionality again.
-
-2007-05-14  Christian Persch  <chpe@gnome.org>
-
-       * docs/reference/glib/tmpl/string_utils.sgml: Improve g_strerror and
-       g_strsignal docs. Bug #438293.
-
-2007-05-13  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.h: Drop the pipe() macro. Defining macros outside of
-       its namespace that look like POSIX functions is not GLib's
-       business in my opinion. This means pipe()-using code that has
-       relied on this definition will need changing to call _pipe() on
-       Windows, and make the decision itself on what size pipe buffer to
-       use, and whether to use text or binary mode, and whether the pipe
-       handles should be inheritable or not.
-
-       * glib/gspawn-win32.c (make_pipe): Use _pipe() instead of pipe().
-
-2007-05-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c: Allow G_OPTION_ARG_CALLBACK for 
-       G_OPTION_REMAINING.  (#437297, Dave Benson)
-
-       * tests/option-test.c: Add a test for this.
-
-2007-05-04  Dan Winship  <danw@novell.com>
-
-       * glib/gkeyfile.c (g_key_file_get_boolean)
-       (g_key_file_get_boolean_list, g_key_file_get_integer)
-       (g_key_file_get_integer_list, g_key_file_get_double)
-       (g_key_file_get_double_list): Document the error return values
-       rather than calling them undefined. #435885.
-
-2007-05-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/glib.symbols:
-       * glib/gunicode.h:
-       * glib/guniprop.c (g_unichar_ismark):
-       Add g_unichar_ismark(). Patch from Yevgen Muntyan. Fixes #339991.
-
-2007-05-03  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.13.1 ===
-
-2007-05-02  Matthias Clasen <mclasen@redhat.com>
-
-       * tests/threadpool-test.c:  Stop unused threads before
-       the last test, to make the test terminate reliably.
-
-       * NEWS: Updates
-
-2007-05-02  Marco Barisione <marco@barisione.org>
-
-       * glib/gregex.c: Made more clear that the string passed to the match
-       functions cannot be freed before using g_match_info_fetch() and
-       similar functions, and fixed a typo.
-
-2007-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/gregex.[hc]: Add g_regex_get_max_backref() and
-       g_regex_get_capture_count().  (#419371, Marco Barisione)
-       
-2007-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/gregex.[hc]: Split GRegex into GRegex and GMatchInfo.
-       (#419368, Marco Barisione)
-
-       * tests/regex-test.c: Adapt.
-
-2007-04-30  Chris Wilson  <chris@chris-wilson.co.uk>
-
-       * glib/gbookmarkfile.c (g_bookmark_file_get_app_info):
-       Include the gshell.h header file (to define g_shell_[un]quote)
-       and correct the order of the arguments to g_propagate_error(), as
-       spotted by gcc.
-
-2007-04-29  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gbookmarkfile.c:
-       (g_bookmark_file_set_app_info): Quote the passed command line...
-       
-       (g_bookmark_file_get_app_info): ... and unquote it when giving it
-       back. (#432274)
-
-2007-04-27  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c: small coding style cleanups.
-
-2007-04-27  Chris Wilson  <chris@chris-wilson.co.uk>
-
-       * glib/gregex.h: Remove trailing comma at end of enumerator list.
-
-2007-04-27  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.c (g_mkdir): Document that the mode argument is
-       ignored on Windows
-       (g_stat): Document that st_mode is mostly useless on Windows.
-
-2007-04-25  Paolo Borelli  <pborelli@katamail.com>
-
-       * glib/gstrfuncs.c (g_strsplit): small cleanup. (#433387)
-
-2007-04-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/goption.h:
-       * glib/goption.c (g_option_context_get_help): New function to
-       get the formatted help string.  (#336089, Dom Lachowicz)
-
-2007-04-24  Michael Natterer  <mitch@imendio.com>
-
-       * tests/gobject/paramspec-test.c: test all GParamSpecString
-       validations with static and allocated strings.
-
-2007-04-19  William Jon McCann  <mccann@jhu.edu>
-
-       * glib/gkeyfile.[ch]: (find_file_in_data_dirs),
-       (g_key_file_load_from_dirs), (g_key_file_load_from_data_dirs):
-       Add g_key_file_load_from_dirs for looking through a search
-       path for a key-file. (#355334)
-
-2007-04-15  Tor Lillqvist  <tml@novell.com>
-
-       * build: Include the build module using the svn:externals
-       mechanism.
-
-       * Makefile.am
-       * configure: Add the references to build back.
-
-2007-04-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gspawn.c (g_spawn_async): Fix a doc typo.  (#427285, 
-       Jochen Baier)
-
-2007-04-11  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/ghash.[ch]: Add g_hash_table_get_keys() and
-       g_hash_table_get_values(), API to retrieve the keys
-       and values inside an hash table in list form. (#413133)
-
-       * glib/glib.symbols: Update symbols.
-
-       * tests/hash-test.c: Exercise newly added functions.
-
-2007-04-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Use CFLAGS/LDFLAGS in addition to 
-       PCRE_CFLAGS/PCRE_LIBS when checking system PCRE.  (#421607, 
-       Paul Jarc)
-
-2007-03-27  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gdate.h: Remove old comment and forward declaration of
-       struct tm: gdate.h includes time.h now.
-
-2007-03-23  Matthias Clasen  <mclasen@redhat.com> 
-
-       * tests/gobject/Makefile.am: Handle $RANDOM missing.  (#356843,
-       Paul Jarc)
-
-2007-03-22  Matthias Clasen  <mclasen@redhat.com> 
-
-       * glib/guniprop.c: Fix corner-cases of upper/lowercase conversion.
-       (#418217, Denis Jacquerye)
-
-2007-03-22  Chris Wilson  <chris@chris-wilson.co.uk>
-
-       * glib/gkeyfile.c: Track whether the last key=value pair in a group
-       is a blank line and during to_data() only insert a new blank line
-       betweens group in its absence. This allows the beautification of the
-       GKeyFile and prevents newlines being inserted indefinitely. (#420686)
-
-       * tests/keyfile-test.c (test_reload_idempotency): Test that after a 
-       single beautification pass, g_key_file_to_data() does not alter its
-       input data.
-
-2007-03-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pcre/Makefile.am: Make builddir != srcdir work.  (#419900)
-
-2007-03-19  Paolo Borelli  <pborelli@katamail.com>
-
-       * glib/gutf8.c (fast_validate_len): remove unneeded checks.
-
-2007-03-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gregex.c: Cosmetic fixes
-
-2007-03-17  Marco Barisione <marco@barisione.org>
-
-       * glib/update-pcre/table-reduction.patch:
-       * glib/update-pcre/make_utt.py:
-       * glib/update-pcre/utt.patch: Add forgotten files
-
-       * glib/update-pcre/update.sh: Call python directly instead of relying
-       on shebang. Also copy the changes from glib/pcre/makefile.msc to this
-       file
-
-2007-03-17  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in glib/pcre/makefile.msc 
-         glib/update-pcre/update.sh : define PCRE_STATIC to reflect the 
-       inclusion of pcre as LIB, not stand-alone DLL. Also set NEWLINE=-1
-       to match any newline by default, use of ../../build/win32/make.msc
-
-       * glib/gregex.h : minimal includes of <glib/*.H> instead of <glib.h>
-
-       * glib/gnulib/makefile.msc : make use of ../../build/win32/make.msc
-
-       * tests/regex-test.c(verbose): don't pass a string containing '%' 
-       as first parameter to g_print ()
-       (test_match) : for the unexpected case output pattern and string
-       escaped
-
-       * tests/child-test.c tests/slice-color.c : fix c99ism
-       * tests/slice-test.c : fix c99ism and gccism
-       * tests/mapping-test.c tests/base-64-tests.c : don't 
-       #include <unistd.h> unconditionally
-       * tests/option-test.c : use G_GINT64_CONSTANT() instead of direct LL
-
-       * tests/makefile.msc.in : more tests build
-
-2007-03-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gsequence.[hc]:
-       * glib/glib.symbols:
-       * tests/sequence-test.c: Move the consistency
-       checks to the test.
-
-2007-03-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.13.0 ===
-
-       * NEWS: Updates
-
-2007-03-16  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/glib.symbols:
-       * glib/gsequence.h: Add the test function to the header,
-       since it is exported.
-
-       * glib/gbase64.c (g_base64_decode): Warn if the input
-       is too short.  (#418862, Halton Huo)
-
-Fri Mar 16 11:24:51 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/gscanner.[hc]: reverted premature commit which broke
-       GScanner ABI and API, #415323.
-
-2007-03-16  Chris Wilson  <chris@chris-wilson.co.uk>
-
-       * glib/gkeyfile.c: Convert to GSlice and check for redundant
-       clears. (#418637)
-
-2007-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gscanner.[hc]: Revert recent changes that break
-       existing users of GScanner.
-
-2007-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gscanner.c (g_scanner_get_token_ll): Fix a typo
-       in the last commit.  (#415323, Richard Hult)
-
-2007-03-15  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gnulib/Makefile.am (INCLUDES): Add -I$(top_srcdir)/glib so
-       that gregex.h finds <glib.h>.
-
-       * glib/update-pcre/Makefille.am-1: Add -DGLIB_COMPILATION so that
-       we don't think g_ascii_table is dllimport.
-
-       * glib/pcre/Makefile.am: Corresponding change.
-
-       * glib/update-pcre/notdll.patch: New file. Drop
-       dllimport/dllexport magic for the pcre symbols.
-
-       * glib/update-pcre/Makefile.am: Dist it.
-
-       * glib/update-pcre/update.sh: Apply notdll.patch.
-
-       * glib/pcre/pcre.h: Corresponding change.
-
-2007-03-15  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gtypes.h: Add comment to avoid misleading people with the
-       large number of digits in G_PI etc. (#404338)
-
-2007-03-15  Tor Lillqvist  <tml@novell.com>
-
-       * config.h.win32.in: Update to match what configure produces.
-
-2007-03-15  Marco Barisione <marco@barisione.org>
-
-       Add GRegex for regular expression matching.  (#50075)
-
-       * configure.in: Handle GRegex compilation.
-
-       * glib/gregex.c:
-       * glib/gregex.h: Code for GRegex.
-
-       * glib/Makefile.am:
-       * glib/makefile.msc.in: Updated makefiles.
-
-       * glib/pcre/*: Internal copy of PCRE.
-
-       * glib/update-pcre/*: Stuff to automatically update the internal PCRE
-       to a newer version.
-
-       * tests/regex-test.c:
-       * tests/Makefile.am:
-       * tests/makefile.msc.in: Add tests for GRegex.
-
-2007-03-15  Chris Wilson  <chris@chris-wilson.co.uk>
-
-       * glib/gmain.c (g_main_dispatch): Replace a
-       g_slist_prepend/g_slist_remove pair with an on-stack link
-       and open coding. (#416094)
-
-2007-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix two glitches in the Unicode case conversion
-       functions (#418217,  Denis Jacquerye)
-
-       * glib/guniprop.c (g_unichar_toupper): Handle zero entries
-       in special_case_table correctly.
-       (g_unichar_totitle): Fall back to g_unichar_toupper.
-
-2007-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gscanner.[hc]: Some optimizations, use a lookup
-       table for character classes, pre-allocate GStrings with
-       reasonable sizes.  (#415323, Charlie Brej)
-
-2007-03-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_get_double): Fix a 
-       small typo.  (#417847, Bobby Jack)
-
-2007-03-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c (g_strtoll): Return negative values.
-       (#416062)
-
-       * tests/strtoll-test.c: Add more testcases.
-
-2007-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstring.c (g_str_equal): Clarify docs.  (#364026, 
-       Bastian Nocera)
-
-2007-03-06  Matthew Barnes  <mbarnes@redhat.com>
-
-       * glib/gqueue.h:
-       * glib/gqueue.c: Add G_QUEUE_INIT, g_queue_init(), and
-       g_queue_clear() to better support statically allocated
-       queues.  (#413244)
-
-2007-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_parse_value_as_boolean):
-       Remove a NULL check that didn't do any good.  (#360904,
-       Paolo Borelli)
-
-2007-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c (g_markup_parse_context_parse): Report
-       more accurate position for invalid UTF-8.  (#350802,
-       Simon Budig)
-
-2007-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbase64.c: Add NULL checks to the base64 
-       functions that take pointers.  (#399611, Martyn Russell)
-
-2007-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       Work with Solaris gettext (#341988, Laszlo Peter)
-
-       * m4macros/glib-gettext.m4: Make GLIB_WITH_NLS define
-       MSGFMT_OPTS if msgfmt supports -c.
-
-       * po/Makefile.in.in: Use MSGFMT_OPTS when calling
-       msgfmt.
-
-2007-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/Makefile.am: Apply a patch by Loïc Minier
-       to fix building with -Wl,-z,defs.  (#149144)
-
-2007-03-03  Thierry Randrianiriana  <randrianiriana@gmail.com>
-
-       * po/mg.po: Added Malagasy translation.
-       * configure.in: Added Malagasy 'mg' to ALL_LINGUAS
-
-2007-03-01  Ihar Hrachyshka <iharh@gnome.org>
-       * configure.in: Added be@latin to ALL_LINGUAS.
-
-2007-02-17  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gdate.c (win32_strftime_helper): New Win32-only
-       function. Use the wide character Win32 API to do the work of
-       strftime(): GetThreadLocale(), GetLocaleInfoW(), GetDateFormatW()
-       and GetTimeFormatW().
-       (g_date_strftime): On Windows use win32_strftime_helper()
-       instead of strftime() to avoid codepage issues with strftime().
-       Unfortunately using wcsftime() would not help either. (#404832)
-
-2007-02-16  Soren Sandmann <sandmann@redhat.com>
-
-       * tests/sequence-test.c: For move, test moving between two
-       sequences. Add test for swap.
-
-       * glib/gsequence.c: Replace splay tree with a treap.
-       (check_node): Add checks for the treap invariants.
-
-2007-02-10  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : added gsequence.obj
-
-Fri Feb  9 17:46:18 2007  Søren Sandmann  <sandmann@redhat.com>
-
-       * glib/gsequence.c (g_sequence_get_end_iter): Remove assertion.
-       * glib/gsequence.c (is_end): Return TRUE if the iter doesn't have
-       a parent.
-       * glib/gsequence.c: Fix grammar of comment.
-       * glib/gsequence.c (node_update_fields): Use a temporary variable
-       for the n_nodes.
-
-2007-02-07  Soren Sandmann <sandmann@daimi.au.dk>
-
-       * tests/sequence-test.c (compare_items): Force an arbitrary order
-       on otherwise identical items.
-
-       * glib/gsequence.c: Add comment discussing splay trees vs. other trees.
-       * glib/gsequence.c (is_end): Add fast path for the common case
-       when the node is not actually the end node.
-
-2007-02-05  Soren Sandmann <sandmann@daimi.au.dk>
-
-       * glib/gsequence.c (g_sequence_sort_iter): Don't prohibit access
-       until after the g_sequence_move_range() call.  Bug 404759,
-       Christian Persch.
-
-       * tests/sequence-test.c: Formatting fix.
-
-2007-02-03  Soren Sandmann <sandmann@daimi.au.dk>
-
-       * glib/gsequence.c (struct _GSequence): Add a new 'real_sequence'
-       field.
-       (g_sequence_new): Initialize real_sequence to the sequence
-       (g_sequence_sort_iter): Set real_sequence of the temporary
-       sequence to the real sequence.
-       (g_sequence_sort_changed_iter): Same
-       (g_sequence_insert_sorted_iter): Same
-       (g_sequence_search_iter): Same
-       (g_sequence_iter_get_sequence): Return real_sequence
-
-       * tests/sequence-test.c (compare_iters): Insert assertions that
-       the iters point to the sequence being manipulated.
-
-2007-02-03  Soren Sandmann <sandmann@daimi.au.dk>
-
-       * glib/gsequence.[ch]: New files implementing GSequence, a list
-       implemented using a binary tree.
-       * glib/glib.h, glib/glib.symbols: Update for GSequence.
-       * docs/reference: Add documentation for GSequence
-       * tests: Add sequence-test.c, a thorough test of all of
-       the GSequence API.
-
-2007-01-30  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/gslice.h:
-       * glib/gslice.c: Don't make ABI depend on G_ENABLE_DEBUG,
-       just add an empty g_slice_debug_tree_statistics () implementation
-       in the !G_ENABLE_DEBUG case.
-
-2007-01-26  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Define G_GNUC_INTERNAL for Sun Studio
-       as __hidden.  (#342981, Brian Cameron)
-
-       * glib/gconvert.c:
-       * glib/gutf8.c: Move G_GNUC_INTERNAL uses to the right
-       spot.
-
-2007-01-26  Matthias Clasen <mclasen@redhat.com>
-
-       * gmem.c:
-       * gslice.c:
-       * gmessages.c:
-       * gutils.c: Make some structs which are used only once
-       non-static.
-
-2007-01-24  Benjamin Otte <otte@gnome.org>
-
-       * glib/gprintf.c (g_sprintf): Clarify the documentation
-       regarding overflows (wording by Jan Schmidt)
-
-2007-01-23  Roozbeh Pournader  <roozbeh@farsiweb.info>
-
-       * README: Remove mention of no-longer-existing PATCH
-       keyword in bugzilla. (#396899)
-
-2007-01-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutf8.c (g_utf8_get_char_validated): Clarify
-       the behaviour is max_len is zero.  (#400044,
-       Benjamin Dauvergne)
-
-2007-01-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (print_help): Use bitwise &
-       when operating on flags.  (#399971, Jon Oberheide)
-
-2007-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       Some file list updates (#398069, Owen Taylor)
-
-       * docs/Changes-2.0.txt
-       * docs/reference/README.cvs-commits
-       * glib.spec.in: Remove obsolete files
-
-       * tests/Makefile.am:
-       * glib/libcharset/Makefile.am:
-       * gobject/Makefile.am:
-       * Makefile.am: Add some missing files to EXTRA_DIST
-
-       * tests/timeloop-basic.c: Make it build
-       * HACKING: Small updates
-
-2007-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdate.c (g_date_set_time): Fix a typo.  (#398203,
-       Owen Taylor)
-
-2007-01-17  Tor Lillqvist  <tml@novell.com>
-
-       * config.h.win32.in
-       * glib/galloca.h
-       * glib/gbacktrace.h
-       * glib/gwin32.c
-       * glibconfig.h.win32.in
-       * README.win32: More minor tweaks for Digital Mars
-       compiler. (#346808, Serhat Sevki Dincer)
-
-2007-01-17  Tor Lillqvist  <tml@novell.com>
-
-       * glib-zip.in: DLLs are always installed in "bin" with current
-       libtool, drop unnecessary logic to check where they are. Include
-       also the COPYING file.
-
-2007-01-17  Tor Lillqvist  <tml@novell.com>
-
-       * glib/galloca.h: Use <malloc.h> also with Digital Mars compiler
-       on Win32. (#346808, Serhat Sevki Dincer)
-
-2007-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gthread.h:
-       * glib/gthread.c:
-       * glib/glib.symbols: Revert an accidental ABI break by
-       moving gettime out of the GThreadFunctions struct and making
-       it a separate variable.  (#397139, Joe Marcus Clarke)
-
-       * gthread/*.c: Adapt.
-
-2007-01-16  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gthread.c (gettime): GetSystemTimeAsFileTime() returns 100s
-       of nanoseconds since 1601, so offset to Unix epoch (1970) and
-       multiply by 100 to get nanoseconds which is what we want.
-
-2007-01-15  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.h (struct _GPollFD): Fix mistake in my last commit.
-
-2005-01-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/giochannel.c:
-       * glib/gbookmarkfile.c: Remove redundant NULL-checks.
-       (#369668, Morten Welinder)
-
-2005-01-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gthread.c:
-       * gthread/gthread-posix.c: Correct the gettime calculations
-       once more.  (#395203, Chris Wilson)
-
-2007-01-15  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.h (struct _GPollFD): Prepare for potential Win64
-       build: Use gint64 for the fd field on Win64, as we want to be able
-       to store a HANDLE in it. (#395422) (Other changes will surely also
-       be necessary when building on Win64, at least in giowin32.c.)
-
-2007-01-15  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c (g_win32_getlocale): Simplify greatly. Instead of
-       hardcoding a large switch statement, just ask Windows for the
-       ISO639 and ISO3166 codes. Tack on @Latn or @Cyrl for those
-       languages which can alternatively be written in Latin or
-       Cyrillic. Fixes #395419.
-
-2007-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Rework the handling of invalid
-       keys/groups again. We are back to being liberal about
-       what we accept, and only reject things that would lead
-       to non-rereadable keyfiles.
-
-       * tests/keyfile-test.c: Adapt tests.
-
-2007-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_get_home_dir): Clarify docs.  (#394687,
-       Marc Brockschmidt)
-
-2007-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gthread.c: Include windows.h and fix
-       include order. (#394258, Kazuki Iwamoto)
-
-2007-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Make G_GNUC_INTERNAL a no-op for
-       gcc 2.95.    (#329031, David Schleef, Marc Brockschmidt)
-
-2007-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * gthread/gthread-posix.c:
-       * glib/gtimer.c:
-       * glib/gthread.c: Fix errors in the recently moved
-       time calculations.  (#395203, Chris Wilson)
-
-2007-01-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Actually link gthread against librt.
-       (#394641, Marco Pesenti Gritti)
-
-2007-01-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_is_key_name): Grr, allow '*' in keys,
-       too.  (#394262)
-
-2007-01-09  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gutils.h: Use a more optimized g_bit_storage() when gcc is
-       available.  (#371670, Daniel Elstner)
-
-2007-01-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * gthread/gthread-posix.c (g_thread_impl_init): Don't
-       use _SC_MONOTONIC_CLOCK unless USE_CLOCK_GETTIME is
-       defined.  (#394150)
-
-2007-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Don't link glib against libpthread.  (#393812)
-
-       * configure.in: Link gthread against librt, not glib itself.
-
-       * glib/gthread.h:
-       * glib/gthread.c: Add a new thread function, gettime.
-
-       * glib/gtimer.c: Use gettime instead of directly working with
-       the various system interfaces.
-
-       * gthread/gthread-impl.c:
-       * gthread/gthread-posix.c:
-       * gthread/gthread-win32.c: Implement gettime.
-
-2007-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-2.0.m4: Use PKG_PROG_PKG_CONFIG.  (#392636,
-       Yevgen Muntyan)
-
-2007-01-07  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c: Handle GIOChannels for file descriptors
-       connected to the console separately. This would typically be the
-       fd 0, 1, or 2 (if not redirected) in a console application. For
-       such fds we don't need a separate thread, as console HANDLEs are
-       waitable objects. (#359202, Michiel de Hoon)
-
-2007-01-04  Behdad Esfahbod  <behdad@gnome.org>
-
-       * tests/bit-test.c (builtin_bit_nth_lsf1), (builtin_bit_nth_lsf2),
-       (builtin_bit_nth_msf): Fix tests on x86_64.
-
-2007-01-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/goption.c (_g_unichar_get_width), (_g_utf8_strwidth),
-       (calculate_max_length), (print_entry), (print_help): Take zerowidth
-       and double-width chars into consideration when computing width of a
-       string.  Also fix another bug in width computation. (#346955)
-
-       * glib/guniprop.c (g_unichar_iszerowidth): Fix typo.  It was not
-       working correctly.
-
-2007-01-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/glib.symbols:
-       * glib/gunicode.h:
-       * glib/guniprop.c: Add g_unichar_iszerowidth(). (#347645)
-
-2007-01-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gutils.h: Fix bug in g_bit_nth_lsf (#371631) and use
-       __builtin_clzl for g_bit_storage if available (#371670).
-
-       * tests/Makefile.am:
-       * tests/bit-test.c: New test, to test g_bit_* operations against
-       naive and builtin implementations.
-
-2007-01-02  Behdad Esfahbod  <behdad@gnome.org>
-
-       * configure.in: Avoid more warnings from running libtool --config.
-       (#391364)
-
-2007-01-03  Michael Natterer  <mitch@imendio.com>
-
-       * removed all .cvsignore files. SVN doesn't need them.
-
-2007-01-02  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gbookmarkfile.c (expand_exec_line): Add support for
-       expanding the desktop entry spec variables %U (list of URIs)
-       and %F (list of filenames), so that using the command line
-       from the Exec and TryExec key of a desktop entry file works
-       as intended.
-
-2007-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Avoid warnings from running libtool --config.
-       (#391364, Loïc Minier)
-
-2007-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbookmarkfile.c (g_bookmark_file_get_app_info):
-       Return an error if the uri is bad. (#391370, Maciej Piechotka)
-
-2007-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Guard g_slice_debug_tree_statistics
-       by G_ENABLE_DEBUG.  (#390940, Kazuki Iwamoto)
-
-2007-01-02  Michael Natterer  <mitch@imendio.com>
-
-       * configure.in
-       * Makefile.am: remove references to build/ until a proper decision
-       has been made what to do with it.
-
-2007-01-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-gettextize.in: Silence autoconf warnings about
-       datarootdir.  (#391367, Loïc Minier)
-
-2006-12-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslice.c: Fix some C99isms.  (#390913, Kazuki Iwamoto)
-
-Fri Dec 29 13:28:07 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: turned detection of too late g_thread_init() calls
-       into a warning. this is a temporary work-around for some head-room
-       to fix affected programs, memory corruption still occours regardless.
-
-2006-12-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/gobject/Makefile.am:
-       * tests/gobject/dynamictype.c: New test for dynamic type
-       registration macros.
-
-Thu Dec 28 21:14:45 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.c: removed pthread-dependant debugging bits, the code
-       was already converted to GMutex. this obsoletes Tor's recent fixups.
-
-2006-12-28  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.h (G_WIN32_DLLMAIN_FOR_DLL_NAME)
-       * glib/gutils.c (get_windows_directory_root): : Use only the wide
-       character API here, too.
-
-       * glib/gslice.c: Make it compile on Win32 without pthreads: Use a
-       Win32 critical section instead.
-
-       * glib/gmessages.c (g_logv): On Win32, if we get a fatal error
-       message while being debugged we break into the debugger with
-       G_BREAKPOINT(). Don't call abort() if the user is foolhardy enough
-       to continue after the breakpoint. The user presumably knows what
-       he is doing and deserves what he gets. (#376645, Andreas Köhler)
-
-Thu Dec 28 12:50:31 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/gslice.h, glib/gslice.c: implemented static debugging
-       hash-tree to validate slice adresses and sizes with G_SLICE=debug-blocks.
-       use abort() to exit in mem_error() to allow catching of these in gdb.
-       abort programs with a descriptive error message if g_thread_init() is
-       called after GSlice was in use. previously this just silently corrupted
-       the magazines.
-
-       * glib/ghash.c (struct _GHashNode): reordered fields to keep 8-byte
-       pointer alignment on 64bit systems and request smaller slice sizes
-       on 32bit systems.
-
-       * tests/slice-test.c: support '~' option flag to introduce slice
-       allocation/release corruption with a significant probability. this
-       allowes testing of G_SLICE=debug-blocks.
-
-2006-12-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.[hc]:
-       * glib/gfileutils.c:
-       * glib/giochannel.c:
-       * glib/goption.c:
-       * glib/gspawn.c:
-       * glib/gunicollate.c:
-       * glib/gutils.c:
-       * tests/timeloop-basic.c:
-       Consistently use gsize rather than size_t.  (#333310,
-       Morten Welinder)
-
-2006-12-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Use AC_CACHE_CHECK for the nl_langinfo
-       check.  (#304517, Lőrinczy Zsigmond)
-
-2006-12-27  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.h
-       * glib/gwin32.c (get_package_directory_from_module)
-       (g_win32_get_package_installation_directory)
-       (g_win32_get_package_installation_subdirectory): Add const to
-       gchar* arguments. (#384523, Yevgen Muntyan)
-
-2006-12-27  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: cache the value of the hash function
-       in the GHashNode.  this speeds up resizing the hash
-       table and it also allows a slight optimisation on
-       lookups.  (#388332)
-
-2006-12-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gunicollate.c (g_utf8_collate_key): Don't modify
-       the current locale.  (#389300)
-
-2006-12-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutf8.c: Add hints for locale-dependent interfaces.
-       * glib/gconvert.c: Add hints for locale-dependent interfaces.
-
-       * glib/gconvert.c (g_get_filename_charsets): Improve
-       formatting of docs.
-
-2006-12-26  Behdad Esfahbod  <behdad@gnome.org>
-
-       * configure.in: Use libtool to determine shared library suffix.
-       (#357245)
-
-2006-12-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/run-collate-tests.sh:
-       * tests/unicode-collate.c: Silently skip tests if
-       we can't set LC_COLLATE to en_US.  (#336438)
-
-2006-12-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_is_key_name): Accept
-       '/', '+' and '.' in key names, since gnome-vfs uses
-       mime types as keys in some cache.
-
-       * tests/keyfile-test.c: Tests for the above.
-
-2006-12-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Fix the broken poll test.  (#387260,
-       Christian Persch)
-
-       * glib/gmain.c (child_watch_helper_thread): Readd a
-       return which was removed as dead code a while ago.
-       icc may consider it dead, but gcc doesn't like non-void
-       functions without a return...  (#354707)
-
-       * tests/Makefile.am: Try a different fix for bug 346373.
-
-2006-12-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix bug 161288:
-
-       * configure.in: Check for wcslen.
-
-       * glib/gnulib/vasnprintf.c: Handle wcslen missing.
-
-2006-12-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Accept '@' in locale names.
-
-       * glib/gkeyfile.c: Tighten up the check for allowed
-       key and group names.  (#343191, Tommi Komulainen)
-
-       * tests/keyfile-test.c: Test handling of key and group names.
-
-       * tests/Makefile.am: Don't use $RANDOM if the shell doesn't
-       have it.  (#346373, Thomas Klausner)
-
-2006-12-17  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gstring.c: Improve docs about string functions taking a
-       length.  (#378727)
-
-2006-12-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c:
-       * glib/gutf8.c (_g_charset_get_aliases): Put the G_GNUC_INTERNAL
-       where gcc doesn't complain about it.
-
-       * glib/ghash.c: Make ref_count an int to avoid compiler
-       warnings.
-
-       * configure.in: Use AC_LANG_SOURCE for the clock test.
-
-       * glib/gthreadpool.h:
-       * glib/gthreadpool.c (g_thread_pool_free): Don't use "wait"
-       as parameter name.  (#379207, Christian Biere)
-
-       * glib/gspawn.c: Refer to g_child_watch_add() in addition
-       to waitpid().
-
-       * glib/gstrfuncs.c (g_strndup, g_strnfill): Move docs
-       inline, and improve wording.  (#372598, Behdad Esfahbod)
-
-       * glib/gspawn.c: Add some pointers to the gdk_spawn_
-       variants.  (#338134, Federico Mena Quintero)
-
-       * configure.in: Make montonic clock test work again. Does
-       AC_COMPILE_IFELSE not get confdefs ? Also, move the clock
-       tests below the thread checks to fix #364663.
-
-       * tests/run-markup-tests.sh: Don't use diff -u  (#380801,
-       Marek Rouchal)
-
-       * glib/gspawn.c: Fix the recent fdwalk()-related changes
-       to not break mapping-test.  (#286838, Marco Barisione)
-
-       * glib/gstring.c (g_string_chunk_new): Don't shadow size.
-       (#386760, Kazuki IWAMOTO)
-
-2006-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstring.c: Move more documentation inline.
-
-       * configure.in: Use AC_COMPILE_IFELSE for the monotonic
-       clock test.  (#362918, Han-Wen Nienhuys, Jeremy Lainé)
-
-       * glib/gstring.c: Move documentation inline.
-
-2006-12-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/giochannel.h: Make ref_count a gint to avoid
-       compiler warnings.  (#321977, Andrew Paprocki)
-
-       * configure.in: On Solaris, set CFLAGS and LDFLAGS that
-       work both with Sun cc and gcc.  (#315061, Lazlo Peter)
-
-       * glib/gspawn.c: Undefine READ_OK to fix the build on
-       old versions of Darwin.  (#327800)
-
-       * glib/glib.symbols:
-       * glib/gstring.[hc] (g_string_chunk_clear): Add a function
-       for clearing a GStringChunk. (#364608, Matt Barnes)
-
-       * glib/guniprop.c (interval_compare): Avoid a compiler
-       warning.
-
-       * glib/gspawn.c (do_exec): Call set_cloexec() with
-       the right parameters.  (#386252, Guillaume Desmottes)
-
-2006-12-15  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix #357585, Padraig O'Briain.
-
-       * configure.in: Check for fdwalk.
-
-       * glib/gspawn.c (do_exec): Use fdwalk() to close all
-       file descriptors.
-
-       * glib/gspawn.c (fdwalk): Fallback implementation of
-       fdwalk.
-
-2006-12-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c (open_converter): Don't use alloca
-       and avoid allocating memory for small keys that are
-       already cached.  (#172406, Morten Welinder)
-
-       * glib/gmain.c (g_child_watch_add_full): Improve the docs.
-       (#345569, Tim-Philipp Müller)
-
-       * glib/gkeyfile.c (g_key_file_add_group): If the group
-       is already there, make it current.  (#385910, Joe Halliwell)
-
-       * tests/keyfile-test.c: Add a test for duplicate groups/keys.
-
-2006-12-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-gettext.m4: Require AC_CANONICAL_HOST in
-       GLIB_WITH_NLS.  (#385132, Laszlo Peter)
-
-2006-12-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Add a check for broken poll on Mac OS X.
-
-       * glib/gmain.c: Use poll emulation on OS X.  (#302672, Toby Peterson,
-       patch by Dave Vasilevsky)
-
-2006-12-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gatomic.c: Don't use local numeric labels in
-       inline assembler on AIX.  (#316434, Hans Rosenfeld)
-
-       * glib/gunicode.h (g_utf8_next_char): Cast to const char *,
-       not char *.  (#138153, Nikolai Weibull)
-
-Wed Nov 22 16:09:13 2006  Tim Janik  <timj@gtk.org>
-
-       * glib/gmacros.h: added G_GNUC_MAY_ALIAS, suggested by Mathias
-       Hasselmann in bug #335341, fixes bug #335853.
-
-2006-11-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-gettext.m4: Apply a patch from James
-       Henstridge for compatibility with automake 2.60 (#343825)
-
-2006-11-14  Behdad Esfahbod  <behdad@gnome.org>
-
-       * sanity_check: Replace bash-specific == with sh-understood =.
-       Fixes bug #373864.
-
-2006-11-05  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : glib/ version not the gobject/
-       one I accidentially commited. Fixes bug #371074.
-
-2006-11-05  Tor Lillqvist  <tml@novell.com>
-
-       * makefile.mingw
-       * gmodule/makefile.mingw.in
-       * glib/makefile.mingw.in
-       * gobject/makefile.mingw.in
-       * gthread/makefile.mingw.in
-       * tests/makefile.mingw.in: Remove from CVS. Haven't been
-       maintained or distributed for long.
-
-2006-10-26  Pascal Terjan  <pterjan@linuxfr.org>
-
-       * glib/libcharset/localcharset.c: Fix small leak on failed
-       realloc in _g_locale_get_charset_aliases (#338582)
-
-2006-10-16  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gnulib/Makefile.am: Add $(GLIB_DEBUG_FLAGS).  (#362543,
-       Peter Kjellerstedt)
-
-2006-10-15  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * tests/Makefile.am: Compile errorcheck-mutex-test with thread
-       libraries explicitly. (#74748, Javier Villavicencio)
-
-2006-10-08  Matthias Clasen  <mclasen@redhat.com>
-
-       Add a way to obtain Unicode script information.  (#348348,
-       Marco Barisione)
-
-       * glib/glib.symbols:
-       * glib/gunicode.h: Add GUnicodeScript enumeration and
-       g_unichar_get_script.
-
-       * glib/guniprop.c: Implement g_unichar_get_script.
-
-       * glib/gscripttable.h: Generated private header containing
-       script tables.
-
-       * glib/gen-script-table.pl: Script to generate gscripttable.h.
-
-       * glib/Makefile.am: Update
-
-2006-10-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/run-markup-tests.sh: Small portability fix.  (#347944,
-       Dan McMahill)
-
-2006-10-07  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c (get_package_directory_from_module)
-       (g_win32_get_package_installation_directory): g_strdup the keys
-       that we are passed before adding them to the hash tables, to guard
-       against the caller freeing them. (#355955, Andreas Köhler)
-
-2006-10-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtimer.c: Fix a typo.  (#359190)
-
-2006-10-02  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/Makefile.am:
-       * gobject/Makefile.am:
-       Include pltcheck.sh in EXTRA_DIST, and remove redefinition of TESTS.
-       (#358966)
-
-2006-10-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtimer.c (g_usleep): Use nsleep to implement
-       g_usleep on AIX.  (#321974, Andrew Paprocki)
-
-       * configure.in: Check for nsleep
-
-       * glib/gmain.c: Fix typos in doc comments.
-       (#358421, Tom Tromey)
-
-2006-09-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pltcheck.sh: A script to check PLT entries.
-       * glib/Makefile.am (TESTS): Run pltcheck.sh
-
-       * glib/*: Fix includes to correct some issues with
-       PLT entries.  (#354522, Behdad Esfahbod)
-
-2006-09-17  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in gobject/makefile.msc.in : better filtering
-       of G_GNUC_* stuff when generating .def files. Now also works with
-       newer (less tolerant) linkers, e.g. from vc2500e
-
-2006-09-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbacktrace.c: Assume string.h is available.
-       (#354523, Behdad Esfahbod)
-
-       * configure.in: Bump version to 2.13.0
-
-       * glib/glib.symbols:
-       * glib/gmain.[hc]: Add functions to create approximate
-       timeouts.  (#353942, Arjan van de Ven)
-
-       * glib/gstdio.c (g_rename): Initialize save_errno.
-       (#355206, Mike Edenfield)
-
-2006-09-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gerror.c: Allocate GErrors using the slice allocator.
-       (#354054, Matt Barnes)
-
-2006-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtimer.c: Forgotten HAVE_CLOCK_GETTIME.
-
-2006-09-02  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (g_get_any_init_do): Correct C99ism (mixed
-       declarations and code) in Win32 ifdef branch. (#353903, Mike
-       Edenfield)
-
-2006-09-01  Abel Cheung  <abel@oaka.org>
-
-       * configure.in: Added 'dz' 'hy' to ALL_LINGUAS.
-
-2006-09-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Check for CLOCK_MONOTONIC.
-
-       * glib/gtimer.c: Only use clock_gettime if we
-       have a monotonic clock.
-
-2006-08-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Add missing includes to a few test
-       programs.  (#353580, Chris Wilson)
-
-2006-08-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c (g_markup_vprintf_escaped): Don't call
-       va_end on caller-provided va_args.  (#353584, Chris Wilson)
-
-2006-08-29  Tor Lillqvist  <tml@novell.com>
-
-       Remove support for Windows 9x/ME, as will be done also in Pango
-       and GTK+. GTK+ hasn't worked on Win9x since 2.6 or 2.8 anyway, so
-       it's pretty pointless to keep the Win9x code in here either. If
-       somebody is interested, the code can always be found in older GLib
-       versions, and in CVS.
-
-       * glib/gdir.c
-       * glib/gfileutils.c
-       * glib/gspawn-win32-helper.c
-       * glib/gspawn-win32.c
-       * glib/gstdio.c
-       * glib/gutils.c
-       * glib/gwin32.c
-       * glib/gwin32.h: Remove the G_WIN32_IS_NT_BASED() and
-       G_WIN32_HAVE_WIDECHAR_API() tests and their false (Win9x)
-       branches, and any variables or static functions used only by the
-       Win9x branches.
-
-       * glib/gwin32.c (g_win32_windows_version_init): Call g_error() if
-       run on Win9x.
-
-2006-08-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Fix pthread compiler flag detection.
-
-       * glib/gtimer.c: Use Posix monotonic clocks instead of
-       gettimeofday when available.  (#336114, William Jon McCann)
-
-2006-08-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h:
-       * glib/gscanner.c: Fix some typos.  (#351741, Kjartan Maraas)
-
-2006-08-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Fix the pthread compiler flag detection.
-
-       * glib/gunicode.h:
-       * glib/gutf8.c (_g_utf8_make_valid): Rename make_valid_utf8
-       from gconvert.c, move it to gutf8.c, and export it privately.
-
-       * glib/gconvert.c (g_filename_display_name): Adjust callers.
-
-       * glib/gkeyfile.c: Use _g_utf8_make_valid() in a number of
-       places to ensure error messages are valid UTF-8.  (#351853,
-       Simon Budig)
-
-2006-08-22  Matthias Clasen <mclasen@redhat.com>
-
-       * Branch for 2.12
diff --git a/ChangeLog.pre-2-16 b/ChangeLog.pre-2-16
deleted file mode 100644 (file)
index 310bb59..0000000
+++ /dev/null
@@ -1,1794 +0,0 @@
-2008-03-12  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       Bug 316221 - G_LOCK warns about breaking strict-aliasing rules
-
-       * configure.in:
-       * glib/gthread.h: Prevent the compiler from warning about breaking
-       strict-aliasing rules when using gcc 4.3 and G_LOCK on C sources.
-
-2008-03-12  Tor Lillqvist  <tml@novell.com>
-
-       Bug 520914 - win_iconv doesn't support UCS-2
-       
-       * glib/win_iconv.c: Make UCS-2 just an alias for
-       UTF-16. Technically this is wrong of course, but shouldn't matter
-       an awful lot in practice.
-
-2008-03-11  Murray Cumming  <murrayc@murrayc.com>
-
-       Bug 521591 – g_markup_parse_context_parse() creates GError message that 
-       is invalid UTF8.
-
-       * glib/gmarkup.c (set_error): Make sure that the GError::message is 
-       valid UTF-8 even if it is complaining about invalid UTF-8 in the 
-       markup text, using _g_utf8_make_valid().
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.16.1 ===
-
-       * configure.in: Bump version
-
-       * NEWS: Updates
-
-       * glib/pcre/*: Update the internal copy of PCRE to 7.6, this time
-       for real.
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.0 ===
-
-       * NEWS: Updates
-
-       * configure.in: Bump version to 2.16.0
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslist.c: Fix a doc typo
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/giochannel.c (g_io_channle_set_encoding): Fix confusing
-       error message.  (#521028, Peter Kjellerstedt)
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/testglib.c: Still set the udddocs and uddpubshare 
-       variables for the verbose case.
-
-2008-03-07  Alexander Larsson  <alexl@redhat.com>
-
-        * configure.in:
-       Look for struct statfs.f_fstypename
-
-2008-03-07  Tor Lillqvist  <tml@novell.com>
-
-       * README.win32: Updates.
-
-2008-03-05  Tor Lillqvist  <tml@novell.com>
-
-       * glib/glib.symbols: Remove g_uri_get_scheme.
-
-2008-03-04  Alexander Larsson  <alexl@redhat.com>
-
-        * glib/gurifuncs.c:
-       Remove deprecated symbols we kept for one release.
-
-2008-03-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h: Add a version of G_INLINE_FUNC for
-       __GNUC__ && __GNUC_STDC_INLINE__, patch by Jakub Jelinek
-
-2008-03-03  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gspawn-win32.c (read_helper_report): Must set the GError
-       also in the unexpected EOF case.
-       (do_spawn_with_pipes): Must protect also new_argv[0].
-
-2008-03-01  Benjamin Otte  <otte@gnome.org>
-
-       * glib/glist.c:
-       fix last commit.
-
-2008-02-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslist.c: 
-       * glib/glist.c: Move docs inline, and improve the 
-       g_[s]list_delete_link docs.  (#519352, Owen Taylor)
-
-2008-02-29  Tor Lillqvist  <tml@novell.com>
-
-       * glib/win_iconv.c (name_to_codepage): Add some GNU libiconv
-       compatibility: Recognize "" and "char" as aliases for the current
-       locale's charset. (We use the system ANSI codepage as returned by
-       GetACP().) Recognize "wchar_t" as an alias for UTF-16LE.
-
-2008-02-27  Matthew Barnes  <mbarnes@redhat.com>
-
-       * glib/gchecksum.[ch] (g_checksum_update),
-       (g_compute_checksum_for_string): Make 'length' parameter
-       signed to accomodate passing negative lengths. (#510855)
-
-2008-02-26  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c (g_poll): Further patch by Vlad Grecescu: Drop the
-       code path that called WaitMessage(), as WaitMessage() doesn't
-       offer any chance for APCs to run. Instead just use the code path
-       with MsgWaitForMultipleObjectsEx() even for the
-       wait-only-for-messages case. (#517484)
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.15.6 ===
-
-       * NEWS: Updates
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestfuncs.c: Add Since: markers to docs.  (#518556, 
-       Jerry Yu)
-
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/glib.symbols:
-        * glib/gurifuncs.[ch]:
-        Rename g_uri_get_scheme to g_uri_parse_scheme.
-       Keep g_uri_get_scheme() symbol for this
-       unstable release to avoid breaking to many apps.
-
-2008-02-24  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (_glib_get_installation_directory): New internal function.
-
-       * glib/gspawn-win32.c: When spawning the helper process, use an
-       explicit full path. (#518292)
-
-       * glib/gspawn-win32.c
-       * glib/gspawn-win32-helper.c: Fix race condition when using the
-       helper process. This seems to fix #510664.
-
-       When the helper process writes the handle of the actual started
-       user process to the parent process, it must be duplicated in the
-       parent process with DuplicateHandle() so that it is a valid handle
-       in that process. However, if the helper process has happened to
-       exit before the DuplicateHandle() call, the duplication will
-       fail. Thus we must synchronise the helper process's exit. Use
-       another pipe for this.
-
-       Take care not to inherit the writing end of this pipe to the
-       helper process. Also, in the helper process, take care not to
-       inherit either of the pipes used for communication with the parent
-       process to the started user process.
-
-2008-02-24  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c (g_poll) [Win32]: Use alertable wait functions so
-       that I/O completion routines or user-mode Asynchronous Procedure
-       Calls can be run. (#517484, Vlad Grecescu)
-
-2008-02-24  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c
-       (g_win32_get_package_installation_directory_of_module): New
-       function. Supersedes g_win32_get_package_installation_directory()
-       and g_win32_get_package_installation_directory().
-
-       It makes more sense to have the function for this functionality
-       take a HMODULE as parameter instead of DLL name. The typical use
-       scenario has been to have a DllMain() function that retrieves the
-       full pathname for the DLL in question, and saves just the basename
-       of that. Then later code passes that saved dll basename to
-       g_win32_get_package_installation_directory(), which retrieves the
-       corresponding DLL handle, and then retrieves its full
-       pathname. (Which DLlMain() already had.) It is less convoluted to
-       have a DllMain() that just saves the DLL handle, and then when
-       needed call this function to get the corresponding installation
-       folder.
-
-       (get_package_directory_from_module): Use
-       g_win32_get_package_installation_directory_of_module().
-
-       (g_win32_get_package_installation_directory)
-       (g_win32_get_package_installation_subdirectory): Mention these
-       functions will be deprecated and recommend using
-       g_win32_get_package_installation_directory_of_module() instead.
-       
-       * glib/gwin32.h: Declare
-       g_win32_get_package_installation_directory_of_module().
-
-       * glib/glib.symbols: Add it.
-
-       * glib/gutils.h: Mention G_WIN32_DLLMAIN_FOR_DLL_NAME() will be
-       deprecated in the future.
-
-       * glib/gutils.c: Drop use of G_WIN32_DLLMAIN_FOR_DLL_NAME(). Use a
-       minimal DllMain() instead that just saves the DLL handle.
-       (g_win32_get_system_data_dirs_for_module, _glib_get_locale_dir)
-       (get_module_share_dir): Use
-       g_win32_get_package_installation_directory_of_module().
-
-2008-02-23  Matthias Clasen  <mclasen@redhat.com> 
-
-       * NEWS: Updates
-
-2008-02-23  Matthias Clasen  <mclasen@redhat.com> 
-
-       * glib/gkeyfile.c (g_key_file_get_string_list): Return
-       NULL when the key is not found.  (#513171, Дилян Палаузов)
-
-2008-02-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/testglib.c: Don't test user directories for being
-       non-null.  (#517084, Yevgen Muntyan)
-
-2008-02-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gasyncqueue.c:
-       * glib/gtestutils.c: Documentation fixes
-
-2008-02-21  Tor Lillqvist  <tml@novell.com>
-       
-       * glib/gutf8.c (g_get_charset)
-       * glib/gconvert.c (g_locale_from_utf8): Clarify character set
-       issues on Windows.
-
-2008-02-20  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gtestutils.c (g_test_trap_fork) [Win32]: Change the
-       g_error() to g_message() to avoid stopping on warnings. At least
-       now testglib runs to completion and the old tests in it get
-       exercised even if the newfangled ones don't.
-       (g_test_trap_assertions) [Win32]: Bypass on Windows.
-
-2008-02-17  Marco Barisione  <marco@barisione.org>
-
-       * glib/gregex.c: (translate_compile_error), (g_regex_new): Avoid some
-       useless casts from const gchar * to gchar *.  (#516597, patch by
-       Yevgen Muntyan)
-
-2008-02-17  Marco Barisione  <marco@barisione.org>
-
-       * glib/gregex.c: (match_info_new), (g_match_info_next): Don't return
-       duplicate matches when matching empty strings.  (#515944)
-       * tests/regex-test.c: Add tests.
-
-2008-02-17  Hans Breuer  <hans@breuer.org>
-
-       * glib/gutils.c : define CSIDL_MYPICTURES if not available
-       * gthread/gthread-win32.c : use G_STRFUNC instead of compiler 
-       specific __FUNCTION__
-
-2008-02-13  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c: Doc change: Deprecate passing anything but NULL
-       for the "package" parameter to
-       g_win32_get_package_installation_directory() and
-       g_win32_get_package_installation_subdirectory().
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.15.5 ===
-
-       * NEWS: Updates
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gtestutils.h: Make the g_test_add macro work with 
-       gcc 4.3
-
-       * tests/gobject/paramspec-test.c: Adapt to recent changes in 
-       GParamGType initialization.
-
-2008-02-10  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gtestutils.c: Fix a typo in the docs.
-
-2008-02-09  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Check for getmntent_r.
-
-2008-02-09  Matthias Clasen <mclasen@redhat.com>
-
-       * Makefile.decl: /bin/ksh can't handle a for-loop with no 
-       arguments, so add a "." for when $(SUBDIRS) is empty.
-
-       * glib/tests/option-context.c:
-       * glib/tests/testing.c:
-       * gthread/gthread-posix.c:
-       * tets/testingbase64.c:
-       * glib/gtester.c: 
-       * glib/gsequence.c: Portability fixes.  (#515154)
-
-2008-02-07  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Unfortunately the mingw implementations of
-       C99-style snprintf and vsnprintf don't seem to be quite good
-       enough, at least not in mingw-runtime-3.14. I don't know exactly
-       what the problem is, but it is related to floating point
-       formatting and decimal point vs. comma, and the symptoms show up
-       in some dialogs in GIMP, presumably also elsewhere. The simple
-       tests in AC_FUNC_VSNPRINTF_C99 and AC_FUNC_SNPRINTF_C99 aren't
-       rigorous enough to notice, though. So preset
-       ac_cv_func_vsnprintf_c99 and ac_cv_func_snprintf_c99 to "no".
-
-2008-02-07 12:58:54  Tim Janik  <timj@imendio.com>
-
-       * Makefile.am: fixed build order to build gobject after gmodule gthread
-       so gobject tests can be threaded.
-
-2008-02-07  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/gmessages.h (g_error): add for(;;); after the g_log call so
-       that GCC stops issuing false warnings about reachability  Bug #514920
-
-2008-02-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pcre/*: Update the internal copy of PCRE to 7.6
-
-2008-02-06  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/pltcheck.sh: Skip g_bit_*().  Inline functions may end up with
-       a local plt if the compiler doesn't support what we want.  Bug #514702
-
-2008-02-06  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/gconvert.c:
-       * glib/pcre/pcre_internal.h: Fixed some minor typos in documentation.
-
-2008-02-06  Christian Persch  <chpe@gnome.org>
-
-       * gio/gdesktopappinfo.c: (ensure_dir):
-       * gio/glocalfile.c: (g_local_file_query_filesystem_info),
-       (g_local_file_read), (g_local_file_delete), (g_local_file_trash),
-       (g_local_file_move):
-       * gio/glocalfileinfo.c: (set_xattr), (_g_local_file_info_get),
-       (_g_local_file_info_get_from_fd), (set_unix_mode),
-       (set_unix_uid_gid), (set_symlink), (set_mtime_atime):
-       * gio/glocalfileinputstream.c: (g_local_file_input_stream_read),
-       (g_local_file_input_stream_skip),
-       (g_local_file_input_stream_close),
-       (g_local_file_input_stream_seek):
-       * gio/glocalfileoutputstream.c: (g_local_file_output_stream_write),
-       (g_local_file_output_stream_close),
-       (g_local_file_output_stream_seek),
-       (g_local_file_output_stream_truncate), (copy_file_data),
-       (handle_overwrite_open):
-       * gio/gunixinputstream.c: (g_unix_input_stream_read),
-       (g_unix_input_stream_close), (read_async_cb), (close_async_cb):
-       * gio/gunixoutputstream.c: (g_unix_output_stream_write),
-       (g_unix_output_stream_close), (write_async_cb), (close_async_cb): Save
-       errno before calling other funcs that potentially alter it. Bug
-       #514766.
-
-2008-02-05 18:42:42  Tim Janik  <timj@imendio.com>
-
-       * configure.in: generate gobject/tests/Makefile.
-
-2008-02-05  Tor Lillqvist  <tml@novell.com>
-
-       * glib-zip.in: Include the gio import library and gio-2.0.pc in
-       the developer zipfile.
-
-2008-02-02  Jonathon Jongsma  <jjongsma@gnome.org>
-
-       * gio/gbufferedoutputstream.c:
-       * gio/gbufferedoutputstream.h: modify the new_sized() constructor to take a
-       gsize param instead of guint to match the GBufferedInputStream constructor.
-
-2008-02-03  Hans Breuer  <hans@breuer.org>
-
-       * **/makefile.msc.in : update
-
-2008-02-03  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * configure.in: Check for gmtime_r. Missing part of bug #511807.
-
-2008-02-01  Yannig Marchegay  <yannig@marchegay.org>
-
-       * configure.in: Add oc since oc.po is back.
-
-2008-01-31  Michael Natterer  <mitch@imendio.com>
-
-       * glib/gmem.c: use %G_GSIZE_FORMAT instead of %lu since sizes have
-       changed from gulong to gsize in this file.
-
-2008-01-30  Johan Dahlin  <johan@gnome.org>
-
-       * configure.in: Remove oc since oc.po is gone.
-
-2008-01-30  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * glib/gchecksum.c:
-       * glib/gtestutils.c:
-       * glib/gutils.c:
-
-       Fixed gtk-doc warnings by updating the documentation of
-       various functions.
-
-2008-01-29 14:58:31  Tim Janik  <timj@imendio.com>
-
-       * glib/gmem.[hc]: changed size argument type from gulong to gsize as
-       discussed on gtk-devel-list:
-         http://mail.gnome.org/archives/gtk-devel-list/2007-March/msg00062.html
-       this should be ABI compatible on all platforms except win64 for which
-       no ABI binding port exists yet.
-
-2008-01-29  Sebastian Wilhelmi  <wilhelmi@google.com>
-
-       * tests/threadpool-test.c (test_thread_pools): Grab
-       thread_counter_pools LOCK when increasing
-       leftover_task_counter. Fixes race in test. (#512624, Simon Murray)
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.4 ===
-
-       * NEWS: Updates
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Check for gmtime_r.  
-       * glib/gtimer.c: Use gmtime_r when available.  (#511807,
-       Sebastian Dröge)
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gnode.[hc]: Move docs inline.  (#316260, Philippe Blain)
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutf8.c (g_utf8_strreverse): Document limitations
-       of this function.  (#487909, Peter Moulder)
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (group_list_has_visible_entries):
-       Removed unused variable is_main_group.  (#512381,
-       Wouter Bolsterlee)
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmacros.h: Deprecate G_GNUC_(PRETTY)_FUNCTION. Bug #409360.
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-gettext.m4: Remove AC_CANONICAL_HOST from
-       GLIB_WITH_NLS again.  (#385132)
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Fix the pcre Unicode test to work with
-       LDFLAGS=-Wl,--as-needed.  (#484261, Mark Lee)
-
-2008-01-27  Murray Cumming  <murrayc@murrayc.com>
-
-       * gio/gfile.c: (g_file_replace_contents),
-       (g_file_replace_contents_finish): Document that the new_etags output 
-       gchar* should be freed.
-
-2008-01-25  Loïc Minier  <lool@dooz.org>
-
-       * glib/goption.c: (group_has_visible_entries),
-       (group_list_has_visible_entires), (g_option_context_get_help): Pass
-       context down the implementation to check for the main_group.
-       Bug #510292.
-       * glib/tests/option-context.c:
-       Don't set G_OPTION_FLAG_IN_MAIN in main_entries
-       (group_captions): only create group when actually adding it to the
-       context; add an exit(0) to make sure the test succeeds.
-
-2008-01-23  Jens Granseuer  <jensgr@gmx.net>
-
-       * glib/gtestutils.c: (g_test_trap_fork):
-       * glib/tests/testing.c: (test_assertions): Only declare variables at
-       the beginning of a code block. Bug #511654.
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.15.3 ===
-
-2008-01-21  Tor Lillqvist  <tml@novell.com>
-
-       * glib-zip.in: Add the gio DLL to the runtime zipfile.
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.3 ===
-
-       * NEWS: Updates
-
-2008-01-20  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/gchecksum.c: (g_checksum_update): Accept -1 for the data 
-       length if the data is a null-terminated string. Bug #510855.
-
-2008-01-21  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.in:
-       Only check for sys/inotify.h (see gio/ChangeLog) 
-
-2008-01-18 16:51:23  Tim Janik  <timj@imendio.com>
-
-       * glib/gutils.h: don't define __GNUC_PREREQ which is not in the glib
-       namespace. for gcc, define G_INLINE_FUNC to "static inline" as with
-       all other C compilers, because newer GCC versions incompatibly
-       changed "extern inline" semantics.
-
-2008-01-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/gfileutils.c:
-       * glib/gsequence.c:
-       * glib/gstring.c: Fixed some minor typos in the documentation.
-
-2008-01-16  Dan Winship  <danw@gnome.org>
-
-       * glib/gchecksum.c (md5_sum_update): Fix another bug (which
-       doesn't affect the results, but may cause it to read bad memory).
-
-2008-01-15  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/gurifuncs.c:
-       Clarify docs for g_uri_unescape_string() (#508773)
-
-2008-01-14  Dan Winship  <danw@gnome.org>
-
-       * m4macros/glib-2.0.m4: Support gio in AM_PATH_GLIB_2_0 (#509465)
-
-2008-01-15  Dan Winship  <danw@gnome.org>
-
-       * glib/gchecksum.c (md5_sum_update): fix this; the previous code
-       gave the wrong md5sum when called in certain ways with buffers
-       larger than 64 bytes.
-       (g_checksum_update): remove the unnecessary "length > 1"
-       restriction
-
-       * tests/checksum-test.c: Rewrite this to be much more exhaustive
-       (and in particular to test the md5_sum_update bugfix).
-
-2008-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.15.2 ===
-
-       * NEWS: Updates
-
-2008-01-14  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/gurifuncs.c:
-       Clarify docs for g_uri_escape_string (#508773)
-
-2008-01-12  Andre Klapper  <a9016009@gmx.de>
-
-       * configure.in: ALL_LINGUAS: remove line breaks from previous 
-       commit to get damned-lies stats correct again. Add Sinhala (si).
-
-2008-01-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestutils.c: Fix a docs typo
-
-2008-01-11 12:55:19  Tim Janik  <timj@imendio.com>
-
-       * tests/testingbase64.c: added g_base64_encode()/g_base64_decode()
-       test case by Asbjoern Pettersen. fixed up coding style.
-
-2008-01-11 09:00:28  Tim Janik  <timj@imendio.com>
-
-       * glib/Makefile.am (install-exec-hook): use mv/sed/rm on a temporary
-       file instead of "sed -i" which is not portable enough.
-
-2008-01-08  Alexander Larsson  <alexl@redhat.com>
-
-       * tests/cxx-test.C:
-       Add gio/gio.h include to check for c++ problems.
-
-2008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.15.1 ===
-
-2008-01-07  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.in:
-       Add gio/test/Makefile to AC_CONFIG_FILES
-
-2008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gregex.c: Add a translator comment (#503051, 
-       Pedro de Medeiros)
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h: Cope with gcc 4.3 changed 'extern inline'
-       semantics.  (#315437, patch by Loïc Minier)
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gspawn.c (fdwalk): Don't set open_max to
-       RLIM_INFINITY.  (#495589, Tommi Komulainen)
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * README.in, INSTALL.in: Document new dependencies.
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio-2.0.pc.in, gio-2.0-uninstalled.pc.in: Require glib-2.0
-       (#507628)
-
-2008-01-04  Mathias Hasselmann  <mathias@openismus.com>
-
-       Resolve 64 bit-shift bug in g_markup_collect_attributes.
-       Spotted by Lieven van der Heide.
-
-       * glib/gmarkup.c: Use G_GUINT64_CONSTANT in bit-shift.
-
-2008-01-02  Alvaro Lopez Ortega  <alvaro@sun.com>
-
-       * gio/gunixmount.c (g_unix_mount_unmount, g_unix_mount_eject):
-       These void functions were trying to return a value. It was causing
-       the compilation to fail.
-
-2008-01-02  Alvaro Lopez Ortega  <alvaro@sun.com>
-
-       * glib/ghash.c (g_hash_table_replace, g_hash_table_insert): These
-       functions prototype defines its output as void, and therefore they
-       should not return any value. This patch fixes a compilation error:
-       the "return" clauses were incompatible with the functions prototype.
-
-2007-12-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gslice.c: Remove C99 comments
-
-2007-12-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestutils.h:
-       * glib/glib.symbols: Mark assertion functions as G_GNUC_NORETURN.
-       (#506461, Sebastian Dröge)
-
-2007-12-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestutils.c: Include sys/time.h.  (#505258)
-
-2007-12-22  Mathias Hasselmann  <mathias@openismus.com>
-
-       Do not show empty groups in --help output. Initial patch from Yevgen
-       Muntyan. (#504142)
-
-       * glib/goption.c: Do not show empty groups in --help output.
-       * glib/tests/Makefile.am: Add option-context.c
-       * glib/tests/option-context.c: Test skipping of empty groups.
-
-2007-12-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Remove wrong documentation about start group
-       handling.  (#476856, Areg Beketovski)
-
-2007-12-21 18:02:30  Tim Janik  <timj@imendio.com>
-
-       * glib/Makefile.am: use "sed -i.bak <CMD> <FILE> && rm -f <FILE>.bak"
-       syntax for install-exec-hook, which seems to be the only "sed -i"
-       variant that is portable across linux and MacOS.
-
-2007-12-21  Matthias Clasen  <mclasne@redhat.com>
-
-       * glib/gtestutils.h: Bring up to GLib coding standards: remove
-       C99 comments, trailing commas in enumerations and extra ; after
-       G_BEGIN/END_DECLS. Among other things, this makes xulrunner build
-       against GLib 2.15.
-
-       * glib/gtester.c: More of the same
-
-2007-12-09  Hans Breuer  <hans@breuer.org>
-
-       * tests/gio-ls.c : adapt to recent api changes
-       * tests/testglib.c : variable declaration at the beginning of a block
-       
-       (Lieven van der Heide, #503602)
-       * win32-fixup.pl : process *.rc.in as well; substitute 
-       LT_CURRENT_MINUS_AGE
-       * glib/makefile.msc.in : alphabetic sorting of OBJECTS
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.15.0 ===
-
-       * NEWS: Updates
-
-       * glib/Makefile.am: Fix make dist
-
-2007-12-20 16:34:04  Tim Janik  <timj@imendio.com>
-
-       * glib/gtester-report: commented class definitions. moved HTML character
-       escaping out of javascript. fixed string->bool conversions. added performance
-       results to test case "Details" window.
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gchecksum.[hc] (g_checksum_new): Return NULL when 
-       the checksum_type is unknown.  (#501853)
-
-2007-12-20  Christian Persch  <chpe@gnome.org>
-
-       * glib/gchecksum.c (g_checksum_new): Use g_slice_new0, to fix
-       "conditional jump or move depends on uninitialised value(s)" error
-       from valgrind. Bug #504527.
-
-2007-12-20 15:17:04  Tim Janik  <timj@imendio.com>
-
-       * Makefile.decl: generate HTML reports for test-report perf-report full-report.
-
-2007-12-20 15:03:51  Tim Janik  <timj@imendio.com>
-
-       * glib/gtester-report: new python script that generates an HTML
-       unit test report from the XML files generated by gtester.
-
-       * glib/Makefile.am: install gtester-report in $bindir and configure
-       it upon installation (version number and python shebang).
-
-2007-12-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Add g_async_queue_new_full
-
-2007-12-19 20:30:18  Tim Janik  <timj@imendio.com>
-
-       * glib/gtestutils.c: capture g_log() messages and send to gtester.
-       also, send assertion messages to gtester.
-
-       * glib/gtester.c: add error messages to output log file.
-       force child poll loop to abort if waitpid() signaled child exit,
-       eventhough the child's report file descriptor wasn't closed.
-
-2007-12-19  Christian Persch  <chpe@gnome.org>
-
-       * glib/gchecksum.c: (g_checksum_type_get_length),
-       (g_checksum_get_digest):
-       * glib/gchecksum.h:
-       * glib/glib.symbols:
-       * tests/checksum-test.c: (test_checksum): Add
-       g_checksum_type_get_length, and change g_checksum_get_digest to use a
-       provided buffer instead of returning allocated memory. Bug #501853.
-
-2007-12-19  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gtimer.c (g_time_val_from_iso8601): Fix the date validation
-       check. (#503029)
-
-       * tests/testglib.c (various_string_tests): Add an invalid date
-       for testing the above fix.
-
-2007-12-19  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/gfileutils.[ch]:
-       * glib/glib.symbols:
-       Rename g_format_file_size_for_display to g_format_size_for_display.
-
-2007-12-18  Tim-Philipp Müller  <tim at centricular dot net>
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/gasyncqueue.c: (g_async_queue_new), (g_async_queue_new_full),
-         (g_async_queue_unref):
-       * glib/gasyncqueue.h: add g_async_queue_new_full() which takes a
-         GDestroyNotify function to free any remaining queue items when the
-         queue is destroyed after the final atomic unref (#367550).
-
-2007-12-18 13:45:23  Tim Janik  <timj@imendio.com>
-
-       * glib/gtestutils.[hc]: added g_test_trap_assert_stdout_unmatched() and
-       g_test_trap_assert_stderr_unmatched(), based on a suggestion by Mathias
-       Hasselmann. reworked g_test_trap_assertions() to use flags to encode
-       assertion semantics, fixes #504227.
-
-2007-12-16  Mathias Hasselmann  <mathias@openismus.com>
-
-       * glib/gutils.c:
-       Allow NULL strings in g_parse_debug_string. (#503862, Matthew Barnes)
-
-2007-12-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/ghash.[hc]: Add hash table iterators.  (#500507,
-       Jean-Yves Lefort)
-
-       * tests/hash-test.c: Test iterators. 
-
-2007-12-13  Mathias Hasselmann  <mathias@openismus.com>
-
-       Give exmples in error message unsupported case-changing escape
-       sequences. (503222)
-
-       * glib/gregex.c: Add examples to error message for PCRE-ERR37.
-
-2007-12-13  Bastien Nocera  <hadess@hadess.net>
-
-       * glib/gtimer.c: (g_time_val_from_iso8601):
-       Don't try to parse dates that start with anything but a
-       digit, a plus or a minus sign, as those can't be valid
-       ISO8601 dates (Closes: #503029)
-
-2007-12-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_clear): Free group_hash.
-       (#503420, Christian Persch)
-
-2007-12-12 16:06:11  Tim Janik  <timj@imendio.com>
-
-       * tests/testglib.c: split up tests and reworked code to use
-       the new test framework.
-
-       * tests/Makefile.am: added testglib to TEST_PROGS.
-
-2007-12-11 Rahul Bhalerao <b.rahul.pm@gmail.com>
-
-       * configure.in: Added entry for Marathi Translations
-
-2007-12-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.h: Include gurifuncs.h
-
-2007-12-10  Benjamin Otte  <otte@gnome.org>
-
-       * glib/garray.h: use an intermediate cast to void * in g_array_index()
-       to not trigger cast alignment warnings, fixes #502927.
-
-2007-12-10 15:08:59  Tim Janik  <timj@imendio.com>
-
-       * let g_warn_if_fail replace g_assert as discussed here:
-         http://mail.gnome.org/archives/gtk-devel-list/2007-October/msg00089.html
-
-       * fix bug #502498: Test framework assertion failures should follow
-       gcc error format.
-
-       * gmessages.h, gmessages.c: deprecated g_assert_warning() which is
-       unused now. removed g_assert*() definitions whcih are provided by 
-       gtestutils.h now. added g_warn_if_reached() and g_warn_if_fail()  
-       which are recommended as g_assert/g_assert_not_reached replacements
-       for non-test programs.
-       added g_warn_message() to implement g_warn_*() macros.
-       use emacs-next-error friendly formatting for file:line: for warnings.
-
-       * gtestutils.h, gtestutils.c: use emacs-next-error friendly formatting.
-       implement g_assert_not_reached() with g_assertion_message() and
-       g_assert() in terms of g_assertion_message_expr() so we'll be able to
-       provide assertion messages in test logs.
-
-       * gkeyfile.c, gbookmarkfile.c: changed g_assert*() to g_warn_if_fail()
-       or g_return_if_fail() where suitable.
-
-       * gio/: changed g_assert to g_warn_if_fail.
-
-2007-12-10 13:02:08  Tim Janik  <timj@imendio.com>
-
-       * glib/gtestutils.c (g_assertion_message_cmpnum): applied patch by Tommi
-       Komulainen to fix int64 printouts, fixes #502511.
-
-2007-12-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.h:
-       * glib/gstrfuncs.c (g_dpgettext): Change prototype to take 
-       msgctxtid + offset instead of two strings, to avoid duplication
-       of string constants if the compiler/linker don't perform constant
-       suffix merging.  (#502590, Christian Persch)
-
-       * glib/gi18n.h:
-       * glib/gi18n-lib.h: Adapt the definitions of C_() and Q_().
-
-2007-12-09  Hans Breuer  <hans@breuer.org>
-
-       * tests/gio-ls.c : (new file) a test program emulating some of 'ls'
-       * tests/makefile.msc.in : build it (currently on win32)
-
-       * **/makefile.msc glib/makefile.msc.in : removed -GD to compile
-       with msvc9 (vs2008) with less complains
-       
-       * glibconfig.h.win32.in : #define G_HAVE_ISO_VARARGS 1 for
-       msv8 (vs2005) and above
-       
-       * glib/gfileutils.c : s/stricmp/_stricmp/
-       * msvc_recommended_pragmas.h : work around Microsoft's premature 
-       attempt to deprecate the C-Library
-
-       * tests/makefile.msc.in : added checksum-test
-
-2007-12-08  Christian Persch  <chpe@gnome.org>
-
-       * gio/glocalfileinfo.c: (get_thumbnail_attributes): Add forgotten
-       #ifdef G_OS_WIN32 to fix the build on linux.
-
-2007-12-08  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : build gchecksum.obj
-
-2007-12-06  Mathias Hasselmann  <mathias@openismus.com>
-
-       * glib/ghash.c: Call destroy notify when destroying
-       the hash table in g_hash_table_unref.
-
-2007-12-06 13:29:00  Tim Janik  <timj@imendio.com>
-
-       * glib/gtester.c (child_report_cb): detect non-blocking fd EOF
-       by read()==0 following poll(), needed on MacOS.
-
-2007-12-06  Mathias Hasselmann  <mathias@openismus.com>
-
-       * glib/gunidecomp.c: Mention g_utf8_normalize()
-       returns NULL on invalid string. (#501997)
-
-2007-12-06  Mathias Hasselmann  <mathias@openismus.com>
-
-       * glib/gerror.c: Improve wording for g_propagate_error docs.
-
-2007-12-06 09:27:42  Tim Janik  <timj@imendio.com>
-
-       * tests/scannerapi.c: added new scanner test from #501654, by
-       Patrick Hulin with various modifications.
-       reworked coding style, adapted to new testing framework, fixed
-       token parser test and use a forked sub process to test
-       g_scanner_error() output messages.
-
-2007-12-05 17:58:18  Tim Janik  <timj@imendio.com>
-
-       * glib/gtester.c: added -m=thorough support to gtester.
-
-2007-12-05 17:21:05  Tim Janik  <timj@imendio.com>
-
-       * glib/glib/gtestutils.c: print out random seed for verbose tests,
-       also adapted test result reporting slightly in verbose mode to allow
-       custom debugging output. support "thorough" as test mode alis for "slow".
-
-       * glib/glib/gtestutils.h: added g_test_thorough().
-
-       * glib/glib/gtester.c: print out the last random seed when tests fail.
-       added result attribute to test case status logging to easily spot
-       failing tests in log files. disabled debugging output when skipping tests.
-
-2007-12-05 11:43:22  Tim Janik  <timj@imendio.com>
-
-       * glib/gtestutils.[hc]: added g_test_add_data_func() to pass data
-       into tests. allow data arguments for fixture tests.
-
-       * glib/gtestutils.c: fixed fatal log flag setup, so tests really abort
-       upon criticals/warnings/errors.
-
-       * glib/tests/testing.c: test test_data arguments.
-
-       * glib/gtester.c: some prototype fixups.
-
-2007-12-05  Tor Lillqvist  <tml@novell.com>
-
-       * glib/win_iconv.c: Add "shift-jis" as an alternative spelling of
-       "shift_jis".
-
-2007-12-05  Ryan Lortie  <desrt@desrt.ca>
-
-       * autogen.sh: for the benefit of git users, checkout build/ if it is
-       missing
-       * .gitignore: but after that, ignore it.
-
-2007-12-05  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: ungtk-docify some comments for internal functions
-
-2007-12-04  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * gio/glocalfileinfo.c: Replace the copy-and-paste MD5 digest
-       generation with GChecksum.
-
-2007-12-04  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gchecksum.[ch]: Add GChecksum, a generic wrapper around
-       various hashing algorithms. At the moment, the MD5, SHA-1 and
-       SHA-256 algorithms are supported. (#443648)
-
-       * glib/glib.h:
-       * glib/Makefile.am:
-       * glib/glib.symbols: Build glue for GChecksum
-
-       * tests/Makefile.am
-       * tests/checksum-test.c: Add test suite for GChecksum.
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: no code changes; add comments to document the internal
-       functions.
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: no code changes; reorder functions to remove the need
-       for forward declarations.
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c (g_hash_table_lookup_node,
-       g_hash_table_lookup_extended, g_hash_table_insert_internal,
-       g_hash_node_new): improve clarity in some functions
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: rename 'node' to 'node_ptr' where appropriate
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: convert G_HASH_TABLE_RESIZE() macro to inline function
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/glib.symbols (glib_gettext): remove stray (duplicate) entry
-       from file to fix the build
-
-2007-12-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gnulib/Makefile.am: Fix EXTRA_DIST automake warnings. (#501107)
-
-2007-12-03  Hans Breuer  <hans@breuer.org>
-
-       * glib/glib.symbols : added glib_gettext (in use by gio)
-       * makefile.msc : also try building gio
-       
-       * glib/gmarkup.c : use G_GUINT64_CONSTANT() to avoid 
-       'bad suffix on number'
-       * glib/gtestutils.c : declare cariable at the beginning of the block,
-       include <io.h> for G_OS_WIN32
-       * makefile.msc.in : add gurifuncs and gtestutils
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: create a common function for the many places where all
-       nodes in the table are removed (remove_all, steal_all, destroy, unref,
-       etc...)
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * tests/hash-test.c (second_hash_test): fix memory leak, add a few
-       extra sanity tests.
-
-2007-12-03  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/gkeyfile.c: Don't call g_get_language_names() per-key.
-       (#500638, Michael Meeks)
-
-2007-12-03  Marco Barisione <marco@barisione.org>
-
-       * glib/gregex.c:
-       * glib/gregex.h: Add new error codes for when compilation fails and
-       make compilation error translatable. (#482313, Morten Welinder)
-
-2007-12-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Add a hash table to speed up group lookups,
-       which GKeyFile does quite a lot.  
-
-2007-12-03  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.in:
-       Add xattr checks for OSX style API (#500506)
-
-2007-12-03  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c: merge more common code into functions.  Vastly
-       simplify loop logic in g_hash_table_foreach_remove_or_steal().
-
-2007-12-01  Behdad Esfahbod  <behdad@gnome.org>
-
-       * Makefile.am: Don't descend into build/. (#500875)
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.h:
-       * glib/gmarkup.c: 
-       * glib/gerror.c: Add Since: tags to new API, other doc improvements.
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gurifuncs.c: Some doc cleanups
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestutils.c: Fix up some doc comments, avoid C99 comments
-
-       * glib/gconvert.c: De-doc-commentify static functions to
-       shut up gtk-doc.
-
-       * glib/gutils.c: Fix the glib_gettext doc comment.
-
-2007-11-28  Tor Lillqvist  <tml@novell.com>
-
-       * config.h.win32.in: Update to match what configure produces.
-
-2007-11-28  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/gstring.c (g_string_append_uri_escaped):
-       Move this function before g_string_append_c so that
-       we avoid the plt call due to the undefinf of g_string_append_c
-
-2007-11-28  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * gio/Makefile.am: Remove makegioalias.pl from the marshal files
-       and avoid it being cleaned up when running make clean.
-
-2007-11-28  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/glib.symbols:
-       Add in the new symbols
-       
-       * glib/gurifuncs.c:
-       Use the aliases framework
-       
-       * glib/glibintl.h:
-       * glib/gutils.c:
-       Make the alias stuff work now that glib_gettext
-       is exported to libgio. 
-
-2007-11-27  Ryan Lortie  <desrt@desrt.ca>
-
-       * glib/ghash.c (g_hash_table_insert, g_hash_table_replace,
-       g_hash_table_insert_internal): insert/replace were identical except
-       for a single line.  Replace both with a common function.
-
-2007-11-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/Makefile.am:
-       * gio/gurifuncs.[ch]:
-       * glib/Makefile.am:
-       * glib/gstring.[ch]:
-       * glib/gurifuncs.[ch]:
-       Moved gurifuncs from gio to glib
-
-2007-11-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.[ch]:
-       * glib/gfileutils.[ch]:
-       Move g_format_file_size_for_display from gio to glib
-
-2007-11-27  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.in:
-       Allow configuration of gio-module-dir
-       
-       * gio-2.0.pc.in:
-       Export giomodules location as giomodule variable
-
-2007-11-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/markup-collect.c: Add some tests for invalid booleans
-
-2007-11-26  Ryan Lortie  <desrt@desrt.ca>
-       Add new function g_markup_collect_attributes (bug #496847).
-       * glib/glib.symbols: add g_markup_collect_attributes
-       * docs/reference/glib/glib-sections.txt: 
-       * glib/gmarkup.h:
-       * glib/gmarkup.c: add g_markup_collect_attributes and new enumerated
-       type GMarkupCollectType.  Add new error code
-       G_MARKUP_ERROR_MISSING_ATTRIBUTE that is thrown by the attribute
-       collector.
-
-2007-11-27  Tor Lillqvist  <tml@novell.com>
-
-       * glib/win_iconv.c: Some improvements, being upstreamed.
-       (must_use_null_useddefaultchar): New function, checks for those
-       codepages for which one must pass a NULL lpUsedDefaultChar pointer
-       to WideCharToMultiByte().
-       (kernel_wctomb): Use it.
-       (kernel_wctomb): Return with E2BIG immediately if bufsize is zero.
-
-2007-11-27  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (_glib_get_locale_dir) [Win32]: Use either
-       lib/locale or share/locale depending on which one is in
-       GLIB_LOCALE_DIR. When the configury recognizes GNU gettext (based
-       on the _nl_msg_cat_cntr variable, eek), share/locale gets used.
-
-       * glib-zip.in: Likewise, look for message catalogs either in
-       lib/locale or share/locale.
-
-2007-11-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gfileattribute.c: Fix up a doc comment.
-
-2007-11-26  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * configure.in:
-       * gio-2.0-uninstalled.pc.in:
-       * gio-2.0.pc.in: 
-       * gio-unix-2.0-uninstalled.pc.in:
-       * gio-unix-2.0.pc.in:
-       * gio/
-       * docs/reference/gio
-       Merged gio-standalone into glib.
-       
-       * glib/glibintl.h:
-       * glib/gutils.c:
-       Export glib_gettext so that gio can use it
-       Add P_ (using same domain for now)
-       Add I_ as g_intern_static_string
-
-2007-11-26  Tor Lillqvist  <tml@novell.com>
-
-       * glib/win_iconv.c: ISO8859-1 is CP28591, not CP1252.
-
-2007-11-26  Tor Lillqvist  <tml@novell.com>
-
-       Implement #491549: On Windows, always use the native API for
-       character set conversions instead of GNU libiconv. Almost all
-       codesets supported by GNU libiconv exist as Windows codepages.
-       One missing feature is the "C99" and "JAVA" pseudo codesets, but I
-       doubt that is worth worrying about.
-       
-       * glib/win_iconv.c: New file. iconv() implementation for
-       Windows. Placed in the public domain by Yukihiro Nakadaira
-       <yukihiro.nakadaira@gmail.com>. From
-       http://yukihiro.nakadaira.googlepages.com/win_iconv.zip, his
-       2007-11-17 version.
-
-       * glib/gconvert.c: Include win_iconv.c on Windows.
-
-       * glib/Makefile.am: Add win_iconv.c to EXTRA_DIST.
-       
-       * configure.in: Bypass iconv checks on Windows. 
-
-2007-11-25  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gtestutils.c: Add conditionals for non-Unix. Just g_error()
-       unless G_OS_UNIX for now.
-
-2007-11-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Require gtk-doc 1.8.
-
-       * glib/gasyncqueue.c:
-       * glib/gdate.c:
-       * glib/gfileutils.c:
-       * glib/gmain.c:
-       * glib/gmarkup.c:
-       * glib/gregex.c:
-       * glib/gtestutils.c:
-       * glib/gutils.c: Use gtk-doc abbreviations for 
-       examples in doc comments.
-
-2007-11-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * */Makefile.am: Replace INCLUDES by AM_CPPFLAGS, other
-       cleanups.
-
-2007-11-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/base64-test.c: Fix a memory overrun.
-
-2007-11-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c: Remove leftover ENABLE_NLS #ifdefs.
-
-2007-11-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbase64.c (g_base64_encode): Don't refuse to encode
-       a single byte.  (Milan Crha)
-
-       * tests/base64-test.c: Test encoding short strings.
-
-2007-11-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gi18n-lib.h: 
-       * glib/gi18n.h: Define a two-argument macro C_() for marking
-       translatable strings with context and implement C_() and Q_()
-       using g_dpgettext().  (#142676, Morten Welinder)
-
-       * glib/glib.symbols:
-       * glib/gstrfuncs.[hc]: Implement g_dpgettext().
-
-2007-11-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c: Use g_print to print out --help text in 
-       locale encoding.  (#469551, Takao Fujiwara)
-
-2007-11-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Set length out param in list-returning functions
-       to 0 when returning NULL.  (#498728, Christian Persch)
-
-2007-11-21 21:06:47  Tim Janik  <timj@imendio.com>
-
-       * Makefile.decl: initialize automake variables EXTRA_DIST and
-       TEST_PROGS for unconditional appending via += in other makefiles.
-       define recursive test targets: test, test-report, perf-report,
-       full-report, as described here:
-       http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html
-
-       * Makefile.am:
-       * build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
-       * build/win32/Makefile.am, build/Makefile.am:
-       * docs/Makefile.am, docs/reference/Makefile.am:
-       * docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
-       * gmodule/Makefile.am, tests/Makefile.am:
-       * tests/refcount/Makefile.am, tests/gobject/Makefile.am:
-       * glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
-       * glib/tests/Makefile.am, glib/pcre/Makefile.am:
-       * glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
-       * gthread/Makefile.am, glib/Makefile.am:
-       include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.
-
-       * glib/tests/Makefile.am: removed example testing rules.
-
-       * glib/tests/testing.c: conditionalized performance and slow tests.
-
-       * glib/gtestutils.h:
-       * glib/gtestutils.c: work around g_test_config_vars not changing its
-       exported value after value assignments, aparently due to symbol aliases.
-
-       * glib/gtester.c: fixed off-by-one error which produced junk in logs.
-
-       * configure.in: check for python >= 2.4 and provide $PYTHON for scripts.
-
-Tue Nov 20 15:59:55 2007 +0100 Tim Janik
-
-       Renamed gtestframework to gtestutils.
-
-       * glib/glib.h:
-       * glib/Makefile.am: added gtestutils.h to public includes.
-
-       * glib/gtestutils.c: include gtestutils.h.
-
-       * glib/gtestutils.h:
-       * glib/glib.symbols:
-       * glib/tests/testing.c: renamed gtestframework to gtestutils.
-
-       * glib/gtestframework.h: renamed to gtestutils.h.
-
-       * glib/gtestframework.c: renamed to gtestutils.c.
-
-Tue Nov 20 15:29:34 2007 +0100 Tim Janik
-
-       glib/gtestframework.c: g_test_init(): make warnings and criticals fatal for all test programs.
-
-Wed Nov 14 20:35:05 2007 +0100 Tim Janik
-
-       gtestframework.c: added test API documentation by Sven Herzberg and Tim Janik.
-
-Wed Nov 14 19:10:28 2007 +0100 Tim Janik
-
-       gtestframework.[hc]: implemented g_test_queue_destroy() and g_test_queue_unref().
-
-Fri Nov 9 12:28:52 2007 +0100 Tim Janik
-
-       Added g_test_bug() and related API.
-
-       * gtester.c: handle G_TEST_LOG_MESSAGE and test test message API.
-
-       * gtestframework.h, gtestframework.c: added test message API and convenience
-       API to send test messages about bug URLs.
-
-Fri Nov 9 11:35:11 2007 +0100 Tim Janik
-
-       Added API to access test framework configuration.
-
-       * gtestframework.h, gtestframework.c: export testing configuration to test
-       programs with g_test_quick(), g_test_perf(), g_test_verbose(), g_test_quiet().
-
-Thu Nov 8 17:55:09 2007 +0100 Tim Janik
-
-       gtester: implemented logic to handle failing tests, self tests, and validate XML reports.
-
-       * gtester.c: terminate when tests failed. keep XML valid when test cases fail.
-       restart test binaries when tests fail, resuming after the last processed test.
-       support --gtester-selftest to run gtester itself as test program.
-       support --test-arg=<arg> to pass args along to test programs. added
-       main_selftest() which does a simplistic fixture test. fail if exit
-       code of test programs is not 0.
-
-       * gtestframework.h: added G_TEST_LOG_SKIP_CASE test log message type.
-
-       * gtestframework.c: support --GTestSkipCount=<n> to skip a number of tests.
-
-       * tests/Makefile.am: added test-report: for demonstration purposes.
-       added gtester-xmllint-check: and hooked it up into check:, this rule calls
-       gtester as test program, running it's selftest, and then uses xmllint to
-       validate the generate XML test log file.
-
-Thu Nov 8 14:51:37 2007 +0100 Tim Janik
-
-       gtester: implemented XML logging.
-
-       * glib/gtester.c: log test messages to XML output file. beautified normal test
-       result output.
-
-       * glib/gtestframework.c: fixed GTimer leak.
-
-       * glib/tests/Makefile.am: start gtester with --verbose.
-
-Thu Nov 8 12:33:31 2007 +0100 Tim Janik
-
-       tests/Makefile.am: execute test programs with gtester, add test: to check:
-
-Thu Nov 8 12:18:51 2007 +0100 Tim Janik
-
-       Fixed PLT symbol exports for gtestframework.h.
-
-       * glib/glib.symbols: added all exported gtestframework.h symbols.
-
-       * glib/gtestframework.c: include galias.h, galiasdef.c, define __G_TESTFRAMEWORK_C__.
-
-Thu Nov 8 11:31:12 2007 +0100 Tim Janik
-
-       glib/gtester.c: fixed debugging flag.
-
-Wed Nov 7 17:56:26 2007 +0100 Tim Janik
-
-       fixed bogus unistd.h include.
-
-Wed Nov 7 17:53:30 2007 +0100 Tim Janik
-
-       Implemented test log IPC.
-
-       * gtester.c: read and decode log messages from test binary child processes.
-       fixed GIOChannel and child watch handling to process all messages and avoid
-       hangs. pass --verbose and --quiet on to children, default to --quiet.
-
-       * gtestframework.h: export g_test_log_type_name().
-
-       * gtestframework.c: send test log to --GTestLogFD=<fd> if given, removed
-       bogus -o-option.
-
-Tue Nov 6 20:07:44 2007 +0100 Tim Janik
-
-       gtester.c: support test case listing through gtester.
-
-Tue Nov 6 20:01:06 2007 +0100 Tim Janik
-
-       gtestframework.c: fixed testpath matches for automatic root suite.
-
-Tue Nov 6 19:50:33 2007 +0100 Tim Janik
-
-       gtester.c: adapted to become a rudimentary test binary launcher.
-
-       * gtester.c: increased read buffer size to match common unix pipe buffer size.
-       added argument parsing and usage. changed io handling to capture and replicate
-       stdout. fixed io handlers to be cleaned up when the child process exits (catch
-       G_IO_ERR | G_IO_HUP). we now use pending/iteration instead of a main loop
-       structure, to keep running until the child process exits and all io has been
-       processed. launch the test binaries given on the command line. don't quit when
-       a child couldn't be launched but --keep-going was specified.
-
-Tue Nov 6 17:11:37 2007 +0100 Tim Janik
-
-       Integrated gtester program into build process.
-
-       * Makefile.am: build and install gtester binary.
-
-       * gtester.c: fixed up coding style and removed hard wired test coded.
-
-Tue Nov 6 16:12:32 2007 +0100 Sven Herzberg
-
-       glib/gtester.c:Small -Wall fix
-
-Tue Nov 6 16:05:06 2007 +0100 Sven Herzberg
-
-       glib/gtester.c:Implemented nonblocking reading properly now
-
-Mon Nov 5 13:53:23 2007 +0100 Sven Herzberg
-
-       glib/gtester.c:Quit the application when the output is parsed completely, not just the process finished
-
-Mon Nov 5 12:00:16 2007 +0100 Sven Herzberg
-
-       glib/gtester.c:Read the output of the child process
-
-Mon Nov 5 11:50:59 2007 +0100 Sven Herzberg
-
-       glib/gtester.c:Use g_spawn_async_with_pipes()
-
-Mon Nov 5 11:50:08 2007 +0100 Sven Herzberg
-
-       glib/gtester.c:Spawn a process async and quit gtester after the child process exited
-
-Mon Nov 5 11:30:45 2007 +0100 Sven Herzberg
-
-       glib/gtester.c:Added a first revision of gtester
-
-Tue Nov 6 16:47:06 2007 +0100 Tim Janik
-
-       Implemented test log serialization.
-
-       * glib/gtestframework.h: added g_test_log*() API.
-
-       * glib/gtestframework.c: implement test log serialization.
-
-Tue Nov 6 14:24:54 2007 +0100 Tim Janik
-
-       Implemented test logging basics.
-
-       * glib/gtestframework.c: added --debug-log and --verbose, implemented
-       test information logging.
-
-       * testing.c: test g_test_maximized_result() and g_test_minimized_result().
-
-Tue Nov 6 11:52:14 2007 +0100 Tim Janik
-
-       Implemented g_test_timer*().
-
-       * gtestframework.c: implemented g_test_timer*().
-
-       * tests/testing.c: added a g_test_timer*() test.
-
-Mon Nov 5 18:28:24 2007 +0100 Tim Janik
-
-       Implemented support for testpaths.
-
-       * gtestframework.c: implemented g_test_add_vtable() and g_test_add_func().
-
-       * tests/testing.c: use g_test_add() and g_test_add_func() to majorly simplify main().
-
-Mon Nov 5 15:56:42 2007 +0100 Tim Janik
-
-       testing.c: added tests for the g_test_rand*() API.
-
-Mon Nov 5 15:55:38 2007 +0100 Tim Janik
-
-       Implemented g_test_rand*().
-
-       * gtestframework.h: fixed g_assert_cmp*() to evaluate arguments only once.
-       added g_assert_cmpuint(). completed g_test_rand*() to cover bits, ints,
-       doubles and ranges.
-
-       * gtestframework.c: fixed "--seed" option and implemented g_test_rand*().
-
-Mon Nov 5 15:51:43 2007 +0100 Tim Janik
-
-       testing.c: added tests for g_assert_cmphex() and forked test traps.
-
-Mon Nov 5 15:10:18 2007 +0100 Tim Janik
-
-       Implemented g_test_trap_fork() API.
-
-       * gtestframework.h: added g_assert_cmphex(). reworked g_test_trap*() API.
-
-       * gtestframework.c: implemented g_test_trap_fork() API.
-
-Thu Nov 1 15:05:07 2007 +0100 Tim Janik
-
-       * glib/gtestframework.c:
-
-       that match a given test path.
-       (g_test_run_suite): run suite only if it matches the existing test paths.
-
-       * glib/tests/testing.c: minor rename.
-
-Thu Nov 1 13:45:55 2007 +0100 Tim Janik
-
-       GTest framework started.
-
-       * glib/gtestframework.h: testing framework API as proposed on gtk-devel-list.
-       includes elaborate assertions, performance report functions, test traps,
-       test timer, test random numbers, teardoiwn garbage collection functions
-       and general test case / test suite management APIs.
-
-       * glib/gtestframework.c: first test framework implementation. already covers
-       some test suite management APIs and assertion message implementations.
-
-       * glib/tests/testing.c: test program for the testing framework.
-
-       * glib/tests/Makefile.am: complie testing.c as test. run all tests as part of
-       make test:.
-
-Wed Oct 31 15:42:48 2007 +0100 Tim Janik
-
-       glib/Makefile.am: build tests/ subdir after building libglib.
-
-Tue Oct 30 16:17:32 2007 +0100 Tim Janik
-
-       Fixed up internal 'g_test*' names.
-
-       * refcount/signals.c:
-       * refcount/objects.c:
-       * refcount/objects2.c:
-       * refcount/closures.c:
-       * refcount/properties.c:
-       * refcount/properties2.c: changed namespace prefix from g_test_* to my_test_*
-       to not clash with newly introduced g_test* API in glib.
-
-Tue Oct 30 14:41:26 2007 +0100 Tim Janik
-
-       Added gtestframework.[hc] and glib/tests/.
-
-2007-11-20  Sven Neumann  <sven@gimp.org>
-
-       * glib/gerror.c (g_error_add_prefix): use g_strconcat() instead of
-       g_strjoin() to concatenate two strings.
-
-2007-11-19  Marco Barisione  <marco@barisione.org>
-
-       * glib/gregex.c: When the compilation of a pattern fails in the error
-       message use the character offset and not the byte offset.
-
-       * glib/gregex.c: Pass an unsigned long instead of an int to
-       pcre_fullinfo() to avoid problems on 64-bit systems (#498113, Kouhei
-       Sutou)
-
-2007-11-19 10:30:33  Tim Janik  <timj@imendio.com>
-
-       * configure.in: updated version number to 2.15.0 for development.
-
-2007-11-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbase64.c: Documentation improvements.  (#496518,
-       Stefan Schulze Frielinghaus)
-
-2007-11-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Check whether assembler supports numerical local
-       labels.  
-
-       * glib/gatomic.c: Fix powerpc implementation of atomic ops for 
-       platforms where the assembler doesn't support numerical local
-       labels.  (#445362)
-
-2007-11-15  Ryan Lortie  <desrt@desrt.ca>
-
-       * docs/reference/glib/tmpl/markup.sgml:
-       * glib/gmarkup.h:
-       * glib/gmarkup.c: new flag G_MARKUP_PREFIX_ERROR_POSITION to cause the
-       parser to prepend location information (ie: "Error on line %d, char
-       %d:") to errors generated by the GMarkupParser callbacks.
-
-       Closes #496046.
-
-2007-11-15  Ryan Lortie  <desrt@desrt.ca>
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/glib.symbols:
-       * glib/gerror.h:
-       * glib/gerror.c: new functions g_prefix_error and
-       g_propagate_prefixed_error.
-
-2007-11-13  Cody Russell  <bratsche@gnome.org>
-
-       * docs/reference/gobject/gobject-docs.sgml:
-       * docs/reference/gobject/tut_gsignal.xml:
-       * docs/reference/gobject/tut_gtype.xml:
-       * docs/reference/gobject/tut_intro.xml:
-       * docs/reference/gobject/tut_tools.xml:
-       * docs/reference/gobject/tut_howto.xml:
-       * docs/reference/gobject/tut_gobject.xml: Documentation fixes.
-       Recommend macro type names such as NAUTILUS_TYPE_WINDOW (not
-       NAUTILUS_WINDOW_TYPE).  Fixed text which erroneously stated that 
-       superclass initializers don't run when an object is 
-       instantiated.  Fixed numerous spelling mistakes.  Minor grammar 
-       edits. (#490637, Adam Dingle)
-
-2007-11-09  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Coding style cleanups and doc 
-       improvements.  (#491979, #491982, Areg Beketovski)
-
-2007-11-09  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/giochannel.c: Coding style cleanups and doc 
-       improvements.  (#491975, Areg Beketovski)
-
-2007-11-09  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gmain.c (g_main_context_iteration): Improve the
-       docs.  (#491974, Areg Beketovski)
-
-2007-11-09  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gdate.c: Coding style fixes.
-
-2007-11-09  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Add AM_PROG_CC_C_O.
-
-       * Makefile.am: Remove the install-exec-local hook and use
-       configexecincludedir_DATA instead, in an attempt to avoid
-       automake 1.9 <> 1.10 incompatibilities.
-
-       * glib/Makefile.am: Rename MIRRORING_TAB_SOURCES, since
-       automake 1.10 complains.
-
-2007-11-09  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gspawn.c (g_spawn_sync): Improve the docs.  (#491968,
-       Areg Beketovski)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gmain.c (g_main_context_release): 
-       (g_main_context_acquire):
-       (g_main_context_new): Fix the doc wording.  (#491957, 
-       #491965, #491966, Areg Beketovski)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gutils.c (g_set_application_name): Add a missing
-       since tag.  (#464259, Mark Doliner)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/goption.c (g_option_context_new): Improve the docs.
-       (#436293, Vincent Untz)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gmain.c (g_main_loop_quit): Expand the docs 
-       a bit.  (#317775, Søren Sandmann)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-       
-       * autogen.sh: Accept automake 1.10, too
-
-       * mkinstalldirs: Temporarily add this script, to fix building
-       from svn.
-
-       * Makefile.am: Use MKDIRS_P instead of mkinstalldirs, add
-       ChangeLog.pre-2-14 and mkinstalldirs to EXTRA_DIST.
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gmarkup.h: Include gslist.h. Pointed out by Michael Natterer.
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gconvert.c (g_convert_with_iconv): Try harder to reset
-       shift state with AIX iconv().  (#467537)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in:
-       * m4macros/glib-2.0.m4: Require pkg-config 0.16 in configure
-       and in AM_PATH_GLIB_2_0 to be consistent with the use of
-       PKG_PROG_PKG_CONFIG which was introduced in 0.16.  (#418778,
-       Loïc Minier)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c (g_parse_long_long): Don't leave
-       out parameters uninitialized.  (#490061, Benjamin Otte)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gmain.c (g_main_context_unref): Don't leak the
-       condvar.  (#479724, Areg Beketovski)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/gmarkup.[hc] (g_markup_parse_context_get_element_stack): 
-       New function, to get the stack of open elements.  (#452887,
-       Ryan Lortie)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gkeyfile.[hc]: Make some functions that take
-       a GError return boolean instead of void.  (#375651, Matt Barnes)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-       
-       * autogen.sh: Use automake 1.9
-
-       * acinclude.m4:
-       * configure.in: Move some inter-*.m4 includes from
-       configure.in to acinclude.m4 to avoid warnings when
-       using automake 1.9.  (#449937)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       === Branch for 2.14 ===
diff --git a/ChangeLog.pre-2-18 b/ChangeLog.pre-2-18
deleted file mode 100644 (file)
index e07ae27..0000000
+++ /dev/null
@@ -1,1738 +0,0 @@
-2008-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version 
-
-       * === Released 2.18.1 ===
-
-       * NEWS: Updates
-
-2008-09-16  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gtimer.c (g_time_val_to_iso8601): time_t is 64 bits in all
-       the newer Microsoft C libraries, not just 64-bit ones. So to avoid
-       crash if compiled with newer MSVSes, use a separate time_t
-       variable in all cases on Windows.
-
-       * glib/gbacktrace.h: Define G_BREAKPOINT() also for 64-bit MSVC,
-       using the __debugbreak() intrinsic.
-
-2008-09-15  Behdad Esfahbod  <behdad@gnome.org>
-
-       * configure.in: Fix description of module shared library suffix.
-
-2008-09-15  Tor Lillqvist  <tml@novell.com>
-
-       * config.h.win32.in: Update to match what the configure script
-       produces. Just for uniformity, only commented out parts affected.
-
-2008-09-13  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.h
-       * glib/gwin32.h: Deprecate G_WIN32_DLLMAIN_FOR_DLL_NAME(),
-       g_win32_get_package_installation_directory() and
-       g_win32_get_package_installation_subdirectory() as their
-       documentation has warned for a while. Sorry that I forgot to do
-       this before 2.18.0.
-
-       * glib/gwin32.c (g_win32_get_package_installation_directory):
-       Print a warning if a non-NULL package parameter is passed to this
-       function, as that is deprecated usage, as the documentation says.
-
-2008-09-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 548321 – <string.h> is not included in gi18n-lib.h
-
-       * glib/gi18n.h:
-       * glib/gi18n-lib.h: Include string.h, since strlen is used in 
-       the macros. Pointed out by Ignacio Casal Quinteiro
-
-2008-09-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 551731 – g_date_set_time[_t] docs should mention what timezone
-
-       * glib/gdate.c (g_date_set_time, g_date_set_time_t): Documentation
-       improvements proposed by Owen Taylor.
-
-2008-09-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 551410 – gtestutils.c: using printf without prototype
-
-       * glib/gtestutils.c: Include stdio.h. Pointed out by Kazuki Iwamoto.
-
-2008-09-09  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 551228 – G_STRFUNC on recent Sun compiler should be expanded to
-       __func__ rather than '???'
-
-       * glib/gmacros.h: Don't use glibconfig.h defines in gmacros.h,
-       as the comment up top says. Instead look at __STDC_VERSION__.
-       Problem reported by Lin Ma.
-
-2008-09-09  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 523463 – Core dump in gmain.c:2482:IA__g_main_context_check()
-
-       * glib/gmain.c (g_main_context_check): Be robust against setting
-       event fields on the fly, as e.g. happens in linc. Tracked down
-       by Paul Smith, fix proposed by Owen Taylor.
-
-2008-09-08  Christian Dywan  <christian@imendio.com>
-
-       Bug 550433 – g_test_init doesn't recognize --help
-
-       * glib/gtestutils.c (parse_args): Add detailed --help output
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.18.0 ===
-
-2008-09-02  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 549771 – improved .gitignore for glib
-
-       * docs/reference/.gitignore:
-       * docs/reference/gio/.gitignore:
-       * docs/reference/gobject/tmpl/.gitignore:
-       * gio/.gitignore:
-       * gio/tests/.gitignore:
-       * glib/.gitignore:
-       * glib/libcharset/.gitignore:
-       * glib/tests/.gitignore:
-       * gmodule/.gitignore:
-       * gobject/.gitignore:
-       * gobject/tests/.gitignore:
-       * po/.gitignore:
-       * tests/.gitignore: new files
-       * .gitignore: remove 'build' (since it's part of glib now), add more
-       useful things.
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-       * configure.in: Bump version to 2.18.0
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 550104 – trivial documentation fix for g_get_home_dir
-
-       * glib/gutils.c (g_get_home_dir): Fix up the docs.
-
-2008-09-02  Michael Natterer  <mitch@imendio.com>
-
-       * glib/gchecksum.c (g_checksum_reset): add
-       g_return_if_fail (checksum != NULL)
-
-2008-09-01  Paolo Borelli  <pborelli@katamail.com>
-
-       Bug 550040 - Move GString, rand and printf tests to the unit test
-       framework
-
-       * tests/printf-test.c:
-       * tests/rand-test.c:
-       * tests/string-test.c:
-       Removed
-
-       * glib/tests/printf.c:
-       * glib/tests/rand.c:
-       * glib/tests/string.c:
-       Added
-
-       * tests/Makefile.am:
-       * glib/tests/Makefile.am:
-       Updated for the above
-
-2008-08-31  Emmanuele Bassi  <ebassi@gnome.org>
-
-       Bug 550096 – GBookmarkFile parser is not forward compatible
-
-       * glib/gbookmarkfile.c:
-       (parse_bookmark_element), (parse_application_element),
-       (parse_mime_type_element), (parse_icon_element): Relax the
-       attributes checking of the GBookmarkFile parser for the
-       attributes that the desktop bookmark file specification
-       defines and controls. This allows adding new attributes to
-       the existing elements in newer versions without breaking the
-       parser in older ones.
-
-2008-08-28  Ryan Lortie  <desrt@desrt.ca>
-
-       Fixup for test case in previous commit.
-
-       * glib/tests/strfuncs.c: don't fail if we can't open the test data.
-       This happens if $(builddir) != $(srcdir) (like when doing 'make
-       distcheck').  Quick workaround for now until #549783 can be fixed.
-
-2008-08-28  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 548612 – g_strstr_len() should use memmem when available
-
-       * glib/gstrfuncs.c (g_strstr_len): fix off-by-one memory access error
-       * glib/tests/strfuncs.c (test_bounds): add some new test cases that
-       would catch problems like this
-       * glib/tests/4096-random-bytes: test data for the previous
-       * glib/tests/Makefile.am: add previous to EXTRA_DIST
-       
-2008-08-28  Ryan Lortie  <desrt@desrt.ca>
-
-       [REVERT] Bug 548612 – g_strstr_len() should use memmem when available
-
-       * configure.in:
-       * glib/gstrfuncs.c (g_strstr_len): revert use of memmem (see bug)
-
-2008-08-28  Matthias Clasen  <mclsaen@redhat.com>
-
-       * configure.in: Change libselinux detection to not link libglib
-       against it.
-
-2008-08-28  Michael Natterer  <mitch@imendio.com>
-
-       * glib/gstrfuncs.c (g_parse_long_long): make "endptr" const since
-       it's always a pointer into the const string passed. Remove some
-       casting to (gchar*) in this function.
-
-       (g_ascii_strtoull)
-       (g_ascii_strtoll): cast "endptr" to (const gchar**) here when
-       passing it to above function.
-
-2008-08-28  Bastien Nocera  <hadess@hadess.net>
-
-       Bug 548612 – g_strstr_len() should use memmem when available
-
-       * glib/tests/strfuncs.c (test_strstr):
-       * tests/string-test.c (main): Patch by Paolo Borelli
-       <pborelli@katamail.com> to move the tests to the right place,
-       and add more tests
-
-       * glib/gstrfuncs.c (g_strstr_len): Fix problem with memmem ignoring
-       nul-terminators in strings, and using the haystack_len instead
-
-2008-08-28  Bastien Nocera  <hadess@hadess.net>
-
-       Bug 548612 – g_strstr_len() should use memmem when available
-
-       * configure.in: detect whether memmem is available in the C library
-       * glib/gstrfuncs.c (g_strstr_len): use memmem for g_strstr_len() if
-       available in it's available, as it could be optimised by the C library
-       * tests/string-test.c (main): Add a few tests for g_strstr_len()
-
-2008-08-27  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c: Stylistic changes. Plug an unlikely memory leak
-       that occurred in create_thread() if closing the thread handle
-       failed. Add more error messages to g_io_win32_free() that are
-       printed only when debugging. Plug handle leak, a socket channel's
-       event was never closed.
-
-2008-08-27  Tor Lillqvist  <tml@novell.com>
-
-       * config.h.win32.in: Should not define HAVE_DIRENT_H when
-       compiling with MSVC, as the only file which checks HAVE_DIRENT_H
-       is gdir.c, and that includes the dirent.h and wdirent.c from
-       build/win32/dirent explicitly anyway when being compiled with
-       MSVC.
-
-2008-08-22  Björn Lindqvist  <bjourne@gmail.com>
-
-       Bug 523939 – Example program for GValue
-
-       * gobject/gvalue.c: Add code example that demonstrates GValue's
-       features.
-
-2008-08-21  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c: Minor comment improvements. Improve run-time
-       warning messages. Drop some #if 0 code. Don't bother compiling the
-       binary compatibility g_io_channel_win32_new_stream_socket()
-       function that has not been mentioned in any header since 2.0 on
-       Win64.
-
-       * glib/glib.symbols: Mark it, too, private, and don't export it on
-       Win64.
-
-2008-08-21  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c: Rework the g_poll() implementation on Windows to
-       match poll() semantics more closely. This makes the test program
-       in bug #468910 behave better and doesn't seem to break anything
-       else.
-
-       If polling several GPollFDs, i.e. messages and/or waitable
-       handles, first check if one or several of them are in the
-       signalled state right away, with timeout zero. Return indication
-       for all that are in that case. To check if several handles are
-       signalled, we have to call the WaitForMultipleObjectsEx() function
-       repeatedly, each time removing the handle it indicated was
-       signalled last time, until WAIT_TIMEOUT is returned.
-
-       If not, then poll with timeout and indicate only the single one
-       that the Win32 wait function tells us as before.
-
-       Remove unnecessary ifdefs, as we always have G_MAIN_POLL_DEBUG
-       defined on Windows.
-
-       Initialise g_main_poll_debug in g_main_context_new() so we have it
-       before testing it in one case.
-
-       Don't put several copies of a handle in the array of handles to
-       wait for. The documentation says this is not allowed, although it
-       did seem to work fine in practise. But do as the documentation
-       says anyway.
-
-2008-08-20  Tor Lillqvist  <tml@novell.com>
-
-       Bug 500246 - Bug fixes for giowin32
-
-       * glib/giowin32.c (read_thread) (write_thread): Change the nbytes
-       variables to signed.
-       (g_io_channel_win32_make_pollfd): Fix an obvious error in the file
-       descriptor case leftover after the patch from bug #333098 on
-       2006-03-02. Thanks to Marcus Brinkmann.
-
-2008-08-20  Tor Lillqvist  <tml@novell.com>
-
-       Bug 324234 - Using g_io_add_watch_full() to wait for connect() to
-       return on a non-blocking socket returns prematurely
-
-       Bug 548278 - Async GETs connections are always terminated
-       unexpectedly on Windows
-
-       * glib/giowin32.c: Add one more state variable to the
-       GIOWin32Channel struct, ever_writable. Initialise it to FALSE, set
-       to TRUE when the WSAEventSelect() indicates FD_WRITE, and never
-       reset to FALSE.
-
-       Don't do the WSASetEvent() in g_io_win32_prepare() unless
-       ever_writable is TRUE. Don't automatically indicate G_IO_OUT in
-       g_io_win32_check() unless ever_writable is TRUE.
-
-       This fixes the behaviour of the test case program in bug #548278,
-       and the "Testcase for the spurious OUT event bug" in bug
-       #324234. It also doesn't seem to break anything. Not that there is
-       any exhaustive test suite...
-
-       Add a comment with a list of bugs that are related to the code in
-       this file.
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.7 ===
-
-2008-08-17  Sven Neumann  <sven@gimp.org>
-
-       * NEWS: mention GWinHttpVfs.
-
-2008-08-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2008-08-15 12:41:26  Tim Janik  <timj@imendio.com>
-
-       * glib/gtestutils.c: changed assertion messages, so older emacsen
-       can also detect failing source file and line, fixes:
-       Bug 502498 – Test framework assertion failures should follow gcc error format
-
-2008-08-14  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 547832 – gtk+-2.12.11 fails to build - AC_PROG_MMAP too strict,
-       and unnecessary
-
-       * configure.in: Be a little bit more forgiving when checking
-       for mmap. Patch by Peter O'Gorman
-
-2008-08-13  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 547337 – G_DISABLE_DEPRECATED breaks tests build
-
-       * tests/testglib.c: Protect deprecated API by ifdefs.
-       Patch by Kalle Vahlman
-
-2008-08-13  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 547637 – unconditional #include of sys/statfs.h in configure
-       impedes detection of statfs things if non-existant
-
-       * configure.in: Protect the statfs.h include by guards.
-
-2008-08-12  Federico Mena Quintero  <federico@novell.com>
-
-       * glib/gi18n-lib.h: In the #error about having to define
-       GETTEXT_PACKAGE, add a hint about a possibly-missing config.h.
-
-2008-08-11  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 547200 – g_utf8_find_next_char() issues
-
-       * glib/gutf8.c: Improve wording about @end arguments in str funcs.
-
-2008-08-10  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gutf8.c: Fix docs to use "nul-terminated" consistently.
-
-2008-08-08  Ryan Lortie  <desrt@desrt.ca>
-
-       Fix 'fail' markup test cases to -not- be valid XML 1.1.
-
-       * tests/markups/fail-32.gmarkup: change &#x10; to &#x0; since the
-       former is no longer a failure.
-
-2008-08-08  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 546876 - Modify GMarkup parser to accept &#x1; .. &#x1f;
-
-       * glib/gmarkup.c: previously the parser only accepted character
-       references for \t \n and \r (as per XML 1.0); now it accepts all
-       of &#x1; .. &#x1f;.
-
-2008-08-07  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Output comment clarifying GPid semantics to
-       glibconfig.h.
-
-       * glibconfig.h.win32.in: Ditto here.
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 546329 – API docs for g_utf8_normalize() are incorrect
-
-       * glib/gunidecomp.c: Remove inaccurate information about
-       g_utf8_collate() from g_utf8_normalize() docs.
-       Pointed out by Sven Neumann.
-
-2008-08-04  Tor Lillqvist  <tml@novell.com>
-
-       * glibconfig.h.win32.in: Make the union _GSystemThread::data array
-       8 bytes on Win64. Not that it matters as the union contains a
-       pointer also anyway, but for equivalence with the configure-
-       generated glibconfig.h
-
-2008-08-04  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c (g_get_current_time): MSDN says: "Do not cast a
-       pointer to a FILETIME structure to either a LARGE_INTEGER* or
-       __int64* value because it can cause alignment faults on 64-bit
-       Windows." So don't do that then. Indeed the code did work randomly
-       on Win64 when compiled with optimisation.
-
-2008-08-04  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c
-       * glib/gmain.c
-       * glib/gspawn-win32.c
-       * glib/gspawn-win32-helper.c: Change gssize casts introduced on
-       2008-07-28 to gintptr casts now that we have that. gssize is as
-       such the same as gintptr on both 32- and 64-bit Windows, but the
-       gintptr name indicates that it is used to hold pointers, i.e. also
-       HANDLEs.
-
-       * tests/testglib.c: Avoid warning on Win64 by using gintptr cast
-       instead if long cast.
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.6 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.17.5 ===
-
-       * NEWS: Updates
-
-2008-08-02  Tor Lillqvist  <tml@novell.com>
-
-       * glibconfig.h.win32.in: Add gintptr and guintptr typedefs here,
-       too, appropriately ifdeffed for 32/64 bit, gcc/MSVC. Add 64-bit
-       versions of GPOINTER_TO_INT(), GPOINTER_TO_UINT() and vice versa,
-       too.
-       
-2008-08-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-       
-2008-08-01  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 545798 – "Since: 2.18" mark is missing in g_set_error_literal
-       documentation
-
-       * glib/gerror.c (g_set_error_literal): Add a Since: marker.
-       Pointed out by Kouhei Sutou
-
-2008-07-30  Tor Lillqvist  <tml@novell.com>
-
-       Bug 545485 - Implicit declaration of utime()
-
-       * glib/gstdio.c: Include <utime.h> on POSIX.
-
-2008-07-28  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Output to glibconfig.h typedefs for gintptr as the
-       signed integer type that can hold a pointer, and guintptr as the
-       corresponding unsigned type. These types are portable equivalents
-       to intptr_t and uintptr_t which are not available in all
-       compilers.
-
-       For all current platforms, they will presumably end up as the same
-       types as gssize and gsize, but in theory size_t can be smaller
-       than intptr_t. Also, the intended use case for gintptr and
-       guintptr is different from that of gssize and gsize. As the name
-       indicates, gintptr is for when one wants an integer type that can
-       hold a pointer, and gsize is for when one wants an integer type
-       that can hold the value of the sizeof operator.
-
-2008-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 544465 – gmarkup makes it hard to use pre-rolled parsers
-
-       * glib/glib.symbols:
-       * glib/gmarkup.[hc]: Add g_markup_context_get_user_data.
-       Patch by Ryan Lortie
-
-2008-07-28  Tor Lillqvist  <tml@novell.com>
-
-       * glib-zip.in: Message catalogs should always get installed into
-       share/locale nowadays, don't bother with the convoluted logic
-       checking if they are in lib/locale instead. Put the correct helper
-       programs in the zipfile.
-
-2008-07-28  Tor Lillqvist  <tml@novell.com>
-
-       Fix problems on 64-bit Windows. Avoid warnings, some of which
-       indicated actual problems, some which were just annoyances. 
-
-       Where casts to an integer type are needed for pointers, use
-       gssize. Technically intptr_t would be the more proper type, but we
-       still want to be compilable with MSVS6 and 7 which don't have
-       intptr_t. MSVS8 and 9 do have intptr_t, but in <crtdefs.h>, not
-       <stdint.h>.
-
-       Use %p to print out handles. Use gssize casts when assigning
-       GPollFD::fd fields.
-
-       Use G_GSIZE_FORMAT when printing size_t values.
-       
-       * configure.in: Define automake conditional G_OS_WIN32_X64 which
-       is true on Win64.
-
-       * glib/giochannel.h: Use slightly different prototype for
-       g_io_channel_win32_new_messages() on Win64 with gsize instead of
-       guint.
-
-       * glib/giowin32.c
-       * glib/gmain.c
-       * glib/gspawn-win32.c
-       * tests/testglib.c: Generic changes as described above.
-
-       * glib/gmain.h: Don't bother mentioning GIMP in comment.
-
-       * glib/grel.c (tuple_hash_2): Use all bits of pointer.
-
-       * glib/gspawn-win32.c
-       * glib/gspawn-win32-helper.c: Use gssize types in the
-       communication between parent and helper process, so that we can
-       pass process handles, which are pointers, also on Win64.
-
-       * glib/gtimer.c (g_time_val_to_iso8601): time_t is 64 bits on
-       Win64 so we can't pass the address of a GTimeVal::tv_sec which is
-       a long directly to gmtime(). On the other hand, changing
-       GTimeVal::tv_sec to be a gint64 on Win64 is not really feasible
-       either, as that would then require changes in much code that uses
-       GTimeVals.
-
-       * glib/gspawn-win32.c
-       * glib/Makefile.am: Call the helper programs
-       gspawn-win64-helper.exe and gspawn-win64-helper-console.exe on
-       Win64, to avoid potential risk of running a 32-bit version of the
-       helper.
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * glib/glib.symbols
-       * glib/gconvert.c
-       * glib/gdir.c
-       * glib/gfileutils.c
-       * glib/giowin32.c
-       * glib/gspawn-win32.c
-       * glib/gutils.c
-       * glib/gwin32.c: Bypass the Windows "ABI compatibility" symbols on
-       _WIN64. As there hasn't been any widely deployed 64-bit Windows
-       builds of the really old GLib (pre-2.8.1) versions those refer to,
-       there is no need to have the "ABI compatibility" versions in the
-       DLL.
-
-       * glib/makegalias.pl: Handle #ifndef _WIN64: Just output it, too.
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Set LIB_EXE_MACHINE_FLAG to either X86 or X64 on
-       Windows. AC_SUBST it.
-
-       * glib/Makefile.am (glib-2.0.lib): Pass appropriate -machine flag
-       to lib.exe.
-
-2008-07-25 15:47:08  Tim Janik  <timj@imendio.com>
-
-       * glib/tests/testing.c (test_random_conversions): added new sample
-       test to prepare for extended range random tests.
-
-2008-07-24  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gdir.c: Include <stdio.h> for FILENAME_MAX on newer mingw
-       installations.
-
-2008-07-24  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gslice.c (smc_notify_free): Use G_GSIZE_FORMAT instead of
-       the C99 "zu".
-
-2008-07-24  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Must output the GLIB_USING_SYSTEM_PRINTF to
-       glibconfig.h using the same two phase code as for the other
-       defines in it. Can't check enable_included_printf directly in the
-       shell code that is the first argument to AC_CONFIG_COMMANDS().
-
-       Preset glib_cv_stack_grows=no on Windows to help
-       cross-compilation.
-
-       * configure.in: Enhancements for 64-bit Windows: 
-
-       Handle also size_t being larger than long. It is long long
-       a.k.a. __int64 on the LLP64 Win64.
-
-       Set glib_void_p and glib_long correctly. Their assignments were
-       crossed. It hasn't mattered on LP64 platforms like all (?) 64-bit
-       UNIXes, but on the LLP Win64 it was wrong.
-
-       * glibconfig.h.win32.in: Check also _WIN64.
-
-2008-07-24  Tor Lillqvist  <tml@novell.com>
-
-       * glibconfig.h.win32.in: Patch for 64-bit Windows from Richard
-       Hult.
-
-2008-07-23  Matthias Clasen  <mclasen@redhat.com>
-
-       544088 – option_test_LDADD is left in tests/Makefile.am
-
-       * tests/Makefile.am: Remove leftovers. 
-       Noticed by Hiroyuki Ikezoe
-
-2008-07-22  Mathias Hasselmann  <mathias@openismus.com>
-
-       Set LANG variable for group caption tests to get reproducable results.
-
-       * glib/tests/option-context.c (group_captions()):
-         Set LANG variable to C in the forked process to get reproducable.
-         Don't silence the forked process in --verbose mode to support
-         debugging.
-
-2008-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Fix detection of struct statfs fields.
-
-2008-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2008-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.4 ===
-
-       * configure.in: Bump version
-
-       * NEWS: Updates
-
-2008-07-21  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gtimer.c (g_time_val_to_iso8601): Use the right format
-       string to get leading zeros when converting to ISO 8601. (Sven
-       Herzberg)
-
-2008-07-21  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gbookmarkfile.c:
-       (bookmark_app_info_new): Do not set the timestamp value
-       using time(), as it will be overwritten anyway. (#535223,
-       Michael Meeks)
-
-       (parse_application_element),
-       (bookmark_app_info_dump): Support the "modified" attribute,
-       which takes an ISO-formatted string instead of a Unix time
-       stamp, to keep the number of g_strdup_printf() calls to a
-       minimum.
-
-       * glib/gtimer.c:
-       (g_time_val_to_iso8601): Do not use strftime(): we know
-       the format and contents of the ISO 8601 date format we
-       use.
-
-       * tests/bookmarks/valid-03.xbel: Add a test file for the
-       modified attribute.
-
-2008-07-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tests/Makefile.am:
-       * glib/tests/array-test.c: Move array tests here.
-
-       * tests/Makefile.am:
-       * tests/array-test.c: Removed.
-
-2008-07-20  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c (g_io_win32_prepare): Patch from Yu Kuan that
-       makes watched sockets behave much better. See gtk-devel-list
-       archives from May for the (unfortunately rather meager)
-       discussion. This patch fixes the presented simple test program,
-       which reasonably could be expected to work.
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 536996 – Missing noop i18n macro equivalent to C_
-
-       * glib/glib.symbols:
-       * glib/gstrfuncs.[hc]: Add g_dpgettext2() which is a 
-       variant of g_dpgettext() taking context and id as separate
-       arguments.
-
-       * glib/gi18n-lib.h:
-       * glib/gi18n.h: Add an NC_() macro that is to C_() as N_()
-       is to _().
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/Makefile.am:
-       * tests/keyfile-test.c:
-       * tests/option-test.c: Remove
-       * glib/tests/option-context.c: Add all GOptionContext tests here.
-       * glib/tests/keyfile.c: Add all GKeyFile tests here.
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 334234 – "printf" format error
-
-       * glib/gslice.c (mem_error): Avoid a warning when printing a pid_t.
-       Pointed out by Morten Welinder. 
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 406120 – g_ascii_strtod
-
-       * glib/gstrfuncs.c (g_ascii_strtod): Document that this
-       function does accept localized infinities and nans. Reported
-       by Morten Welinder.
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 482413 - get_contents_stdio -- overflow and memory corruption
-
-       * glib/gfileutils.c (get_contents_stdio): Detect overflow and
-       error out. Reported by Morten Welinder. 
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 542332 – small fix for error message in GMarkup
-       
-       * glib/gmarkup.c: Improve an error message. 
-       Patch by Ryan Lortie
-
-2008-07-14  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 428048 – 2 of 51 tests fail on Solaris
-
-       * tests/iochannel-test.c: Ignore the error if iconv doesn't
-       support EUC-JP.
-
-2008-07-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/option-test.c: Print error messages when something fails.
-
-2008-07-14  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 467707 – test_iconv_state() in tests/convert-test.c fails on AIX 5.3
-
-       * tests/convert-test.c (test_iconv_state): Skip this test if
-       CP1255 is not supported.  
-
-2008-07-10  Ryan Lortie  <desrt@desrt.ca>
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/glib.symbols:
-       * glib/gmarkup.c:
-       * glib/gmarkup.h: add functions g_markup_parse_context_{push,pop} in
-       order to provide some small hooks on which to build easy-to-use
-       subparsers.
-       * glib/tests/Makefile: add new test
-       * glib/tests/markup-subparser.c: new test for subparsers
-       Fixes bug #337518.
-
-2008-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528317 – GRegex does not allow recursion limit
-
-       * glib/pcre/Makefile.am: Set a sane default recursion limit
-       of 8192 instead of 1000000. 
-       Patch by Mart Raudsepp.
-
-2008-07-04  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 541507 – Ambiguous description of assigned characters in the Glib
-       Unicode Manipulation reference
-
-       * glib/guniprop.c
-       (g_unichar_isgraph): Return true for PrivateUse too.
-       (g_unichar_isprint): Return true for PrivateUse too.
-       (g_unichar_isdefined): Return false for Surrogate.
-
-2008-07-04  Michael Natterer  <mitch@imendio.com>
-
-       Bug 541208 – Functions to easily install and use signals without
-       class struct slot
-
-       * tests/gobject/override.c: added tests for the new gsignal
-       overriding and chaining APIs.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.3 ===
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Better endianness fix. From Tomas Mraz.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2008-07-02  Colin Walters  <walters@redhat.com>
-
-       * gio/gcontenttype.c: Use UNLOCK to unlock, not LOCK.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Add a check for structfs.f_bavail
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmain.c (g_get_current_time): Add a g_return_val_if_fail
-       check in both versions. Proposed by Patrik Olsson in bug 540545.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Workaround AC_C_BIGENDIAN breakage in autoconf 2.61.
-       Add a _cv_ to some variable names, since autoconf wants it.
-
-2008-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pcre/pcre_compile.c: Apply fix for CVE-2008-2371 to
-       fix a heap-based buffer overflow.
-
-2008-06-29  Björn Lindqvist  <bjourne@gmail.com>
-
-       Bug 539626 – Update docstrings for g_object_freeze_notify and
-       g_object_thaw_notify
-
-       * gobject/gobject.c: Explain how the freeze count works.
-
-2008-06-26  Cody Russell  <bratsche@gnome.org>
-
-       * configure.in: Add #define GLIB_USING_SYSTEM_PRINTF
-       to glibconfig.h, which specifies if GLib is using
-       the system printf functions for g_print*().
-       (#539999, by Tim-Philipp Müller)
-
-2008-06-24  Paolo Borelli  <pborelli@katamail.com>
-
-       Bug 539770 - migrate gstrfunc unit tests to gtest
-
-       * tests/strfunc-test.c:
-       * tests/testglib.c:
-       * tests/strtoll-test.c:
-       * tests/strtod-test.c:
-       * tests/string-test.c:
-       * tests/Makefile.am:
-       Removed old tests.
-
-       * glib/tests/fileutils.c:
-       * glib/tests/strfuncs.c:
-       * glib/tests/Makefile.am:
-       Added all the old tests migrated to the new unit test framework
-       and add new unit tests for some of the functions.
-
-2008-06-23  Kristian Rietveld  <kris@imendio.com>
-
-       * gobject/glib-mkenums.in: introduce an ENUMPREFIX substitution.
-
-       * gio/gioenumtypes.h.template: use @ENUMPREFIX@ instead of
-       hard coding "G" as prefix.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * glib/gurifuncs.c:
-         Fix markup in comment.
-
-2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
-
-    * *.[ch]: Include "config.h" instead of <config.h>
-    Command used:
-    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
-    Rubberstamped by Mitch
-
-2008-06-20  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       Bug 316221 - G_LOCK warns about breaking strict-aliasing rules
-
-       * configure.in:
-       * glib/gthread.h: Revert previous patch as it doesn't improve the
-       situation and results in other warnings.
-
-2008-06-16  Christian Persch  <chpe@gnome.org>
-
-       Bug 539123 – annotate g_d[n]gettext with G_GNUC_FORMAT
-
-       * glib/gstrfuncs.h:
-       * glib/glib.symbols: Annotate some functions with G_GNUC_FORMAT. 
-
-2008-06-19  Tor Lillqvist  <tml@novell.com>
-
-       Bug 539074 - Cannot get exit status with g_spawn_command_line_sync()
-
-       * glib/gspawn-win32-helper.c (main): Write also the exit status of
-       the spawned process to the error report pipe. Patch by Hiroyuki
-       Ikezoe.
-
-2008-06-19  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 535949 – annotate g_strip_context and g_dpgettext with
-       G_GNUC_FORMAT
-
-       * glib/gstrfuncs.h:
-       * glib/glib.symbols: Annotate some functions with G_GNUC_FORMAT.
-       Patch by Christian Persch
-
-2008-06-19  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 539067 – The document g_io_channel_win32_new_fd() says that "Your
-       code should call only g_io_channel_read()." but gio_channel_read() is
-       deprecated
-
-       * glib/giochannel.h: Fix a reference in a comment
-       Patch by Hiroyuki Ikezoe 
-
-2008-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 537635 – Corrections and improvements to
-       g_time_val_from_iso8601()/g_time_val_to_iso8601()
-
-       * glib/gtimer.c (g_time_val_from_iso8601): set tv_usec to 0 rather 
-       than 1 when a fraction of a second is not specified
-       (g_time_val_from_iso8601): calculate a fraction of a second
-       correctly even in case it does not happen to consist of exactly 
-       six digits; do not allow random data after the ISO 8601 string,
-       only whitespace
-       (make g_time_val_to_iso8601): support fractions of a second
-       Patch by Peter Kjellerstedt
-
-       * tests/testglib.c: Update to match
-
-2008-06-16  Christian Persch  <chpe@gnome.org>
-
-       * glib/gbookmarkfile.c
-       * glib/gconvert.c
-       * glib/gfileutils.c
-       * glib/giochannel.c
-       * glib/giounix.c
-       * glib/giowin32.c
-       * glib/gkeyfile.c
-       * glib/gregex.c
-       * glib/gshell.c
-       * glib/gspawn-win32.c
-       * glib/gutf8.c: Use g_set_error_literal where appropriate. Patch from 
-       bug #535947.
-
-2008-06-16  Christian Persch  <chpe@gnome.org>
-
-       * docs/reference/glib/glib-sections.txt:
-       * glib/gerror.c:
-       * glib/gerror.h:
-       * glib/glib.symbols: Add g_set_error_literal. Bug #535947.
-
-2008-06-16  Michael Natterer  <mitch@imendio.com>
-
-       * glib/goption.c (dgettext_swapped): changed return value to
-       const gchar* to fix warning.
-
-2008-06-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestutils.c: Move docs around
-
-       * glib/gchecksum.h: Add docs.
-
-2008-06-13  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 538119 – glib's mainloop leaks a pipe to sub-processes
-
-       * glib/gmain.c (g_main_context_init_pipe): Don't leak the
-       pipes to child processes. Patch by Thiago Macieira.
-
-2008-06-13  Hans Breuer  <hans@breuer.org>
-
-       * glib/gstrfuncs.c : to get the default translation target on
-       win32 use g_win32_get_locale() instead of setlocale(LS_MESSAGES,NULL)
-       Fixes bug #538044
-
-       * glib/makefile.msc.in gio/makefile.msc : updated
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-       
-       * === Released 2.17.2 ===
-
-       * configure.in: Fix LINGUAS conversion
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.17.1 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestutils.c: Documentation fixups
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glist.c: Tiny doc fix
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2008-06-11  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 503071 – Application direction changes to right to left even if
-       theres no translation
-
-       * glib/gi18n-lib.h:
-       * glib/glib.symbols:
-       * glib/gstrfuncs.h:
-       * glib/gstrfuncs.c:
-       Add new functions g_dgettext() and g_dngettext().
-
-       * glib/gutils.c (glib_gettext):
-       * glib/gfileutils.c (g_format_size_for_display):
-       * glib/goption.c (dgettext_swapped):
-       Use the new functions.
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 502511 – g_assert_cmphex prints invalid message
-
-       * glib/gtestutils.c (g_assertion_message_cmpnum): Actually print
-       hex numbers in hex. 
-       Pointed out by Tor Lillqvist
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 338162 – [PATCH] Use po/LINGUAS
-
-       * po/LINGUAS: New file
-       * po/Makefile.in.in: Dist LINGUAS
-       * configure.in: Use po/LINUAS
-       Patch by Thomas Andersen
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 314453 – Nautilus crashes in Solaris when browsing the attached
-       file
-
-       * glib/gunicollate.c (g_utf8_collate_key): Handle strfxrm returning
-       -1 a little better. Problem pointed out by Takao Fujiwara
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 529321 – make check fails in glib/pcre
-
-       * glib/pcre/Makefile.am: include Makefile.decl to fix 'make check'.
-       Patch by Hiroyuki Ikezoe
-
-2008-06-11  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c: g_win32_error_message() works fine for the
-       Winsock WSA* error codes, too, so drop the winsock_error_message()
-       function.
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 455215 – g_get_user_special_dir: no reference about
-       G_USER_DIRECTORY_DOWNLOAD fallback to $HOME/Desktop if 
-       xdg-user-dirs is not in use
-
-       * glib/gutils.c (g_get_user_special_dir): Improve the docs.
-       Proposed by Luca Ferretti
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 498732 – g_key_file_to_data cannot fail
-
-       * glib/gkeyfile.c (g_key_file_to_data): Improve the docs.
-       Proposed by Christian Persch
-
-2008-06-11  Ross Burton  <ross@burtonini.com>
-
-       Bug 511367 - add g_file_make_directory_with_parents.
-       
-       * gio/gfile.c:
-       * gio/gfile.h:
-       * gio/gio.symbols: Add g_file_make_directory_with_parents.
-       
-2008-06-11  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       Bug 531900 – Use __builtin_offsetof for G_STRUCT_OFFSET if building
-       with gcc 4.0 or newer
-
-       * glib/gmacros.h: Use __builtin_offsetof for G_STRUCT_OFFSET if
-       building with gcc 4.0 or newer.
-
-2008-06-11  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c
-       * glib/gspawn.c: Clarify what a "child pid" is in the doc
-       comments.
-
-2008-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 536158 – also bump GHashTable version when a node is removed via
-       g_hash_table_iter_remove()/g_hash_table_iter_steal()
-
-       * glib/ghash.c (iter_remove_or_steal): Bump the hash table 
-       version. Patch by Jean-Yves Lefort
-
-2008-06-07  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.c (g_access): Define X_OK if necessary (MSVC).
-
-2008-06-02  Yevgen Muntyan  <muntyan@tamu.edu>
-
-       Bug 531403 – g_utf8_collate broken on Mac.
-
-       * glib/gunicollate.c:  (g_utf8_collate): use UCCompareTextDefault;
-        (collate_key_to_string), (carbon_collate_key_with_collator),
-        (carbon_collate_key), (carbon_collate_key_for_filename): new
-        functions using Carbon API to get collate key for g_utf8_collate_key()
-        and g_utf8_collate_key_for_filename();
-        (g_utf8_collate_key), (g_utf8_collate_key_for_filename): use those.
-
-2008-05-30  Michael Natterer  <mitch@imendio.com>
-
-       Bug 535628 - test/patterntest.c still includes gpattern.h
-       directly.
-
-       * tests/patterntest.c: don't include "glib/gpattern.h" directly.
-       Patch from Hiroyuki Ikezoe.
-
-2008-05-30  Tor Lillqvist  <tml@novell.com>
-
-       Bug 535625 - alias.h:2648: error: 'utime' undeclared here (not in
-       a function)
-
-       * glib/glib.symbols: Move g_utime inside #if !defined(G_OS_UNIX)
-       || defined(G_STDIO_NO_WRAP_ON_UNIX).
-
-2008-05-30  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.c (g_access) [Win32]: Mask out X_OK to avoid problem
-       on Vista. X_OK was just ignored by access() in earlier Microsoft C
-       libraries. (Which is fine as executability has little meaning on
-       Windows.) The one on Vista returns an error if X_OK is passed.
-
-2008-05-29  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.h
-       * glib/gstdio.c: Add g_utime(). No need to include <sys/utime.h>
-       in gstdio.h, just use a forward struct declaration.
-
-       * glib/glib.symbols: Add it.
-
-2008-05-29  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gnulib/printf-args.c (printf_fetchargs): wint_t is short on
-       Windows, and gcc warns: "wint_t is promoted to int when passed
-       through ... (so you should pass int not wint_t to va_arg)." And
-       indeed g_print("%C", L'a') crashes. So do as gcc says then.
-
-2008-05-28  Michael Natterer  <mitch@imendio.com>
-
-       * configure.in: add G_DISABLE_SINGLE_INCLUDES to CPPFLAGS
-       globally.
-
-       * glib/tests/option-context.c
-       * glib/tests/testing.c
-       * tests/testingbase64.c: don't include <glib/gtestutils.h>
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.17.0 ===
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * README.in: Add a note about G_DISABLE_SINGLE_HEADERS.
-
-       * NEWS: Updates
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/casemap.txt:
-       * tests/casefold.txt: Update for Unicode 5.1
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * Revert the patch for bug 527214 and related changes. GTimer
-       is supposed to work without threads.
-
-2008-05-27  simon.zheng  <simon.zheng@sun.com>
-
-       * configure.in: Fix #533369. Check whether memeber statvfs.f_basetype 
-        available or not.
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pcre/*: Update to PCRE 7.7
-
-2008-05-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gchecksum.c: Add Since: tag to g_checksum_reset
-
-       * glib/glib.symbols: Add g_checksum_reset
-
-2008-05-25  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 534137 – Typo in g_spawn_async_with_pipes doc
-
-       * glib/gspawn.c: Fix a typo in the docs, pointed out by Ted Percival.
-
-2008-05-25  Tor Lillqvist  <tml@novell.com>
-
-       Bug 534319 - GLib's .pc files could use Libs.private
-
-       * glib-2.0-uninstalled.pc.in
-       * glib-2.0.pc.in
-       * gmodule-2.0-uninstalled.pc.in
-       * gmodule-2.0.pc.in
-       * gmodule-export-2.0.pc.in
-       * gmodule-no-export-2.0.pc.in: Move ICONV_LIBS and G_MODULE_LIBS
-       to Libs.private.
-
-2008-05-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gfileutils.c (g_file_open_tmp): Small documention addition.
-
-2008-05-22 10:49:37  Tim Janik  <timj@imendio.com>
-
-       * glib/gmacros.h: implement G_STMT_START and G_STMT_END with
-       do{}while(0), which is believed to be widely portable, fixes:
-       Bug 519026 - G_STMT_START/G_STMT_END test a non-existent preprocessor symbol
-
-2008-05-20  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 501651 – Update glib/libcharset
-
-       * configure.in:
-       * glib/libcharset/Makefile.am:
-       * glib/libcharset/README:
-       * glib/libcharset/codeset.m4:
-       * glib/libcharset/config.charset:
-       * glib/libcharset/glibc21.m4:
-       * glib/libcharset/libcharset-glib.patch:
-       * glib/libcharset/libcharset.h:
-       * glib/libcharset/localcharset.c (_g_locale_get_charset_aliases),
-       (_g_locale_charset_raw):
-       * glib/libcharset/localcharset.h:
-       * glib/libcharset/make-patch.sh:
-       * glib/libcharset/ref-add.sin:
-       * glib/libcharset/ref-del.sin:
-       * glib/libcharset/update.sh:
-       Update libcharset to the one shipped with libiconv-0.12.
-
-2008-05-20  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 459905 – Bug in wcwidth data
-       Bug 534085 – g_unichar_iswide_cjk() has a totally wrong table
-       * glib/guniprop.c (g_unichar_iswide), (g_unichar_iswide_cjk):
-       Regenrate wide and wide_cjk tables from Unicode 5.1.0 data directly.
-       Not using Markus Kuhn's tables anymore.
-
-2008-05-20 14:31:18  Tim Janik  <timj@imendio.com>
-
-       * reverted recent unapproved changes by Yair Hershkovitz, regarding:
-       Bug 503071 – Application direction changes to right to left even if theres no translation.
-
-2008-05-20  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Don't need memory barriers when using a non-gcc
-       compiler on Windows either.
-
-2008-05-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gdir.c: Include the dirent.h and wdirent.c from
-       ../build/win32/dirent directly here when compiling with MSVC and
-       without HAVE_DIRENT_H.
-
-2008-05-19  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc : added gi18n.c
-
-2008-05-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib/Makefile.am: #define HELPER_CONSOLE in
-       gspawn-win32-helper-console.c
-
-       * glib/gspawn-win32-helper.c: Compile a main() instead of
-       WinMain() if HELPER_CONSOLE is defined. MSVC insists on a console
-       application having a main().
-
-2008-05-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 527214 – g_timer_elapsed() returns random values.
-
-       * glib/gtimer.c (g_timer_new()):
-       Print warning if g_thread_init() has not been called yet. 
-       Patch by Mathias Hasselmann
-
-2008-05-12  Jeffrey Stedfast  <fejj@novell.com>
-
-       * glib/gchecksum.c (g_checksum_reset): New function to reset the
-       state of a GChecksum.
-       (g_checksum_new): Call g_checksum_reset() instead of duplicating
-       code.
-
-2008-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528667 – Typos in testing module documentation
-
-       * glib/gtestutils.c: Fix typos in the documentation.
-
-2008-05-17  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c: Make debugging printout more compact and add
-       more information to it. No changes to actual functionality.
-
-       * glib/gmain.c: Improve debugging printouts. When
-       G_MAIN_POLL_DEBUG is defined, we check for an environment variable
-       of the same name to decide whether to print out debugging
-       information or not. G_MAIN_POLL_DEBUG is always defined on Windows
-       as there is more often a need to debug this stuff there. On Unix
-       the definition has to be uncommented (or done on the compile
-       command line).
-
-2008-05-17  Tor Lillqvist  <tml@novell.com>
-
-       * build: Don't include the "build" module with svn:externals any
-       longer. Instead add the still relevant directories and files from
-       it for real here in GLib.
-
-2008-05-17  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * glib/glib.symbols:
-       * glib/gi18n.h: Added g_disable_setlocale().
-
-       * glib/gi18n.c: Added g_disable_setlocale() API to disable setting
-       the locale in g_i18n_init(). Dont disable translations if textdomain
-       was not set before calling g_i18n_init(). Dont disable translations if
-       the locale is "C".
-
-2008-05-16  Tor Lillqvist  <tml@novell.com>
-
-       * config.h.win32.in: Update to match the configure-produced one.
-
-2008-05-14  Michael Natterer  <mitch@imendio.com>
-
-       * glib/gatomic.c: #include "config.h" before using G_ATOMIC_ARM.
-
-2008-05-13  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * glib/gi18n.c: #include <locale.h> to fix the build.
-
-2008-05-12  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * glib/gi18n.c (g_i18n_init): Coding convention fix. Space between
-       a function name and its opening parenthesis.
-
-2008-05-12  Tor Lillqvist  <tml@novell.com>
-
-       * glib/glib.symbols: Add g_i18n_init.
-
-2008-05-12  Tor Lillqvist  <tml@novell.com>
-
-       Bug 530457 - G_USER_DIRECTORY_DOWNLOAD folder improperly mapped
-
-       * glib/gutils.c (load_user_special_dirs): When running on Vista or
-       later, use SHGetKnownFolderPath() to get the FOLDERID_Downloads
-       folder for G_USER_DIRECTORY_DOWNLOAD, and FOLDERID_Public for
-       G_USER_DIRECTORY_PUBLIC_SHARE.
-
-2008-05-11  Yair Hershkovitz  <yairhr@gmail.com>
-
-       Bug 503071 - Application direction changes to right to left even if
-       theres no translation. 
-
-       * glib/gi18n.c: g_i18n_init() for initializing the glib i18n,
-       checking if a translation is available for the calling app. wrappers for
-       gettext, dgettext and dpgettext to check first if the application
-       should be translated.
-
-       * glib/gi18n.h: symbol declaration for gettext wrappers.
-
-       * glib/gi18n-lib.h: include gi18n.h instead of libintl.h.
-
-       * glib/gstrfuncs.c: moved g_dpgettext() to glib/gi18n.c.
-
-       * glib/gutils.c: use g_dgettext() instead of dgettext().
-
-       * glib/glibintl.h: include gi18n.h.
-
-       * glib.symbols: added gettext wrappers.
-
-       * glib/Makefile.am: added gi18n.c.
-
-2008-05-05  Michael Natterer  <mitch@imendio.com>
-
-       * glib/glib.h: #define __GLIB_H_INSIDE__ around including
-       everything.
-
-       * glib/*.h: check for that define instead of __G_LIB_H__ if
-       G_DISABLE_SINGLE_INCLUDES is defined.
-
-       * glib/gdatasetprivate.h: #include <glib.h> instead of
-       <glib/gdataset.h>
-
-2008-05-02 13:24:13  Tim Janik  <timj@imendio.com>
-
-       * glib/gmain.c: renamed GMainDispatch.dispatching_sources to be more
-       descriptive and distinguishable within the source file.
-
-2008-04-21  Tor Lillqvist  <tml@novell.com>
-
-       Bug 528752 - Win32 build and SSL not working
-
-       This bug report against libsoup points out an issue with the use
-       of bitfields in the GIOChannel struct that should really be taken
-       care of here in GLib.
-
-       * configure.in: Add Autoconf variable GLIB_EXTRA_CFLAGS which will
-       contain the -mms-bitfields flag on Windows.
-       
-       * glib-2.0.pc.in: Add it to Cflags.
-
-2008-04-21  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in
-       * */Makefile.am: More work on enabling static building on
-       Windows. When building statically: Also define
-       GOBJECT_STATIC_COMPILATION in glibconfig.h so that also the
-       variables in gparamspecs.h get declared without any
-       dllimport/dllexport decorations. Don't install .def files which
-       obviously have no meaning for static libraries. Don't create MS
-       import libraries. Don't do any resource object files.
-
-2008-04-18 17:40:58  Tim Janik  <timj@imendio.com>
-
-       * tests/testglib.c: fixed gstdio.h include.
-
-       * tests/Makefile.am: properly list testglib.c SOURCES.
-
-2008-04-17  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/gchecksum.c:
-       (sha_byte_reverse): Use the macro GLib provides for byte-swapping
-       as it can be optimized.
-       
-       (g_checksum_update): Fix a compiler warning.
-
-2008-04-15  Mukund Sivaraman  <muks@mukund.org>
-
-       * gio/gfile.c: Fixed typos in gtk-doc comments.
-
-2008-04-10  Mathias Hasselmann  <mathias@openismus.com>
-
-       Bug 519137 – g_slice_dup macro needs cast for 64-bit platform
-
-       * glib/gslice.h (g_slice_copy): Apply type casts needed
-         for proper compilation on 64-bit platforms.
-
-2008-04-09  Federico Mena Quintero  <federico@novell.com>
-
-       * glib/gbookmarkfile.c (bookmark_metadata_free): Don't leak
-       the apps_by_name hash table if the applications list is empty.
-
-2008-04-08  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gunicode.h: Add ISO 15924 code comments for new scripts.
-
-2008-04-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 491554 – Update to Unicode 5.1.0
-
-       * glib/gunichartables.h:
-       * glib/gunicode.h:
-       * glib/gunibreak.h:
-       * glib/gmirroringtable.h:
-       * glib/gscripttable.h:
-       * glib/gen-script-table.pl: Update to Unicode 5.1.0. Patch by
-       Behdad Esfahbod
-
-2008-04-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 526619 – make test-report crash
-
-       * glib/gtester.c: Allocate enough space for argv. Patch by
-        Hiroyuki Ikezoe
-
-2008-04-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmain.c: Make the fix for bug 448943 work.
-
-2008-04-04  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Make sure we don't build both shared and static at
-       the same time on Windows. Put a #define for
-       GLIB_STATIC_COMPILATION into glibconfig.h in the static case, so
-       that the use of variables from libglib gets the GLIB_VAR macro in
-       gtypes.h automatically correct. This means that a shared and
-       static build of GLib can't be installed in the same prefix on
-       Windows, which sucks a bit. But with variables in the GLib API,
-       there isn't much we can do otherwise. The alternative would be to
-       force the developer who compiles against a statically built GLib
-       to use -DGLIB_STATIC_COMPILATION.
-
-       * glibconfig.h.win32.in: Define GLIB_STATIC_COMPILATION here also,
-       if needed.
-
-2008-04-03  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Don't enforce shared library build only on
-       Windows. It might well make sense to build static libraries in
-       some use cases.
-
-       * glib/gutils.c: Don't compile the DllMain if building libglib
-       statically. Also in that case don't return NULL from
-       _glib_get_installation_directory(), but return the installation
-       directory of the program's .exe file.
-
-2008-04-03  Tor Lillqvist  <tml@novell.com>
-
-       Bug 525972 - UCS-4 not in the new win_iconv implementation
-
-       * glib/win_iconv.c: Add UCS-4. Also add spelling of UCS-2 without
-       the hyphen.
-
-2008-04-03  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 448943 – g_timeout_add_seconds() problems
-
-       * glib/gmain.c (g_timeout_set_expiration): Prevent expiration
-       time going negative. Reported by Cody Russell, analyzed by
-       Olivier Crete, patch by Sjoerd Simons.
-
-2008-04-03  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 525674 – A typo in gmarkup.c
-
-       * glib/gmarkup.c (g_markup_parse_context_get_element_stack): Fix
-       the docs, reported by Hiroyuki Ikezoe
-
-2008-04-03  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 525732 – Error in documentation for g_list_first
-
-       * glib/glist.c (g_list_first): Fix the docs, reported by 
-       Salvatore Iovene
-
-2008-04-02  Tor Lillqvist  <tml@novell.com>
-
-       Bug 524314 - g_convert() on Win32 implicitly converts full width
-       alphanumerics into half width
-       
-       * glib/win_iconv.c: Update from Yukihiro Nakadaira. Use
-       WC_NO_BEST_FIT_CHARS flag for WideCharToMultiByte() unless the
-       //translit flag was suffixed to the codeset name.
-
-       * glib/gconvert.c: Include win_iconv.c earlier so that its
-       definition of WINVER before it includes <windows.h> is used.
-
-2008-03-31  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c (g_poll): Improve fix for #525192 below: Use
-       SleepEx() so that the sleep is alertable. Thanks to John
-       Ehresman.
-
-2008-03-31  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c
-       (g_win32_get_package_installation_directory_of_module): Fix Cygwin
-       breakage. Patch by Lieven van der Heide.
-
-2008-03-31 10:39:17  Tim Janik  <timj@imendio.com>
-
-       * glib/gutils.h: reapply inlining fix from r6333 to fix:
-       Bug 522292 – Gives warnings in glib/gutils.h with GCC in C99 mode
-       and again:
-       Bug 315437 – extern inline -> static inline
-
-2008-03-31  Tor Lillqvist  <tml@novell.com>
-
-       Bug 525192 - 100% CPU if run main loop with no IO sources
-
-       * glib/gmain.c (g_poll) [Win32]: Patch by Neil Roberts.
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtester.c: Don't use ARG_MAX.  (#522335, patch by 
-       Samuel Thibault, adapted by Sebastian Dröge)
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmacros.h: Add macros wrapping the gcc alloc_size 
-       function attribute.  (#523019, Rodrigo Moya)
-
-       * glib/gmem.h: 
-       * glib/gslice.h:
-       * glib/gstrfuncs.h: Use the new attribute where appropriate.
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glibintl.h:
-       * glib/gstrfuncs.c:
-       * glib/gutils.c: Simple fixes to help building GLib on 
-       embedded systems without NLS.  (#524350, Peter Kjellerstedt)
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/ghash.c: Fix the build with -DG_DISABLE_ASSERT.
-       (#525060, Arfrever Frehtes Taifersar Arahesis)
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/gthread.h: Replace occurrances of G_GNUC_PRETTY_FUNCTION
-       by G_STRFUNC.  (#524344, Peter Kjellerstedt)
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtestutils.c: Fix a doc typo. (#524742, Hiroyuki Ikezoe)
-
-2008-03-22  Claudio Saavedra  <csaavedra@gnome.org>
-
-       Bug 523877 – gbookmarkfile: avoid using g_string_append_printf() and
-       other optimizations
-
-       * glib/gbookmarkfile.c: (bookmark_metadata_dump),
-       (bookmark_item_dump), (g_bookmark_file_dump), (expand_exec_line):
-       Replace all calls to g_string_append_printf with g_strconcat () or
-       g_string_append () where appropriate, to reduce the file creation time.
-       Also, use g_string_sized_new () with an appropriate buffer size instead
-       of g_string_new (NULL), to reduce time spent in memory reallocation.
-       (#523877, Claudio Saavedra, Emmanuele Bassi)
-
-2008-03-22  Emmanuele Bassi  <ebassi@gnome.org>
-
-       Bug 518160 - replace two g_strdup_printf calls in GBookmarkFile
-
-       * glib/gbookmarkfile.c (is_element_full): Compare the fragments
-       instead of building two strings; this avoids two g_strdup_printf()
-       per namespaced element enountered. (#518160, Felix Riemann)
-
-2008-03-20  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.in:
-       Final fixes for struct statfs.f_fstypename checks (OpenBSD). (#521045)
-       Patch from ephraim_owns@hotmail.com
-
-2008-03-19  Tor Lillqvist  <tml@novell.com>
-
-       Bug 523298 - win_iconv can't convert from UTF-8 to GB18030 (or vice versa)
-
-       * glib/win_iconv.c: Fixes for code page 54936 (GB18030)
-       (mbtowc_flags): New function. Check if a code page is one of those
-       for which the dwFlags parameter to MultiByteToWideChar() must be
-       zero. Return 0 or MB_ERR_INVALID_CHARS.
-       (mbcs_mblen): New function for multi-byte (more than two bytes for
-       some characters) code pages. Only handles 54936 for now.
-       (make_csconv): Use it for 54936.
-       (kernel_mbtowc): Use mbtowc_flags().
-
-2008-03-18  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       Bug 522292 - Gives warnings in glib/gutils.h with GCC in C99 mode
-
-       * glib/gutils.h: Use "__attribute__ ((__gnu_inline__))" for inlining
-       if either __GNUC_STDC_INLINE__ or __GNUC_GNU_INLINE__ are defined. In
-       gcc version prior to 4.3 no correct C99-inline was implemented which
-       has semantic differences to GNU inline.
-
-2008-03-16  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Don't bother defining Autoconf variables for
-       glib.def, gmodule.def, gobject.def and gthread.def when this can
-       be handled easily in */Makefile.am which are the only files that
-       use them. Remove also TESTGMODULE_EXP which isn't used at all.
-
-       * glib/Makefile.am: Corrsponding change.
-       
-2008-03-14  Michael Natterer  <mitch@imendio.com>
-
-       * glib/*.h: make it possible to disable single-file includes by
-       defining G_DISABLE_SINGLE_INCLUDES when building against GLib.
-       Approved by Tim Janik.
-
-       * glib/glib.h: include <glib/gslice.h>.
-
-       * glib/gi18n.h
-       * glib/gi18n-lib.h
-       * glib/gprintf.h: include <glib.h> so the above works when these
-       files are included without including <glib.h> first.
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-        * configure.in:
-       Add required includes for f_fstypename member check.
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-        * configure.in:
-       Added checks for FEN (Solaris  File Event Notification)
-
-2008-03-13  Tor Lillqvist  <tml@novell.com>
-
-       * glib-zip.in: Add lib/gio-2.0.lib and lib/gio-2.0.def.
-
-2008-03-12  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Expand gio/win32/Makefile.
-
-2008-03-12  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version to 2.17.0
-
-       * ChangeLog.pre-2-16: rotate ChangeLog
-       
-       * === branch for 2.16 ===
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
deleted file mode 100644 (file)
index f91ac7e..0000000
+++ /dev/null
@@ -1,1502 +0,0 @@
-Fri Dec 20 10:45:29 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.2.0 ===
-
-       * INSTALL.in: --enable-included-printf, not --enable-trio.
-       (Matthias Clasen)
-
-Fri Dec 20 09:52:15 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * INSTALL.in: Document --enable-trio, --disable-mempools,
-       --enable-debug. Include docs on cross compilation.
-
-       * NEWS: Update.
-
-       * configure.in: Version 2.2.0, interface age 0.
-
-Fri Dec 20 09:37:27 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gthread/gthread-impl.c (g_thread_init): Call g_main_thread_init()
-       after setting g_threads_got_initialized. (#101624, 
-       Alceste Scalas, Sebastian Wilhelmi)
-
-Wed Dec 18 16:19:08 2002  Manish Singh  <yosh@gimp.org>
-
-       * glib/gtypes.h: new endian asm for ia64 and x86_64, general
-       reorg and clean up. New implementation of GUINT16_SWAP_LE_BE_CONSTANT()
-       that should optimize better. (#101318)
-
-2002-12-17  Tor Lillqvist  <tml@iki.fi>
-
-       Improvement based on suggestion by Thorsten Maerz:
-
-       * glib/giowin32.c (struct _GIOWin32Channel): Don't need thread_handle.
-
-       (create_thread): We can close thread handle right away, it isn't
-       used for anything.
-
-       (read_thread, select_thread): Thus, don't close it here.
-
-       Fix #57690, partial fix for #57689:
-       
-       * glib/giowin32.c (g_io_win32_set_flags): Don't set the GError,
-       instead call g_warning().
-
-       (g_io_win32_fd_get_flags_internal): New function, sets the
-       is_readable, is_writeable and is_seekable flags based on the
-       actual access modes of the underlying Win32 HANDLE, by trying
-       Win32 ReadFile() and WriteFile() of zero bytes, and
-       PeekNamedPipe(). Should work for disk files and pipes. For devices
-       (consoles) unfortunately not.
-
-       (g_io_win32_fd_get_flags): Don't set the
-       G_IO_FLAG_IS_{READ,WRITE}ABLE flags, g_io_channel_get_flags()
-       already does. Call g_io_win32_fd_get_flags_internal() to set the
-       is_* flags.
-
-       (g_io_win32_msg_get_flags, g_io_win32_sock_get_flags): Splice the
-       generic g_io_win32_get_flags() into these specific functions, as
-       they need to do different things. Not implemented yet, though.
-
-       (g_io_channel_win32_new_fd_internal): New function, to avoid
-       duplicate fstat() calls. Most code from g_io_channel_win32_new_fd() 
-       moved here. Call g_io_win32_fd_get_flags_internal() to set the
-       is_* flags.
-
-       (g_io_channel_win32_new_fd, g_io_channel_unix_new): Call
-       g_io_channel_win32_new_fd_internal().
-
-       (g_io_win32_no_seek): Remove. Don't set is_seekable for those
-       channel types.
-
-Mon Dec 16 17:31:50 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.1.5 ===
-
-       * configure.in: Version 2.1.5, interface age 2.
-
-       * NEWS: Updated.
-
-Mon Dec 16 14:58:33 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Add a hack to mostly deal with
-       problems in support of -pthread and -lpthread;
-       pass -lpthread (for linux) or -Wc,-pthread (for
-       other platforms) to libtool when linking libgthread. 
-       (#100697)
-
-2002-12-16  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32.c (do_spawn): Fix potential heap
-       corruption. Sometimes called g_free() on string literal.
-
-Sun Dec 15 19:51:58 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: AC_SUBST() DATADIRNAME, not 
-       DATADIR.
-
-Sun Dec 15 19:22:58 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: Restore a missing AC_SUBST()
-       for DATADIRNAME. (Found by Kjartan Maraas)
-
-Sun Dec 15 11:24:29 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: Actually set INTLLIBS
-       when needed. (Reported by Tor Lillqvist)
-
-2002-12-15  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_rand_init.
-
-       * config.h.win32.in: Slight update to match what is currently
-       produced by configure.
-
-Sat Dec 14 21:24:04 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gutils.c (g_get_any_init): HP-UX 10 xshares the
-       same non-posix getpwuid_r signature as AIX. 
-       (#100756, Kai Poitschke)
-
-Sat Dec 14 21:10:57 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gthread.h: Mark the contents of the strucures
-       in this file /*< private >*/
-
-       * glib/gthread.[ch]: Rename the 'write' field of the
-       structure to 'have_writer' to avoid any possible
-       conflict with system headers. (#90549, Morten Welinder)
-
-Sat Dec 14 20:11:41 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/libcharset/{localcharset.[ch] libcharset-glib.patch}
-       glib/gutf8.c: Break _g_locale_charset() into two pieces 
-       - a fast "raw" piece, and a slow "unalias pieces". 
-       Always call the "raw" piece, and call the unalias bit
-       if it changes. Use a per-thread cache. (#79529)
-
-2002-12-15  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Set TRIO_LIBS when building with trio.
-
-       * glib-2.0.pc.in (Libs): Add @TRIO_LIBS@.
-
-       * glib/trio/Makefile.am (libtrio_la_LIBADD): Use @TRIO_LIBS@.
-
-       * glib/trio/glibtrio.h: New file, redefining all trio symbols to
-       fall into the _G/_g_ private glib namespace.
-
-       * glib/trio/Makefile.am (libtrio_la_SOURCES): Add glibtrio.h
-
-       * glib/trio/trionan.c: 
-       * glib/trio/triostr.c: 
-       * glib/trio/trio.c: Include glibtrio.h
-
-       * glib/gprintfint.h: 
-       * glib/trio/trionan.c: 
-       * glib/trio/triostr.c: 
-       * glib/trio/trio.c: Include glibtrio.h
-
-Fri Dec 13 17:10:21 2002  Manish Singh  <yosh@gimp.org>
-
-       * glib/gscanner.c (g_scanner_unexp_token): Fix typo. Missing '%'
-       in my last commit.
-
-Thu Dec 12 23:08:29 2002  Owen Taylor  <otaylor@redhat.com>
-
-       Fixes from Johannes Stezenbach
-
-       * configure.in: When adding extra libraries to $LIBS for
-       tests, always put them at the front, since that's how
-       they'll be used in the actual Makefiles.
-
-       * configure.in: Add a couple of missing ','s in AC_LINK_IFELSE()
-
-       * m4macros/glib-gettext.m4: Remove a stray setting of $LIBS.
-
-Thu Dec 12 20:46:26 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Allow not setting glib_cv_long_long_format
-       when cross-compiling since we assume other things that
-       will cause us to pull in Trio anyways.
-
-       * configure.in: long_long_format is always ll for trio.
-       
-       * configure.in: Error out if --disable-trio is specified
-       but the C library doesn't have the necessary features.
-
-2002-12-13  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/trio/Makefile.am (libtrio_la_LIBADD): Add -lm for pow().
-
-       * tests/string-test.c: Add a test for positional parameters in
-       g_snprintf().
-
-Thu Dec 12 14:58:55 2002  Manish Singh  <yosh@gimp.org>
-
-       * configure.in: pull in trio if host printf doesn't have a known
-       way of printing 64-bit ints.
-
-       * glib/gmacros.h: remove extra whitespace at the end
-
-       * glib/gscanner.c (g_scanner_unexp_token): use G_GUINT64_FORMAT
-       instead of hardcoding "%llu"
-
-       * tests/testglib.c: remove obsolete conditionals using G_HAVE_GINT64,
-       we always have it now.
-
-       * tests/type-test.c: same as above, and for G_G[U]INT64_FORMAT as
-       well.
-
-Thu Dec 12 13:52:58 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: AC_PREREQ(2.53) here; convinces
-       Debian's wrappers to use the right autoconf for atk, etc.
-       (Reported by Jody Goldberg)
-
-2002-12-11  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gtimer.c (g_timer_elapsed): Fix off-by-one error. (#100853)
-
-       * glib/gfileutils.c (g_file_test): Bypass extra test for root on
-       Win32.
-
-       * glib/glib.def: Add g_{get,set}_application_name.
-
-Wed Dec 11 17:53:34 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.1.4 ===
-
-       * NEWS: Updates.
-
-Wed Dec 11 17:49:15 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: Unset 
-       ac_cv_func_bind_textdomain_codeset before calling
-       AC_CHECK_FUNCS(bind_textdomain_codeset) again.
-
-       * configure.in: Remove duplicate call to
-       AC_CHECK_FUNCS(bind_textdomain_codeset)
-
-2002-12-11  Pauli Virtanen <pauli.virtanen@hut.fi>
-
-       * configure.in: Added "fi" to ALL_LINGUAS.
-
-Wed Dec 11 17:00:20 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * acglib.m4 (ac_compile): Add GLIB_ASSERT_SET() as
-       a helper for adding "must be set when cross-compiling"
-       errors.
-
-       * configure.in: For all cached variables without defaults,
-       error out if they aren't set.
-
-Wed Dec 11 15:52:01 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Also assume AC_LINK_IFELSE() is
-       OK when cross-compiling for the libs checks, and for
-       the sched_get_priority_min() check.
-
-       * configure.in: Add cached value glib_cv_use_pid_surrogate.
-       
-Wed Dec 11 15:10:25 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Factor out repeated thread test into
-       a m4_define(); when cross-compiling, assume that 
-       AC_LINK_IFELSE() is good enough for thinking that
-       -pthread[s] is OK. (More of #58786)
-
-       * m4macros/glib-gettext.m4: Fix typo. (Manish Singh)
-
-Wed Dec 11 14:28:50 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Version 2.1.4, interface age 1.
-
-       * m4macros/glib-gettext.m4: Major rewrite; remove leftovers
-       from building intl/, prefer libintl if both libc and libintl 
-       have dgettext and libintl also has bind_textdomain_codeset().
-       (#70627)
-
-       * configure.in acinclude.m4: Use an include to avoid having 
-       to duplicate the gettext macros between glib-gettext.m4
-       and acinclude.m4.
-
-       * m4macros/glib-gettext.m4: Do some tricks so that configure.in 
-       can use macros under hidden names, but aclocal will still 
-       find them when installed.
-
-       * m4macros/glib-gettext.m4: Add AM_GLIB_DEFINE_LOCALEDIR
-       to encapsulate install location of catalog files.
-
-       * m4macros/glib-gettext.m4 (AM_GLIB_DEFINE_LOCALEDIR):
-       Fix bug where if --prefix wasn't set on the configure line,
-       GLib would look for translations in NONE/share/locale.
-
-Wed Dec 11 11:11:44 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/grand.c: Include string.h, supress a warning.
-
-2002-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/grand.c (g_rand_int_range): Improve generation of
-       pseudo-random integers. (#99720, Morten Welinder <terra@diku.dk>)
-
-       * README.in, docs/reference/glib/running.sgml,
-       docs/reference/glib/tmpl/random_numbers.sgml,
-       docs/reference/glib/changes.sgml: Added notes about the new
-       algorithm.
-
-2002-12-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: use 0 instead of $defattr, as it isn't defined
-       anymore on platforms using -pthread and linux, where this is used,
-       only uses 0 anyway and not "pthread_attr_default".
-
-Sun Dec  8 23:36:12 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gfileutils.c (g_file_test): Guard against
-       the POSIX allowed behavior where access (file, X_OK)
-       succeeds for uid==0 when no executable bits are set.
-
-       * glib/gfileutils.c (g_file_test): Add doc notes
-       about the possibility of race conditions, and the
-       fact that EXISTS and IS_EXECUTABLE give results
-       for the real uid not the effective user ID.
-       (#81854, Morten Welinder.)
-
-Fri Dec  6 14:34:42 2002  Owen Taylor  <otaylor@redhat.com>
-
-       Avoid literal UTF-8. (Allow it to build with 
-       IRIX cc, #72757, Tomas Ogren)
-
-       * tests/patterntest.c (main): Convert literal 
-       iso-8859-1 high bit characters in tests to
-       string escapes.
-
-       * glib/gunichartable.h glib/gen-unicode-tables.pl:
-       Use hex \xMN escapes rather than literal UTF-8
-       for casefold tables.
-
-       * configure.in: AC_PREREQ(2.53). needed for recent
-       GLIB_SIZEOF() changes.
-
-Fri Dec  6 12:40:00 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/libcharset/Makefile.am (EXTRA_DIST): Don't
-       distribute ref-add/del.sed., fixing problem with
-       srcdir != destdir. (#99813, Phuc LeHong)
-
-Fri Dec  6 12:31:30 2002  Owen Taylor  <otaylor@redhat.com>
-       * configure.in: chmod 0755 scripts in AC_OUTPUT(), since 
-       install -c won't necessarily do that. (#74376, Martin
-       Gansser, Joshua Weage)
-Thu Dec  5 16:05:55 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Use AC_LINK_IFELSE(), not AC_TRY_RUN()
-       for va_copy(), __va_copy() checks.
-
-       * configure.in: When there is a reasonable default,
-       provide that in the 3rd argument of AC_TRY_RUN(),
-       instead of just leaving the 3rd argument empty.
-
-2002-12-05  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strncasecmp): Break long deprecation
-       info into two paragraphs.
-
-Thu Dec  5 15:43:46 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Fix multiple problems with the programs
-       in the argument of AC_TRY_RUN() having preprocessor
-       defines not in the first column.
-
-Thu Dec  5 15:24:14 2002  Owen Taylor  <otaylor@redhat.com>
-
-       Start of fixes for cross-compilation. Based on
-       patches from Dimi Shahbaz, Dan Kegel, Johannes Stezenbach,
-       Amy Lin. (#58786)
-
-       * configure.in: Don't run the Digital-Unix 4 -std1 check
-       when cross_compiling.
-
-       * configure.in: Use AC_TRY_COMPILE() rather than 
-       AC_TRY_RUN() for inline checks. (Daniel Egger)
-
-       * configure.in: use AC_CHECK_SIZEOF rather than
-       GLIB_SIZEOF for size_t. Remove unused checks for
-       size of ptrdiff_t/intmax_t.
-
-       * acglib.m4: Resync GLIB_SIZEOF of to the current
-       AC_CHECK_SIZEOF, which handles cross-compilation.
-
-       * acglib.m4: Remove no longer needed GLIB_SYSDEFS(),
-       add GLIB_CHECK_VALUE() as a wrapper around the
-       amazing _AC_COMPUTE_INT() autoconf 2.5x internal.
-
-       * configure.in: Redo the POLL* value checks in a
-       cross-compilation friendly way.
-
-Thu Dec  5 15:28:37 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gtimer.c: Include glibconfig.h early so
-       that we include <windows.h> when needed.
-
-       * glib/gstrfuncs.c: Fix typo.
-
-Tue Dec  3 21:10:28 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Add 3rd argument to remaining AC_DEFINES(),
-       so we can get rid of acconfig.h. (#76334, Daniel Egger)
-
-       * acconfig.h: Removed.
-
-Tue Dec  3 20:22:27 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/*.c: Patch from Sven Neumann to make the
-       include order consistent. (#71704)
-
-2002-12-03  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Check that strlcpy behaves as per the OpenBSD 
-       man page before wrapping it.  (#53933)
-
-2002-12-03  Frederic Crozat  <fcrozat@mandrakesoft.com>
-
-       * glib/gunicollate.c: (g_utf8_collate_key):
-       Fix typo from previous commit
-
-Tue Dec  3 01:05:00 2002  James M. Cape  <jcape@ignore-your.tv>
-
-       * glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key):
-       Check for NULL before doing anything.
-
-Mon Dec  2 16:34:13 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.1.3 ===
-
-       * NEWS: Updated.
-
-       [ Unmerged change from stable from May 16 ]
-
-       * autogen.sh: Remove check for GNU gettext, since it
-       was causing problems for Solaris CVS builds.
-       (#81885, Hidetoshi Tajima.)
-
-Tue Nov 26 09:51:43 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c (g_strchomp): Avoid non-ANSI pointer
-       comparison. (#54344, Morten Welinder)
-
-       * tests/strfunc-test.c (main): Add tests for strchomp().
-
-2002-11-30  Ole Laursen  <olau@hardworking.dk>
-
-       * configure.in: Added "da" to ALL_LINGUAS.
-
-2002-11-29  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_ascii_strtoull): It is a 2.2 addition.
-
-       * glib/gtimer.c (g_time_val_add): Adjust to changed parameter names.
-
-       * glib/gutils.c (g_get_application_name): Mark as 2.2. addition.
-
-       * glib/gstrfuncs.c (g_ascii_strtoull): Mark as 2.0.7 addition. 
-
-2002-11-28  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.c:
-       * glib/gtree.c: 
-       * glib/gstring.c: 
-       * glib/gstrfuncs.c: 
-       * glib/giochannel.c: Move some docs inline, and add deprecation
-       information. To see the list of affected functions, grep for
-       "Deprecated:". 
-
-       * configure.in: Fix the definitions around printf: either we use
-       system printf in which case HAVE_VASPRINTF, HAVE_C99_VSNPRINTF and
-       HAVE_UNIX98_PRINTF have already been determined by earlier tests,
-       or we use the included printf, in which case we know that these
-       three can be defined as 1.  (#99826)
-
-       * glib/gutf8.c (g_utf8_strreverse): 
-       * glib/gstrfuncs.c (g_str_has_suffix): 
-       (g_str_has_prefix): 
-       * glib/gprintf.c (g_printf): 
-       (g_fprintf): 
-       (g_sprintf): 
-       (g_vprintf): 
-       (g_vfprintf): 
-       (g_vsprintf): 
-       * glib/gmarkup.c (g_markup_parse_context_get_element): 
-       Mark as 2.2 API additions.
-
-       * configure.in: Fix the gtk-doc version check.
-
-2002-11-27  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmessages.h: Use G_LIKELY without surrounding parentheses 
-       in g_assert() and g_return_[val]_if_fail() so that we always trigger
-       the gcc warning about "assignment used as truth value".
-
-       * glib/gmacros.h: Always put parentheses in G_LIKELY and G_UNLIKELY.
-
-2002-11-26  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmessages.h: Only use G_LIKELY in g_assert() and 
-       g_return_[val]_if_fail() if it is actually doing something.
-
-2002-11-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/grand.c, gthread/gthread-impl.c, tests/rand-test.c: 
-       Changed the seeding algorithm. Old behaviour can be achived by
-       setting envvar G_RANDOM_VERSION to "2.0". (#99262)
-
-       * docs/reference/glib/glib-docs.sgml,
-       docs/reference/glib/Makefile.am: Renamed
-       docs/reference/glib/changes-2.0.sgml to
-       docs/reference/glib/changes.sgml and added section for changes
-       from 2.0 to 2.2 (Also corrected 1.0 to 1.2).
-
-       * README.in, docs/reference/glib/running.sgml,
-       docs/reference/glib/tmpl/random_numbers.sgml,
-       docs/reference/glib/changes.sgml: Added notes about the new
-       seeding algorithm.
-
-       * configure.in: Make CPPFLAGS, not CFLAGS, include
-       G_THREAD_CFLAGS. CFLAGS is used while linking too and thus GLib
-       programs would link to the threads library on some platforms. Also
-       fixed a bug manifesting through this change. (#77981)
-
-2002-11-26  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmacros.h: Fix the non-gcc-3.x definitions of G_LIKELY 
-       and G_UNLIKELY.  (Reported by Dan Mills)
-
-2002-11-25  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gfileutils.c (g_build_path): 
-       (g_build_filename): Document that the varargs must be 
-       NULL-terminated. (#99510)
-
-       * glib/gmessages.h (g_assert): 
-       (g_return_if_fail): 
-       (g_return_val_if_fail): Remove the (no longer effective) empty
-       if-branch.
-
-       * glib/gmacros.h: Change the definition of G_LIKELY, so that
-       g_return_if_fail() and friends still trigger a gcc warning if
-       the expr is an assignment. 
-
-2002-11-23  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Generate docs/reference/*/version.xml.
-
-       * glib/gdir.h: Add Copyright notice.
-
-2002-11-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Fixed typo: PTHREAD_PRIO_MIN ->
-       PTHREAD_PRIO_MAX. (Laurent Vivier, #99293)
-
-Fri Nov 22 09:39:09 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmacros.h: Remove broken G_HIDDEN_SYMBOL
-       definition which wasn't supposed to be committed
-       at all.
-
-Thu Nov 21 16:19:21 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/ghash.c: Patch from Morten Welinder to 
-       make ghash.c properly obey DISABLE_MEM_POOLS. (#96600)
-
-Thu Nov 21 14:09:44 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmacros.h: Add G_GNUC_DEPRECATED. (Tom Tromey,
-       #87969)
-
-2002-11-21  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Update to match what is currently produced by
-       autotools.
-
-       * configure.in: Remove superfluous spaces on two shell variable
-       assignment lines. Don't define HAVE_GOOD_PRINTF as 0 if we don't
-       have a good printf, it is tested with #ifdef.
-
-       * glib/glib.def: Add new functions.
-
-       * glib/Makefile.am: If !HAVE_GOOD_PRINTF, add libtrio.la to LIBADD
-       and DEPENDENCIES.
-
-       * glib/glib.rc.in
-       * gmodule/gmodule.rc.in
-       * gobject/gobject.rc.in
-       * gthread/gthread.rc.in
-       * {glib,gmodule,gobject,gthread}/makefile.{mingw,msc}.in:
-       Hardcode 2.0 in the names, as that is what Makefile.am does.
-
-2002-11-21  Matthias Clasen  <maclas@gmx.de>
-
-       Include a printf implementation supporting C99 snprintf and SUS
-       positional parameters:  (#79488)
-       
-       * glib/gstrfuncs.c:
-       * glib/gspawn-win32.c:
-       * glib/gscanner.c:
-       * glib/gconvert.c: 
-       * glib/gbacktrace.c: Use _g_printf wrappers. 
-
-       * glib/gutils.c (g_vsnprintf): Simplify, since we can assume C99
-       snprintf semantics now.
-
-       * glib/gmessages.c (printf_string_upper_bound): No longer needed,
-       since we can assume C99 snprintf semantics now.
-       (g_logv): Simplify.
-       
-       * acinclude.m4 (AC_FUNC_PRINTF_UNIX98): New macro to check wether
-       printf supports SUS positional parameters.
-
-       * configure.in: New option --enable-included-printf to force
-       compilation of trio; otherwise trio is compiled if the system
-       printf misses either C99 snprintf semantics of SUS positional 
-       parameters.
-
-       * glib/Makefile.am (SUBDIRS): Conditionally compile trio.
-       (libglib_2_0_la_SOURCES): Add gprintf.c and gprintfint.h.
-       (glibsubinclude_HEADERS): Add gprintf.h.
-
-       * glib/gprintfint.h: New private wrapping either system printf
-       or trio printf variants in _g_printf wrappers for use inside glib.
-
-       * glib/gprintf.h: New public header declaring g_printf variants.
-       * glib/gprintf.c: Corresponding implementations.
-
-       * glib/trio/*: New directory, containing the trio-1.9 sources. 
-
-2002-11-20  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmessages.h (g_return_if_fail): 
-       (g_return_val_if_fail): Use G_LIKELY.  (#69022)
-
-       * glib/gmacros.h (G_LIKELY): 
-       (G_UNLIKELY): New macros for hinting the compiler about the
-       expected result of expressions. For gcc 3.x, define these
-       using __builtin_expect.  (#69022)
-
-Tue Nov 19 14:38:18 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c (g_ascii_strtoull): Fix 
-       strtull/strtoull type in docs (#99012, Morten
-       Welinder.) Add copyright information for code
-       taken from GNU libc.
-
-2002-11-18  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32.c (do_spawn_with_pipes): Do handle
-       G_SPAWN_DO_NOT_REAP_CHILD after all, similarily as on Unix. If the
-       flag is not set, don't call DuplicateHandle() on the handle
-       returned by the helper process, and set the "child pid" returned
-       to the called to zero. Close the handle to the helper process in
-       all cases.
-
-       * glib/gspawn.c (g_spawn_async_with_pipes): Document Windows
-       behaviour of G_SPAWN_DO_NOT_REAP_CHILD.
-
-2002-11-18  Tor Lillqvist  <tml@iki.fi>
-
-       [Win32] Fix the asynchronous g_spawn* to return the process handle
-       of the started program properly. (Note: not the process id. The
-       spawn*() functions in the C runtime return the created process's
-       handle. There doesn't seem to be any way to get the process id of
-       a child process if you have the handle. But then, the process
-       handle usually is more useful anyway.)
-
-       * glib/gspawn-win32-helper.c (WinMain): If the spawning of the
-       child process succeeded, and if asynchronous spawn (P_NOWAIT),
-       write the result handle up to the parent process, waiting to read
-       it in do_spawn_with_pipes().
-
-       * glib/gspawn-win32.c (do_spawn): Use return value from spawning
-       the helper. If it is -1 the helper wasn't found or couldn't be run
-       for some reason. Otherwise it is the helper's process handle.
-
-       (g_spawn_async_with_pipes): Pass the child_pid parameter on to
-       do_spawn_with_pipes().
-
-       (do_spawn_with_pipes): Take also a child_pid parameter. If
-       do_spawn() returned -1, fail immediately. Otherwise make the
-       handle passed to us by the helper process into a handle valid in
-       this process by calling DuplicateHandle().
-
-2002-11-17  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32.c (g_spawn_async_with_pipes): Ignore the
-       G_SPAWN_DO_NOT_REAP_CHILD flag, can't be meaninfully implemented
-       on Windows, at least not now. Always pass dont_wait as TRUE to
-       do_spawn_with_pipes(). The semantics of the dont_wait parameter is
-       very different from the semantics of the intermediate_child
-       parameter to fork_exec_with_pipes() in the Unix version. This
-       fixes a serious bug, g_spawn_async() in fact behaved
-       synchronously.
-
-       (do_spawn_with_pipes, do_spawn): Rename from
-       fork_exec_with_pipes() and do_exec(), those names were from the
-       Unix bersion, and misleading.
-
-       (close_and_invalidate): Don't try to close invalid fds.
-
-       * glib/gspawn.c (g_spawn_async_with_pipes): Add warning about
-       Windows behaviour. There is no fork(), so the child_setup()
-       function is in fact called in the parent.
-       
-       * glib/gspawn-win32-helper.c (WinMain): Insert spaces in argv
-       debugging output.
-
-       * tests/spawn-test-win32-gui.c: New file. Test program to be
-       linked as a GUI application. Behaves differently depending on how
-       invoked (by spawn-test).
-
-       * tests/spawn-test.c (run_tests): On Win32, run the
-       spawn-test-win32-gui program, too, in several ways, synchronously
-       and asynchronously.
-
-       * tests/Makefile.am: Corresponding change.
-
-Fri Nov  8 19:44:20 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * docs/reference/glib/tmpl/arrays.sgml:
-       * docs/reference/glib/tmpl/arrays_byte.sgml:
-       * docs/reference/glib/tmpl/arrays_pointer.sgml:
-       * docs/reference/glib/tmpl/date.sgml:
-       * docs/reference/glib/tmpl/linked_lists_double.sgml:
-       * docs/reference/glib/tmpl/linked_lists_single.sgml:
-       * docs/reference/glib/tmpl/main.sgml:
-       * docs/reference/glib/tmpl/queue.sgml:
-       * docs/reference/glib/tmpl/random_numbers.sgml:
-       * docs/reference/glib/tmpl/relations.sgml:
-       * docs/reference/glib/tmpl/scanner.sgml:
-       * docs/reference/gobject/tmpl/gtype.sgml:
-       * docs/reference/gobject/tmpl/value_arrays.sgml glib/garray.h:
-       * glib/gdate.h glib/giochannel.h glib/glist.h glib/gmain.c:
-       * glib/gmain.h glib/gqueue.c glib/gqueue.h glib/grand.c glib/grand.h:
-       * glib/grel.h glib/gslist.h glib/gtimer.h gobject/gvaluearray.h:
-
-       Trivial s/foo/foo_/ fixes to make <glib.h> includable with
-       -Wshadow without warnings (#91680)
-
-Thu Nov  7 19:32:26 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gutils.[ch] (g_set/get_application_name): 
-       Patch from Havoc Pennington to add functions for 
-       setting and getting a human readable application
-       name.
-
-       * configure.in: Up to version 2.1.3, since we'll
-       need to depend on last addition for GTK+.
-
-2002-11-06  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_main_thread_init.
-
-2002-11-06  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_str_has_suffix): 
-       (g_str_has_prefix): Minor doc markup fix.
-
-Mon Nov  4 10:45:48 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Add -DG_DISABLE_CAST_CHECKS for 
-       everything but --enable-debug.
-
-       * configure.in: Require pkg-config 0.14. (#97553)
-
-Mon Nov  4 14:41:48 2002  Owen Taylor  <otaylor@redhat.com>
-       * glib/gbsearcharray.c: Include config.h
-       so DISABLE_MEMPOOLS actually has an effect.
-       (#96437, Morten Welinder)
-       * tests/uri-test.c: Include <config.h>
-
-2002-11-03  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * configure.in: Added Belarusian to ALL_LINGUAS
-
-2002-11-02  Daniel Elstner  <daniel.elstner@gmx.net>
-
-       * glib/giochannel.c (g_io_channel_write_chars): Fix left_len
-       calculation in the from UTF-8 to UTF-8 case: left_len should
-       be the number of bytes left in the input buffer rather than
-       channel->write_buf. (#96373)
-
-2002-10-27  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in (G_MODULE_LDFLAGS): Don't set on Win32, only causes
-       trouble.
-       
-       * glib/gmain.c (g_poll): Fix for bug reported by Herman Bloggs
-       (http://mail.gnome.org/archives/gtk-devel-list/2002-October/msg00101.html)
-       and others. We waited for events only for GPollFDs whose events
-       field had G_IO_IN set. We need to wait also for events for
-       GPollFDs that have just G_IO_OUT set. Non-blocking sockets in the
-       process of being connect()ed are one such case. Also silence a
-       couple of gcc warnings.
-
-Fri Oct 18 13:41:30 2002  Manish Singh  <yosh@gimp.org>
-
-       * glib/giochannel.c (g_io_channel_read_line_backend): avoid
-       creating negative values out of unsigned values using MAX,
-       check to see if the result would be positive before doing
-       the calculation.
-
-Tue Oct 15 15:28:47 2002  Manish Singh  <yosh@gimp.org>
-
-       * tests/iochannel-test.c: use gsize instead of int where appropriate
-        (64-bit cleanliness fix). Removed leftover line_term cruft.
-
-Tue Oct 15 15:07:45 2002  Manish Singh  <yosh@gimp.org>
-
-       * gmodule/Makefile.am gobject/Makefile.am gthread/Makefile.am:
-       add -DG_DISABLED_DEPRECATED
-
-       * tests/gio-test.c tests/mainloop-test.c tests/string-test.c
-       tests/testglib.c test/tree-test.c tests/unicode-collate.c
-       tests/unicode-normalize.c: Deprecation cleanup
-
-Mon Oct 14 15:51:05 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gdate.c (g_date_fill_parse_tokens): Fix a memory
-       leak. (#94550, Sebastian Rittau)
-
-Mon Oct 14 15:36:11 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gcompletion.[ch] (g_completion_complete): Make
-       prefix argument const. (#91662, Gustavo Carneiro) 
-
-Mon Oct 14 15:32:14 2002  Owen Taylor  <otaylor@redhat.com>
-       * tests/mainloop-test.c (adder_response): Fix a minor memory
-       leak.
-Sat Oct 12 21:30:41 2002  Tim Janik  <timj@gtk.org>
-
-       * merged up from glib-2-0:
-
-        * glib/gstrfuncs.c (g_ascii_strtod): fix comment.
-        (g_ascii_strtoull): new function, acting like strtoull(3) in the C
-        locale.
-
-        * glib/gscanner.[hc]: fix 32bit issues with integer parsing and
-        support storing 64bit values in GTokenValue by
-        using g_ascii_strtoull().
-
-Sat Oct 12 12:34:22 2002  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * glib/gtree.c (g_tree_search), glib/gspawn.c
-       (g_spawn_async_with_pipes): 
-
-       Documentation fixes: #71778, Owen Taylor; #85095, Bill Janssen,
-       Owen Taylor. 
-
-Thu Oct 10 23:27:02 2002  Tim Janik  <timj@gtk.org>
-
-        * glib/gscanner.c (g_scanner_msg_handler): if input_name is NULL,
-        print out "<memory>" instead of completely skipping input specification
-        and thusly loosing error line information.
-
-Sun Sep 29 12:15:44 2002  Manish Singh  <yosh@gimp.org>
-
-       * tests/mainloop-test.c: use gsize instead of int where appropriate
-       (64-bit cleanliness fix)
-
-2002-09-29  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Instead of forcing -fnative-struct into CFLAGS
-       when using gcc for Win32, check for gcc version 3.x which uses
-       -mms-bitfields instead. Also check if either of these switches is
-       actually available at all, and warn if not. Thanks to Soren
-       Andersen for the inspiration.
-
-       * HACKING: Say we require autoconf 2.52 as that is what
-       configure.in does.
-
-2002-09-23  Arvind Samptur <arvind.samptur@wipro.com>
-       * glib/gspawn.c (fork_exec_with_pipes) : when the child fails
-       we need to reap it to avoid a zombie. This would
-       happen in case of g_spawn_sync. Fixes #92658
-
-2002-09-20  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gscanner.c (g_scanner_msg_handler): Don't print
-       scanner->input_name when it is NULL.  (#93752)
-
-2002-09-06  Havoc Pennington  <hp@redhat.com>
-
-       * autogen.sh: automake 1.4
-
-2002-09-01  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * docs/reference/glib/tmpl/datalist.sgml, glib/gmain.c:
-
-       Documentation fixes: (#75255, Martin Schulze; #76104, Daryll Strauss)
-
-2002-08-26  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in (G_LIBS_EXTRA): Don't link with -lwsock32 on
-       Cygwin (#91696, Masahiro Sakai).
-
-Tue Aug 20 16:01:03 2002  HideToshi Tajima  <hidetoshi.tajima@sun.com>
-
-       * glib/gconvert.c (strdup_len): validate 'len' argument properly
-       for the case that input string is not null-terminated. (#91222)
-
-2002-08-10  Gustavo Noronha Silva  <kov@debian.org>
-
-       * configure.in: added pt_BR to ALL_LINGUAS
-
-2002-08-07  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmarkup.c (g_markup_parse_context_get_element): 
-       Use g_return_val_if_fail, no g_return_if_fail.
-
-2002-08-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gthread.c: Set the normal PID surrogate priority according
-       to getpid() to avoid errors for niced processes. (#86116)
-
-       * gthread/gthread-impl.c, gthread/gthread-posix.c,
-       gthread/gthread-solaris.c: Do the same for the posix/dce
-       implementation. Solaris still needs to set priority of the main
-       thread, because all unbound threads will schedule according to
-       that value and it defaults to 0 (the minimal value). 
-
-       * glib/gmain.c: Factor out g_main_context_init_pipe from
-       g_main_context_new to initialize the wakeup pipe of a
-       context. Call that function from g_main_context_new if threads are
-       initialized and for all contexts when threads are initialized
-       in g_main_thread_init. (#86872) 
-
-       * gthread/gthread-impl.c: Call g_main_thread_init. (#86872) 
-
-Thu Jul 25 14:23:15 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gfileutils.c: Clarify the behavior of g_build_path()
-       for empty elements and for leading and trailing copies
-       of the separator in the docs.
-       * glib/gfileutils.c: Fix problems with leading elements
-       consisting only of "/" characters. (#85928, Guillaume Chazarain)
-       * tests/strfunc-test.c (main): Add more test cases
-       for g_build_filename().
-2002-07-26  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gunicode.h: 
-       * glib/gutf8.c (g_utf8_strreverse): New function to revert
-       a utf8 string.
-       * glib/gpattern.c (g_utf8_reverse): Gone, replaced by 
-       g_utf8_strreverse.  (#87725)
-
-Thu Jul 25 20:57:20 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_channel_read_line): Fix 
-       docs for @str_return to conform to the main docs
-       and the implementation as to whether the terminator
-       is included. (#87964, Jacob Berkman)
-
-Thu Jul 25 19:52:41 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/guniprop.c (real_tolower): Handle the 
-       end of the string properly when max_len is set.
-       (#88545, Morten Welinder.) Rename the next_t
-       variable to next_type to make cc-mode happy.
-
-       * glib/gconvert.c (g_iconv_open): Fix missing
-       label from previous commit.
-
-Thu Jul 25 19:41:03 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_channel_get_flags): Fix 
-       incorrect return value in g_return_val_if_fail 
-       (#85545, David L. Cooper II)
-
-Thu Jul 25 19:12:43 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_channel_set_encoding): Clarify
-       that only one of the conditions listed in the docs
-       need to be true, not all of them. (#87176,
-       Sebastian Rittau)
-
-       * glib/giochannel.c (g_io_channel_read_line): Fix 
-       description of the return value. (#87754, Manuel Clos)
-
-Thu Jul 25 19:02:53 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_timeout_add): Remove reference
-       in the docs to @notify parameter. (#87768,
-       Manuel Clos)
-
-Thu Jul 25 17:57:07 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gconvert.c (g_iconv_open): Document the
-       (GIConv)-1 return value on failure. (#87559, 
-       Jarek Dukat)
-
-       * glib/gconvert.c (g_iconv_open): Fix potential
-       problems with the assumption that (GIConv)(iconv_t)-1
-       is the same as (GIConv)-1.
-       
-2002-07-15  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmarkup.h: 
-       * glib/gmarkup.c (g_markup_parse_context_get_element): New
-       function to get the currently open element.  (#70448)
-
-2002-07-04  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * tests/*.c: Added #undef G_DISABLE_ASSERT and #undef G_LOG_DOMAIN
-       throughout the files, which didn't already have them. (#87312)
-
-2002-07-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-        * configure.in: Made the thread flags determination tests first
-       check for the canonical form -pthread[s], then for other
-       possibilities. Also recognize some more platforms. Modeled after
-       patch from Miroslaw Dobrzanski-Neumann <mne@mosaic-ag.com>
-       (#77981).
-       
-       * configure.in: Fixed bugs in posix thread priority
-       resolution. Also added AIX priorities. Fix from
-       Laurent Vivier <Laurent.Vivier@bull.net>. (#82599)
-       
-       * gthread/gthread-solaris.c: Use thr_min_stack() instead of
-       sysconf (_SC_THREAD_STACK_MIN). if stack_size is 0 on entry to
-       g_thread_create_solaris_impl, also pass 0 to thr_create. Otherwise
-       the stack might be to small for any nontrivial thread. Discovered
-       on intel-solaris by Rajkumar Sivasamy <rajkumar.siva@wipro.com>.
-
-2002-07-03  Anders Carlsson  <andersca@gnu.org>
-
-       * configure.in: Add a forgotten trailing ` in the 
-       GLIB_BINARY_AGE expression. Also fixup LT_CURRENT.
-
-2002-07-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * configure.in: Set binary age to 0 to make it compile.
-
-       * configure.in: Improve checks for dce/posix threads to also do
-       the right thing, if the thread functions are not declared in
-       pthread.h. Idea from Miroslaw Dobrzanski-Neumann
-       <mne@mosaic-ag.com> in #77981.
-
-2002-07-01  Anders Carlsson  <andersca@gnu.org>
-
-       * configure.in: Up version to 2.1.0.
-
-2002-07-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/garray.h: Add parenthesis to protect macro
-       argument. Spotted by Sam Couter <sam@topic.com.au>. (#86826)
-
-2002-06-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gmessages.h (g_assert, g_assert_not_reached,
-       g_return_if_fail, g_return_val_if_fail): In case of
-       G_DISABLE_ASSERT replace "G_STMT_START{ }G_STMT_END" with
-       "G_STMT_START{ (void)0; }G_STMT_END", because the former chokes
-       gcc prior to 3.0. (#86664)
-
-2002-06-26  Yanko Kaneti <yaneti@declera.com>
-
-       * configure.in: (ALL_LINGUAS) Added Bulgarian (bg).
-
-Thu Jun 13 16:12:04 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (struct _GTimeoutSource): Make 
-       interval unsigned to match g_timeout_source_new().
-       (#82624, Tim Janik.)
-
-       * glib/gmain.c (g_timeout_prepare): Add some
-       extra gymnastics to avoid signed/unisgned integer
-       overflows.
-
-Thu Jun 13 15:57:46 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * INSTALL.in: Add a note about the deficiency
-       of Tru64 iconv. (#81699, Manuel Op de Coul)
-
-Tue Jun 11 17:03:39 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/patterntest.c (test_compilation)
-       * glib/gmem.c (profiler_try_realloc): A couple
-       of 64-bit printf format fix from George Lebl.
-       (#82817)
-
-       * glib/gconvert.c (open_converter): Fix gsize/gint
-       mixup for g_iconv() arguments. (#83270,
-       David L. Cooper II)
-
-2002-06-03  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gwin32.c (g_win32_get_package_installation_directory):
-       Replace homegrown "hash" entity by standard ISO entity "num".
-
-2002-05-26  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmain.c: Remove references to nonexisting functions 
-       g_source_set_callback_closure(), g_source_poll(), g_source_add()
-       from docs.
-
-       * glib/gdir.c (g_dir_open): Typo fix in docs.
-
-       * glib/gasyncqueue.c (g_async_queue_lock):
-       (g_async_queue_unref_and_unlock): Fix markup to avoid erroneous 
-       <link>s in docs.
-
-       * glib/gwin32.c: Escape #'s leading to erroneous <link>s in docs.
-
-       * glib/gtree.c: Replace some occurances of Gtree by GTree in docs.
-
-       * glib/gstring.c (g_string_insert_unichar): Typo fix in docs.
-
-2002-05-23  Havoc Pennington  <hp@redhat.com>
-
-       * glib/gspawn.c (fork_exec_with_pipes): on success, close the
-       pipes from the child. Fix from Tim.
-
-2002-05-22  jacob berkman  <jacob@ximian.com>
-
-       * m4macros/glib-gettext.m4 (AM_GLIB_WITH_NLS): fix tyop
-
-Wed May 22 15:40:47 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * README.in: Remove notes about now-fixed-bugs.
-
-       * m4macros/glib-gettext.m4 acinclude.m4: Get rid
-       of AC_MSG_NOTICE() usage, since some broken systems
-       (Hi Debian!) might not be using autoconf-2.5x for
-       downstream packages even though we require it for
-       glib itself.
-
-       * INSTALL.in: Add a note about installing extra
-       converters for Solaris.
-
-       * glib/gutils.h (g_bit_nth_msf): Fix termination
-       condition. (#82582, Paolo Molaro)
-Tue May 21 15:51:17 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: $with_libiconv, not $with_iconv.
-
-Mon May 20 18:02:46 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Move iconv tests before gettext
-       checks. (#81999)
-
-       * m4macros/glib-gettext.m4 acinclude.m4: If we can't
-       link to gettext, try adding in -liconv. (#80076,
-       Boyd Lynn Gerber)
-
-       * m4macros/glib-gettext.m4 acinclude.m4: Suppress
-       warnings about xgettext not being GNU gettext when
-       libintl wasn't found at all. 
-       (#79016, Andrew P. Lentvorski, Jr.)
-        
-2002-05-21  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmarkup.c (g_markup_parse_context_parse): Added
-       proper support for CDATA sections.
-
-2002-05-20  jacob berkman  <jacob@ximian.com>
-
-       * glib/gdir.c: include sys/types.h before dirent.h to build on
-       darwin (fixes #72859)
-
-Mon May 20 15:35:59 2002  Owen Taylor  <otaylor@redhat.com>
-       * glib/gfileutils.c (get_contents_regfile): Fix double
-       close of file descriptor on error. (#82139, Wayne Schuller)
-       * glib/gspawn.c (close_and_invalidate): Don't close
-       fd's that have already been closed. (Fix from Michael
-       Meeks, #81959)
-       * glib/giochannel.c (g_io_channel_close): If not flushing,
-       dump the contents of the write buffers, so we won't try
-       to write them to an invalid fd later. (Patch from Ron Steinke,
-       fixing #78290, Andreas Persenius.)
-2002-05-18  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/markups/fail-36.gmarkup: 
-       * tests/markups/fail-35.gmarkup: 
-       * tests/markups/valid-8.gmarkup: 
-       * tests/markups/valid-7.gmarkup: 
-       * tests/markups/valid-6.gmarkup: 
-       * tests/markups/valid-5.gmarkup: New testcases.
-
-       * tests/markup-test.c (passthrough_handler): 
-       (text_handler): Don't ignore the text_len parameter.
-
-       * glib/gmarkup.c (find_current_text_end): Don't hang on embedded
-       nuls.  (#81977)
-       (g_markup_parse_context_parse): Fix passthrough handling to
-       correctly skip processing instructions, comments, doctype
-       declarations and CDATA marked sections.  (#81977)
-
-Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
-
-       [merged from stable]
-
-        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
-        expected_token.
-
-2002-05-17  Tor Lillqvist  <tml@iki.fi>
-
-       * config.h.win32.in: Match new additions in a configure-produced
-       config.h.
-
-       * glibconfig.h.win32.in: gssize and gsize as in a
-       configure-produced glibconfig.h.
-
-       * glib/glib.def: Add new functions.
-
-Thu May 16 12:24:00 2002  Owen Taylor  <otaylor@redhat.com>
-       * acinclude.m4 m4macros/glib-gettext.m4: Incorporate 
-       AM_LC_MESSAGES, AM_PATH_PROG_WITH_TEST as AM_GLIB_* to avoid 
-       dependencies on gettext m4 files. (#81885, Hidetoshi Tajima.)
-       
-2002-05-14  Alex Larsson <alexl@redhat.com>
-       
-       * glib/gstrfuncs.c: 
-       * glib/gstrfuncs.h:
-       New functions g_str_has_suffix and g_str_has_prefix.
-       
-       * tests/string-test.c: (main):
-       Test the new functions.
-
-Mon May 13 23:20:00 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * autogen.sh (have_gettext): Add a check for GNU gettext.
-       (Pointed out by Dan Winship in #59386.)
-
-Mon May 13 11:55:33 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in acglib.m4: If sizeof(int) == sizeof(long)
-       run compilation tests to determine which way gsize should
-       be defined. (#74413, reported by Miroslaw Dobrzanski-Neumann)
-
-Mon May 13 11:42:23 2002  Owen Taylor  <otaylor@redhat.com>
-        * glib/libcharset/*: Update from libcharset CVS.
-       Includes additional encodings for Solaris (#80396,
-       Qingjiang Yuan)
-       * configure.in: Add getc_unlocked to CHECK_FUNCS().
-       * glib/gmessages.c (strdup_convert): If
-       g_convert_with_fallback() fails, print the error
-       message to stderr the first time, then return
-       the original string. (#78197)
-2002-05-10  Naba Kumar  <kh_naba@users.sourceforge.net>
-
-       * configure.in: Added "hi" to ALL_LINGUAS.
-
-2002-05-08  Michael Natterer  <mitch@gimp.org>
-
-       * configure.in: fixed yesterdays fix for cross compiling: simply
-       check the variable "cross_compiling" which gets set by autoconf.
-
-2002-05-07  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmarkup.c (unescape_text): Report unfinished entity
-       references as errors rather than running into an assert.  (#80441)
-
-2002-05-07  Michael Natterer  <mitch@gimp.org>
-
-       * configure.in: added a new conditional CROSS_COMPILING which
-       indicates ($build != $host). If it is set, look for
-       glib-genmarshal in PATH. Error out if it was not found.
-
-Tue May  7 11:24:22 2002  Owen Taylor  <otaylor@redhat.com>
-
-       Fixes for #79347, Ron Arts.
-
-       * glib/gqsort.c (g_qsort_with_data): Handle 0 elements,
-       don't g_return_if_fail().
-
-       * tests/qsort-test.c (main): Add a 0 element test.
-
-       * glib/garray.c (g_[ptr_]array_sort_with[_data]): 
-       Remove invalid assertions that array->pdata != NULL ..
-       it's NULL for 0 elements which is a valid case.
-
-Mon May  6 16:00:41 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gbacktrace.h: Exclude OSF from alpha definition
-       of G_BREAKPOINT(), since the assembler apparently
-       doesn't support bpt. (#77852, Gareth Pierce) [from stable]
-
-Mon May  6 11:48:08 2002  Owen Taylor  <otaylor@redhat.com>
-
-       [ merged from stable ]
-       * Makefile.am (EXTRA_DIST): Add ChangeLog.pre-2-0 (#78641)
-       * m4macros/glib-2.0.m4: save CFLAGS/LIBS properly when
-       compiling "what went wrong" test case. (#79330)
-       * m4macros/glib-2.0.m4: Remove reference to editing
-       pkg-config script. (From Jim Gettys)
-       * configure.in: (Look for dyld interfaces before dlopen()
-       since OS X can have both. Patch from Jacob Berkman, 
-       #80438)
-       
-2002-05-01  jacob berkman  <jacob@ximian.com>
-
-       * configure.in: fix typo on 64-bit printf formatting string
-       configure message (fixes #80389)
-
-2002-04-29  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * configure.in: Added Vietnamese (vi) to ALL_LINGUAS
-
-2002-04-19  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn.c (g_spawn_command_line_sync): Add Windows-specific
-       note to the gtk-doc comment.
-
-       * glib/gspawn-win32.c: Remove the copy-pasted gtk-doc comment
-       blocks. It's enough to have them in gspawn.c.
-
-2002-04-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread/gthread-impl.c (g_thread_init): Fixed typo. (#78985)
-
-2002-04-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool
-       for all threads leaving it. (#78348)
-
-2002-04-11  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for
-       stuff fed to g_print.
-
-2002-04-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * tests/gio-test.c, tests/markup-test.c: Use gsize instead of
-       gint. From Miroslaw Dobrzanski-Neumann
-       <mne@mosaic-ag.com>. (#77982)
-       
-2002-04-08  Stanislav Brabec  <utx@penguin.cz> 
-
-        * cs.po: Added Czech (cs) to ALL_LINGUAS.
-
-2002-03-31  Hasbullah Bin Pit <sebol@ikhlas.com>
-
-       * configure.in: Added Malay (ms)to ALL_LINGUAS.
-
-2002-03-29  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_convert_init.
-
-Thu Mar 28 18:25:14 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * Released 2.0.1
-
-       * configure.in: Version 2.0.1, interface, binary age 1.
-
-Thu Mar 28 18:22:53 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * README: Remove warning about g_print, etc, encoding.
-
-       * NEWS: Updates.
-
-       * glib/gmessages.c (g_log_default_handler): Use %lu
-       (plus a cast) when printing out pid_t arguments.
-       (#76770, Morten Welinder)
-
-       * glib/gstrfuncs.c (g_strdup_vprintf): Check the
-       result of vasprintf(), return NULL on failure.
-       (#76802, Akira Tagoh)
-
-       * tests/testglib.c (TEST): Supress a warning with
-       some GCC versions. 
-
-Thu Mar 28 20:31:51 2002  Tim Janik  <timj@gtk.org>
-
-       * glib/gmessages.c:
-       (g_print): 
-       (g_printerr): convert prtinf() strings to local charset
-       when writing them to stdout or stderr.
-
-Wed Mar 27 18:42:22 2002  Tim Janik  <timj@gtk.org>
-
-       * gmessages.[hc]:
-       major cleanups. introduced _g_log_fallback_handler() to handle
-       recursive messages which really doesn't call any GLib functions.
-       this allowes the default handler to use normal GLib functions and
-       also fixes user supplied log level handlers.
-       fixed locking issues, based on a patch from Sebastian Willhelmi,
-       attached to #74356. translate log messages from UTF-8, based
-       on the same patch. save fatal and recursion flags across flag
-       loop. use new integer format code from above patch.
-       move GLib functions out of locked mutex state to avoid deadlocks.
-       move the level prefix and filedescriptor logic into mklevel_prefix().
-       move _g_debug_init() into a place where we can figure and handle
-       recursion.
-
-Mon Mar 25 18:13:06 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gtypes.h (GUINT*_SWAP_LE_BE_X86): Remove __const__
-       qualifier from __asm__ statements... GCC since at least
-       2.96 has assumed no side effects automaticaly, and gcc-3.1
-       will warn about this usage. (#73308, Cody Russell)
-
-Fri Mar 22 17:59:27 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmem.c (g_mem_chunk_reset): Fix problem where
-       if g_mem_chunk_reset() is called on an alloc-only
-       memchunk, then a useles GTree was created.
-
-Wed Mar 20 18:20:21 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gconvert.c (open_converter): Try to work around segfaults
-       on Solaris if NULL is passed for outbuf... supposedly gchar
-       *outbuf = NULL... &outbuf works. (#74336, Lauri Alanko)
-
-Wed Mar 20 11:17:32 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gfileutils.c (get_contents_regfile): Close the
-       file descriptor. (#75507, Matthias Clasen)
-
-Wed Mar 20 11:00:59 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Use $PKG_CONFIG, not pkg-config.
-       (LEE Sau Dan, #75572)
-
-2002-03-20  Sven Neumann  <sven@gimp.org>
-
-       * glib/ghash.c (g_hash_table_resize): avoid repeated call of 
-       g_spaced_primes_closest() by moving it out of the CLAMP macro 
-       (spotted by Salmaso Raffaele).
-
-2002-03-17  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Add MSVC-specific text by Hans Breuer.
-
-2002-03-16  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c: Some debugging output formatting changes. The
-       following changes fix a problem with buffered GIOChannels, noticed
-       with the help of Owen's test program, thanks! (#59969)
-       (g_io_win32_prepare): Return value that takes the buffer condition
-       into account, like g_io_unix_prepare() does.
-       (g_io_win32_check): Ditto, like g_io_unix_check().
-       (g_io_win32_dispatch): Ditto, like g_io_unix_dispatch().
-
-Thu Mar 14 17:37:45 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_channel_write_chars): Fix some
-       gsize/gint mismatches. (#74422, Miroslaw Dobrzanski-Neumann)
-
-2002-03-14  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gmessages.c: Fixed threading issues brought up by
-       #74577. Make g_log_find_domain, g_log_domain_new,
-       g_log_domain_check_free and g_log_domain_get_handler require being
-       called with g_messages_lock held and remove all internal locking
-       in them. Then added proper locking to g_log_set_handler,
-       g_log_remove_handler and g_logv. Problem spotted by Miroslaw
-       Dobrzanski-Neumann <mne@mosaic-ag.com>. (#74577)
-
-2002-03-13  Erwann Chenede  <erwann.chenede@sun.com>
-        * glib/gconvert.c 
-         glib/gen-unicode-tables.pl
-         glib/gunidecomp.h : fixed cast/type problems to 
-         avoid warnings (with forte compiler) (#73898)
-       
-2002-03-12  Alexander Larsson  <alla@lysator.liu.se>
-
-       * glib/gconvert.c:
-       Cache getenv("G_BROKEN_FILENAMES") in have_broken_filenames() and
-       use instead. Add g_convert_init() that calls have_broken_filenames()
-
-       * gthread/gthread-impl.c:
-       Have g_thread_init call g_convert_init.
-
-2002-03-11  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strtod): 
-       (g_ascii_strtod): 
-       (g_ascii_dtostr): 
-       (g_ascii_formatd): Doc formatting fixes.
-
diff --git a/ChangeLog.pre-2-20 b/ChangeLog.pre-2-20
deleted file mode 100644 (file)
index 4ca68de..0000000
+++ /dev/null
@@ -1,914 +0,0 @@
-=== ChangeLog discontinued ===
-
-       With the move to git, GLib is switching from a ChangeLog file
-       to relying on commit messages to provide change history. Please
-       see README.commits for guidance on the expected message format.
-
-2009-03-29  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 577137 – g_logv() will crash if given format args and multiple
-       log levels
-
-       * glib/gmessages.c (g_logv): Copy a va_list when using it
-       multiple times. Reported by Wim Lewis.
-
-2009-03-16  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 575555 – Use fsync() when replacing files to avoid data loss on crash
-
-       * configure.in:
-       Look for fsync().
-
-       * glib/gfileutils.c:
-       (write_to_temp_file):
-       fsync temp file if destination file exists
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.20.0 ===
-
-       * configure.in: Bump version to 2.20.0
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2009-03-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbase64.c: Avoid integer overflows in the base64
-       functions. Fixes CVE-2008-4316
-
-2009-03-11  Stef Walter  <stef@memberwebs.com>
-
-       * glib/gchecksum.c: Document and guarantee hex digests will
-       be returned in lower case. Fixes bug #574019
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.10 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.9 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2009-03-01  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 572508 – gmarkup speedup ...
-
-       * glib/gmarkup.c: Various optimizations: do less allocations by
-       keeping a pool of GStrings, do in-place unescaping, avoid redundant
-       utf-8 validation. Patch by Michael Meeks
-
-       * tests/markups/fail-36.gmarkup: Adapt
-
-2009-03-01  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/gthread.c: Fix docs.
-
-2009-03-01  Matthias Clasen <mclasen@redhat.com>
-
-       * tests/slice-threadinit.c: Change one magazine size from 77 to 81
-       to make distcheck work on x86-64.
-
-2009-02-27  Tor Lillqvist  <tml@novell.com>
-
-       Bug 167569 - g_string_append_printf crashes on win32 when used
-       with a NULL argument
-
-       * glib/gnulib/vasnprintf.c (vasnprintf): Add workaround for buggy
-       programs. Patch by Owen.
-
-2009-02-23  Paolo Borelli  <pborelli@katamail.com>
-
-       * glib/gutf8.c (_g_utf8_make_valid):
-       sanity check the input paramter. 
-
-2009-02-23  Tor Lillqvist  <tml@novell.com>
-
-       Bug 570501 - g_win32_get_system_data_dirs uses invalid conversion
-       of function pointer to object pointer
-
-       * glib/gutils.c (g_win32_get_system_data_dirs_for_module): Change
-       the type of the function's parameter to be explicitly a function
-       pointer.
-
-       * glib/gutils.h (_g_win32_get_system_data_dirs): Modify
-       declaration and the only caller, the inline
-       _g_win32_get_system_data_dirs(), accordingly. Add comments
-       pointing out these are internal GLib functions.
-
-2009-02-22  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 572151 – “it's” and “its” confused in docs and comments
-
-       * Fix "it's" vs "its" confusion throughout the source. Patch
-       by Will Thompson.
-
-2009-02-22  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 572464 – Doc for g_file_get_contents
-
-       * glib/gfileutils.c (g_file_get_contents): Improve docs. Pointed
-       out by Øystein Johansen.
-
-2009-02-22  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 572672 – glib/gthread.c: argument is different type
-
-       * glib/gthread.c (g_once_init_leave): Add a necessary cast back.
-       Pointed out by Kazuki Iwamoto.
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.8 ===
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix strict aliasing warnings and viiolations to make GLib and
-       GLib users buildable with gcc 4.4. Patch by Jakub Jelinek.
-
-       * glib/gatomic.[hc]: Add G_GNUC_MAY_ALIAS to pointer arguments,
-       fix macro versions to only operate on objects of the same size.
-
-       * glib/gdataset.c:
-       * glib/gthread.[hc]:
-       * glib/gdatasetprivate.h: Remove unnecessary casts in 
-       g_atomic_pointer_get calls.
-       
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.7 ===
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2009-02-13  Mathias Hasselmann  <hasselmm@gnome.org>
-
-       Add note about g_utf8_offset_to_pointer() not checking string
-       boundaries.
-
-       * glib/gutf8.c (g_utf8_offset_to_pointer()): See summary.
-
-2999-02-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 523742 – Use noinst for non-installable libraries
-
-       * tests/Makefile.am: use noninst_LTLIBRARIES for noninstalled 
-       libraries.Patch by Björn Lindqvist
-
-2009-02-06  Murray Cumming  <murrayc@murrayc.com>
-
-       * gio/gfilterinputstream.c:
-       * gio/gfilteroutputstream.c: Correct the grammar in some property 
-       documentation.
-       * gio/gdatainputstream.c:
-       * glib/gregex.c: Correct the spelling of 
-       occurrence in documentation.
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.6 ===
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-01-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2009-01-31  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 569105 – g_time_val_to_iso8601() assumes time_t==long
-
-       * glib/gtimer.c (g_time_val_to_iso8601): Pass a time_t* to gmtime().
-       Pointed out by Matthias Drochner.
-
-2009-01-27  Christian Persch  <chpe@gnome.org>
-
-       * configure.in:
-       * docs/reference/glib/glib-sections.txt:
-       * docs/reference/macros_misc.sgml:
-       * docs/reference/glib/tmpl/types.sgml: Add
-       G_GOFFSET_FORMAT and friends. Bug #563141.
-
-2009-01-23  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/glib/Makefile.am:
-         Add SCAN_OPTIONS=--ignore-decorators="GLIB_VAR" to Makefile.am to fix
-         on problem with the doc build.
-
-2009-01-21  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.c (g_win32_locale_filename_from_utf8): Drop the code
-       in the else branch of #if GLIB_CHECK_VERSION (2, 19, 0). Drop
-       unused variables.
-
-2009-01-20  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 568294 – A wrong reference in the description of 
-       g_bookmark_file_add_application()
-
-       * glib/gbookmarkfile.c (g_bookmark_file_add_application):
-       Fix a typo in the docs. Pointed out by Takeshi Aihana
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.5 ===
-
-2009-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c (g_strdup_printf): Fix a doc typo.
-
-2009-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2009-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 512779 – --disable-regex breaks compilation
-       
-       * configure.in: Define an ENABLE_REGEX macro
-
-       * gobject/gboxed.c: Don't refer to g_regex_ref if ENABLE_REGEX
-       is not defined.
-
-2009-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gbsearcharray.h: Quell some compiler warnings.
-
-2009-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/pcre: Update to PCRE 7.8
-
-2009-01-17  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 567977 – textdomain() macro should not return NULL when 
-       ENABLE_NLS is not set
-
-       * glib/glibintl.h: If !ENABLE_NLS, make textomain() macro 
-       return "messages" in case of a NULL argument. Patch by
-       Peter Kjellerstedt.
-
-2009-01-17  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 567838 – G_STRUCT_OFFSETOF fails to compile under icc 9.1
-
-       * glib/gmacros.h (G_STRUCT_OFFSETOF): Use offsetof instead of 
-       __builtin_offsetof, for icc's sake. Proposed by Hrvoje Niksic.
-
-2009-01-13  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 564728 Add function to decode base64 encoded data in place
-
-       * glib/glib.symbols:
-       * glib/gbase64.[hc] (g_base64_decode_inplace): New convenience
-       API to decode in place, overwriting the input string. Patch by
-       Sebastian Dröge.
-
-2009-01-12  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/gtestutils.c (g_strcmp0): Be more explicit about the NULL
-       handling in the docs.
-
-2009-01-12  Tor Lillqvist  <tml@novell.com>
-
-       * glib/goption.c (parse_arg): Guard against a mis-written
-       GOptionArgFunc that has returned FALSE but not set the GError.
-
-2009-01-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 566573 – g_match_info_fetch_pos docs
-
-       * glib/gregex.c: Mention that positions are in bytes. 
-       Proposed by Christian Persch.
-
-2009-01-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 566569 – gregex docs clarification
-
-       * glib/gregex.c: Copy the warning about @string to all
-       relevant docs. Proposed by Christian Persch
-
-2009-01-09  Tor Lillqvist  <tml@iki.fi>
-
-       Bug 567138 - get_package_directory_from_module() does not free its
-       lock when failing
-
-       * glib/gwin32.c (get_package_directory_from_module): Obvious fix.
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.4 ===
-
-       * NEWS: Updates
-
-2009-01-05  Dan Winship  <danw@gnome.org>
-
-       * glib/tests/.gitignore: update
-
-       * tests/.gitignore: update, sort
-
-       * tests/gobject/.gitignore: add
-
-2009-01-05  Tor Lillqvist  <tml@iki.fi>
-
-       Bug 566348 - g_file_open_tmp uses the wrong g_mkstemp on win32
-
-       * glib/gfileutils.c: Move the binary compatibility versions of
-       g_file_test(), g_file_get_contents(), g_mkstemp() and
-       g_file_open_tmp() last in the file. Remove the restriction that
-       the XXXXXX is last in the template in the binary compatibility
-       version of g_mkstemp(). Thanks to Morten Welinder and Jody
-       Goldberg.
-
-2009-01-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2009-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gregex.c: Add an example to the g_regex_replace_eval() docs.
-
-2009-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c: Move docs inline, adding references to g_free()
-       where appropriate.
-
-2009-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 564210 – SUN Studio 12 has supported visibility attribute
-
-       * configure.in: Use visibility attribute for new enough sun cc.
-       Patch by Chris Wang
-
-2008-12-30  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 565905 – There is no named g_context_group_set_translation_domain()
-       in GOption command line parser
-
-       * glib/goption.c: Fix a wrong reference in the docs, reported by
-       Takeshi Aihana.
-
-2008-12-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gspawn.c:
-       * glib/gthread.c:
-       * glib/goption.c:
-       * glib/gmain.c:
-       * glib/gkeyfile.c:
-       * glib/gfileutils.c:
-       * glib/gdate.c:
-       * glib/garray.c:
-       * glib/gbookmarkfile.c:
-       * glib/gbacktrace.c: Fix some compiler warnings.
-
-2008-12-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib/glib.symbols: Add g_thread_get_initialized here,
-       too. Surround g_test_config_vars with ifdef INCLUDE_VARIABLES.
-
-2008-12-18  Mike Kestner <mkestner@novell.com>
-
-       Bug 560676 - function access for g_threads_supported
-
-       * glib/gthreads.c (g_thread_get_initialized): new accessor for
-       g_threads_supported macro.
-       * glib/gthreads.h: add g_thread_get_initialized
-
-2008-12-15  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.19.3 ===
-
-2008-12-13  Matthias Clasen <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2008-12-12  Dan Winship  <danw@gnome.org>
-
-       * glib/pltcheck.sh: make this work on x86_64
-
-2008-12-12  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/guniprop.c: Improve g_unichar_iswide_cjk() docs.
-
-2008-12-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 508021 – Add support for the CRIS and CRISv32 architectures
-
-       * configure.in: 
-       * glib/gatomic.c: Add an implementation for the CRIS and CRISv32 
-       architectures, by Peter Kjellerstedt
-
-2008-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Some more documentation additions.
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.2 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.1 ===
-
-       * NEWS: Updates
-
-2008-11-28  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 562639 – g_parse_debug_flags() parsing "help"
-
-       * glib/gutils.c (g_parse_debug_string): Print available keys if
-       string is "help".
-
-2008-11-28  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 562638 – GDebugKey key member should be const
-
-       * glib/gutils.h: Change GDebugKey key member from gchar * to
-       const gchar *.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 547264 – Missing "no flags" flag
-
-       * glib/gregex.c: Mention 0 as value for 'no flags' in some places..
-       Pointed out by Bastien Nocera
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 562544 – g_key_file_get_string and g_key_file_get_value
-       documentation does not explain the difference
-
-       * glib/gkeyfile.c (g_key_file_get_string): Explain the difference
-       to g_key_file_get_value(). Pointed out by Mart Raudsepp.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Refer to @locale parameters as locale identifier
-       in docs.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 557603 – carbon check output misplaced
-
-       * configure.in: Call AC_PROG_CPP early to avoid it messing up
-       carbon check output. Fix proposed by Christian Persch
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 559110 – Do not include libintl.h after glibintl.h
-
-       * glib/glibintl.h: Define bind_textdomain_codeset in the DISABLE_NLS
-       branch. Patch by Peter Kjellerstedt.
-
-       * glib/gutil.c: Don't include libintl.h directly.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 562378 – callback return value not respected for callback option
-       with no arg
-
-       * glib/goption.c (parse_long_option): Return the parse_arg return
-       value even for no-arg callbacks. Patch by Christian Persch
-
-       * glib/tests/option-context.c: Add a test for a callback which
-       returns FALSE.
-
-2008-11-23  Christian Persch  <chpe@gnome.org>
-
-       Bug 559413 – g_option_group_set_error_hook docs buglet
-
-       * glib/goption.c: Doc fix.
-
-2008-11-23  Christian Persch  <chpe@gnome.org>
-
-       Bug 560568 – gkeyfile docs buglet
-
-       * glib/gkeyfile.c: Clarify the docs.
-
-2008-11-23  Christian Persch  <chpe@gnome.org>
-
-       Bug 560569 – gkeyfile doesn't use the set list_separator in some cases
-
-       * glib/gkeyfile.c: (g_key_file_get_locale_string_list),
-       (g_key_file_set_locale_string_list), (g_key_file_set_integer_list),
-       (g_key_file_set_double_list): Use the key file's list separator character,
-       not the default one.
-
-       * glib/tests/keyfile.c: (test_lists), (test_reload_idempotency): Test
-       this.
-
-2008-11-21  Christophe Fergeau <teuf@gnome.org>
-
-       Bug 561212 – GFileReadMoreCallback API doc refers to non-existant function
-
-       * gio/giotypes.h: fix name of function referred to in
-       GFileReadMoreCallback API documentation
-
-2008-11-21  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump gtk-doc dependency to 1.11 for
-       nicer index-generation.
-
-2008-11-14  Matthias Clasen <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2008-11-04  Christian Dywan  <christian@imendio.com>
-
-       Bug 558672 – NULL key lookup using g_hash_table_lookup_extended()
-
-       * glib/ghash.c:
-       Clarify g_hash_table_lookup_extended
-
-2008-11-02  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Expand also build/win32/vs9/Makefile.
-
-2008-10-31  Christian Dywan  <christian@imendio.com>
-
-       Bug 558513 – g_warn_if_fail FIXME in gtestutils
-
-       * glib/gtestutils.c (g_test_log_send):
-       Turn g_assert into g_warn_if_fail as advised
-
-2008-10-31  Grahame Bowland  <grahame@angrygoats.net>
-
-       Bug 558185 – 'parent' variable in g_local_file_get_child_for_display_name() 
-       hits g_object_unref(NULL) assertion
-
-       * gio/glocalfile.c: 
-       - remove unused variable. Patch by Matt Johnston <matt@ucc.asn.au>
-
-2008-10-29 16:11:14  Tim Janik  <timj@gtk.org>
-
-       * glib/gmacros.h: added G_PASTE() and G_STATIC_ASSERT(), based on
-       patches by Christian Persch and Christian Dywan. Fixes:
-       Bug 558381 - Add support for compile time assertions
-
-2008-10-27  Joseph Pingenot  <gnomesvn@digitasaru.net>
-
-       * glib/ghash.c: changed "#GHashTableIterator" to "#GHashTableIter"
-       in the documentation-comments above g_hash_table_foreach_remove()
-       and g_hash_table_foreach_steal() to correctly name and link to
-       GHashTableIter.  This affects the GNOME documentation website
-       as well, so further steps are likely necessary beyond this subproject..
-
-2008-10-23 Matthias Clasen <mclasen@redhat.com>
-
-       Bug 557210 – g_compute_checksum_for_* asserts with less than 2 bytes
-
-       * glib/gchecksum.c (g_compute_checksum_for_data): Accept 
-       lengths < 2. Patch by Tommi Komulainen
-
-       * tests/checksum-test.c: Add a test for this
-
-2008-10-23 Matthias Clasen <mclasen@redhat.com>
-
-       Bug 556921 – gpoll.h breaks hal compilation
-
-       * glib/gpoll.h: Include gtypes.h. Pointed out by Anis Elleuch
-
-2008-10-20 Christian Persch <chpe@gnome.org>
-
-       Bug 557087 – mem leak in g_content_types_get_registered
-               
-       * gio/gcontenttype.c: Plug a mem leak.
-
-2008-10-19  Michael Natterer  <mitch@imendio.com>
-
-       Bug 556186 – gpoll.h breaks gmain.h inclusion
-
-       * glib/gpoll.h: different fix: disallow direct inclusion
-       unconditionally again but make an exception if included from
-       gmain.h to maintain compatibility.
-
-2008-10-16  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version to 2.19.1
-
-       * === Released 2.19.0 ===
-
-       * NEWS: Updates
-
-2008-10-14  Christian Persch <chpe@gnome.org>
-
-       Bug 556186 – gpoll.h breaks gmain.h inclusion
-
-       * glib/gpoll.h: Only disallow direct inclusion when
-       G_DISABLE_SINGLE_INCLUDES is defined.
-
-2008-10-13  Sven Herzberg  <sven@imendio.com>
-
-       Bug 556101 – static mutex yields warnings with g++
-       Reviewed by Tim Janik
-
-       * configure.in: added an intermediate cast to gpointer
-
-2008-10-13  Christian Persch <chpe@gnome.org>
-
-       Bug 555311 – format not a string literal and no format arguments
-
-       * glib/gmarkup.c:
-       * glib/gshell.c: Use literal errors where appropriate.
-
-2008-10-10  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 551355 – [PATCH] Make glib build with libtool 2.2
-
-       * autogen.sh: Accept libtool 2.2.   We are moving towards having
-       it working.
-
-2008-10-10  Behdad Esfahbod  <behdad@gnome.org>
-
-       * configure.in: With libtool 2.x, regenerate libtool early.
-       Based on bug 552107, patch by Patryk Zawadzki
-
-2008-10-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 554557 – Patch to fix gcc warnings about missing format 
-       specifiers
-
-       * glib/gmarkup.c:
-       * glib/gshell.c:
-       * glib/grel.c: Fix gcc warnings. Patch by Kjartan Maraas
-
-2008-10-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 552861 – glib-2.0.m4 calls system(3) without storing its result
-
-       * m4macros/glib-2.0.m4: Cosmetic change to make -Werror happy.
-       Patch by Andreas Köhler
-
-2008-10-08  Christian Persch  <chpe@gnome.org>
-
-       Bug 555313 – GFileAttribute boxed type get_type function should
-       use usual get_type pattern
-
-       * gio/gfileattribute.c (g_file_attribute_info_list_get_type): Use
-       g_once_init_enter/leave.
-
-2008-10-08  Christian Persch  <chpe@gnome.org>
-
-       Bug 555314 – mem leak in gmarkup
-
-       * glib/gmarkup.c: (g_markup_parse_context_parse): Plug a mem leak.
-
-2008-10-08  Tor Lillqvist  <tml@novell.com>
-
-       Bug 554790 - g_convert() misbehaves with winiconv versions
-
-       * glib/win_iconv.c (kernel_mbtowc): If converting from ASCII,
-       explicitly check for and reject 8bit chars. MultiByteToWideChar()
-       doesn't, at least not on XP.
-
-2008-10-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtypes.h: Properly include gmacros.h
-
-2008-10-06  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 555309 – giochannel breaks on error
-       Patch from Christian Persch
-
-       * glib/giounix.c (g_io_unix_read), (g_io_unix_write),
-       (g_io_unix_seek), (g_io_unix_close), (g_io_unix_set_flags):
-       Don't shadow err.  Oops!
-
-2008-10-06  Christophe Fergeau  <teuf@gnome.org>
-
-       Bug 555224 – Improve g_format_size_for_display doc
-       
-       * glib/gfileutils.c: change g_format_size_for_display API doc to
-       explicitly say that the returned string has to be freed. Change
-       spelling of "newly allocated" to "newly-allocated" in g_file_read_link
-       API doc to be more consistent with what is done in that file.
-
-2008-10-01  David Zeuthen  <davidz@redhat.com>
-
-       * README.in: Add "Notes about glib 2.20" section detailing the
-       ramifications of the patch from bug #528670.
-
-2008-09-30  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 554092 – glib doesn't return G_FILE_ERROR_NOENT et al on OS X
-
-       * glib/giounix.c (g_io_unix_read), (g_io_unix_write),
-       (g_io_unix_seek), (g_io_unix_close), (g_io_unix_set_flags),
-       (g_io_unix_get_flags), (g_io_channel_new_file):
-       Like mclasen says: "well, thats the way errno works...,
-       save it or loose it".  Save errno.
-
-2008-09-30  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.decl
-       * glib/tests/Makefile.am: Bypass gtester related stuff on Windows.
-
-2008-09-30  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gprintf.c
-       * glib/gnulib/vasnprintf.c: Don't define _GNU_SOURCE on Windows,
-       as _GNU_SOURCE has unintended side effects when compiling against
-       newest mingw headers.
-
-2008-09-26  Dan Winship  <danw@gnome.org>
-
-       Bug 553447 – g_assert_no_error()
-
-       * glib/gtestutils.h (g_assert_no_error, g_assert_error): Macros to
-       assert that a GError is not set, or else is set to a particular
-       error.
-
-       * glib/gtestutils.c (g_assertion_message_error): utility for
-       those macros
-
-       * glib/tests/keyfile.c:
-       * tests/asyncqueue-test.c:
-       * tests/bookmarkfile-test.c:
-       * tests/convert-test.c:
-       * tests/file-test.c: Use g_assert_error/g_assert_no_error
-
-2008-09-26  Dan Winship  <danw@gnome.org>
-
-       * glib/gthreadpool.c (wakeup_thread_marker): make this a "const
-       gpointer" rather than a gconstpointer to avoid warnings later
-
-       * glib/pcre/pcre_ucp_searchfuncs.c:
-       * glib/pcre/pcre_valid_utf8.c: #include "config.h"
-
-       * glib/tests/printf.c (test_d): fool gcc into not warning about
-       some printf format strings that we know are dubious
-
-2008-09-26  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 553857 – gbacktrace.h requires signal.h
-
-       * glib/gbacktrace.h: Include signal.h for raise(). 
-       Pointed out by Sebastien Bacher
-
-2008-09-26  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 553724 – python interpretter path not patched in correctly
-
-       * glib/Makefile.am: Fix the sed magic to replace python.
-
-2008-09-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmain.c: Add some more docs.
-
-       * glib/giochannel.c: Move more docs inline, and improve them
-       on the way.
-
-2008-09-25  Tor Lillqvist  <tml@novell.com>
-
-       Bug 553820 - gpoll.c: undeclared identifier
-
-       * glib/gmain.c
-       * glib/gpoll.c: Make the g_poll() function non-static also on
-       Windows. Prefix an underscore to the g_main_poll_debug variable
-       and make it non-static in gmain.c so that it can be used in
-       gpoll.c. Add back missing variable declaration.
-
-2008-09-25  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gspawn-win32.c (do_spawn_with_pipes) (do_spawn_directly):
-       Just ignore the child_setup function, never call it. The is no
-       situation in which it could be useful on Windows. Do print a
-       warning, like before.
-
-       * glib/gspawn.c (g_spawn_async_with_pipes): Corresponding change
-       in documentation.
-
-2008-09-24  Sven Herzberg  <sven@imendio.com>
-
-       Be a little more explcit in the docs. Includes Owen's requested
-       changes.
-
-       * glib/gmain.c: improved documentation for g_source_attach() and
-       g_source_destroy()
-
-2008-09-23  Michael Natterer  <mitch@imendio.com>
-
-       * glib/glib.h: #include <glib/gpoll.h>
-
-       * glib/gpoll.h: #error out if gpoll.h is included directly.
-
-       * glib/gpoll.c: remove trailing whitespace.
-
-2008-09-23  Dan Winship  <danw@gnome.org>
-
-       * glib/gpoll.[ch] (g_poll): Move this out of gmain.c and make it part
-       of the public API. (Part of Bug 505361 - gunixinputstream.c assumes
-       poll() available.)
-
-2008-09-23  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c (poll_rest) [Win32]: Fix embarrassing bug: I was
-       passing an incorrect third parameter to memmove(), had forgotten
-       to multiply by the size of the table entry. Just use a for loop
-       instead, clearer. Odd I didn't notice when testing this code.
-
-2008-09-19  Hans Petter Jansson  <hpj@novell.com>
-
-       Rewrite most of GHashTable to use open addressing with quadratic
-       probing instead of chaining. This has the potential to reduce memory
-       fragmentation significantly, while being slightly faster due to
-       better locality and no need to call alloc/free functions for nodes.
-       Benchmarks suggest it also uses less memory overall.
-
-       * glib/ghash.c (prime_mod): Table of suitable primes for
-       initial-probe distribution.
-       (g_hash_table_set_shift): New function.
-       (g_hash_table_find_closest_shift): New function.
-       (g_hash_table_set_shift_from_size): New function.
-       (g_hash_table_lookup_node_for_insertion): New function.
-       (g_hash_table_lookup_node): Rewritten to return node index instead of
-       pointer, use quadratic probe on flat table, and not return insertion
-       data. The latter saves some computation for read-only lookups.
-       (g_hash_table_remove_node): Rewrite to take a pointer directly to the
-       node structure to remove, and clear that. Remove unlinking code.
-       (g_hash_table_remove_all_nodes): Rewrite to not clear nodes
-       individually, but en masse using memset () after potentially calling
-       notify functions.
-       (iter_remove_or_steal): Use new data structure and algorithm. Vastly
-       simplified - now just a call to g_hash_table_remove_node ().
-       (g_hash_table_resize): New resize code, re-indexing with new prime
-       and cleaning up tombstones.
-       (g_hash_table_maybe_resize): Table may hold 8 buckets minimum, no less
-       than 1/4 load excluding tombstones, and no more than 15/16 load
-       including tombstones. These numbers are the results of a lot of
-       benchmarking with multiple complex applications, and should not be
-       changed lightly.
-       (g_hash_table_iter_next)
-       (g_hash_table_lookup)
-       (g_hash_table_lookup_extended)
-       (g_hash_table_insert_internal)
-       (g_hash_table_remove_internal)
-       (g_hash_table_foreach_remove_or_steal)
-       (g_hash_table_foreach)
-       (g_hash_table_find)
-       (g_hash_table_get_keys)
-       (g_hash_table_get_values): Use new data structure and algorithm,
-       fairly trivial changes.
-
-2008-09-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib-zip.in: Look for man pages in share/man.
-
-       * glib/gutils.c (_glib_get_dll_directory)
-       * glib/gspawn-win32.c (do_spawn_with_pipes): Be a bit less
-       restrictive, look for the helper programs in the same folder where
-       the GLib DLL is, not necessarily in a "bin" subfolder of the top
-       GLib installation folder.
-
-2008-09-18  Matthias Clasen <mclasen@redhat.com>
-
-       * configure.in: Bump version to 2.19.0
-
-       * ChangeLog.pre-2-18: rotate ChangeLog
-       
-       * === branch for 2.18 ===
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
deleted file mode 100644 (file)
index 73ae096..0000000
+++ /dev/null
@@ -1,2042 +0,0 @@
-Tue Mar 16 11:50:56 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.4.0 ===
-
-       * configure.in: Version 2.4.0, interface age 0.
-
-       * README.in: Updates
-
-       * NEWS: Updates
-
-Sun Mar 14 13:56:48 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmessages.c (escape_string): Handle invalid
-       UTF-8. (#131218, patch from Matthias Clasen)
-
-Sun Mar 14 13:23:36 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gspawn.c: Use fork1() not fork for 
-       G_THREADS_IMPL_SOLARIS. (#136971, Sebastian Wilhelmi)
-
-Sun Mar 14 12:58:30 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c: if _POLL_EMUL_H is defined, undefine
-       HAVE_POLL to prefer our own poll() emulation to the
-       lame OS/X one. (#136956, Manish Singh)
-
-Sat Mar 13 23:30:53 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmacros.h (G_STMT_START): Add __extension__
-       to G_STMT_START to quite gcc -pedantic. (#131899,
-       Olivier Biot)
-
-Sat Mar 13 23:18:45 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/env-test.c (main): Remove critical log handler;
-       we can't trigger g_return_if_fails() in our test suite
-       even silently, because the user could have compiled
-       with --disable-debug. #if 0 the tests for
-       g_setenv/g_unsetenv with a "foo=bar" variable name.
-       (#136709, reported by Frédéric L. W. Meunier)
-
-Sat Mar 13 23:10:35 2004  Owen Taylor  <otaylor@redhat.com>
-
-       Some warning fixes for the Sun compiler (Reported by 
-       David L. Cooper II, #136401)
-
-       * glib/giochannel.c (g_io_channel_read): Return
-       G_IO_ERROR_NONE, not G_IO_STATUS_NORMAL, since hte
-       function returns a GIOError.
-
-       * glib/guniprop.c: Fix some guchar/gchar confusion
-       with special_case_table.
-
-Fri Mar 12 15:30:58 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gbacktrace.h: ia32's G_BREAKPOINT() implementation works on
-       amd64 too. Enable it.
-
-Fri Mar 12 15:21:22 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gatomic.c: Non-optimizing compile fails for two asm
-       statements on PowerPC. Use generic implementaton for those
-       cases. Spotted by Christof Petig <christof@petig-baender.de>,
-       fix by Sebastian Wilhelmi. Bug #137006 has a possible alternate
-       solution, but we'll be conservative for now.
-
-Thu Mar 11 02:05:13 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmain.c (g_main_depth): Remove an extra semicolon.
-       Spotted by Kjartan Maraas.
-
-2004-03-10  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32.c
-       * glib/gspawn-win32-helper.c: Implement
-       G_SPAWN_FILE_AND_ARGV_ZERO. (#136792, Bruce Hochstetler)
-
-       * tests/spawn-test.c
-       * tests/spawn-test-win32-gui.c: Test it.
-
-Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.6 ===
-
-       * configure.in: Version 2.3.6, interface age 1.
-
-       * NEWS: Updates
-
-2004-03-09  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * tests/child-test.c: Do not run the g_child_watch_* test
-       multi-threaded, as that doesn't work on linux prior 2.6. Fixes
-       #136539.
-
-2004-03-08 Alastair McKinstry <mckinstry@computer.org>
-
-       * configure.in: Added "ga" (Irish) to ALL_LINGUAS.
-
-2004-03-07  Danilo Šegan  <dsegan@gmx.net>
-
-       * configure.in: Added "sr@ije" to ALL_LINGUAS.
-
-2003-03-07  Hans Breuer  <hans@breuer.org>
-
-       * glib/gspawn-win32.c : (GPid)shortcut_spawn_retval which
-       doesn't improve the implementation at all, it just make it 
-       compile with msvc ...
-
-       * glib/makefile.msc.in : build gatomic.c (now really:)
-       
-2004-03-06  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Update.
-
-       * configure.in
-       * Makefile.am
-       * */Makefile.am: Drop the hand-written makefile.mingw(.in)
-       files. They haven't been maintained in a long time. As several
-       people have managed to build GLib for Win32 using the
-       autoconfiscation mechanism, there is no real reason to even try to
-       maintain the hand-written mingw makefiles.
-
-2004-03-05  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/gatomic.c: Fix infinite recursion for
-       G_MEMORY_BARRIER_NEEDED and DEFINE_WITH_MUTEXES by using a GMutex
-       instead of G_DEFINE_LOCK. The mutex is allocated by the new
-       function _g_atomic_thread_init. Fixes #136284.
-
-       * glib/gthreadinit.h, glib/gthread.c: Declare and call
-       _g_atomic_thread_init during thread system initialization.
-2004-03-05  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_main_depth. (#136221, Cedric Gustin)
-
-2004-03-04  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * configure.in: Added "pa" (Punjabi) to ALL_LINGUAS.
-
-2004-03-04  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gmain.c: Use the atomic integer operations for GMainContext
-       and GMainLoop reference counting.
-
-       * glib/gmain.c: Hold the main_context_list lock, when iterating
-       the list. Only call g_main_context_wakeup for positive reference
-       count.
-
-2004-03-03  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Update to match a configure-generated
-       glibconfig.h. Specifically: Remove G_{MIN,MAX,MAXU}INT64
-       definitions (now in gtypes.h). Remove g_once and
-       g_static_mutex_get_mutex_impl_shortcut definitions (now in
-       gthread.h).
-
-       * tests/child-test.c: Use a macro GPID_FORMAT for the format to
-       print GPid in (%p on Win32, %d on Unix). Maybe configure.in should
-       place that in glibconfig.h?
-
-       Print verbose error message if CreateProcess() fails.
-
-       Don't close the child handle until in the child watch callback.
-
-       Don't try to run /bin/true on Win32. Run ipconfig instead (just to
-       pick a program that should exist on all Window boxes).
-
-2004-03-02  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gatomic.c: Fixed missing definition for ppc code. Fix by
-       Mark McLoughlin <mark@skynet.ie>.
-
-Mon Mar  1 16:49:51 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.5 ===
-
-       * configure.in: Version 2.3.5, interface ago 0.
-
-       * NEWS: Some further updates.
-
-Mon Mar  1 15:49:09 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (check_for_child_exited): Don't
-       call waitpid() on a source that has already exited.
-
-       * glib/gmain.c (g_child_watch_check): Return TRUE
-       only if the child actually exited.
-
-Mon Mar  1 15:39:57 2004  Owen Taylor  <otaylor@redhat.com>
-
-       Patch from J. Ali Harlow
-
-       * configure.in: Use void * not HANDLE for GPid on win32.
-
-       * glib/gspawn.[ch] glib/gspawn-win32.[ch] glib/glib.def: 
-       Add g_spawn_close_pid().
-       
-       * glib/gspawn.[ch]: Make g_spawn functions take
-       GPid * instead if int * (GPid == int on unix, will
-       produce compile warnings until fixed on Win32.)
-
-       * tests/child-test.c: Make the test a little more
-       inappropriately verbose.
-
-        * glib/gmain.c: Add some documentation warnings about
-       not closing @pid while the source is active.
-
-Mon Mar  1 20:32:06 2004  Tim Janik  <timj@gtk.org>
-
-       * autogen.sh:
-       - exit with $? instead of 1 in case of failure
-       - exit with $? if ./configure failed
-         (that's so autogen.sh && make lines work)
-       - removed --enable-gtk-doc option
-       - added $AUTOGEN_CONFIGURE_ARGS
-
-Mon Mar  1 09:17:32 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_main_depth): Clarify doc comment.
-
-2004-03-01  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gatomic.c: Define g_atomic_(int|pointer)_get only for
-       G_ATOMIC_OP_MEMORY_BARRIER_NEEDED. Spotted by Hans Breuer.
-
-Sun Feb 29 21:42:47 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c: Fix leftover references to 
-       g_main_context_depth() in docs.
-
-Sun Feb 29 21:34:34 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.[ch]: Add g_main_depth() (Request from
-       Tim Janik and Stefan Westerfeld)
-
-Mon Mar  1 00:26:11 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * NEWS: Update for 2.3.4
-
-2003-02-29  Hans Breuer  <hans@breuer.org>
-
-       * glib/gatomic.c : added win32 api based implementation
-       for G_PLATFORM_WIN32, !__GNUC__
-
-       * glb/glib.def : change to g_atomi_* no _fallback
-
-2004-02-29  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * configure.in, glib/gatomic.c, glib/gatomic.h: Moved the
-       assembler functions from gatomic.h to gatomic.c, which makes for
-       better maintainability. Also use gint instead of gint32 to be able
-       to use reference counting for ABI-fixed structures with
-       gint/guint.
-
-       * glib/gthread.h: Adapted accordingly.
-
-       * tests/atomic-test.c: Updated to test for G_MAXINT and G_MININT.
-
-2003-02-28  Hans Breuer  <hans@breuer.org>
-
-       * glib/glib.def : updated externals, including those
-       from bug #135386
-
-       * glib/makefile.msc.in : build gatomic.c
-
-       * glibconfig.h.win32.in : removed duplicate definition
-       of G_MAXSIZE, typedef void* GPid instead of int
-
-       * tests/child-test.c  glib/gmain.c : 
-       applied patch from J. Ali Harlow <ali@juiblex.co.uk> to fix 
-       g_child_watch implementation on win32, bug #50296
-
-Fri Feb 27 22:13:22 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gqueue.c: Trivial doc changes.
-
-Fri Feb 27 21:58:20 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/ghash.c (g_hash_table_find): Add "Since: 2.4"
-
-2004-02-27  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gasyncqueue.c, glib/gasyncqueue.h: Use
-       g_atomic_int_(inc|dec_and_test) for reference
-       counting. g_async_queue_unref_and_unlock and
-       g_async_queue_ref_locked is deprecated, but still there to
-       preserve ABI.
-
-       * glib/gasyncqueue.c, glib/gasyncqueue.h: Reading access to
-       ref_count only with g_atomic_int_get().
-
-Fri Feb 27 02:00:34 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * acglib.m4: quote AC_DEFUN macro names so automake
-       1.8 won't whine at us.  (#134882)
-
-Fri Feb 27 01:44:41 2004  Matthias Clasen <maclas@gmx.de>
-
-       * glib/gdate.c: Translate from locale era to AD in 
-       g_date_set_parse().  (#133400, Theppitak Karoonboonyanan)
-
-Fri Feb 27 00:46:29 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strerror): Don't modify errno.  (#116617, 
-       Balazs Scheidler)
-
-2004-02-26  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gatomic.h: Fix the !G_THREADS_ENABLED case.
-
-       * tests/child-test.c (main): Only run, if threads are enabled.
-
-       * glib/gatomic.h: empty G_ATOMIC_MEMORY_BARRIER() definition for
-       !G_THREADS_ENABLED
-
-       * glib/gthread.h: Define g_once and
-       g_static_mutex_get_mutex_impl_shortcut in terms of
-       G_MEMORY_BARRIER, if defined and if we can inline.
-
-       * configure.in: Remove double checked locking feature check.
-
-       * configure.in, config.h.win32.in, glib/gthread.c: Removed the PID
-       niceness surrogate for thread priorities as requested by Tim. It
-       does more harm than good.
-
-       * glib/gatomic.c, glib/gatomic.h: New files to implement atomic
-       operations for different platforms. Fixes bug #63621.
-
-       * glib/glib.h: Include gatomic.h.
-
-       * configure.in: Add test for assembler routines for atomic operations.
-
-       * glib/Makefile.am: Add gatomic.c, gatomic.h.
-
-       * tests/Makefile.am, tests/atomic-test.c: Unit test for atomic
-       operations.
-
-2003-02-26  Hans Breuer  <hans@breuer.org>
-
-       * glib/glib.def : added g_hash_table_find and a
-       bunch of g_queue_*
-
-       * glib/gmain.c : make it compile on win32, 
-       child_wake_up_pipe replaced by semaphore like it is done
-       for the other wake_up_pipe
-
-       * config.h.win32.in : added HAVE_INT64_AND_I64
-       * glibconfig.h.win32.in : G_MAXSIZE .. G_M??INT64,
-       and typedef for GPid
-
-       * test/env-test.c : don't let the local log function
-       collide in namespace with standard C
-
-2004-02-25  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * configure.in, glib/gthread.c: For the PID thread priorities
-       surrogate use gettid instead of getpid. This also works with nptl
-       (on linux-2.6), as well as with linuxthreads (on linux-2.4).
-
-2004-02-24  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/grand.c: Add Since: 2.4, where due
-
-Tue Feb 24 14:09:21 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.3 ===
-
-       * configure.in: Version 2.3.3, interface age 0.
-
-Mon Feb 23 22:24:00 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * NEWS: Start of 2.3.3 section.
-
-Sun Feb 22 02:32:14 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Set the gmodule suffix to 'a' for aix and 
-       use the aix gmodule implementation.  (#85930, Laurent Vivier)
-
-Sun Feb 22 00:47:04 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gnode.c (g_node_copy_deep): New function to deep-copy a 
-       GNode and its children.  (#93464, James M. Cape)
-
-Sat Feb 21 15:42:39 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * glib/gqueue.c: Some documentation fixes.
-
-Sat Feb 21 13:45:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * glib/gqueue.[ch]: Extend GQueue API to match the GList
-       API. (#78414).
-
-       * tests/queue-test.c: Update test suite to cover the new API.
-
-Fri Feb 20 03:02:05 2004  Tim Janik  <timj@gtk.org>
-
-       * glib/ghash.[hc]: applied patch from #131937 with slight
-       renames. provides g_hash_table_find().
-
-Fri Feb 20 02:39:03 2004  Tim Janik  <timj@gtk.org>
-
-       * applied patch from David Schleef <ds@schleef.org> which implements
-       a G_MODULE_BIND_LOCAL flag to g_module_open() to disable global
-       symbol registration.
-
-Thu Feb 19 18:40:01 2004  Tim Janik  <timj@gtk.org>
-
-       * glib/gstring.[hc]: for G_CAN_INLINE environments, inline
-       g_string_append_c() for efficiency. (vaguely based on #118707).
-
-Wed Feb 18 23:57:42 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmain.c: Include signal.h for SIGCHLD.  (#134622, Damien
-       Carbery)
-
-2004-02-18  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gasyncqueue.c: Lazy creation of GCond. Only
-       signal GCond, if threads are waiting.
-
-       * glib/gmain.c (g_main_context_new): Set context->wake_up_pipe
-       only for G_THREADS_ENABLED.
-
-Sat Feb 14 11:05:26 2004  Manish Singh  <yosh@gimp.org>
-
-       * configure.in: Remove unnecessary STRIP_* definitions, and GNU
-       make check. Really fixes #134102.
-
-Sat Feb 14 02:11:08 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Make the check for GNU make work when MAKE is a 
-       full path.  (#134102, Julio M. Merino Vidal)
-
-Sat Feb 14 02:08:03 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Suppress xsltproc and xmlcatalog checks
-       if enable_man=no.  (#134091, Julio M. Merino Vidal)
-
-Sat Feb 14 01:21:34 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmain.h: 
-       * glib/gmain.c (g_child_watch_source_new): 
-       * glib/gmain.c (g_child_watch_add): 
-       * glib/gmain.c (g_child_watch_add_full): Wrap waitpid() as a
-       GSource. This is a partial implementation of the "Unix signal 
-       source".  (#50296, Jonathan R. Blandford)
-
-       * configure.in: Add the necessary configury to typedef GPid
-       appropriately.
-
-       * tests/Makefile.am:
-       * tests/child-test.c: Test child_watch sources.
-
-Sat Feb  7 15:02:01 2004  Manish Singh  <yosh@gimp.org>
-
-       * tests/type-test.c: Fix broken test for gsize formats.
-
-2004-02-05  Robert Sedak  <robert.sedak@sk.htnet.hr>
-
-        * configure.in: Added "hr" (Croatian) to ALL_LINGUAS.
-
-Wed Feb  4 17:58:51 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gcompletion.h: Add prototype for g_completion_complete_utf8().
-
-       * tests/completion-test.c: #include <string.h>
-
-2004-02-05  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_completion_complete_utf8.
-
-Thu Feb  5 01:19:12 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/file-test.c (test_mkstemp): Weaken an g_assert() to a 
-       g_warning(), since apparently nothing in Posix forces mkstemp()
-       to reject templates without any X's.  (#133397)
-
-Thu Feb  5 00:56:28 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gcompletion.c (g_completion_complete_utf8): New function which
-       works like g_completion_complete(), but strips a trailing incomplete
-       UTF-8 character from the prefix.  (#133313, Theppitak Karoonboonyanan)
-
-       * tests/completion-test.c (main): Some GCompletion tests.
-
-       * tests/Makefile.am: Add completion-test.
-
-2004-02-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_strsplit_set.
-
-Sat Jan 31 03:13:56 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/garray.c (g_byte_array_remove_range): Don't return FALSE
-       from a pointer function.  (#131472, Morten Welinder)
-
-2004-01-30  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gunicomp.h:
-       * glib/gunidecomp.c:
-       * glib/gen-unicode-tables.pl: Size compose_table correctly. (#123421,
-        Simon Josefsson)
-
-       * glib/gen-unicode-tables.pl: Get rid of some new warnings from perl
-       5.8.1.
-
-Tue Jan 27 18:45:47 2004  Manish Singh  <yosh@gimp.org>
-
-       * m4macros/glib-2.0.m4
-       * m4macros/glib-gettext.m4: quote AC_DEFUN macro names so automake
-       1.8 won't whine at us.
-
-Wed Jan 28 01:39:21 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.h: 
-       * glib/gstrfuncs.c (g_strsplit_set): New function, a cross 
-       between g_strsplit() and strtok().  (#88329, Soeren Sandmann)
-
-       * tests/strfunc-test.c (main): Add g_strsplit_set() tests.
-       
-Fri Jan 23 22:49:52 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.c (g_get_any_init): Sigh, protect against
-       pw->pw_gecos being "" as well.  (#132317, Kaj-Michael Lang)
-       
-2004-01-23  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add new functions.
-
-       * glib/grand.c: Don't include <unistd.h> unless
-       HAVE_UNISTD_H. Include <process.h> on G_OS_WIN32.
-       (g_rand_new): Use getppid() only on G_OS_UNIX.
-
-Thu Jan 22 15:16:11 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.2 ===
-
-Thu Jan 22 13:55:44 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gtimer.c: Add g_timer_continue().
-       (#98536, Tim-Philipp Müller)
-
-       * configure.in: Version 2.3.2, interface age 0.
-
-       * NEWS: tweak, finish.
-
-Thu Jan 22 20:50:55 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.c (g_get_any_init): Protect against
-       pw->pw_gecos being NULL.
-
-Thu Jan 22 00:41:34 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.c (g_get_any_init): Don't treat the Win32
-       user name like a gecos field, and when extracting a real
-       name from a gecos field, replace '&' by the capitalized
-       user name (a traditional passwd feature).  
-       (#118973, reported by Soeren Boll Overgaard)
-
-Tue Jan 20 22:31:22 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * NEWS: Start of 2.3.2 section.
-
-Fri Jan 16 21:45:56 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstring.c (g_string_ascii_up): Forgot to fix this one.
-
-Thu Jan 15 22:35:04 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstring.c (g_string_up): 
-       * glib/gstring.c (g_string_down): 
-       * glib/gstring.c (g_string_ascii_down): Move initialization of
-       variables after g_return_val_if_fail.  (#131564, Olivier Poncet)
-
-Sun Jan 11 16:13:20 2004  Manish Singh  <yosh@gimp.org>
-
-       * configure.in: Add G_MAXSIZE, define in terms of G_MAXUfoo.
-
-       * tests/type-test.c: Add test for G_MAXSIZE.
-
-       * glibconfig.h.win32.in: Cleanup, add some missing bits.
-
-Sun Jan 11 16:05:35 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/giounix.c: #define _POSIX_SOURCE for SSIZE_MAX. Fixes #128853.
-
-Sat Jan 10 00:11:12 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gutils.h (g_bit_nth_lsf,g_bit_nth_msf): 64-bit cleanliness
-       fixes.
-
-       * docs/reference/glib/tmpl/misc_utils.sgml: update to reflect the
-       above take gulongs now. My docs suck, someone should revisit it.
-
-Fri Dec 19 11:49:21 2003  George Lebl <jirka@5z.com>
-
-        * glib/grand.c
-          glib/grand.h (g_rand_new) (g_rand_new_with_seed)
-          (g_rand_new_with_seed_array) (g_rand_set_seed_array):  Add
-          the init_by_array functionality from the reference implementation
-          of the mersenne twister (mt19937ar.c) and change the naming
-          to fit with the rest of the grand API.  New functions are
-          g_rand_new_with_seed_array, g_rand_set_seed_array.  This is only
-          reliable/tested for the 2.2 version of the seeding as that's what
-          the reference implementation uses.  Also modify g_rand_new to
-          get 4 longs from /dev/urandom since that will always be available
-          anyway and we get more entropy and if /dev/urandom is unavailable
-          use also 4 longs for seeding using secs, usecs, getpid and getppid.
-          For version 2.0 use only a simple seed again but be more careful
-          about seeding with secs/usecs in this case.
-
-        * glib/grand.c
-          glib/grand.h (g_rand_copy):  Add g_rand_copy function to copy the
-          current state of the random number generator.
-
-        * glib/grand.c (g_rand_new):  Add testing for EINTR when reading
-          from /dev/urandom
-
-        * tests/rand-test.c: add testing of the array seeding stuff against
-          the reference implementation, plus add statistical sanity check
-          to see that the values outputted are truly kind of random.  And
-          check that g_rand_copy truly copies the state by checking a few
-          terms.
-
-Tue Jan  6 15:38:30 2004  Owen Taylor  <otaylor@redhat.com>
-       * glib/gutils.h: Check defined (__OPTIMIZE__) not
-       __OPTIMIZE__. (Zack Rusin)
-2003-12-30  Murray Cumming  <murrayc@usa.net>
-  
-       * gobject/glib-mkenums.in: Added a lowercase_name option, to be used
-       next to the enum declaration, where the flag option is already used,
-       when it is not possible to guess where to put the underscores in the
-       _get_type() function name, for instance for GNOMEVFSURIHide.
-
-Fri Dec 26 02:03:58 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/garray.[hc] (g_ptr_array_foreach): New function to
-       call a function for each element of a GPtrArray.  (#114790)
-
-       * tests/array-test.c (main): Add a test for g_ptr_array_foreach().
-
-Sun Dec 21 22:57:58 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * m4macros/glib-gettext.m4: Quote macro names to support 
-       reading the file multiple times.  (#125537)
-
-Sun Dec 21 22:42:42 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmem.c (g_mem_chunk_destroy): Fix the locking of the
-       mem_chunks list.  (#127096, Balazs Scheidler)
-
-2003-12-14  Hans Breuer  <hans@breuer.org>
-
-       * glib/gfileutils.c : make g_file_test(,G_FILE_TEST_IS_EXECUTABLE)
-       return something useful on win32, too. 
-
-2003-12-13  Hans Breuer  <hans@breuer.org>
-
-       * glib/gconvert.c : get_filename_charset() needs to
-       return false for filenames not encoded in utf-8, 
-       which is always true on win32
-
-       * glibconfig.h.win32.in : (u)int64 modifier isn't the
-       gcc 'll' but always the msvcrt one 'I64'
-
-       * glib/glib.def : updated
-
-Thu Dec 11 10:31:21 2003  Manish Singh  <yosh@gimp.org>
-
-       * glib/gmacros.h: change #elif with no expression to #else in
-       G_STRFUNC definition. Thanks to Damien Carbery, fixes #129101.
-
-Mon Dec  8 12:02:40 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.1 ===
-
-       * NEWS: Further updates for 2.3.1.
-
-Fri Dec  5 12:09:13 2003  Manish Singh  <yosh@gimp.org>
-
-       * glib/gunidecomp.c (_g_utf8_normalize_wc): fix gint/gsize confusion.
-
-2003-12-04  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gunidecomp.c: Add hangul composition and decomposition to
-       unicode normalization. (#100456)
-
-       * tests/unicode-normalize.c: Test hangul.
-
-Tue Dec  2 02:29:41 2003  Matthias Clasen  <maclas@gmx.de>
-
-       Fix for #103710, Mark Jones:
-       
-       * glib/gtypes.h (G_MAXINT64): Define G_{MIN,MAX,MAXU}INT{8,16,32,64}.
-       * configure.in: Don't put G_{MIN,MAX,MAXU}INT64 in glibconfig.h.
-
-Thu Nov 27 17:04:08 2003  Tim Janik  <timj@gtk.org>
-
-       * glib/gstrfuncs.c (g_strconcat): handle NULL arguments
-       gracefully.
-
-       * glib/gmacros.h: defined G_STRFUNC, which (pretty) prints the
-       current function (since G_STRLOC and G_GNUC_*FUNCTION became
-       unusable with gcc-3.0).
-
-Wed Nov 26 16:45:16 2003  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * glib/gstrfuncs.c: Fixed a bad pointer comparison in
-       g_ascii_strtod that came up in fa_IR locale (#126640, Behdad
-       Esfahbod).
-
-       * tests/strtod-test.c: Fixed the tests to catch the above.
-
-Sat Nov 22 14:16:51.15 2003  Andrew Lanoix  <alanoix@umich.edu>
-
-       * glib/giowin32.c: Bind inter-thread comminication 
-               sockets to INADDR_LOOPBACK instead of INADDR_ANY.
-
-Thu Nov 20 15:09:40 2003  Manish Singh  <yosh@gimp.org>
-
-       * configure.in: Added G_GSIZE_FORMAT and friends
-
-       * tests/printf-test.c
-       * tests/testglib.c
-       * tests/type-test.c: Add tests for the above.
-
-Mon Nov 17 17:28:10 2003  Manish Singh  <yosh@gimp.org>
-
-       * tests/thread-test.c (test_g_thread_once): Use GUINT_TO_POINTER
-       for g_thread_create data.
-
-Sat Nov 15 23:00:57 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/guniprop.c (g_utf8_casefold): Add a NULL check
-       to be consistent with the other g_utf8_ functions.  (#121618,
-       Tim-Philipp Müller)
-
-2003-11-15  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/makefile.msc.in: Fix for MSVC build: Skip strtod-test, use
-       correct glib libraries, with 2.0 in the names. (#126906, John
-       Ehresman)
-
-Sat Nov 15 00:46:14 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Don't blindly set glib_cv_long_long_format to
-       "ll" when using the included printf. As long as the native 
-       printf supports 64bit printing, use the native format.  
-       (#119525, Tor Lillqvist)
-
-Fri Nov 14 00:28:46 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gi18n.h:
-       * glib/gi18n-lib.h: Also define bind_textdomain_codeset() in
-       the #ifndef ENABLE_NLS case.
-
-Wed Nov 12 15:06:27 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * configure.in: Version 2.3.1, interface age 0.
-
-       * NEWS: Update for 2.3.1.
-
-2003-11-07  Mark McLoughlin  <mark@skynet.ie>
-
-       * glib/gconvert.c: (get_filename_charset): re-work to
-       retain a copy of the cached charset rather than the
-       actual return value from g_get_charset (which may
-       change). Also, re-initialize the cache if it does
-       change. See bug #126454.
-
-Thu Nov  6 00:04:46 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gconvert.c (get_filename_charset): Replacement for
-       have_broken_filenames() which consults the environment variable
-       G_FILENAME_ENCODINGS in addition to G_BROKEN_FILENAMES.
-       * glib/gconvert.c (g_filename_from_utf8): 
-       * glib/gconvert.c (g_filename_to_utf8): 
-       * glib/gconvert.c (_g_convert_thread_init): Use
-       get_filename_charset() instead of have_broken_filenames().
-
-Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gi18n-lib.h: 
-       * glib/gi18n.h: New headers defining common gettext-support
-       macros.
-
-       * glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
-       and gi18n-lib.h.
-
-       * glib/gstrfuncs.h: 
-       * glib/gstrfuncs.c (g_strip_context): Auxiliary function for
-       the implementation of Q_().
-
-2003-11-05  Morten Welinder  <terra@gnome.org>
-
-       * glib/garray.c (g_ptr_array_remove_range): Make it compile.
-       (#119337, self.)
-
-       * glib/gstring.c (g_string_insert_len): Handle the case where the
-       to-be-inserted string is a substring of the target string.
-       (g_string_assign): Handle "s = s;".
-       (#114260, self.)
-
-Sun Nov  2 01:47:31 2003  Matthias Clasen  <maclas@gmx.de>
-
-       Fix 64bit printing for MSVC builds (#119292, Hans Breuer):
-       
-       * configure.in (HAVE_INT64_AND_I64): Define for MSVC to 
-       include support for printing __int64 with format %I64 in 
-       the gnulib printf wrappers. 
-       * glib/gnulib/printf-args.h (enum arg_type): Add TYPE_INT64 
-       and TYPE_UINT64.
-       * glib/gnulib/printf-args.h (struct argument): Add a_int64 and 
-       a_uint64 members.
-       * glib/gnulib/printf-args.c (printf_fetchargs): Support
-       TYPE_INT64 and TYPE_UINT64.
-       * glib/gnulib/printf-parse.c (printf_parse): Parse I64 format
-       modifier and map formats to TYPE_INT64.
-       * glib/gnulib/vasnprintf.c (vasnprintf): Print TYPE_INT64 with
-       format modifier I64.
-       * glib/gnulib/README: Document the __int64 support.
-       
-Sat Nov  1 08:45:38 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_main_context_iterate): Set the
-       return value from the result of g_main_context_check()
-       (after we poll) rather than g_main_context_prepare.
-       (#121675, Padraig O'Briain)
-
-Fri Oct 31 00:13:53 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Remove the semicolon from the definition of
-       g_once(), so that GPOINTER_TO_INT (g_once (...)) works.
-
-Tue Oct 28 23:38:30 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/printf-test.c: Change the %e tests to not check for
-       actual string equality, but rather equality under g_ascii_strtod(),
-       since the number of leading digits in the exponent seems to 
-       be not exactly prescribed by SUS.
-
-Fri Oct 24 17:09:04 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.0 ===
-
-       * NEWS: Small update.
-
-2003-10-24  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Force shared library (DLL) only on Windows.
-       (I don't think that is controversial?) Remove unnecessary
-       AC_LIBTOOL_WIN32_DLL. Don't use -D_REENTRANT on
-       Win32, it is not used by mingw or MSVC headers.
-
-       * config.h.win32.in
-       * glibconfig.h.win32.in: Match what configure produces.
-       
-       * glib/gconvert.c
-       * glib/gutils.c: Mark a couple of functions and variables that
-       aren't public as static.
-
-       * glib/gnulib/g-gnulib.h: Undef HAVE_SNPRINTF before (re)defining
-       it potentially differently, to silence compiler.
-
-       * glib/glib.def: Add some missing entries.
-       
-       * tests/gobject/Makefile.am (LDADD): Reorder, put libgobject after
-       libtestgobject.
-
-       * tests/gobject/ifaceproperties.c (main): NULL-terminate arg list
-       to g_object_set() and _get().
-
-Thu Oct 23 12:38:24 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gobject/Makefile.am (dist-hook): Remove 
-       and extra backslash.
-
-       * tests/gobject/Makefile.am (EXTRA_DIST): Add 
-       testmarshal.list.
-
-       * glib/Makefile.am (libglib_2_0_la_SOURCES): Add
-       missing gunicode-private.h.
-
-       * tests/testglib.c (main): Fix a warning.
-
-       * tests/gobject/ifaceinherit.c: Remove check that
-       wasn't supposed to work (adding an interface already
-       added to the derived class to the base class), 
-       fix a bug.
-
-Wed Oct 22 23:41:03 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * NEWS: Update for 2.3.0.
-
-Tue Oct 14 17:44:38 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gobject/ifaceproperties.c: Test for interface
-       properties and GParamSpecOverride.
-
-Wed Oct  8 23:40:26 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmarkup.c (g_markup_printf_escaped): 
-       (g_markup_vprintf_escaped): Document as 2.4 additions.
-       (unescape_text): Implement newline and whitespace normalization
-       according to the XML specification.  (#123919)
-       (g_markup_escape_text): Document whitespace (non)handling.
-
-2003-10-05  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Make the various printf feature test macros
-       reflect the system printf, even when using the included printf.
-       In particular, don't force HAVE_C99_SNPRINTF, since g-gnulib.h 
-       needs that test result.  (#122973)
-
-       * glib/gprintf.c (g_vasprintf): Don't rely on HAVE_VASPRINTF,
-       directly check for _g_vasprintf.
-
-       * glib/gprintfint.h (_g_vasprintf): Only define _g_vasprintf()
-       if vasprintf() is available.
-
-       * glib/gnulib/printf.c (_g_gnulib_vfprintf): Don't write
-       trailing nul to the file. (#122973)
-
-       * acinclude.m4 (AC_FUNC_VSNPRINTF_C99): Make the test 
-       detect non-C99-compliance of AIX 5.1 and Solaris 
-       vsnprintf().  (#122496)
-
-Thu Oct  2 01:15:46 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gobject/ifacecheck.c: Test case for
-       g_type_add_interface_check().
-
-       * tests/gobject/ifaceinit.c: Add #undef G_DISABLE_ASSERT.
-
-Thu Oct  2 01:11:39 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gobject/ifaceinherit.c: Remove some tests that
-       were testing things that weren't supposed to work; add
-       a test for adding an interface first to the child class,
-       then to the parent class.
-
-Thu Oct  2 00:02:55 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gobject/Makefile.am test/gobject/ifaceinherit.c:
-       Tests of interface inheritance and overriding.
-
-2003-09-30  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32.c (do_spawn): Call protect_argv() in
-       do_spawn() instead of in do_spawn_with_pipes() so that we can use
-       the original argv[0] as the program file name parameter to
-       spawnv() in the shortcut (doing without helper process)
-       code. Fixes problem if GIMP 1.3 was installed in a path with
-       spaces in the name.
-
-Tue Sep 30 15:31:16 2003  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * glib/guniprop.c (has_more_above): make the argument const to
-       get rid of warning
-
-       * glib/garray.c (g_byte_array_remove_range): insert cast to get
-       rid of warning
-
-2003-09-29  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/testglib.c (main): Use hardcoded name for DLL, as there is
-       no reliable way to determine it at compile or run time anyway. 
-
-2003-09-29  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/guniprop.c (g_unichar_get_mirror_char): Add "Since: 2.4" 
-       to docs.
-
-Thu Sep 25 15:43:08 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gobject/testmodule.[ch] test/gobject/Makefile.am:
-       Dummy dynamic type module for testing type plugin code
-       and dynamic types.
-
-       * test/gobject/defaultiface.c: Test of 
-       g_type_default_interface_ref() and friends.
-
-2003-09-28  Gediminas Paulauskas  <menesis@delfi.lt>
-
-    * configure.in: Added lt to ALL_LINGUAS.
-
-2003-09-25  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Remove g_bsearch_array_* entries that don't exist
-       any longer. (ABI change?)
-
-Thu Sep 25 15:01:37 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/Makefile.am (SUBDIRS): Add gobject/.
-
-Fri Sep 12 16:26:21 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/gobject/ configure.in: New directory, framework 
-       for automated GObject tests.
-
-       * tests/gobject/override.c: Move testoverride.c
-       here, automate.
-
-       * tests/gobject/ifaceinit.c: Move testifaceinit.c here.
-
-       * tests/gobject/accumulator.c: Test signal accumulators,
-       including g_signal_accumulator_true_handled.
-
-2003-09-12  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gen-unicode-tables.pl: Take a directory where to look for the
-       unicode files on the command line instead of 7 individual files.
-
-2003-09-12  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gen-unicode-tables.pl:
-       * glib/gunichartables.h:
-       * glib/gunicode.h:
-       * glib/guniprop.c: Add g_unichar_get_mirror_char. (#114749)
-
-Thu Sep 11 20:11:05 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmarkup.c: Add g_markup_printf_escaped(), 
-       g_markup_vprintf_escaped().
-
-       * tests/markup-escape-test.c (main): Test for
-       g_markup_escape_text(), g_markup_printf_escaped().
-
-2003-09-10  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gunicodeprivate.h:
-       * glib/gunicollate.c:
-       * glib/gunidecomp.c:
-       * glib/guniprop.c:
-       * tests/casemap.txt:
-       * tests/gen-casemap-txt.pl: Unicode 4.0 special casing. (#114681)
-
-       * glib/gunicodeprivate.h: Use a private header instead of extern
-       function declarations (_g_utf8_normalize_wc,
-       _g_unichar_combining_class).
-
-Mon Sep  8 00:31:10 2003  Stefan Westerfeld  <stefan@space.twc.de>
-
-        * glib/gbsearcharray.h: inserted casts for C++.
-
-2003-08-28  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/patterntest.c (verbose): Fix a C99ism.  (#120821, Thomas 
-       Klausner)
-
-2003-08-25  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c (read_thread): Avoid UNLOCKing the critical
-       section twice, which might cause a hang. (#120653)
-
-       * glib/giowin32.c (g_io_channel_unix_new): Warn if fd is both a
-       valid file descriptor and socket.
-
-Mon Aug 25 12:34:36 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmessages.c: Escape control characters in g_logv() output.
-       (#108287, Christian Biere)
-
-Mon Aug 25 12:17:20 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_main_context_unref_and_unlock): 
-       When DISABLE_MEM_POOLS is set, loop through and free
-       the poll records explicitely, since g_mem_chunk_destroy()
-       won't do it. (#118121, Morten Welinder)
-2003-08-22  Samúel Jón Gunnarsson  <sammi@techattack.nu>
-
-       * is.po: Added "is" to ALL_LINGUAS.
-       
-2003-08-19  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gmessages.c (g_logv): [Win32] Make the fatal error message
-       box easier to notice with MB_SETFOREGROUND. Also use MB_ICONERROR
-       to get a nice stop-sign icon.
-
-Tue Aug 19 09:42:06 2003  Owen Taylor  <otaylor@redhat.com>
-       * m4macros/glib-gettext.m4: Add $INTLLIBS to $LIBS
-       temporarily, not -lintl. (Problem with fix for 
-       #119171, pointed out by James Henstridge)
-Tue Aug 19 03:55:29 2003  Tim Janik  <timj@gtk.org>
-
-       * glib/gbsearcharray.h: license change, no restrictions are made
-       in the new license at all, the implmentation is simply provided
-       "as is" to allow copy-pasting the code into any third-party app.
-       naturally, the implementation is self-contained within the header
-       file to allow this.
-       default to non-shrinking behaviour, allow users to request shrinking
-       via G_BSEARCH_ARRAY_AUTO_SHRINK.
-       creation, deletion functions are now named g_bsearch_array_create()
-       and g_bsearch_array_free(). 
-       fixed const in prototypes, removed cruft.
-       (g_bsearch_array_insert): take only three arguments, do nothing if the
-       node to insert is already there.
-       (g_bsearch_array_replace): insert or replace if the node is already
-       there.
-       (g_bsearch_array_remove): remove nodes by index, the index of a node
-       can be found via g_bsearch_array_get_index().
-       removed other g_bsearch_array_remove*() variants.
-       (g_bsearch_array_lookup): minor optimizations.
-       (g_bsearch_array_lookup_sibling): return nodes on mismatches.
-
-       * glib/gbsearcharray.c: removed.
-
-2003-08-16  Tor Lillqvist  <tml@iki.fi>
-
-       Fix #117925 (Dov Grobgeld):
-
-       * glib/gutils.c (g_find_program_in_path, g_basename,
-       g_path_get_basename, g_path_is_absolute, g_path_skip_root,
-       g_path_get_dirname, g_get_any_init): On Win32, look also for
-       slashes ('/') as pathname separators.
-
-       * glib/gfileutils.c (g_file_open_tmp): Ditto. If the template
-       contains a pathname separator, include the actual one in the error
-       message, instead of always the canonical one.
-
-       (g_build_filename): Separate implementation on Win32 that looks
-       for either slash or backslash. Document Unix/Windows differences.
-
-       * tests/testglib.c
-       * tests/strfunc-test.c: Test above functionality on Win32.
-
-2003-08-15  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gmain.c (g_poll): [Win32] Don't exceed handle array
-       bounds. Warn if there would be too many handles to wait
-       for. (WaitForMultipleObjects() has a relatively low limit of 64
-       handles. The Win32 IO channel code should be fixed not to need to
-       wait for one handle per file or socket being watched. Later.)
-
-2003-08-13  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/Makefile.am
-       * gmodule/Makefile.am
-       * gobject/Makefile.am
-       * gthread/Makefile.am: Use srcdir also in references to the .def
-       files. (#118885, Jeff Bonggren)
-
-2003-08-12  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gconvert.c (g_locale_from_utf8): Drop the Win32-specific
-       implementation. It used WideCharToMultiByte(), which is broken as
-       it stores unconvertable characters as fallback characters
-       (question marks) in the destination string without being able to
-       tell how much of the conversion succeeded. Using g_convert() like
-       on Unix is better and simpler. (#117872)
-
-       (g_locale_to_utf8): No need for the Win32-specific implementation
-       here, either.
-
-       (have_broken_filenames): Define as TRUE on Win32.
-
-       (g_filename_to_utf8, g_filename_from_utf8): Drop Win32 ifdefs. As
-       have_broken_filenames() now is defined TRUE on Win32, works as
-       before.
-       
-2003-08-11  Matthias Clasen  <maclas@gmx.de>
-
-       * acinclude.m4: Copy newer versions of JH_CHECK_XML_CATALOG and
-       JH_PATH_XML_CATALOG from gtk-doc to enable configuring without
-       xmlcatalog in PATH.  (#119115) 
-
-2003-08-10  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_getenv): Don't use a cache of variable name to
-       value mappings on Win32, as that breaks g_setenv() and
-       g_unsetenv(). Only call ExpandEnvironmentStrings() if necessary,
-       and in that case return a quarkified string. It is still
-       questionable how necessary expanding embedded environment variable
-       references is. Possibly the whole Win32-specific g_getenv()
-       implementation could be removed. (#119520)
-
-2003-08-08  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_once_impl.
-
-       * glib/gutils.c (g_setenv): Fix syntax error in the !HAVE_SETENV
-       case.
-
-2003-08-08  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/env-test.c (main): Remove a test for getenv() behaviour
-       which isn't specified by SUS and doesn't work on Solaris.
-
-2003-08-07  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/env-test.c: Add tests for '=' in names and values.
-
-       * glib/gutils.c (g_setenv, g_unsetenv): Check that the variable
-       name doesn't contain '='. Add a declaration for environ.  (#119338)
-
-       * acinclude.m4: Tighten the snprintf() test to check behaviour on
-       zero-size buffers.  (#106091) 
-
-       * tests/patterntest.c: Specify test strings in UTF-8, remove all
-       charset conversion. Replace the NOISY define by a cmdline arg
-       --noisy.   (#115757) 
-
-Thu Aug  7 15:01:09 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: Set $LIBS to include
-       -lintl when checking for dcgettext and 
-       _nl_msg_cat_cntr. (Tim Mooney, #119171)
-
-Thu Aug  7 14:15:44 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_idle_source_new): Make the default priority
-       for idle sources G_PRIORITY_DEFAULT_IDLE as anybody would
-       expect and document that. (#114461, reported by Andy Wingo)
-
-2003-08-06  Noah Levitt  <nlevitt@columbia.edu>
-
-       * tests/casemap.txt:
-       * tests/gen-casemap-txt.pl: Add test for special case not at inital
-       position in the string, the bug just fixed. (#118957)
-
-2003-08-05  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/guniprop.c: Get rid of "len" parameter to output_special_case
-       and output_marks, and make them work more like g_unichar_to_utf8,
-       fixing a bug in the process. (#118957)
-
-2003-08-05  Hans Breuer  <hans@breuer.org>
-
-       * glib/gnulib/makefile.msc : (new file) for msvc build
-
-       * glib/gnulib/vasnprintf.c : use glib/galloc.h
-
-       * glib/gnulib/printf.h : #include <stdio.h> for FILE*
-
-       * glib/makefile.msc.in : replace trio with gnulib
-
-       * glib/glib.def : updated externals
-
-       * glib/guniprop.c : fix for guniprop.c(582) : error C2082: 
-       redefinition of formal parameter 'len'
-
-2003-08-04  Noah Levitt  <nlevitt@columbia.edu>
-
-       * tests/unicode-normalize.c: We do handle > BMP now, so test it.
-
-2003-07-31  Noah Levitt  <nlevitt@columbia.edu>
-
-       * tests/file-test.c: s/g_read_link/g_file_read_link/ (#118727)
-
-2003-07-31  Noah Levitt  <nlevitt@columbia.edu>
-
-       * tests/unicode-encoding.c: Return nonzero exit status if the test
-       fails. (#118729) 
-
-2003-07-31  Noah Levitt  <nlevitt@columbia.edu>
-
-       * tests/utf8.txt: Change instances of U+10ffff to U+10fffd, since that
-       is the last valid unicode character. Add check that U+10ffff is
-       NOTUNICODE. (#118730)
-
-2003-07-30  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gen-unicode-tables.pl:
-       * glib/gunibreak.c:
-       * glib/gunibreak.h:
-       * glib/gunichartables.h:
-       * glib/gunicode.h:
-       * glib/gunicomp.h:
-       * glib/gunidecomp.c:
-       * glib/gunidecomp.h:
-       * glib/guniprop.c:
-       * tests/casefold.txt:
-       * tests/casemap.txt:
-       * tests/gen-casefold-txt.pl:
-       * tests/gen-casemap-txt.pl: Update Unicode data to 4.0. (#107974)
-
-2003-07-31  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32.c: When possible, manage without the helper
-       process. (Part of the enhancements outlined in #98737.) Speeds up
-       GIMP 1.3's first-time-run plug-in query phase a lot.
-
-       Plug a file descriptor (and thus Win32 handle) leak: close the
-       read end of the child error report pipe after use.
-
-2003-07-30  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.c (g_unsetenv): Use same argument name as in header,
-       to pacify gtk-doc. 
-       (g_getenv): Move docs inline, add comment about lifespan of return
-       value. 
-
-       * glib-2.0.pc.in (Libs): Remove forgotten @TRIO_LIBS@.  (#118616,
-       Noah Levitt) 
-
-       * glib/gfileutils.[hc]: Rename g_read_link() to g_file_read_link()
-       to better match the remaining file utilities in the g_file_
-       namespace and to better separate it from readlink(). This is
-       hopefully no problem as the function is just 2 days old.
-
-2003-07-29  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gqsort.[hc] (g_qsort_with_data): 
-       * glib/gconvert.[hc] (g_filename_to_uri, g_filename_from_uri): 
-       * glib/gfileutils.[hc] (g_mkstemp, g_file_open_tmp): Use gchar,
-       gint, gsize instead of char, int, size_t in the interface for
-       consistency.  (#118567) 
-
-       Replace trio printf() by gnulib vasnprintf():  (#101874)
-       
-       * configure.in: Define HAVE_LONG_LONG_FORMAT if system printf
-       understands %llu; rename enable_trio to enable_included_printf;
-       add misc. tests needed for gnulib vasnprintf(); define
-       G_GINT{16,32,64}_MODIFIER in glibconfig.h.
-
-       * acinclude.m4: Misc tests needed for gnulib vasnprintf():
-       AC_FUNC_SNPRINTF_C99, bh_C_SIGNED, jm_AC_TYPE_LONG_LONG, 
-       gt_TYPE_LONGDOUBLE, gt_TYPE_WCHAR_T, gt_TYPE_WINT_T,
-       gt_AC_TYPE_INTMAX_T, jm_AC_HEADER_STDINT_H,  
-       jm_AC_HEADER_INTTYPES_H. 
-
-       * glib/Makefile.am: Replace TRIO_SUBDIR by PRINTF_SUBDIR and
-       trio_libtrio_la by printf_la.  
-
-       * glib/gprintfint.h: Include gnulib/printf.h and use _g_gnulib_
-       functions instead of _g_trio_ functions. 
-
-       * glib/trio/*: Removed
-
-       * glib/gnulib/*: vasnprintf() implementation from gnulib, patched
-       to live in the _g_gnulib namespace, use g_malloc instead of
-       malloc, and support long long printing even if system printf
-       doesn't. For more details, see glib/gnulib/README.
-       
-       * tests/printf-test.c: Add tests for 64 bit printing.
-
-2003-07-28  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gfileutils.h: 
-       * glib/gfileutils.c: New function g_read_link(). (#72545)
-
-       * configure.in: Check for setenv, unsetenv, readlink and symlink.
-
-       * tests/file-test.c (test_readlink): Test for g_read_link() (only
-       on systems supporting symbolic links).
-
-       * tests/env-test.c: New test for g_{get,set,unset}env().
-
-       * tests/Makefile.am (test_programs): Add env-test.
-
-       * glib/gutils.h: 
-       * glib/gutils.c: New functions g_setenv() and g_unsetenv().  (#100763)
-
-2003-07-26  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/printf-test.c: New test, tests printf behaviour. This was
-       already mentioned in Makefile.am by accident.
-
-       * tests/file-test.c: New test, currently contains mkstemp tests
-       copied from testglib.c. 
-
-       * tests/Makefile.am (test_programs): Add file-test.
-
-       * glib/gprintf.c: Fix all g_return_val_if_fail () checks to return
-       -1 on error to match the behaviour of the stdio printf() family.
-
-       * glib/garray.h: 
-       * glib/garray.c (g_{,byte,pointer}_remove_range): New functions to
-       remove a range of elements from an array.  (#94879, Nalin Dahyabhai)
-
-       * glib/gmessages.c (g_logv): Remove the 1024 char limit in the
-       common (non-recursive) case.
-
-2003-07-25  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gwin32.c: 
-       * glib/gutf8.c: 
-       * glib/gunicollate.c: 
-       * glib/gtree.c: 
-       * glib/gspawn.c: 
-       * glib/gmain.c: 
-       * glib/giochannel.c: 
-       * glib/gfileutils.c: 
-       * glib/gerror.c: 
-       * glib/gconvert.c: 
-       * glib/gasyncqueue.c: 
-       * glib/gmem.c: Remove some explicit Docbook markup which is no
-       longer necessary since gtk-doc does the right thing.
-
-       * glib/gutf8.c (g_utf8_get_char_validated): Work around gtk-doc stupidity.
-
-2003-07-20  Hans Breuer  <hans@breuer.org>
-
-       * glib/trio/makefile.msc : (new file) for msvc build
-
-       * glib/glib.def : removed some duplicated entries
-
-       * glib/gscanner.c : add same workaround for MSVC(5.0)
-       which does not allow to cast an uint64 to float.
-       Same as in gvaluetransform.c
-       Also move #include <io.h> behind inclusion of "glib.h"
-       which defines the needed G_OS_WIN32
-
-       * glib/makefile.msc.in : added gprintf.obj, trio\trio.lib
-       as well as shell32.lib
-
-       * tests/spawn-test.c : include <io.h> on win32
-
-2003-07-12  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gprintf.c: Doc additions.
-
-2003-07-10  Joel Brich <joel.brich@laposte.net>
-
-       * configure.in: Added "eo" to ALL_LINGUAS.
-
-Wed Jul  9 16:27:26 2003  Manish Singh  <yosh@gimp.org>
-
-       * glib/gmain.c (g_main_context_unref_and_unlock): check if
-       context->poll_chunk is set before trying to destroy it. For example,
-       this can happen if no sources are added to a context before it is
-       freed.
-
-2003-07-09  Morten Welinder  <terra@gnome.org>
-
-       * glib/gprintf.c (g_vasprintf): Avoid var declaration after
-       statement.
-
-2003-07-09  Matthias Clasen  <maclas@gmx.de>
-
-       Support for one-time initialization functions.  (#69668, Sebastian
-       Wilhelmi) 
-
-       * configure.in: Check whether double checked locking is safe,
-       define g_once() in glibconfig.h accordingly.
-       * glib/gthread.h: Add GOnce, GOnceStatus, G_ONCE_INIT and g_once_impl.
-       * glib/gthread.c (g_once_impl): Fallback implementation using a
-       mutex if double checked locking is unsafe.
-       * tests/thread-test.c: Add tests for g_once().
-
-2003-07-02  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strfreev): Move docs inline, document behavior 
-       for NULL. (#116439, Steve Chaplin)
-
-2003-06-25  Abigail Brady  <morwen@evilmagic.org>
-       * glib/gconvert.c (g_convert_with_fallback): Use C99 style \uxxxx
-       and \Uxxxxyyyy escapes instead for fallback instead of perl-style
-       \X{xxxx} ones, fixing bug #114284.
-
-2003-06-25  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c (g_io_channel_unix_new): Pass real &optval and
-       &optlen to getsockopt() instead of NULL. Don't remember why I
-       thought that NULL could be used (as we don't actually use the
-       returned value for anything), the Platform SDK documentation
-       doesn't imply so.
-
-2003-06-19  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.c (g_path_get_basename): Move the documentation
-       inline and add details.  (#108505)
-
-2003-06-18  Matthias Clasen  <maclas@gmx.de>
-
-       * acinclude.m4 (JH_PATH_XML_CATALOG, JH_CHECK_XML_CATALOG): New
-       macros to check for XML catalog contents and path, borrowed from
-       gtk-doc. 
-
-       * configure.in: New option --enable-man to enable regeneration of
-       man pages from Docbook, if the necessary tools are found.
-
-2003-06-17  Matthias Clasen  <maclas@gmx.de>
-
-       * acinclude.m4 (JH_PATH_XML_CATALOG, JH_CHECK_XML_CATALOG): New
-       macros to check for XML catalog contents and path, borrowed from
-       gtk-doc. 
-       
-       * configure.in: New option --enable-man to enable regeneration of
-       man pages from Docbook, if the necessary tools are found.
-
-2003-06-15  Tor Lillqvist  <tml@iki.fi>
-
-       * glib-zip.in (DLLDIR): Test where the DLLs actually are.
-
-       * README.win32: Point to FSF's binary Win32 distributions of
-       libiconv and gettext-runtime.
-
-2003-06-11  Tor Lillqvist  <tml@iki.fi>
-
-       * glib-zip.in (DEVZIP): libtool 1.5 installs DLLs in the bin
-       subdirectory, so get them from there.
-
-       * glib/gwin32.c (g_win32_getlocale): Use "sr@Latn" and "sr" in the
-       same way as the po files for Serbian in Latin and Cyrillic script.
-
-2003-06-11  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * configure.in: Remove false &. Spotted by Albert Chin
-       <gtk-devel-list@thewrittenword.com>.
-
-2003-06-08  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c: Fix indentation and spacing. Use
-       INADDR_LOOPBACK instead of inet_addr("127.0.0.1") and
-       gethostbyaddr().
-
-Sat Jun  6 16:18:10 2003  Andrew Lanoix  <alanoix@umich.edu>
-
-       * glib/giowin32.c: Resolved thread deadlocks in socket 
-       ichannel code to support Add-Cancel-Add watch functionality 
-       on windows. Also cleaned up socket error handling to not 
-       segfault and do the right thing.
-       
-Fri Jun  6 10:24:23 2003  Hidetoshi Tajima  <hidetoshi.tajima@sun.com>
-
-       * m4macros/glib-gettext.m4: Test for Solaris native gettext 
-       in libc, seeing if it supports GNU catalog format (#85217).
-       
-Thu Jun  5 23:40:31 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c: When dispatching a source that is
-       !CAN_RECURSE, temporarily remove any file descriptors
-       that that source has registered from the main loop, to keep
-       recursive main loops from busy-waiting if input
-       becomes available on one of those file descriptors.
-       (#112222, Christian Krause)
-
-       * glib/gmain.c (g_source_set_priority): Properly
-       remove the source from the context's source list
-       and reinsert it sorted, rather than simply setting
-       source->next/prev to NULL! (#114274)
-
-2003-06-06  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstring.c (g_string_append_printf_internal): Use
-       g_vasprintf() and g_string_append_len(), thus enabling embedded
-       nuls in the result of g_string_printf().  (#92492, Owen Taylor)
-
-       * tests/string-test.c: Add a test for embedded nuls in the
-       result of g_string_printf().
-
-       * glib/gprintf.[ch]: Synchronize argument names with headers and docs.
-       (g_vasprintf): An implementation of vasprintf(), code was lifted
-       from g_strdup_vprintf().  (#112365)
-
-       * glib/gstrfuncs.c (g_strdup_vprintf): Just use g_vasprintf().
-
-2003-06-05  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giochannel.h
-       * glib/gmain.h: Remove bogus (Win32-only) declaration of
-       g_main_poll_win32_msg_add(). No such function exists.
-
-       * glib/gmain.c (g_poll) [Win32]: Use g_win32_error_message() for
-       better warning messages.
-
-2003-06-04  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gunidecomp.h (combine): Fix typo (#114375). Also, make the
-       function static.
-
-2003-06-03  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * configure.in: Test for pthread_setschedparam. If not existant,
-       disable priorities. (#104718)
-
-Mon Jun  2 14:18:21 2003  Owen Taylor  <otaylor@redhat.com>
-
-       Patch from Jeffrey Stedfast <fejj@ximian.com> (#104825)
-       * glib/gspawn.c (read_data): Don't read() into '&buf', while this
-       is technically okay - it is clearer as just 'buf'.
-       (write_all): New helper function that handles write() interrupts.
-       (write_err_and_exit): Use write_all() instead of write().
-       (fork_exec_with_pipes): Same here.
-       
-Sun Jun  1 09:42:36 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_error_get_from_g_error): Put 
-       the g_return_val_if_fail() in the right place.
-
-Fri May 31 1:17:45 2003  Ray Strode  <halfline@hawaii.rr.com>
-
-       * glib/giochannel.c (g_io_channel_error_from_errno):
-       Fix typo: should be G_IO_ERROR_UNKNOWN not
-       G_ERROR_ERROR_UNKNOWN
-
-Fri May 30 19:23:47 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gstrfuncs.c (g_ascii_strncasecmp)
-       * glib/gstrfuncs.c (g_ascii_strcasecmp): Use TOLOWER()
-       macro instead of g_ascii_tolower() (#107138)
-
-Fri May 30 19:09:25 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: Backport better handling
-       of ALL_LINGUAS from gettext.m4. (#103808, Andras Salamon)
-
-Fri May 30 18:46:05 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: expand $exec_prefix as
-       well as $prefix. (#107290, reported by Morten Welinder,
-       patch from Raja Harinath)
-
-Fri May 30 17:24:23 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-gettextize.in: Quote $srcdir to handle $srcdir
-       with spaces (#107850, Evan Martin)
-
-Fri May 30 16:48:26 2003  Owen Taylor  <otaylor@redhat.com>
-       * glib/giochannel.c (g_io_channel_error_from_errno):
-       Silently return G_IO_CHANNEL_ERROR_FAILED for EINTR,
-       since close() can return EINTR. (#11842, Balazs Scheidler)
-Fri May 30 15:51:43 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/giochannel.c (g_io_error_get_from_g_error): 
-       Do a g_return_val_if_fail() on err == NULL to be a
-       bit more robuts on buggy IO channel implementations.
-       (#113396, Dan Winship)
-
-Tue May 27 19:56:35 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmacros.h: __PRETTY_FUNCTION__ was made a non-token
-       before gcc-3.0.0 for C++. (Fix from Martin Kretzschmar,
-       #113797)
-
-2003-05-28  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/patterntest.c: Remain silent when sucessful. 
-
-       * tests/Makefile.am: Add patterntest to make check.  (113143)
-
-2003-05-27  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strdup): Use memcpy instead of
-       strcpy. (#106988, Christian Biere)
-
-2003-05-27  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strdup): Use memcpy instead of
-       strcpy. (#106988, Christian Biere)
-
-2003-05-23  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gutf8.c: Fix typo in UNICODE_VALID (related to #107427).
-
-2003-05-23  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/guniprop.c: Remove stale comment.
-
-2003-05-22  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/guniprop.c: Update g_unichar_iswide to Unicode 4.0 (#113404).
-
-2003-05-21  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/guniprop.c: Fix obscure typo in case conversion routine
-       (#113469).
-
-Tue May 20 14:14:55 2003  Manish Singh  <yosh@gimp.org>
-
-       * configure.in: wrap 64-bit MIN/MAX limit constants in
-       G_GINT64_CONSTANT. Fixes bug #108699.
-
-2003-05-19  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gunibreak.c: Fix cut-and-pasto: g_unichar_break_type should
-       return G_UNICODE_BREAK_UNKNOWN if the character is greater than
-       G_UNICODE_LAST_CHAR.
-
-2003-05-19  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/glist.c: Remove unused function g_list_sort2 (bug #113203).
-
-2003-05-19  Noah Levitt  <nlevitt@columbia.edu>
-
-       * glib/gunidecomp.c: Fix off-by-one error in
-       g_unicode_canonical_ordering (bug #113260).
-
-2003-05-19 Arafat Medini <lumina@silverpen.de>
-
-       * ar.po: Added ar to ALL_LINGUAS
-
-2003-05-17  Telsa Gwynne  <hobbit@aloss.ukuu.org.uk>
-
-       * configure.in: Added cy to ALL_LINGUAS
-
-2003-05-05  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_ascii_dtostr): 
-       (g_ascii_formatd): 
-       (g_ascii_strtod): Some doc fixes.  (#111805)
-
-2003-05-05  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added sr and sr@Latn to ALL_LINGUAS.
-
-Thu Apr 24 19:12:05 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * autogen.sh (have_libtool): Accept libtool-1.5. (#111483)
-
-2003-04-09  Matthias Clasen  <maclas@gmx.de>
-
-       * INSTALL: 
-       * INSTALL.in: Remove list of configuration flags, since these 
-       are already documented in docs/reference/glib/building.sgml.
-
-2003-04-08  Matthias Clasen  <maclas@gmx.de>
-
-       * INSTALL: Move Cross-compliation information to reference manual.
-
-Mon Apr  7 13:40:28 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c (g_main_loop_run): When waiting for
-       the main loop to be freed up, wait on either
-       !loop->is_running or got_ownership, not both.
-       (Caused gtk_dialog_run() not to work in other
-       threads, reported by Jean-Yves Lefort)
-
-2003-04-07  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutf8.c (g_utf8_strlen): Warn if p == NULL && max != 0.
-       (#110087) 
-
-2003-04-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add g_string_chunk_insert_len.
-
-2003-04-01  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstring.[hc] (g_string_chunk_insert_len): New function, to
-       insert possible non-nul-terminated byte sequences into a string
-       chunk.  (#96279)
-       (g_string_chunk_insert): Implement in terms of
-       g_string_chunk_insert_len() now.
-
-2003-03-30  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstring.c (g_string_new): Optimize the common cases 
-       (init == NULL or init == "") a bit.
-       * glib/gmarkup.c, glib/gmessages.c, glib/gscanner.c,
-       glib/gshell.c, glib/gspawn-win32-helper.c, glib/gspawn-win32.c,
-       glib/gspawn.c, gobject/gvaluetransform.c: replace uses of 
-       g_string_new ("") by g_string_new (NULL).  (#106973, Morten Welinder)
-
-       * glib/gutf8.c (UNICODE_VALID): Update to Unicode 3.1 and optimize
-       a bit.  (#107427, Noah Lewitt)
-
-       * glib/libcharset/config.charset: Add cp1251 support for Solaris.
-       (#104738, Hidetoshi Tajima)
-
-       * glib/gconvert.c (UnsafeCharacterSet): Get rid of
-       UNSAFE_DOS_PATH.
-       (acceptable): Align with RFC2396.  (#59653)
-
-       * tests/uri-test.c: Adjust to the changes above.
-
-2003-03-26  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "yi" to ALL_LINGUAS.
-
-2003-03-19  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/giochannel.c (g_io_channel_read_to_end): Fix docs.
-
-2003-03-19  Anders Carlsson  <andersca@codefactory.se>
-
-       * configure.in: Bump version to 2.3.0
-
-2003-03-14  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gthread.c: Do not define function g_thread_init_glib, if
-       not G_THREADS_ENABLED. It's not called bu g_thread_init() then,
-       but calls other, in that case undefined functions.
-
-2003-03-06  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmain.c (g_main_context_find_source_by_id): 
-       (g_main_context_find_source_by_funcs_user_data): Fix FALSE/NULL
-       confusion.  (#107646, Morten Welinder)
-
-2003-03-01  James Henstridge  <james@daa.com.au>
-
-       * autogen.sh: require automake 1.7.  Add calls to libtoolize and
-       gtkdocize.  Clean up some of the error messages.
-
-       * configure.in: move version declaration to the top of the file
-       (before AC_INIT), using M4 macros.
-       GLIB_AC_DIVERT_BEFORE_HELP() calls no longer necessary, due to use
-       of M4 macro expansion in help messages instead.
-       Convert AC_ARG_WITH/AC_ARG_ENABLE calls to use AC_HELP_STRING to
-       format help strings.  Use quadrigraphs to get square brackets to
-       show correctly.
-       Replace gtk-doc checks with a call to GTK_DOC_CHECK() macro.
-       Use AC_CONFIG_COMMANDS([glibconfig.h], ...) to output
-       glibconfig.h, so that "./config.status glibconfig.h" works.
-       Add an extra AC_CONFIG_FILES call listing other files we want
-       generated by config.status protected by an "if false" block.  This
-       way automake generates the rules needed to rebuild the files for
-       us.
-       Add quotes in various places.
-
-       * docs/reference/*/Makefile.am: convert to use the common
-       gtk-doc.make file.  This localises the complexity to a single
-       makefile fragment maintained with gtk-doc itself.
-
-       * */Makefile.am: remove unneeded rules to build win32 files with
-       config.status.  Automake now does this for us.
-       Replace instances of @FOO@ with $(FOO) where appropriate -- this
-       allows automake to do a better job checking the makefile.
-       Add some files to DISTCLEANFILES where appropriate
-
-       * Makefile.am: use the DISTCHECK_CONFIGURE_FLAGS variable to
-       ensure that --enable-gtk-doc is passed to configure during a
-       distcheck.  Remove the custom distcheck, since the standard one
-       will now do.
-
-       * gobject/Makefile.am: switch to BUILT_SOURCES, since that now
-       works.
-
-2003-02-26  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strdup_vprintf): Use g_strndup, not
-       g_strdup, since we know the length in advance.
-
-       * glib/gunidecomp.c (g_unicode_canonical_decomposition): Use
-       g_malloc instead of directly using malloc.
-
-2003-02-25  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add a couple of missing entries, thanks to Cedric
-       Gustin. Thread initialization function changes according to
-       Sebastian Wilhelmi's changes below (2003-02-14).
-
-2003-02-24  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gdir.c (g_dir_read_name): Clarify documentation.
-
-2003-02-18  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * configure.in: Make glib_thread_test not unnecessarily convert
-       between int and void*. (#106278). Let main return int.
-
-       * configure.in: Add an argument to specify the default thread
-       attribute to glib_thread_test. Disappeared somewhere between 2.0
-       and 2.2.
-
-2003-02-14  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       Fixes for #101264 and #99372:
-
-       * glib/gconvert.h, glib/gmain.c, glib/gmem.c, glib/gmessages.c,
-       glib/grand.c: Include gthreadinit.h and rename the thread
-       initialization functions a bit and let them start with _, so that
-       later we can stop exporting them.
-       
-       * glib/gmem.c, glib/gmessages.c: Move the g_private_new() calls to
-       new functions. They have to be called after setting
-       g_threads_got_initialized to TRUE (see #101264).
-
-       * glib/gthread.c: Include gthreadinit.h. Renamed g_mutex_init() to
-       g_thread_init_glib(). Call the thread initialization functions
-       (which are not allowed to call g_private_new), then set
-       g_threads_got_initialized to TRUE, then call the other thread
-       initialization functions (which must not call anything but
-       g_private_new()).
-       
-       * glib/gthreadinit.h: New private header to cleanly declare all
-       thread initialization functions.
-
-       * gthread/gthread-impl.c: Include gthreadinit.h. In
-       g_thread_init() just call g_thread_init_glib(), which in turn calls the
-       other functions (see #99372).
-       
-       * glib/Makefile.am: Added gthreadinit.h.
-
-2003-02-12  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * configure.in: Make GLib recognize Tru64Unix thread system. (#103020)
-
-2003-02-11  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (EXTRA_DIST): Include ChangeLog.pre-2-2.
-
-       * glib-zip.in: Include also the gtk-doc/html documentation in the
-       developer package.
-
-       * README.win32: Updates.
-
-2003-02-11  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * AUTHORS: Changed my e-mail address.
-       * glib/grand.c: Removed my e-mail address.
-
-2003-02-10  Mohammad DAMT  <mdamt@bisnisweb.com>
-
-       * po/id.po: Added Indonesian translation
-       * configure.in: Added "id" to ALL_LINGUAS
-
-2003-02-06  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmessages.h: 
-       * glib/gmem.h: 
-       * glib/ghash.h: 
-       * glib/gasyncqueue.h: 
-       * glib/garray.h: 
-       * glib/ghook.h: 
-       * glib/gtypes.h: Fix a bunch of typos in header comments.
-       (#102422, Morten Welinder)
-
-2003-02-04  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c (g_io_channel_unix_new): Fix typo: Should be
-       SOCKET_ERROR, not SO_ERROR. Noticed by Daniel Kaufmann.
-       
-       Merge from stable branch: 
-
-       Fix for bug #104014, reported by Alex Shaduri:
-       
-       * glib/gspawn-win32.c (protect_argv): New function. Add
-       double-quotes around argv elements that need it, and escape
-       embedded double-quotes with backslash.
-       (do_spawn_with_pipes) Call protect_argv().
-
-       * glib/gspawn-win32-helper.c (WinMain): Call protect_argv().
-
-       * glib/gspawn.c (g_spawn_async_with_pipes): Document argument
-       vector vs. command line details on Win32.
-       (g_spawn_command_line_sync): Improve documentation about
-       backslashes in the command line on Windows.
-
-Thu Jan 30 16:45:13 2003  Owen Taylor  <otaylor@redhat.com>
-
-        * Makefile.am: Remove references to glib.spec.
-        (#102231)
-
-        * configure.in: Don't generate glib.spec.
-
-Tue Jan 28 16:08:56 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * m4macros/glib-gettext.m4: If msgfmt isn't found,
-       unset gt_cv_have_gettext. (#102552, Tim Mooney)
-
-Tue Jan 28 15:18:24 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * autogen.sh (have_automake): Fix version in complaint
-       message about automake. (#104366, Rich Burridge)
-
-2003-01-22  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * configure.in: Added Bengali (bn) to ALL_LINGUAS
-
-2003-01-21  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "mn" to ALL_LINGUAS.
-
-2003-01-20  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * configure.in: Added Farsi (fa), Italian (it), Latvian (lv),
-       Macedonian (mk) to ALL_LINGUAS
-
-2003-01-16  Daniel Yacob <locales@geez.org>
-
-       * configure.in: added am to ALL_LINGUAS
-       
-2003-01-12  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add some missing entries. Thanks to Kenichi SUTO.
-
-2003-01-05  Tor Lillqvist  <tml@iki.fi>
-
-       * README.win32: Updates.
-
-       * configure.in: Don't use -lm in TRIO_LIBS on Windows, with no
-       libm. (Mingw has a dummy libm.a, but the .pc file should be
-       useable by MSVC users, too.)
-
-2003-01-25  Ron Steinke  <rsteinke@w-link.net>
-
-       (Ancient, binary compatible fixes found sitting in my tree)
-
-       * Added early checks for count == 0 and buf == NULL in g_io_channel_read()
-
-       * Better error message for EFAULT in  g_io_channel_error_from_errno()
-
-2003-01-04  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (BUILT_EXTRA_DIST): Don't distribute glib-zip.
-
-       * {glib,gmodule,gobject,gthread}/Makefile.am:
-       [Win32] Install also the .def files, to help users generate
-       import libraries for other compilers. Uninstall, too.
-
-       * glib-zip.in: Include .def files from above.
-
-       * glib/giowin32.c (g_io_win32_fd_get_flags_internal): Don't claim
-       broken pipes are unreadable. (Well, they are, but read() handles
-       it, and treats it like EOF.)
-
-Thu Jan  2 16:19:15 2003  Manish Singh  <yosh@gimp.org>
-
-       * configure.in: use AC_COMPILE_IFELSE instead of AC_TRY_COMPILE for
-       tests for inline keywords. Fixes #101976.
-
-2003-01-02  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.h: Correct the comment telling what headers have
-       the declarations of some POSIXish functions.
-
-       * glib/giowin32.c (g_io_win32_fd_get_flags_internal): Fix braino:
-       The checks for readability/writeability were backwards.
-
-2003-01-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gmessages.c (ensure_stderr_valid): New function, parallel
-       to ensure_stdout_valid(). #defined as empty on Unix. Move the
-       alloc_console_called static flag inside these two functions.
-       (ensure_stdout_valid, ensure_stderr_valid): Check the C stdout and
-       stderr streams for validity, instead of what GetStdHandle() returns.
-       (mklevel_prefix): Do use either stderr or stdout on Windows,
-       too. Otherwise g_warning() messages (that are just warnings, by
-       definition) will get mixed with proper stdout output. Noticed in
-       GIMP's gimpconfig-dump.
-       (strdup_convert, mklevel_prefix, g_printerr): Call
-       ensure_stderr_valid() before trying to use stderr.
-       (g_logv): [Win32] Convert message to current codepage before
-       display with MessageBox().
-
-2002-12-28  Tõivo Leedjärv  <toivo@linux.ee>
-
-       * configure.in: Added et to ALL_LINGUAS.
-
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
deleted file mode 100644 (file)
index 41a9f78..0000000
+++ /dev/null
@@ -1,1683 +0,0 @@
-2004-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.6.0 ===
-       
-2004-12-15  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/gconvert.c: (g_filename_display_basename):
-       Fix spelling
-       Add g_return_val_if_fail.
-       
-       * glib/glib.symbols:
-       Add g_filename_display_basename
-
-2004-12-15  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/gconvert.[ch]:
-       Add g_filename_display_basename.
-
-2004-12-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * README.in: Updates
-
-       * NEWS: Updates.
-
-       * configure.in: Set version to 2.6.0
-
-2004-12-13  Tor Lillqvist  <tml@iki.fi>
-
-       * NEWS: Update.
-
-       * glib/glib.symbols
-       * glib/gstdio.[ch]: Add g_rmdir().
-
-2004-12-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2004-12-12  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.symbols
-       * glib/gconvert.[ch]: Implement Windows DLL ABI stability also for
-       g_filename_{to,from}_uri().
-
-2004-12-11  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gstdio.c (g_rename, g_unlink, g_remove): Add doc comments
-       about Windows restrictions on renaming and removing.
-
-       (g_remove): Mimic POSIX remove() on Windows: Try also to rmdir if
-       removal as a file fails. Document this.
-
-       * glib/gstdio.h: Clarify comment about file name encoding on
-       Windows.
-
-       * glib/gspawn-win32.c: Fix #157255. Also some refactoring of this
-       still very ugly source file.
-
-2004-12-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (print_help): Don't print help options
-       if the options of a specific group have been 
-       requested.  (#160645, Glynn Foster)
-
-2004-12-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_get_language_names): Update the returned
-       value after locale changes.  (#160271, Christian Persch)
-       (_g_utils_thread_init): Initialize the language name cache
-       before going threaded.
-
-       * glib/gthread.c (g_thread_init_glib): Call _g_utils_thread_init().
-
-       * glib/gthreadinit.h: Add _g_utils_thread_init().
-
-2004-12-06  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c (g_io_win32_finalize): Fix a write to freed
-       memory: Unlock the channel's mutex before unrefing the channel.
-
-2004-12-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Remove a no longer needed hack for 
-       libtool < 1.5.2.  (#100697, Owen Taylor, Sebastian Wilhelmi)
-
-2004-12-05  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.symbols
-       * glib/gwin32.[hc]: Implement DLL ABI stability also for
-       g_win32_get_package_installation_directory()) and
-       g_win32_get_package_installation_subdirectory().
-
-       * glib/Makefile.am (install-libtool-import-lib): Remove the DLL
-       binary compatibilty entries from the import library. They aren't
-       used by newly compiled code, so no need to have them in the import
-       library. (The "PRIVATE" keyword in the .def file is supposed to do
-       this, but not implemented in the GNU linker yet.)
-
-2004-12-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gqueue.c (g_queue_link_index): Return -1 if queue is 
-       NULL.  (#159530, Philippe Blain)
-
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version.
-
-       * === Released 2.5.7 ===
-       
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Protect the the various push/pop allocator
-       functions by #ifndef DISABLE_MEM_POOLS.  (#160215, Frederic Crozat)
-
-       * glib/makegalias.pl: Support #ifndef'ed sections.
-
-       * glib/gutils.c (g_get_system_config_dirs): Don't forget to 
-       initialize g_system_config_dirs.  (#160213, Frederic Crozat)
-
-Wed Dec  1 17:04:37 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gstring.h (g_string_append_c_inline): actually enable (and
-       fix up the length test).
-
-2004-11-30  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/Makefile.am (glib.def): gcc -E complains "linker input file
-       unused because linking not done" if told to preprocess the
-       glib.symbols file. Use '-' and redirection to pass it as standard
-       input instead.
-
-2004-11-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-2004-11-30  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
-       true errors from spawn*(). (#157258, reported by Bruce Hochstetler)
-
-2004-11-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95.
-
-       * glib/gmarkup.c (unescape_text_state_after_charref_hash): 
-       Avoid a strndup() here, noticed by Morten Welinder.
-
-2004-11-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c: Remove leftover noinline attributes.
-       (is_name_start_char, is_name_char): Avoid possible reads
-       beyond the end of g_ascii_table.
-
-       * glib/Makefile.am: Use the perl found by configure.  (#149826,
-       Morten Welinder)
-
-Sun Nov 28 13:13:56 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/abicheck.sh: filter G_GNUC before PRIVATE so $ is still true.
-
-       * tests/utf8-validate.c: cast pointer math to gint for error print
-       message.
-
-Sun Nov 28 12:07:29 2004  Manish Singh  <yosh@gimp.org>
-
-       * tests/utf8-validate.c: minor comment fix.
-
-2004-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.h:
-       * glib/gkeyfile.h:
-       * glib/gmem.h: 
-       * glib/gstrfuncs.h:
-       * glib/gunicode.h:
-       * glib/gutils.h: Mark functions with G_GNUC_MALLOC when appropriate.
-
-       * glib/glib.symbols: Add G_GNUC_MALLOC annotations.
-
-       * glib/gmacros.h (G_GNUC_MALLOC): Add a macro for 
-       __attribute__((__malloc__)).  (#61780)
-
-2004-11-28  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.[hc]
-       * glib/glib.symbols: [Win32] Make also g_get_user_name() and
-       g_get_real() name return UTF-8. As for the similar changes to fix
-       #101792, for DLL ABI stability we use preprocessor defines to get
-       the new UTF-8 versions, and keep the old names for versions
-       returning strings in the system codepage.
-
-       Fix g_get_tmp_dir() and g_get_home_dir() to actually return UTF-8
-       as was intended in the fix for bug #101792. (#159664, noticed by
-       Robert Ögren)
-
-2004-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c: Optimizations; don't scan the entire text
-       in find_current_text_end(), split unescape_text() into multiple
-       functions.  (#159001, Havoc Pennington)
-
-2004-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gspawn.c (g_spawn_async_with_pipes): Update the @flags
-       documentation with references to GChildWatch and 
-       g_spawn_close_pid().  (#136255, noted by Owen Taylor)
-
-2004-11-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_parse_value_as_string): 
-       Don't access invalid memory address if p wasn't 
-       increased.  (#159557, Frederic Crozat)
-
-2004-11-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/strtod-test.c (main): Add a testcase for the previous fix.
-
-       * glib/gstrfuncs.c (g_ascii_strtod): Make it work again for floats
-       starting with a decimal point, like .75  (#156421, Hans Breuer)
-
-Thu Nov 25 14:02:43 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/abicheck.sh: filter out G_GNUC stuff when doing the compare.
-
-       * glib/gmessages.c (g_assert_warning): call abort() at the end, so
-       gcc doesn't warn.
-
-2004-11-25  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * configure.in: Add «nb» to ALL_LINGUAS.
-
-2004-11-24  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c (g_win32_error_message,
-       get_package_directory_from_module,
-       g_win32_get_package_installation_directory,
-       g_win32_get_package_installation_subdirectory): Use wide character
-       API when available. Document that string parameters and return
-       values are in UTF-8.
-
-2004-11-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutf8.c: Replace g_utf8_validate() with an
-       optimized version, and clarify the docs a bit.  (#159131,
-       Owen Taylor)
-
-       * tests/Makefile.am (test_programs): Add utf8-validate.
-
-       * tests/utf8-validate.c: Unit tests for g_utf8_validate().
-
-2004-11-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.h: Don't mark g_option_error_quark() as const,
-       to be consistent with all the other error_quark functions. 
-       (technically they are const, but since these are called only
-       in error paths, giving the compiler better optimization 
-       opportunities doesn't matter much)
-
-2004-11-23  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix a problem with the PLT reduction changes which caused the
-       internal aliases to lose all attributes.
-       
-       * glib/glib.symbols: Add attribute annotations.
-       * glib/makegalias.pl: Keep attribute annotations, but strip PRIVATE.
-       * glib/Makefile.am (glib.def): Strip attribute annotations, but keep 
-       PRIVATE.
-
-2004-11-21  Hans Breuer  <hans@breuer.org>
-
-       * **/makefile.msc : updated
-
-2004-11-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-2.0.m4 (AM_PATH_GLIB_2_0): Support gmodule-no-export.
-
-       * Makefile.am (EXTRA_DIST): 
-       * configure.in (AC_CONFIG_FILES): Add gmodule-no-export-2.0.pc.in 
-
-       * gmodule-no-export-2.0.pc.in: Add a variants of gmodule-2.0.pc.in
-       which doesn't add -Wl,--export-dynamic, since Pango or GTK+ don't
-       need it.  (#125627, Owen Taylor)
-
-2004-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Define S_ISREG() on windows, since it
-       is not present there.  (#158469, Kazuki IWAMOTO)
-
-2004-11-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_load_from_fd): Use S_ISREG(), since
-       S_IFMT and S_IFREG are apprarently missing on some systems (they 
-       are SUS, but not Posix).  (#158263)
-
-2004-11-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version.
-
-       * === Released 2.5.6 ===
-       
-2004-11-11  J. Ali Harlow  <ali@juiblex.co.uk>
-
-       * gobject/Makefile.am:
-       * glib/Makefile.am (gtk.def): Use embedded tab rather than '\t'
-       escape sequence. (#157951)
-
-2004-11-10  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gconvert.c (g_get_filename_charsets): Fix typo in doc
-       comment.
-
-2004-11-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Updates
-
-Mon Nov  8 10:45:50 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gasyncqueue.c
-       * glib/ghook.c
-       * glib/giochannel.c: g_return_if_fail -> g_return_val_if_fail
-
-       * glib/gmain.c: Ditto, plus also make g_main_context_ref() actually
-       return the passed in pointer.
-
-2004-11-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gnode.h (enum GTraverseFlags): Add G_TRAVERSE_LEAVES
-       and G_TRAVERSE_NON_LEAVES as alternative names for 
-       G_TRAVERSE_LEAFS and G_TRAVERSE_NON_LEAFS, which are
-       grammatically brutal.  (#138853, Morten Welinder)
-       
-       * glib/gasyncqueue.[hc]:
-       * glib/ghook.[hc]: 
-       * glib/gmain.[hc]:
-       * glib/giochannel.[hc]: Make g_io_channel_ref(), 
-       g_main_context_ref(), g_hook_ref(), g_async_queue_ref()
-       return the passed in pointer. (#151663, Manish Singh)
-
-       * glib/gmain.c: Initialize child_watch_count to 1, so 
-       that we don't miss the very first child if it exits 
-       before we set up the child watch. In that case we had 
-       previously source->count == child_watch_count == 0, 
-       causing g_child_watch_check() to skip the waitpid() 
-       call.  (#154827, Gustavo Carneiro)
-
-       * glib/gmain.c (g_child_watch_source_init_single) 
-       (g_child_watch_source_init_multi_threaded): Use sigaction()
-       instead of signal().  (#136867, Jonas Jonsson, patch by
-       Archana Shah)
-
-2004-11-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_get_any_init): Work around an bug
-       in Mac OS < 10.3.  (#156446, Dave MacLachlan)
-
-2004-11-06  Tor Lillqvist  <tml@iki.fi>
-
-       * glibconfig.h.win32.in: Cosmetics: move the G_GNUC_INTERNAL
-       define to the same place where it is in a configure-generated
-       glibconfig.h
-
-2004-11-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/strtod-test.c: Portability fixes and extra sanity
-       checks.  (#157453, Morten Welinder)
-
-2004-11-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c (g_ascii_strtod): Handle numbers like
-       1e1, nan, -infinity. Also try harder to preserve errno.  
-       (#156421, Morten Welinder)
-
-       * tests/strtod-test.c: Add testcases.
-
-2004-11-04  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/goption.h (enum GOptionFlags): Add G_OPTION_FLAG_REVERSE,
-       to reverse the sense of a G_OPTION_ARG_NONE (boolean) option.
-
-       * glib/goption.c (parse_arg): Obey the above flag.
-
-       * glib/gconvert.c (g_filename_display_name): Document that the
-       result is guaranteed to be non-NULL.
-
-       * glib/gfileutils.c (get_contents_stdio, get_contents_regfile,
-       get_contents_posix, get_contents_win32, g_file_open_tmp,
-       g_file_read_link): Use g_filename_display_name() for error
-       messages.
-       (g_mkstemp): Document that the template should be in the GLib file
-       name encoding.
-       (g_file_open_tmp): Ditto. Also document that the actual name
-       returned is also in the GLib file name encoding.
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c (g_filename_display_name): New function 
-       to convert a filename to a UTF-8 string for display 
-       purposes.  (requested by Alex Larsson)
-       
-       * glib/gconvert.c (g_get_filename_charsets): New function 
-       to return the encodings which are tried when converting a 
-       filename to UTF-8. (#151465, François Gagné)
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.5.5 ===
-
-       * NEWS: Updates
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Add new functions.
-
-       * glib/gconvert.c: Fix doc comment for 
-       g_get_filename_charsets().
-
-       * glib/gconvert.c (g_filename_display_name): New function to
-       convert a filename to a UTF-8 string for display purposes.
-       (g_get_filename_charsets): New function to return the 
-       encodings which are tried when converting a filename to 
-       UTF-8.
-
-       * glib/goption.c (g_option_context_parse): Document that
-       this function may not return.
-
-2004-11-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h: Make gtkdoc-scan happy by removing spaces
-       between gchar and *.
-
-2004-11-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gstdio.c (g_lstat): Implement correctly also on Unix
-       systems without lstat(). (#157038, Morten Welinder)
-
-2004-11-01  Ray Strode <rstrode@redhat.com>
-
-       * glib/gkeyfile.c:
-       (g_key_file_get_locale_string): don't return an
-       error if we come across a value with invalid utf8 or
-       if we don't find a translated string. Just fallback
-       to the untranslated string (Mark McLoughlin, bug
-       #156790).
-       
-       * glib/gkeyfile.c:
-       (g_key_file_init), (g_key_file_clear): track the
-       actual start GKeyFileGroup rather than just its name
-       (g_key_file_parse_group): allow add_group() to
-       update the start group.
-       (g_key_file_remove_group_node): update the start
-       group if it gets removed (Mark McLoughlin, bug
-       #156790).
-
-       * glib/gkeyfile.c:
-       (g_key_file_parse_string_as_value): Don't escape
-       tabs and spaces in the middle of key values.
-
-2004-11-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c:
-       * glib/gdebug.h
-       * glib/gutils.c
-       * gobject/gtype.c
-       * gthread/gthread-posix.c
-       * tests/timeloop-closure.c
-       * tests/timeloop.c: Fix sparse warnings.  (#157014, Kjartan Maraas)
-
-2004-11-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c: Documentation updates.
-
-       Handle conflicts between options in different groups. (#156808)
-       
-       * glib/goption.c (g_option_context_parse): When a long option does not
-       match exactly, try to parse it as --group-option.
-       (g_option_context_add_group): Warn if a group name conflict occurs.
-
-       * glib/goption.c (print_help): Print out the effective options, ie 
-       don't print shadowed short options, and for long options print
-       --group-option instead of --option if appropriate.
-
-2004-10-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gwin32.c: Add bits of markup to g_win32_get_windows_version()
-       docs.
-
-2004-10-31  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c: Document g_win32_get_windows_version().
-
-       * glib/gstdio.[ch]: Add g_lstat().
-
-2004-10-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c: Doc additions.
-
-       * glib/goption.c (parse_arg): Convert filenames to UTF-8 on
-       Windows.
-
-2004-10-29  Hans Breuer  <hans@breuer.org>
-
-       * glibconfig.h */makefile.msc.in : updated [and finally fixed my
-       script to produce ready to go de-in(ed) files, w/o autotools]
-
-       * */*.rc.in : updated copyrights to 2004
-
-       * glib/gutils.c : some CSIDL_* defines lacking from older SDK;
-       use the same fallback mecahnism as on *NIX where ever applicable
-
-2004-10-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/option-test.c: Add tests for the handling of
-       non-option arguments, "--" and G_OPTION_REMAINING.
-
-       * glib/goption.[hc]: #define G_OPTION_REMAINING, which is
-       a special long option name, which can be used for an option
-       in the main group which collects the non-option arguments.
-       It must be of type G_OPTION_ARG_STRING_ARRAY or 
-       G_OPTION_ARG_FILENAME_ARRAY. If the main group doesn't contain
-       an option whose name is G_OPTION_REMAINING, the non-option
-       arguments are left behind in argv as before.
-
-       * glib/goption.c: Add documentation.
-
-2004-10-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmessages.h: Mark g_assert_warning as G_GNUC_NORETURN,
-       to avoid compiler warnings.  (#156767, Owen Taylor)
-
-2004-10-29  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gstdio.c: Include also <direct.h> for mkdir() prototype
-       with MSVC. [156727, Kazuki IWAMOTO]
-
-       * glib/giochannel.h (g_io_channel_new_file): Redefine also
-       g_io_channel_new_file to the UTF-8 version on Win32. [156725,
-       Kazuki IWAMOTO)
-
-2004-10-28  Ray Strode  <rstrode@redhat.com>
-
-       * glib/gkeyfile.c
-       (find_file_in_data_dirs): clean up a leak (#156652,
-       Morten Welinder)
-       (g_key_file_load_from_fd): propagate fstat() error
-       conditions and retry read on EAGAIN (#156647, Morten
-       Welinder).  Return error if file is NOT regular, not if
-       it is regular (bug introduced from last commited bug
-       fix). 
-       (g_key_file_load_from_data_dirs): allocate enough space
-       for the terminating NULL.
-
-2004-10-28  Ray Strode  <rstrode@redhat.com>
-
-       * glib/gkeyfile.c: Don't use S_ISREG macro (#156728,
-       Kazuki IWAMOTO)
-
-2004-10-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstdio.c: Include galias.h before glib.h (#156697,
-       Christophe Fergeau)
-
-       * glib/gkeyfile.c: Add a missing "Since: 2.6" comment.
-
-2004-10-28  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gstdio.c: Include glib.h early to get G_OS_WIN32. Include
-       errno.h for errno.
-
-       * glib/gkeyfile.c: Include gstdio.h and use g_open().
-
-2004-10-27  Ray Strode  <rstrode@redhat.com>
-
-       * glib/gkeyfile.c:
-        (g_key_file_load_from_fd), 
-        (g_key_file_load_from_file): 
-        Move file is regular check to load_from_file to use
-        fstat() instead of race prone g_file_test().  Don't
-        clear/init until needed. Change error messages to be
-        more consistent.
-        (g_key_file_load_from_data),
-        (g_key_file_load_from_data_dirs),
-        (g_key_file_parse_data),
-        (g_key_file_get_value),
-        (g_key_file_get_string),
-        (g_key_file_set_string),
-        (g_key_file_get_string_list),
-        (g_key_file_set_string_list),
-        (g_key_file_set_locale_string),
-        (g_key_file_get_locale_string),
-        (g_key_file_set_locale_string_list),
-        (g_key_file_get_boolean),
-        (g_key_file_set_boolean),
-        (g_key_file_get_boolean_list),
-        (g_key_file_set_boolean_list),
-        (g_key_file_get_integer),
-        (g_key_file_get_integer_list),
-        (g_key_file_set_integer_list),
-        (g_key_file_remove_key):
-        Add more g_return_*if_fail checks for public functions.
-
-2004-10-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version.
-
-       * === Released 2.5.4 ===
-
-2004-10-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/abicheck.sh: Strip Win32 specific defs file syntax.
-
-       * NEWS: Updates. 
-
-2004-10-27  Matthias Clasen  <mclasen@redhat.com>
-
-       Introduce the idea of a filename encoding, which is 
-       *literally* the filename encoding on Unix. On Windows, 
-       use the Unicode name converted to UTF-8. (#101792,
-       Tor Lillqvist, Owen Taylor)
-       
-       * glib/gdir.[hc]: 
-       * glib/gconvert.[hc]: 
-       * glib/gfileutils.[hc]: 
-       * glib/gutils.[hc]: 
-       * glib/giowin32.c: On Windows, keep old ABI versions 
-       of GLib pathname api for DLL ABI stability. Use different 
-       names for the new-style UTF-8 versions. Hide this through 
-       a #define.
-
-       * glib/gstdio.[hc]: New files containing wrappers for
-       POSIX pathname api.
-
-       * glib/glib.symbols: Add new symbols.
-
-       * glib/makegalias.pl: Drop Win32 specific .def syntax,
-       include gstdio.h
-
-2004-10-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Fix includes. (#156500, #156499, 
-       Kazuki IWAMOTO)
-
-       * glib/Makefile.am (galias.h): Fix srcdir != builddir 
-       builds.  (#156447, Thomas Fitzsimmons)
-
-2004-10-26  Gora Mohanty  <gmohanty@cvs.gnome.org>
-
-       * configure.in: Added 'or' to ALL_LINGUAS.
-
-2004-10-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Include galias.h.
-       
-       * glib/gkeyfile.c (g_key_file_parse_value_as_comment): 
-       Don't compare strings and chars.
-
-       * glib/glib.symbols: Add new symbols.
-
-       * glib/gkeyfile.c (g_key_file_new): Fix docs.
-
-       * glib/gkeyfile.h: Use the same parameter names as in
-       the implementation and the docs.
-
-       * glib/gwin32.c (g_win32_get_windows_version): Make this
-       function thread-safe in the GLib style.
-       * glib/gthreadinit.h: 
-       * glib/gwin32.c (_g_win32_thread_init): New function to
-       initialize the version.
-       * glib/gthread.c (g_thread_init_glib): Call 
-       _g_win32_thread_init() from here.
-
-2004-10-26  Ray Strode  <rstrode@redhat.com>
-
-       * glib/gkeyfile.c: Add Matthias to "Written by" lines
-        (GKeyFileGroup): add field to hold comments about groups
-        (g_key_file_load_from_fd): return TRUE on success and
-        FALSE on failure.  Don't close fd's opened by other
-        parent function.  
-        (g_key_file_load_from_file): run FILE_IS_REGULAR test
-        before trying to open file, to save an fd from being
-        leaked (would probably be better to use fstat()). Close
-        fd when done with it. Return TRUE on success and FALSE
-        on failure.
-        (g_key_file_load_from_data): Return TRUE on success and
-        FALSE on failure.
-        (g_key_file_load_from_data_dirs): remove superfluous
-        const modifier.  Return TRUE on success and FALSE on
-        failure.  Stop trying to load files when one succeeds.
-        (g_key_file_parse_key_value_pair): don't validate input
-        for UTF-8 until users uses a getter that does
-        validation.  Don't leak copy of start_group_name.
-        (g_key_file_to_data): serialize new comment field for
-        groups.
-        (g_key_file_get_keys): Remove convenience code to let
-        NULL group mean start group.  Get rid of unneeded NULL
-        check before g_strdup.
-        (g_key_file_get_groups): Reverse groups list before
-        sending to user because it is maintained in backward
-        order internally. 
-        (g_key_file_get_value),
-        (g_key_file_set_value): add g_return checks at top of
-        public functions.
-        (g_key_file_get_string), 
-        (g_key_file_get_string_list): validate key value is UTF-8.
-        (g_key_file_[sg]et_*comment): new functions for
-        setting/getting comments
-        (g_key_file_remove_comment): new function to remove
-        comment block
-        (g_key_file_remove_key_value_pair_node): new function to
-        pull a key-value pair out of the list and free it.
-        (g_key_file_remove_group_node): call
-        g_key_file_remove_key_value_pair_node instead of 
-        freeing the list immediately to get better statistics
-        for approximate_size.
-        (g_key_file_remove_group): use lookup_group_node instead
-        of lookup_group to prevent a g_list_find call.
-        (g_key_file_add_key): report group also when unable to
-        find key.
-        (g_key_file_lookup_group_node): new function to make
-        getting the group node from a group name easier.
-        (g_key_file_lookup_group): use lookup_group_node under
-        the hood.
-        (g_key_file_lookup_key_value_pair_node): new function to
-        make getting the key-value pair from a group and key
-        name eaiser.
-        (g_key_file_parse_comment_as_value): new function to add '#' to the
-        beginning of every line.
-        (g_key_file_parse_value_as_comment): new function that
-        attempts to be the inverse of comment as value.
-
-2004-10-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c: 
-       * glib/gkeyfile.c: Don't include ctype.h needlessly.  (#156424,
-       Morten Welinder)
-
-       * tests/strtod-test.c (test_string): Improve error reporting.
-
-Mon Oct 25 15:05:18 2004  Manish Singh  <yosh@gimp.org>
-
-       * autogen.sh: rm autom4te.cache, since it might interfere with
-       differing autoconf versions.
-
-       * tests/child-test.c: use GINT_TO_POINTER for g_child_watch_add
-       user data.
-
-       * glib/gfileutils.c: G_IS_DIR_SEPARATOR is defined in gutils.h now,
-       don't redefine it here.
-
-2004-10-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_remove_group_node): Don't
-       destroy the lookup map if it is NULL.
-
-2004-10-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gasyncqueue.c, glib/gatomic.c, glib/gdate.c, 
-       glib/giochannel.c, glib/gmain.c, glib/gspawn.c, 
-       glib/libcharset/localcharset.c: Apply a patch to fix
-       sparse warnings. (#154696, Kjartan Maraas)
-
-       * glib/gnulib/g-gnulib.h: Undef libc functions before defining
-       them, since they may also be macros.  (#155177, Andrea Campi)
-
-       * glib/gkeyfile.h: 
-       * glib/gkeyfile.c: Add a parser for desktop entries and
-       similar files with a .ini-like syntax.  (#139974, Ray Strode)
-
-       * glib/glib.h: Include gkeyfile.h
-
-       * glib/Makefile.am (libglib_2_0_la_SOURCES): Add gkeyfile.c
-       (glibsubinclude_HEADERS): Add gkeyfile.h
-
-       * glib/gutils.c (_g_compute_locale_variants): Make this 
-       non-static and use it in gkeyfile.c
-
-2004-10-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/uri-test.c (run_uri_list_tests): Add some
-       uri list tests.c.
-
-       * glib/gconvert.h:
-       * glib/gconvert.c (g_uri_list_extract_uris): New function to
-       split a text/uri-list data into individual uris and strip comments.
-
-2004-10-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (get_change): Don't return the wrong 
-       change.  (#155856, Lucas Rocha)
-
-2004-10-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h (G_IS_DIR_SEPARATOR): 
-       * glib/gutils.c: Make public.  (#155589, Tim-Philipp Müller) 
-
-2004-10-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmain.c (g_child_watch_add_full): 
-       * glib/gmain.c (g_child_watch_add): Document that GLib supports only
-       a single callback per pid. (#154828, Gustavo Carneiro)
-
-2004-10-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gfileutils.c: Fix some C99isms.  (#154676, Kjartan Maraas)
-
-2004-10-05  Anders Carlsson  <andersca@gnome.org>
-
-       * glib/goption.c: (g_option_context_parse):
-       Add check for if argc is 0.
-       
-       * tests/option-test.c: (empty_test3), (main):
-       Add test case.
-       
-2004-10-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Update
-
-2004-10-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmem.c (g_mem_set_vtable): Only set vtable_set if the
-       vtable is set.  (#154352, Philippe Blain)
-
-2004-10-03  Anders Carlsson  <andersca@gnome.org>
-
-       * glib/goption.c: (parse_arg):
-       Set arg_data on filenames. (Discovered by Mats-Ola Persson).
-       
-       * tests/option-test.c: (arg_test3), (ignore_test3), (main):
-       Add test for filename args.
-       
-2004-10-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/goption.c (g_option_context_parse): Use
-       g_path_get_basename() instead of strrchr(), so that either slash
-       is accepted on Windows.
-
-2004-09-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gfileutils.c: Convert filenames to UTF-8 before 
-       putting them in GErrors.  (#154078, Morten Welinder)
-
-2004-09-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Add g_assert_warning.
-
-       * glib/gmessages.h:
-       * glib/gmessages.c (g_assert_warning): Treat g_assert 
-       in the same way as g_return_if_fail and move the string 
-       constants into a helper function, which also takes 
-       care of removing the "IA__" prefix from internal aliases.
-
-       * glib/gmessages.h: Move the declaration of 
-       g_return_if_fail_warning() out of the ifdefs, so that
-       building with G_DISABLE_ASSERT works.
-
-2004-09-27  Murray Cumming  <murrayc@murrayc.com>
-
-       * glib/goptions.[h|c], glib/glib.symbols: Rename 
-       g_context_option_error_quark() to g_option_error_quark(), because that 
-       is consistent with normal naming conventions, and what bindings expect.
-
-.2004-09-26  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix #153649, Hidetaka Iwai:
-       
-       * glib/goption.c (parse_long_option): Don't forget to set parsed
-       to TRUE when parsing a long ARG_NONE option. 
-       (free_changes_list): Fix the memory management for string
-       and filename arrays.
-
-2004-09-22  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gmessages.c: [Win32] Don't ever open a console
-       window. (Which we used to do if standard output or standard error
-       are invalid, as they are for GUI applications.) These console
-       windows that open up unexpectedly have caused endless amounts of
-       confusion among end-users. (#141102, #151175)
-
-       Don't output the process id on Windows. Only output the program
-       name. If not set with g_set_prgname(), fetch the application
-       executable's name and use that.
-
-Mon Sep 20 00:35:14 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutf8.c (g_utf16_to_utf8): Add a note explaining how to
-       convert UTF-16 byte stream of ambiguous endianness.  (#152954,
-       Linus Walleij)
-
-Mon Sep 20 00:17:37 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/option-test.c (error_test3_post_parse): 
-       * tests/option-test.c (error_test2_post_parse): 
-       * tests/option-test.c (error_test1_post_parse): Don't call 
-       g_set_error () with a NULL format.  (#153103, Robert Ögren) 
-
-Mon Sep 20 00:13:48 2004  Matthias Clasen  <maclas@gmx.de>
-
-       Make GOption remove long options completely. (#153113, Robert Ögren)
-
-       * glib/goption.c (parse_long_option): Fix a wrong index.
-
-       * tests/option-test.c (ignore_test3): Test handling of unknown
-       options some more.
-
-Sun Sep 19 23:56:15 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/goption.c (g_option_context_parse): Call error_func
-       on error, not post_parse_func again.  (#153107, Robert Ögren)
-
-Sun Sep 19 23:52:35 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmessages.c (mklevel_prefix): 
-       * glib/gmessages.c (g_logv): Fix the types of some variables
-       to be GLogLevelFlags instead of guint.  (#153042, Philippe Blain)
-
-2004-09-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * Version bump
-
-       * === Released 2.5.3 ===
-
-2004-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: More updates.
-
-Thu Sep 16 18:42:46 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/abicheck.sh: don't hardcode lengths for cut, instead split on
-       the third field.
-
-Thu Sep 16 18:15:32 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gstrfuncs.c (g_strncasecmp): Make it take a guint for number
-       of characters, instead of a gsize. Technically this is incorrect,
-       but this makes it match the prototype, and this is a deprecated
-       function anyway.
-
-2004-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/Makefile.am (EXTRA_DIST): Add abicheck.sh
-
-Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>
-
-       Implement the same PLT reduction technique used in GTK+:
-       
-       * glib/glib.symbols: Master list of symbols
-
-       * glib/makegalias.pl: Perl script which creates galias.h
-
-       * glib/abicheck.sh: Compares actual exports against glib.symbols 
-
-       * glib/glib.def: Removed. This file is now generated from
-       glib.symbols
-       
-       * glib/Makefile.am: Add rules to generate galias.h and glib.def,
-       and add abicheck.sh to TESTS. Don't export _-prefixed symbols.
-       
-       * configure.in: Add --disable-visibility to suppress the 
-       use of ELF visibility attributes.
-
-       * glib/*.c: Include galias.h
-
-2004-09-15  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c (g_win32_error_message): Convert message to
-       UTF-8. Technically this breaks API, but the actual use cases in
-       gdk/win32 have assumed it is UTF-8 anyway. Fix
-       documentation. (#152618, Kazuki Iwamoto)
-
-       * glib/gwin32.h: Don't define ftruncate as a macro. Was never a
-       good idea, and it clashes with newest mingw headers, which have a
-       ftruncate implementation as an inline function. Thanks to Dominik R.
-
-       * glib/gwin32.c (g_win32_ftruncate): Simplify implementation, just
-       call _chsize() in the C library.
-
-2004-09-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Update.
-
-2004-09-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmessages.c (g_return_if_fail_warning): Strip the
-       prefix "IA__" from function names, since that is what
-       GTK+ uses for the PLT-reduction aliases. 
-
-Thu Sep  9 13:52:26 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmessages.c (g_return_if_fail_warning): 
-       Include implementation of g_return_if_fail_internal().
-
-Thu Sep  9 10:37:41 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmessages.h (g_return_[val_]if_fail): Use
-       a helper function to reduce code size; omit FILE/LINE
-       when we have __PRETTY_FUNCTION__.
-
-2004-09-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_get_home_dir): Remove a misleading comment.
-
-Thu Sep  9 00:10:40 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.h: 
-       * glib/gstrfuncs.c (g_strv_length): Add a function to 
-       calculate the length of a NULL-terminated string 
-       array.  (#150455, Tim-Philipp Müller)
-
-       * tests/strfunc-test.c (main): Add a test for g_strv_length().
-
-2004-09-08  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (guess_category_value): On Win32, as last resort
-       call g_win32_getlocale() to get the current thread locale. There
-       usually aren't any POSIXish LANG or LC_* environment variables
-       present on Windows machines.
-
-       * glib/glib.def: Add g_get_language_names.
-
-2004-09-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h: 
-       * glib/gutils.c (g_get_language_names): Add a function to
-       return a list of applicable locale names.  (#95587, 
-       Hidetoshi Tajima)
-       (guess_category_value, compute_locale_variants):
-       (explode_locale, unalias_lang, read_aliases): Helper 
-       functions for g_get_language_names()
-
-       * tests/testglib.c (main): Show the results of 
-       g_get_language_names()
-
-Sun Sep  5 01:46:11 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib.def: 
-       * glib/gmessages.h: 
-       * glib/gmessages.c (g_log_set_default_handler): New
-       function to install an alternate default log 
-       handler.  (#66387, Darin Adler)
-
-2004-09-03  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Update.
-
-Wed Sep  1 20:22:39 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gdate.h:
-       * glib/gdate.c (g_date_get_iso8601_week_of_year): Add
-       a function to calculate the ISO 8601 week number of 
-       a date.  (#92579, Niklas Lundell)
-
-2004-09-01  Anders Carlsson  <andersca@gnome.org>
-
-       * glib/goption.c: (g_option_context_parse):
-       Set program name before calling the pre-parse hooks.
-       
-2004-09-01  Anders Carlsson  <andersca@gnome.org>
-
-       * glib/goption.c: (g_option_context_free), (print_help),
-       (g_option_context_parse):
-       Handle option contexts without a main group.
-       
-       * tests/option-test.c: (empty_test2), (main):
-       Add test case for that.
-       
-2004-08-30  Anders Carlsson  <andersca@gnome.org>
-
-       * glib/goption.c: (g_option_context_parse):
-       Set prgname to <unknown> if argc and argv are NULL.
-       
-       * tests/option-test.c: (empty_test1), (main):
-       Add test case for that.
-       
-Sun Aug 29 23:58:38 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/ghash.c (g_hash_table_lookup): Point to 
-       g_hash_table_lookup_extended() for differentiation between
-       not-found and value-is-NULL.  (#150960, Morten Welinder)
-
-2004-08-27  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix #151193, Stepan Kasal:
-       
-       * glib/gfileutils.c (g_file_error_from_errno): 
-       * glib/gfileutils.h (enum GFileError): Add G_FILE_ERROR_NOSYS.
-
-Fri Aug 27 00:45:41 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/goption.c (g_option_context_parse): Set the program name
-       from argv[0], noticed by Masatake YAMATO.
-
-2004-08-26  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/testglib.c (main): Test the new XDG basedir functions.
-
-2004-08-25  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c (g_win32_get_windows_version): New
-       function. Returns the Windows version code like GetVersion(),
-       except that one can pretend to be running on Win9x by setting the
-       G_WIN32_PRETEND_WIN9X environment variable. This is mainly for
-       debugging purposed.
-
-       * glib/gwin32.h: Declare it. Define macros G_WIN32_WINDOWS_IS_NT_BASED 
-       and G_WIN32_HAVE_WIDECHAR_API to test Windows features at run-time.
-
-2004-08-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Post-release version bump.
-
-       * === Released 2.5.2 ===
-
-Wed Aug 25 00:25:08 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * NEWS: Update for 2.5.2
-
-2004-08-25  Tor Lillqvist  <tml@iki.fi>
-
-       Win32 equivalences of the XDG folders
-       
-       * glib/gutils.c (get_special_folder): New function, calls
-       SHGetSpecialFolderLocation() to get path to places like the My
-       Documents folder.
-       (g_get_any_init): Use CSIDL_PROFILE as HOME if not
-       overridden by env vars.
-       (g_get_user_data_dir): Use CSIDL_PERSONAL.
-       (g_get_user_config_dir): Use CSIDL_APPDATA.
-       (g_get_user_cache_dir): Use CSIDL_INTERNET_CACHE. Debatable...
-       (g_get_system_data_dirs): Use CSIDL_COMMON_APPDATA and
-       CSIDL_COMMON_DOCUMENTS.
-       (g_get_system_config_dirs): Use CSIDL_COMMON_APPDATA.
-
-       * configure.in: Add -lole32 to G_LIBS_EXTRA for mingw.
-
-       * glib/glib.def: Add the new functions.
-
-Mon Aug 23 16:16:35 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/goption.c (g_option_group_add_entries): remove unused
-       variable.
-
-Mon Aug 23 01:35:18 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.c (g_get_user_cache_dir): 
-       * glib/gutils.c (g_get_user_config_dir): 
-       * glib/gutils.c (g_get_user_data_dir): Don't call g_get_home_dir()
-       while holding the g_utils_global lock, simply use g_home_dir. 
-       (#150695, Jody Goldberg)
-
-2004-08-21  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c (g_io_win32_finalize): Tell select_thread to
-       break out of its loop. Prevents a thread leak. (#147392, Peter
-       Zelezny)
-
-       * glib/gunicollate.c (g_utf8_collate_key): Guard against bogus
-       return value from strxfrm(). For instance Microsoft's strxfrm()
-       returns INT_MAX on errors. (#141124)
-
-2004-08-19  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gunicollate.c (g_utf8_collate, g_utf8_collate_key): Correct
-       source and destination charset parameter order in g_convert()
-       call. (#150394, possibly also #141124)
-
-2004-08-20  Jon K Hellan  <hellan@acm.org>
-
-       * glib/goption.h: Remove trailing commas.
-
-2004-08-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Check for all four values of the
-       visibility attribute; gcc 2.96 seems to miss 
-       "default".  (#150379, Vincent Noel)
-
-2004-08-16  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "bs" to ALL_LINGUAS.
-
-2004-08-11  Ray Strode  <rstrode@redhat.com>
-
-       * docs/reference/glib/glib-sections.txt: 
-       * glib/gutils.[ch] (g_get_user_data_dir),
-       (g_get_user_config_dir), (g_get_user_cache_dir),
-       (g_get_system_data_dirs), (g_get_system_config_dirs): 
-       Add new XDG basedir API (bug 139973).
-
-2004-08-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmacros.h: Remove G_GNUC_INTERNAL from here.
-       * configure.in: Check whether the visibility attribute
-       works and define G_HAVE_GNUC_VISIBILITY and 
-       G_GNUC_INTERNAL in glibconfig.h correspondingly.
-
-Mon Aug  9 17:37:56 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmacros.h (G_GNUC_INTERNAL): Define empty if gcc is too old.
-
-2004-08-06  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in glib/glib.def : updated
-
-       * glib/gutils.c : avoid 'inconsitent dll linkage' by not
-       defining extern char** environ with msvc
-
-2004-08-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-gettext.m4: Require ngettext.  (#123847,
-       Danilo Segan)
-
-Thu Aug  5 20:53:00 2004  Ray Strode  <rstrode@redhat.com>
-
-       * glib/gutils.h (g_get_codeset): strdup result so caller
-       doesn't free internally managed memory.
-
-2004-08-04  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.def: Add glib_check_version.
-
-       * config.h.win32.in: Update to match what configure produces. Add
-       the G_ATOMIC_*. Define G_ATOMIC_I486 when compiling with gcc. Move
-       HAVE_INT64_AND_I64 to where the configure script puts it. Add
-       HAVE_INTTYPES_H_WITH_UINTMAX. Define intmax_t as __int64 for MSVC.
-
-Tue Aug  3 16:19:44 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/goption.c: Mark user visible strings for translation.
-
-Tue Aug  3 15:50:55 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/goption.[hc]: Pedantically use g types throughout.
-
-Tue Aug  3 14:58:20 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gutils.h: 
-       * glib/gutils.c (glib_check_version): New function to
-       check the version of GLib at runtime.  (#149175, Michael Natterer)
-
-2004-08-03  Anders Carlsson  <andersca@gnome.org>
-
-       * glib/goption.h:
-       * glib/gtypes.h:
-       Move GTranslateFunc to gtypes.h
-       
-2004-08-02  Anders Carlsson  <andersca@gnome.org>
-
-       * glib/Makefile.am:
-       * glib/glib.h:
-       * glib/goption.c:
-       * glib/goption.h:
-       * tests/.cvsignore:
-       * tests/Makefile.am:
-       * tests/option-test.c: 
-       Add GOption.
-
-2004-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmacros.h: Add a G_GNUC_INTERNAL macro to mark function
-       declarations as internal and avoid PLT indirections for 
-       them.  (#145465, Arjan van de Ven)
-
-       * glib/gunicodeprivate.h: 
-       * glib/gthreadinit.h: 
-       * glib/gmessages.h: 
-       * glib/gdebug.h: 
-       * glib/gconvert.c: Use G_GNUC_INTERNAL for _g_charset_get_aliases(),
-       _g_debug_init(), _g_log_fallback_handler(), _g_mem_thread_init(),
-       _g_messages_thread_init(), _g_convert_thread_init(), 
-       _g_rand_thread_init(), _g_main_thread_init(), _g_atomic_thread_init(),
-       _g_mem_thread_private_init(), _g_messages_thread_private_init(),
-       _g_utf8_normalize_wc() and _g_unichar_combining_class().
-
-       * glib/gatomic.c: Include gthreadinit.h here to see the declaration
-       for _g_atomic_thread_init().
-
-Sun Aug  1 13:19:18 2004  Manish Singh  <yosh@gimp.org>
-
-       * tests/uri-test.c: move newline printing from run_from_uri_tests()
-       to run_roundtrip_tests().
-
-2004-08-01 Matthias Clasen  <mclasen@redhat.com>
-
-       * Post-release version bump
-
-        * === Released 2.5.1 ===
-
-Sat Jul 31 23:17:05 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * NEWS: Updates.
-
-Sat Jul 31 20:33:07 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/shell-test.c: Include a test involving consecutive
-       backslashes followed by a non-escaped doublequote.
-       
-       * glib/gshell.c (tokenize_command_line): Count consecutive
-       backslashes mod 2 to detect escaped doubleqotes.  (#127306)
-
-2004-07-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c (g_unescape_uri_string): Don't validate
-       for UTF-8 here.  (#148420, Robert Ögren)
-
-       * tests/uri-test.c (run_roundtrip_tests): Add tests for 
-       roundtrip compatibility. Going from filename to uri and 
-       back should always give you the same filename back. 
-
-2004-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/markups/valid-{9,10,11}.gmarkup: 
-       * tests/markups/fail-{37,38,39}.gmarkup: Tests for handling
-       of whitespace inside tags.
-
-       * glib/gmarkup.c (enum GMarkupParseState): Add 
-       STATE_AFTER_ATTRIBUTE_NAME and STATE_AFTER_CLOSE_TAG_NAME.
-       (g_markup_parse_context_parse): Accept whitespace between
-       attribute names, '=' and attribute values and between
-       close tag name and '>'. (#148646, Hiroyuki Ikezoe)
-
-Tue Jul 27 02:01:31 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gstrfuncs.c (g_strsplit_set): s/g_strsplit/g_strsplit_set/
-       as well.
-
-Sat Jul 24 17:50:07 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * glib/gstrfuncs.c (g_strsplit_set):
-       s/g_strtokenize/g_strsplit_set/ in docs.
-
-Fri Jul 23 10:37:50 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/type-test.c (main): Actually test G_MAXSIZE with
-       a gsize variable.
-
-2004-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix #132858, Sven Neumann, patch by James Henstridge:
-       
-       * glib-gettextize.in: modify so that mkinstalldirs will 
-       get installed into auxdir.
-
-       * Makefile.am (gettext_SCRIPTS): install mkinstalldirs.
-
-2004-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix #147651, reported by Oliver Guntermann:
-
-       * glib/gprintfint.h (_g_vasprintf): Don't wrap vasprintf(),
-       _g_gnulib_vasprintf() in a macro, since they behave 
-       differently wrt. to memory allocation.
-
-       * glib/gprintf.c (g_vasprintf): Instead, differentiate 
-       here between the three cases: system vasprintf(), 
-       _g_gnulib_vasprintf(), no vasprintf().  
-
-2004-07-20  Crispin Flowerday  <gnome@flowerday.cx>
-
-       * NEWS: Fix a typo in my name
-
-Tue Jul 20 04:31:40 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * configure.in: Bump version number
-
-Sun Jul 18 19:40:30 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * === Released 2.5.0 ===
-
-       * Makefile.am (BUILT_EXTRA_DIST): move gtk-doc.make here.
-
-Sun Jul 18 01:40:28 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * NEWS: Updates for 2.5.0
-
-Mon Jul 12 00:02:40 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gi18n-lib.h: Remove the ENABLE_NLS check here as well.
-
-2004-07-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdir.c (g_dir_open): Convert filename to UTF-8 
-       before using it in the error message.  (#146054, Federico
-       Mena Quintero)
-
-Thu Jul  8 00:54:32 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gi18n.h: Remove the ENABLE_NLS check, since GLib can't
-       be built without anyway.  (#135899, Murray Cumming)
-
-Mon Jul  5 18:50:27 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmessages.h (g_debug): Complete the g_log() 
-       family.  (#135730, Sven Herzberg)
-
-Mon Jul  5 18:42:30 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gnulib/Makefile.am (INCLUDES): Add top_srcdir to 
-       make srcdir != . work.  (#145166, Kaz Sasayama)
-
-Sun Jul  4 01:52:18 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * configure.in: Use a small test library instead of
-       libpthread.so for testing RTLD_GLOBAL brokenness.  (#139567,
-       Julio M. Merino Vidal)
-       
-2004-07-02  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/gatomic.c: Rename __asm to __asm__ and __volatile to
-       __volatile__ to make the file consistent. Spotted by Benoit
-       Carpentier <gtkool_2kx@yahoo.fr>.
-
-2004-07-01  John Ehresman  <jpe@wingide.com>
-
-       * glib/giowin32.c (g_io_channel_win32_init, g_io_win32_free)
-       Initialize reset_send & reset_recv fields and don't close
-       sockets unless they were created.  (#145153)
-
-Fri Jun 11 22:56:46 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gscanner.c (g_scanner_get_token_ll): Ignore a 
-       missing newline at EOF for single line comments.  
-       (#83674, Sven Neumann)
-
-Thu Jun 10 23:38:02 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/printf-test.c (TEST): Actually set any_failed on 
-       failure.  (#143552, Philippe Blain)
-
-2004-06-09  Federico Mena Quintero  <federico@ximian.com>
-
-       * tests/uri-test.c (to_uri_tests): Fix expected results (ha ha)
-       for URIs that *should* have been invalid, or viceversa.
-       (from_uri_tests): Likewise.
-
-2004-06-07  Federico Mena Quintero  <federico@ximian.com>
-
-       Fixes #140532.
-
-       * glib/gconvert.c (is_asciialphanum): Renamed from
-       is_escalphanum(); ensures that this is an ASCII character.
-       (is_asciiescalpha): Renamed from is_escalpha().
-       (hostname_validate): Use the two functions above.
-       (g_filename_to_uri): Don't convert the filename to UTF-8.
-       (g_filename_from_uri): Don't convert the filename from UTF-8.
-
-Mon Jun  7 22:25:24 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * tests/run-markup-tests.sh: Default to silence, but support
-       a -v argument to get the old output back. 
-
-2004-06-06  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_get_any_init): Check home for being
-       NULL. (#143812, Ivan Wong)
-
-Sun Jun  6 15:23:00 2004  Pawan Chitrakr  <pawan@nplinu.org>
-
-       * configure.in: Added "ne" (Nepali) in ALL_LINGUAS
-
-Fri Jun  4 19:26:47 2004  Manish Singh  <yosh@gimp.org>
-
-        * glib/galloca.h: cpp #directives should always have the "#" in the
-        first column of the the line. Do that for "#pragma alloca". Fixes
-        bug #143744.
-
-Wed Jun  2 00:57:16 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gtypes.h: Use higher precision for the mathematical
-       constants.  (#141941, Morten Welinder)
-
-Tue Jun  1 22:01:40 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gmarkup.c (advance_char): Fix an off-by-one error 
-       in g_markup_parse_context_parse().  (#142794, Morten Welinder)
-
-Sun May 16 23:23:29 2004  Matthias Clasen  <maclas@gmx.de>
-
-        Merged from 2.4:
-       
-       * glib/gcompletion.c (g_completion_add_items):
-       (g_completion_remove_items): Remove unnecessary 
-       checks.  (#142559, Morten Welinder)
-
-2004-05-15  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_get_any_init): [Win32] Only believe HOME if it
-       is an absolute path and exists. (#138618)
-
-2004-05-14  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gnulib/vasnprintf.c (vasnprintf): Handle empty digit string
-       for precision correctly. (#142400)
-
-       For backward compatibility with the Trio implementation, make "ll"
-       format modifer work on Win32, too. Change into "I64" before
-       passing to the system printf. (#142433)
-
-       * tests/printf-test.c (main): Add tests for the above.
-
-2004-05-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Merge from 2.4:
-       
-       * glib/gmain.c (block_source, unblock_source): Make these 
-       static.  (#142230, Morten Welinder)
-
-2004-05-10  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/giowin32.c (g_win32_print_gioflags): Remove two duplicated
-       lines. Thanks to Benoît Carpentier.
-
-Sun May  9 02:04:14 2004  Matthias Clasen  <maclas@gmx.de>
-
-       Merge from 2.4:
-       
-       * glib/guniprop.c (g_utf8_casefold): Avoid an unnecessary
-       memleak.  (#141998, Nikolai Weibull)
-
-Sat May  8 23:02:26 2004  Matthias Clasen  <maclas@gmx.de>
-
-       Merge from 2.4:
-       
-       * glib/gutils.h: Remove vestigial g_get_codeset().
-       * glib/gutils.c (g_get_codeset): Call g_get_charset().
-       (#137703, Owen Taylor)
-
-2004-05-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version number to 2.5.0.
-
-Wed May  5 23:35:44 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/gconvert.c (g_filename_from_uri): Quote the file
-       scheme to mark it as untranslatable. String change.  
-       (#133144, Danilo Segan)
-
-2004-05-03  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * configure.in: Added Walloon (wa) to ALL_LINGUAS
-
-Sun May  2 03:51:59 2004  Manish Singh  <yosh@gimp.org>
-
-       * glib/gtypes.h: check for __pentium4__ when deciding whether to
-       use bswap for GUINT32_SWAP_LE_BE_IA32(). Fixes bug #141620.
-
-2004-05-01  Hans Breuer  <hans@breuer.org>
-
-       * glib/gnulib/Makefile.am : added makefile.msc to EXTRA_DIST
-       fixes #141563, Steve Lhomme
-
-2004-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.4.1 ===
-
-       * configure.in: Version 2.4.1, interface age 1. 
-
-       * NEWS: Updates
-       
-2004-04-25  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c (g_win32_get_package_installation_subdirectory):
-       Plug memory leak. (#140770, John Ehresman)
-
-2004-04-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/libcharset/localcharset.c (_g_locale_get_charset_aliases): 
-       Reinstate LIBCHARSET_ALIAS_DIR support which got lost at some
-       point.  (#139134, Piotr Klaban)
-
-       * glib/gconvert.c (open_converter): Don't call g_strerror() here, 
-       since it can lead to infinite recursion.  (#139133, Piotr Klaban)
-
-2004-04-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/testglib.c (main): Trivial warning fix.  (#140345)
-
-       * tests/queue-test.c (main): Add some tests for off-by-one errors.
-
-       * glib/gqueue.c (g_queue_pop_nth_link): Fix an off-by-one 
-       error.  (#139703, Philippe Blain)
-
-       * tests/testglib.c (main): Add testcases for g_message() involving
-       non-printable and unsafe characters.
-
-       * glib/gmessages.c (escape_string): Don't assume that
-       string->str remains unchanged over g_string_insert() 
-       calls.  (#139030, Christophe Saout)
-
-       * glib/gstrfuncs.c (g_ascii_strtod): Fix problems when a 
-       locale-specific decimal separator directly follows a 
-       number.  (#138424, Nickolay V. Shmyrev)
-
-       * tests/strtod-test.c (main): Add some more testcases.
-
-       * glib/gmain.c (g_main_context_query): Only set time_is_current to 
-       FALSE if context->timeout is not zero.  (#137795, Christian Krause)
-
-2004-04-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/printf-test.c (main): Comment out a nonessential testcase
-       which fails on HP-UX.  (#136283, Jonas Jonsson)
-
-2004-04-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/patterntest.c (main): Add tests for the empty pattern.
-
-       * glib/gpattern.c (g_pattern_spec_new): Don't read and write out 
-       of bounds when the pattern is empty.  (#140032, Stanislav Brabec,
-       Stefan Fent)
-
-2004-04-10  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gwin32.c (g_win32_getlocale): Add new language and
-       sublanguage codes, from GNU gettext. (#137958)
-       
-       * glib/giowin32.c
-       * glib/gmain.c
-       * glib/gstrfuncs.c
-       * glib/gthread.c: Decorating variable definitions with
-       __declspec(dllexport) causes problems on Cygwin build, and isn't
-       really needed for a native Win32 build with mingw or MSVC, so
-       remove. (#138402, Roger Leigh)
-
-       * glib/libcharset/localcharset.c: Use Win32-specific code also on
-       Cygwin.
-       * tests/uri-test.c: Don't assume that local filenames are in UTF-8
-       on Cygwin, either. (#138412, Roger Leigh)
-
-2004-04-08  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-        * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
-
-2004-04-03  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Remove AC_CYGWIN, obsolete. Don't let pthreads be
-       found on Cygwin, they don't work. (#138401, Roger Leigh)
-
-2004-03-31  Tor Lillqvist  <tml@iki.fi>
-
-       * tests/spawn-test-win32-gui.c: Minor Cygwin fix. (#138405, Roger
-       Leigh)
-
-       * tests/unicode-encoding.c (process): Use UTF-16LE explicitly also
-       on Cygwin. (#138423, Roger Leigh)
-
-2004-03-30  Adam Weinberger  <adamw@gnome.org>
-
-       * configure.in: Added en_CA to ALL_LINGUAS.
-
-2004-03-21  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_path_get_dirname): Fix Win32 behaviour in some
-       cases where a drive letter is present. For 'a:' or 'a:foo', return
-       'a:.'. This is mostly just for consistency with the behaviour
-       without a drive letter. But very important is to for 'a:\foo' or
-       'a:\', return 'a:\', and not 'a:'. (Ditto for forward slashes
-       instead of backslashes.) (#137316)
-
-       * tests/dirname-test.c (main): More complete testing on Win32. If
-       a test fails, include expected and actual result in error message.
-
-Fri Mar 19 15:21:09 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gmain.c: Fix the accidental revert of the
-       fixes from #112222 that happened when the GChildWatch
-       code was added. (Caught by Christian Persch)
-
-Fri Mar 19 11:07:06 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * tests/atomic-test.c (main): Make computation
-       of "biggest_pointer" vaguely more portable.
-       (#137498, Jonas Jonsson)
-
-2004-03-16  Tor Lillqvist  <tml@iki.fi>
-
-       * configure.in: Define HAVE_INT64_AND_I64 also in the mingw (gcc
-       on Win32) case, where the 64-bit type is called long long, but the
-       system printf/scanf format modifier for 64-bit integers is still I64.
-
-2004-03-16  Gareth Owen  <gowen72@yahoo.com>
-
-       * configure.in: Added en_GB to ALL_LINGUAS
-
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
deleted file mode 100644 (file)
index 999078c..0000000
+++ /dev/null
@@ -1,1483 +0,0 @@
-2005-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.8.0 ===
-
-       * NEWS: Updates
-
-2005-08-12  Tim-Philipp Müller  <tim at centricular dot net>
-
-       * gobject/genums.c: (g_flags_get_first_value): Special-case flag
-         value of 0. Instead of returning the first random GFlagsValue
-         we come across, return the GFlagsValue for 0 if it exists or
-         NULL if it does not exist. Never return the GFlagsValue for 0
-         if the requested flags value is nonzero.
-
-2005-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version to 2.8.0
-
-2005-08-11  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (g_get_any_init): Use "localhost" as fallback for
-       g_get_host_name(), not "unknown".
-
-2005-08-10  Stepan Kasal  <kasal@ucw.cz>
-
-       Fix typos: Invokation --> Invocation (in various places)
-
-2005-08-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gfileutils.c (g_build_path_va, g_build_pathname_va):
-       Take a va_list*, not a va_list, to avoid compiler warnings
-       about uninitialized variables.
-
-2005-08-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/gobject/Makefile.am (test_programs): Add it here.
-
-       * tests/gobject/gvalue-test.c: Beginning of a test suite
-       for GValue.
-
-       * NEWS: Updates
-
-2005-08-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (_g_compute_locale_variants): Initialize
-       variables to not make gcc nervous.
-
-2005-08-08  Manish Singh  <yosh@gimp.org>
-
-       * glib/abicheck.sh: remove stray -V option to grep so it actually
-       works.
-
-2005-08-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/convert-test.c: Enable the endianness test.
-
-       * glib/gconvert.c: Make the caching of iconv descriptors
-       optional.
-
-       * configure.in: Add an --enable-iconv-cache option, and
-       default to disabling iconv caching on new enough glibc.
-       Somebody with access to Solaris systems will need to test
-       if opening/closing of iconv descriptors is enough of
-       a performance problem to warrant the caching on that 
-       platform. Note that the caching is causing correctness
-       problems in some corner cases, thus turning it off
-       is desirable unless it has severe performance implications.
-
-       * tests/convert-test.c: Add a test for 
-       endianness handling.
-
-2005-08-08  Sunil Mohan Adapa  <sunil@atc.tcs.co.in>
-
-       * configure.in: Added "te" to ALL_LINGUAS.
-
-2005-08-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/Makefile.am: Add convert-test here.
-
-       * tests/convert-test.c: Add the beginning of a testsuite
-       for g_convert() and friends. 
-
-2005-08-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Include glib_on_error_halt.
-       
-       * glib/abicheck.sh: Also check exported variables.
-
-2005-08-05  Manish Singh  <yosh@gimp.org>
-
-       * tests/refcount/closures.c: remove unused n_threads variable.
-
-2005-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.7.7 ===
-
-       * NEWS: Updates
-
-2005-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols:
-       * glib/gatomic.[hc]: Always export g_atomic_int_get and
-       g_atomic_pointer_get as functions, even if we have macros,
-       to avoid changing the ABI depending on configuration.
-       
-       * glib/gatomic.c: Fix the s390 implementations of 
-       g_atomic_pointer_compare_and_exchange.
-
-2005-08-04  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.h: Move the G_BEGIN_DECLS/G_END_DECLS pair outside
-       the #if/#else/#endif block. Otherwise we had G_BEGIN_DECLS without
-       matching G_END_DECLS on Unix, and G_END_DECLS without matching
-       G_BEGIN_DECLS on Win32.
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.7.6 ===
-
-       * NEWS: Updates
-
-2005-08-03  Ross Burton  <ross@burtonini.com>
-
-       * docs/reference/glib/tmpl/windows.sgml:
-       Add a long description, pointing people at Cygwin for a complete
-       Unix library.
-
-       * glib/gutils.c:
-       Document return value of g_get_host_name().
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gatomic.c: Add native atomic operations
-       for s390.
-
-       * configure.in: ... and use them on s390.
-
-2005-08-03  Ross Burton  <ross@burtonini.com>
-
-       * glib/gstdio.c:
-       Fix DocBook tag typo. (#311966)
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstdio.h: Add G_BEGIN_DECLS/G_END_DECLS.  (#312424)
-
-2005-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c (g_convert_with_iconv): Don't go in an
-       infinite loop if the input text ends in an incomplete multibyte
-       character.  (#312402, Sebastien Bacher)
-
-       * Bump version
-
-       * === Released 2.7.5 ===
-
-       * NEWS: Updates
-
-2005-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c (g_convert_with_iconv, g_convert_with_fallback):
-       Cleanup converter state after the conversion. Document streaming
-       conversion pitfalls.  (#311337)
-
-2005-08-02  Tor Lillqvist  <tml@novell.com>
-
-       * tests/refcount/objects.c 
-       * tests/refcount/properties.c 
-       * tests/refcount/signals.c: Use g_usleep() instead of sleep() for
-       portability.
-
-Mon Aug  1 23:33:47 2005  Tim Janik  <timj@imendio.com>
-
-       * tests/refcount/closures.c: test high contention on closure
-       reference counts to trigger and catch non-atomic updates.
-
-       * tests/refcount/objects.c:
-       * tests/refcount/objects2.c: 
-       * tests/refcount/properties.c: 
-       * tests/refcount/properties2.c: 
-       * tests/refcount/signals.c:
-       fixed up test and threading fundamentals. variables accessed from all 
-       threads need to be volatile. context switches are enforced by using
-       g_thread_yield(), not g_usleep(1) which may result in busy waits on 
-       some platforms. for testcode, always consider all warnings and
-       critical messages fatal. issue the currently running program on
-       stdout. improved progress indicators.
-
-       * tests/refcount/properties.c:
-       * tests/refcount/objects.c:
-       don't overdo the number of testing threads to keep the testing machine
-       usable, 2 threads can produce as much contention as 20 if executing the
-       same code.
-
-       * tests/refcount/signals.c: only start 1 thread per object. GObject 
-       doesn't provide mutually exclusive object access, but only mutually
-       exclusive reference count modification.
-
-       * tests/Makefile.am: added closures test.
-
-2005-08-01  Tor Lillqvist  <tml@novell.com>
-
-       * tests/uri-test.c: Make it pass on Win32.
-       (from_uri_tests[]): Take into consideration that on Win32 we don't
-       return "localhost" hostnames.
-       (safe_strcmp_filename): New function that considers slash and
-       backslash equal on Win32.
-       (safe_strcmp_hostname): New function that considers "localhost"
-       equal NULL on Win32.
-       (run_roundtrip_tests): Use safe_strcmp_filename() and
-       safe_strcmp_hostname().
-
-Sun Jul 31 01:50:20 2005  Tim Janik  <timj@gtk.org>
-
-       * glib/gdataset.c:
-       moved G_DATALIST_*_POINTER() macros here, because proper use requires
-       the global g_dataset_global mutex to be acquired.
-       g_datalist_id_get_data():
-       g_datalist_unset_flags():
-       g_datalist_set_flags(): properly acquire and release dataset mutex.
-
-       * glib/gdatasetprivate.h: implement G_DATALIST_GET_FLAGS() via atomic
-       pointer access to account for memory barriers. moved all other macros.
-
-2005-07-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c: Include glibintl.h, not gi18n.h, noticed
-       by Dan Winship.
-
-       * configure.in: Try -mt as compiler flag for threads, needed
-       for the HP C compiler on HP-UX.  (#163051, Paul Cornett)
-
-       * glib/ghash.c (g_hash_table_foreach): Fix a typo in the 
-       docs.  (#311569, Ross Burton)
-
-2005-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version 
-
-       * === Released 2.7.4 ===
-
-       * NEWS: Updates
-
-2005-07-20  Manish Singh  <yosh@gimp.org>
-
-       * tests/refcount/signals.c: use G_CALLBACK for signal connections.
-
-2005-07-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gthreadpool.c (g_thread_pool_free): Don't get
-       stuck in here if immediate is TRUE.  (#310954, 
-       Hong Jen Yee)
-
-       * tests/threadpool-test.c (main): Test immediate == TRUE.
-
-2005-07-20  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.h (g_win32_get_system_data_dirs): Make this an
-       inline function. Define it only if G_CAN_INLINE and not
-       C++. (#173098)
-
-2005-07-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstring.c (g_string_chunk_insert_len): Avoid
-       an unnecessary strlen if len is -1.  (#169692, 
-       Benoit Dejean)
-
-       * glib/gatomic.c (g_atomic_pointer_compare_and_exchange): 
-       Fix g_atomic_pointer_compare_and_exchange on sparc64.
-       (#167572, Gert Doering)
-
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.7.3 ===
-       
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/Makefile.am (SUBDIRS): Add tests/refcount
-
-       * configure.in: Add tests/refcount
-
-       * tests/refcount/properties.c: Test property changes
-       from multiple threads.
-
-       * tests/refcount/signals.c: Test signal emission from
-       multiple threads.
-
-       * tests/refcount/objects.c: Test refcounting from 
-       multiple threads.
-
-       * tests/refcount/objects2.c: 
-       * tests/refcount/properties2.c: Tests to measure the 
-       overhead of threadsafe refcounting.
-       
-       * glib/giochannel.c (g_io_channel_ref, g_io_channel_unref): 
-       Use atomic operations to make refcounting
-       threadsafe.  (#166020, Wim Taymans)
-
-       * NEWS: Updates
-
-2005-07-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/spawn-test.c: 
-       * tests/uri-test.c: 
-       * tests/thread-test.c: 
-       * tests/queue-test.c: 
-       * tests/mainloop-test.c: 
-       * tests/iochannel-test.c: 
-       * tests/gio-test.c: 
-       * tests/child-test.c: Make the tests silent on success.
-
-2005-07-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gfileutils.c (g_mkdir_with_parents): Fix a 
-       typo.  (#310243, Richard Laager)
-
-       * glib/goption.c (g_option_group_add_entries): Warn if a
-       short name is not acceptable.
-
-2005-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.h (G_OPTION_FLAG_NOALIAS): 
-       * glib/goption.c: Add and implement a new flag
-       to turn off the automatic <groupname>- prefixing
-       for conflict resolution of long option names. (#171840,
-       Adam McLaurin)
-       
-       All optional callback arguments  (#308886, Pawel
-       Sliwowski)
-
-       * glib/goption.h (G_OPTION_FLAG_OPTIONAL_ARG): 
-       * glib/goption.c: Add and implement a new flag
-       to indicate that a callback *optionally* takes another
-       argument.
-
-       * tests/option-test.c: Add tests for optional arguments.
-
-2005-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gthread.c (g_static_rec_mutex_lock_full): Don't lock
-       if depth is zero.  (#310148, Wim Taymans)
-
-2005-07-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_listenv): Ignore anomalous environment
-       entries which are not of the form variable=value.  (#309859,
-       Morten Welinder)
-
-2005-07-09  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c: Totally rewritten socket channel
-       implementation. See discussion in bug #147392.
-
-       * configure.in: Don't use autoconf variables for the resource
-       object files on Win32 any longer. Instead handle that in the
-       Makefile.am files. Check for windres.
-
-       * glibconfig.h.win32.in: Minor tuning to match the
-       configure-produced glibconfig.h closely.
-
-       * glib/Makefile.am: Don't use the scripts in build/win32 to
-       compile glib.rc into a resource object file. (This means we lose
-       the build number increment magic, but I doubt it was that useful
-       anyway.) Instead use windres directly. To pass the normal .o file
-       produced by windres through libtool, which wants .lo files, pass
-       it directly to the linker using a -Wl option.
-
-       * glib/glib.rc.in: Thus replace BUILDNUMBER with 0.
-
-2005-07-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-       
-       * === Released 2.7.2 ===
-
-       * NEWS: Updates
-
-2005-07-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Make the size_t size detection work on AIX. 
-       (#309725)
-
-2005-07-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Require a newer gtk-doc.
-
-2005-07-01  Hans Breuer  <hans@breuer.org>
-
-       * glib/gmessages.c : include <process.h> for getpid()
-       * glib/gmappedfile.c : include <io.h> for close() etc.
-       * glib/makefile.msc.in : add    gmappedfile.obj
-
-2005-07-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_get_key_comment): 
-       (g_key_file_get_top_comment): Don't reverse the order of multiline 
-       comments.
-       (g_key_file_get_group_comment): Actually get the group comment.
-
-       * tests/keyfile-test.c (test_comments): Test that comments are
-       handled properly.  (#309263, Mikael Magnusson)
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.7.1 ===
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstring.c (g_str_hash): Fix portability issues.  
-       (#307064, Morten Welinder)
-
-       Apply a patch which may make GLib work on BeOS again.  
-       (#309157, Kian Duffy)
-
-       * glib/gmain.c: Update the BeOS includes.
-
-       * glib/gstdio.c: 
-       * glib/gutils.c (g_find_program_in_path): 
-       * glib/gbacktrace.c (g_on_error_stack_trace): Use the UNIX
-       implementation on BeOS, as well.
-
-       * configure.in: Don't put glib 1.0 into G_MODULE_LIBS, even
-       on BeOS.
-
-       * NEWS: Updates
-
-2005-06-26  Tor Lillqvist  <tml@novell.com>
-
-       * glib/Makefile.am: libtool installs/uninstalls the import
-       library, no need to do it ourselves. Do still install/uninstall
-       the .def file, though.
-
-       * glib/gmappedfile.c: Add Win32 implementation.
-       (g_mapped_file_free): Don't mention writable shared mappings in
-       the doc comment. Free the GMappedFile struct.
-
-       * tests/mapping-test.c (main): No kill() or SIGUSR1 on Win32, use
-       a flag file instead to stop the child. Use g_usleep() instead of
-       sleep().
-
-2005-06-24  Matthias Clasen  <mclasen@redhat.com>
-
-       Add an mmap() wrapper called GMappedFile. (#148218,
-       David Schleef, Behdad Esfahbod)
-       
-       * glib/gmappedfile.[hc]: New files.
-
-       * configure.in: Check for mmap.
-       
-       * glib/Makefile.am: Add new files.
-       
-       * glib/glib.symbols: Add new functions.
-
-       * glib/glib.h: Include gmappedfile.h
-
-       * tests/mapping-test.c: Tests for GMappedFile.
-
-       * tests/Makefile.am: Add new file.
-
-       * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Add --enable-man.
-
-2005-06-24  Tor Lillqvist  <tml@novell.com>
-
-       * glib/Makefile.am (install-libtool-import-lib): Current GNU tools
-       do understand the PRIVATE keyword.
-
-       * glib/gfileutils.c (g_mkdir_with_parents): Return error with
-       EINVAL also for empty pathnames.
-       (g_build_pathname_va): Fix typo.
-
-Thu Jun 23 15:52:08 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/gfileutils.c: g_build_filename_va is only use in the G_OS_WIN32
-       case, so compile it conditionally.
-
-2005-06-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/keyfile-test.c (test_group_remove): Don't leak
-       memory here.
-
-       * glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
-       leak output_path.  (#308546, Kjartan Maraas)
-
-       * glib/glib.symbols: 
-       * glib/gfileutils.h: 
-       * glib/gfileutils.c (g_build_pathv, g_build_filenamev): 
-       Variants of g_build_path() and g_build_filename()
-       which take a string array instead of varargs.  
-       (#149092, Todd A. Fisher)
-
-       * tests/strfunc-test.c: Add tests for g_build_pathv() 
-       and g_build_filenamev().
-
-2005-06-22  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gfileutils.c
-       * glib/gfileutils.h
-       * glib/glib.symbols
-       * tests/testglib.c: Rename g_makepath() to g_mkdir_with_parents().
-
-2005-06-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (parse_short_option, parse_long_option): 
-       Pass the option name also in the NO_ARG case.  (#308602,
-       Masatake YAMATO)
-       (parse_arg): Properly store changes for arrays.  (#308528,
-       Roger Leigh)
-
-2005-06-22  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gfileutils.c (g_makepath): New function. Creates a
-       directory including intermediate parent directories as
-       needed. (#60509)
-
-       * glib/gfileutils.h: Declare it.
-
-       * glib/gutils.c (g_get_host_name): New function. Returns the
-       machine's name, or one of its names. Document that it is
-       best-effort only, and not guaranteed to be unique or anything.
-       (g_get_any_init): Get the host name here. On Unix use
-       gethostname(), on Windows use GetComputerName(). (#5200)
-
-       * glib/gutils.h: Declare it.
-
-       * glib/glib.symbols: Add new functions.
-
-       * tests/testglib.c: Test g_makepath() and g_get_host_name().
-       
-2005-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.h: 
-       * glib/goption.c: Add G_OPTION_FLAG_NO_ARG and
-       G_OPTION_FLAG_FILENAME to allow greater control of
-       G_OPTION_ARG_CALLBACK options. (#302632, Dan Winship)
-
-       * tests/option-test.c: test callback args
-
-2005-06-14  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * configure.in: Added 'th' (Thai) to ALL_LINGUAS.
-
-2005-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-       * === Released 2.7.0 ===
-
-       * NEWS: Updates
-
-2005-06-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_parse_value_as_integer): Better
-       error checking. (#306389, Morten Welinder)
-
-       * glib/goption.c (parse_int): Set errno to 0 before calling
-       strtol.  (#306388, Morten Welinder)
-
-2005-06-09  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.h
-       * glib/gstdio.c
-       * glib/glib.symbols: Add a chdir() wrapper, too.
-
-       * glib/glib.symbols: Add g_win32_locale_filename_from_utf8().
-
-       * glib/gwin32.c (g_win32_locale_filename_from_utf8): Clarify doc
-       comment.
-
-2005-06-08  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (get_windows_directory_root): New helper function
-       on Win32, returns the root of the drive (or possibly share) where
-       the Windows directory is. (In the case of Terminal Server sessions
-       the Windows directory is a per-user folder.)
-       (g_get_any_init): Use get_windows_directory_root() as last resort
-       for both temp directory and home directory. g_get_home_dir() now
-       never returns NULL on Win32. Don't look at HOMEDRIVE and
-       HOMEPATH. HOME, USERPROFILE, CSIDL_PROFILE and Windows directory
-       drive root should be enough.
-
-2005-06-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: 
-       * glib/gunicode.h: 
-       * glib/gunicollate.c (g_utf8_collate_key_for_filename): 
-       New function to calculate collation keys which are more
-       suitable for sorting filenames.  (#172690, Ole Laursen)
-
-Fri May 27 17:18:00 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/goption.c (parse_short_option): initialize option_name
-       before using it.
-
-2005-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (parse_short_option, parse_long_option):
-       Return an error if an option is missing its argument.  (#305576,
-       Björn Lindqvist)
-
-       * tests/option-test.c (missing_arg_test): Add a testcase.
-
-Wed May 25 15:33:51 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/goption.c (print_help): rest_description should be const.
-
-2005-05-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gunidecomp.c (combine_hangul): Don't eat Hangul 
-       when normalizing.  (#301742, reported by Christian Biere,
-       patch by Noah Levitt)
-
-2005-05-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (print_help): If the remaining argument
-       has an arg_description, display the synopsis as
-       PROGNAME [OPTION...] REST  (#305346, Noah Levitt)
-
-2005-05-20  Federico Mena Quintero  <federico@ximian.com>
-
-       Merged from glib-2-6:
-
-       * glib/gspawn.c (g_spawn_command_line_sync): Clarify the meaning
-       of exit_status(); it's not the return code from the child, but
-       rather the waitpid() status.
-
-2005-05-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gunidecomp.c: Correct the end of the Hangul 
-       Syllables range, from 0xd7af to 0xd7a3, in several
-       places.  (#301984, Changwoo Ryu)
-
-2005-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/tree-test.c (main): Check the return values of
-       g_tree_remove().
-
-       * glib/gtree.c (g_tree_remove, g_tree_steal): Return
-       a boolean indicating wether the key was found.  (#302545,
-       Matthew F. Barnes)
-
-2005-05-06  Brian Cameron  <brian.cameron@sun.com>
-
-       * configure.in, gmodule-no-export-2.0-uninstalled.pc.in,
-         Makefile.am:  Added gmodule-no-export-2.0-uninstalled.pc.in
-         to allow building of other libraries like pango when 
-         glib is uninstalled.
-
-2005-05-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/option-test.c: Add a testcase.
-       
-       * glib/goption.c (g_option_context_parse): Treat '-'
-       on its own as a non-option argument.  (#168008, Tim Musson,
-       Thomas Leonard and others)
-
-2005-05-05  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/gdataset.[ch] glib/gdatasetprivate.h: Add 
-       g_datalist_set/unset_flags(), g_datalist_get_flags() functions
-       to squeeze some bits into a GDataSet... this is needed for
-       efficient implementation of toggle references in GObject.
-
-       * tests/gobject/references.c tests/gobject/Makefile.am:
-       Add a test case for weak and toggle references.
-
-       * glib/gfileutils.[ch]: Rename g_file_replace() back
-       to g_file_set_contents().
-
-       * glib/glib.symbols: Update.
-
-2005-05-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstring.c (g_str_equal, g_str_hash): Move docs
-       inline.
-
-2005-05-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/ghash.h: Rename some parameters to make gtk-doc
-       happy.
-
-       * glib/gutils.c: 
-       * glib/gwin32.c: 
-       * glib/gstdio.c: Fix some typos, mark new API as "Since 2.8".
-
-2005-04-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtree.c: Clarify some docs. (#302062, Matthew F. Barnes)
-
-2005-04-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gstrfuncs.c (g_strcompress): Warn and don't crash
-       when meeting a trailing \\.  (#301373, Benjamin Otte)
-
-2005-04-27  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gconvert.c (open_converter, g_convert_with_iconv): Don't
-       call g_set_error() unless the GError pointer is non-NULL. This
-       avoids infinite recursion problems in certain rare situations on
-       Windows, when g_locale_from_utf8() is called from
-       _glib_get_locale_dir() after the change below. It's the
-       _glib_gettext() calls to translate error messages that are
-       parameters to g_set_error() that cause the recursion, not
-       g_set_error() itself.
-
-       * glib/gwin32.c (g_win32_locale_filename_from_utf8): New
-       function. Converts a filename to the system codepage, and if a
-       straight conversion isn't possible (because the filename contains
-       characters not in the system codepage), try looking up the
-       filename (which should refer to an existing file for this to
-       succeed) with short (8.3) pathname components.
-
-       * glib/gutils.c (_glib_get_locale_dir): No need to cache the
-       result, this function is normally called only once. Return the
-       path to the locale directory in system codepage, not UTF-8. The
-       path is passed to bindtextdomain(), which doesn't use UTF-8 file
-       names. Use g_win32_locale_filename_from_utf8(). (#301772)
-
-       Don't do run-time lookup of message catalog directory on
-       Cygwin. Cygwin is supposed to look and feel like Unix, and on Unix
-       we use paths fixed at configure time.
-
-2005-04-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.h: Minor comment improvement.
-
-2005-04-18  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gfileutils.c: No <sys/wait.h> on Win32. Definition of
-       save_errno was missing in one place.
-
-Sat Apr 16 20:15:44 2005  Soeren Sandmann  <sandmann@redhat.com>
-
-       * glib/gfileutils.c (g_file_replace): Save the errno in various
-       places
-
-       * glib/gfileutils.c (set_umask_permissions): Fork a child and do
-       chmod() to the umask() permissions there.
-
-2005-04-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmessages.h (g_debug): Use G_LOG_LEVEL_DEBUG in
-       both definitions.  (#300071, Tommi Komulainen)
-
-2005-04-09  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c: Include <process.h> on Win32 for getpid(). (#173094)
-
-2005-04-08  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.h
-       * glib/gstdio.c
-       * glib/glib.symbols (g_access, g_chmod, g_creat): Wrap also
-       access(), chmod() and creat(). (#169623, #171285)
-
-2005-04-08  Tor Lillqvist  <tml@novell.com>
-
-       Improve g_get_system_data_dirs() on Windows. A library that calls
-       g_get_system_data_dirs() might be installed in a different
-       top-level prefix than GLib or the application being run.
-
-       * glib/gutils.h (g_win32_get_system_data_dirs): New static
-       function defined in this header. Calls
-       g_win32_get_system_data_dirs_for_module() passing the address of
-       itself as parameter. g_get_system_data_dirs() is #defined as this
-       function.
-
-       * glib/gutils.c (g_win32_get_system_data_dirs_for_module): New
-       function. If the address parameter is non-NULL, the corresponding
-       module's installation location is used for one of the returned
-       path names, in addition to the COMMON_APPDATA, COMMON_DOCUMENTS,
-       glib top-level and application top-level folders.
-       (g_get_system_data_dirs): Now just for backward compatibility on
-       Win32. Just call g_win32_get_system_data_dirs_for_module(NULL).
-
-       * glib/glib.symbols: Add g_win32_get_system_data_dirs_for_module.
-
-       * glib/gutils.c (read_aliases): Not used on Windows.
-       (unalias_lang): Don't do anything on Windows, there is no
-       /usr/share/locale/locale.alias file..
-       
-Thu Apr  7 22:51:15 2005  <yosh@gimp.org>
-
-       * glib/gutils.c (g_get_system_data_dirs): Declare glib_top_share_dir
-       and exe_top_share_dir only in G_OS_WIN32.
-
-2005-04-08  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (g_get_system_data_dirs): After investigating more
-       closely the actual use cases of this function, I understand better
-       what it needs to do on Windows. In addition to the Windows
-       COMMON_APPDATA and COMMON_DOCUMENTS folders, also return the
-       "share" subfolders of GLib's installation location and the
-       application .exe's installation location, hoping that either
-       matches what the function's caller is looking for.
-
-       * glib/gutils.h (G_WIN32_DLLMAIN_FOR_DLL_NAME): Use wide char API
-       if available, and store dll name in UTF-8.
-
-2005-04-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gfileutils.c (get_contents_stdio): Avoid memory 
-       leaks in borderline cases.  (#172612, Morten Welinder)
-
-2005-04-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c: Clarify docs in some places. (#172404, 
-       Morten Welinder)
-
-2005-04-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h: Undef G_CAN_INLINE if G_IMPLEMENT_INLINES is 
-       defined. This was the pre-2.6 behaviour, and without it,
-       G_IMPLEMENT_INLINES cannot be used in multiple .c files
-       at all.  (#165852, Dave Benson)
-
-2005-04-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmain.c (g_child_watch_source_new): Add a note regarding
-       waitpid(-1).
-       (g_child_watch_source_init_multi_threaded): 
-       (g_child_watch_source_init_single): Don't use SA_RESTART,
-       since it causes problems on at least one platform. (#168352)
-
-2005-03-30  Steve Murphy  <murf@e-tools.com>
-
-       * configure.in: Added "rw" to ALL_LINGUAS.
-
-2005-03-30  Sven Neumann  <sven@gimp.org>
-
-       * glib/gfileutils.c (get_contents_stdio): handle the unlikely case
-       that no bytes are read from the file and allocate an empty string.
-
-2005-03-30  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c (g_io_win32_fd_get_flags_internal): Always claim
-       file descriptors open to devices are readable, since we can't
-       know. fstat() doesn't give any useful information. (#145326)
-
-2005-03-29  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gmain.c (g_poll): [Win32] If the event fired, assign
-       f->revents=f->events. We can't know whether the upper layer using
-       the event actually is readable, writeable or what, so say that all
-       the conditions hold. Remove the ResetEvent() call that has been
-       ifdeffed out anyway for a long time. Remove an "#ifdef 1" and
-       #endif pair of lines, that code is not optional.
-       (g_get_current_time): [Win32] Use GetSystemTimeAsFileTime()
-       instead of time() and GetTickCount(). Much simpler.
-
-2005-03-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/date-test.c: 
-       * tests/testgdate.c: Add tests for 
-       g_date_get_iso8601_week_of_year().
-
-       * glib/gdate.c (g_date_get_iso8601_week_of_year): 
-       Fix the calculation.  (#169858, Jon-Kare Hellan)
-
-2005-03-27  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in: Apparently AC_LIBTOOL_WIN32_DLL isn't deprecated
-       after all, and in fact necessary with HEAD libtool.
-
-2005-03-23  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (g_getenv): [Win32] Fix corner case bug when
-       environment variable value is exactly one character.
-
-2005-03-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Add g_try_malloc0
-
-       * glib/gmem.h: Add g_try_new, g_try_new0, g_try_renew and
-       g_try_malloc0.  (#169611, Stefan Kost)
-
-       * glib/gmem.c: Implement g_try_malloc0.
-
-2005-03-20  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gspawn-win32.c (do_spawn_with_pipes): Close the process
-       handle if the caller doesn't want it also in the case without a
-       helper process.
-       (g_spawn_sync): Don't ask for a child pid which we don't need.
-
-       * glib/gtimer.c: On Win32, use GetSystemTimeAsFileTime() instead
-       of GetTickCount(). (#159507)
-
-       * glib/gmessages.c (g_log_default_handler)
-       * glib/gutils.c (g_get_prgname): Move the Win32 code that asks the
-       program name from the system to g_get_prgname(). Do output the pid
-       also on Win32 (useful in case there are several instances of the
-       same program running).
-
-       * tests/testglib.c (main): Print more detailled output from the
-       timer tests. Don't print home directory twice. Test
-       g_win32_error_message().
-
-       * tests/spawn-test.c (run_tests): On Win32, run netstat instead of
-       ipconfig. On Windows XP collecting output from ipconfig doesn't
-       seem to work for some reason.
-
-2005-03-18  Hans Breuer  <hans@breuer.org>
-
-       * glib/makefile.msc.in : handle galiasdef.c (although completely 
-       useless for msvc build)
-
-       * glib/gbacktrace.c glib/gmessage.c : need at least _WIN_VER 0x0401
-       for IsDebuggerPresent()
-
-2005-03-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c: Update the documentation, reflecting the
-       fact that the special case for !group_name --> start_group
-       got removed.  (#170566, Tim-Philipp Müller)
-
-2005-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (g_option_context_set_main_group): Warn 
-       if there already is a main group.  (#170445, Jeff Franks)
-
-Sun Mar 13 22:01:17 2005  Manish Singh  <yosh@gimp.org>
-
-       * tests/array-test.c: delete a bunch of dead code.
-
-Sun Mar 13 21:28:47 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/gdataset.c: remove spurious IA prefix from g_quark_try_string.
-
-2005-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gatomic.c:
-       * glib/gcache.c: Small fixes to the previous commit.
-
-2005-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       Make PLT-reduction work with gcc4, and don't include
-       everything in galias.h:
-       
-       * glib/glib.symbols: Group symbols by header and source file.
-       * glib/makegalias.pl: Protect definitions by the same 
-       preprocessor symbols used to guard the headers. Move
-       the alias declarations to a separate file which is 
-       produced when calling makegalias.pl -def
-       * glib/Makefile.am (galiasdef.c): Add a rule to generate this
-       file.
-       * glib/*.c: Include galias.h after the other GLib headers,
-       include galiasdef.c at the bottom.
-
-       * glib/glib.symbols: Add g_listenv and g_file_replace.
-
-Fri Mar 11 23:51:12 2005  Soeren Sandmann  <sandmann@redhat.com>
-
-       * glib/gfileutils.c (write_to_temp_file): Don't try and generate
-       a dotfile from the name -- it doesn't work with absolute
-       paths. Also make documentation indicate that symlinks will be
-       overwritten. Both pointed out by Alexis S. L. Carvalho.
-
-2005-03-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * m4macros/glib-gettext.m4: Avoid stupid compiler complaints
-       about precision loss.
-
-2005-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdate.c: Remove a lot of pointless g_return_if_fail()
-       checks.  (#169859, Morten Welinder)
-
-2005-03-10  Sven Neumann  <sven@gimp.org>
-
-       * tests/file-test.c: include <gstdio.h>.
-
-2005-03-10  Sven Neumann  <sven@gimp.org>
-
-       * glib/gfileutils.c (get_contents_stdio): delay memory allocation
-       until after the first read. Saves a bunch of reallocs. Also
-       increased the buffer size to 4096 bytes. (bug #165954)
-
-       * tests/file-test.c (test_get_contents): added a (very basic) test
-       for g_file_get_contents().
-
-Wed Mar  9 19:06:45 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/glib.symbols: Add g_file_replace.
-
-2005-03-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Bump version
-
-2005-03-09  Sven Neumann  <sven@gimp.org>
-
-       * glib/gfileutils.c (g_file_replace): avoid unnecessary filename
-       conversions.
-
-2005-03-09  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gutils.c (g_get_user_data_dir, g_get_user_config_dir,
-       g_get_user_cache_dir, g_get_system_data_dirs,
-       g_get_system_config_dirs): [Win32] Don't leak return value from
-       get_special_folder(). (#169348, Daniel Atallah) Guard against
-       g_home_dir being NULL, use g_tmp_dir/g_user_name in that case.
-
-Tue Mar  8 15:46:54 2005  Søren Sandmann  <sandmann@redhat.com>
-
-       * glib/gfileutils.c (g_file_replace): New API. A function to
-       atomically create a file.
-
-2005-03-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: Add the new attributes here too.
-
-       * glib/gmacros.h: Define G_GNUC_NULL_TERMINATED.
-       (#164706, Marc Meissner)
-
-       * glib/gstrfuncs.h: 
-       * glib/gfileutils.h: Use G_GNUC_NULL_TERMINATED where
-       appropriate.
-
-       * glib/goption.c (parse_int): Fix an error message.  
-       (#168751, Hazael Maldonado Torres)
-
-2005-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdebug.h: Small cleanup (use G_BEGIN/END_DECLS).
-       (#168474, Fabricio Barros Cabral)
-
-2005-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_find_program_in_path): Mark the last
-       paragraph of the docs as Windows-specific.  (#169433)
-
-2005-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gmarkup.c: Add G_GNUC_PRINTF attribute
-       to set_error.
-       (g_markup_parse_context_end_parse): Fix an
-       error message, noticed by Tim Janik.
-
-2005-02-24  Tor Lillqvist  <tml@novell.com>
-
-       * glib/Makefile.am (BUILT_EXTRA_DIST): Don't distribute
-       glib.def. (#167496, J. Ali Harlow)
-
-       * glib/gfileutils.c (get_contents_win32): Use g_fopen(). (#168341,
-       Daniel Atallah)
-
-2005-02-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Don't forget to set G_THREAD_LIBS_FOR_GTHREAD 
-       on non-linux platforms.  (#168177, Michael Banck)
-
-       * tests/keyfile-test.c (test_locale_string): Set LANGUAGE 
-       instead of LC_ALL to shield against LANGUAGE being set in 
-       the environment.  (#168311, Suren A. Chilingaryan)
-
-Tue Feb 22 22:03:38 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/gstdio.h: On G_OS_UNIX, simple #define g_open and co. as
-       aliases for their respective C library functions, instead of
-       using the function wrappers. This avoids library users having to
-       care about matching large file support with whatever glib has been
-       built with. Fixes bug #167942.
-
-       * glib/gstdio.c
-       * glib/abicheck.sh
-       * glib/glib.symbols
-       * glib/makegalias.pl: Logic to make the gstdio wrappers still
-       available for compatibility, but not used in new code.
-
-Tue Feb 22 18:33:07 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/gtimer.c (g_usleep): Simplify the loop for the fix below.
-
-2005-02-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gqueue.c (g_queue_new): Use a memchunk for
-       sizeof(GQueue)-sized chunks.  (#167984, Fabrício Barros Cabral)
-
-       * glib/gtimer.c (g_usleep): Fix usage of 
-       nanosleep().  (#163039, Bastien Nocera)
-
-2005-02-16  Adi Attar  <aattar@cvs.gnome.org>
-
-       * configure.in: Added "xh" to ALL_LINGUAS.
-
-2005-02-11  Tor Lillqvist  <tml@novell.com>
-
-       * glib/giowin32.c: Include winsock2.h before windows.h, to avoid
-       compilation errors with MSVC. (#167105)
-
-2005-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (print_help): Take main group options into
-       account when calculating column size.  (#166921)
-       (g_option_context_parse): Accept -? as documented.  (#166977)
-
-2005-02-09  Matthias Clasen  <mclasen@redhat.com>
-       * glib/gkeyfile.c (find_file_in_data_dirs): Don't leak path
-       here.  (#166801, Kjartan Maraas)
-
-2005-02-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_parse_value_as_string): Don't
-       write out of bounds.
-
-       * glib/goption.c (g_option_context_parse): Fix a 
-       one-too-short memory allocation.  (#166609, Nicolas Laurent)
-
-       * tests/Makefile.am (TESTS_ENVIRONMENT): Add tests with
-       MALLOC_CHECK_.
-
-       * tests/option-test.c: Add a test for unkown short options.
-
-2005-02-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib.symbols: 
-       * glib/gutils.h: 
-       * glib/gutils.c (g_listenv): New function to list all 
-       environment variables.  (#166327, Hans Petter Jansson)
-
-2005-02-07  Tor Lillqvist  <tml@novell.com>
-
-       * glib-zip.in: Add gmodule-no-export-2.0.pc.
-
-Sun Feb  6 21:59:09 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/abicheck.sh: feed the contents of config.h and glibconfig.h
-       into the preprocessor, since glib.symbols could need #defines
-       from them.
-
-Sun Feb  6 12:09:55 2005  Manish Singh  <yosh@gimp.org>
-
-       * glib/gatomic.c: Don't use matching constraints for asm mem
-       parameters. This makes the code match with current glibc, and
-       quiets some warnings with gcc 3.4.
-
-2005-02-05  Tor Lillqvist  <tml@novell.com>
-
-       * configure.in (G_LIBS_EXTRA)
-       * glib/giowin32.c: I think we can include <winsock2.h> and link
-       with -lws2_32. Only Windows 95 originally didn't have Winsock 2,
-       and it's available as an update for it. Not that we use any actual
-       Winsock 2 -only features, but still, simpler to link directly with
-       ws2_32.dll instead of going through wsock32.dll.
-
-       * glib/gfileutils.c (g_file_get_contents): In the Win32 ABI
-       stability version, call g_file_get_contents_utf8(), not
-       itself. (#166386, Bill Skaggs)
-
-2005-02-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Remove the --enable-ansi option  (#160469)
-
-       * configure.in: Define a HAVE_GNUC_VISIBILITY automake
-       conditional.
-
-       * glib/Makefile.am (TESTS): Only check the abi if
-       the compiler supports visibility, otherwise we
-       know there will be (harmless) extra symbols.  
-       (#166181, Ed Avis)
-
-2005-02-02  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gwin32.h: Remove unnecessary MSVC-only typedef for
-       pid_t. (#165910) GLib does not pretend to be a POSIX emulation
-       library.
-
-       * glib/gstdio.c: In the Win32 part of all functions, handle
-       invalid UTF-8 more robustly. Don't pass the resulting NULL
-       wide-char or codepage strings on to C library functions, but bail
-       out early. (#166084)
-
-       * glib/gfileutils.c: Don't use potentially incorrect errno in
-       several places. (#165951)
-       (g_mkstemp): Set errno appropriately.
-
-2005-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c: Move doc comments inline.
-
-       * glib/ghash.h: Adjust some argument names.
-
-       * configure.in: Give meaningful names to g_memmove() 
-       arguments.
-
-2005-02-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/keyfile-test.c (test_key_remove): Add test case for
-       key removal.
-
-       * glib/gkeyfile.c (g_key_file_remove_key): Actually remove 
-       the key from the list of pairs.  (#165980, David Hoover)
-
-       * glib/gkeyfile.c: Doc clarifications.  (#165907, Vincent Untz)
-
-       * tests/keyfile-test.c (test_group_remove): Add test case for
-       group removal.
-
-       * glib/gkeyfile.c (g_key_file_remove_group): Don't segfault
-       if the group doesn't exist.  (#165887, Mathias Hasselmann)
-
-2005-01-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/keyfile-test.c: Some more unit tests.
-
-2005-01-28  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "tl" to ALL_LINGUAS.
-
-2005-01-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/run-markup-tests.sh: Let $srcdir default to .
-
-       * tests/markups/fail-40.gmarkup: Add a test with a long entity
-       name.
-
-       * glib/gmarkup.c (unescape_text_state_inside_entity_name): Don't
-       copy the entity name into a short buffer of fixed length. Instead,
-       compare it in place with strncmp(), and do a full strdup() in the
-       error path.  (#165100, Simon Budig)
-
-2005-01-22  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gdate.c (g_date_set_time): Don't g_assert that localtime()
-       returns non-NULL. It does return NULL at least on Win32 if you
-       pass it a negative time_t, which although wrong, shouldn't cause
-       an application to abort. Instead return 2000-01-01 as a default
-       date. Print a warning unless G_DISABLE_CHECKS. (#164622)
-
-2005-01-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_parse_value_as_integer): Don't
-       interpret leading zeros as octal. The specification requires
-       %f parsing, and %f doesn't allow octal.  
-
-       * tests/keyfile-test.c: Add some more tests.
-
-       * glib/gkeyfile.c (g_key_file_get_keys): Return keys in
-       the order found in the file, rather than the opposite.
-       (g_key_file_parse_value_as_string): Fix error reporting.
-
-2005-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gkeyfile.c (g_key_file_parse_data): Accept \r\n as 
-       line end.  (#163030, Bastian Nocera)
-       (g_key_file_load_from_data): Make -1 work as a size.
-       
-       * tests/keyfile-test.c: Some unit tests for the keyfile
-       parser.  
-
-       * tests/Makefile.am (test_programs): Add keyfile-test.
-
-2005-01-19  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gbacktrace.c (g_on_error_stack_trace): On Win32 call
-       G_BREAKPOINT() if being debugged.
-
-       * glib/gmessages.c (g_logv): For fatal messages on Win32, use
-       G_BREAKPOINT() also without G_ENABLE_DEBUG, but only if being
-       debugged. Suggestion by Ulf Lamping.
-
-2005-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gqsort.c: Don't include alloca.h. It is not needed,
-       and does not exist on win32.  (#164468, Kazuki IWAMOTO)
-
-       * glib/gkeyfile.c (g_key_file_get_boolean_list): Fix a
-       sparse warning.  (#164467, Kjartan Maraas)
-
-2005-01-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gconvert.c (g_get_filename_charsets): Don't crash
-       if G_FILENAME_ENCODING is empty.  (#164330, Pawel Sakowski)
-
-2005-01-15  Tor Lillqvist  <tlillqvist@novell.com>
-
-       * configure.in: sh portability fix. Use "test" and not [.
-       (#163144, Robert Ögren)
-
-2005-01-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gqsort.c: Sync to glibc.  (#133994, Morten Welinder, 
-       patch by Kjartan Maraas)
-
-2005-01-11  Owen Taylor <otaylor@redhat.com>
-
-       * configure.in: Add gmodule-export-2.0.pc to AC_CONFIG_FILES.
-
-       * glib/Makefile.am gobject/Makefile.am gthread/Makefile.am:
-       Use grep | head -n 1 instead of grep -m 1 which doesn't work
-       with slightly older versions of GNU grep in 
-       install-libtool-import-lib rule.
-
-2005-01-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gdir.c (g_dir_open): Typo fix.
-
-2005-01-10  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am (EXTRA_DIST): Add missing ChangeLog.pre*
-
-2005-01-09  Hans Breuer  <hans@breuer.org>
-
-       * glib/gfileutils.c : make it compile with mvc6 default sdk,
-       (#define INVALID_FILE_ATTRIBUTES, FILE_ATTRIBUTE_DEVICE)
-
-2005-01-09  Tor Lillqvist  <tlillqvist@novell.com>
-
-       * glib/gwin32.c: Include also wchar.h for wcslen on
-       Cygwin.
-       (g_win32_error_message): Fix cast. (#163133, Roger Leigh)
-
-       * glib/gfileutils.c: Include <io.h> on Windows for
-       prototypes. (#163390, Kazuki Iwamoto)
-
-2005-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * NEWS: Typo fixes.
-
-       * configure.in: Bump version
-
-       * === Released 2.6.1 ===
-
-2005-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: 
-       * Makefile.am: Generate and distribute gmodule-export-2.0.pc,
-       which is currently just a copy of gmodule-2.0.pc, but makes
-       it explicit that it adds --export-dynamic.
-       
-       * gmodule-export-2.0.pc.in: Copy of gmodule-2.0.pc.in.
-
-2005-01-06  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/Makefile.am
-       * gobject/Makefile.am: glib.def and gobject.def are generated, not
-       in $(srcdir). (#163143, J. Ali Harlow)
-
-       * configure.in
-       * glib/Makefile.am
-       * gobject/Makefile.am: Win32 cross-compilation fixes. (#163144,
-       J. Ali Harlow)
-
-2005-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.h: Simplify the inlining magic to make it
-       work at Oh zero.  (#162990, Kalpesh Shah) 
-
-2005-01-04  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/guniprop.c (get_locale_type): Use g_win32_getlocale()
-       instead of setlocale() on Windows. setlocale() returns strings
-       like "Turkish_Turkey".
-
-2005-01-04  Matthias Clasen  <mclasen@redhat.com>
-
-       Fix the inlining magic.  (#157536, Jens Hatlak, and
-       #149907, Morten Welinder)
-       
-       * configure.in: Define G_CAN_INLINE in glibconfig.h
-
-       * glib/gutils.h: Streamline the inlining magic a bit,
-       don't use extern when implementing the non-inlined 
-       version.
-
-2005-01-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_find_program_in_path): Don't return
-       directories.  (#160738, Tommi Komulainen)
-
-       * glib/gfileutils.c (g_file_get_contents): Clarify the 
-       documentation.  (#162251, Mariano Suárez-Alvarez)
-
-2005-01-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gutils.c (g_setenv, g_unsetenv): Clarify the 
-       docs.  (#162747, Crispin Flowerday)
-
-2005-01-01  J. Ali Harlow  <ali@juiblex.co.uk>
-
-       * configure.in: Don't use AC_TRY_RUN to test for long long format
-       when using the MSVCRT.DLL runtime since we know the answer anyway
-       and it causes some mild inconvience when cross compiling.
-
-       * README.win32: Add a reference to the cross compiling section
-       of the reference manual.
-
-       * docs/reference/glib/cross.sgml: MinGW uses MSVCRT.DLL which
-       requires %I64i instead of %lli. (#161306)
-
-2005-01-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c: Make the g_getenv() ABI backward compatibility
-       wrapper more robust.
-
-2005-01-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/glib.symbols
-       * glib/gutils.h
-       * glib/gutils.c: Make also g_getenv(), g_setenv(), g_unsetenv()
-       and g_find_program_in_path() take and return UTF-8 strings on
-       Win32. Implement DLL ABI backward compatility for them, too. Move
-       all the DLL ABI stability wrappers to the end of the file. Use
-       wide character API when available in inner_find_program_in_path().
-
-       * glib/gfileutils.c: With the UTF-8ness of g_getenv() above, just
-       use g_getenv() to get PATHEXT. (Yeah, it's probably overdoing it
-       to consider somebody actually having anything else than ASCII
-       in PATHEXT, but...)
-
-2004-12-31  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gfileutils.c (g_file_test): Rewrite the Win32 version to
-       use GetFileAttributes() instead of stat(). stat() is unreliable
-       for corner cases like '\\server\share' or '.\'. Part of fixing
-       #161797. When testing for executability, in addition to the fixed
-       set of executable file name extensions also check the PATHEXT
-       environment variable.
-
-2004-12-30  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_get_current_dir): In the Win32 version, use
-       GetCurrentDirectory() directly for simpler buffer length
-       management. I don't trust getcwd() getting it right all the time.
-
-2004-12-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gfileutils.c (g_file_test): Typo fix.
-
-2004-12-30  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gutils.c (g_path_skip_root): Require UNC paths to start
-       with exactly two slashes.
-       (g_get_current_dir): Use wide character API when available.
-       (g_path_get_dirname): Handle UNC paths better. Part of fix for
-       #161797.
-
-2004-12-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * configure.in: Add an OS_LINUX conditional.
-
-       * glib/Makefile.am (TESTS): Only check the ABI on 
-       linux, since the shell script is not portable, and libtool
-       deficiencies may distort the ABI on other platforms.  (#161741)
-
-2004-12-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (print_entry): Don't show
-       the special G_OPTION_REMAINING entry.  (#161934,
-       Matthew F. Barnes)
-
-2004-12-20  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/gconvert.c (g_locale_to_utf8, g_filename_to_uri): Improve
-       docs.
-
-2004-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/option-test.c: Add some tests for '--' 
-       stripping.
-
-       * glib/goption.c (g_option_context_parse): Don't
-       strip '--' if it would be needed by a second option
-       parser.  (#161701)
-
-       * glib/gunicollate.c (g_utf8_collate): Make docs 
-       more accurate.  (#161683, Marcin Krzyzanowski)
-
-2004-12-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/goption.c (g_option_context_parse): Call
-       post-parse hooks also if argv is NULL.  (#161668,
-       Marcin Krzyzanowski)
-
index a888e6d..0101c3d 100644 (file)
@@ -22,18 +22,6 @@ AM_CPPFLAGS =                                        \
        -DGLIB_COMPILATION
 
 EXTRA_DIST +=                  \
-       ChangeLog.pre-2-20      \
-       ChangeLog.pre-2-18      \
-       ChangeLog.pre-2-16      \
-       ChangeLog.pre-2-14      \
-       ChangeLog.pre-2-12      \
-       ChangeLog.pre-2-10      \
-       ChangeLog.pre-2-8       \
-       ChangeLog.pre-2-6       \
-       ChangeLog.pre-2-4       \
-       ChangeLog.pre-2-2       \
-       ChangeLog.pre-2-0       \
-       ChangeLog.pre-1-2       \
        NEWS.pre-1-3            \
        acglib.m4               \
        sanity_check            \
@@ -111,24 +99,10 @@ EXTRA_DIST += $(meson_build_files)
 # These may be in the builddir too
 BUILT_EXTRA_DIST +=            \
        INSTALL                 \
-       ChangeLog               \
        $(NULL)
 
 CONFIGURE_DEPENDENCIES = acglib.m4
 
-ChangeLog:
-       $(AM_V_GEN) if test -d "$(srcdir)/.git"; then \
-         (GIT_DIR=$(top_srcdir)/.git ./missing --run git log GLIB_2_20_0^^.. --stat) | fmt --split-only > $@.tmp \
-         && mv -f $@.tmp $@ \
-         || ($(RM) $@.tmp; \
-             echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
-             (test -f $@ || echo git-log is required to generate this file >> $@)); \
-       else \
-         test -f $@ || \
-         (echo A git checkout and git-log is required to generate ChangeLog >&2 && \
-         echo A git checkout and git-log is required to generate this file >> $@); \
-       fi
-
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = glib-2.0.pc gobject-2.0.pc gmodule-2.0.pc gmodule-export-2.0.pc gmodule-no-export-2.0.pc gthread-2.0.pc gio-2.0.pc
 
@@ -156,7 +130,7 @@ distclean-local: lcov-clean
            rm -f $(BUILT_EXTRA_DIST); \
        fi
 
-.PHONY: files release sanity snapshot ChangeLog
+.PHONY: files release sanity snapshot
 
 files:
        @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
diff --git a/NEWS b/NEWS
index 0da0a42..498cba1 100644 (file)
--- a/NEWS
+++ b/NEWS
-Overview of changes in GLib 2.58.3
+Overview of changes in GLib 2.59.0
 ==================================
 
-* Fix GVariant tests on i686 (#1626)
-
-* Fix crashes caused by filtering of mounts (#1645)
-
-* Bugs fixed:
- - #1626 2.58.2 GVariant test failure on i686
- - #1637 EXCEPTION_ACCESS_VIOLATION in g_clear_pointer
- - #1645 2.58.2 introduces libgio segfaults
- - !558 Backport Suppress -Wint-in-bool-context warning with G_DEFINE_INTERFACE and g++ to glib-2-58
- - !577 Don't fail trash test if ~/.local doesn't exist or mount points can't be determined
- - !578 gunixmounts: Fix segfaults caused by new filter of mounts
-
-
-Overview of changes in GLib 2.58.2
-==================================
-
-* Fix calling gdbus-codegen with --interface-info-{header,body} (!527)
-
-* Fix parsing month names in certain locales with g_date_set_parse() (#1343)
-
-* Fix ^*ay handling in g_variant_iter_loop() (!437)
-
-* Various buffer overflow fixes in GMarkup/GVariant/GDBus (#1582)
-
-* A huge number of fixes to the Meson build
-
-* Prevent bind mounts being advertised as mounts (#1271)
-
-* Fix cross-compilation of 2.58.x releases with autotools (#1546)
-
-Bugs fixed:
- !527 fix gdbus-codegen --interface-info-{header,body}
- #1605 g_date_time_format fails when used with non ASCII format string on POSIX locale
- !544 gtimezone: Fallback to /etc/timezone on Gentoo
- #945 g_spawn_* functions break POSIX requirements and deadlock the child process under certain conditions
- #1014 g_spawn family does not appear to be safe in multi-threaded programs
- !542 gtlscertificate: Fix bug in PEM private key parser
- #1343 g_date_set_parse: Parses "September" in Polish incorrectly
- !471 meson: pin the libffi wrap file to the last release supporting meson 0.47
- !430 gdate: Reinitialize using_twodigit_years and locale_era_adjust.
- !437 Fix ^*ay handling in g_variant_iter_loop()
- #1337 /GDateTime/strftime test fails with TZ=Africa/Monrovia
- #1588 Moving a bookmark item to the same URI causes a crash
- !462 meson: add aarch64 memory barrier handling
- #1582 Backport GMarkup/GVariant/GDBus fixes to glib-2-58 and glib-2-56
- !428 gdbus-codegen: add autocleanup for FooObject
- #1576 Fails to build with Meson on Debian armel (armv5te EABI softfloat little-endian)
- !407 meson: Increase test timeouts
- #1572 Flags validation fails
- #1522 Trash not working on NTFS folder accessed from symlink
- #1562 GDate test suite fails with latest glibc
- !367 Add g_desktop_app_info_get_string_list(); fix g_key_file_free()
- !416 gdbus-peer: Make sure to not include objectmanager-gen.c source
- !414 gio, tests: ensure objectmanager sources are generated
- !409 A couple of minor glib-2-58 backports
-  !400 grefcount: add missing gatomic.h
-  !403 build-sys: Pass CFLAGS to $(DTRACE)
- #1543 Backport recent Meson/pkg-config/test fixes to glib-2-58
- #1271 fstab binds appear as mounts (x-gvfs-hide is being ignored)
- #1546 Cross-compilation fails in 2.58
- #1536 meson: spurious dependencies on convenience libraries in .pc files
- #1544 meson: gtester-report #! not replaced with ${PYTHON}
- #1528 Meson tests are hard to debug in an autobuilder environment
- #1539 meson: Some files are unnecessarily installed executable
- #1527 Meson doesn't install data for installed-tests
- !406 meson: Mark 1bit-emufutex test as slow
- !334 gio: automake: Add libgmodule dependency
- !238 W32 GFileInfo improvements (partially)
- !312 Enable GIO tests on Windows
- #1520 Change conditions for installing m4 macros
- #656 check for -Werror=format-security broken
- #1313 Meson: Rework the config.h generation
- !346 ci: Use a docker image for stable branch
+* This will be the last development release with autotools support. As our
+  Meson support has been around since 2.56.x, and was used to release tarballs
+  in 2.58.x, the next development release (2.59.1) will drop autotools as used
+  to build GLib. The macros installed for other packages to use will remain.
+
+* Add `G_TEST_OPTION_ISOLATE_DIRS` to redirect `XDG_*_HOME` to a temporary
+  directory for each unit test. (#538)
+
+* Support `Property.EmitsChangedSignal` annotations in `gdbus-codegen`. (#542)
+
+* Add `g_assert_cmpvariant()` API for unit tests. (#1191)
+
+* Hide bind mounts from GIO mount listings. (#1271)
+
+* Automatically realign data passed to `g_variant_new_from_bytes()` or
+  `g_variant_new_from_data()` if it is not correctly aligned. This prevents
+  misaligned accesses on architectures which don’t support them. Callers should
+  still aim to correctly align data to get higher performance. (#1342)
+
+* Support `ld -b binary` (on platforms which support it; i.e. Linux) to provide
+  large pre-compiled `GResource` resources with a fast compilation time. (#1489)
+
+* Unconditionally install GLib m4 macros, so that projects which depend on GLib
+  and which still build using autotools can continue to build even once GLib has
+  ported entirely to Meson. (#1520)
+
+* Various fixes to the Meson build.
+
+* Drop Python 2 support and require Python 3.4+. See discussion on
+  https://mail.gnome.org/archives/desktop-devel-list/2018-July/msg00004.html.
+  (!196)
+
+* `GHashTable` performance and memory improvements for common cases. See
+  https://hpjansson.org/blag/2018/07/24/a-hash-table-re-hash/. (!208)
+
+* Add flags that allow a `GApplication` to signal and replace a currently
+  running other instance of the same `GApplication`. This will be used for app
+  upgrades with flatpak. (!250)
+
+* Autostart xdg-desktop-portal when using the network monitor and proxy monitor
+  portal backends. (!317)
+
+* Add a g_task_set_name() API to allow `GTask`s to be described; useful for
+  debugging. (!384)
+
+* Enable FreeBSD CI on every commit for upstream GLib. (!387)
+
+* Various GVariant, GMarkup and GDBus fuzzing fixes, including buffer overflow
+  fixes. (!411)
+
+* Various fixes to eliminate thread races, found by thread sanitizer (tsan).
+
+* Deprecate TLS/DTLS rehandshaking, as it has been removed from the protocol in
+  TLS 1.3. (!478)
+
+* Support reading arguments from a file with `glib-mkenums`, which is useful
+  for long argument lists due to having deeply nested build directories, on
+  systems with a low limit on the command line length. (!489)
+
+* Make `g_environ_*()` case-insensitive on Windows, as the environment itself
+  is case-insensitive on Windows. (!500)
+
+* Add Application Layer Protocol Negotiation (ALPN) support to `GTlsConnection`
+  and `GDtlsConnection`, so that higher layer protocols can be negotiated when
+  setting up a TLS connection, without additional round trips and latency. This
+  is needed for eventual HTTP/2 support. (!520)
+
+* Add support for TPM keys in PEM files when loading TLS certificates. (!522)
+
+* Add a `GRecMutexLocker` auto-pointer wrapper for `GRecMutex`. (!528)
+
+* Bugs fixed:
+ - #107 The "g_key_file_get_comment" interface returns comment with unexpected new line symbol at the end
+ - #179 g_object_unref assert in debug code
+ - #277 'destroy_data' in g_cclosure_new is registered as finalize notifier instread invalidate.
+ - #538 Add helpers to redirect XDG_*_HOME to a temp dir for unit tests
+ - #542 gdbus-codegen does not honor "Property.EmitsChangedSignal" annotations
+ - #656 check for -Werror=format-security broken
+ - #734 Provide a way to instantiate a GDBusProxy-derived class from a GDBusConnection and a object path without blocking
+ - #827 gmain: Clarify that g_source_set_callback() is safe on attached sources
+ - #1055 Provide alignment macros
+ - #1119 GVolumeMonitor: Results don't reflect current state but state when application was launched
+ - #1191 add g_assert_equal_variants
+ - #1261 Add option to leave <default> in gschema empty
+ - #1271 fstab binds appear as mounts (x-gvfs-hide is being ignored)
+ - #1310 gdbusproxy: make g-name-owner property useful with unique names
+ - #1313 Meson: Rework the config.h generation
+ - #1342 Automatically realign data passed to g_variant_new_from_bytes() or g_variant_new_from_data()
+ - #1343 g_date_set_parse: Parses "September" in Polish incorrectly
+ - #1362 Incorrect documentation about GSettings child add/remove notifications
+ - #1452 GFileInfo: unable to retrieve correct modification time of links and mounted volumes on Windows
+ - #1471 Incorporate oss-fuzz fuzz targets into GLib
+ - #1489 Use `ld -b binary` to speed up GResource generation for linking
+ - #1498 distcheck fails in distclean
+ - #1506 error: redefinition of typedef 'GKqueueFileMonitor'
+ - #1509 test_timeval_to_iso8601_overflow: 'out' should be NULL
+ - #1513 GIcon regression?
+ - #1514 gio/appinfo test sometimes fails in CI
+ - #1518 /network-monitor/create-in-thread fails in (LXC) containers on glib-2-56
+ - #1520 Change conditions for installing m4 macros
+ - #1522 Trash not working on NTFS folder accessed from symlink
+ - #1523 GIO NetworkMonitor doesn't reflect the current network state
+ - #1525 GTask allows (buggy) application code to cause callback to be called twice, without warning
+ - #1527 Meson doesn't install data for installed-tests
+ - #1528 Meson tests are hard to debug in an autobuilder environment
+ - #1530 tests/mainloop-test appears to be flaky
+ - #1535 meson: installed-test metadata not run in TAP mode
+ - #1536 meson: spurious dependencies on convenience libraries in .pc files
+ - #1537 meson: absolute paths to ${builddir} included in gtk-doc HTML
+ - #1538 meson: G_HAVE_GROWING_STACK defined differently
+ - #1539 meson: Some files are unnecessarily installed executable
+ - #1541 meson: timeloop-closure test not installed
+ - #1542 meson: /usr/lib/glib2.0/installed-tests/glib/gdbus-peer: error while loading shared libraries: libgdbus-example-objectmanager.so: cannot open shared object file: No such file or directory
+ - #1544 meson: gtester-report #! not replaced with ${PYTHON}
+ - #1546 Cross-compilation fails in 2.58
+ - #1556 build: Too long file path issue with meson on Windows
+ - #1562 GDate test suite fails with latest glibc
+ - #1570 ghash.c:694:27: left shift of 1 by 31 places cannot be represented in type 'int'
+ - #1572 Flags validation fails
+ - #1575 g_date_time_format() should have format attribute
+ - #1576 Fails to build with Meson on Debian armel (armv5te EABI softfloat little-endian)
+ - #1580 glib-compile-resources using strings breaks building e.g. GTK+ on MS Visual C, which limits strings to 65535 chars
+ - #1581 Memory used for reference counted data might be misaligned.
+ - #1588 Moving a bookmark item to the same URI causes a crash
+ - #1589 g_log_writer_is_journald memoizes a single result, even though it accepts a parameter
+ - #1590 tests: g-file-info-filesystem-readonly fails if run more than once with fuse & bindfs installed
+ - #1594 Return value of g_dbus_connection_get_unique_name not annotated as nullable
+ - #1600 g_timeout_source_new_seconds overflows when given interval > (G_MAXUINT / 1000)
+ - #1601 appinfo test fix is defective
+ - #1605 g_date_time_format fails when used with non ASCII format string on POSIX locale
+ - #1615 gdbus-codegen not generating nullable annotation
+ - !196 [RFC] build: Drop Python 2 support and require Python 3.4+
+ - !200 Add a new GTlsError to indicate protocol downgrade attacks
+ - !208 GHashTable improvements
+ - !219 glocalfilemonitor: Fallback to poll file monitor for NFS
+ - !238 W32 GFileInfo improvements
+ - !250 Application replace
+ - !264 glib-compile-resources: encode data as string
+ - !268 build: simplify alloca checks. See #1313
+ - !272 dtrace: Add missing const attributes to types in glib_probes.d
+ - !273 gtlsbackend: add support for setting the default TLS database
+ - !277 Use "command -v" instead of "which"
+ - !282 meson: Add macOS libtool versioning for ABI compatibility
+ - !286 gspawn: Fix build on systems without O_CLOEXEC
+ - !287 glib-compile-resources: Fix generated code compiling with C++ compilers
+ - !289 tests: Add more tests to finish branch coverage of GHashTable
+ - !290 build: fix installation dir of glib-gettextize
+ - !292 Remove all ChangeLog files
+ - !293 Document new volume class `loop`
+ - !294 portal network monitor: Always emit changed signal on changed
+ - !295 meson: fix typo
+ - !296 Add G_GNUC_FALLTHROUGH for __attribute__(fallthrough))
+ - !297 build: Drop AC_C_CONST from configure.ac
+ - !302 Document that GTimeVal is subject to the year 2038 problem on 32-bit systems
+ - !303 liststore: Simplify code
+ - !304 Add more GListStore/GListModel tests
+ - !309 codegen: Change pointer casting to remove type-punning warnings
+ - !312 Enable GIO tests on Windows
+ - !316 gdbus: Improve error when well-known name is unowned
+ - !317 Autostart xdg-desktop-portal if needed
+ - !322 gnetworkmonitornm: Set a GError properly on an error handling path
+ - !332 gmarkup: Make the documentation even more explicit about untrusted input
+ - !334 gio: automake: Add libgmodule dependency
+ - !338 gcharset: fix leaking g_get_language_names_with_category
+ - !339 Add g_desktop_app_info_get_string_list(); fix g_key_file_free()
+ - !340 tests: Mark two more tests as slow
+ - !345 Fix build failure on systems without POSIX spawn
+ - !347 Use Meson 0.48.0 for CI
+ - !348 Documentation tweaks for g_array_free
+ - !353 Meson: Do not run tests/refcount with --tap
+ - !354 Fix spelling mistakes detected by Debian's Lintian tool
+ - !358 Autotools: Move libmount from Libs.private to Requires.private
+ - !360 CI: Test static build on installed glib
+ - !363 Tests: Mark printf wrappers with G_GNUC_PRINTF
+ - !364 ci: Enable FreeBSD CI
+ - !366 gunixmounts: Mark mounts as system internal instead of filtering out
+ - !372 gmacros: Fix G_[UN]LIKELY to not mask -Wparentheses
+ - !374 gthreadpool: Include prgname in thread name
+ - !375 m4macros: Allow information from pkg-config to be overridden
+ - !376 gthread: Clarify priority handling in GRWLock
+ - !379 Ignore g_return_*if_fail() branches in lcov coverage report
+ - !381 Add UTF-8 communication tests for GSubprocess
+ - !384 gtask: Add a g_task_set_name() method
+ - !387 ci: Enable FreeBSD CI in the official repository
+ - !396 m4: Fix AM_PATH_GLIB_2_0 macro
+ - !400 grefcount: add missing gatomic.h
+ - !403 build-sys: Pass CFLAGS to $(DTRACE)
+ - !405 ci/msys2: fix path to the lcov config file
+ - !406 meson: Mark 1bit-emufutex test as slow
+ - !407 meson: Increase test timeouts
+ - !410 gfileutils: Add examples to g_path_get_dirname() documentation
+ - !411 Various GVariant, GMarkup and GDBus fuzzing fixes
+ - !412 Enable compile time check of g_date_time_format() format
+ - !413 Add support for g_auto(s)list to G_DECLARE'd types
+ - !414 gio, tests: ensure objectmanager sources are generated
+ - !415 gseekable: fix 'attmepting' typo
+ - !416 gdbus-peer: Make sure to not include objectmanager-gen.c source
+ - !417 Fix ^*ay handling in g_variant_iter_loop()
+ - !418 Meson: Cleanup a FIXME now that we have dict addition
+ - !420 gdbus-codegen: add autocleanup for FooObject
+ - !422 GMarkup buffer overflow fixes for error handling, round 2
+ - !423 gutils: Check whether getauxval function exists
+ - !424 ci: Fix Docker image version
+ - !425 gdate: Reinitialize using_twodigit_years and locale_era_adjust.
+ - !435 gdatetime: Fix formatting of time zones offsets in range -01:00 to +00:00
+ - !436 valgrind: Add glib_init()-related suppressions
+ - !440 Fix minor memory leaks in tests
+ - !443 tests: Avoid multithreaded use of g_test_rand_int_range
+ - !444 gvarianttypeinfo: Consistently use atomics to access ref_count
+ - !446 gmain: Fix data races in GUnixSignalWatchSource and GChildWatchSource
+ - !451 closures test: Avoid timeout on ARM64 CPUs
+ - !452 Atomic reference count in GVariant, ContainerInfo and GDBus introspection
+ - !453 tests: Fix some data races in tests
+ - !454 gdbusproxy: make g-name-owner property useful with unique names
+ - !458 glib-compile-resources: Fix size allocation for compressed streams
+ - !460 gatomicrefcount: Make g_atomic_ref_count_init non-atomic
+ - !461 Meson: Fix build error in gdbus-example-objectmanager
+ - !462 meson: add aarch64 memory barrier handling
+ - !463 gio, tests: fix leak of dbus connection.
+ - !467 Update documentation of g_tls_connection_handshake() again
+ - !469 docs: add index of new symbols for gio > 2.52
+ - !470 docs: Clarify return/error behaviour of D-Bus signal subscriptions
+ - !472 gdbusmessage: Gracefully handle message signatures with invalid types
+ - !477 gthread: Remove unsynchronized access to g_once_init_list from assertion
+ - !478 Deprecate TLS rehandshaking
+ - !480 docs: add a missing semicolon
+ - !482 Check for 'z' library before fallbacking to subproject
+ - !483 meson: Turn selinux into a meson feature and make it auto by default
+ - !484 Meson: Add 'nls' option to disable translation
+ - !485 gdbus-codegen: Tag interfaces and properties so annotated with G_PARAM_DEPRECATED
+ - !486 Check for zlib header
+ - !489 glib-mkenums: Support reading @rspfiles for arguments
+ - !490 gspawn: Fix g_spawn deadlock in a multi-threaded program on Linux
+ - !491 Meson: Add missing include_directories when using glib as subproject
+ - !492 g_value_get_variant: return value is transfer-none not transfer-full
+ - !494 Resolve "Follow-up from "gunixmounts: Stop considering cifs/nfs as system file systems""
+ - !500 genviron: make g_environ_* case-insensitive on Windows
+ - !504 tests: Unset LANGUAGE when running gdatetime tests
+ - !505 Support isolating directories for unit tests
+ - !508 ci: Install additional locales used during tests
+ - !510 Add new Linux Testing project version number to configure script
+ - !511 gvariant: Fix error handling for parsing Unicode escapes
+ - !514 fix gdbus-codegen --interface-info-{header,body}
+ - !515 binding: Clarify the use of g_object_unref() to remove a binding
+ - !517 Meson: Fix deprecation warning with upcoming 0.49.0 release
+ - !518 Meson: Fix declare_dependency() calls
+ - !520 GTlsConnection: add ALPN support
+ - !521 tests: Rename macro to avoid conflict with encoding prefix
+ - !522 gtlscertificate: Add support for TPM keys in PEM files
+ - !524 gdatetime: Fix typo in the comment
+ - !528 Add GRecMutexLocker
+ - !530 tests: Minor improvements to mkenums.py and taptestrunner.py used by it
+ - !534 gtlscertificate: Fix bug in PEM private key parser
+ - !536 Various minor docs fixes
+ - !541 gtimezone: Fallback to /etc/timezone on Gentoo
+ - !546 spawn: add shebang line to script
+ - !547 Do not check for NULL when calling free()
+ - !549 Improve documentation of g_assert_error()
+ - !551 Revert "tests: Fix GOptionContext leak in GSubprocess tests"
+ - !554 Only subscribe to owner-changed signals on message bus connections
+ - !555 Suppress -Wint-in-bool-context warning with G_DEFINE_INTERFACE and g++
 
 * Translation updates:
- Basque
- Brazilian Portuguese
- Czech
- Friulian
- German
- Indonesian
- Italian
- Lithuanian
- Occitan
- Polish
- Turkish
- Slovak
- Slovenian
- Spanish
- Swedish
-
-Overview of changes in GLib 2.58.1
-==================================
-
-* Fix to a regression in listing GIcon fallbacks (#1513)
-
-* Changes to pkg-config paths to helper programs when building with autotools:
-  paths are now absolute with reference to the .pc file’s ${prefix} (#1521)
-
-* Fix installation path of glib-gettextize helper on Meson (!290)
-
-* Fix autostarting xdg-desktop-portal (!321, a backport of !317)
-
-* Various fixes to the network monitor (#1518, !294)
-
-* Various compilation fixes on macOS (generally older versions and older
-  compilers)
-
-Bugs fixed:
- !318 codegen: Change pointer casting to remove type-punning warnings
- #1513 GIcon regression?
- #1521 pkg-config files differ between Autotools and Meson build
- !321 Backport “Autostart xdg-desktop-portal if needed” to glib-2-58
- #1518 /network-monitor/create-in-thread fails in (LXC) containers on glib-2-56
- #1509 test_timeval_to_iso8601_overflow: 'out' should be NULL
- !288 Backport `command -v` vs `which` changes to glib-2-58
- !298 GLib 2.58 backports of various small patches
-   !295 meson: fix typo
-   !294 portal network monitor: Always emit changed signal on changed
-   !290 build: fix installation dir of glib-gettextize
-   #1488 ‘O_CLOEXEC’ undeclared (first use in this function)
-   #1506 error: redefinition of typedef 'GKqueueFileMonitor'
-
-* Translation updates:
- Brazilian Portuguese
- Czech
- Danish
- Greek
- Hungarian
- Latvian
- Swedish
+ - Brazilian Portuguese
+ - Czech
+ - Danish
+ - Greek
+ - Hungarian
+ - Lithuanian
+ - Norwegian bokmål
+ - Polish
+ - Slovak
+ - Slovenian
+ - Spanish
+ - Swedish
+ - Turkish
 
 
 Overview of changes in GLib 2.58.0
index 62236d0..e6f8ef7 100644 (file)
@@ -246,5 +246,5 @@ for /r %f in (*.exe.manifest) do if exist $(PREFIX)\bin\%~nf mt /manifest %f $(P
  remove all running instances of cl.exe, which will cause the build process to terminate.  Update
  the build flags of the sources that hang on compilation by changing its "/O2" flag to "/O1"
  in build.ninja, and  retry the build, where things should continue to build normally.  At the
- time of writing, this is needed for compiling glib/gtestutils.c,  gio/gsettings.c and
- gio/gsettingsschema.c
+ time of writing, this is needed for compiling glib/gtestutils.c,  gio/gsettings.c,
+ gio/gsettingsschema.c and gio/tests/gsubprocess-testprog.c
diff --git a/build/ChangeLog b/build/ChangeLog
deleted file mode 100644 (file)
index bbe0569..0000000
+++ /dev/null
@@ -1,591 +0,0 @@
-2009-01-13  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/README
-       * win32/vs9/README: New files. Mention this VS solution and
-       projects are experimental and that https://code.launchpad.net/oah
-       might be a better choice.
-
-       * win32/vs8/Makefile.am
-       * win32/vs9/Makefile.am (EXTRA_DIST): Add the READMEs and two
-       missing vcproj files.
-
-2008-11-02  Tor Lillqvist  <tml@novell.com>
-
-       * win32/Makefile.am (SUBDIRS): Add vs9.
-
-2008-11-02  Tor Lillqvist  <tml@novell.com>
-
-       Bug 558153 - Patch for .def files generation
-
-       * win32/{vs8,vs9}/*.vcproj: Add &quot; around paths, making it
-       possible to compile in a directory containing spaces. .def files
-       generation is done for every configuration not only the "Debug"
-       ones.
-
-       Patch by Guillaume Duhamel.
-
-2008-09-16  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs9: New folder. Project files for use with MSVS9. Based
-       on the MSVS8 project files is win32/vs8. Four configurations:
-       Debug|Win32, Release|Win32, Debug|x64 and Release|x64. DLL names
-       simplified to of the style glib-2-vs9.dll.
-
-2008-09-15  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/*.vcproj: Update to match the Makefile.am files. Drop
-       G*_EXPORTS from PreprocessorDefinitions, nothing looks for such
-       macros. Add G_DISABLE_DEPRECATED.
-
-       Don't use Detect64BitPortabilityProblems as those warnings are
-       misleading. They don't take into consideration ifdefs in
-       glibconfig.h and elsewhere for _WIN64.
-
-       Add PCRE_STATIC for glib to avoid exporting the pcre
-       functions. Add DLL_EXPORT to glib to export also the GLIB_VAR
-       variables that aren't mentioned in glib.symbols. Add G_LOG_DOMAIN
-       for gobject.
-
-       Drop the "win32" part from under "dependencies" so that the same
-       project files can be used also for 64-bit compilation by just
-       having a different "dependencies" folder containing 64-bit
-       packages instead. At least, I hope it will work out some way like
-       that. MSVS project files really are a pain to maintain.  Much
-       information is typically copied for four different configurations
-       "Debug|Win32", "Release|Win32", "Debug|x64" and "Release|x64"
-       instead of having common stuff listed just once and only different
-       parametrisations. Or am I missing something?
-       
-       Make the "Release" configuration work, too. Use correct character
-       set for the gspawn-win32-helper programs. Use correct subsystem
-       for the non-console one.
-
-2008-08-27  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/*.vcproj: Add "win32" directory level to the
-       references to the dependencies folder (which each actual user of
-       the project file probably needs to edit anyway depending on their
-       directory structure). Add missing files, remove nonexistent files.
-
-       * win32/vs8/glib.vcproj: Don't needlessly copy localcharset.c, but
-       compile it where it is in libcharset. Drop dirent as gdir.c
-       includes dirent.h and wdirent.c directly. Handle also
-       G_GNUC_FORMAT in the custom build step for glib.symbols.
-
-2008-08-02  Tor Lillqvist  <tml@novell.com>
-
-       Bug 545954 - 64-bit issue in dirent
-
-       * win32/dirent/dirent.h: Use __int64 for the dd_handle on 64-bit
-       Windows. (Would use intptr_t, but that is not available before
-       MSVS8, and we want to keep this compilable also with MSVS6 and 7,
-       I think.) Thanks to Richard Hult.
-
-2008-05-19  Tor Lillqvist  <tml@novell.com>
-
-       * win32/dirent/dirent.c: Include dirent.h with doublequotes so
-       that it is searched from this same folder first.
-
-2008-05-19  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/gspawn-win32-helper.vcproj
-       * win32/vs8/gspawn-win32-helper-console.vcproj: New files. Build
-       these two executables.
-
-       * win32/vs8/*.vcproj: Compile as C and not C++.
-
-       * win32/vs8/glib-genmarshal.vcproj: Use MBS and not Unicode. (What
-       this setting really means is just that we don't define the UNICODE
-       and _UNICODE macros when compiling; it has no effect on what APIs
-       the code might use.) Use the same IntermediateDirectory as the
-       other projects.
-
-       * win32/vs8/glib.sln: Add the gspawn-win32-helper and gspawn-win32-helper projects.
-
-2008-05-17  Tor Lillqvist  <tml@novell.com>
-
-       * "build" is no longer include into GLib through
-       svn:externals. The relevant directories and files have been svn
-       add'ed to GLib (trunk) instead.
-
-2008-05-16  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/glib.vcproj: Add gi18n.c.
-
-       * win32/vs8/gio.vcproj: Add gwin32directorymonitor.c.
-
-       * win32/vs8/glib-genmarshal.vcproj: Put also glib-genmarshal.exe
-       in the "bin" folder.
-
-2008-04-23  Tor Lillqvist  <tml@novell.com>
-
-       Bug 529391 - Update of vs8 build files for Glib 2.16
-
-       * win32/vs8/*: Update from Danel Atallah.
-
-2008-03-12  Tor Lillqvist  <tml@novell.com>
-
-       * MAINTAINERS: Add.
-
-       * win32/make.mingw: Remove this since long unused and obsolete
-       file from SVN.
-
-       * win32/make.msc: Don't mention it here either then.
-
-2007-04-15  Tor Lillqvist  <tml@novell.com>
-
-       * .cvsignore
-       * win32/.cvsignore
-       * win32/dirent/.cvsignore
-       * win32/vs8/.cvsignore: Remove.
-
-2006-10-14  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/gmodule.vcproj
-       * win32/vs8/gobject.vcproj
-       * win32/vs8/gthread.vcproj: Updates by Mike Edenfield. (#354124)
-
-2006-09-02  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/glib.vcproj: Update from Mike Edenfield.
-
-2006-02-08  Tor Lillqvist  <tml@novell.com>
-
-       * win32/vs8/glib-genmarshal.vcproj: New file: Visual Studio
-       project file for glib-genmarshal.exe, by Sergey Scobich.
-
-       * win32/vs8/Makefile.am
-       * win32/vs8/glib.sln: Add it.
-
-2006-01-31  Tor Lillqvist  <tml@novell.com>
-
-       * win32/Makefile.am (EXTRA_DIST): Drop the obsolete shell scripts
-       and make.mingw.
-
-       * win32/vs8/*: Visual Studio 2005 project files for GLib
-       contributed by Sergey Scobich. (#328691)
-
-       * win32/Makefile.am (SUBDIRS): Add vs8.
-
-       * win32/make.msc (LINKDEBUG): Use /nodefaultlib:msvcrt.lib when
-       debugging. (#329325, Timo Linna)
-
-2005-09-01  Tor Lillqvist  <tml@novell.com>
-
-       * win32/cl-wrapper.c: Again spent some hours hacking on this. Now
-       the compilation phase of building libglib autoconfiscated using
-       CC=cl-wrapper seems to work. But problems in the linking phase,
-       for instance -Wl,--whole-archive isn't implemented, and I don't
-       think link.exe even has a such feature to include all of a
-       library. Argh. To implement -Wl,--whole-archive, would need to
-       extract the library contents into a temp directory and link with
-       all the resulting object files. Sigh.
-
-2005-07-09  Tor Lillqvist  <tml@novell.com>
-
-       * README: When using auto*/libtool/gcc to build GLib, Pango and
-       GTK+, the scripts to compile resource files in build/win32 are no
-       longer used. Still here in case somebody wants to have a look,
-       though.
-       
-2005-02-06  Hans Breuer  <hans@breuer.org>
-
-       * win32/make.msc win32/module.defs : updated to include Cairo,
-       gnome-canvas, gnome-print(ui), libart, pangoft2, libxml2, libxslt
-
-2004-12-29  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/cl-wrapper.c: More hacking. Implement -idirafter
-       correctly, amending the INCLUDE environment variable. Ignore
-       -lm. Error if multiple -o options. Copy input libs called foo.a to
-       foo.temp.lib so that link knows what they are. Remove dead
-       code. Link with same default libraries as mingw's gcc. Use
-       indirect command line file if command line is too long.
-
-2004-12-12  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/cl-wrapper.c: Hack more on this. Using MSVC is necessary
-       if one wants to use tools like Purify or BoundsChecker.
-
-2004-08-11  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/dirent/dirent.[ch]: Update from mingw-runtime-3.3.
-       Implements both normal and wide-char versions.
-
-       * win32/dirent/wdirent.c: New file.
-
-       * win32/dirent/Makefile.am (EXTRA_DIST): Add wdirent.c.
-
-2004-05-01  Hans Breuer  <hans@breuer.org>
-
-       * win32/make.msc : -DG_ENABLE_DEBUG=1 for debug builds
-       (#141335, John Ehresman)
-
-2004-03-05  Federico Mena Quintero  <federico@ximian.com>
-
-       Fix #136082, patch by Morten Welinder.
-
-       * win32/cl-wrapper.c: #include <config.h>
-       * win32/dirent/dirent.c: Likewise.
-
-2004-01-24  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/compile-resource
-       * win32/lt-compile-resource: Use /bin/sh instead of /bin/bash, as
-       MSYS doesn't come with any /bin/bash. When compiling with
-       --enable-static and --disable-shared flag, libtool creates *.lo
-       files as scripts, but the *.o files are in "." and not in
-       ".libs". Thanks to Fridrich Strba.
-
-2003-11-15  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/dirent/makefile.msc: Improve. (#126913, John Ehresman)
-
-2003-08-08  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/cl-wrapper.c: Fix bug in environment variable
-       handling. Support --version flag. Prefix double quotes in -I and
-       -D parameters with backslash.
-
-2003-06-06  Tor Lillqvist  <tml@iki.fi>
-
-       * win32(compile-resource (resfile): Support a WINDRES environment
-       variable. (#112387, J. Ali Harlow)
-
-2002-09-28  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw: Add libxml2 CFLAGS and LIBS
-       (suggestion by Steffen Macke).
-
-2002-09-17  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/compile-resource: Return failure (implicitly, as the
-       return status of the last command executed) if m4 or windres
-       fails. Thanks to charlet@act-europe.fr (#93373).
-
-2002-09-13  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/lt-compile-resource: Argh. With some libtool versions, or
-       when the moon is in a certain phase, libtool creates the actual
-       object files as .lo files. Otherwise .lo files are small scripts
-       (which is what lt-compile-resource has always thought until now).
-       Add an ugly hack that tries to determine which kind of .lo files are
-       used, and act correspondingly.
-
-2002-09-10  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs: Remove GTK_VER which was misleading and
-       unused. Ditto for GTKGLAREA_VER. Add comment about taking this
-       stuff with a very big grain of salt.
-
-2002-03-27  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs
-       * win32/make.msc
-       * win32/make.mingw: Try to make up-to-date with GLib 2.0, ATK 1.0,
-       Pango 1.0 and GTK+ 2.0. This stuff is starting to feel more and
-       more quaint, though. Remove the FriBiDi references, Pango uses its
-       own mini-fribidi version. Use the names GTK2_CFLAGS and _LIBS also in
-       make.mingw, not GTKCURRENT_*.
-
-2001-12-05  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw (LIBICONV_LIBS): Fix typo: pkg-config --libs,
-       not --cflags. Thanks to Victor Secarin.
-
-       * win32/build-dll: Don't call dirname blindly on $0 which might be
-       a Windows-style (drive letter, backslashes) pathname. Thanks to
-       Victor Secarin. Remove mention of Platform SDK, it doesn't
-       include the linker any longer.
-
-2001-10-31  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw (TIFF_LIBS): We can use same import library for
-       non-LZW and LZW-enabled versions. Just let the user decide which
-       DLL to use.
-
-2001-10-30  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw: Use pkg-config for more stuff. The
-       corresponding .pc files are included in the new packages on
-       www.gimp.org/win32/new-downloads.html. 
-
-       * win32/dirent/dirent-zip: New file, script to package a developer
-       package of dirent.h and dirent.lib.
-
-       * win32/dirent/Makefile.am (EXTRA_DIST): Add it.
-
-2001-10-24  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw: Also try to include module.defs from the build
-       subdirectory of GLib.
-
-       * win32/make.msc: When DEBUG, use -Zi, otherwise -Zi. Always use
-       /machine:ix86.
-
-2001-10-23  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/cl-wrapper.c: Various changes. I don't actually use this
-       to build with libtool and MSVC, only to run configure for MSVC. At
-       least for now.
-
-       * win32/make.mingw: Use pkg-config to get CFLAGS and LIBS for GLib
-       and GTK.
-
-       * win32/make.msc: Use GDK and GTK import library names now
-       produced in gtk-1-3-win32-production.
-
-2001-10-10  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs (PNG): Use libpng 1.2.0.
-
-       * win32/lt-compile-resource: Mkdir .libs if not there already.
-
-2001-09-30  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/build-dll: Comment clarification.
-
-       * win32/Makefile.am: Add dirent subdirectory.
-
-       * win32/dirent/*: New files. The (public domain) dirent
-       implementation from the mingw runtime, for MSVC users.
-
-       * win32/make.msc (DIRENT_CFLAGS,DIRENT_LIBS): Point to
-       build/win32/dirent in the GLib sources. Hmm.
-       (CC): Remove duplicate $(OPTIMIZE), already in CFLAGS.
-       
-2001-09-28  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw
-       * win32/make.msc: Separate the compiler program names into
-       an Make macro of its own (CCOMPILER and CXXCOMPILER).
-
-       * win32/cl-wrapper.c: New file. A program that accepts Unix-like C
-       compiler command line arguments, and runs the Microsoft C compiler
-       (cl) after transforming the arguments to cl's syntax. This program
-       can be used when using the auto*/configure mechanism to build
-       software with MSVC.
-
-2001-09-25  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs: Do define GLIB_VER after all. (Do use it in
-       (import) library names, like it is on Unix.)
-
-       * win32/make.mingw
-       * win32/make.msc: Some comments added. Use GLIB_VER in GLib
-       (import) library names.
-
-2001-09-17  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/build-dll: Invocation changed. We now expect a version
-       info like libtool's -version-info parameter. The intention is to
-       produce the same name DLL as libtool would, i.e. use "current -
-       age" as the DLL name suffix.
-
-       * win32/compile-resource: New file, containing the part of
-       build-dll that compiles the resource file, if available.
-
-       * win32/lt-compile-resource: New file, invokes compile-resource,
-       placing the resulting .o file in the .libs subdirectory, and
-       handcrafts a "libtool object" for it.
-
-       * win32/Makefile.am: Distribute new files.
-
-       * win32/make.mingw: Add COMPILE_RESOURCE.
-
-Tue Sep  4 01:46:15 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * win32/Makefile.am (EXTRA_DIST): Add build-dll, on
-       the assumption it isn't going to get distributed otherwise.
-
-2001-09-01  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/build-dll: Move here from GLib. Use gcc -shared instead of
-       the multiple pass gcc+dlltool method. Don't include the version
-       number in the import library names.
-
-       * win32/make.mingw
-       * win32/make.msc: Correspondingly, remove the version number parts
-       from (some) import library names. (Just a start, more to follow.)
-
-       * win32/module.defs: In fact, no need to know the versions at all
-       for stuff that doesn't include it as part of the directory name.
-       
-2001-01-06  Hans Breuer  <hans@breuer.org>
-
-       * win32/module.defs : renamed GTKCURRENT to GTK2 and some
-       version number updates
-
-       * win32/make.msc : added GTK2_CFLAGS and GTK2_LIBS, now used
-       by CVS HEAD Gimp. Minor updates,
-
-2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * win32/make.mingw: Redid CFLAGS.
-
-       * win32/make.mingw (CXX): Removed PTHREAD defs. Added -O2 -Wall to
-       compile flags.
-
-2001-01-06  Hans Breuer  <hans@breuer.org>
-
-       * win32/make.msc win32/module.defs : added ATK,
-       adapted Pango version
-
-2001-03-19  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs (GLIB_GENMARSHAL): Add macro for glib-genmarshal.
-
-2001-02-17  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.{mingw,msc} (INTL_LIBS): Call the import library just
-       libintl, not gnu-intl, for consistency with Unix conventions. (The
-       DLL is still called gnu-intl.dll, using such a generic name as
-       just "intl.dll" would be asking for trouble.)
-
-2001-01-28  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs
-       * win32/make.mingw
-       * win32/make.msc : Use libiconv 1.5.1. Use libiconv's import
-       library as built by its Makefile.msvc, without any version
-       number. Use the same convention for the GNU-style import library.
-
-2000-12-27  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.{mingw,msc} (TIFF_LIBS): Provide separate TIFF_LZW
-       and TIFF_NOLZW.
-
-2000-12-21  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/*: Add version number for FreeType2. We need the FT2
-       library built as a DLL, and append the vesion number to its name,
-       too.
-
-2000-12-20  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs (FRIBIDI_VER): Use FriBidi 0.1.15.
-
-2000-12-14  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.msc: Split C runtime flag (-MD or -MDd) to a separate
-       macro.
-
-2000-11-15  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs (PANGO_VER): Update Pango version to 0.13.
-
-2000-10-22  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.msc (PANGO_LIBS): Include version in Pango lib names.
-
-2000-10-07  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.msc: Improve to be more useable.
-
-2000-09-12  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.{mingw,msc}: Add PTHREAD_LIBS and PTHREAD_CFLAGS.
-
-2000-08-24  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs: Add separate version number for gdk-pixbuf.
-
-       * win32/make.mingw: Add C++ defs.
-
-2000-08-20  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/*: Remove FREETYPE2_20000624, not needed any
-       longer by gimp-freetype.
-
-       * win32/make.mingw: Add rule to produce assembler source.
-
-       * win32/make.msc: Fix syntax error. Add CFLAGS.
-
-2000-08-05  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs
-       * win32/make.{mingw,msc}: Rename the FreeType2 snapshot from 2000-06-24
-       (used by gimp-freetype). Use the name "FreeType2" for the current
-       FreeType2.
-       
-2000-07-30  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs
-       * win32/make.mingw
-       * win32/make.msc: Rename XML to LIBXML. Use version 0.14 of
-       it. Add LIBXML_CFLAGS and _LIBS. Add GTKCURRENT referring the
-       current CVS GTK+ (nonworking on Win32).
-       
-2000-07-25  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw (PANGO_LIBS): Typo.
-
-2000-07-21  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/*: Reorder stuff to be in alphabetical order of package
-       names. Add GtkGLArea. Add path to OpenGL headers.
-
-2000-07-18  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs (FRIBIDI_VER)
-       * win32/make.{mingw,msc} (FRIBIDI_LIBS): Use correct version
-       of FriBidi.
-
-2000-07-15  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw
-       * win32/make.msc
-       * win32/module.defs: Add Pango.
-
-2000-07-10  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/module.defs: 
-       * win32/make.msc: New files. Factor out common stuff to module.defs.
-       make.msc is for nmake and MSVC. Thanks to Hans Breuer.
-
-       * win32/Makefile.am: Add them to EXTRA_DIST.
-
-       * win32/make.mingw: Move part to module.defs. Ugly hack to find
-       module.defs.
-
-2000-07-02  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw: Addd FriBidi and libiconv. Add USRDIR for
-       headers and libs that are "installed".
-
-2000-06-07  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw: Clarify where this stuff should be located.
-
-       * Makefile.am
-       * win32/Makefile.am: New files. Only set SUBDIRS and EXTRA_DIST.
-
-2000-05-29  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw: Add gmodule directory to GLib includes. Use
-       freetype2 directory called just that.
-
-2000-05-13  Tor Lillqvist  <tml@iki.fi>
-
-       * README: Remove the original README text.
-
-       * win32/make.mingw: Define macros for CFLAGS and LIBS of GLib,
-       GTk+, intl, freetype2, zlib, libjpeg, libtiff and GIMP. Remove the
-       WIN32APIHEADERS, that is now taken care of in glib/build-dll.
-
-2000-05-05  Tor Lillqvist  <tml@iki.fi>
-
-       * win32/make.mingw: Add GIMP_VER. Add path to GIMP and freetype2
-       sources.
-
-2000-05-04  Tor Lillqvist  <tml@iki.fi>
-
-       * ChangeLog: Start ChangeLog.
-
-       * README: Change purpose of this directory.
-
-       * win32/make.mingw: New file.
-
-       * build.inf
-       * cvs.py
-       * write.py: Remove.
index 8a834e7..fd5a4da 100644 (file)
@@ -2,6 +2,5 @@ SUBDIRS = \
        win32
 
 EXTRA_DIST = \
-       README \
-       ChangeLog
+       README
 
index e18345d..6888259 100644 (file)
@@ -30,9 +30,9 @@ m4_define(glib_configure_ac)
 # <mclasen> on the unstable (ie master), interface age = 0
 
 m4_define([glib_major_version], [2])
-m4_define([glib_minor_version], [58])
-m4_define([glib_micro_version], [3])
-m4_define([glib_interface_age], [3])
+m4_define([glib_minor_version], [59])
+m4_define([glib_micro_version], [0])
+m4_define([glib_interface_age], [0])
 m4_define([glib_binary_age],
           [m4_eval(100 * glib_minor_version + glib_micro_version)])
 m4_define([glib_version],
@@ -63,7 +63,7 @@ AC_CONFIG_MACRO_DIR([m4macros])
 # Save this value here, since automake will set cflags later
 cflags_set=${CFLAGS:+set}
 
-AM_INIT_AUTOMAKE([1.13.3 -Wno-portability no-define no-dist-gzip dist-xz tar-ustar subdir-objects])
+AM_INIT_AUTOMAKE([1.13.3 -Wno-portability no-define no-dist-gzip dist-xz tar-ustar subdir-objects foreign])
 AM_MAINTAINER_MODE([enable])
 
 # Support silent build rules. Disable
@@ -338,12 +338,12 @@ AC_PROG_AWK
 # python.m4 will get the expected input
 AC_ARG_WITH(python,
             AS_HELP_STRING([--with-python=PATH],
-                           [Path to Python interpreter; searches $PATH if only a program name is given; if not given, searches for a few standard names such as "python3" or "python2"]),
+                           [Path to Python interpreter; searches $PATH if only a program name, such as "python3" or "python3.4", is given; if not given, searches for a few standard names]),
             [PYTHON="$withval"], [])
 if test x"$PYTHON" = xyes; then
   AC_MSG_ERROR([--with-python option requires a path or program argument])
 fi
-AM_PATH_PYTHON(2.7,,PYTHON="python2.7")
+AM_PATH_PYTHON(3.4,,[AC_MSG_ERROR([Requires Python >=3.4])])
 
 
 dnl ***********************
@@ -862,6 +862,7 @@ AC_CHECK_FUNCS(getmntent_r setmntent endmntent hasmntopt getfsstat getvfsstat fa
 case $host_os in aix*) ac_cv_func_splice=no ;; esac # AIX splice() is something else
 AC_CHECK_FUNCS(splice)
 AC_CHECK_FUNCS(prlimit)
+AC_CHECK_FUNCS(getauxval)
 
 # To avoid finding a compatibility unusable statfs, which typically
 # successfully compiles, but warns to use the newer statvfs interface:
@@ -2608,7 +2609,7 @@ AS_IF([ test "x$use_gcov" = "xyes"], [
     AC_MSG_ERROR([ccache must be disabled when --enable-coverage option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
   fi
 
-  ltp_version_list="1.6 1.7 1.8 1.9 1.10 1.12"
+  ltp_version_list="1.6 1.7 1.8 1.9 1.10 1.12 1.13"
   AC_CHECK_PROG(LTP, lcov, lcov)
   AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
 
diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog
deleted file mode 100644 (file)
index 9295bc8..0000000
+++ /dev/null
@@ -1,4152 +0,0 @@
-=== ChangeLog discontinued ===
-
-       With the move to git, GLib is switching from a ChangeLog file
-       to relying on commit messages to provide change history. Please
-       see README.commits for guidance on the expected message format.
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.20.0 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.10 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.9 ===
-
-2009-03-01  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 573128 – A couple of typos in GObject documentation
-
-       * gobject/tut_gobject.xml: Fix some typos. Reported by Dimitri Vorbiev
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.8 ===
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.7 ===
-
-2009-02-06  Stefan Kost  <ensonic@users.sf.net>
-
-       * gio/gio-docs.xml:
-       * glib/glib-docs.sgml:
-       * gobject/gobject-docs.sgml:
-         Add online urls for library.gnome.org. This allows other docs to do
-          gtkdoc-rebase --online --html-dir=html
-          before publishing docs and have working xrefs.
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.6 ===
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.5 ===
-
-2009-01-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt:
-       * glib/tmpl/base64.sgml: Mention g_base64_decode_inplace
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.4 ===
-
-2009-01-02  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/tmpl/string_utils.sgml: Move most function docs inline.
-
-2009-01-01  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 565831 – error in interface creation sample
-
-       * gobject/tut_howto.xml: Fix an example. Pointed out by
-       Jens Georg.
-
-2008-12-15  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.3 ===
-
-2008-12-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add new functions
-
-2008-12-07  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 563156 – Document printing and scanning gunichar values
-
-       * glib/tmpl/unicode.sgml: Document printing and scanning gunichar
-       values.
-
-2008-12-07  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 563150 – G_GU?INT*_MODIFIER/FORMAT docs
-
-       * glib/tmpl/glib-unused.sgml:
-       * glib/tmpl/macros_misc.sgml:
-       * glib/tmpl/types.sgml:
-       Update docs to mention scanning as well as printing.
-       Cross reference these from their respective types.
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.2 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.1 ===
-
-2008-12-01  Alexander Larsson  <alexl@redhat.com>
-
-        Reviewed by NOBODY (OOPS!).
-
-        * gio/gio-sections.txt:
-
-2008-11-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/running.sgml: Mention all and help special options in
-       debug envvars.
-
-2008-11-30  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 562538 – GObject interface tutorial shouldn't finalise with
-       "Please forget everything"
-
-       * gobject/tut_gtype.xml: Remove the questionable closing sentence
-       and all references to private functions. Pointed out by Christian
-       Dywan.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 559452 – GObject Reference Manual (typo)
-       Bug 559462 – GObject Reference Manual (typo)
-       Bug 559517 – GObject Reference Manual (typo)
-
-       * gobject/tut_howto.xml:
-       * gobject/tut_gsignal.xml: 
-       * gobject/tut_gobject.xml: Fix typos, found by Andrew Feren.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add g_app_info_get_commandline
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/keyfile.sgml: Explain locale identifiers in
-       more detail
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 562549 – g_byte_array_free should tell how free data
-
-       * glib/tmpl/arrays_byte.sgml: Improve docs, proposed by
-       Guillaume Desmottes
-
-2008-11-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/Makefile.am:
-       * gobject/Makefile.am:
-       * gio/Makefile.am: Use a new gtk-doc feature to generate
-       much nicer indices.
-
-2008-11-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add G_STATIC_ASSERT and friends
-
-2008-11-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add G_FILE_ATTRIBUTE_PREVIEW_ICON
-
-2008-11-10  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 559448 – GObject Reference Manual (typo)
-
-       * gobject/tut_gobject.xml: Fix typo.
-
-2008-11-03 Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 552776 – ac_cv_func_posix_getgrgid_r not mentioned
-
-       * glib/cross.sgml: Mention ac_cv_func_posix_getgrgid_r.
-
-2008-10-29 16:04:38  Tim Janik  <timj@gtk.org>
-
-       * glib/tmpl/macros_misc.sgml: Clarified/added docs for
-       G_STRINGIFY, G_PASTE and G_STATIC_ASSERT, based on
-       patches from Christian Persch and  Christian Dywan.
-
-2008-10-21  Alexander Larsson  <alexl@redhat.com>
-
-        * gio/gio-sections.txt:
-       Update with new symbolse
-
-2008-10-16  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.0 ===
-
-       * gio/gio-sections.txt: Add new api
-
-       * gobject/gobject-docs.sgml: 
-       * gio/gio-docs.xml: Add new indexes
-
-2008-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/Makefile.am: Don't specify multiple directories in
-       DOC_SOURCE_DIR. It doesn't work.
-
-2008-09-26  Dan Winship  <danw@gnome.org>
-
-       * glib/tmpl/testing.sgml: Fix lots of typos, document
-       g_assert_error() and g_assert_no_error()
-
-2008-09-26`  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/iochannel.sgml: Move more docs inline
-
-2008-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.1 ===
-
-2008-09-15  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 552359 – g_file_info_get_icon should return GThemedIcon, and
-       g_themed_icon_get_names shold be documented ?
-
-       * gio/gio-sections.txt: Add g_themed_icon_get_names. 
-
-2008-09-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/modules.sgml: Reinstate docs that somehow got lost.
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.0 ===
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-sections.txt: Add g_object_get_type
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 550056 – Missing documentation for g_emblemed_icon_get_emblems
-
-       * gio/gio-sections.txt: Add some missing GEmblem functions.
-       Noticed by Cosmio Cecchi
-
-2008-08-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/i18n.sgml: Add hint about intltool to NC_() docs.
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.7 ===
-
-2008-08-16  Matthias Clasen  <mclasen@redhat.com>
-       
-       * gio/gio-sections.txt: Fix a typo
-
-2008-08-15  Tor Lillqvist  <tml@novell.com>
-
-       * glib/tmpl/threads.sgml: Add an exception: g_mem_set_vtable() may
-       be called before g_thread_init().
-
-2008-08-15  Tor Lillqvist  <tml@novell.com>
-
-       * glib/tmpl/threads.sgml: Warn about the consequences of not
-       calling g_thread_init() first, if it will be called at all. Advice
-       calling it if using random GLib-based libraries.
-
-2008-08-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 547262 – Missing link in the docs
-
-       * glib/tmpl/gregex.sgml: Fix a reference.
-       Pointed out by Bastien Nocera
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.6 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio.types:
-       * gio/gio-docs.xml:
-       * gio/gio-sections.txt: Add Gemblem
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.5 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-docs.sgml: Add a 2.18 index
-
-2008-08-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add some more GEmblemedIcon things.
-
-       * glib/tmpl/testing.sgml: Fix a typo. Noticed by Marek Kasik.
-
-2008-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_markup_context_get_user_data
-
-2008-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt:
-       * gio/gio-docs.xml: Add GEmblemedIcon 
-
-2008-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.4 ===
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-sections.txt: Add new signal api.
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt:
-       * glib/tmpl/i18n.sgml: Add new gettext stuff
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 530759 – update the gobject tutorial to the XXI century
-
-       * gobject/*: Some updates to the tutorial. Patch by Emmanuele
-       Bassi.
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add g_content_type_guess_for_tree
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 543220 – Case collision on gio-extension-points.html
-
-       Reported by Ryan Schmidt
-       * gio/overview.xml: Rename id to avoid filename conflict.
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 543168 – Description of G_SLICE=debug-blocks discourages its use
-
-       * glib/running.sgml: Improve docs of G_SLICE=debug-blocks.
-       Patch by Alessandro Vesely.
-
-2008-07-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add new GMount functions
-
-2008-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 521589 – [RFC] gobject documentation should mention Vala
-
-       * gobject/tut_tools.xml: Add a reference to Vala.
-       Patch by Marc-Andre Lureau.
-
-2008-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Move g_strcmp0 to a more appropriate
-       place in the docs.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.3 ===
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add g_desktop_app_info_new_from_keyfile
-       and g_file_monitor
-
-2008-07-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio.types: Add missing types. Pointed out by David Zeuthen.
-
-2008-06-24  Michael Natterer  <mitch@imendio.com>
-
-       * glib/Makefile.am
-       * gobject/Makefile.am: don't comment out the include of
-       Makefile.decl just because there are no tests. It needs to be
-       included in each Makefile.am or make check will fail.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * glib/Makefile.am:
-       * gobject/Makefile.am:
-         Unify the Makefiles. In glib only scan glib folders.
-
-2008-06-16  Ross Burton  <ross@burtonini.com>
-
-       * gio/gio-sections.txt:
-       Add g_file_enumerator_get_container.
-
-2008-06-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_MAY_ALIAS
-
-       * glib/tmpl/testing.sgml: Move docs around, and add more
-
-       * glib/tmpl/unicode.sgml: Document break types
-
-       * glib/tmpl/hash_tables.sgml: Add docs for GHashTableIter
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.17.2 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.1 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add some new symbols
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/running.sgml: Remove mention of G_WIN32_PRETEND_WIN9X
-
-2008-06-12  Ross Burton  <ross@burtonini.com>
-
-       * gio/gio-sections.txt:
-       Add g_file_make_directory_with_parents.
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Testing documentation fixups
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/gtester.xml:
-       * glib/gtester.1:
-       * glib/gtester-report.xml:
-       * glib/gtester-report.1:
-       * glib/glib-docs.sgml:
-       * glib/Makefile.am: Add gtester, gtester-report man pages
-
-2008-06-11  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/glib-sections.txt: Add g_dgettext() and g_dngettext().
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 535418 – Please document which glib version defines goffset
-
-       * glib/tmpl/types.sgml: Add a Since tag for goffset
-       Proposed by Holger Berndt
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528715 – Misprint in the description of the interface
-       g_type_class_add_private
-
-       * glib/tmpl/macros_misc.sgml:
-       * gobject/tmpl/gclosure.sgml:
-       * gobject/tmpl/gtype.sgml: Fix typos
-       Noticed by Areg Beketovski
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528714 – Misprint in the description of the interface 
-       g_param_spec_flags
-
-       * gobject/tmpl/param_value_types.sgml: Fix a typo.
-       Pointed out by Areg Beketovski
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 537260 – Doc bug in G_TYPE_INSTANCE_GET_CLASS()
-
-       * gobject/tmpl/gtype.sgml: Fix unclear parameter descriptions.
-       Pointed out by Behdad Esfahbod
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 530527 – Misprint in the description of the interface
-       g_cclosure_marshal_VOID__FLAGS
-
-       * gobject/tmpl/gclosure.sgml: Fix a duplication.
-       Noticed by Areg Beketovski
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 530526 – Misprint in the description of the fields 'class_init' 
-       and 'class_finalize' of the structure GTypeInfo
-
-       * gobject/tmpl/gtype.sgml: Improve GTypeInfo docs
-       Proposed by Areg Beketovski
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528719 – Improvement to the documentation of the
-       "g_object_connect" interface
-
-       * gobject/tmpl/objects.sgml: Improve the documentation of
-       g_object_connect. Proposed by Areg Bketovski
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528172 – gtk_signal_handlers_unblock_* functions return value
-       amount of matched signals, not amount of actually unblocked.
-
-       * gobject/tmpl/signals.sgml: Fix documentation of return value
-       of functions that operate on matched signal handlers.
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528717 – Misprint in the description of the parameter 
-       'type_id' for the interface g_type_register_fundamental
-
-       * gobject/tmpl/gtype.sgml: Remove references to GTypeFundamentals
-       Pointed out by Areg Beketovski
-
-2008-06-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528716 – Misprint in the description of the parameter 
-       'iface_data' for the callback types GInterfaceInitFunc and 
-       GInterfaceFinalizeFunc
-
-       * gobject/tmpl/gtype.sgml: Fix description of parameters
-       for GInterface{Init/Finalize}Func.
-       Pointed out by Areg Beketovski
-
-2008-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gparamspec.sgml: Document G_PARAM_STATIC_NICK
-
-2008-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add g_themed_icon_prepend_name
-
-2008-06-10 14:06:34  Tim Janik  <timj@imendio.com>
-
-       * gobject/tmpl/gtype.sgml: fixed documentation regarding type checking
-       macros that do and do not issue warnings.
-
-2008-05-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-docs.sgml:
-       * gio/gio-docs.sgml: Add indexes of 2.18 additions
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.0 ===
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/compiling.sgml: Document G_DISABLE_SINGLE_INCLUDES
-
-2008-05-27  Michael Natterer  <mitch@gimp.org>
-
-       * glib/tmpl/gurifuncs.sgml
-       * glib/tmpl/testing.sgml: new files.
-
-       * glib/tmpl/unicode.sgml
-       * glib/tmpl/macros_misc.sgml
-       * glib/tmpl/checksum.sgml: regenerated.
-
-       * Updated lots of svn:ignore all over the place.
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-       
-       Bug 535021 – g_param_spec_internal documentation should 
-       describe purpose of nick and blurb
-
-       * gobject/tmpl/gparamspec.sgml: Explain nicks and blurbs
-       some more.
-
-2008-05-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-docs.sgml: Add 2.18 index
-
-       * glib/glib-sections.txt: Add g_checksum_reset
-
-2008-05-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gclosure.sgml: Fix docs for
-       g_cclosure_marshal_STRING__OBJECT_POINTER. (#534177, Areg Beketovski)
-
-2008-05-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 527214 – g_timer_elapsed() returns random values.
-
-       * docs/reference/glib/tmpl/timers.sgml:
-       Add notes regarding gthreads dependency. 
-       Patch by Mathias Hasselmann
-
-2008-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Add new api
-
-2008-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 528648 – Extra >s in Object Construction section...
-
-       * gobject/tut_howto.xml: Fix a formatting glitch
-
-2008-05-14  Tor Lillqvist  <tml@novell.com>
-
-       * glib/tmpl/spawn.sgml: Don't mention fork()/exec() in the short
-       description. fork()/exec() is an implementation detail on Unix.
-
-2008-04-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/unicode.sgml: Updates for Unicode 5.1
-
-2008-04-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 526572 – Missing * in declaration of parent_class in Object
-       Destruction section of GObject Reference Manual
-
-       * gobject/tut_howto.xml: Add missing *.
-
-2008-04-03  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 525553 – fix typo and nitpicking in GArray documentation
-
-       * glib/tmpl/arrays.sgml: Correct an index in an example,
-       pointed out by Paul Bolle
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-       
-       * gio/gio-sections.txt: Add g_file_query_file_type.
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt:
-       * glib/tmpl/macros-misc.sgml: Document G_GNUC_ALLOC_SIZE
-       macros
-
-2008-03-28  A. Walton  <awalton@svn.gnome.org>
-
-       * gio/overview.xml:
-       Document GIO_EXTRA_MODULES, fixes a small typo.
-
-2008-03-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/overview.xml: Document GVS_DISABLE_FUSE.
-
-2008-03-12  Benjamin Otte  <otte@gnome.org>
-
-       * gio/gio-sections.txt:
-       g_file_contains_file() doesn't exist anymore
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.16.1 ===
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.0 ===
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/linked_lists_double.sgml:
-       * glib/tmpl/linked_lists_single.sgml: Remove docs that have
-       been inlined.
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/types.sgml: Add a Since marker for goffset (#521013,
-       Charles Kerr)
-
-2008-02-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/linked_lists_double.sgml: Move docs inline
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.6 ===
-
-2008-02-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Updates
-
-2008-02-21  Tor Lillqvist  <tml@novell.com>
-
-       * glib/running.sgml: Clarify character set issues on Windows.
-
-2008-02-13  Ryan Lortie  <desrt@desrt.ca>
-
-        * gio/gio-sections.txt: add G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT
-
-2008-02-12  Matthias Clasen <mclasen@redhat.com>
-
-       * gio/migration.xml: Add a note about mime monitoring
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.15.5 ===
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * gio/gio-docs.xml:
-       * gio/gio-sections.txt:
-       * gio/overview.xml: Documentation additions
-
-2008-02-10  Philip Withnall  <pwithnall@svn.gnome.org>
-
-       * glib/tmpl/modules.sgml: Improve the documentation for
-       the G_MODULE_EXPORT macro. (#514470)
-
-2008-02-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/i18n.sgml: Improve the documentation for the
-       N_() macro.  (#514053, Tommi Vainikainen)
-
-2008-01-29  Christian Persch  <chpe@gnome.org>
-
-       * glib/tmpl/macros_misc.sgml: G_GNUC_[PRETTY_]FUNCTION are
-       deprecated since 2.16, not 2.14.
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.4 ===
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/trees-nary.sgml: Move docs inline
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_(PRETTY)_FUNCTION
-       as deprecated.
-
-2008-01-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/migration.xml: Some more
-
-2008-01-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/migration.xml: Add something on trash handling
-       and some very sketchy information on gnome_vfs_xfer
-
-2008-01-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/overview.xml: Document environment
-       variables used by GIO.
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.3 ===
-
-2008-01-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Additions
-
-2008-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.2 ===
-
-2008-01-11  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/*: Hook up gtestutils docs.
-       
-2008-01-08  Alexander Larsson  <alexl@redhat.com>
-
-        * gio/gio-docs.xml:
-        * gio/migrating.xml:
-       Remove GDirectoryMonitor refernces
-
-008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.1 ===
-
-2008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt:
-       * gio/gio-sections.txt: Update to api changes
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/building.sgml: Document new dependencies and 
-       configure options.
-
-2007-12-31  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gio/migrating.xml: Fixed invalid XML entity
-
-2007-12-31  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * glib/tmpl/macros_misc.sgml: Fixed typo
-
-2007-12-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/Makefile.am:
-       * gio/gio-sections.txt: Updates
-
-2007-12-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/spawn.sgml: Add a warning about allowed functions
-       between fork() and exec().
-
-2007-12-24  Benjamin Otte  <otte@gnome.org>
-
-       * glib/tmpl/timers.sgml: Add a warning about g_thread_init
-       invalidating timers. (#491218)
-
-2007-12-24  Mathias Hasselmann  <mathias@openismus.com>
-
-       Fix typo in g_try_new0 docs (#505195, Felix Riemann).
-
-       * docs/reference/glib/tmpl/memory.sgml: Reference
-       n_structs, instead of non-existant n_counts argument.
-
-2007-12-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gtypemodule.sgml: Fix a typo
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.0 ===
-
-2007-12-19  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/migrating.xml:
-       * gio/overview.xml:
-       Some minor fixes and additions.
-       
-2007-12-17  Matthias Clasen <mclasen@redhat.com>
-
-       * gio: Flesh out the overview and migration docs.
-
-2007-12-17  Matthias Clasen <mclasen@redhat.com>
-
-       * gio/migration.xml: Stub of a migration chapter
-       * gio/overview.xml: Stub of an overview
-       * gio/gvfs-overview.{odg,png}: Overview diagram taken
-       from Alex Guadec slides.
-
-       * gio/Makefile.am:
-       * gio/gio-docs.xml: Include these
-
-2007-12-17  Matthias Clasen <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Updates
-
-2007-12-14  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/tmpl/hash_tables.sgml:
-       * glib/glib-sections.txt: Add hash iterator functions
-
-2007-12-10  Matthias Clasen <mclasen@redhat.com>
-
-       * gio/gio-sections.txt:
-       * gio/gio-docs.xml:
-       * gio/gio.types: Add gdesktopappinfo
-
-2007-12-10  Bastien Nocera  <hadess@hadess.net>
-
-       * glib/tmpl/keyfile.sgml: Mention the difference
-       in handling booleans between GKeyFile and .INI files
-       (Closes: #468882)
-
-2007-12-10  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/Makefile.am:
-       Remove more internal headers.
-       
-       * gio/gio-sections.txt:
-       Update for changes
-
-2007-12-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/Makefile.am: Ignore gioalias.h
-       * gio/gio-sections.txt: Updates
-
-2007-12-07  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/tmpl/date.sgml: Fix tiny grammar typo.
-
-2007-12-04  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/glib-sections.txt: Add GChecksum public API.
-
-       * glib/tmpl/checksum.sgml:
-       * glib/glib-docs.sgml: Add the checksums API page.
-
-2007-11-29  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 500361 – Improve docs for g_array_free() and g_ptr_array_free()
-
-       * glib/tmpl/arrays.sgml:
-       * glib/tmpl/arrays_pointer.sgml:
-       Document how to free the return value.
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: More cleanup
-
-       * gio/gio.types: Remove internal types
-
-2007-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Remove nonexisting functions
-
-2007-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt: Some additions
-
-2007-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/gio-sections.txt:
-       * gio/gio-docs.xml:
-       * gio/gio.types: Update for api changes
-
-2007-11-26  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * gio/Makefile.am:
-       * gio/gio-docs.xml:
-       * gio/gio-sections.txt:
-       * gio/gio.types:
-       * gio/version.xml.in:
-       Add gio docs
-
-2007-11-23  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/tmpl/i18n.sgml:
-       * glib/glib-sections.txt: Add g_dpgettext(), C_()
-
-2007-11-18  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Update the example to demonstrate
-       error handling.  (#497033, Matti Katila)
-
-2007-11-09  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/tmpl/patterns.sgml: Add a warning about strlen vs
-       g_utf8_strlen.  (#455725, Michael Rasmussen)
-
-       * glib/tmpl/date.sgml: Add a footnote explaining leap years.
-       (#491982, Areg Beketovski)
-
-       * glib/tmpl/date.sgml: Improve g_date_clamp docs.  (#491970,
-       Areg Beketovski)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/tmpl/memory.sgml
-       * glib/tmpl/hooks.sgml: Cleanups and fixes
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/tmpl/thread_pools.sgml: Fix the GThreadPool docs. 
-       (#491959, Areg Beketovski)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_markup_parse_context_get_element_stack
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * glib/building.sgml: Fix a typo
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.14.3 ===
-
-2007-11-05  Mathias Hasselmann  <mathias@openismus.com>
-
-       * docs/reference/gobject/tut_gtype.xml: Use correct naming conventions
-       when explaining maman_bar_get_type(). (#493688) Mention G_DEFINE_TYPE.
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gparamspec.sgml: Small update  (#477704, Ross Burton)
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.2 ===
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/param_value_types.sgml: Add some discussion on 
-       g_value_set_object() vs g_value_take_object().  (#477957, Davyd
-       Madeley)
-
-2007-09-19  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/building.sgml: Fix gettext URL. (#478349, kraai ftbfs.org)
-
-2007-09-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.1 ===
-
-2007-09-16  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/Makefile.am: Remove reference to trio
-
-2007-09-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/error_reporting.sgml: Add an example.  (#474229,
-       Rob Bradford)
-
-2007-09-09  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/tmpl/warnings.sgml: Improve G_BREAKPOINT docs. (#474899)
-
-2007-09-05  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/tmpl/glib-unused.sgml:
-       * glib/tmpl/macros_misc.sgml:
-       * glib/tmpl/main.sgml:
-       * gobject/tmpl/gparamspec.sgml:
-
-Tue Aug 28 19:04:12 2007  Tim Janik  <timj@gtk.org>
-
-       * glib/tmpl/memory_slices.sgml: clarified alignment
-       expectations for g_slice_alloc().
-
-2007-08-20  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/tmpl/unicode.sgml: Document that GUnicodeScript is
-       interchangeable with PangoScript.
-
-2007-08-20  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/tmpl/spawn.sgml:
-       Fix typos (#468694).
-
-2007-08-15  Mikael Hallendal  <micke@imendio.com>
-
-       * glib/tmpl/keyfile.sgml: Clearify that only comments can precede
-       groups in Key-files. (#466768)
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.0 ===
-
-2007-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Additions
-
-2007-07-21  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/tmpl/fileutils.sgml: Fix an inaccuracy in the
-       G_FILE_TEST_IS_REGULAR docs, pointed out by
-       Vincent Untz.  (#417068)
-
-2007-07-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/limits.sgml:
-       * glib/tmpl/types.sgml:
-       * glib/glib-sections.txt: Add new functions
-
-2007-07-19  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/glib-sections.txt:
-
-2007-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.7 ===
-
-Thu Jul 12 18:28:47 2007  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/gtype.sgml: fixed g_type_name() docs to forbid passing in
-       invalid type IDs.
-
-Thu Jul 12 15:45:27 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/tmpl/threads.sgml: document major caveat of g_private_set/g_private_get,
-       i.e. not retaining private data across g_thread_init.
-
-Tue Jul 10 13:11:55 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/tmpl/types.sgml: corrected descriptions of gsize and gssize.
-
-Tue Jul 10 13:04:03 2007  Tim Janik  <timj@imendio.com>
-
-       * minor docu build fixes.
-
-Tue Jul 10 12:31:04 2007  Tim Janik  <timj@imendio.com>
-
-       * glib/tmpl/threads.sgml: document g_once_init_enter and g_once_init_leave.
-
-2007-07-09  Matthias Clasen <mclasen@redhat.com>
-
-       * tmpl/modules.sgml: Remove duplicate paragraph.
-       (#45786, Ruben Vermeersch)
-
-       * tmpl/modules.sgml: Remove duplicate code from
-       an example. (#454785, Ruben Vermeersch)
-
-Mon Jul  9 10:23:53 2007  Tim Janik  <timj@imendio.com>
-
-       * gobject/tmpl/gclosure.sgml: GClosure docu fixes from Guillaume
-       Cottenceau, #383155.
-
-Fri Jun 29 2007  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.6 ===
-
-Wed Jun 27 11:43:01 2007  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/gtype.sgml (initializers): typo fix, #451459.
-
-2007-06-23  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/tmpl/memory.sgml: Add a clarification about pairing the
-       memory allocation and free functions, and not mix system's
-       malloc/free with the corresponding GLib ones. (#450216, Hubert
-       Figuiere)
-
-2007-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.5 ===
-
-2007-06-18  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/glib-sections.txt: Add g_timeout_add_seconds_full().
-
-2007-06-17  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/tmpl/quarks.sgml:
-
-2007-06-16  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/tmpl/macros.sgml: Document the undefined behaviour of
-       CLAMP() if low > high. (#448260)
-
-2007-06-13  Sven Neumann  <sven@gimp.org>
-
-       * glib/glib-sections.txt
-       * glib/tmpl/memory_slices.sgml: document g_slice_copy() and
-       g_slice_dup().
-
-2007-06-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/warnings.sgml: Add some verbiage about
-       intended use cases for the g_return macros, inspired
-       by a bugzilla comment by Havoc Pennington.
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.4 ===
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.13.3 ===
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt:
-       * glib/tmpl/misc_utils.sgml: Add g_get_special_user_dir()
-       and GUserDirectory.
-
-2007-05-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/i18n.sgml: Add some hints about
-       xgettext invokation.
-
-2007-05-30  Dan Winship  <danw@novell.com>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/keyfile.sgml: add G_KEY_FILE_DESKTOP_* macros
-
-2007-05-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Fix a typo
-
-2007-05-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.2 ===
-
-2007-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/messages.sgml: Fix a typo (#436547,
-       Guillaume Desmottes)
-
-2007-05-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/running.sgml: Document g_slice_debug_tree_statistics
-       as debug-only functionality.
-
-2007-05-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Document new G_OPTION_ARG_REMAINING
-       functionality.
-
-2007-05-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/glib-sections.txt:
-       * glib/tmpl/messages.sgml:
-       Add g_unichar_ismark().
-
-2007-05-03  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.13.1 ===
-
-2007-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add new regex functions
-
-2007-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/gregex.sgml: Update for the GRegex/GMatchInfo
-       split.
-
-2007-04-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_option_context_get_help.
-
-2007-04-11  Emmanuele Bassi  <ebassi@gnome.org>
-
-       * glib/glib-sections.txt: Add new hash functions.
-
-2007-04-02  Ryan Lortie  <desrt@desrt.ca>
-
-       * gobject/tmpl/objects.sgml: Document ->constructed().
-
-2007-03-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/thread_pools.sgml:
-       * glib/tmpl/strings.sgml:
-       * glib/tmpl/string_chunks.sgml:
-       * glib/tmpl/spawn.sgml:
-       * glib/tmpl/patterns.sgml:
-       * glib/tmpl/modules.sgml:
-       * glib/tmpl/memory_slices.sgml:
-       * glib/tmpl/memory.sgml:
-       * glib/tmpl/gregex.sgml: Trivial cleanups
-
-2007-03-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.0 ===
-
-Fri Mar 16 16:04:42 2007  Tim Janik  <timj@gtk.org>
-
-       * glib/tmpl/scanner.sgml: some fixups, mention that changing scanner 
-       config during the parsing phase is supported behavior.
-
-2007-03-15  Marco Barisione <marco@barisione.org>
-
-       Add GRegex for regular expression matching.  (#50075)
-
-       * glib/Makefile.am:
-       * glib/glib-docs.sgml:
-       * glib/glib-sections.txt:
-       * glib/tmpl/glib-unused.sgml:
-       * glib/regex-syntax.sgml:
-       * glib/tmpl/gregex-unused.sgml:
-       * glib/tmpl/gregex.sgml: Add GRegex.
-
-       * glib/building.sgml: Document build options for GRegex.
-
-2007-03-14  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/tmpl/gparamspec.sgml:
-         Readd docs for G_PARAM_STATIC_NICK and add docs for new
-         G_PARAM_STATIC_STRINGS (fixes #418021).
-
-2007-03-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/threads.sgml: Document G_ERRORCHECK_MUTEXES. (#412145)
-
-       * glib/tmpl/trees-nary.sgml: Fix a typo in the docs for
-       g_node_first_child().  (#409395, Vincent Untz)
-
-2007-02-11  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/tut_gobject.xml:
-       * gobject/tut_gsignal.xml:
-       * gobject/tut_gtype.xml:
-       * gobject/tut_howto.xml:
-       * gobject/tut_intro.xml:
-       * gobject/tut_tools.xml:
-       Format XML to be more editable. Describe Interfaces better. Add a
-       footnote at first occurance of 'maman_'.
-
-2007-02-08  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/tut_gobject.xml:
-       * gobject/tut_gsignal.xml:
-       * gobject/tut_gtype.xml:
-       * gobject/tut_howto.xml:
-       * gobject/tut_tools.xml:
-       Unify spelling of GObject and GType. Improve some wording. Update the
-       usage of private data. Make tables use row-spans and add id's to them.
-
-2007-01-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gsignal.sgml: Correct a typo.
-       (#401994, Mariano Suarez-Alvarez)
-
-2007-01-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_INTERNAL
-       support for Sun Studio.
-
-2007-01-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Document 
-       g_object_class_override_property as 2.4 addition (#399940, 
-       Ian Turner)
-
-2007-01-17  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/tmpl/macros_misc.sgml: Put back G_GNUC_HAVE_VISIBILITY
-       doc that was removed accidentally.
-
-2007-01-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gparamspec.sgml; Document G_PARAM_STATIC_NICK.
-       (#396564, Vincent Untz)
-
-2007-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/keyfile.sgml: Small clarifications.
-
-2007-01-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/glib-sections.txt: Add g_unichar_iszerowidth.
-
-       * glib/tmpl/glib-unused.sgml:
-       * glib/tmpl/keyfile.sgml:
-       * glib/tmpl/macros_misc.sgml:
-       * glib/tmpl/messages.sgml:
-       * glib/tmpl/unicode.sgml:
-       Template changes.
-
-2007-01-02  Matthias Clasen  <mclasen@redhat.com>
-       
-       * glib/running.sgml: Remove C99ism from example.
-
-2006-12-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/threads.sgml: Fix whitespace.  (#391116)
-       
-2006-12-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gtype.sgml: Updates
-
-       * gobject/tmpl/gtypemodule.sgml: Document dynamic type
-       registration macros.
-
-       * gobject/gobject-docs.sgml: Add "Since 2.14" index
-       * gobject/gobject-sections.txt: Add dynamic type macros
-
-2006-12-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Clarify a detail about
-       g_object_set_data_full.  (#343750, Christian Neumair)
-
-Wed Dec 27 15:56:53 2006  Tim Janik  <timj@gtk.org>
-
-       * glib/tmpl/memory_slices.sgml: 
-       * glib/running.sgml: document G_SLICE=debug-blocks.
-
-2006-12-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/running.sgml:
-       * glib/tmpl/option.sgml:
-       * glib/tmpl/date.sgml: Add hints for locale-dependent functions.
-
-2006-12-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/keyfile.sgml: Small clarification (#369908,
-       Tapani Pälli)
-
-2006-12-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/spawn.sgml: Refer to g_child_watch_add() in addition
-       to waitpid().
-
-       * gobject/tmpl/objects.sgml: Expand GObject::notify
-       documentation.  (#381722, Nickolay V. Shmyrev)
-
-       * gobject/tmpl/gparamspec.sgml: Add canonical-parameter-name id.
-
-2006-12-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-docs.sgml: Add a "Since 2.14" section.
-
-       * glib/glib-sections.txt: Add g_string_chunk_clear.
-       
-2006-12-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/*.xml: s/Gnome/GNOME/g (#352156, Guillaume Desmottes)
-
-       * glib/tmpl/keyfile.sgml: Clarify the behaviour
-       wrt. to duplicate keys and groups.
-
-2006-12-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/modules.sgml: Point out that valid symbols may be NULL.
-
-2006-10-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/unicode.sgml: Document GUnicodeType.
-
-2006-10-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_unichar_get_script() and
-       GUnicodeScript.
-
-       * glib/tmpl/unicode.sgml: Document GUnicodeScript
-
-       * gobject/tmpl/enumerations_flags.sgml: Add a hint about
-       the requirement that enum and flags values must be static.
-
-2006-10-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Improve example.  (#367625, Ross Burton) 
-
-Mon Sep 11 14:57:46 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/running.sgml: documented G_DEBUG flags resident-modules
-       and bind-now-modules, patch by Christian Persch on bug #345099.
-
-2006-09-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add new functions
-
-2006-08-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/compiling.sgml: Add a note about G_DISABLE_DEPRECATED.
-       (#353172, Matt Barnes)
-
-Wed Aug 16 13:55:39 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/tmpl/trash_stack.sgml: added notes about complexity.
-
-2006-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.2 ===
-
-2006-08-10  Josh Parsons  <josh.parsons@stonebow.otago.ac.nz>
-
-       * gobject/tmpl/gtype.sgml:
-       * glib/tmpl/threads.sgml: Style and grammar fixes.
-
-2006-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/messages.sgml: Add some hints
-       about making warnings fatal.  (#348785, Matt
-       Barnes)
-
-2006-07-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.1 ===
-
-2006-07-20  Tor Lillqvist  <tml@novell.com>
-
-       * glib/tmpl/date.sgml: Improve doc for
-       g_date_strftime(). (#346197)
-
-2006-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/base64.sgml: Remove bogus reference
-       to nonexisting function.  (#346660, Mark Drago)
-       
-2006-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.0 ===
-
-2006-06-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.4 ===
-
-2006-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.3 ===
-
-2006-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.2 ===
-
-2006-06-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add new hash table functions.
-       Add new g_source functions.
-
-Wed May 31 11:35:48 2006  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/gtype.sgml (Note): amend G_TYPE_CHAR according to #303622.
-
-2006-05-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/markup.sgml: Document G_MARKUP_TREAT_CDATA_AS_TEXT.
-
-2006-05-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_ascii_strtoll
-
-2006-05-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.1 ===
-
-2006-05-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Document new api.
-
-2006-05-11  Bastien Nocera  <hadess@hadess.net>
-
-       * glib/tmpl/option.sgml: add documentation for G_OPTION_ARG_INT64
-
-2006-05-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gtype.sgml: Updates
-
-2006-05-02  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.11.0 ===
-
-2006-05-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gtypemodule.sgml: Document a little
-       pitfall with the last unref for an object.
-
-2006-04-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/unicode.sgml: Mention that GLib 2.12 will
-       support UCD 5.0.
-
-2006-04-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-sections.txt:
-       * gobject/tmpl/objects.sgml: 
-       * gobject/tmpl/gtype.sgml: Additions
-
-       * glib/glib-docs.sgml:
-       * gobject/gobject-docs.sgml: Add 2.12 indices.
-
-       * gobject/tmpl/gtype.sgml: Document g_type_register_static_simple
-
-2006-04-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Add some missing Since: 2.8 tags
-
-2006-04-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add new keyfile api
-
-2006-04-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tut_gobject.xml: Say that ref/unref are thread-safe now.  
-       (#322883, Christophe Fergeau)
-       
-2006-04-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/signals.sgml: Document class_offset 0.
-       and that class_closure may be NULL.
-
-2006-04-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt:
-       * glib/glib-docs.sgml: Add Base64 section
-
-2006-04-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Add some verbiage to 
-       g_object_ref_sink_docs.  (#336677)
-
-2006-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Update the floating docs wrt
-       to GInitiallyUnowned.
-
-       * gobject/tmpl/param_value_types.sgml: 
-       * gobject/tmpl/objects.sgml: 
-       * gobject/tmpl/gtype.sgml: Additions
-
-       * glib/tmpl/messages.sgml: Cleanup
-
-       * glib/tmpl/memory_slices.sgml: Adapt to a parameter name change
-
-       * glib/tmpl/linked_lists_double.sgml: Document g_list_free1
-
-2006-03-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Document floating point arguments
-
-Fri Mar 24 15:22:04 2006  Tim Janik  <timj@imendio.com>
-
-       * glib/tmpl/atomic_operations.sgml: some wording fixups.
-
-2006-03-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/types.sgml: Document G_HAVE_GINT64 as deprecated.
-       (#335294, Richard Laager)
-
-2006-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Hint that @error should
-       be set in error cases.  (#334646, Christian Persch)
-
-2006-03-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/templ/timers.sgml: Mention that the second
-       parameter of g_timer_elapsed can be NULL (#333916,
-       Christian Neumair)
-
-2006-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * ===  Released 2.10.1 ===
-
-2006-02-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.10.0 ===
-
-2006-02-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/tmpl/gtype.sgml:
-         add @since: for _add_private, _GET_PRIVATE
-       * gobject/tut_gobject.xml:
-         fix example to use ->priv and not ->private
-       * gobject/tut_howto.xml:
-         fix g_type_class_add_private example
-
-2006-02-14  Tor Lillqvist  <tml@novell.com>
-
-       * glib/tmpl/iochannels.sgml: Document some Windows-specific issues.
-
-       * glib/glib-sections.txt: Move three Windows-specific functions
-       that now are documented from being Private to the correct section.
-
-2006-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.6 ===
-
-2006-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/date.sgml: Fix a typo (#329123, Kjartan Maraas)
-
-2006-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.5 ===
-
-2006-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/memory.sgml: Document g_mem_gc_friendly.
-
-2006-01-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tut_tools.xml: Mention g_trap_object_ref
-
-       * glib/running.sgml: Add g_trap variables to the index.
-       Mention conditional breakpoints as an alternative.
-
-Wed Jan 25 17:32:22 2006  Tim Janik  <timj@gtk.org>
-
-       * glib/tmpl/memory_slices.sgml: link to G_DEBUG/G_SLICE where appropriate.
-
-Wed Jan 25 17:12:47 2006  Tim Janik  <timj@gtk.org>
-
-       * glib/running.sgml: documented G_SLICE=always-malloc and
-       G_DEBUG=gc-friendly. added anchors for each env var.
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.9.4 ===
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/scanner.sgml: Add a note explaining peculiarities
-       of peek_token wrt to scope changes.  (#307922)
-       
-2006-01-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/memory.sgml: Add a note about casting the results
-       of g_new() and g_new0().
-
-2006-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.3 ===
-
-2006-01-12  Federico Mena Quintero  <federico@ximian.com>
-
-       * glib/file-name-encodings.sxd: Replaced with the correct file.
-
-       * glib/file-name-encodings.png: Huh?  This was a 6-byte file.
-       Replaced it with the correct one.
-
-2006-01-07  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/tut_gtype.xml:
-         fix internal link, little XXX cleanup
-
-2006-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.2 ===
-
-2006-01-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add new API 
-
-2006-01-02  Stepan Kasal  <kasal@ucw.cz>
-
-       * glib/glib-docs.sgml (glib-Windows-Compatability-Functions): Rename
-       (glib-Windows-Compatibility-Functions): , ie. s/Compata/Compati/
-       * glib/glib-sections.txt: s/Compata/Compati/
-
-2005-12-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-sections.txt:
-       * gobject/tmpl/param_value_types.sgml: Document GType 
-       paramspecs
-
-2005-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: add g_thread_pool_set_sort_function.
-       
-2005-12-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/*.sgml: Update versioned deprecation
-
-       * gobject/tmpl/gboxed.sgml: Document G_TYPE_HASH_TABLE.
-
-       * glib/glib-sections.txt: Add g_list_free1
-
-       * glib/glib-overrides.txt: Remove G_THREADS_IMPL_SOLARIS
-
-2005-12-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/atomic_operations.sgml: Document new atomic
-       operations.
-
-2005-12-14  Federico Mena Quintero  <federico@ximian.com>
-
-       * glib/building.sgml: Clarify exactly what happens when you use --enable-gc-friendly.
-
-Mon Dec 12 15:31:41 2005  Tim Janik  <timj@imendio.com>
-
-       * gobject/tmpl/objects.sgml: corrected floating reference documentation.
-
-2005-12-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.1 ===
-
-2005-12-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gparamspec.sgml: 
-       * gobject/tmpl/gtype.sgml: Document n_preallocs as
-       ignored.
-
-2005-12-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Updates
-       
-       * glib/tmpl/memory_slices.sgml: Fix a small formatting
-       problem.
-
-       * glib/tmpl/trees-nary.sgml: 
-       * glib/tmpl/linked_lists_single.sgml: 
-       * glib/tmpl/linked_lists_double.sgml: 
-       * glib/tmpl/caches.sgml: 
-       * glib/tmpl/strings.sgml: 
-       * glib/tmpl/scanner.sgml: 
-       * glib/tmpl/main.sgml: Add versioned deprecation.
-
-Mon Dec  5 15:53:37 2005  Tim Janik  <timj@imendio.com>
-
-       * glib/tmpl/memory_slices.sgml: updates to new g_slice API
-       and minor fixes.
-
-2005-12-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/generic_values.sgml: 
-       * glib/tmpl/trees-nary.sgml: 
-       * glib/tmpl/linked_lists_double.sgml: 
-       * glib/tmpl/linked_lists_single.sgml: 
-       * glib/tmpl/memory_chunks.sgml: 
-       * glib/tmpl/allocators.sgml: 
-       * glib/tmpl/macros_misc.sgml: Updates 
-
-       * glib/Makefile.am: Ignore gmirroringtable.h
-
-2005-12-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_WARN_UNUSED_RESULT.
-
-2005-12-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/caches.sgml: Document g_cache_value_foreach
-       as deprecated; document g_cache_key_foreach more thorougly
-
-       * glib/glib-sections.txt:
-       * glib/tmpl/linked_lists_single.sgml: Add g_slist_free1.
-
-       * glib/tmpl/memory_chunks.sgml: Document GMemChunk
-       as deprecated.
-
-       * glib/glib-docs.sgml: 
-       * glib/glib-sections.txt: 
-       * glib/tmpl/memory_slices.sgml: Document the slice
-       allocator.
-
-2005-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/building.sgml: 
-       * glib/tmpl/threads.sgml: 
-       * glib/glib-sections.txt: Remove G_THREADS_IMPL_SOLARIS
-
-       * glib/tmpl/types.sgml: Document G_GUINT64_CONSTANT.
-
-2005-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-sections.txt: 
-       * gobject/tmpl/gboxed.sgml: Add g_object_ref_sink,
-       g_object_is_floating, g_param_spec_ref_sink, 
-       G_TYPE_HASH_TABLE
-
-2005-11-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_hash_table_ref
-       and g_hash_table_unref
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.0 ===
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/date.sgml: 
-       * glib/glib-sections.txt: Add g_date_set_time_t,
-       g_date_set_time_val and g_thread_foreach
-
-2005-11-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/threads.sgml: Improve GOnce docs.
-       (#320950, Christophe Fergeau)
-
-2005-11-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/running.sgml: Document fatal_criticals.
-
-2005-10-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-sections.txt: 
-       * gobject/tmpl/generic_values.sgml: Document g_value_set_instance(),
-       (#319885, Milosz Derezynski)
-
-2005-10-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/unicode.sgml: Add a footnote about surrogate 
-       pairs.  (#317683, Behdad Esfahbod)
-
-2005-10-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/compiling.sgml: Document gmodule-no-export-2.0
-
-2005-10-01  Davyd Madeley  <davyd@fugro-fsi.com.au>
-
-       * glib/tmpl/string_utils.sgml: Minor documentation improvements for
-         g_strchug, g_strchomp and g_strstrip. Brought forward from glib-2-8.
-
-2005-08-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/quarks.sgml: 
-       * glib/glib-sections.txt: Add string interning functions.
-
-2005-08-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/arrays.sgml: 
-       * glib/tmpl/arrays_pointer.sgml: 
-       * glib/tmpl/arrays_byte.sgml: Enhance sort() documentation.
-       (#314839, Behdad Esfahbod)
-
-2005-08-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-docs.sgml:
-       * gobject/gobject-docs.sgml: Add indices for new
-       symbols in 2.10
-
-       Improvements pointed out by Behdad Esfahbod (#314460):
-       
-       * glib/tmpl/strings.sgml: Fix up some character/byte
-       sloppyness.
-
-       * glib/tmpl/iochannels.sgml: Don't mention deprecated
-       functions in the introduction.
-
-2005-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.1 ===
-
-2005-08-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/date.sgml: Point out time_t vs GTime pitfalls.
-
-2005-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-gettexttize.xml:
-       * gobject/glib-genmarshal.xml:
-       * gobject/glib-mkenums.xml: Fix some trivial
-       formatting problems.  (#313099, Stepan Kasal)
-
-       * glib/tmpl/modules.sgml: Document that file_name can
-       be NULL.  (#313143, Gustavo Carneiro)
-
-       * glib/tmpl/linked_lists_single.sgml: 
-       * glib/tmpl/linked_lists_double.sgml: Clarify docs
-       a little.  (#311727, Tristan van Berkom)
-
-2005-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.0 ===
-
-2005-08-10  Stepan Kasal  <kasal@ucw.cz>
-
-       Fix typos: Invokation --> Invocation (in various places)
-
-       * glib/tmpl/error_reporting.sgml: Fix a typo.
-       * gobject/tut_howto.xml: Several typos and stylistic changes.
-
-2005-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gparamspec.sgml: 
-       * glib/tmpl/types.sgml: 
-       * glib/tmpl/option.sgml: Small fixes.
-
-       * gobject/tmpl/generic_values.sgml: Small fixes
-
-2005-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.7 ===
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.6 ===
-
-2005-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.5 ===
-
-Sat Jul 30 23:40:35 2005  Tim Janik  <timj@gtk.org>
-
-       * glib/tmpl/datalist.sgml:
-       * glib/tmpl/datalset.sgml: document non-thread-safety for 
-       _foreach() functions.
-
-2005-07-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/arrays.sgml: One more improvement.
-
-2005-07-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/arrays.sgml: Add some details.  (#311310,
-       Jochen Baier)
-
-2005-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.4 ===
-
-2005-07-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/macros_misc.sgml: Add some discouraging
-       comments to the G_INLINE_FUNC macros.  (#310836,
-       Callum McKenzie)
-
-2005-07-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/byte_order.sgml: Add docs for #307047,
-       Bryan Silverthorn.
-
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.3 ===
-       
-2005-07-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-overrides.txt: Add G_VA_COPY
-
-       * glib/tmpl/option.sgml: Document that short names must
-       be printable ASCII characters != '-'.
-
-2005-07-08  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.7.2 ===
-
-2005-07-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-docs.sgml: 
-       * glib/glib-docs.sgml: Add the "new in 2.8" index.
-
-2005-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Add an example
-       for using a custom constructor.
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.1 ===
-
-2005-06-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/threads.sgml: 
-       * glib/tmpl/option.sgml: 
-       * glib/tmpl/fileutils.sgml: 
-       * glib/tmpl/iochannels.sgml: 
-       * glib/tmpl/hooks.sgml: 
-       * glib/tmpl/misc_utils.sgml: 
-       * glib/tmpl/date.sgml: 
-       * glib/glib-sections.txt: Updates
-
-2005-06-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add GMappedFile functions.
-
-2005-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml (GOptionFlags): document
-       G_OPTION_FLAG_NO_ARG and G_OPTION_FLAG_FILENAME  (Dan Winship)
-
-2005-06-16  Mathieu Lacage <mathieu@gnome.org>
-
-       * gobject/tut_gtype.xml: fix typo reported by Hong Gang XU.
-       
-2005-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.0 ===
-
-2005-06-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_chdir
-
-       * glib/tmpl/threads.sgml: Document that stack size
-       will be ignored if the underlying thread implementation
-       doesn't support stack sizes.
-
-2005-06-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_utf8_collate_key_for_filename.
-
-2005-05-25  Mathieu Lacage <mathieu@gnome.org>
-
-       * gobject/tut_*.xml: fix lots of typos, 
-       some of which were reported by Leonardo Boshell.
-
-2005-05-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/threads.sgml: Point out exceptions to the
-       general GLib data structure locking rules.
-
-2005-05-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/threads.sgml: Add a paragraph about thread
-       safety of GLib data structures.
-
-       * glib/compiling.sgml: Update an example from 1.3 to 2.x
-
-2005-05-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/glib-genmarshal.1: 
-       * gobject/glib-genmarshal.xml: Mention 64bit integer
-       types.
-
-2005-05-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/markup.sgml: Fix sloppy language, pointed out by
-       Daniel Vaillard.
-
-2005-05-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/value_collection.sgml: 
-       * gobject/tmpl/gboxed.sgml: 
-       * gobject/tmpl/enumerations_flags.sgml: 
-       * gobject/tmpl/objects.sgml: Add long descriptions.
-
-2005-05-05  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am glib/glib-sections.txt gobject/gobject-sections.txt:
-       Update
-
-       * gobject/tmpl/objects.sgml: Document toggle-references.
-
-2005-05-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/hash_tables.sgml: Move some docs inline.
-
-       * glib/tmpl/windows.sgml: 
-       * gobject/tmpl/signals.sgml: 
-       * gobject/tmpl/generic_values.sgml: 
-       * gobject/tmpl/gtype.sgml: 
-       * gobject/tmpl/value_arrays.sgml: 
-       * gobject/tmpl/param_value_types.sgml: 
-       * gobject/tmpl/gtypemodule.sgml:
-       * gobject/tmpl/enumerations_flags.sgml: Small additions.
-
-2005-05-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/completions.sgml: Document
-       strncmp_func.
-
-       glib/glib-sections.txt: Add new API.
-
-2005-04-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gboxed.sgml: 
-       * gobject/gobject-sections.txt: Add G_TYPE_DATE.
-
-2005-04-23  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/tut_gtype.xml:
-       * gobject/tut_howto.xml:
-       all interface examples use 'interface' instead of 'class'
-
-2005-04-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/Makefile.am:
-       * gobject/gobject-docs.sgml:
-       * gobject/tut_gobject.xml:
-       * gobject/tut_gsignal.xml:
-       * gobject/tut_gtype.xml:
-       * gobject/tut_howto.xml:
-       * gobject/tut_intro.xml:
-       * gobject/tut_tools.xml:
-       merged in docs form the gobject tutorial
-
-2005-03-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/arrays_pointer.sgml: Clarify the docs for
-       g_ptr_array_free and g_ptr_array_remove_range.  (#170148, 
-       #170149, Jared Lash)
-
-2005-03-29  Tor Lillqvist  <tml@novell.com>
-
-       * glib/tmpl/spawn.sgml: Add Win32 warnings regarding the child
-       setup function.
-
-2005-03-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/memory.sgml: Document g_try_new, g_try_new0 
-       and g_try_renew, g_try_malloc0.
-
-2005-03-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gparamspec.sgml: Document G_PARAM_SPEC_STATIC_
-       flags.
-
-2005-03-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_NULL_TERMINATED.
-
-2005-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gtype.sgml:
-       * gobject/tmpl/param_value_types.sgml:
-       * gobject/tmpl/gparamspec.sgml: Apply patches by
-       Stefan Kost to document naming restrictions. (#167614)
-
-2005-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Fix a typo.  (#166985)
-
-2005-02-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_listenv.
-
-2005-02-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/linked_lists_double.sgml: 
-       * glib/tmpl/linked_lists_single.sgml: Add a note 
-       regarding inefficiency of repeated appends. (#166271,
-       Olivier Sessink)
-
-2005-02-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/quarks.sgml: Add a warning against
-       using g_quark_from_static_string() in dynamically
-       loaded modules. 
-
-2005-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/misc_utils.sgml: 
-       * glib/tmpl/hash_tables.sgml: Move some doc 
-       comments inline.
-
-2005-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/enumerations_flags.sgml: Fix an
-       example.  (#164269, Sebastien Bacher)
-       
-2005-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.1 ===
-
-2005-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/keyfile.sgml: Add hint about group name 
-       case sensitivity.  (#163029, Bastien Nocera)
-
-2005-01-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/signals.sgml: Small addition. (#145158,
-       Mariano Su??rez-Alvarez)
-
-2004-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/signals.sgml: Fix a typo.  (#161713,
-       Vincent Untz)
-
-2004-12-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/misc_utils.sgml: Clarify g_get_prgname docs.  
-       (#161480, Danny Milo)
-
-2004-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/version.sgml: Improve wording.  (#161484,
-       Christian Biere)
-
-       * === Released 2.6.0 ===
-       
-2004-12-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_rmdir
-
-2004-12-15  Alexander Larsson  <alexl@redhat.com>
-
-       * glib/glib-sections.txt:
-       Add g_filename_display_basename
-
-2004-12-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/generic_values.sgml: Document some return
-       values.  (#161345, Stefan Kost)
-
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.7 ===
-       
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/building.sgml: 
-       * glib/tmpl/linked_lists_single.sgml: 
-       * glib/tmpl/linked_lists_double.sgml: 
-       * glib/tmpl/trees-nary.sgml: Add some warnings regarding
-       --disable-mem-pools.
-
-2004-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/iochannels.sgml: Fix a typo.  (#160162, Tom Copeland)
-
-2004-11-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/building.sgml: Document --enable-man and --disable-visibility.
-
-2004-11-28  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/tmpl/misc_utils.sgml: Document encoding of g_get_user_name(),
-       g_get_real_name(), g_get_tmp_dir() and g_get_current_dir().
-
-2004-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_MALLOC.
-
-       * glib/glib-sections.txt: Add G_GNUC_MALLOC
-
-2004-11-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.6 ===
-       
-2004-11-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/trees-nary.sgml: Document G_TRAVERSE_LEAVES and
-       G_TRAVERSE_NON_LEAVES
-
-       * glib/tmpl/hooks.sgml: 
-       * glib/tmpl/iochannels.sgml: Updates
-
-2004-11-04  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/tmpl/windows.sgml: Improve G_WIN32_HAVE_WIDECHAR_API
-       documentation.
-
-       * glib/tmpl/option.sgml: Document G_OPTION_FLAG_REVERSE.
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.5 ===
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_get_filename_charsets and
-       g_filename_display_name.
-
-2004-11-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Updates
-
-2004-10-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/windows.sgml: Document G_WIN32_IS_NT_BASED,
-       G_WIN32_HAVE_WIDECHAR_API.
-
-       * glib/glib-sections.txt: Add g_lstat
-
-       * glib/running.sgml: Document G_WIN32_PRETEND_WIN9X.
-
-2004-10-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/option.sgml: Add an example.
-
-       * glib/glib-sections.txt: Add G_OPTION_REMAINING
-
-       * glib/tmpl/option.sgml: Add docs.
-
-2004-10-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/keyfile.sgml: Add some introductory notes.
-
-2004-10-27 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.4 ===
-
-2004-10-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/fileutils.sgml: Add some intro.
-
-2004-10-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-docs.sgml: Add an index for 2.6 additions.
-
-       * gobject/gobject-sections.txt: Additions.
-
-       * gobject/Makefile.am (IGNORE_HFILES): Add gobjectalias.h
-
-       * glib/tmpl/main.sgml: Document GChildWatchFunc
-
-       * glib/tmpl/keyfile.sgml: New template.
-
-       * glib/glib-sections.txt: Additions.
-
-       * glib/tmpl/macros_misc.sgml: Document some more of
-       the macros.
-
-2004-10-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-docs.sgml:  Add GKeyFile section, add
-       index for 2.6 additions.
-
-2004-10-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/gtype.sgml (GTypeInterfaceCheckData):
-       Rename first parameter.
-
-       * glib/glib-sections.txt: Add GKeyFile section.
-
-2004-10-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/macros.sgml: 
-       * glib/glib-sections.txt: Document G_IS_DIR_SEPARATOR. 
-
-2004-10-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/objects.sgml: Improve the docs for
-       g_object_get_property().  (#153424, Stefan Kost)
-
-2004-10-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/tmpl/signals.sgml: Improve docs for 
-       g_signal_add_emission_hook.  (#154299, Nickolay V. Shmyrev)
-
-2004-09-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/messages.sgml: Correct the docs for the default log
-       handler wrt to which messages go to stderr. (#153041, Philippe Blain)
-
-Sun Sep 19 23:15:17 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/patterns.sgml: Point to g_utf8_strreverse() for
-       reversing UTF-8 strings.  (#153091, Adam Hooper)
-
-2004-09-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.3 ===
-
-2004-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/Makefile.am: Ignore galias.h
-
-       * glib/glib-sections.txt: Updates.
-
-2004-09-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/misc_utils.sgml: Add a hint about $HOME to the
-       docs of g_get_home_dir().
-
-Thu Sep  9 00:11:19 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_strv_length().
-
-2004-09-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: Add g_get_language_names().
-
-Mon Sep  6 01:56:13 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/messages.sgml: Remove excess markup and fix a markup
-       error.
-
-Sun Sep  5 01:44:23 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/messages.sgml: Document g_log_set_default_handler().
-
-Wed Sep  1 20:27:59 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_date_get_iso8601_week_of_year.
-
-Sun Aug 29 23:50:45 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/fileutils.sgml: Fix a typo.  (#151109, Stepan Kasal)
-
-2004-08-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/fileutils.sgml: Add G_FILE_ERROR_NOSYS.
-
-2004-08-25 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.2 ===
-
-2004-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/warnings.sgml: Add an example for
-       g_on_error_query() usage.  (#148716, Christian Persch)
-
-2004-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/threads.sgml: Document the necessity to call
-       g_thread_init() when using threads 
-       (even non-gthreads).  (#149490, Vincent Untz)
-
-
-Tue Aug  3 16:43:22 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add a section for GOption.
-       * glib/glib-docs.sgml: Include GOption section.
-       * glib/tmpl/option.sgml: New template.
-
-Tue Aug  3 15:34:16 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add a separate section for
-       version information.
-       * glib/glib-docs.sgml: Include version section.
-       * glib/tmpl/version.sgml: New template.
-
-2004-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/glib-sections.txt: 
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_INTERNAL.
-
-2004-08-01 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.1 ===
-
-2004-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/misc_utils.sgml: Clarify docs for 
-       g_get_real_name().  (#143552, Danek Duvall)
-
-Fri Jul 23 10:38:24 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/limits.sgml: Fix docs for G_MAXSIZE.  (#148262, 
-       Christophe Fergeau)
-
-Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * === Released 2.5.0 ===
-
-2004-07-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/arrays.sgml: Improve g_array_free() docs.  (#146875,
-       Ed Griffiths)
-
-Tue Jul  6 00:54:38 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: 
-       * gobject/tmpl/gtypemodule.sgml: Add g_type_module_register_enum()
-       and g_type_module_register_flags().
-
-Mon Jul  5 18:49:56 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/messages.sgml: 
-       * glib/glib-sections.txt: Add g_debug.
-
-2004-06-15  Federico Mena Quintero  <federico@ximian.com>
-
-       * glib/tmpl/conversions.sgml: New section on file name encodings.
-
-       * glib/file-name-encodings.sxd: New diagram of how file name
-       encodings work.
-
-       * glib/file-name-encodings.png: Same as above, for inclusion in
-       the generated docs.
-
-       * glib/Makefile.am (HTML_IMAGES): Add file-name-encodings.png.
-       (EXTRA_DIST): Add the new images.
-
-       * glib/running.sgml: Add ids to the corresponding paragraphs that
-       describe G_FILENAME_ENCODING and G_BROKEN_FILENAMES, to be able to
-       reference them from elsewhere.
-
-Thu Jun 10 21:29:55 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/modules.sgml: Add an example for GModule
-       usage.  (#144127, Tommi Komulainen)
-
-Sun Jun  6 23:20:42 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: Fix the docs for G_DEFINE_TYPE()
-       and friends.  (#143800, Crispin Flowerday)
-
-2004-05-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject/gobject-docs.sgml: 
-       * glib/glib-docs.sgml: Add multiple indices.
-
-2004-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.4.1 ===
-
-2004-04-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/running.sgml: Document LIBCHARSET_ALIAS_DIR.
-
-2004-04-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib/tmpl/types.sgml: Correct the description of the
-       gfloat and gdouble ranges.
-
-Tue Mar 16 12:06:09 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.4.0 ===
-       
-Sun Mar 14 11:00:41 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/tmpl/signals.sgml: Document the fact that
-       g_signal_connect_object() does *not* remove the signal
-       when the object is disconnected currently and describe
-       a workaround to prevent memory leaks.
-
-Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.6 ===
-
-Mon Mar  8 08:32:36 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/tmpl/main.sgml: Reference g_source_set_callback(),
-       not g_source_attach(). (Takeshi AIHANA)
-
-2004-02-29  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/glib-overrides.txt, glib/glib-sections.txt,
-       glib/tmpl/atomic_operations.sgml: Updated according to code changes.
-
-Sun Feb 29 02:35:00 2004  Sven Herzberg  <herzi@gnome-de.org>
-
-       * glib/tmpl/limits.sgml: exchange non-existing G_MAX_DOUBLE for
-       G_MAXDOUBLE (fixes #135723)
-
-Fri Feb 27 22:10:25 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/modules.sgml: Reformat a bit.
-
-Fri Feb 27 22:05:23 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/limits.sgml: Document G_MAXSIZE.
-
-2004-02-26  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/tmpl/threads.sgml: Updated to reflect removal of the PID
-       niceness surrogate for thread priorities.
-
-       * glib/glib-overrides.txt, glib/glib-sections.txt,
-       glib/glib-docs.sgml, glib/tmpl/atomic_operations.sgml: Add docs
-       for atomic operations.
-
-Tue Feb 24 14:09:21 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.3 ===
-
-       * glib/glib-sections.txt: Updates.
-
-Sun Feb 22 00:59:11 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/trees-nary.sgml: Document GCopyFunc.
-
-Sun Feb 22 00:54:17 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add GCopyFunc and g_node_copy_deep.
-
-2004-02-18  Sebastian Wilhelmi  <seppi@seppi.de>
-
-       * glib/glib-sections.txt: Add the new g_rand_* functions
-
-Sat Feb 14 01:25:23 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add GPid, GChildWatchFunc,
-       g_child_watch_source_new, g_child_watch_add,
-       g_child_watch_add_full.
-
-Fri Feb 13 23:16:25 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/macros_misc.sgml: Fix a typo. 
-
-Sat Feb  7 01:02:06 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/numerical.sgml: Fix some external links.
-
-Thu Feb  5 00:54:43 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_completion_complete_utf8.
-
-Fri Jan 30 23:25:58 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/iochannels.sgml: 
-       * glib/tmpl/main.sgml: Remove references to deprecated GTK+ and
-       GDK functions.  (#130756, Vincent Untz)
-       
-Wed Jan 28 01:39:59 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_strsplit_set. (Soeren Sandmann)
-
-Thu Jan 22 14:51:19 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/glib-sections.txt glib/tmpl/timers.sgml: Document
-       g_timer_continue. (Tim-Philipp M??ller)
-
-Sun Jan 11 01:25:44 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: Improve docs for G_DEFINE_TYPE_* macros.
-
-Sun Jan 11 01:25:29 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: Add G_DEFINE_TYPE_EXTENDED.
-
-Sat Jan 10 02:18:32 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: Document the new GType boilerplate macros
-       with an example.
-
-Sat Jan 10 01:36:01 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: Document g_type_class_peek_static.
-
-Sat Jan 10 01:23:58 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: Add g_type_class_peek_static,
-       G_DEFINE_TYPE, G_DEFINE_TYPE_WITH_CODE, G_DEFINE_ABSTRACT_TYPE,
-       G_DEFINE_ABSTRACT_TYPE_WITH_CODE, G_IMPLEMENT_INTERFACE.
-
-
-Sat Jan 10 01:23:01 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/objects.sgml: Update docs of g_object_connect.
-
-Fri Jan  9 23:40:23 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gboxed.sgml: 
-       * gobject/gobject-sections.txt: Add G_TYPE_STRV and GStrv.
-
-Fri Dec 26 02:04:49 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_ptr_array_foreach().
-
-Sun Dec 21 01:01:34 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/misc_utils.sgml: Document the encoding of 
-       g_get_real_name().
-
-Fri Dec 19 21:40:00 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/signals.sgml: Rewording.
-
-Tue Dec  2 02:31:15 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/limits.sgml:
-       * glib/glib-sections.txt: Add G_{MIN,MAX,MAXU}INT{8,16,32}.
-
-Thu Nov  6 01:42:36 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add an i18n section.
-       * glib/glib-docs.sgml: Include the corresponding entity.
-       * glib/tmpl/i18n.sgml: Template for i18n section.
-
-Thu Nov  6 00:56:04 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/running.sgml: Document G_FILENAME_ENCODING.
-
-Sat Oct 25 01:07:45 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gparamspec.sgml: 
-       * gobject/tmpl/objects.sgml: Additions.
-
-Thu Oct 23 14:27:54 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/Makefile.am: Add a dist-hook so that the
-       man pages get distributed.
-
-       * glib/Makefile.am: Add a dist-hook so that the
-       man pages get distributed.
-
-       * glib/Makefile.am (content_files): Add cross.sgml.
-
-       * gobject/Makefile.am (INCLUDES): Add $(top_srcdir)/glib,
-       and (for gobject.cI) $(srcdir)
-
-Tue Oct 21 23:29:54 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtypemodule.sgml: 
-       * gobject/tmpl/enumerations_flags.sgml: 
-       * gobject/tmpl/gtype.sgml: Additions.
-
-Tue Oct 21 23:09:15 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gparamspec.sgml: 
-       * gobject/tmpl/param_value_types.sgml:
-       * gobject/tmpl/gtype.sgml: 
-       * gobject/tmpl/signals.sgml: Add "Since 2.4" markers where
-       appropriate.
-
-Tue Oct 14 17:45:33 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/gobject-sections.txt gobject/tmpl/objects.sgml
-       gobject/tmpl/param_value_types.sgml gobject/tmpl/gparamspec.sgml:
-       Document interface properties and GParamSpecOverride.
-
-Mon Oct 20 22:05:37 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/objects.sgml: 
-       * gobject/tmpl/enumerations_flags.sgml: 
-       * gobject/tmpl/gtypeplugin.sgml: Additions.
-
-Mon Oct 20 22:04:45 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: Add GObjectConstructParam.
-
-Mon Oct 20 20:38:06 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject.i: Removed...
-       * gobject/gobject.cI: ...and readded.
-       * gobject/gobject.types: Change to the standard file 
-       extension for included hunks of C code.
-
-Mon Oct 20 20:34:33 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/Makefile.am (INCLUDES): Add $(top_builddir)/glib
-       as an include dir again, this time for real.  
-
-Mon Oct 20 01:12:46 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: 
-       * gobject/tmpl/param_value_types.sgml: 
-       * gobject/tmpl/value_arrays.sgml: Additions.
-
-       * gobject/tmpl/gboxed.sgml: 
-       * gobject/gobject-sections.txt: Remove prematurely added
-       GStrv documentation.
-
-Sun Oct 19 22:18:28 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/Makefile.am (INCLUDES): Add $(top_builddir)/glib
-       as an include dir.  (#124934, Mariano Su??rez-Alvarez)
-
-Sun Oct 19 00:33:28 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: 
-       * gobject/tmpl/generic_values.sgml: 
-       * gobject/tmpl/objects.sgml: 
-       * gobject/tmpl/signals.sgml: Additions.
-
-Sat Oct 18 01:30:47 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gboxed.sgml: 
-       * gobject/tmpl/gtypeplugin.sgml: 
-       * gobject/tmpl/enumerations_flags.sgml: Additions.
-
-Sat Oct 18 00:04:22 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject.types: List GObject here, since the
-       documentation misses the notify signal otherwise. Needs
-       a little bit of a hack to work around a gtkdoc-scangobj
-       limitation, see the comment in gobject/gobject.i.
-
-       * gobject/gobject.i: New file, containing a trivial 
-       g_object_get_type() function.
-       
-Fri Oct 17 00:23:51 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/Makefile.am (GTKDOC_LIBS): 
-       (INCLUDES): Add the necessary stuff to compile gobject-scan.
-
-       * gobject/gobject.types: Add g_type_module_get_type() and
-       g_type_plugin_get_type().
-
-Thu Oct 16 01:02:04 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gparamspec.sgml: Additions, document 
-       GParamSpecPool.
-
-Wed Oct 15 00:56:30 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gclosure.sgml: Improvements from Owen's feedback. 
-
-Tue Oct 14 02:35:45 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: Move the g_cclosure_marshal_*
-       functions to a non-private subsection, since these functions
-       are not private.
-
-Tue Oct 14 02:35:16 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gclosure.sgml: Fill in.
-
-Sun Oct  5 23:23:53 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/glib-sections.txt: 
-       * gobject/gobject-sections.txt: Fix includes.
-
-       * gobject/tmpl/value_collection.sgml: Add docs found in the 
-       header.
-
-Thu Oct  2 01:22:46 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/gobject-sections.txt gobject/tmpl/gtype.sgml: 
-       Add g_type_add/remove_interface_check()
-
-2003-09-30  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gparamspec.sgml: 
-       * gobject/tmpl/signals.sgml: Additions.
-
-       * glib/glib-sections.txt: Add g_unichar_get_mirror_char and
-       g_static_mutex_get_mutex_impl_shortcut.
-
-Mon Sep 29 10:55:23 2003  Owen Taylor  <otaylor@redhat.com>
-
-       *  gobject/gobject-sections.txt gobject/tmpl/gtype.sgml:
-       Docs for g_type_default_interface_ref(), etc.
-
-Fri Sep 12 16:29:29 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/tmpl/signals.sgml: Add docs for
-       g_signal_accumulator_true_handled.
-
-2003-09-12  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: Add new g_value_take_x() functions.
-
-       * gobject/tmpl/param_value_types.sgml: Document new g_value_take_x()
-       functions.  (#100948)
-
-2003-08-05  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: Add note about in-place editing to g_strdelimit() doc.
-       (#118875, Thomas Vander Stichele)
-
-2003-07-30  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/misc_utils.sgml: Move g_getenv() docs inline.
-
-       * glib/tmpl/string_utils.sgml: Small fixes.
-
-       * glib/glib-docs.sgml: Add paragraph about multi-threading policy.
-
-       * glib/glib-sections.txt: Rename g_read_link to g_file_read_link.
-
-2003-07-29  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/macros_misc.sgml: Document G_GINT{16,32,64}_MODIFIER, add note about scanning.
-
-       * glib/glib-sections.txt: Add G_GINT{16,32,64}_MODIFIER.
-
-2003-07-28  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_setenv(), g_unsetenv() and g_read_link().  (#100763, #72545)
-
-2003-07-26  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/arrays.sgml: 
-       * glib/tmpl/arrays_byte.sgml: 
-       * glib/tmpl/arrays_pointer.sgml: 
-       * glib/glib-sections.txt: Add g_{,byte,pointer}_array_remove_range.  (#94879, Nalin Dahyabhai)
-
-       * glib/tmpl/messages.sgml: Remove the note about the message length restriction.
-
-2003-07-24  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/messages.sgml: Mention the restriction on message length.  (#118043, Martyn Russell)
-
-2003-07-18  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/arrays_pointer.sgml: Add a note about double indirection in 
-       g_ptr_array_sort[_with_data]().  (#113697, Owen Taylor)
-
-2003-07-12  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: Add a paragraph about string precision, add links to it.
-       Remove markup which is now handled better by gtk-doc.
-
-2003-07-09  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/threads.sgml: Document GOnce, GOnceStatus, G_ONCE_INIT, g_once and g_once_impl.
-
-       * glib/glib-sections.txt: Add GOnce, GOnceStatus, G_ONCE_INIT, g_once and g_once_impl.
-
-2003-07-02  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: Move g_strfreev() docs inline.
-
-2003-06-19  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/misc_utils.sgml: Move g_path_get_basename() docs inline.
-
-2003-06-18  Matthias Clasen  <maclas@gmx.de>
-
-o      * glib/glib-sections.txt: Add g_thread_init_glib to silence gtk-doc.
-
-       * gobject/Makefile.am: Add rule to regenerate man pages from 
-       Docbook.
-       (man_MANS): Add glib-mkenums.1, glib-genmarshal.1 and gobject-query.1.
-       (content_files): Add glib-mkenums.xml, glib-genmarshal.xml and 
-       gobject-query.xml.
-
-       * gobject/glib-mkenums.xml: 
-       * gobject/glib-genmarshal.xml: 
-       * gobject/gobject-query.xml: New refentries.
-
-       * gobject/glib-mkenums.1: 
-       * gobject/glib-genmarshal.1: 
-       * gobject/gobject-query.1: Man pages generated from the .xml
-       sources.
-
-       * gobject/gobject-docs.sgml: Include glib-mkenums.xml, 
-       glib-genmarshal.xml and gobject-query.xml.
-       
-2003-06-17  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/Makefile.am: Add rule to regenerate man pages from 
-       Docbook.
-       (man_MANS): Add glib-gettextize.1.
-       (content_files): Add glib-gettextize.xml.
-
-       * glib/glib-gettextize.xml: New refentry.
-
-       * glib/glib-gettextize.1: Man page generated from the .xml source.
-
-       * glib/glib-docs.sgml: Include glib-gettextize.xml.
-
-2003-06-17  Matthias Clasen  <mc2@YAST_ASK>
-
-       * gobject/gobject-docs.sgml: 
-       * glib/glib-docs.sgml: Add an autogenerated index.
-
-2003-06-17  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/macros_misc.sgml: Document G_GNUC_DEPRECATED.
-
-2003-06-11  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/objects.sgml: A small addition.
-
-Sun Jun  8 12:28:39 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/tmpl/error_reporting.sgml: XML fix.
-
-       * glib/glib-sections.txt: Updated.
-
-2003-06-06  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/limits.sgml: Correct the documentation for
-       G_MINFLOAT and G_MINDOUBLE.  (#114513, Christophe Fergeau)
-
-       * glib/glib-sections.txt: Add g_vasprintf().
-
-       * glib/tmpl/string_utils.sgml: Add a hint about g_vasprintf() to
-       the g_strdup_printf() docs.
-
-2003-05-28  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: Document that g_strdup() and
-       g_strndup() accept NULL.  (#106987, Christian Biere)
-
-2003-05-12  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/cross.sgml: Fix a duplicate id left by copy-and-paste.
-       (#112785, Owen Taylor)
-
-2003-04-18  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/signals.sgml: Correct the documentation
-       GSignalEmissionHook (#110906) and some cleanups.
-
-2003-04-11  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gparamspec.sgml: Fix a few typos.
-
-2003-04-09  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-docs.sgml: Move dependencies to building.sgml.
-
-       * glib/building.sgml: Move stuff from INSTALL here.
-
-2003-04-08  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/cross.sgml: New file; cross-compilation information.
-       * glib/glib-docs.sgml: Include cross.sgml.
-
-2003-04-07  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/enumerations_flags.sgml: Additions.
-
-2003-04-01  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/error_reporting.sgml: 
-       * glib/tmpl/random_numbers.sgml: 
-       * glib/tmpl/arrays_pointer.sgml: 
-       * glib/tmpl/arrays.sgml: Fix formatting of examples.
-
-2003-04-01  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_string_chunk_insert_len.
-
-2003-03-28  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/param_value_types.sgml: Additions.
-
-2003-03-25  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/objects.sgml: Additions.
-
-2003-03-24  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/objects.sgml: Additions.
-
-Mon Mar 10 11:33:10 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/tmpl/gtype.sgml gobject/gobject-sections.txt: 
-       Document private instance data.
-
-2003-02-11  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: Fix an off-by-one error in the
-       g_strescape() docs.  (#105431, Phillip Vandry)
-
-2003-02-07  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtypemodule.sgml: 
-       * gobject/tmpl/gtype.sgml: 
-       * gobject/tmpl/gclosure.sgml: 
-       * gobject/tmpl/param_value_types.sgml: 
-       * gobject/tmpl/gparamspec.sgml: 
-       * gobject/tmpl/objects.sgml: 
-       * gobject/tmpl/signals.sgml: Move all docs out-of-line. Boy, what
-       a waste of time.
-
-2003-01-21  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/strings.sgml: Document the return value of g_string_free().
-
-2003-01-15  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: Fix the description of
-       G_TYPE_FUNDAMENTAL.  (#103119, Josh Parsons)
-
-2003-01-01  Tor Lillqvist  <tml@iki.fi>
-
-       * glib/tmpl/messages.sgml: Remove comment that only stdout would
-       be used on Windows, no longer true.
-
-2002-12-15  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/param_value_types.sgml: Move some docs inline.
-
-2002-12-15  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/Makefile.am (IGNORE_HFILES): Add gprintfint.h and trio.
-
-2002-12-13  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/Makefile.am (MKDB_OPTIONS): Add --ignore-files=trio to
-       avoid gtk-doc warnings about doxygen comments.
-
-Tue Dec 10 11:55:28 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/tmpl/timers.sgml: Improve docs for return value
-       and @microseconds out parameter. (Reported by
-       Dennis Haney, #100841)
-
-2002-12-10  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/generic_values.sgml: 
-       * gobject/tmpl/gtype.sgml: 
-       * gobject/tmpl/enumerations_flags.sgml: Add docs.
-
-2002-12-09  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: 
-       * gobject/tmpl/enumerations_flags.sgml: Add docs.
-
-       * gobject/tmpl/gtype.sgml:
-       * gobject/tmpl/gtypeplugin.sgml:
-       * gobject/tmpl/gtypemodule.sgml:
-       * gobject/gobject-sections.txt: Add GTypeClass, GTypePluginClass
-       and GTypeModuleClass.
-
-       * gobject/tmpl/gboxed.sgml:
-       * gobject/tmpl/enumerations_flags.sgml: 
-       * gobject/tmpl/gclosure.sgml: 
-       * gobject/tmpl/param_value_types.sgml: Add docs.
-
-2002-12-06  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gparamspec.sgml: Typo fix.
-
-2002-12-05  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/strings.sgml: 
-       * glib/tmpl/scanner.sgml: 
-       * glib/tmpl/main.sgml: 
-       * glib/tmpl/macros_misc.sgml: 
-       * glib/tmpl/hash_tables.sgml: Add Since and Deprecation info
-       for symbols documented in the templates.
-
-2002-12-04  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gtype.sgml: Add docs.
-
-2002-12-02  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/signals.sgml: Add docs.
-
-2002-12-01  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: Mark g_signal_handlers_destroy as
-       private.
-
-       * gobject/tmpl/signals.sgml: Move some docs inline.
-
-2002-11-29  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/main.sgml: Write something about GSourceDummyMarshal.
-
-       * glib/tmpl/date.sgml: 
-       * glib/tmpl/string_utils.sgml: Remove redundant docs.
-
-       * glib/glib-sections.txt: Add g_ascii_strtoull and 
-       g_get_application_name.
-
-2002-11-28  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/strings.sgml: 
-       * glib/tmpl/string_utils.sgml: 
-       * glib/tmpl/misc_utils.sgml: Move some docs inline.
-
-2002-11-23  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/tmpl/gclosure.sgml: 
-       * gobject/tmpl/signals.sgml: 
-       * gobject/tmpl/gparamspec.sgml: 
-       * gobject/tmpl/value_collection.sgml: 
-       * gobject/tmpl/generic_values.sgml: 
-       * gobject/tmpl/param_value_types.sgml: 
-       * gobject/tmpl/gboxed.sgml: 
-       * gobject/tmpl/enumerations_flags.sgml: 
-       * gobject/tmpl/objects.sgml: 
-       * gobject/tmpl/gtypemodule.sgml: 
-       * gobject/tmpl/gtypeplugin.sgml: Add missing short descriptions, 
-       standardize them to start with a capital and end without a period. 
-
-       * glib/tmpl/arrays.sgml: 
-       * glib/tmpl/memory_chunks.sgml: 
-       * glib/tmpl/macros.sgml: Remove periods from titles in examples.
-
-       * glib/building.sgml: Explain --enable-include-printf.
-
-       * glib/Makefile.am (extra_files): 
-       * gobject/Makefile.am (extra_files): Add version.xml.in.
-
-       * glib/Makefile.am (content_files): 
-       * gobject/Makefile.am (content_files): Add version.xml.
-
-       * glib/version.xml.in: 
-       * gobject/version.xml.in: New files to let configure dump the version in.
-
-       * glib/glib-docs.sgml:
-       * gobject/gobject-docs.sgml: Add version information.
-
-
-Thu Nov 21 15:52:04 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/tmpl/iochannels.sgml: Add helpful comments about
-       the encoding of a new iochannel. (Amaury Jacquot,
-       #96444)
-
-2002-11-21  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: Add note on including gprintf.h,
-       move some docs inline.
-
-       * glib/glib-sections.txt: Add g_printf, g_vprintf, g_fprintf,
-       g_vfprintf, g_sprintf, g_vsprintf.
-
-2002-11-20  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/macros_misc.sgml: Document G_LIKELY, G_UNLIKELY.
-
-       * glib/glib-sections.txt: Add G_LIKELY, G_UNLIKELY.
-
-2002-10-20  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/Makefile.am (SCANOBJ_FILES): 
-       * glib/Makefile.am (SCANOBJ_FILES): Add $(DOC_MODULE).prerequisites.
-
-2002-10-15  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: Add g_type_interface_prerequisites.
-
-2002-10-14  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/Makefile.am (dist-hook): 
-       * glib/Makefile.am (dist-hook): Dist the xml/*.xml, not
-       sgml/*.sgml.  (#95678, Owen Taylor)
-
-2002-10-14  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/Makefile.am (SCANOBJ_FILES): 
-       * glib/Makefile.am (SCANOBJ_FILES): Add $(DOC_MODULE).interfaces.
-
-2002-09-16  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/messages.sgml: Replace G_LOG_FLAG_RECURSIVE by 
-       G_LOG_FLAG_RECURSION throughout.  (#93390)
-2002-08-12  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/glib-sections.txt: Add g_markup_parse_context_get_element
-       and g_utf8_strreverse.
-
-Thu Jul 25 18:58:29 2002  Owen Taylor  <otaylor@redhat.com>
-       * glib/tmpl/threads.sgml: Fix reference to non-existing
-       @priority parameter. (#88500, Linux Walleij)
-2002-06-03  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-docs.sgml: 
-       * glib/glib-docs.sgml: 
-       * glib/tmpl/macros.sgml: 
-       * glib/tmpl/string_utils.sgml: Replace homegrown "nbsp", "hash"
-       and "percent" entities by standard ISO entities "nbsp", "num" and
-       "percnt". 
-
-2002-05-30  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: 
-       * glib/tmpl/threads.sgml: Small formatting fixes.
-
-2002-05-26  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/conversions.sgml: Add GIConv.
-
-       * glib/tmpl/main.sgml: Fix references to nonexisting functions
-       g_main_loop_destroy(), g_source_add(), g_source_connect().
-       
-
-       * glib/glib-sections.txt: Add GIConv, g_str_has_prefix, g_str_has_suffix.
-
-       * glib/tmpl/linked_lists_single.sgml: 
-       * glib/tmpl/linked_lists_double.sgml: GListAllocator doesn't exist.
-
-       * glib/glib-docs.sgml: Declare hash entity.
-
-       * glib/tmpl/macros.sgml: Escape # in #ifdef to suppress erroneous links.
-
-2002-05-25  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/Makefile.am, gobject/gobject-docs.sgml, gobject/tmpl/*:
-       * glib/Makefile.am, glib/glib-docs.sgml, glib/tmpl/*: Produce XML,
-       not SGML.
-
-2002-05-21  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/markup.sgml: Updates.
-
-Sat May 18 00:44:35 2002  Tim Janik  <timj@gtk.org>
-
-       [merged from stable]
-
-       * glib/tmpl/scanner.sgml: fix documentation for g_scanner_unexp_token().
-
-2002-05-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml: Clarify recursion issues with
-       GMutex. (#78171)
-
-2002-04-24  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject/gobject-sections.txt: 
-       * gobject/tmpl/gtype.sgml: Updates.
-
-2002-04-21  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/strings.sgml: Fix the description of g_string_assign. (#78728)
-
-2002-04-18  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/error_reporting.sgml:
-       * glib/tmpl/threads.sgml:
-       * glib/tmpl/arrays_pointer.sgml:
-       * glib/tmpl/arrays_byte.sgml:
-       * glib/tmpl/memory_chunks.sgml: s/<!>/<!-- -->/g throughout the
-       documentation to bring the produced Docbook closer to XML.
-
-2002-03-25  Sven Neumann  <sven@gimp.org>
-
-       * glib/tmpl/scanner.sgml: Fixed documentation about unused struct 
-       fields and added a note about proper g_scanner_unexp_token() usage.
-
-2002-03-11  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/tmpl/string_utils.sgml: Add a note about g_strreverse() and 
-       UTF-8.
-
-2002-02-21  Matthias Clasen  <maclas@gmx.de>
-
-       * glib/Makefile.am (IGNORE_HFILES): Add gdebug.h.
-
-       * glib/running.sgml: Document the G_DEBUG environment variable.
-
-       * glib/tmpl/threads.sgml: Replace g_thread_wait() by
-       g_thread_join() in two places.
-
-2002-02-20  Sven Neumann  <sven@gimp.org>
-
-       * gobject/gobject-sections.txt
-       * gobject/tmpl/generic_values.sgml
-       * gobject/tmpl/param_value_types.sgml: updated for GValue changes.
-
-Tue Feb 19 17:45:43 2002  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/generic_values.sgml: added GValue documentation.
-
-Thu Feb  7 12:07:06 2002  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/generic_values.sgml: document value transformation.
-
-Mon Feb  4 17:55:39 2002  Tim Janik  <timj@gtk.org>
-       
-       * gobject/tmpl/closures.sgml: doc common functions like ref/
-       sink/unref/invalidate.
-
-       * gobject/tmpl/objects.sgml: document g_object_watch_closure() and
-       qdata functions.
-
-Tue Jan 29 12:00:59 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/gobject-sections.txt: Updated.
-
-       * glib/running.sgml glib/changes-2.0.sgml: SGML fixes.
-
-2002-01-28  Ron Steinke  <rsteinke@w-link.net>
-
-       * glib/iochannel.sgml: Changed #IOChannelError to
-       #GIOChannelError in one place
-
-2002-01-16  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/building.sgml, glib/compiling.sgml, 
-       glib/running.sgml, glib/resources.sgml, 
-       glib/changes-2.0.sgml: New files.
-
-       * glib/Makefile.am (content_files): Add new files.
-
-       * glib/glib-docs.sgml: Add an Overview chapter.
-
-2002-01-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml: Name the right function.
-
-2001-12-23  Matthias Clasen  <matthias@poet.de>
-
-       * glib/tmpl/main.sgml, glib/tmpl/string_utils.sgml,
-       glib/tmpl/strings.sgml: Replace references to deprecated
-       functions.
-
-2001-12-21  Matthias Clasen  <matthias@poet.de>
-
-       * glib/glib-sections.txt: Move g_get_charset() to the
-       Charset conversion section. (#65630)
-Wed Dec 19 23:07:53 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/tmpl/messages.sgml glib/tmpl/string_utils.sgml: 
-       SGML fixes.
-
-       * gobject/gobject-sections.txt glib/glib-sectoins.txt: Small updates.
-
-2001-12-15  Matthias Clasen  <matthias@poet.de>
-
-       * glib/tmpl/caches.sgml: GCs are cached by GTK, not by GDK.
-
-2001-12-14  Matthias Clasen  <matthias@poet.de>
-
-       * glib/tmpl/memory.sgml: Typo fixes.
-
-2001-12-13  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/completion.sgml, glib/tmpl/date.sgml,
-       glib/tmpl/fileutils.sgml, glib/tmpl/iochannels.sgml,
-       glib/tmpl/macros.sgml, glib/tmpl/memory.sgml,
-       glib/tmpl/misc_utils.sgml, glib/tmpl/warnings.sgml,
-       glib/tmpl/windows.sgml: Revert mistaken change: it is UNIX, not Unix.
-
-       * glib/tmpl/memory_chunks.sgml,
-       glib/tmpl/date.sgml, glib/tmpl/threads.sgml,
-       glib/tmpl/gtype.sgml: Trivial markup fixes.
-
-2001-12-12  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/string_utils.sgml: Correct docs for g_[v]snprintf.
-
-2001-12-12  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/allocators.sgml, glib/tmpl/arrays.sgml, 
-       glib/tmpl/arrays_byte.sgml, glib/tmpl/arrays_pointer.sgml,
-       glib/tmpl/caches.sgml, glib/tmpl/completion.sgml, 
-       glib/tmpl/conversions.sgml,
-       glib/tmpl/datalist.sgml, glib/tmpl/date.sgml, 
-       glib/tmpl/error_reporting.sgml, glib/tmpl/fileutils.sgml,
-       glib/tmpl/hash_tables.sgml,
-       glib/tmpl/hooks.sgml, glib/tmpl/macros.sgml,
-       glib/tmpl/macros_misc.sgml, glib/tmpl/main.sgml, glib/tmpl/markup.sgml,
-       glib/tmpl/memory.sgml, glib/tmpl/memory_chunks.sgml, 
-       glib/tmpl/messages.sgml, glib/tmpl/misc_utils.sgml,
-       glib/tmpl/modules.sgml, glib/tmpl/numerical.sgml, 
-       glib/tmpl/patterns.sgml, glib/tmpl/queue.sgml, 
-       glib/tmpl/shell.sgml, glib/tmpl/spawn.sgml,
-       glib/tmpl/string_utils.sgml, glib/tmpl/thread_pools.sgml,
-       glib/tmpl/threads.sgml, glib/tmpl/timers.sgml, 
-       glib/tmpl/trees-binary.sgml, glib/tmpl/trees-nary.sgml,
-       glib/tmpl/type_conversion.sgml, glib/tmpl/unicode.sgml,
-       glib/tmpl/warnings.sgml, glib/tmpl/windows.sgml:        
-       Improve markup of examples, general consistency improvements.
-
-2001-12-06  Havoc Pennington  <hp@redhat.com>
-
-       * glib/tmpl/messages.sgml: improve g_log_set_handler docs
-
-Wed Nov 28 18:50:19 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/glib-sections.txt: Update.
-
-2001-11-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/date.sgml: Fix g_usleep docs.
-
-2001-11-26  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/trees-binary.sgml: Document G_LEVEL_ORDER better.
-
-2001-11-22  Matthias Clasen  <matthiasc@poet.de>
-
-       Fixes for #61284:
-
-       * glib/tmpl/windows.sgml: Document G_WIN32_DLLMAIN_FOR_DLL_NAME.
-
-       * glib/tmpl/fileutils.sgml: Document GDir.
-
-       * glib/tmpl/limits.sgml: Document G_MININT64, G_MAXINT64, G_MAXUINT64.  
-
-Thu Nov 22 12:56:57 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/gobject-sections.txt: Update.
-
-       * glib/tmpl/{spawn.sgml,patterns.sgml}: SGML fixes.
-
-       * glib/glib-sections.txt: Updated.
-
-       * glib/Makefile.am (IGNORE_HFILES): Don't scan
-       headers in build/
-
-Sat Nov 17 17:24:19 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/glib-sections.txt: Remove g_log_domain_glib
-
-2001-11-15  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/iochannels.sgml: Document GIOFlags, fix typos.
-
-       * glib/tmpl/conversions.sgml, glib/tmpl/unicode.sgml,
-       glib/tmpl/spawn.sgml, glib/tmpl/fileutils.sgml,
-       glib/tmpl/shell.sgml, glib/tmpl/windows.sgml: Add
-       some missing short and long descriptions.
-
-2001-11-14  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/Makefile.am (MKDB_OPTIONS): Add --sgml-mode.
-
-       * glib/tmpl/patterns.sgml: Document UTF-8 support.
-
-Wed Nov 14 03:19:49 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/param_value_types.sgml: more docs.
-
-Tue Nov 13 21:31:58 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/param_value_types.sgml: list parameter and
-       value types.
-
-       * gobject/tmpl/gparamspec.sgml: more docs for g_param_spec*()
-       functions.
-       
-       * gobject/*: section cleanups.
-
-Tue Nov 13 19:49:16 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/gparamspec.sgml: param spec updates.
-
-2001-11-12  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/markup.sgml: Remove excess listitem from long 
-       description.
-2001-11-11  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/unicode.sgml: Document GNormalizeMode enum.
-
-       * glib/tmpl/spawn.sgml: Document GSpawnFlags flags.
-
-       * glib/tmpl/error_reporting.sgml: Document GError struct.
-
-       * glib/tmpl/main.sgml: Document GMainContext, GSource and 
-       GSourceCallbackFuncs structs.
-
-2001-10-31  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/messages.sgml, glib/tmpl/unicode.sgml:
-       Document g_log_domain_glib, gunichar, gunichar2, GUnicodeType,
-       GUnicodeBreakType.
-
-Fri Oct 26 11:42:50 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * */Makefile.am: Remove $(srcdir)/html before building
-       HTML to prevent stale files. Dist all files in html/
-
-2001-10-25  Havoc Pennington  <hp@pobox.com>
-
-       * glib/tmpl/string_utils.sgml: docs on why the deprecated
-       functions are deprecated.
-
-2001-10-15  Sven Neumann  <sven@gimp.org>
-
-       * glib/tmpl/random_numbers.sgml: fixed typo.
-
-Sat Oct 13 06:58:23 2001  Tim Janik  <timj@gtk.org>
-
-       * glib/tmpl/patterns.sgml: amended documentation.
-
-2001-10-11  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/patterns.sgml, glib/tmpl/shell.sgml: Updates.
-
-2001-10-05  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/hooks.sgml: Document G_HOOK_FLAG_USER_SHIFT.
-
-       * glib/tmpl/trash_stacks.sgml: Document trash stacks.
-
-       * glib/tmpl/async_queues.sgml, glib/tmpl/caches.sgml, 
-       glib/tmpl/completion.sgml, glib/tmpl/patterns.sgml, 
-       glib/tmpl/numerical.sgml, glib/tmpl/random_numbers.sgml, 
-       glib/tmpl/relations.sgml, glib/tmpl/modules.sgml: Update.
-
-2001-10-05  Matthias Clasen  <matthiasc@poet.de>
-       
-       * glib/tmpl/conversions.sgml: Update.
-
-       * glib/tmpl/patterns.sgml: Update.
-
-2001-10-05  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/hooks.sgml, glib/tmpl/spawn.sgml,
-       glib/tmpl/macros_misc.sgml: Update. 
-
-       * glib/tmpl/linked_lists_double.sgml, glib/tmpl/trees-binary.sgml,
-       glib/glib-sections.txt: Document GCompareDataFunc.
-
-2001-10-02  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/iochannel.sgml, glib/tmpl/macros_misc.sgml,
-       glib/tmpl/queue.sgml: update docs.
-
-       * glib/tmpl/modules.sgml, glib/tmpl/threads.sgml: Remove 
-       references to glib-config.
-
-2001-10-01  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/iochannels.sgml, glib/tmpl/shell.sgml,
-       glib/tmpl/spawn.sgml, glib/tmpl/memory.sgml,
-       glib/tmpl/macros.sgml, glib/tmpl/completion.sgml,
-       glib/tmpl/main.sgml, glib/tmpl/messages.sgml,
-       glib/tmpl/misc_utils.sgml, glib/tmpl/threads.sgml,
-       glib/tmpl/trees-nary.sgml, glib/tmpl/string_utils.sgml:
-       More markup fixes and completions.
-
-Mon Oct  1 15:59:46 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/tmpl/strings.sgml docs/glib-sections.txt: Rename
-       g_string_printfa(). to g_string_append_printf().
-
-2001-10-01  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/glib-sections.txt: Move all *_error_quark()
-       functions to the 'Private' sections. (#61472)
-
-2001-10-01  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/macros.sgml (G_CONST_RETURN): document
-       allowed uses for 'out' parameters.
-
-2001-10-01  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/caches.sgml, glib/tmpl/datalist.sgml,
-       glib/tmpl/hash_tables.sgml, glib/tmpl/messages.sgml,
-       glib/tmpl/misc_utils.sgml: consistently refer to GTK+.
-
-       * glib/tmpl/error_reporting.sgml, glib/tmpl/fileutils.sgml,
-       glib/tmpl/windows.sgml, glib/tmpl/modules.sgml,
-       glib/tmpl/linked_lists_single.sgml, glib/tmpl/trees-nary.sgml,
-       glib/tmpl/trees-binary.sgml, glib/tmpl/timers.sgml: Markup fixes.
-
-2001-09-30  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/arrays.sgml,glib/tmpl/arrays_byte.sgml
-       glib/tmpl/arrays_pointer.sgml, glib/tmpl/caches.sgml, 
-       glib/tmpl/datalist.sgml, glib/tmpl/date.sgml, 
-       glib/tmpl/datasets.sgml, glib/tmpl/type_conversion.sgml,
-       glib/tmpl/memory.sgml, glib/tmpl/hash_tables.sgml:
-       Markup fixes and a few additions.
-
-2001-09-27  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/macros.sgml, glib/tmpl/macros_misc.sgml, 
-       glib/tmpl/scanner.sgml: Additions and markup fixes.
-
-2001-09-27  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib/tmpl/warnings.sgml, glib/tmpl/linked_lists_double.sgml,
-       glib/tmpl/completion.sgml, glib/tmpl/strings.sgml: Documented
-       some functions, markup fixes.
-       * glib/tmpl/patterns.sgml: New file.
-       * glib/glib-docs.sgml: Add entity for patterns.sgml.
-       
-2001-09-26  Matthias Clasen <matthiasc@poet.de>
-
-       * glib/glib-sections.txt: Add g_mem_is_system_malloc.
-
-2001-09-25  Matthias Clasen <matthiasc@poet.de>
-
-       * glib/glib-sections.txt: Add a missing SECTION 
-       endtag. (#61126)
-
-2001-09-17  Darin Adler  <darin@bentspoon.com>
-
-       * glib/tmpl/string_utils.sgml: Fix a typo and change
-       documentation for g_ascii_isdigit and g_ascii_isxdigit
-       to reflect the fact that the standard isdigit and
-       isxdigit are already locale-independent.
-
-Wed Sep  5 05:24:07 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/gboxed.sgml: documented some functions.
-
-       * gobject/tmpl/objects.sgml: some fixups.
-
-Mon Sep 10 11:37:02 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/glib-sections.txt: Update.
-
-Sat Sep  8 14:13:44 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am (IGNORE_HFILES): Add 
-       gbsearcharray.h.
-
-       * gobject/Makefile.am (IGNORE_HFILES): Remove
-       gbsearcharray.h.
-
-2001-08-15  Ron Stenike  <rsteinke@w-link.net>
-
-       * docs/reference/glib/glib-sections.txt: Added
-       declarations for g_io_channel_[set,get]_close_on_unref
-
-Sun Aug 12 10:03:42 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * */Makefile.am: Set GPATH to fix srcdir != builddir  
-       problems with GNU make.
-
-Sun Aug 12 02:24:36 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/value_arrays.sgml: document value arrays.
-
-2001-08-06  Sven Neumann  <sven@gimp.org>
-
-       * docs/reference/gobject/gobject-sections.txt
-       * docs/reference/gobject/tmpl/objects.sgml: added documentation for
-       g_object_[add|remove]_weak_pointer().
-
-2001-07-19  Darin Adler  <darin@bentspoon.com>
-
-       reviewed by: <delete if not using a buddy>
-
-       * glib/tmpl/string_utils.sgml:
-
-2001-06-03  Matthias Clasen  <matthiasc@poet.de>
-       * glib/tmpl/caches.sgml, glib/tmpl/main.sgml, 
-       gobject/gobject-docs.sgml, gobject/tmpl/generic_values.sgml,
-       gobject/tmpl/gtypemodule.sgml, gobject/tmpl/signals.sgml,
-       gobject/tmpl/types.sgml: fix some typos.
-Thu Jun 28 17:43:29 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/tmpl/memory.sgml glib/tmpl/macros_misc.sgml: Add
-       notes about inclusion of string.h to docs on g_memmove,
-       G_VA_COPY. (#54411)
-
-Tue Jun 26 12:28:20 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am: Fix problem with glibconfig.h
-
-2001-06-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml (example): Corrected.
-
-2001-06-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-sections.txt, glib/tmpl/date.sgml: Add g_time_val_add.
-
-       * glib/tmpl/threads.sgml: Updated. 
-
-2001-05-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/arrays.sgml, glib/tmpl/arrays_pointers.sgml,
-       glib/tmpl/arrays_byte.sgml: Corrected documentation for the
-       ..._sized_new functions. Discovered by noon@users.sourceforge.net.
-
-2001-05-19  Havoc Pennington  <hp@pobox.com>
-
-       * glib/Makefile.am (IGNORE_HFILES): add glibintl.h
-
-       * glib/tmpl/*.sgml: fix various missing docs
-
-2001-05-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-overrides.txt, glib/glib-sections.txt,
-       glib/tmpl/thread_pools.sgml, glib/tmpl/threads.sgml: Updated.
-
-2001-05-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/thread_pools.sgml, glib/tmpl/thread_pools.sgml:
-       Updates after some renaming took place.
-
-2001-05-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml, glib/glib-overrides.txt: Updated.
-
-       * glib/tmpl/threads.sgml: Clarification for g_mutex_trylock.
-
-2001-04-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/hash_tables.sgml, glib/tmpl/misc_utils.sgml,
-       glib/tmpl/scanner.sgml: Changes due to deprecation update.
-
-Mon Apr 16 12:18:26 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * {glib,gobject}/Makefile.am (tmpl-build.stamp): More tweaks
-       from GTK+. Reenable $(HTML_IMAGES) with shell portability fixes.
-
-Wed Apr  4 00:56:00 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/Makefile.am: disabled "for i in $(HTML_IMAGES) ;"
-       dist-hook because $(HTML_IMAGES) is empty.
-
-Tue Apr  3 11:51:02 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * {glib,gobject}/Makefile.am (sgml-build.stamp): Add
-       explicit path to tmpl files in dependencies.
-
-       * glib/glib.types gobject/gobject.types: empty files
-       to keep generic makefiles happy.
-
-2001-04-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-sections.txt: Removed
-       g_static_private_(get|set)_for_thread.
-
-       * glib/tmpl/threads.sgml: Updated.
-
-       * glib/tmpl/thread_pools.sgml: Added GThreadPool documentation.
-
-Mon Mar 26 14:20:36 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am (SCAN_OPTIONS): Add --deprecated-guards
-
-Sat Mar 17 17:51:17 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/Makefile.am glib/Makefile.am: A couple
-       of small fixes.
-
-2001-03-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml: Spelling corrections.
-
-Wed Mar  7 15:02:17 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/Makefile.am: Revert Tim's last commit to
-       get rid of 7+ unnecessary / broken changes. Add
-       back the useful part. Also fix problem with grep,
-       add dependency on template files.
-
-       * gobject/gobject-sections.txt: Remove double 
-       value_types names which was screwing up builds.
-
-       * glib/Makefile.am: Propagate changes from 
-       gobject/Makefile.am
-
-2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml: Fixed stupid typo.
-
-2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml: Completed.
-
-Wed Mar  7 09:33:27 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/Makefile.am: shuffled rules to avoid excessive
-       rebuilds.
-
-       * gobject/gobject-sections.txt: updates.
-
-       * gobject/tmpl/*: bunch of updates, added another patch
-       from Eric Lemings <eric.b.lemings@lmco.com>.
-
-2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-sections.txt, glib/tmpl/messages.sgml: Removed
-       g_log_domain_gmodule.
-
-2001-02-23  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml: Big update. Almost ready.
-
-       * glib/tmpl/async_queues.sgml: Typo.
-
-       * glib/glib-sections.txt: Added g_static_rec_mutex_init,
-       g_static_rec_mutex_free, g_static_rw_lock_init,
-       g_static_private_init and g_static_private_free.
-
-       * glib/glib-overrides.txt: Added g_thread_yield and g_thread_exit.
-
-Fri Feb 16 06:52:20 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/types.sgml: incorporated huge docu patch from Eric
-       Lemings <eric.b.lemings@lmco.com> with a bunch of editing on my part.
-
-Mon Feb 12 12:42:45 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * {glib,gobject}/Makefile.am: The ultimate gtk-doc makefile.
-
-2001-02-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/threads.sgml, glib/glib-sections.txt: Added
-       documentation for g_static_mutex_init().
-
-Wed Jan 31 07:14:22 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/Makefile.am: adapt to work with new CVS gtk-doc, leaving the old
-       rules in place caused bogus recursions. main changes:
-       - add to conditionalized section:
-         all-local:
-               $(MAKE) scan
-               $(MAKE) templates
-               $(MAKE) sgml
-               $(MAKE) html.stamp
-         html.stamp: sgml.stamp $(EXTRA_SGML_FILES)
-               $(MAKE) html
-         DOC_STAMPS= html.stamp sgml.stamp
-       - change:
-         maintainer-clean-local: clean
-         -     cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-         +     cd $(srcdir) && rm -rf sgml html $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt $(DOC_STAMPS)
-
-       * glib/Makefile.am (maintainer-clean-local): dito.
-
-Wed Jan 31 06:21:32 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/types.sgml: applied docu patch from Eric Lemings
-       <eric.b.lemings@lmco.com>, did some more editing.
-
-2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-sections.txt, glib/tmpl/threads.sgml: Added
-       g_static_mutex_free().
-
-Tue Jan  9 03:10:38 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/types.sgml: added some function documentations.
-
-       * gobject/gobject-sections.txt: buncha fixups.
-
-Fri Jan  5 15:47:10 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/glib-sections.txt glib/tmpl/* glib/Makefile.am: Updated.
-
-2000-12-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-sections.txt: Added G_MODULE_SUFFIX.
-
-       * glib/tmpl/modules.sgml: Updated.
-
-2000-12-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-sections.txt: Added g_rand_boolean and
-       g_random_boolean macros.
-
-       * glib/tmpl/random_numbers.sgml: Updated.
-       
-Tue Dec  5 15:41:23 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/Makefile.am glib/mainloop-states*: add images
-
-       * glib/glib-sections.txt: Updated
-
-       * glib/tmpl/main.sgml: More documentation, move function
-       docs to .c file.
-
-Mon Nov 13 00:18:55 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * glib/glib-sections.sgml: Move conversion functions
-       into GConv section.
-       
-       * gobject/gobject-docs.sgml: Fix some malformed sgml.
-
-Sun Nov  5 13:24:50 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/Makefile.am gobject/gobject-sections.sgml: Updates
-       * gobject/tmpl/g{boxed,type{plugin,module}}.sgml: added
-
-2000-11-05  Havoc Pennington  <hp@pobox.com>
-
-       * glib/tmpl/markup.sgml: Write docs
-
-2000-11-05  Havoc Pennington  <hp@pobox.com>
-
-       * glib/glib-sections.txt: remove parens from section name,
-       confuses gtk-doc
-
-       * glib/glib-docs.sgml: Add the new files here, doh.
-
-       * glib/tmpl/shell.sgml: add gshell.[hc] docs
-
-2000-11-05  Havoc Pennington  <hp@pobox.com>
-
-       * glib/tmpl/error_reporting.sgml: fixes
-
-2000-11-05  Havoc Pennington  <hp@pobox.com>
-
-       * glib/tmpl/spawn.sgml, glib/tmpl/markup.sgml,
-       glib/tmpl/fileutils.sgml: Added
-       
-       * glib/Makefile.am: Add new files
-
-       * glib/glib-sections.txt: Add stuff from -unused
-
-Fri Nov  3 07:33:15 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject/gobject-docs.sgml: added &gobject-closures; section.
-
-       * gobject/Makefile.am (tmpl_sources): add tmpl/clsoures.sgml
-
-       * gobject/gobject-sections.txt: added Closure section.
-       
-       * gobject/tmpl/closures.sgml: new file with template description
-       for GClosure functions.
-
-2000-11-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/glib-unused.sgml: Remove superfluous GSearchFunc.
-
-       * glib/tmpl/async_queues.sgml, glib/glib-sections.txt: Added
-       documentation for asynchronous queues.
-
-2000-10-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/linked_lists_single.sgml: This time the right fix.
-
-       * glib/tmpl/scanner.sgml, glib/tmpl/strings.sgml: Changed
-       parameter names.
-
-       * glib/tmpl/string_utils.sgml: Corrected the documentation of
-       g_strescape and added those of g_strcompress.
-
-2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/limits.sgml: Added documentation for
-       G_MAXU(INT|SHORT|LONG).
-
-       * glib/tmpl/macros_misc.sgml: Added documentation for
-       G_G(U)INT(16|32|64)_FORMAT.
-
-       * glib/tmpl/types.sgml: Mention G_MAXU(INT|SHORT|LONG) in
-       documentation for gu(int|short|long).
-
-       * glib/glib-sections.txt, glib/tmpl/linked_lists_double.sgml,
-       glib/tmpl/caches.sgml: Move GCompareFunc to GList and introduce
-       and document GEqualFunc in GHashTable.
-
-       * glib/tmpl/caches.sgml, glib/tmpl/hash_tables.sgml,
-       glib/tmpl/relations.sgml : Changed to reflect the changed API
-       (GCompareFunc -> GEqualFunc).
-
-       * glib/tmpl/linked_lists_single.sgml, glib/tmpl/threads.sgml: Typo
-       fixes.
-       
-Mon Oct 30 11:13:12 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject/tmpl/signals.sgml: start at general description.
-
-       * gobject/gobject-docs.sgml: added introduction.
-
-Mon Oct 30 06:01:43 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject/gobject-sections.txt: opened up a new section on signals.
-
-2000-10-27  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/tmpl/misc_utils.sgml: Removed the win32 limitation.
-
-       * glib/glib-sections.txt, glib/tmpl/hash_tables.sgml,
-       glib/tmpl/macros_misc.sgml, glib/tmpl/misc_utils.sgml,
-       glib/tmpl/scanner.sgml: Document the recently deprecated functions
-       as such.
-
-2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
-
-       'make distcheck' fixes.
-       * glib/Makefile.am (EXTRA_DIST): Add $(DOC_MODULE)-decl.txt.
-       (html): Run 'gtkdoc-fixxref' in $(srcdir).
-       (dist-check-gtkdoc): Add missing quote.
-       (dist-hook): Copy in dependency order, so that none of the
-       makerules are fired in a tarball build.
-
-       * gobject/Makefile.am: Likewise.
-
-2000-10-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib/glib-sections.txt: Added misc items.
-
-       * glib/tmpl/random_numbers.sgml: Documentation for the random
-       number generator.
-
-2000-10-09  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * gobject/Makefile.am (DOC_SOURCE_DIR): Don't set to 
-       $top_srcdir)/gobject.
-       * glib/Makefile.am (DOC_SOURCE_DIR): Don't set to $(top_srcdir),
-
-2000-09-29  Jonathan Blandford  <jrb@redhat.com>
-
-       * glib/tmpl/trees-nary.sgml: Add g_node_insert_after().
-
-Thu Sep  7 12:35:35 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Some further makefile improvement.
-        
-       * Restore all the docs that mysteriously vanished earlier.
-
-Wed Sep  6 10:59:45 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/Makefile.am glib/Makefile.am: Improve 
-       separation of generic non-generic parts and dependencies. 
-
-Tue Sep  5 20:03:25 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Moved into glib source tree, updated glib-sections.txt
-       and Makefile.am for glib-1.3.x.
-
-2000-07-01  Damon Chaplin  <damon@helixcode.com>
-
-       * tmpl/string_utils.sgml: updated g_strndup.
-
-2000-06-11  Damon Chaplin  <damon@helixcode.com>
-
-       * tmpl/messages.sgml: updated a bit more.
-
-2000-06-11  Damon Chaplin  <damon@helixcode.com>
-
-       * tmpl/messages.sgml: updated a few bits about log handlers & flags.
-
-2000-04-16  Damon Chaplin  <damon@helixcode.com>
-
-       * tmpl/linked_lists_single.sgml: 
-       * tmpl/linked_lists_double.sgml: 
-       * tmpl/trees-nary.sgml: updated.
-
-       * tmpl/modules.sgml: described g_module_build_path().
-
-       * tmpl/date.sgml: made short description lower case and end in a '.'.
-
-       * glib-sections.txt: rearranged GDate section.
-
-       * tmpl/arrays.sgml: 
-       * tmpl/arrays_byte.sgml: 
-       * tmpl/arrays_pointer.sgml: updated.
-
-2000-02-21  Damon Chaplin  <damon@helixcode.com>
-
-       * tmpl/main.sgml: updated the g_source_remove_by_XXX() descriptions
-       to note that only the first source found is removed.
-
-2000-01-25  Damon Chaplin  <damon@karuna.freeserve.co.uk>
-
-       * tmpl/misc_utils.sgml: g_bit_nth_lsf/msf docs from 
-       Nils Rennebarth <nils@ipe.uni-stuttgart.de>, and updates for
-       GVoidFunc & GFreeFunc.
-
-1999-12-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * glib-sections.txt, tmpl/threads.sgml: Removed
-       G_THREADS_IMPL_NSPR. Shouldn't be used anyway.
-
-       * glib-overrides.txt: New file, that makes most of the thread
-       related macros look like functions.
-
-       * Makefile.am: Added glib-overrides.txt to EXTRA_DIST.
-
-       * tmpl/threads.sgml: Minor updates.
-       
-Tue Aug 17 08:42:17 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * tmpl/datasets.sgml: Added missing </para>
-       * tmpl/timers.sgml: Added missing </para>
-       * tmpl/misc_utils.sgml: Added missing </para>
-       * tmpl/linked_lists_double.sgml: Added missing </para>
-       * tmpl/linked_lists_single.sgml: Added missing </para>
-       * tmpl/threads.sgml: Removed extra <para>s.
-       * tmpl/main.sgml: Added missing </para>
-
-Wed Aug 18 23:38:52 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * README: Added some simple build instructions.
-
-Wed Aug 18 23:11:28 1999  Owen Taylor  <otaylor@redhat.com>
-
-       * Import into CVS of glib-reference-1.1.3
-         Filled in some basic contents for AUTHORS
-         README, and README.cvs  
-
index 08093e8..68d3fba 100644 (file)
@@ -47,6 +47,7 @@ IGNORE_HFILES = \
        gdbusdaemon.h \
        gdbusprivate.h \
        gdelayedsettingsbackend.h \
+       gdocumentportal.h \
        gdummyfile.h \
        gdummyproxyresolver.h \
        gdummytlsbackend.h \
@@ -56,6 +57,9 @@ IGNORE_HFILES = \
        giomodule-priv.h \
        gioprivate.h \
        giowin32-priv.h \
+       gio_probes.h \
+       gio_trace.h \
+       gio-tool.h \
        glocaldirectorymonitor.h \
        glocalfileenumerator.h \
        glocalfile.h \
@@ -74,7 +78,9 @@ IGNORE_HFILES = \
        gnetworkmonitorportal.h \
        gnotificationbackend.h \
        gnotification-private.h \
+       gopenuriportal.h \
        gpollfilemonitor.h \
+       gportalsupport.h \
        gproxyresolverportal.h \
        gregistrysettingsbackend.h \
        gresourcefile.h \
index 6abd0ea..98889ef 100644 (file)
     <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">
+    <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">
+    <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">
+    <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">
+    <title>Index of new symbols in 2.60</title>
+    <xi:include href="xml/api-index-2.60.xml"><xi:fallback /></xi:include>
+  </index>
 
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
 
index 0eb5607..1fe37e4 100644 (file)
@@ -222,6 +222,13 @@ G_TYPE_FILE_MONITOR_FLAGS
 G_TYPE_FILE_QUERY_INFO_FLAGS
 <SUBSECTION Private>
 g_file_get_type
+g_file_copy_flags_get_type
+g_file_create_flags_get_type
+g_file_measure_flags_get_type
+g_file_monitor_event_get_type
+g_file_monitor_flags_get_type
+g_file_query_info_flags_get_type
+g_filesystem_preview_type_get_type
 </SECTION>
 
 <SECTION>
@@ -319,7 +326,9 @@ G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE
 G_FILE_ATTRIBUTE_UNIX_BLOCKS
 G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT
 G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE
+G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT
 G_FILE_ATTRIBUTE_DOS_IS_SYSTEM
+G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG
 G_FILE_ATTRIBUTE_OWNER_USER
 G_FILE_ATTRIBUTE_OWNER_USER_REAL
 G_FILE_ATTRIBUTE_OWNER_GROUP
@@ -424,6 +433,7 @@ g_file_attribute_matcher_get_type
 G_TYPE_FILE_TYPE
 <SUBSECTION Private>
 g_file_info_get_type
+g_file_type_get_type
 </SECTION>
 
 <SECTION>
@@ -448,6 +458,9 @@ G_TYPE_FILE_ATTRIBUTE_STATUS
 G_TYPE_FILE_ATTRIBUTE_TYPE
 <SUBSECTION Private>
 g_file_attribute_info_list_get_type
+g_file_attribute_info_flags_get_type
+g_file_attribute_status_get_type
+g_file_attribute_type_get_type
 </SECTION>
 
 <SECTION>
@@ -605,6 +618,7 @@ G_IS_EMBLEM
 G_IS_EMBLEM_CLASS
 G_TYPE_EMBLEM
 G_TYPE_EMBLEM_ORIGIN
+g_emblem_origin_get_type
 </SECTION>
 
 <SECTION>
@@ -788,6 +802,8 @@ G_TYPE_DATA_STREAM_NEWLINE_TYPE
 <SUBSECTION Private>
 g_data_input_stream_get_type
 GDataInputStreamPrivate
+g_data_stream_byte_order_get_type
+g_data_stream_newline_type_get_type
 </SECTION>
 
 <SECTION>
@@ -860,6 +876,7 @@ G_TYPE_OUTPUT_STREAM_SPLICE_FLAGS
 <SUBSECTION Private>
 g_output_stream_get_type
 GOutputStreamPrivate
+g_output_stream_splice_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -1049,6 +1066,7 @@ G_TYPE_IO_STREAM_SPLICE_FLAGS
 GIOStreamPrivate
 GIOStreamAdapter
 g_io_stream_get_type
+g_io_stream_splice_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -1172,6 +1190,8 @@ G_TYPE_MOUNT_MOUNT_FLAGS
 G_TYPE_MOUNT_UNMOUNT_FLAGS
 <SUBSECTION Private>
 g_mount_get_type
+g_mount_mount_flags_get_type
+g_mount_unmount_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -1258,6 +1278,8 @@ G_TYPE_DRIVE_START_FLAGS
 G_TYPE_DRIVE_START_STOP_TYPE
 <SUBSECTION Private>
 g_drive_get_type
+g_drive_start_flags_get_type
+g_drive_start_stop_type_get_type
 </SECTION>
 
 <SECTION>
@@ -1375,6 +1397,7 @@ g_io_error_from_win32_error
 G_TYPE_IO_ERROR_ENUM
 <SUBSECTION Private>
 g_io_error_quark
+g_io_error_enum_get_type
 </SECTION>
 
 <SECTION>
@@ -1519,6 +1542,8 @@ G_TYPE_PASSWORD_SAVE
 g_mount_operation_get_type
 g_ask_password_flags_get_type
 GMountOperationPrivate
+g_mount_operation_result_get_type
+g_password_save_get_type
 </SECTION>
 
 <SECTION>
@@ -1552,6 +1577,7 @@ g_unix_mount_compare
 g_unix_mount_copy
 g_unix_mount_get_mount_path
 g_unix_mount_get_device_path
+g_unix_mount_get_root_path
 g_unix_mount_get_fs_type
 g_unix_mount_get_options
 g_unix_mount_is_readonly
@@ -1621,6 +1647,7 @@ g_desktop_app_info_set_desktop_env
 g_desktop_app_info_get_string
 g_desktop_app_info_get_locale_string
 g_desktop_app_info_get_boolean
+g_desktop_app_info_get_string_list
 g_desktop_app_info_has_key
 GDesktopAppLaunchCallback
 g_desktop_app_info_launch_uris_as_manager
@@ -1682,6 +1709,7 @@ G_IO_MODULE_GET_CLASS
 G_TYPE_IO_MODULE_SCOPE_FLAGS
 <SUBSECTION Private>
 g_io_module_get_type
+g_io_module_scope_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -1807,6 +1835,7 @@ G_TYPE_SOCKET_ADDRESS
 G_TYPE_SOCKET_FAMILY
 <SUBSECTION Private>
 g_socket_address_get_type
+g_socket_family_get_type
 </SECTION>
 
 <SECTION>
@@ -1857,6 +1886,7 @@ G_UNIX_SOCKET_ADDRESS_GET_CLASS
 G_TYPE_UNIX_SOCKET_ADDRESS_TYPE
 <SUBSECTION Private>
 g_unix_socket_address_get_type
+g_unix_socket_address_type_get_type
 </SECTION>
 
 <SECTION>
@@ -1887,6 +1917,10 @@ g_resolver_set_default
 g_resolver_lookup_by_name
 g_resolver_lookup_by_name_async
 g_resolver_lookup_by_name_finish
+GResolverNameLookupFlags
+g_resolver_lookup_by_name_with_flags
+g_resolver_lookup_by_name_with_flags_async
+g_resolver_lookup_by_name_with_flags_finish
 g_resolver_free_addresses
 g_resolver_lookup_by_address
 g_resolver_lookup_by_address_async
@@ -1921,6 +1955,7 @@ GResolverPrivate
 g_resolver_get_type
 g_resolver_error_quark
 g_resolver_record_type_get_type
+g_resolver_error_get_type
 </SECTION>
 
 <SECTION>
@@ -2145,6 +2180,9 @@ G_TYPE_SOCKET_TYPE
 <SUBSECTION Private>
 g_socket_get_type
 GSocketPrivate
+g_socket_msg_flags_get_type
+g_socket_protocol_get_type
+g_socket_type_get_type
 </SECTION>
 
 <SECTION>
@@ -2196,6 +2234,7 @@ G_TYPE_SOCKET_CLIENT_EVENT
 <SUBSECTION Private>
 GSocketClientPrivate
 g_socket_client_get_type
+g_socket_client_event_get_type
 </SECTION>
 
 <SECTION>
@@ -2342,6 +2381,7 @@ G_TYPE_SOCKET_LISTENER_EVENT
 <SUBSECTION Private>
 GSocketListenerPrivate
 g_socket_listener_get_type
+g_socket_listener_event_get_type
 </SECTION>
 
 <SECTION>
@@ -2504,6 +2544,7 @@ G_ZLIB_COMPRESSOR_GET_CLASS
 G_TYPE_ZLIB_COMPRESSOR_FORMAT
 <SUBSECTION Private>
 g_zlib_compressor_get_type
+g_zlib_compressor_format_get_type
 </SECTION>
 
 <SECTION>
@@ -2707,6 +2748,7 @@ G_TYPE_SETTINGS_BIND_FLAGS
 <SUBSECTION Private>
 GSettingsPrivate
 g_settings_get_type
+g_settings_bind_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -2823,6 +2865,7 @@ G_TYPE_DBUS_SERVER
 G_TYPE_DBUS_SERVER_FLAGS
 <SUBSECTION Private>
 g_dbus_server_get_type
+g_dbus_server_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -2892,6 +2935,10 @@ G_TYPE_DBUS_MESSAGE_HEADER_FIELD
 G_TYPE_DBUS_MESSAGE_TYPE
 <SUBSECTION Private>
 g_dbus_message_get_type
+g_dbus_message_byte_order_get_type
+g_dbus_message_flags_get_type
+g_dbus_message_header_field_get_type
+g_dbus_message_type_get_type
 </SECTION>
 
 <SECTION>
@@ -2920,6 +2967,7 @@ g_dbus_connection_flush_sync
 g_dbus_connection_get_exit_on_close
 g_dbus_connection_set_exit_on_close
 g_dbus_connection_get_stream
+g_dbus_connection_get_flags
 g_dbus_connection_get_guid
 g_dbus_connection_get_unique_name
 GDBusCapabilityFlags
@@ -2974,6 +3022,12 @@ G_TYPE_DBUS_SUBTREE_FLAGS
 <SUBSECTION Private>
 g_dbus_connection_get_type
 g_bus_type_get_type
+g_dbus_call_flags_get_type
+g_dbus_capability_flags_get_type
+g_dbus_connection_flags_get_type
+g_dbus_send_message_flags_get_type
+g_dbus_signal_flags_get_type
+g_dbus_subtree_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -3059,6 +3113,7 @@ g_dbus_error_encode_gerror
 <SUBSECTION Standard>
 G_TYPE_DBUS_ERROR
 g_dbus_error_quark
+g_dbus_error_get_type
 </SECTION>
 
 <SECTION>
@@ -3103,6 +3158,7 @@ G_TYPE_DBUS_PROXY_FLAGS
 <SUBSECTION Private>
 GDBusProxyPrivate
 g_dbus_proxy_get_type
+g_dbus_proxy_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -3156,6 +3212,7 @@ g_dbus_method_info_get_type
 g_dbus_node_info_get_type
 g_dbus_property_info_get_type
 g_dbus_signal_info_get_type
+g_dbus_property_info_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -3622,6 +3679,9 @@ GTlsCertificateFlags
 G_TYPE_TLS_AUTHENTICATION_MODE
 G_TYPE_TLS_CERTIFICATE_FLAGS
 G_TYPE_TLS_ERROR
+g_tls_authentication_mode_get_type
+g_tls_certificate_flags_get_type
+g_tls_error_get_type
 </SECTION>
 
 <SECTION>
@@ -3634,6 +3694,7 @@ g_tls_backend_get_default
 g_tls_backend_supports_tls
 g_tls_backend_supports_dtls
 g_tls_backend_get_default_database
+g_tls_backend_set_default_database
 g_tls_backend_get_certificate_type
 g_tls_backend_get_client_connection_type
 g_tls_backend_get_server_connection_type
@@ -3687,6 +3748,8 @@ g_tls_connection_get_require_close_notify
 GTlsRehandshakeMode
 g_tls_connection_set_rehandshake_mode
 g_tls_connection_get_rehandshake_mode
+g_tls_connection_set_advertised_protocols
+g_tls_connection_get_negotiated_protocol
 g_tls_connection_set_use_system_certdb
 g_tls_connection_get_use_system_certdb
 g_tls_connection_get_database
@@ -3711,6 +3774,7 @@ G_TYPE_TLS_CONNECTION
 G_TYPE_TLS_REHANDSHAKE_MODE
 <SUBSECTION Private>
 g_tls_connection_get_type
+g_tls_rehandshake_mode_get_type
 </SECTION>
 
 <SECTION>
@@ -3862,6 +3926,7 @@ G_TYPE_TLS_CERTIFICATE_REQUEST_FLAGS
 GTlsInteractionPrivate
 g_tls_interaction_get_type
 g_tls_interaction_result_get_type
+g_tls_certificate_request_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -3876,6 +3941,8 @@ g_dtls_connection_set_require_close_notify
 g_dtls_connection_get_require_close_notify
 g_dtls_connection_set_rehandshake_mode
 g_dtls_connection_get_rehandshake_mode
+g_dtls_connection_set_advertised_protocols
+g_dtls_connection_get_negotiated_protocol
 g_dtls_connection_get_database
 g_dtls_connection_set_database
 g_dtls_connection_get_interaction
@@ -4144,6 +4211,7 @@ G_TYPE_NETWORK_MONITOR
 G_NETWORK_MONITOR
 G_IS_NETWORK_MONITOR
 G_NETWORK_MONITOR_GET_INTERFACE
+g_network_connectivity_get_type
 </SECTION>
 
 <SECTION>
@@ -4393,6 +4461,7 @@ g_task_set_priority
 g_task_set_check_cancellable
 g_task_set_return_on_cancel
 g_task_set_source_tag
+g_task_set_name
 <SUBSECTION>
 g_task_report_error
 g_task_report_new_error
@@ -4405,6 +4474,7 @@ g_task_get_return_on_cancel
 g_task_get_context
 g_task_get_source_object
 g_task_get_source_tag
+g_task_get_name
 <SUBSECTION>
 g_task_return_boolean
 g_task_return_int
@@ -4511,6 +4581,7 @@ G_TYPE_SUBPROCESS
 G_SUBPROCESS
 G_TYPE_SUBPROCESS_FLAGS
 g_subprocess_get_type
+g_subprocess_flags_get_type
 </SECTION>
 
 <SECTION>
@@ -4568,6 +4639,7 @@ G_TYPE_NOTIFICATION
 G_TYPE_NOTIFICATION_BACKEND
 g_notification_get_type
 G_TYPE_NOTIFICATION_PRIORITY
+g_notification_priority_get_type
 </SECTION>
 
 <SECTION>
index 219ed7c..5421f3d 100644 (file)
@@ -171,6 +171,16 @@ which is what <option>--internal</option> does.
 </varlistentry>
 
 <varlistentry>
+<term><option>--external-data</option></term>
+<listitem><para>
+By default code generated by <option>--generate-source</option> embeds the
+resource data as a string literal. When <option>--external-data</option>
+is given, the data is only declared in the generated C file, and the data
+has to be linked externally.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
 <term><option>--dependency-file=<replaceable>FILE</replaceable></option></term>
 <listitem><para>
 Write dependencies in the same style as gcc -M -MF to the given file.
index f1880cc..20bdeaf 100644 (file)
@@ -28,6 +28,7 @@ if get_option('gtk_doc')
     'gdbusdaemon.h',
     'gdbusprivate.h',
     'gdelayedsettingsbackend.h',
+    'gdocumentportal.h',
     'gdummyfile.h',
     'gdummyproxyresolver.h',
     'gdummytlsbackend.h',
@@ -37,6 +38,9 @@ if get_option('gtk_doc')
     'giomodule-priv.h',
     'gioprivate.h',
     'giowin32-priv.h',
+    'gio_probes.h',
+    'gio_trace.h',
+    'gio-tool.h',
     'glocaldirectorymonitor.h',
     'glocalfileenumerator.h',
     'glocalfile.h',
@@ -55,7 +59,9 @@ if get_option('gtk_doc')
     'gnetworkmonitorportal.h',
     'gnotificationbackend.h',
     'gnotification-private.h',
+    'gopenuriportal.h',
     'gpollfilemonitor.h',
+    'gportalsupport.h',
     'gproxyresolverportal.h',
     'gregistrysettingsbackend.h',
     'gresourcefile.h',
index c15ad44..d35b262 100644 (file)
           <listitem><para>network connectivity monitoring</para></listitem>
        </varlistentry>
     </variablelist>
-    There is support for connecting to <link linkend="http://www.freedesktop.org/wiki/Software/dbus">D-Bus</link>,
+    There is support for connecting to <ulink url="http://www.freedesktop.org/wiki/Software/dbus">D-Bus</ulink>,
     sending and receiving messages, owning and watching bus names,
     and making objects available on the bus:
     <variablelist>
index dfefa25..a3e7168 100644 (file)
@@ -36,6 +36,8 @@ IGNORE_HFILES = \
        gbsearcharray.h         \
        glib-private.h          \
        gmoduleconf.h           \
+       grcboxprivate.h         \
+       gstdioprivate.h         \
        gthreadprivate.h        \
        gunibreak.h             \
        gunicomp.h              \
@@ -62,6 +64,7 @@ IGNORE_HFILES = \
        glib-init.h             \
        gconstructor.h          \
        valgrind.h              \
+       gutilsprivate.h         \
        gvalgrind.h             \
        $(NULL)
 
index afebbec..8fe9569 100644 (file)
     <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">
+    <title>Index of new symbols in 2.60</title>
+    <xi:include href="xml/api-index-2.60.xml"><xi:fallback /></xi:include>
+  </index>
 
   <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
 
index 336dd98..5ea5b9b 100644 (file)
@@ -132,6 +132,8 @@ 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_MIN_REQUIRED
 GLIB_VERSION_MAX_ALLOWED
 GLIB_DISABLE_DEPRECATION_WARNINGS
@@ -155,6 +157,8 @@ 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_DEPRECATED_IN_2_26
 GLIB_DEPRECATED_IN_2_26_FOR
 GLIB_DEPRECATED_IN_2_28
@@ -187,6 +191,10 @@ 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_VERSION_CUR_STABLE
 GLIB_VERSION_PREV_STABLE
 </SECTION>
@@ -230,6 +238,9 @@ G_STRUCT_OFFSET
 G_MEM_ALIGN
 
 <SUBSECTION>
+G_ALIGNOF
+
+<SUBSECTION>
 G_CONST_RETURN
 
 <SUBSECTION>
@@ -438,9 +449,11 @@ G_GNUC_DEPRECATED_FOR
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
 G_GNUC_END_IGNORE_DEPRECATIONS
 G_GNUC_NORETURN
+G_GNUC_FALLTHROUGH
 G_GNUC_UNUSED
 G_GNUC_PRINTF
 G_GNUC_SCANF
+G_GNUC_STRFTIME
 G_GNUC_FORMAT
 G_GNUC_NULL_TERMINATED
 G_GNUC_WARN_UNUSED_RESULT
@@ -474,6 +487,7 @@ G_CAN_INLINE
 inline
 G_HAVE___INLINE
 G_HAVE___INLINE__
+G_INLINE_DEFINE_NEEDED
 G_HAVE_GNUC_VARARGS
 G_HAVE_ISO_VARARGS
 G_HAVE_GROWING_STACK
@@ -484,6 +498,10 @@ GLIB_UNAVAILABLE
 G_ANALYZER_ANALYZING
 G_ANALYZER_NORETURN
 g_autoptr_cleanup_generic_gfree
+g_has_typeof
+g_macro__has_attribute
+g_macro__has_builtin
+g_macro__has_feature
 </SECTION>
 
 <SECTION>
@@ -716,6 +734,11 @@ g_rec_mutex_trylock
 g_rec_mutex_unlock
 
 <SUBSECTION>
+GRecMutexLocker
+g_rec_mutex_locker_new
+g_rec_mutex_locker_free
+
+<SUBSECTION>
 GRWLock
 g_rw_lock_init
 g_rw_lock_clear
@@ -1211,6 +1234,9 @@ g_log_writer_format_fields
 g_log_writer_journald
 g_log_writer_standard_streams
 g_log_writer_default
+
+<SUBSECTION Private>
+g_log_structured_standard
 </SECTION>
 
 <SECTION>
@@ -1526,6 +1552,7 @@ g_strjoinv
 GStrv
 g_strv_length
 g_strv_contains
+g_strv_equal
 
 <SUBSECTION>
 g_strerror
@@ -1886,6 +1913,7 @@ g_spaced_primes_closest
 
 <SUBSECTION>
 g_atexit
+g_abort
 
 <SUBSECTION>
 g_parse_debug_string
@@ -1906,6 +1934,9 @@ G_NATIVE_ATEXIT
 g_ATEXIT
 g_win32_get_system_data_dirs_for_module
 ATEXIT
+g_bit_nth_lsf_impl
+g_bit_nth_msf_impl
+g_bit_storage_impl
 
 </SECTION>
 
@@ -2598,6 +2629,8 @@ g_ptr_array_remove_index
 g_ptr_array_remove_fast
 g_ptr_array_remove_index_fast
 g_ptr_array_remove_range
+g_ptr_array_steal_index
+g_ptr_array_steal_index_fast
 g_ptr_array_sort
 g_ptr_array_sort_with_data
 g_ptr_array_set_size
@@ -2963,6 +2996,7 @@ g_utf8_strrchr
 g_utf8_strreverse
 g_utf8_substring
 g_utf8_validate
+g_utf8_validate_len
 g_utf8_make_valid
 
 <SUBSECTION>
@@ -3076,6 +3110,7 @@ g_compute_hmac_for_bytes
 <SECTION>
 <TITLE>Testing</TITLE>
 <FILE>testing</FILE>
+G_TEST_OPTION_ISOLATE_DIRS
 g_test_minimized_result
 g_test_maximized_result
 g_test_init
@@ -3151,6 +3186,7 @@ g_assert_cmphex
 g_assert_cmpfloat
 g_assert_cmpfloat_with_epsilon
 g_assert_cmpmem
+g_assert_cmpvariant
 g_assert_no_error
 g_assert_error
 g_assert_true
@@ -3185,6 +3221,7 @@ GTestConfig
 GTestLogType
 GTestLogMsg
 GTestLogBuffer
+GTestResult
 
 g_test_log_type_name
 g_test_log_buffer_new
@@ -3404,6 +3441,7 @@ g_variant_builder_open
 g_variant_builder_close
 
 <SUBSECTION>
+G_VARIANT_DICT_INIT
 GVariantDict
 g_variant_dict_unref
 g_variant_dict_ref
@@ -3496,6 +3534,7 @@ g_atomic_rc_box_get_size
 
 <SECTION>
 <FILE>refstring</FILE>
+GRefString
 g_ref_string_new
 g_ref_string_new_intern
 g_ref_string_new_len
index d569f0c..71d07df 100644 (file)
     parses successfully.  You would need to specify <literal>[&lt;['']&gt;, &lt;@as []&gt;]</literal>.
    </para>
    <para>
-    <literal>{"title": &lt;"frobit"&gt;, "enabled": &lt;true&gt;, width: &lt;800&gt;}</literal> is an example of
+    <literal>{"title": &lt;"frobit"&gt;, "enabled": &lt;true&gt;, "width": &lt;800&gt;}</literal> is an example of
     perhaps the most pervasive use of both dictionaries and variants.
    </para>
   </refsect2>
index f14824b..2fb8248 100644 (file)
@@ -8,6 +8,8 @@ if get_option('gtk_doc')
     'gbsearcharray.h',
     'glib-private.h',
     'gmoduleconf.h',
+    'grcboxprivate.h',
+    'gstdioprivate.h',
     'gthreadprivate.h',
     'gunibreak.h',
     'gunicomp.h',
@@ -34,6 +36,7 @@ if get_option('gtk_doc')
     'glib-init.h',
     'gconstructor.h',
     'valgrind.h',
+    'gutilsprivate.h',
     'gvalgrind.h',
   ]
 
index 6efe781..63ed6fa 100644 (file)
@@ -28,6 +28,7 @@ CFILE_GLOB=$(top_srcdir)/gobject/*.c
 IGNORE_HFILES = \
        tests                   \
        gatomicarray.h          \
+       gobject_probes.h        \
        gobject_trace.h         \
        gtype-private.h
 
index 2573bb3..84023e9 100644 (file)
@@ -375,6 +375,15 @@ Write output to FILE instead of stdout.
 </para></listitem>
 </varlistentry>
 
+<varlistentry>
+<term><option>@RSPFILE</option></term>
+<listitem><para>
+When passed as the sole argument, read and parse the actual arguments from
+<literal>RSPFILE</literal>. Useful on systems with a low command-line length
+limit. For example, Windows has a limit of 8191 characters.
+</para></listitem>
+</varlistentry>
+
 </variablelist>
 </refsect1>
 
index 014fe54..7a7f1b8 100644 (file)
@@ -4,6 +4,7 @@ if get_option('gtk_doc')
   ignore_headers = [
     'tests',
     'gatomicarray.h',
+    'gobject_probes.h',
     'gobject_trace.h',
     'gtype-private.h'
   ]
index daaad46..0c0393d 100644 (file)
@@ -212,7 +212,7 @@ struct _ViewerFile
   GObject parent_instance;
 
   /* Other members, including private data. */
-}
+};
 </programlisting></informalexample>
     </para>
 
diff --git a/fuzzing/README.md b/fuzzing/README.md
new file mode 100644 (file)
index 0000000..dcacef6
--- /dev/null
@@ -0,0 +1,51 @@
+Fuzz targets used by [oss-fuzz](https://github.com/google/oss-fuzz/).
+
+Useful links: [Dashboard](https://oss-fuzz.com/) _(requires access)_, [Build logs](https://oss-fuzz-build-logs.storage.googleapis.com/index.html), [Coverage](https://oss-fuzz.com/v2/coverage-report/job/libfuzzer_asan_glib/latest)
+
+## How to add new targets
+
+Add **fuzz_target_name.c** and edit `meson.build` accordingly.
+
+New targets are picked up by oss-fuzz automatically within a day. Targets must not be renamed once added.
+
+Add (optional) **fuzz_target_name.dict** containing keywords and magic bytes.
+
+Add (optional) **fuzz_target_name.corpus** with file names on separate lines. Wildcards `?`, `*` and `**` are supported. Examples below.
+
+```bash
+glib/*  # all files in directory glib
+glib/** # all files in directory glib and sub-directories
+**.xbel # all files ending with .xbel in the repository
+```
+
+Recommended reading: [Fuzz Target](https://llvm.org/docs/LibFuzzer.html#fuzz-target), [Dictionaries](https://llvm.org/docs/LibFuzzer.html#dictionaries), [Corpus](https://llvm.org/docs/LibFuzzer.html#corpus)
+
+## How to reproduce oss-fuzz bugs locally
+
+Build with at least the following flags, choosing a sanitizer as needed. A somewhat recent version of [clang](http://clang.llvm.org/) is recommended.
+
+```bash
+$ CC=clang CXX=clang++ meson DIR -Db_sanitize=<address|undefined> -Db_lundef=false
+```
+
+Afterwards run the affected target against the provided test case.
+
+```bash
+$ DIR/fuzzing/fuzz_target_name FILE
+```
+
+#### FAQs
+
+###### What about Memory Sanitizer (MSAN)?
+
+Correct MSAN instrumentation is [difficult to achieve](https://clang.llvm.org/docs/MemorySanitizer.html#handling-external-code) locally, so false positives are very likely to mask the actual bug.
+
+If need be, [you can still reproduce](https://github.com/google/oss-fuzz/blob/master/docs/reproducing.md#building-using-docker) those bugs with the oss-fuzz provided docker images.
+
+###### There are no file/function names in the stack trace.
+
+`llvm-symbolizer` must be in `PATH`.
+
+###### UndefinedBehavior Sanitizer (UBSAN) doesn't provide a stack trace.
+
+Set environment variable `UBSAN_OPTIONS` to `print_stacktrace=1` prior to running the target.
diff --git a/fuzzing/driver.c b/fuzzing/driver.c
new file mode 100644 (file)
index 0000000..99e965b
--- /dev/null
@@ -0,0 +1,32 @@
+/* Simpler gnu89 version of StandaloneFuzzTargetMain.c from LLVM */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+extern int LLVMFuzzerTestOneInput (const unsigned char *data, size_t size);
+
+int
+main (int argc, char **argv)
+{
+  FILE *f;
+  size_t n_read, len;
+  unsigned char *buf;
+
+  if (argc < 2)
+    return 1;
+
+  f = fopen (argv[1], "r");
+  assert (f);
+  fseek (f, 0, SEEK_END);
+  len = ftell (f);
+  fseek (f, 0, SEEK_SET);
+  buf = (unsigned char*) malloc (len);
+  n_read = fread (buf, 1, len, f);
+  assert (n_read == len);
+  LLVMFuzzerTestOneInput (buf, len);
+
+  free (buf);
+  printf ("Done!\n");
+  return 0;
+}
diff --git a/fuzzing/fuzz.h b/fuzzing/fuzz.h
new file mode 100644 (file)
index 0000000..4a87998
--- /dev/null
@@ -0,0 +1,22 @@
+#include "gio/gio.h"
+#include "glib/glib.h"
+
+int LLVMFuzzerTestOneInput (const unsigned char *data, size_t size);
+
+#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+static GLogWriterOutput
+empty_logging_func (GLogLevelFlags log_level, const GLogField *fields,
+                    gsize n_fields, gpointer user_data)
+{
+  return G_LOG_WRITER_HANDLED;
+}
+#endif
+
+/* Disables logging for oss-fuzz. Must be used with each target. */
+static void
+fuzz_set_logging_func (void)
+{
+#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
+  g_log_set_writer_func (empty_logging_func, NULL, NULL);
+#endif
+}
diff --git a/fuzzing/fuzz_bookmark.c b/fuzzing/fuzz_bookmark.c
new file mode 100644 (file)
index 0000000..4f257fd
--- /dev/null
@@ -0,0 +1,15 @@
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+  GBookmarkFile *bookmark = NULL;
+
+  fuzz_set_logging_func ();
+
+  bookmark = g_bookmark_file_new ();
+  g_bookmark_file_load_from_data (bookmark, (const gchar*) data, size, NULL);
+
+  g_bookmark_file_free (bookmark);
+  return 0;
+}
diff --git a/fuzzing/fuzz_bookmark.corpus b/fuzzing/fuzz_bookmark.corpus
new file mode 100644 (file)
index 0000000..5c78bc9
--- /dev/null
@@ -0,0 +1 @@
+glib/tests/**.xbel
diff --git a/fuzzing/fuzz_dbus_message.c b/fuzzing/fuzz_dbus_message.c
new file mode 100644 (file)
index 0000000..bccb2ba
--- /dev/null
@@ -0,0 +1,28 @@
+#include "fuzz.h"
+
+const static GDBusCapabilityFlags flags = G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING;
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+  gssize bytes;
+  GDBusMessage *msg = NULL;
+  guchar *blob = NULL;
+  gsize msg_size;
+
+  fuzz_set_logging_func ();
+
+  bytes = g_dbus_message_bytes_needed ((guchar*) data, size, NULL);
+  if (bytes <= 0)
+    return 0;
+
+  msg = g_dbus_message_new_from_blob ((guchar*) data, size, flags, NULL);
+  if (msg == NULL)
+    return 0;
+
+  blob = g_dbus_message_to_blob (msg, &msg_size, flags, NULL);
+
+  g_free (blob);
+  g_object_unref (msg);
+  return 0;
+}
diff --git a/fuzzing/fuzz_key.c b/fuzzing/fuzz_key.c
new file mode 100644 (file)
index 0000000..8d0edc5
--- /dev/null
@@ -0,0 +1,16 @@
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+  GKeyFile *key = NULL;
+
+  fuzz_set_logging_func ();
+
+  key = g_key_file_new ();
+  g_key_file_load_from_data (key, (const gchar*) data, size, G_KEY_FILE_NONE,
+                             NULL);
+
+  g_key_file_free (key);
+  return 0;
+}
diff --git a/fuzzing/fuzz_key.corpus b/fuzzing/fuzz_key.corpus
new file mode 100644 (file)
index 0000000..5a1cb41
--- /dev/null
@@ -0,0 +1,2 @@
+glib/tests/**.ini
+gio/tests/**.desktop
diff --git a/fuzzing/fuzz_variant_binary.c b/fuzzing/fuzz_variant_binary.c
new file mode 100644 (file)
index 0000000..995718c
--- /dev/null
@@ -0,0 +1,21 @@
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+  GVariant *variant = NULL, *normal_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;
+
+  normal_variant = g_variant_take_ref (g_variant_get_normal_form (variant));
+  g_variant_get_data (variant);
+
+  g_variant_unref (normal_variant);
+  g_variant_unref (variant);
+  return 0;
+}
diff --git a/fuzzing/fuzz_variant_text.c b/fuzzing/fuzz_variant_text.c
new file mode 100644 (file)
index 0000000..a797909
--- /dev/null
@@ -0,0 +1,21 @@
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+  const gchar *gdata = (const gchar*) data;
+  GVariant *variant = NULL;
+  gchar *text = NULL;
+
+  fuzz_set_logging_func ();
+
+  variant = g_variant_parse (NULL, gdata, gdata + size, NULL, NULL);
+  if (variant == NULL)
+    return 0;
+
+  text = g_variant_print (variant, TRUE);
+
+  g_free (text);
+  g_variant_unref (variant);
+  return 0;
+}
diff --git a/fuzzing/fuzz_variant_text.dict b/fuzzing/fuzz_variant_text.dict
new file mode 100644 (file)
index 0000000..a0e5284
--- /dev/null
@@ -0,0 +1,32 @@
+"'"
+"\""
+"("
+")"
+"<"
+">"
+"["
+"]"
+"{"
+"}"
+"*"
+"?"
+"@"
+"b'"
+"b\""
+"boolean"
+"byte"
+"double"
+"false"
+"handle"
+"int16"
+"int32"
+"int64"
+"just"
+"nothing"
+"objectpath"
+"signature"
+"string"
+"true"
+"uint16"
+"uint32"
+"uint64"
diff --git a/fuzzing/meson.build b/fuzzing/meson.build
new file mode 100644 (file)
index 0000000..16878fe
--- /dev/null
@@ -0,0 +1,28 @@
+fuzz_targets = [
+  'fuzz_bookmark',
+  'fuzz_dbus_message',
+  'fuzz_key',
+  'fuzz_variant_binary',
+  'fuzz_variant_text',
+]
+
+deps = [libgmodule_dep, libgio_dep, libglib_dep, libgobject_dep]
+
+extra_sources = []
+extra_c_args = cc.get_supported_arguments('-Werror=unused-function')
+
+# Links in a static library provided by oss-fuzz, else a standalone driver.
+# https://github.com/google/oss-fuzz/blob/master/docs/new_project_guide.md#buildsh-script-environment
+fuzzing_engine = cxx.find_library('FuzzingEngine', required : false)
+if fuzzing_engine.found()
+  deps += fuzzing_engine
+else
+  extra_sources += 'driver.c'
+endif
+
+foreach target_name : fuzz_targets
+  exe = executable(target_name, [extra_sources, target_name + '.c'],
+    c_args : extra_c_args,
+    dependencies : deps,
+  )
+endforeach
index 235f039..e88411e 100644 (file)
@@ -1,9 +1,9 @@
 gapplication
 gconstructor_as_data.h
 gdbus
-gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Animal.xml
-gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Cat.xml
-gdbus-example-objectmanager-generated.[ch]
+objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Animal.xml
+objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Cat.xml
+objectmanager-gen.[ch]
 gdbus-daemon-generated.[ch]
 gio
 gio_probes.h
diff --git a/gio/ChangeLog b/gio/ChangeLog
deleted file mode 100644 (file)
index 65c5273..0000000
+++ /dev/null
@@ -1,5966 +0,0 @@
-=== ChangeLog discontinued ===
-
-       With the move to git, GLib is switching from a ChangeLog file
-       to relying on commit messages to provide change history. Please
-       see README.commits for guidance on the expected message format.
-
-2009-03-26  Carlos Garnacho  <carlosg@gnome.org>
-
-       Bug 575270 – GVolumeMonitor::mount-pre-unmount not being emitted
-
-       * gunixmount.c (eject_unmount_cb) (eject_unmount_do_cb)
-       (eject_unmount_do): Emit ::mount-pre-unmount and wait 500msec before
-       actually trying to unmount.
-
-2009-03-17  Colin Walters  <walters@redhat.com>
-
-       Bug 575708 - runaway inotify madness ...
-
-       * gfilemonitor.c: Queue up events in a local list and
-       fire one idle, instead of queuing lots of individual
-       idles which has bad performance behavior.
-
-2009-03-17  Alexander Larsson  <alexl@redhat.com>
-
-        * glocalfileinputstream.c:
-        * glocalfileoutputstream.c:
-       fix attributes argument of query_info methods to
-       be "const char *".
-
-2009-03-16  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 575555 – Use fsync() when replacing files to avoid data loss on crash
-
-        * glocalfileoutputstream.c:
-        (g_local_file_output_stream_close):
-        (_g_local_file_output_stream_replace):
-       fsync temp file before closing if replacing target file
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.20.0 ===
-
-2009-03-04  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 573843 – g_get_current_dir returns non-absolute path
-
-       * glocalfile.c (canonicalize_filename):
-       Handle the case where g_get_current_dir() returns a non-absolute path.
-
-2009-03-04  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 573970 – crash in gunixvolumemonitor:update_mounts when unmounting
-
-        * gunionvolumemonitor.c:
-        (g_union_volume_monitor_dispose):
-       Run dispose on child monitors when disposing.
-
-        * gunixvolumemonitor.c:
-       Remove all volumes and mount on dispose to avoid circular
-       dependencies not freeing the monitor
-
-2009-03-03  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 561172 – gnome-open fails on local URIs with anchors
-
-        * gdesktopappinfo.c:
-       Don't force uris to filenames if the uri has an anchor, because
-       that would strip the anchor.
-
-        * glocalvfs.c:
-       Strip anchor from file:// uris when creating GFile, since
-       g_filename_from_uri doesn't handle them.
-
-2009-03-03  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 562613 – Missing const modifier in string parameters
-
-        * gfileinputstream.[ch]:
-        * gfileoutputstream.[ch]:
-        * glocalfileinfo.[ch]:
-       Make string arguments const if used as such.
-
-2009-03-03  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c (g_local_file_query_filesystem_info):
-       Handle filesystems no supporting reporting how much is free.
-       This fixes bug 573454 where the filesystem not supporting this
-       is the gvfs smb backend over the fuse filesystem.
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.10 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.9 ===
-
-2009-03-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * gioenums.h: Add a Since: tag
-
-2009-03-01  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 573658 – Deadlock in giomodule.c
-
-       * giomodule.c: Use a separate lock for extension point registration
-       to avoid deadlock. Discovered by Torsten Schoenfeld
-
-2009-03-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdatainputstream.c: Fix docs
-
-2009-02-27  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 573421 – Clarify message format in GMountOperation
-
-       * gmountoperation.c: Document that the first line of a
-       multi-line message should be interpreted as a heading.
-
-2009-02-27  David Zeuthen  <davidz@redhat.com>
-
-       Bug 573462 – GEmblemedIcon leak
-
-       * gemblemedicon.c (g_emblemed_icon_finalize):
-       Avoid leaking a GList.
-
-2009-02-27  Alexander Larsson  <alexl@redhat.com>
-
-        * giomodule-priv.h:
-        * giomodule.c:
-       Split out the extension point registration code to its
-       own function.
-
-        * glocalvfs.c:
-       Ensure extension points are registered before extending it.
-       It might not have happened yet if g_vfs_get_local() is called.
-
-2009-02-26  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 540461 – g_memory_output_stream_get_data_size() doesn't behave as document
-        * gmemoryoutputstream.c:
-       Track actual valid size, even if we later seek back.
-
-        * tests/memory-output-stream.c:
-       Add testcase
-
-2009-02-26  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 543183 – Clarify docs for g_file_has_prefix
-
-       * gfile.c: (g_file_has_prefix):
-       Clarify how the prefix matching works.
-
-2009-02-26  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       Support desktop file key X-GIO-NoFuse which disables
-       use of fuse pathnames for %u and %U arguments.
-
-2009-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 570073 – Add support for reading filesystems on Interix
-
-       * gunixmounts.c (_g_get_unix_mounts):
-       Support Interix. Patch from  Fabian Groffen 
-
-2009-02-25  Paolo Borelli  <pborelli@katamail.com>
-
-       Bug 570069 – wrong preprocessor directive in gio/glocalfileinfo.c
-
-       * glocalfileinfo.c: fix preprocessor condition. Patch by Markus Duft.
-
-2009-02-23  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       Remove accidentally commited spew
-
-2009-02-20  Alexander Larsson  <alexl@redhat.com>
-
-        * gcontenttype.c:
-        (g_content_type_guess):
-       Don't ever sniff desktop files when the filename is known.
-       In other words, only allow desktop files with the .desktop extension
-       and when the filename isn't known.
-       This is a security precaution since desktop files can execute
-       arbitrary code when launched and we don't want to allow them to
-       try and hide as another type. There is no legit reason to not
-       have the .desktop extension anyway.
-
-2009-02-19  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 549298 – impossible to copy files with p (pipe) flag
-
-       * gfile.c:
-       (file_copy_fallback):
-       Error out if the source file is a special file
-
-2009-02-18  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 560564 – Replacing a symlink with its linked file truncates the original file
-
-       * gioenums.h:
-       Add G_FILE_CREATE_REPLACE_DESTINATION
-
-       * glocalfileoutputstream.c:
-       (handle_overwrite_open):
-       (_g_local_file_output_stream_replace):
-       Handle G_FILE_CREATE_REPLACE_DESTINATION when overwriting files.
-
-       * gfile.c:
-       (file_copy_fallback):
-       Pass G_FILE_CREATE_REPLACE_DESTINATION to g_file_replace when copying
-       with overwrite.
-
-2009-02-17  Ryan Lortie  <desrt@desrt.ca>
-
-       * gfileinfo.c: unref the destination's attribute matcher before
-       overwriting it.
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.8 ===
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio.symbols: Add missing exports for new API
-
-       * gdatainputstream.c: Add missing Since: tags.
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.7 ===
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmountoperation.[hc]: Add an "aborted" signal to abort a
-       mount operation from the backend side.
-
-       * gvolume.h: Add docs regarding the "aborted" signal.
-
-2009-02-16  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 505042 – add file attribute for actually used file size in bytes
-
-       * gfileinfo.h: add G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE define to
-       "standard::allocated-size"
-       * gfileattribute.c: document
-       * glocalfileinfo.c: set the allocated size from st_blocks * 512
-
-2009-02-16  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 571598 – GAsyncResult with NULL gobject
-
-       * gsimpleasyncresult.c: remove various assertions and add some checks
-       to allow for a NULL source_object in GSimpleAsyncResult.
-
-2009-02-11  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 541225 – Can't compile gio on AIX : duplicate case value in 
-       gioerror.c
-
-       * gioerror.c (g_io_error_from_errno): Cope with EEXIST == ENOTEMPTY. 
-       Reported by Nicolas Joseph 
-
-2009-02-04  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 566747 - URIs opened with firefox %u load as local files
-
-       * gdummyfile.c (g_dummy_file_get_path):
-       Dummy files are never used for local paths, so always return NULL
-       in get_path(). 
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.6 ===
-
-2009-01-31  Paolo Borelli  <pborelli@katamail.com>
-
-       * glocalfileinfo.c: plug a tiny mem leak.
-
-2009-01-29  Ryan Lortie  <desrt@desrt.ca>
-
-       * gioerror.c (g_io_error_from_errno): handle all possible cases of
-       EAGAIN and EWOULDBLOCK being (un)defined and (un)equal.
-
-2009-01-28  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 568575 – _async functions for GDataInputStream
-
-       * gdatainputstream.h:
-       * gdatainputstream.c: add _async versions of read_line and read_until.
-       * gio.symbols:
-       * ../docs/reference/gio/gio-sections.txt: add new functions
-       * tests/sleepy-stream.c: new test case for async read line
-       * tests/Makefile.am: add new test
-
-2009-01-22  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 568723 – g_buffered_input_stream_fill_async doesn't take count == -1
-
-       * gbufferedinputstream.c (g_buffered_input_stream_fill_async,
-       g_buffered_input_stream_fill): check for count < -1 instead of count <
-       0 and copy modified check to non-async version for consistency.
-       document the "count = -1" API.
-
-2009-01-22  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 568741 – g_buffered_input_stream_fill_async doesn't work
-
-       * gbufferedinputstream.c (fill_async_callback): grow the buffer tail
-       after we have successfully read data from the base stream
-
-2009-01-20  Ryan Lortie  <desrt@desrt.ca>
-
-       Bug 568394 – dropping the last reference to a stream filter closes the
-       base stream
-
-       * gfilterinputstream.h:
-       * gfilterinputstream.c: add "close-base-stream" property and only
-       close the base stream if it is true.  issue async close callbacks from
-       correct source object.
-       * gfilteroutputstream.h:
-       * gfilteroutputstream.c: add a "close-base-stream" property and only
-       close the base stream if it is true.  issue async close callbacks from
-       correct source object.
-       * gbufferedoutputstream: check g_filter_output_stream_get_close_base()
-       before closing the base stream.  fix invalid source tag comparison in
-       close_async (was comparing to flush_async).
-       * ../docs/reference/gio/gio-sections.txt:
-       * gio.symbols: add
-       g_filter_{in,out}put_stream_{g,s}et_close_base_stream
-       * tests/filter-streams.c: new test cases
-       * tests/Makefile.am: add new test
-       * tests/.gitignore: add new test
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c (g_desktop_app_info_new): Expand the docs.
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.5 ===
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gappinfo.h: Document get_commandline vfunc
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gunixmounts.c: Some stylistic fixes.
-
-2009-01-08  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 565484 – g_content_type_guess passes non-UTF8 text to XDG 
-       functions in non-UTF8 locale
-
-       * xdgmime/xdgmimecache.c:
-       * xdgmime/xdgmimeglob.c: Don't assume filenames are UTF-8.
-
-2009-01-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * xdgmime/test-mime.c: Make tests work with current shared-mime-info.
-
-2009-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 566770 – error code 0 for Too many open files is useless
-
-       * gioenums.h: Add a G_IO_ERROR_TOO_MANY_OPEN_FILES error code.
-       Requested by Olivier Sessink.
-
-       * gioerror.c: Translate EMFILE to G_IO_ERROR_TOO_MANY_OPEN_FILES.
-
-       * glocalfileenumerator.c: Translate G_FILE_ERROR_MFILE to
-       G_IO_ERROR_TOO_MANY_OPEN_FILES.
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.4 ===
-
-2009-01-05  Dan Winship  <danw@gnome.org>
-
-       * gdesktopappinfo.c (update_mimeapps_list): cast a "char **" to
-       "const char **" to avoid a warning.
-
-       * gemblem.c (g_emblem_from_tokens):
-       * gemblemedicon.c (g_emblemed_icon_from_tokens):
-       * xdgmime/xdgmime.c (xdg_mime_get_icon): remove unused
-       variables
-
-2009-01-05  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 566064 – Add NOATIME flag to query_info_flags
-
-       * glocalfileinfo.c (get_content_type): Try using O_NOATIME when
-       sniffing for mime types. Based on a patch by A. Walton
-
-2009-01-05  Ryan Lortie  <desrt@desrt.ca>
-
-       * tests/.gitignore: improve
-       * tests/Makefile.am: add new simple-async-result test
-       * tests/simple-async-result.c: new file to test GSimpleAsyncResult
-
-2009-01-05  Ryan Lortie  <desrt@desrt.ca>
-
-       * gio.symbols:
-       * ../docs/reference/gio/gio-sections.txt:
-       * gsimpleasyncresult.h:
-       * gsimpleasyncresult.c: Add g_simple_async_result_is_valid().
-       Implementation by Dan Winship.  Closes #566170.
-
-2008-12-31  Matthias Clasen <mclasen@redhat.com>
-
-       * gdesktopappinfo.c:
-       * gunixmounts.c:
-       * gunixinputstream.c:
-       * gunixoutputstream.c: Add a note about being UNIX-specific.
-
-2008-12-15  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.3 ===
-
-2008-12-12  Dan Winship  <danw@gnome.org>
-
-       * pltcheck.sh: make this work on x86_64
-
-2008-12-12  Ryan Lortie  <desrt@desrt.ca>
-
-       * gio/gicon.c (g_icon_to_string_tokenized): free the tokens when done
-       with them
-
-2008-12-12  Ryan Lortie  <desrt@desrt.ca>
-
-       * gio/gunixmounts.c (g_unix_mount_at): fix leak that occurs when
-       multiple mount entries match the requested path
-
-2008-12-10  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 562452 - Ensure we return G_IO_ERROR_CANCELLED if cancelling
-       g_simple_async_result_run_in_thread
-       
-       * gsimpleasyncresult.c:
-       Make g_simple_async_result_run_in_thread check cancellation before
-       calling out to the user in the callback. This means we guarantee
-       reporting cancels of async operations from the main threads, which
-       is probably more in line with what users expect.
-       
-       Note that there are still no such guarantees for cancelling sync
-       operations or cancelling async operation from outside the main
-       thread. Furthermore, the exact behaviour of async implementations
-       not using run_in_thread may differ.
-
-2008-12-09  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 515777 - incorrect date&time on copy
-       
-       * glocalfile.c:
-       (g_local_file_class_init):
-       Copy mtime by default
-       
-       * gfile.c:
-       Change docs about G_FILE_COPY_ALL_METADATA to not mention
-       mtime as an example.
-
-2008-12-08  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 558298 – Hide ecryptfs mounts
-
-       * gunixmounts.c: (guess_system_internal): Hide ecryptfs mounts, 
-       so that the desktop does not show both the mount and the target 
-       directory. Patch by Martin Pitt
-2008-12-08  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 555465 – GUnix{Input,Output}Stream lacks fd/close_fd_at_close 
-       property
-
-       * gio.symbols:
-       * gunixinputstream.[hc]:
-       * gunixoutputstream.[hc]: Add "fd" and "close-fd" properties
-       including getters and setters. Patch by Maciej Piechotka
-
-2008-12-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 558458 – Cannot build gio tests on Solaris using SUN cc
-
-       * tests/live-g-file.c: Support compilers that don't understand
-       ISO C varargs macros. Patch by Eric Lamarque
-
-2008-12-07  Matthias Clasen  <mclasen@redhat.com>
-       
-       Bug 526320 – should not list mounts that the user doesn't have 
-       permission to use
-
-       gunixmounts.c: Use g_access() to check accessibility of local devices.
-       Patch by Martin Pitt
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.2 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdatainputstream.c (g_data_input_stream_read_line): Revert the
-       behaviour change, and update the docs instead, to avoid breaking
-       existing users.
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.1 ===
-
-2008-12-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio.symbols:
-       * gmount.[ch]:
-       * gunionvolumemonitor.c:
-       * gvolume.c:
-       Add and document g_mount_is_shadowed plus calls
-       to set/unset a mount as shadowed
-       
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/tests/g-icon.c: Comment out two failing tests
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 555486 – No way to recover command line from GAppInfo
-
-       * gio.symbols:
-       * gappinfo.[hc]: Add g_app_info_get_commandline. Requested
-       by Hans Petter Jansson.
-       
-       * gdesktopappinfo.c: And implement it here.
-
-2008-11-28  Christian Dywan  <christian@imendio.com>
-
-       * gappinfo.c: Fix a typo, s/detext/detect. Patch by Enrico Tröger.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 559633 – gtk_image_new_from_gicon does not always work for
-       .desktop files
-
-       * gdesktopappinfo.c (g_desktop_app_info_new_from_keyfile): Ignore
-       extensions on icon names.  Proposed by Axel von Bertoldi.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 548163 – Nautilus displays wrong error message for too long file
-       names
-
-       * glocalfile.c (g_local_file_set_display_name): Correctly set
-       error conditions if the new name is e.g. too long. Reported
-       by Leonardo Ferreira Fontenelle.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 547481 – g_data_input_stream_read_line behaves not as stated in
-       the docs
-
-       * gdatainputstream.c (g_data_input_stream_read_line): Behave as
-       documented and include the line end in the returned string. 
-       Pointed out by Paul Pogonyshev.
-
-       * tests/data-input-stream.c: Fix the read_line test to test the
-       documented behaviour.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c (g_app_info_can_delete): Only allow deleting
-       files that have been created by g_app_info_create_from_commandline.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 541715 – win32 : patch for warnings and signature problems in 
-       recent code
-       
-       * glocalvfs.c: Avoid unused variables. Pointed out by Jody
-       Goldberg.
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 562393 – g_buffered_input_stream_read_byte broken if data
-       available
-
-       * gbufferedinputstream.c (g_buffered_input_stream_read_byte): Fix
-       handling of buffered content.  Patch by Philip Withnall
-
-       * tests/buffered-input-stream.c: Add a testcase for this bug.
-       * tests/Makefile.am: And build it
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 561807 – inotify_sub.c :: dup_dirname() fails to remove trailing
-       '/'
-
-       * inotify/inotify-sub.c (dup_dirname): Actually strip the trailing
-       '/' away. Spotted by Dan Williams.
-
-2008-11-21  Cosimo Cecchi  <cosimoc@gnome.org>
-
-       Bug 561375 – Leaks mountpoint description
-
-       * glocalfile.c: (get_mount_info): don't leak the mountpoint description
-       string.
-
-2008-11-21  Cosimo Cecchi  <cosimoc@gnome.org>
-
-       Bug 561352 – Leak of icon description
-
-       * gcontenttype.c: (g_content_type_get_icon): don't leak the XDG mimetype
-       generic icon string.
-
-2008-11-14  Matthias Clasen <mclasen@redhat.com>
-
-       * gfileattribute.c: Add G_FILE_ATTRIBUTE_PREVIEW_ICON to doc table.
-
-2008-11-12  Tor Lillqvist  <tml@novell.com>
-
-       Bug 556415 - Crash on Windows 2000 in g_winhttp_vfs_init()
-
-       * win32/gwinhttpvfs.h: Move the set of function pointers to
-       winhttp.dll into a separate struct GWinHttpDllFuncs. Just have a
-       pointer to that in the GWinHttpVfsClass.
-       
-       * win32/gwinhttpvfs.c: Move the lookup of functions from
-       winhttp.dll into a function of its own, that stores the pointers
-       in a separate GWinHttpDllFuncs variable. Add two bookeeping
-       booleans lookup_done and funcs_found.
-
-       Don't call g_io_extension_point_implement() to register the
-       winhttp extension unless winhttp.dll has been successfully loaded
-       and the required functions found in it.
-
-       * win32/gwinhttp*.c: Adjust calls of the functions looked up from
-       winhttp.dll correspondingly.
-
-2008-10-28  Cosimo Cecchi  <cosimoc@gnome.org>
-
-       reviewed by: Alexander Larsson <alexl@redhat.com>
-
-       * gdatainputstream.c: Make the docs of g_dada_input_stream_read_line ()
-       clearer about the behavior when there's no more content to read.
-
-2008-10-27  Federico Mena Quintero  <federico@novell.com>
-
-       * glocalfile.c (g_local_file_get_parse_name): Don't leak roundtripped_filename.
-
-2008-10-27  Tor Lillqvist  <tml@novell.com>
-
-       Bug 557592 - Missing include in gwinhttpfile.c
-
-       * win32/gwinhttpfile.c: Include <wchar.h> to make it compile with
-       MSVC2008.
-
-2008-10-24  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 556910 – [fam-helper.c:223]: Memory leak: sub
-
-       * fam/fam-helper.c: Fix a memory leak and formatting issues.
-       Reported by Daniel Marjamäki
-
-2008-10-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c (g_app_info_reset_type_associations): Fix docs.
-
-2008-10-23  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 528320 - Incorrect icons displayed for files with custom mimetype icons
-       
-       * glocalfileinfo.c:
-       (_g_local_file_info_get):
-       Don't return the fallback icon (text-x-generic) for all files.
-       This is causing problems with theme icon lookup and custom mime
-       icons, as the generic fallback overrides custom mime icons in
-       inherited themes.
-
-       This is a slight change as applications might not get an icon wher
-       they previously did. But there is no guarantee to get on neither before
-       or after this change, so it should not break applications. Changes
-       to nautilus and gtk+ will be done to manually use the generic fallback
-       icon if no icon is found, but this is only required for rare cases.
-
-2008-10-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileinfo.h:
-       Add G_FILE_ATTRIBUTE_PREVIEW_ICON (#557182)
-
-2008-10-21  Alexander Larsson  <alexl@redhat.com>
-
-       Bug 555740 - gicon serialization
-       Based on patch from David Zeuthen
-       
-       * gicon.[ch]:
-       * gio.symbols:
-       Add g_icon_to_string() and g_icon_new_for_string().
-       
-       * gemblem.c:
-       * gemblemedicon.c:
-       * gfileicon.c:
-       * gthemedicon.c:
-       Implement icon serialization for built-in icon types
-       
-       * tests/Makefile.am:
-       * tests/g-icon.c:
-       Added GIcon serialization test
-
-2008-10-16  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.0 ===
-
-2008-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 556422 – g_file_enumerator_next_file: unclear whether return 
-       value needs to be freed
-
-       * gfileenumerator.c (g_file_enumerate_next_file): Clarify
-       the return value docs. Pointed out by Armin Burgmeier
-
-2008-10-14  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 556334 – Warning when building without selinux support
-
-       * glocalfileinfo.c: Avoid compiler warnings when selinux is
-       disabled. Patch by Pascal Terjan
-
-2008-10-14  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 556335 – make check fails in abicheck.sh
-
-       * gio.symbols: Add g_file_attribute_info_list_get_type. 
-       Pointed out by Pascal Terjan.
-
-2008-10-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       When adding an application as handling a mime type (but
-       not as the default), copy the full list of desktop ids handling
-       that type in before adding the new one on the end of the list.
-       This means we're not accidentally changing the default by overriding
-       the info from the later directories in the search path.
-       
-       Also, fixes small leak of removed_entries.
-
-2008-10-12  David Zeuthen  <davidz@redhat.com>
-
-       * gio.symbols:
-       * gunionvolumemonitor.c:
-       * gvolumemonitor.h:
-       Deprecate g_volume_monitor_adopt_orphan_mount() (#555331).
-
-2008-10-10  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileattribute.c (escape_byte_string):
-       Upper half of byte is >> 4, not >> 8.
-       Found by Kjartan Maraas via sparse
-
-2008-10-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 555711 – Wrong fallback order of mimetype icons
-
-       * gcontenttype.c: Don't prefer generic icons over
-       default mimetype icons.
-
-       * xdgmime/xdgmimecache.c (xdg_mime_cache_get_icon): 
-       * xdgmime/xdgmime.c (xdg_mime_get_icon): Don't fall back
-       to generic icons.
-       Patch by Krysztof Kosiński
-
-2008-10-10  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 555121 – Improved build-time handling of gio module-dir
-
-       * fam/Makefile.am: Use GIO_MODULE_DIR consistently.
-       * Makefile.am: Create the module dir.
-
-2008-10-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio/glocalfileinfo.c:
-       * gio/tests/live-g-file.c:
-       * gio/gsimpleasyncresult.c: Fix gcc warnings.
-
-2008-10-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gunixinputstream.c (g_unix_input_stream_read):
-       Actually return -1 in case of cancelled, not old res value.
-
-2008-10-06  Colin Walters  <walters@verbum.org>
-
-       Bug 554745 - GFileAttributeInfoList should be boxed
-
-       * gio/gfileattribute.c: Define a boxed type for GFileAttributeList
-       for convenience of bindings.
-       * gio/gfileattribute.h: Prototype it.
-
-2008-10-05  Pascal Terjan  <pterjan@linuxfr.org>
-
-       Bug 554970 – segfault when update-desktop-database is not available
-       on the system
-
-       * gdesktopappinfo.c (run_update_command): Have the error set before 
-       using it.
-
-2008-10-01  David Zeuthen  <davidz@redhat.com>
-
-       * gdesktopappinfo.c (expand_macro): If possible, always pass FUSE
-       file:// URIs (such as '/home/davidz/.gvfs/sftp on foo/file.avi')
-       instead of the gio URI (such as sftp://foo/file.avi) when using
-       g_app_info_launch() and friends. With a sufficiently recent gvfs,
-       apps using gio+gvfs will map the FUSE file:// URI back to the gio
-       URI (and thus bypass the fuse daemon) thanks the patch from bug
-       #530654.  Since Nautilus is an user of g_app_info_launch() it
-       means that non-gio POSIX apps, such as mplayer, will Just Work(tm)
-       when launced via the file manager. Win. Fixes bug #528670.
-
-       * gappinfo.c: Add some notes about the FUSE POSIX URI <-> GIO URI
-       mapping to the description of GAppInfo.
-
-2008-09-30  Tor Lillqvist  <tml@novell.com>
-
-       * tests/Makefile.am: Build desktop-app-info only on Unix.
-
-       * glocalfile.c (get_volume_for_path) [Win32]: Avoid a
-       g_critical(). Pass a large enough result buffer to
-       GetVolumePathNameW(). Just use MAX_PATH.
-
-2008-09-29  David Zeuthen  <davidz@redhat.com>
-
-       * gvolume.c: Clarify semantics of g_volume_mount_finish() (#552168)
-
-2008-09-26  Dan Winship  <danw@gnome.org>
-
-       * tests/data-input-stream.c:
-       * tests/data-output-stream.c:
-       * tests/live-g-file.c:
-       * tests/memory-input-stream.c:
-       * tests/memory-output-stream.c: Use g_assert_error() and
-       g_assert_no_error()
-
-2008-09-26  Matthias Clasen  <mclasen@redhat.com>
-       
-       Bug 545350 – GAppInfo deletion
-       Bug 545351 – Reset associations for content type
-
-       * gio.symbols:
-       * gappinfo.[hc]: New functions g_app_info_can_delete,
-       g_app_info_delete and g_app_info_reset_type_associations.
-
-       * gdesktopappinfo.c:
-       * gwin32appinfo.c: Implementations of these.
-
-       * tests/Makefile.am:
-       * tests/desktop-app-info.c: Tests for GAppInfo functionality.
-
-2008-09-26  Dan Winship  <danw@gnome.org>
-
-       Bug 505361 – gunixinputstream.c assumes poll() available
-       Bug 509446 – portable blocking gio cancellation
-
-       * gcancellable.c (g_cancellable_make_pollfd): New method to make a
-       GPollFD for a cancellable (which is slightly more complicated on
-       Windows than Unix).
-
-       * gunixinputstream.c (g_unix_input_stream_read):
-       * gunixoutputstream.c (g_unix_output_stream_write): Use
-       g_cancellable_make_pollfd() and g_poll() rather than using poll()
-       directly.
-
-       * tests/unix-streams.c: test of GUnixInputStream,
-       GUnixOutputStream, and GCancellable.
-
-2008-09-26  Dan Winship  <danw@gnome.org>
-
-       * gdesktopappinfo.c (get_all_desktop_entries_for_mime_type): add a
-       cast to stop a gcc warning
-
-       * gfile.c (g_file_copy_attributes): add parens to stop a gcc
-       warning
-
-2008-09-25  Dan Winship  <danw@gnome.org>
-
-       Bug 553426 - cancellable clarifications
-
-       * gcancellable.c (g_cancellable_class_init): Add a note to the
-       "cancelled" signal docs warning about thread-safety issues
-       (g_cancellable_cancel): Note that cancelling an asynchronous
-       operation takes effect asynchronously, not immediately.
-
-2008-09-22  Nelson Benítez León  <nbenitez@svn.gnome.org>
-
-       * gioenums.h: Add new GFileCopyFlag, to leave target file with
-       default perms, instead of setting the source file perms, in a copy
-       operation.
-
-       * gfile.c (g_file_copy_attributes) 
-       (build_attribute_list_for_copy)
-       (should_copy): Not copy "unix::mode" attribute if we have received
-       G_FILE_COPY_TARGET_DEFAULT_PERMS flag.
-
-2008-09-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c (expand_macro_single): Plug a memory leak
-
-2008-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.1 ===
-
-2008-09-16  Michael Natterer  <mitch@imendio.com>
-
-       * gcontenttype.c (g_content_type_guess): can't assign the return
-       value of g_strdupv() to an array. Fill the array manually with
-       const strings instead (it is never freed anyway). Fixes the
-       build. Also fixed indentation.
-
-2008-09-16  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gdesktopappinfo.c (g_desktop_app_info_new_from_keyfile):
-       Fix trivial typo to unbreak the build (there was a colon
-       instead of a semicolon at the end of a statement).
-
-2008-09-15  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 552352 – g_app_info_launch doesn't work if "Path" key in .desktop 
-       file is empty
-
-       * gdesktopappinfo.c (g_desktop_app_info_new_from_keyfile): Ignore
-       an empty Path value.  
-
-2008-09-15  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 551681 – g_content_type_guess() too naive with filenames
-
-       * gcontenttype.c (g_content_type_guess): Check whether there's a '/'
-       at the end of the filename, and declare it a directory.
-       Patch by Bastien Nocera
-
-2008-09-14  Cosimo Cecchi  <cosimoc@gnome.org>
-
-       Bug 551887 – Docs for g_desktop_app_info_new_from_filename ()
-       aren't clear.
-
-       * gdesktopappinfo.c: add a note in the docs clarifying what the
-       "filename" parameter really is.
-
-2008-09-12  Tor Lillqvist  <tml@novell.com>
-
-       * gwin32appinfo.c (g_win32_app_info_launch): Don't call
-       FormatMessage() etc here. Call g_win32_error_message() instead
-       which already does all that. Besides, the code was broken as it
-       called the default "A" version of FormatMessage() but still
-       thought it produced a wide string.
-
-2008-09-12  Michael Natterer  <mitch@imendio.com>
-
-       * gfileinfo.c (g_file_info_get_content_type): remove dangling 's'
-       in the documentation.
-
-2008-09-08  Christian Neumair  <cneumair@gnome.org>
-
-       * gunixmount.c (eject_unmount_read_error), (eject_unmount_do):
-       * gunixvolume.c (eject_mount_read_error), (eject_mount_do):
-       Use non-blocking pipe for mount helper I/O. Fixes #550647.
-
-2008-09-06  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 551149 – xdgmime mem leak
-
-       * xdgmime/xdgmime.c (xdg_mime_init_from_directory): Plug
-       a memory leak. Patch by Christian Persch
-
-2008-09-04  Tor Lillqvist  <tml@novell.com>
-
-       * gwin32mount.c (g_win32_mount_finalize): Don't unref icon if
-       NULL.
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.0 ===
-
-2008-09-02  Michael Natterer  <mitch@imendio.com>
-
-       * *.h: big header formatting cleanup: indentation, vtable
-       formatting, consistent spacing in (* vfunc), trailing whitespace
-       removal. Formatting should be pretty consistent in all GIO headers
-       now.
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmount.h: Document guess_content_type sync vfunc.
-
-2008-09-02  Michael Natterer  <mitch@imendio.com>
-
-       * gbufferedoutputstream.h (struct _GBufferedOutputStreamClass):
-       fix parent_class member to be GFilterOutputStreamClass (not
-       GOutputStreamClass). Drop three pointers of padding, which is
-       exactly what GFilterOutputStreamClass adds to GOutputStreamClass,
-       so the class struct size stays the same.
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 550059 – Wrong docs for g_emblemed_icon_add_emblem
-
-       * gemblemedicon.c (g_emblemed_icon_get_add_emblem): Don't document
-       nonexisting return values. Pointed out by Cosimo Cecchi.
-
-2008-08-23  Tor Lillqvist  <tml@novell.com>
-
-       Bug 548988 - g_file_replace fails on Windows when the target file
-       exists already
-
-       * glocalfileoutputstream.c (g_local_file_output_stream_close): On
-       Windows, close the file before potentially renaming it (in case we
-       have been writing to a file with a temporary name).
-
-       (g_local_file_output_stream_close, handle_overwrite_open): Use
-       GLocalFileStat instead of plain struct stat, for passing to
-       _g_local_file_info_create_etag(). Thus also use _fstati64()
-       instead of plain fstat() on Windows.
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.7 ===
-
-2008-08-15  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * gunixmounts.c: Add zfs to ignore_fs array in guess_system_internal:
-       Fix for #542156.
-
-2008-08-13  Tor Lillqvist  <tml@novell.com>
-
-       * win32/gwinhttpvfs.c
-       * win32/gwinhttpvfs.h
-       * win32/gwinhttpfile.c
-       * win32/gwinhttpfileinputstream.c
-       * win32/gwinhttpfileoutputstream.c: Refactor some common code
-       snippets into helper functions. Check HTTP response status
-       codes. Implement g_winhttp_file_query_info(), looking at
-       Content-Length, Content-Type and Last-Modified.
-
-       * win32/winhttp.h: Add some symbolic constants that are not
-       publicly documented. Just a handful, so it should be OK to use
-       information from the Windows SDK's headers.
-
-2008-08-13  Tor Lillqvist  <tml@novell.com>
-
-       Bug 546582 - Callbacks from GFileMonitor present a GFile in the
-       wrong folder
-
-       * win32/gwin32directorymonitor.c
-       (g_win32_directory_monitor_callback): Patch by Erik van Pienbroek.
-
-2008-08-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * ginputstream.c:
-       * goutputstream.c: Add intro docs.
-
-2008-08-13  Tor Lillqvist  <tml@novell.com>
-
-       * win32/gwinhttpfileoutputstream.c
-       (g_winhttp_file_output_stream_write): Don't write the
-       Content-Length header ourselves, WinHttpSendRequest() takes care
-       of that when the dwTotalLength parameter is non-zero. Increment
-       offset by the number of actual bytes sent, although I wonder if
-       such a scenario is possible where less than requested would be
-       sent and accepted by the server without errors.
-
-2008-08-13  Tor Lillqvist  <tml@novell.com>
-
-       * win32/gwinhttpvfs.c
-       * win32/gwinhttpvfs.h
-       * win32/gwinhttpfile.c
-       * win32/gwinhttpfile.h
-       * win32/gwinhttpfileinputstream.c
-       * win32/gwinhttpfileinputstream.h
-       * win32/gwinhttpfileoutputstream.c
-       * win32/gwinhttpfileoutputstream.h: New files implementing
-       GWinHttpVfs and related classes, a GVfs for HTTP and HTTPS URIs on
-       Windows. The implementation uses the WinHttp API. Both reading and
-       writing are supported, i.e. GET and PUT requests. When writing,
-       each write call is done using a separate PUT request with a
-       Content-Range header. Requests for file URIs and plain pathnames
-       are forwarded to GLocalVfs.
-
-       * win32/winhttp.h: Reverse engineered <winhttp.h>, borrowed from
-       WINE. Used as there is no <winhttp.h> bundled with mingw, and
-       requiring people to download the Windows SDK just for this one
-       header is not reasonable.
-
-       * win32/Makefile.am: Add above files.
-
-       * giomodule.c: Call _g_winhttp_vfs_get_type() on Windows to set up
-       the plumbing for the above.
-
-2008-08-11  Sven Neumann  <sven@gimp.org>
-
-       * gfilenamecompleter.c
-       * glocaldirectorymonitor.c
-       * gmountoperation.c
-       * gunionvolumemonitor.c
-       * gunixmount.c
-       * gunixmounts.c
-       * gunixvolume.c
-       * gunixvolumemonitor.c
-       * gvolumemonitor.c
-       * gwin32mount.c
-       * gwin32volumemonitor.c: use canonical signal names.
-
-2008-08-11  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Put a list of the platform-dependent .la files in
-       the subdirectories in the platform_deps Make variable, and make
-       libgio-2.0.la depend on that, so that it gets relinked if one of
-       the dependent libraries has changed.
-
-2008-08-11  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (platform_libadd): Remove -lwininet which had been
-       added by mistake. We will probably eventually be using WinHTTP,
-       not the older WinInet anyway. (Actually I am working on it.)
-
-2008-08-10  Felix Riemann  <friemann@svn.gnome.org>
-
-       Bug 547080 – g_file_copy leaks expected errors
-
-       * gfile.c: (g_file_copy): Clear G_IO_ERROR_NOT_SUPPORTED errors
-       before trying the next fallback routine.
-
-2008-08-09  Loïc Minier  <lool@dooz.org>
-
-       Bug 535124 – umask 002 not being applied for new directories, new
-       files get the correct umask
-
-       * gfile.c (g_file_make_directory)
-       (g_file_make_directory_with_parents): Document ownership and
-       permissions of newly created directories as being the default
-       ones of the process.
-
-2008-08-08  Loïc Minier  <lool@dooz.org>
-
-       Bug 535124 – umask 002 not being applied for new directories, new
-       files get the correct umask
-
-       * glocalfile.c: (g_local_file_make_directory): Use 0777 instead of
-       0755 as umask
-
-2008-08-08  Tor Lillqvist  <tml@novell.com>
-
-       * gwin32mount.c: Remove unused code. Whitespace cleanup.
-
-       * gwin32volumemonitor.c (get_connected_drives): Put questionable
-       code that didn't actually do anything inside #if 0, and add a
-       comment wondering what the code was supposed to do. This also gets
-       rid of a leftover debugging printout.
-
-2008-08-07  Paul Pogonyshev  <pogonyshev@gmx.net>
-
-       * gfileicon.c (g_file_icon_get_property)
-       (g_file_icon_set_property): New functions.
-       (g_file_icon_class_init): Hook them up.  Install `GFileIcon:file'
-       property.
-       (g_file_icon_new): Use the property (bug #546132).
-
-2008-08-06  Paul Pogonyshev  <pogonyshev@gmx.net>
-
-       * gthemedicon.c (g_themed_icon_get_property): Also handle
-       `PROP_USE_DEFAULT_FALLBACKS'.
-       (g_themed_icon_class_init): Make
-       `GThemedIcon:use-default-fallbacks' read-write (bug #546483).
-
-2008-08-05  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 546371 – Improve docs re g_file_monitor
-
-       * gfilemonitor.c: Mention g_file_monitor() in the docs.
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.6 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.5 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 546017 – Don't copy attributes when copying a symlink
-
-       * gfile.c (g_file_copy_attributes): Specify
-       G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS in the call to 
-       g_file_set_attributes_from_info. Patch by Christian Kellner
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * gemblemedicon.[hc]: 
-       * gio.symbols:
-       * gemblem.[hc]: Add GEmblem to make the emblem mechanism
-       a bit more extensible. Work by Clemens Buss.
-
-       * gioenums.h: Add GEmblemOrigin.
-       * Makefile.am: Glue
-
-2008-08-03  Carlos Garcia Campos  <carlosgc@gnome.org>
-
-       Bug 546079 – leak in xdgmime
-       
-       * xdgmime/xdgmime.c (xdg_mime_shutdown): Fix memory leak.
-       
-2008-08-03  Tor Lillqvist  <tml@novell.com>
-
-       * win32/gwin32directorymonitor.h
-       * win32/gwin32directorymonitor.c: Whitespace cleanup to match GLib
-       style.
-
-2008-08-03  Tor Lillqvist  <tml@novell.com>
-
-       * win32/gwin32directorymonitor.c
-       (g_win32_directory_monitor_callback): Make prototype match
-       LPOVERLAPPED_COMPLETION_ROUTINE to avoid warning. Cast
-       LPOVERLAPPED parameter to local GWin32DirectoryMonitorPrivate
-       pointer.
-
-       (g_win32_directory_monitor_constructor):
-       GLocalDirectoryMonitor::dirname is in UTF-8 like all other file
-       names in the GLib API on Windows, so convert to UTF-16 and open
-       with CreateFileW().
-
-2008-08-03  Tor Lillqvist  <tml@novell.com>
-
-       Bug 541036 - Gnumeric crashes when trying to open Desktop or
-       user's folder under Windows
-
-       * win32/gwin32directorymonitor.c
-       (g_win32_directory_monitor_constructor): Ignore error from
-       CreateFile() when opening directory. Instead of asserting, just
-       store INVALID_HANDLE_VALUE then in
-       GWin32DirectoryMonitorPrivate::hDirectory. Also ignore error from
-       ReadDirectoryChangesW().
-       (g_win32_directory_monitor_cancel): Don't attempt to close
-       directory handle if it is INVALID_HANDLE_VALUE.
-
-2008-08-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c: Remove debug spew
-
-2008-08-01  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc : add gemblembedicon
-
-2008-07-30  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 545457 – gdmsetup crashed with SIGSEGV in
-       g_unix_mount_guess_should_display()
-
-       * gunixvolumemonitor.c (get_mount_for_mount_path): Don't 
-       crash if no mount is found.
-
-2008-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 545203 – gfile.c: argument is different type.
-
-       * gfile.c (open_read_async_thread): Pass a GError **
-       to g_file_set_error_literal.
-       Reported by Kazuki Iwamoto
-
-2008-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 545157 – wrong/no list of "open with" applications for .cc and
-       .cpp files
-
-       * gdesktopappinfo.c (get_all_desktop_entries_for_mime_type):
-       Collect all ancestors, not just direct parents. Pointed
-       out by Bastien Nocera
-
-2008-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.am: Install gemblemedicon.h
-
-2008-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gemblemedicon.[hc]: Add a GIcon implementation that can
-       add an emblem to another icon.
-
-       * gio.h:
-       * Makefile.am:
-       * gio.symbols: Glue
-
-       * gloadableicon.c:
-       * gfileicon.c: Small documentation additions.
-
-2008-07-28  Tor Lillqvist  <tml@novell.com>
-
-       * gwin32appinfo.c (g_win32_app_info_get_icon): Correct return
-       type.
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (gio-2.0.lib): Pass appropriate -machine flag to lib.exe.
-
-2008-07-24  David Zeuthen  <davidz@redhat.com>
-
-       * gmount.[ch]:
-       * gio.symbols:
-       Also export a g_mount_guess_content_type_sync() function.
-
-2008-07-23  Matthias Clasen  <mclasen@redhat.com>
-
-       529694 – SELinux context setting support
-
-       * gfileinfo.c: Support setting selinux attributes.
-       Patch by Tomas Bzatek
-
-2008-07-22  Priit Laes <plaes@plaes.org>
-
-       Bug 544140 - fam-helper 64-bit issue?
-
-       * fam/fam-helper.c: Added missing include so compiler doesn't complain.
-
-2008-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.4 ===
-
-2008-07-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gvolumemonitor.[hc]:
-       * gmountoperation.c:
-       * gioenums.h:
-       * gdrive.c:
-       * gvfs.c:
-       * gmount.c: Documentation fixes
-
-2008-07-19  Matthias Clasen  <mclasen@redhat.com>
-
-       543504 – crash in Epiphany Web Browser: Opening local file
-
-       * gappinfo.c:
-       * gasyncresult.c:
-       * gdesktopappinfo.c:
-       * gdrive.c:
-       * gfile.c:
-       * gicon.c:
-       * gloadableicon.c:
-       * gmount.c:
-       * gseekable.c:
-       * gvolume.c: Register types thread-safely.
-       Patch by Christian Persch
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * gcontenttype.c: Remove debug spew
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 543560 – enable gio-FEN back-end warnings on Solaris will crash
-       any applications
-
-       * fen/fen-kernel.c: Remove a warning that was causing
-       crashes. Reported by Lin Ma.
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 543040 – async reading on dummy file will crash on
-       GIO_USE_VFS=local
-
-       * gfile.c (open_read_async_thread): Cope with read_fn being
-       NULL. Reported by Lin Ma.  
-
-2008-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio.symbols:
-       * gcontenttype.[hc]: Add g_content_type_guess_for_tree().
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * gvfs.h:
-       * gdesktopappinfo.h: 
-       * giomodule.c: Rename a chapter id to avoid filename conflict.
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 540616 – mem leak in filechooser button
-
-       * gunixvolumemonitor.c (get_mount_for_mount_path): Free
-       the mount entry. Reported by Chrisitan Persch
-
-2008-07-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfile.c: Small documentation fixes.
-
-2008-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * gunixmounts.c: Use g_strcmp0 instead of rolling our own.
-
-2008-07-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * gvolumemonitor.c:
-       * gfile.c:
-       * gvolume.c:
-       * gmount.c: Documentation improvements.
-
-2008-07-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio.symbols:
-       * gmount.[hc]: Add g_mount_guess_content_type(). 
-
-2008-07-06  David Zeuthen  <davidz@redhat.com>
-
-       * gio.symbols:
-       * gvolume.[ch]: Add new method g_volume_get_activation_root(). This
-       is needed for easily handling adoption of foreign volumes by
-       out-of-process volume monitors (#541793)
-
-2008-07-06  David Zeuthen  <davidz@redhat.com>
-
-       * gvolumemonitor.[ch]:
-       * gunionvolumemonitor.c: Export the eject-button signal on the
-       volume monitor class (#541794).
-
-2008-07-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * gappinfo.c: More doc tweaks
-
-2008-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gappinfo.c: Clarify some docs
-
-2008-07-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c: Fix a stupid mistake.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.3 ===
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfilemonitor.c: Fix the build.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 536160 – Add g_file_monitor()
-
-       * gio.symbols:
-       * gfile.[hc]: Add g_file_monitor which can return either
-       a file or a directory monitor.  Proposed by Behdad Esfahbod
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       536733 – gio build failure on Irix
-
-       * glocalfile.c: Use a configure check for structfs.f_bavail.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 534639 – add g_desktop_app_info_new_from_keyfile
-
-       * gio.symbols:
-       * gdesktopappinfo.[hc]: Add a function to create a
-       GDesktopAppInfo from a GKeyFile. Proposed by Josselin Mouette.
-
-2008-07-02  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gappinfo.c: Fix ulink in doc to make gtk-doc happy.
-
-2008-07-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * gunixmounts.c: Fix a doc typo.
-
-2008-07-01  Cody Russell  <bratsche@gnome.org>
-
-       * gio/gcontenttype.c:
-       * gio/gwin32appinfo.c:
-       * gio/gwin32volumemonitor.c:
-       * gio/gwin32mount.c: Fixed some include problems.
-
-2008-07-01  Cody Russell  <bratsche@gnome.org>
-
-       * gio/gioenums.h:
-       * gio/giotypes.h:
-       Moved all relevant typedefs into these files.
-
-       * gio/*.[ch]:
-       Updated wrt added files.
-
-       Split types into separate file for easier maintainership. (#538564)
-
-2008-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 540331 – g_file_append_to () documentation: can return NULL
-
-       * gfile.c (g_file_append_to): Clarify docs.
-       Patch by Jared Moore
-
-2008-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 539090 – g_content_type_from_mime_type() should unalias
-
-       * gcontentype.c (g_content_type_from_mime_type): Unalias.
-       Patch by Markus Bergman
-
-2008-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 538836 – make check failure on PPC and ALPHA: pltcheck.sh on
-       g_atomic_pointer_get
-
-       * pltcheck.sh: Allow g_atomic_pointer_get, to fix 'make check'
-       on ppc and alpha. Reported by Mart Raudsepp
-
-2008-06-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/Makefile.am: 
-       * tests/memory-output-stream.c: Add some tests for
-       GMemoryOutputStream. 
-
-2008-06-29  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 540423 – unrecoverable error after g_seekable_truncate(seekable,
-       0, ...)
-
-       * gmemoryoutputstream.c (array_resize): Handle truncation to
-       zero correctly. Reported by Akira Tagoh
-
-2008-06-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmemoryoutputstream.c: Trivial doc fixes
-
-2008-06-29  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 540802 – g_list_prepend doesn't concat lists
-
-       * giomodule.c (_g_io_modules_ensure_loaded): Don't g_list_prepend
-       one list to another. Pointed out by Jan Arne Petersen
-
-2008-06-28  Michael Natterer  <mitch@imendio.com>
-
-       * gfileicon.c: remove semicolons from G_IMPLEMENT_INTERFACE().
-
-2008-06-18  Matthias Clasen <mclasen@rdhat.com>
-
-       * glocalfileinfo.c: Don't do fallback for user-home and user-desktop
-       to avoid problems with partial icon themes.
-       
-2008-06-17  Hans Breuer  <hans@breuer.org>
-
-       * gwin32mount.[ch] gwin32volumemonitor.[ch] : bits and pieces from 
-       gtk-2-12 and gunix*.[hc] to make the file chooser show drive letter
-       access again on win32, see bug #538127
-       * giomodule.c : ensure GWin32VolumeMonitor is registered
-       * glocaldireoctorymonitor.c : initial state on win32 is_mounted=TRUE
-       * Makefile.am makefile.msc : updated
-
-2008-06-16  Hans Breuer  <hans@breuer.org>
-
-       * glocalfileenumerator.c(_g_local_file_enumerator_new) : declaration 
-       and initialization in one step avoids c99ism
-
-2008-06-16  Christian Persch  <chpe@gnome.org>
-
-       * gio/gappinfo.c
-       * gio/gbufferedinputstream.c
-       * gio/gcancellable.c
-       * gio/gdatainputstream.c
-       * gio/gdesktopappinfo.c
-       * gio/gfile.c
-       * gio/gfileenumerator.c
-       * gio/gfileinputstream.c
-       * gio/gfileoutputstream.c
-       * gio/ginputstream.c
-       * gio/glocaldirectorymonitor.c
-       * gio/glocalfile.c
-       * gio/glocalfileenumerator.c
-       * gio/glocalfileinfo.c
-       * gio/glocalfilemonitor.c
-       * gio/glocalfileoutputstream.c
-       * gio/gmemoryinputstream.c
-       * gio/gmemoryoutputstream.c
-       * gio/goutputstream.c
-       * gio/gwin32appinfo.c: Use g_set_error_literal where appropriate. Patch from 
-       bug #535947.
-
-2008-06-16  Tor Lillqvist  <tml@novell.com>
-
-       Bug 538362 - Get Win32 icons back in the file chooser
-
-       * gcontenttype.c (g_content_type_get_icon): Look up the icon
-       corresponding to a file extension in the Registry. Patch by Hans
-       Breuer.
-       (get_registry_classes_key): Handle also REG_EXPAND_SZ type values.
-       
-2008-06-16  Tor Lillqvist  <tml@novell.com>
-
-       Patches by Hans Breuer:
-
-       * glocalfile.c (is_xp_or_later): Handle compiling against older
-       SDK headers with missing VerifyVersionInfo().  Conditioned on
-       _MSC_VER, but should probably use some better test.
-       * glocalfile.c (g_local_file_query_filesystem_info): Don't test
-       uninitialised statfs_result variable on Win32.
-
-2008-06-16  Michael Natterer  <mitch@imendio.com>
-
-       * *.c: chain up unconditionally in finalize() and dispose(). Also
-       don't dereference these function pointers when calling them since
-       that has no meaning at all.
-
-2008-06-16  Ross Burton  <ross@burtonini.com>
-
-       * gfileenumerator.c:
-       Remove check for dispose implementation as it annoys Emmanuele.
-       
-2008-06-16  Ross Burton  <ross@burtonini.com>
-
-       Bug 536252 – GFileEnumerator should allow access to the containing
-       GFile
-       
-       * gfileenumerator.c:
-       * gfileenumerator.h:
-       * gfile.h:
-       Add g_file_enumerator_get_container() and a container writeable
-       construct-only property.  Also shuffle around typedefs to make it
-       compile.
-       
-       * glocalfileenumerator.c:
-       * glocalfileenumerator.h:
-       * glocalfile.c:
-       Instead of a string filename take a GFile in the constructor and
-       use it to set the container property.
-       
-       * gio.symbols:
-       Update with new API.
-
-2008-06-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfile.c: Make includes more uniform
-
-2008-06-12  Yevgen Muntyan  <muntyan@tamu.edu>
-
-       * tests/live-g-file.c (sample_struct):
-       Use less fancy unicode filenames, so the test doesn't fail
-       on Mac OS X (#531476).
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.17.2 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.1 ===
-
-2008-06-11  A. Walton  <awalton@gnome.org>
-
-       * tests/g-file.c (test_g_file_new_null):
-       Fix broken test case.
-
-2008-06-11  Matthias Clasen <mclasen@redhat.com>
-
-       * pltcheck.sh: We use g_clear_error now.
-
-2008-06-11  Matthias Clasen <mclasen@redhat.com>
-
-       * glocalfile.c (g_local_file_enumerate_children): Revert
-       an unintended change.
-
-2008-06-11  Matthias Clasen <mclasen@redhat.com>
-
-       * gfile.c (g_file_replace_contents): Don't unref before the last use.
-
-2008-06-10  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 537546 – 'desktop' shortcut in file chooser looks like a generic
-       folder
-       
-       * glocalfileinfo.c (_g_local_file_info_get): Return user-desktop
-       as icon for the desktop directory, also make user-home and
-       user-desktop the preferred icons.
-
-2008-06-10  Matthias Clasen <mclasen@redhat.com>
-
-       * gio.symbols:
-       * gthemedicon.[hc] (g_themed_icon_prepend_name): New function,
-       to add a name to the front of the list.
-
-2008-06-10  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 537392 – Additional colon in xattr name
-
-       * glocalfileinfo.c (set_xattr): Skip the second colon of the prefix,
-       too. Reported by  Alessandro Morandi 
-
-2008-06-10  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 536641 – Filesystem querying in gio does not list AFS and autofs
-       file systems
-
-       * glocalfile.c (get_fs_type): Add afs and autofs.
-       Patch by Danny Baumann.
-
-2008-06-10  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 528600 – g_dummy_file_get_parent("scheme://example.com/")
-
-       * gdummyfile.c (g_dummy_file_get_parent): Return NULL if there
-       is no parent.  (Owen Taylor, patch by Christian Neumair)
-       
-2008-06-10  Paolo Borelli  <pborelli@katamail.com>
-
-       * gfile.c (g_file_replace_contents): do not leak the output stream.
-
-2008-06-10  Michael Natterer  <mitch@imendio.com>
-
-       * gcontenttype.c (g_content_type_get_icon): fix SEGV by not using
-       uninitialized memory as array index.
-
-2008-06-10  Tor Lillqvist  <tml@novell.com>
-
-       * gcontenttype.c (g_content_type_can_be_executable)
-       (g_content_type_get_icon) [Win32]: Add TODO comments.
-
-2008-06-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * xdgmime/Makefile.am: Fix the build
-
-2008-06-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * gcontenttype.c (g_content_type_get_icon): Use icons specified
-       in the shared mime database, if available.
-
-       * xdgmime/*: Sync with upstream. This brings support for
-       glob weights, generic icons, and changes the cache format to 
-       version 1.1.
-
-2008-05-28  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am: don't define G_DISABLE_SINGLE_INCLUDES, it's in
-       the global CPPFLAGS now.
-
-       * tests/data-input-stream.c
-       * tests/data-output-stream.c
-       * tests/g-file-info.c
-       * tests/g-file.c
-       * tests/live-g-file.c
-       * tests/memory-input-stream.c: don't include <glib/gtestutils.h>
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.0 ===
-
-       * tests/live-g-file.c: Clean up after the tests, so make distcheck
-       doesn't complain about leftover files.
-
-2008-05-27  simon.zheng  <simon.zheng@sun.com>
-
-       * glocalfile.c: (g_local_file_query_filesystem_info):
-       Fix #533369. Make G_FILE_ATTRIBUTE_FILESYSTEM_TYPE work on Solaris.
-
-2008-05-26  Michael Natterer  <mitch@imendio.com>
-
-       * gmemoryoutputstream.h: declare
-       g_memory_output_stream_get_data_size().
-
-2008-05-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/*: Make tests work 
-
-2008-05-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio.symbols: Add g_memory_output_stream_get_data_size.
-
-2008-05-25  Ross Burton  <ross@burtonini.com>
-
-       * glocalfile.c:
-       Fix typo in error message (#534764).
-
-2008-05-25  Ross Burton  <ross@burtonini.com>
-
-       * Makefile.am:
-       Fix circular dependency loop for gioenumtypes.h (#534759).
-
-2008-05-19  Hans Breuer  <hans@breuer.org>
-
-       * Makefile.am : EXTRA_DIST += makefile.msc
-
-2008-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * gcontenttype.h:
-       * gcontenttype.c: (g_content_type_from_mime_type):
-       New function to create a content type from a mime type. (#527175,
-       Milan Crha)
-
-2008-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 532965 – Should not return filesystem::free for certain file systems
-
-       * glocalfile.c (g_local_file_query_filesystem_info) Don't return
-       free space for ncpfs.
-
-2008-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 530196 – _g_local_file_has_trash_dir() doesn't handle st_dev == 0
-
-       * glocalfile.c (_g_local_file_has_trash_dir): Handle the case that
-       st_dev might be zero.
-
-2008-05-16  Tor Lillqvist  <tml@novell.com>
-
-       * win32/gwin32directorymonitor.c: #define _WIN32_WINNT 0x0400 to
-       get declaration of ReadDirectoryChangesW() from Platform SDK headers.
-
-2008-05-13  Bastien Nocera  <hadess@hadess.net>
-
-       * gfile.c (has_valid_scheme): A URI scheme must start with a
-       letter, even if later more characters are allowed (#532852)
-
-2008-05-05  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent
-       code from being checked in that breaks the build of applications
-       which use G_DISABLE_SINGLE_INCLUDES.
-
-       * makegioalias.pl: make the alias file include "glib.h" instead of
-       "glibconfig.h".
-
-       * gio.symbols: whitespace change to force regeneration of the
-       alias file after above script change.
-
-       * gfileinfo.h: remove inlcusion of <glib/gfileutils.h>.
-
-       * gfilenamecompleter.c: remove inclusion of "gurifuncs.h".
-
-       * gioerror.h: #include <glib.h> instead of <glib/gerror.h>.
-
-       * glocalfileinfo.c: remove inclusion of <glib/gchecksum>.
-
-2008-04-28  David Zeuthen  <davidz@redhat.com>
-
-       * gunixmounts.c (g_unix_mount_guess_should_display): Avoid
-       displaying mounts in a subdirectory not accessible to the
-       user (#526320).
-
-2008-04-22  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am: fix library versioning (it was 0.0.0).
-
-2008-04-21  Lin Ma  <Lin.Ma@Sun.COM>
-
-       * fen/fen-data.c, fen/fen-helper.c, fen/fen-missing.c, fen/fen-node.c:
-       Default disable all loggings.
-       * fen/fen-kernel.c: (printevent), (port_add_kevent),
-       (port_fetch_event_cb): Fixed two macro nits.
-
-2008-04-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * xdgmime/xdgmime.c: Rework the timestamp checking code
-       to protect against duplicate directories in XDG_DATA_DIRS.
-       Fixes fd.o bug 12513, reported by Joe Shaw.
-
-2008-04-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Partically revert the last commit after realizing that
-       xdg_mime_media_type_equal doesn't have to init at all.
-
-       * xdgmime/xdgmime.h:
-       * xdgmime/xdgmime.c: Get rid of _xdg_mime_media_type_equal
-
-       * xdgmime/xdgmimecache.c: Use xdg_mime_media_type_equal
-
-2008-04-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Avoid possible memory corruption in xdgmime, fd.o bug 12512,
-       reported by Joe Shaw and Federico Mena Quintero.
-
-       * xdgmime/xdgmime.c(_xdg_mime_media_type_equal): Implement.
-       (xdg_mime_media_type_equal): Turn into a wrapper around the 
-       _-prefixed version.
-
-       * xdgmime/xdgmimecache.c: Use the _-prefixed versions of comparison
-       functions throughout.
-
-2008-04-16  Michael Meeks  <michael.meeks@novell.com>
-
-       * gdesktopappinfo.c (g_desktop_app_info_new_from_filename): 
-       tolerate an empty TryExec= line without failing; nautilus used
-       to create launchers with these in previous versions. Fixes #528433
-
-2008-04-09  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * gdesktopappinfo.c: In g_app_info_create_from_commandline set comment
-       after name. Fixes #527132.
-
-2008-04-08  Tomas Bzatek  <tbzatek@redhat.com>
-
-       * gfile.c: (g_file_replace):
-       Doc update
-
-2008-04-07  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 526796 – Wrong order of arguments in g_file_copy's fallback
-
-       * gfile.c (file_copy_fallback): Fix the argument order. Patch
-       by Christian Kellner.
-
-2008-04-04  Sebastien Bacher  <seb128@ubuntu.com>
-
-       * gunixmounts.c: (g_unix_mount_guess_should_display):
-       Don't list the user directory as a mount, fix potential issue
-       when other users have a similar naming and don't special case the
-       gvfs mounts there since that's not required (#525866)
-
-2008-03-31  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c (get_parent):
-       Don't leak parent.
-       
-2008-03-31  A. Walton  <awalton@svn.gnome.org>
-
-       * gfile.c (g_file_query_file_type):
-       Always return a GFileType enum value (#520715).
-
-2008-03-31  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileenumerator.c:
-       Read readdir() info in chunks (of 1000) and sort
-       the chunks by inode before stat:ing.
-       This is a 20% performance increase in testing
-       gvfs-ls on /usr/bin with cold cache.
-
-2008-03-31  Alexander Larsson  <alexl@redhat.com>
-
-       * gmemoryoutputstream.c:
-       Clarify docs for g_memory_output_stream_get_size.
-       Add g_memory_output_stream_get_data_size.
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio.symbols:
-       * gfile.c:
-       * gfile.h: Add g_file_query_file_type convenience function
-       to query the type of a file.  (#520715, Mikkel Kamstrup Erlandsen)
-
-2008-03-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfileenumerator.c:
-       * gfile.c: Fix some documentation typos.  (#524950, Rob Bradford)
-
-2008-03-28  A. Walton  <awalton@svn.gnome.org>
-
-       * giomodule.c (_g_io_modules_ensure_loaded):
-       Adds GIO_EXTRA_MODULES environment variable support, closing bug 
-       #523039.
-
-2008-03-28  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       (copy_stream_with_progress):
-       Fix up last commit.
-       
-2008-03-28  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       (copy_stream_with_progress):
-       (file_copy_fallback):
-       Fallback to g_file_query_info for source size
-       if g_file_input_stream_query_info fails. (#524579)
-
-2008-03-28  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c (g_local_file_move):
-       Reuse old string instead of adding new one.
-
-2008-03-28  Lin Ma  <Lin.Ma@Sun.COM>
-
-       * fen/*.[hc]: still copyright issue. I hate copyright.
-
-2008-03-27  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c (g_local_file_move):
-       Return G_IO_ERROR_IS_DIRECTORY, not G_IO_ERROR_WOULD_MERGE when moving
-       file over directory. This is according to the docs and what the move via
-       copy+remove fallback does.
-
-2008-03-27  Lin Ma  <Lin.Ma@Sun.COM>
-
-       * fen/*.[hc]: Updated copyright.
-
-2008-03-20  Lin Ma  <Lin.Ma@Sun.COM>
-
-       * fen/fen-data.c: (fdata_adjust_changed): Removed a bad formatted msg.
-
-2008-03-20  Lin Ma  <Lin.Ma@Sun.COM>
-
-       * fen/fen-data.c: (process_events), (fdata_add_event): Fixed FEN does
-       not emit attribute changed events when optimizing changed events.
-       * fen/fen-helper.c, fen/fen-kernel.c: Added ifdef to default disable
-       warning messages.
-
-2008-03-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmountoperation.[hc]: Small documentation additions
-
-2008-03-19  Sebastien Bacher  <seb128@ubuntu.com>
-
-       * gunixmounts.c: (guess_mount_type): 
-       consider nfs4 mounts as G_UNIX_MOUNT_TYPE_NFS (Closes: #523338)
-
-2008-03-19  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       (copy_stream_with_progress):
-       Bump block side for copy to 64k to minimize
-       overhead for low latency links. (#523015)
-
-2008-03-16  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (libgio_2_0_la_DEPENDENCIES): Make libgio-2.0.la
-       depend on gio.def on Windows.
-
-2008-03-12  David Zeuthen  <davidz@redhat.com>
-
-       * gio.symbols:
-       * gunixmounts.[ch]:
-       Add g_unix_mount_monitor_set_rate_limit() function (#521946)
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gunixmounts.c:
-       (guess_mount_type):
-       Avoid redudant tests (#521851)
-       Patch from Josselin Mouette
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gfilemonitor.c:
-       (g_file_monitor_is_cancelled):
-       Fix C89 issue (#521672)
-       Patch from Jens Granseuer
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-       * fam/fam-helper.[ch]:
-       * fam/fam-module.c:
-       Shut down fam (including removing fam GSource) when
-       module is unloaded (#521513)
-       Patch from Joe Marcus Clarke   
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-       * giomodule.c:
-       (_g_io_modules_ensure_loaded):
-       Fix up FEN ifdefs
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       (g_local_file_query_filesystem_info):
-       Use right define name for f_fstypename member check
-
-2008-03-14  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * fen/Makefile.am: Added.
-       * fen/fen-data.[ch]: Added.
-       * fen/fen-dump.[ch]: Added.
-       * fen/fen-helper.[ch]: Added.
-       * fen/fen-kernel.[ch]: Added.
-       * fen/fen-missing.[ch]: Added.
-       * fen/fen-node.[ch]: Added.
-       * fen/fen-sub.[ch]: Added.
-       * fen/gfendirectorymonitor.[ch]: Added.
-       * fen/gfenfilemonitor.[ch]: Added.
-       * giomodule.c:
-       Added Solaris FEN file notification backend.
-       Patch from Lin Ma <Lin.Ma@Sun.COM>
-
-2008-03-13  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Actually use the gio.def file when linking the
-       library on Windows. Produce .lib library for Microsoft's toolchain
-       when possible. Install the .lib and .def file like for the other
-       libraries of GLib.
-
-2008-03-13  Tomas Bzatek  <tbzatek@redhat.com>
-
-       * tests/live-g-file.c:
-       Include live-g-file in standard set of tests, making a temporary
-       directory in source structure.
-       
-       Clean target directory before the tests (write mode only)
-
-2008-03-12  Tor Lillqvist  <tml@novell.com>
-
-       Bug 517419 - gio win32 directory monitor
-       Implementation by Vlad Grecescu.
-       
-       * win32/Makefile.am
-       * win32/gwin32directorymonitor.h
-       * win32/gwin32directorymonitor.c: New files.
-
-       * giomodule.c: Set up the GWin32DirectoryMonitor plumbing.
-
-       * Makefile.am: Add the win32 subdirectory.
-
-2008-03-12  Tor Lillqvist  <tml@novell.com>
-
-       * glocalfileinfo.h: Introduce a macro GLocalFileStat that is the
-       normal struct stat on Unix but struct _stati64 on Windows to have
-       access to 64-bit file size information. Use that instead of struct
-       stat in the functions declared here in this private header.
-
-       * glocalfileinfo.c: Corresponding changes. Move some G_OS_WIN32,
-       S_ISLNK and HAVE_UTIMES ifdefs and add some more to avoid compiler
-       warnings about unused functions and variables. Don't set
-       meaningless attributes like inode numbers on Windows.
-
-2008-03-12  Benjamin Otte  <otte@gnome.org>
-
-       * gvfs.h:
-       trim whitespace so gtk-doc groks the function name
-
-2008-03-12  Tor Lillqvist  <tml@novell.com>
-
-       * glocalfile.c (_g_local_file_has_trash_dir): Implement as empty,
-       returning FALSE, on Win32.
-
-2008-03-11  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       * glocalfileinfo.[ch]:
-       Correctly implement can_trash by actually
-       looking for a trash dir, not just assuming
-       one exists.
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.16.1 ===
-
-2008-03-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gthemedicon.c:
-       Fix crashes in new constructor and properties code
-
-2008-03-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * gfile.c: Minor spelling correction in documentation:
-       existance -> existence.
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.0 ===
-
-2008-03-10  Matthias Clasen <mclasen@redhat.com>
-
-       * gio.symbols: Remove g_file_contains_file here, too.
-
-2008-03-10  Matthias Clasen <mclasen@redhat.com>
-
-       * gthemedicon.c: Add properties to make bindings happy.  (#517676,
-       Samuel Cormier-Iijima)
-
-2008-03-08  Tor Lillqvist  <tml@novell.com>
-
-       * glocalfile.c: Define FILE_READ_ONLY_VOLUME if it is missing from
-       winnt.h. (#521145)
-
-2008-03-07  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       (g_local_file_query_filesystem_info):
-       Use struct statfs.f_fstypename if availible (e.g. on OpenBSD)
-       Patch from Jasper Lievisse Adriaanse
-
-2008-03-06  Tor Lillqvist  <tml@novell.com>
-
-       * gfileinfo.h: Correct milliseconds to microseconds in the doc
-       comments for the *_USEC attributes.
-
-2008-03-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c (g_file_query_exists):
-       Add g_return_val_if_fail check (#520700)
-
-2008-03-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       * gfilemonitor.c:
-       * gthemedicon.c:
-       * gunionvolumemonitor.c:
-       * gunixmounts.c:
-       * tests/g-file.c:
-       * tests/live-g-file.c:
-       * xdgmime/xdgmimecache.c:
-       Fix sparse warnings (#519489)
-
-2008-03-05  Alexander Larsson  <alexl@redhat.com>
-
-       * gfilemonitor.c:
-       Make cancellation threadsafe (i.e.
-       guarantee its only done once, and always
-       done)
-       
-       * glocaldirectorymonitor.c:
-       Make sure we the monitor lives while the
-       mounts_changed callback is being called (#520484)
-
-2008-03-04  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gbufferedinputstream.c: Fix typo in parameter
-       documentation.
-
-2008-03-04  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       Remove deprecated symbols we kept for one release.
-
-2008-03-04  Murray Cumming  <murrayc@murrayc.com>
-
-       * ginputstream.c:
-       * goutputstream.c: Tiny documentation corrections.
-
-2008-03-03  Alexander Larsson  <alexl@redhat.com>
-
-       * gunionvolumemonitor.c:
-       * gvolumemonitor.h:
-       Fix the adopt_orphan_mount vfunc to take a
-       volume_monitor reference in an ABI compat way.
-       This change is not API compat, but the added
-       arg is not used in the only user of this vfunc, so
-       all we get is a harmless warning in gvfs (#520169)
-       
-2008-03-01  Benjamin Otte  <otte@gnome.org>
-
-       * gfile.c:
-       clarify docs for g_file_delete().
-
-2008-02-29  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileinfo.c:
-       (get_content_type):
-       Make sure empty files get text/plain type (#518720)
-
-2008-02-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gcontenttype.c:
-       Fix type warnings
-       
-       * gunixvolume.c:
-       (g_unix_volume_mount):
-       Add missing GMountMountFlags argument
-
-2008-02-26  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       (g_local_file_delete):
-       Handle filesystems (like ntfs-3g) that return EEXIST instead
-       of ENOTEMPTY (#518816)
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.6 ===
-
-2008-02-25  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gfile.c (g_file_find_enclosing_mount):
-       * ginputstream.c (g_input_stream_set_pending):
-       * glocalfile.c (g_local_file_find_enclosing_mount):
-       * gmount.c (g_mount_unmount), (g_mount_eject), (g_mount_remount):
-       * goutputstream.c (g_output_stream_set_pending):
-
-       Fixup translator comments (#518578).
-
-2008-02-25  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gfile.c (g_file_find_enclosing_mount):
-       * giomodule.c:
-       * glocalfile.c (g_local_file_find_enclosing_mount):
-       * goutputstream.c:
-
-       Fix a few typos in translator comments and documentation.
-
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       * ginputstream.c:
-       * glocalfile.c:
-       * gmount.c:
-       * goutputstream.c:
-       Add translator comments (#518578)
-
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:      
-       Reintroduce g_file_contains_file, keep around for one
-       unstable release cycle to avoid crashing to many apps.
-       Make sure to delete after release.
-
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       Remove deprecated g_file_contains_file.
-
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gfilemonitor.c:
-       Emit actual change signals in an idle handler.
-       This avoids reentrance and locking problems in
-       the file notification backends.
-       
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gunixmounts.c:
-       (g_unix_mount_guess_should_display):
-       Remove type guessing, instead just display
-       mounts in /media and in ~/.
-
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       Make new strings reuse old ones.
-       
-2008-02-25  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       Implement trashing and filesystem::readonly for win32 (#517235)
-       Patch from Yevgen Muntyan
-
-2008-02-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfileinfo.h: Documentation fixes.
-
-2008-02-22  Alexander Larsson  <alexl@redhat.com>
-
-       * gcontenttype.c (g_content_type_get_icon):
-       Look at old-style gnome mime icon names too, as many
-       have not moved to the new style.
-
-2008-02-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * *.c: Correct the @include in for section docs.
-
-2008-02-21  David Zeuthen  <davidz@redhat.com>
-
-       * glocalfileinfo.c: (_g_local_file_info_get):
-       * gcontenttype.c:
-       (g_content_type_get_icon): Implement this function by
-       moving bits from glocalfileinfo.c
-       (g_content_type_get_description): Unalias before getting
-       description (#517687)
-
-       * gfile.c: (g_file_class_init),
-       (g_file_query_filesystem_info_async),
-       (g_file_query_filesystem_info_finish),
-       (query_filesystem_info_data_free),
-       (query_filesystem_info_async_thread),
-       (g_file_real_query_filesystem_info_async),
-       (g_file_real_query_filesystem_info_finish):
-       * gfile.h: Implement async version of
-       g_file_query_filesystem_info()
-
-       * gfileinfo.h: Add new attributes for filesystem::use-preview
-
-       * gio.symbols: Update
-
-       * gthemedicon.c: (g_themed_icon_append_name):
-       * gthemedicon.h: Add new new convenience function.
-
-       * gunionvolumemonitor.c: (g_union_volume_monitor_dispose),
-       (get_mounts), (get_volumes), (get_connected_drives),
-       (get_volume_for_uuid), (get_mount_for_uuid),
-       (g_union_volume_monitor_init), (populate_union_monitor),
-       (g_volume_monitor_get), (_g_mount_get_for_mount_path),
-       (g_volume_monitor_adopt_orphan_mount):
-       * gvolumemonitor.c:
-       * gvolumemonitor.h: Use recursive locks so it's safe for volume
-       monitor implementations to call into the main volume monitor. Also
-       separate object initialization and volume monitor initialization
-       such that non-native volume monitors can properly adopt their
-       mounts away.
-
-2008-02-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       Fix doc typo
-       
-2008-02-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       Add more documentation about how GFiles work (from #517086)
-
-2008-02-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       * gio.symbols:
-       Add new g_file_has_prefix that does the same as g_file_contains_file.
-       Deprecate g_file_contains_file and add a macro that converts
-       it to g_file_has_prefix.
-       The reason for this change is that the contains_file() name seems to
-       imply that this does more work than what it does, but its really only
-       a name match (from #517086)
-       
-       * gdummyfile.c:
-       * glocalfile.c:
-       * tests/g-file.c:
-       Update to match the above change.
-
-2008-02-20  Benjamin Otte  <otte@gnome.org>
-
-       * gfile.c: (g_file_mount_mountable), (g_file_unmount_mountable),
-       (g_file_eject_mountable):
-       even more cases of not returning in error path
-
-2008-02-20  Benjamin Otte  <otte@gnome.org>
-
-       * gfile.c: (g_file_mount_mountable): 
-       return from function in error path.
-
-2008-02-18  Sylvain Pasche <sylvain.pasche@gmail.com>
-
-       * gfile.h:
-        Remove trailing coma in GMountMountFlags struct
-
-2008-02-18  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       * glocalfileinfo.c:
-       * glocalfileoutputstream.c:
-       Use g_unlink/g_rename instead of unlink/rename;
-       do not pass raw filenames to g_set_error. (#517239)
-       Patch from Yevgen Muntyan.
-
-2008-02-18  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       * glocalfileoutputstream.c:
-       Open files with O_BINARY on windows. (#517140)
-
-2008-02-14  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileoutputstream.c:
-       Correctly check for HAVE_FCHMOD and HAVE_FCHOWN
-
-2008-02-14  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       Copy permissions with file on copy (#514084)
-       This is what cp does and makes sure e.g. the
-       exec permissions are kept.
-       Its kinda weird in that it keeps the permission bits
-       the same while the uid and gid are different. However
-       the new uid is the user so its not a security issue,
-       and I've heard no complaints about cp on this issue.
-
-2008-02-13  Ryan Lortie  <desrt@desrt.ca>
-
-       * gfileinfo.h: add G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT
-
-2008-02-13  Alexander Larsson  <alexl@redhat.com>
-
-       * inotify/inotify-path.c:
-       Define IN_ONLYDIR if not in header (#515346)
-
-2008-02-12  Alexander Larsson  <alexl@redhat.com>
-
-       * tests/live-g-file.c:
-       C89 fixes (#515892)
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.15.5 ===
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * gio.symbols: Add g_mount_mount_flags_get_type.
-
-2008-02-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileinfo.c:
-       (g_file_info_set_attribute_mask):
-       (g_file_attribute_matcher_matches_id):
-       Correctly handle NULL GAttributeMatcher meaning
-       matches nothing. (Fixes #513492)
-
-2008-02-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       * gmount.[ch]:
-       * gvolume.[ch]:
-       Added GMountMountFlags enum and added a flags
-       argument to all mount calls.
-       
-       This is an API/ABI change for future extensibility,
-       as I think we will need at least an
-       inhibit-autorun flag (the panel needs this).
-       There are no flags defined yet though.
-
-2008-02-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileinfo.h:
-       Added new standard::description attribute.
-       Requested by Vincent, and useful for both
-       panel and nautilus
-
-2008-02-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       Minor docs cleanup
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * *.c: Documentation additions
-
-2008-02-10  Matthias Clasen <mclasen@redhat.com>
-
-       * gappinfo.h: Formatting cleanup
-       * gappinfo.c: Fix up docs.
-
-2008-02-09  Matthias Clasen <mclasen@redhat.com>
-
-       * gunixmounts.c: Consistently use getmntent_r() and fall
-       back to getmntent().  (#515492)
-
-2008-02-09  Matthias Clasen <mclasen@redhat.com>
-
-       * gbufferedinputstream.c:
-       * ginputstream.c:
-       * goutputstream.c: Use G_STRFUNC instead of __FUNCTION__.
-
-       * tests/data-input-stream.c:
-       * tests/data-output-stream.c: Portability fixes.
-
-2008-02-08  Alexander Larsson  <alexl@redhat.com>
-
-       * gio.symbols: 
-       * gunixvolume.c:
-       * gvolume.[ch]:
-       Add g_volume_should_automount.
-       Docs needed.
-
-2008-02-07  Tor Lillqvist  <tml@novell.com>
-
-       * tests/Makefile.am (TEST_PROGS): live-g-file won't build on
-       Win32, too Unix-specific.
-
-2008-02-06  Behdad Esfahbod  <behdad@gnome.org>
-
-       * pltcheck.sh: Skip g_bit_*().  Inline functions may end up with
-       a local plt if the compiler doesn't support what we want.  Bug #514702
-
-2008-02-06  Murray Cumming,,,  <murrayc@murrayc.com>
-
-       reviewed by: <delete if not using a buddy>
-
-       * gfile.c:
-       * gunixinputstream.c:
-       * gunixoutputstream.c:
-
-2008-02-06  Tomas Bzatek  <tbzatek@redhat.com>
-
-       * tests/Makefile.am:
-       * tests/live-g-file.c:
-       * tests/live-g-file.txt:
-       New GIO testing module working over real data
-
-2008-02-06  Tomas Bzatek  <tbzatek@redhat.com>
-
-       * glocalfileoutputstream.c (g_local_file_output_stream_close):
-       Fallback to rename() if link() is not available
-       (when no support on target filesystem)
-
-2008-02-06  Michael Natterer  <mitch@imendio.com>
-
-       * gfileinfo.c (g_file_info_get_icon): replace
-       "icon && G_IS_ICON (icon)" by simply "G_IS_ICON (icon)".
-
-2008-02-06  Tomas Bzatek  <tbzatek@redhat.com>
-
-       * gfile.c (g_file_create):
-       Documentation update of error codes
-
-2008-02-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       Update to use both mimeapps.list and
-       defaults.list as discussed on xdg list.
-
-2008-02-06  Benjamin Otte  <otte@gnome.org>
-
-       * gasyncresult.c:
-       * gfilenamecompleter.c:
-       Fix some typos in the documentation.
-
-2008-02-06  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c (g_local_file_trash):
-       Don't succeed with trash if newly created
-       trash dir has the wrong owner. (#514696)
-
-2008-02-05  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c (g_local_file_move):
-       Don't spew warnings when destination is not
-       a GLocalFile.
-
-2008-02-03  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc : update
-
-2008-02-01  Michael Natterer  <mitch@imendio.com>
-
-       * gcontenttype.c (_g_unix_content_type_get_parents): assign the
-       return value of xdg_mime_list_mime_parents() to a variable of the
-       correct type.
-
-2008-02-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.c (g_app_info_launch_uris):
-       Actually call the launch_uris method, not
-       launch.
-
-2008-02-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c (g_desktop_app_info_equal):
-       Ensure appinfos with no id but same pointer value
-       compare equal
-
-2008-02-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.c (g_app_info_launch_default_for_uri): 
-       Don't leak appinfo.
-       
-2008-02-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.[ch]:
-       * gio.symbols:
-       Add g_app_info_launch_default_for_uri utility
-       function. (#513256)
-
-2008-02-01  Cosimo Cecchi  <cosimoc@svn.gnome.org>
-
-       * gdesktopappinfo.c:
-       Doc fix for g_app_info_get_default_for_uri_scheme ()
-       Bug #513483.
-
-2008-01-30  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.c:
-       Add doc comment about uris vs GFiles to
-       g_app_info_launch()
-       
-       * gdesktopappinfo.c:
-       Ensure uris passed to g_app_info_launch_uris()
-       are not roundtriped through GFile (as that
-       may be slightly destructive for e.g. mailto: links)
-
-2008-01-30  Alexander Larsson  <alexl@redhat.com>
-
-       * tests/data-input-stream.c:
-       * tests/data-output-stream.c:
-       C89 fixes from Jens Granseuer (#512849)
-
-2008-01-30  Alexander Larsson  <alexl@redhat.com>
-
-       * fam/fam-helper.c:
-       Fix gamin/fam difference build issue. (#509419)
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.h:
-       * gdesktopappinfo.c:
-       Add G_APP_INFO_CREATE_SUPPORTS_URIS flag
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       * gdesktopappinfo.h:
-       giomodule-priv.h include moved to .c file.
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gnativevolumemonitor.h (struct _GNativeVolumeMonitorClass):
-       Remove unused prio/name fields.
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gcontenttype.c (looks_like_text):
-       Don't treat whitespace as control chars.
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       Lazily create the desktop files for appinfos created
-       by g_app_info_create_from_commandline() when needed
-       for mime associations. This allows run-time use
-       of GAppInfo object without creating unnecessary
-       files on disk.
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gio.symbols:
-       Added new symbols to gio.symbols
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       Add g_file_query_default_handler utility to easily look up
-       the GAppInfo that handles a file.
-       
-       * gdesktopappinfo.[ch]:
-       * giomodule.c:
-       Set up an extension point for g_app_info_get_default_for_uri_scheme()
-       
-       * gvfs.c:
-       Remove unused function
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileenumerator.c:
-       Mention need to free returned value in
-       g_file_enumerator_next_files_finish docs.
-       Fix leak if g_file_enumerator_next_files_finish()
-       not called.
-
-2008-01-29  Alexander Larsson  <alexl@redhat.com>
-
-       * gcontenttype.c:
-       (_g_unix_content_type_get_parents):
-       Use list_parents, not get_parents from xdgmime, because
-       the later doesn't use the cache.
-       
-       * xdgmime/xdgmimecache.c:
-       (_xdg_mime_cache_list_mime_parents):
-       Don't list the same type as parent multiple times.
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.4 ===
-
-2008-01-28  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalvfs.c:
-       Register local vfs with prio 0.
-       
-       * gvfs.h:
-       Remove old name and prio class members
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/g-file.c: Disable some tests that are failing in
-       the absence of a http backend.
-
-2008-01-28  Alexander Larsson  <alexl@redhat.com>
-
-       * giomodule.[ch]:
-       * gio.symbols:
-       Add registration hooks for extension points.
-       Register the gio extension points.
-       
-       * fam/gfamdirectorymonitor.c:
-       * fam/gfamfilemonitor.c:
-       * glocaldirectorymonitor.[ch]:
-       * glocalfilemonitor.[ch]:
-       * gnativevolumemonitor.h:
-       * gunionvolumemonitor.c:
-       * gunixvolumemonitor.c:
-       * gvfs.[ch]:
-       * gvolumemonitor.h:
-       * inotify/ginotifydirectorymonitor.c:
-       * inotify/ginotifyfilemonitor.c:
-       Use the extension points registration instead
-       of g_type_children().
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-       
-       * gdrive.[hc]: 
-       * gvolume.[hc]: Document new API. 
-
-       * gfile.c (g_file_copy_async): Fix docs
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gbufferedinputstream.c:
-       * ginputstream.c:
-       * goutputstream.c: Replace uses of G_GNUC_PRETTY_FUNCTION by
-       __FUNCTION__.
-       
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * glocalfile.c: Avoid trivial differences in translatable strings.
-
-2008-01-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * fam/fam-helper.c (fam_event_to_file_monitor_event): Make this
-       build with gcc 3.4  (#509419)
-
-2008-01-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfilemonitor.c: Add references to g_file_monitor_file/directory()
-       (#509994, Murray Cumming)
-
-2008-01-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * gioscheduler.h: Make GIOSchedulerJobFunc return boolean
-       * gioscheduler.c: Keep calling io jobs until they return FALSE;
-       this allows big jobs to be executed in chunks, instead of blocking
-       the main loop for a long time.
-
-       * gsimpleasyncresult.c:
-       * giofile.c: Adapt callers.
-
-2008-01-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       Implement changes discussed on xdg list.
-       Now we can add supported mimetypes by just using defaults.list
-       We can also remove associations in defaults.list.
-
-2008-01-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       Don't make local copy of desktop file
-       for mimetype changes if the file already
-       supports the new mimetype.
-
-2008-01-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * ginputstream.c:
-       * goutputstream.c:
-       * gbufferedinputstream.c:
-       * glocalfile.c: String improvements.  (#511966, 
-        Theppitak Karoonboonyanan)
-
-2008-01-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * gioscheduler.h: Expand docs a bit.
-
-2008-01-24  Alexander Larsson  <alexl@redhat.com>
-
-       * gdrive.[ch]:
-       Add g_drive_get_identifier and
-       g_drive_enumerate_identifiers
-
-       * gvolume.[ch]:
-       Add g_volume_get_identifier and
-       g_volume_enumerate_identifiers
-       
-       * gio.symbols:
-       Add symbols
-       
-       * gunixvolume.c:
-       Implement identifiers for unix backend
-
-2008-01-24  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       * gfile.h:
-       * gio.symbols:
-       Add g_file_copy_async() (#511580)
-       Based on patch from Carlos Garcia Campos
-
-2008-01-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gioscheduler.c: Some documentation additions.
-
-2008-01-22  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       (g_desktop_app_info_new):
-       Don't leak basename.
-       
-2008-01-22  Alexander Larsson  <alexl@redhat.com>
-
-       * gdesktopappinfo.c:
-       (g_desktop_app_info_new_from_filename):
-       Don't leak GKeyFile
-
-2008-01-22  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileinfo.c (get_thumbnail_attributes):
-       Fix leak of uri
-
-2008-01-22  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       (canonicalize_filename):
-       Canonicalize paths that start with more than
-       two slashes.
-       
-       * tests/g-file.c:
-       (compare_two_files):
-       (test_g_file_new_for_path):
-       Test the above
-
-2008-01-22  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       Allow UTF-8 in file:// parse names.
-       
-       * tests/Makefile.am:
-       * tests/data-input-stream.c:
-       * tests/data-output-stream.c:
-       * tests/g-file-info.c:
-       * tests/g-file.c:
-       Added a bunch of tests from Tomas Bzatek
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.3 ===
-
-2008-01-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileinputstream.[ch]:
-       * gfileoutputstream.[ch]:
-       * gio.symbols:
-       Remove duplicated GSeekable functions. (#509990)
-       Just use the g_seekable_xxx() calls instead.
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glocal*.c:
-       * gvolumemanager.c: Whitespace cleanups.
-
-       * glocalfileoutputsteam.c (_g_local_file_output_stream_create):
-       Use the right mode when creating the file.
-
-2008-01-21  Murray Cumming,,,  <murrayc@murrayc.com>
-
-       * gfileenumerator.c:
-       * gfileinputstream.c:
-       * ginputstream.c:
-       * goutputstream.c: Documentation: Fixed minor typos 
-       and added more mentions of specific _finish() functions.
-
-2008-01-21  Alexander Larsson  <alexl@redhat.com>
-
-       * inotify/Makefile.am:
-       * inotify/inotify-helper.c:
-       * inotify/inotify-kernel.c:
-       * inotify/inotify-path.c:
-       * inotify/local_inotify.h: Removed.
-       * inotify/local_inotify_syscalls.h: Removed.
-       Removed the included copies of the inotify
-       headers. We now only use the <sys/inotify.h>
-       header which exists on modern systems.
-       This fixes problems on ARM and SH5 (#510448)
-       but is also generally much cleaner and future
-       safe. For instance, if other OSes add support
-       for inotify it should "just work".
-
-2008-01-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * inotify/*.c: Coding style fixes.
-       * inotify/inotify-missing.c: Use g_timeout_add_seconds
-       for the 1/4 Hz timer.
-
-2008-01-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfile.c:
-       * gfilemonitor.[hc]:
-       * gmemoryinputstream.c:
-       * gmemoryoutputstream.c:
-       * gmountoperation.c:
-       * gthemedicon.c: Documentation updates
-
-2008-01-20  Murray Cumming  <murrayc@murrayc.com>
-
-       * gfile.c: documentation: Fixed more minor 
-       typos.
-
-2008-01-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * gmount.c: (g_mount_remount): documentation: 
-       Mention g_mount_remount_finish() instead of 
-       g_mount_unmount_finish().
-
-2008-01-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * gappinfo.c:
-       * gcancellable.c:
-       * gfile.c: Fixed some minor typos in the 
-       documentation. 
-
-2008-01-18  Murray Cumming  <murrayc@murrayc.com>
-
-       * gio/gvolumemonitor.c: 
-       (g_volume_monitor_get_connected_drives): 
-       (g_volume_monitor_get_volumes): 
-       (g_volume_monitor_get_mounts): Documentation: 
-       Clarify the ownership of the regurn GLists.
-
-2008-01-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.h:
-       Add the async find_enclosing_mount version
-       to the header file too.
-
-2008-01-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       Add async version of find_enclosing_mount
-       with default implementation.
-
-2008-01-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       (g_file_copy):
-       (g_file_move):
-       Allow calls to implementation of copy and write
-       even if the type of the file implementations is
-       different. This can be used to implement native
-       upload and download calls in a vfs.
-       
-       * glocalfile.c:
-       (g_local_file_move):
-       Protect against the case where move is called
-       with one file not being local.
-       
-       Make sure we call the progress callback once
-       in the native move operation so that the caller
-       knows how many bytes were copied.
-
-2008-01-16  Murray Cumming  <murrayc@murrayc.com>
-
-       * gappinfo.c:
-       * gdatainputstream.c:
-       * gfile.c:
-       * gfileoutputstream.c:
-       * ginputstream.c:
-       * gmount.c:
-       * goutputstream.c:
-       * gseekable.c:
-       * gunixmounts.c: Corrected some typos in the documentation:
-       occured -> occurred.
-       its -> it's (where appropriate).
-
-2008-01-16  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       * gio.symbols:
-       Add g_file_query_exists (#508771)
-
-2008-01-15  Murray Cumming  <murrayc@murrayc.com>
-
-       * gdrive.c:
-       * gfile.c:
-       * gmount.c:
-       * gvolume.c: For async functions that have no non-async 
-       version, document that the GAsyncReadyCallback may be NULL.
-       Bug #509626.
-
-2008-01-15  Alexander Larsson  <alexl@redhat.com>
-
-       * gmemoryinputstream.c:
-       * gmemoryoutputstream.c:
-       Don't do pointer arithmetic on void * (#508602)
-       Patch from Kazuki IWAMOTO
-
-2008-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.2 ===
-
-2008-01-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c (g_file_monitor_file):
-       Don't set error here, since we fallback to polling monitor.
-
-2008-01-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       (g_file_monitor_directory):
-       (g_file_monitor_file):
-       Add GError to file monitor calls
-       
-       * glocaldirectorymonitor.c:
-       * glocaldirectorymonitor.h:
-       * glocalfile.c:
-       * glocalfilemonitor.c:
-       * glocalfilemonitor.h:
-       * gunixmounts.c:
-       Update for above change
-
-2008-01-14  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfile.c:
-       (match_prefix):
-       Handle root correctly in g_file_get_relative_path (#508719)
-
-2008-01-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gasyncresult.c:
-       Clean up docs and example for GAsyncResult (#508074)
-
-2008-01-11  Murray Cumming  <murrayc@murrayc.com>
-
-       * gfile.c: Clarify the sentence about GAsyncReadyCallback, 
-       and correct some spelling mistakes. Bug #508108.
-
-2008-01-11  Matthias Clasen <mclasen@redhat.com>
-
-       * glocalfileinfo.c: Add a comment.
-
-2008-01-10  Murray Cumming  <murrayc@murrayc.com>
-
-       * gfileinfo.c: GFileInfo description: Mention 
-       how to actually set attributes in a GFile and how to discover 
-       which attributes are settable. Bug #508378.
-
-2008-01-10  A. Walton  <awalton@svn.gnome.org>
-
-       * gdesktopappinfo.c: (g_app_info_get_all_for_type),
-       (g_app_info_get_default_for_type):
-       Check for NULL content types.
-
-2008-01-10  Frederic Crozat  <fcrozat@mandriva.com>
-
-       * gunixmounts.c: add rpc_pipefs to systemfs list (#508309).
-
-2008-01-09  Murray Cumming  <murrayc@murrayc.com>
-
-       * gfile.c: *_async() functions: Several small corrections 
-       to the documentation, mostly correcting copy/paste errors 
-       and improving some sentences.
-
-2008-01-09  Dan Winship  <danw@gnome.org>
-
-       * glocalfile.c (get_unique_filename): x86_64 fix
-
-2008-01-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gio.symbols:
-       * gunixmount.c:
-       * gunixmounts.[ch]:
-       Add g_unix_mount_guess_should_display and use
-       for unix volume monitor backend.
-       This means we more or less show what the
-       gnome-vfs backend did.
-       Based on patch from Padraig O'Briain
-
-2008-01-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gio.symbols:
-       * gthemedicon.[ch]:
-       Add g_themed_icon_new_with_default_fallbacks
-       
-       * gunixmounts.c:
-       Use default fallbacks for icons
-
-2008-01-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gio-marshal.list:
-       * gmountoperation.[ch]:
-       Change the API a bit so that unhandled methods
-       get reported via the reply, rather than by
-       the signal emission return value. This is because
-       some handlers can't know this immediately without
-       doing I/O, and this is an async operation that
-       should not block.
-
-2008-01-09  Alexander Larsson  <alexl@redhat.com>
-
-       * fam/fam-helper.c:
-       * fam/gfamdirectorymonitor.c:
-       * fam/gfamfilemonitor.c:
-       Fix double free crash (#508224)
-       Patch from Joe Marcus Clarke
-
-008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.1 ===
-
-2008-01-07  Alexander Larsson  <alexl@redhat.com>
-
-       * gunixinputstream.c (g_unix_input_stream_skip_finish):
-       Fix warning (#507835)
-
-2008-01-07  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       Pass --internal to glib-genmarshal
-       
-       * gfilemonitor.c:
-       * gmountoperation.c:
-       * gio-marshal.list:
-       Use better types for signal arguments (#507822)
-
-2008-01-07  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       Build test subdir after .
-       Remove gdirectorymonitor.[ch]
-       
-       * gdirectorymonitor.[ch]:
-       * gfilemonitor.c:
-       * gfile.[ch]:
-       * gio.h:
-       Remove GDirectoryMonitor and make
-       GFileMonitor the baseclass for both file and
-       directory monitors. Lift the more generic
-       rate limiting code from GDirectoryMonitor
-       into GFileMonitor.
-       
-       * fam/fam-helper.c:
-       * fam/gfamdirectorymonitor.[ch]:
-       * inotify/ginotifydirectorymonitor.[ch]:
-       * inotify/inotify-helper.c:
-       * glocaldirectorymonitor.[ch]:
-       * glocalfile.c:
-       * gvolumemonitor.c:
-       Update for the removed GDirectoryMonitor.
-       
-       * gmemoryoutputstream.c:
-       Remove ununsed variable
-
-2008-01-07  Alexander Larsson  <alexl@redhat.com>
-
-       * gmemoryinputstream.c:
-       Translate error strings
-       
-       * gio.symbols:
-       * gmemoryoutputstream.[ch]:
-       New implementation that avoids using GByteArray
-       in implementation and API. (#506377)
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * tests/*: Add a test for memory input streams.
-       
-       * Makefile.am: Add tests to SUBDIRS.
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * glocalfilemonitor.c:
-       * glocaldirectorymonitor.c: Mark property nicks and blurbs
-       for translation.
-
-2008-01-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c: Fix a docs typo.
-
-       * gfileattribute.c: Add information about extended attributes
-       to the documentation.  (#505058)
-
-2008-01-04  Alexander Larsson  <alexl@redhat.com>
-
-       * gio-marshal.list:
-       * gmountoperation.c:
-       Use the right type (uint) for the ask_password signal.
-
-2008-01-04  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.[ch]:
-       * gwin32appinfo.c:
-       * gio.symbols:
-       Add g_app_info_supports_files() 
-       Remove desktop arg from g_app_info_should_show().
-       
-       * gdesktopappinfo.[ch]:
-       Implement g_app_info_supports_files() and new should_show()
-       Add g_desktop_app_info_set_desktop_env() to set the desktop
-       for should_show(). (This will be set by gtk+ later)
-
-2008-01-04  Alexander Larsson  <alexl@redhat.com>
-
-       * gio.symbols:
-       * gmemoryinputstream.[ch]:
-       Improve API so that you can use multiple chunks
-       of memory and custom destroy functions. (#506374)
-
-2008-01-03  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileinfo.c:
-       Handle NULL attribute matchers safely, as we return this
-       for empty attribute matcher strings.
-
-2008-01-03  Alexander Larsson  <alexl@redhat.com>
-
-       * gunixmounts.c (g_unix_is_mount_path_system_internal):
-       Add /usr/local to list of internal mountpoints
-
-2008-01-03  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileinfo.c:
-       Check for HAVE_LCHOWN (#505887)
-       
-2008-01-03  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileinfo.h:
-       * glocalfileinfo.c:
-       Add define for selinux context attribute.
-       Fix missing : -> :: namespace separator change
-       Fix missing _ -> - name change for xattr-sys.
-       (#505058)
-
-2008-01-03  Alexander Larsson  <alexl@redhat.com>
-
-       * fam/Makefile.am:
-       Link to libglib and libgobject directly (#504879)
-       Patch from Sebastien Bacher
-
-2008-01-01  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gfile.c: Expanded the g_file_new_for_commandline_arg
-       description a bit, based on the code and the docs of the
-       other g_file_new_for_* functions.
-
-2007-12-31  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * gfilemonitor.h: Fixed typo in docs.
-
-2007-12-31  Mathias Hasselmann  <mathias@openismus.com>
-
-       Updates to GIO documentation. (#506395, Mikael Hermansson)
-
-       * gcontenttype.c: Describe memory management for return value of
-       g_content_types_get_registered(). Missing piece from #505815.
-       * gdrive.c, gmount.c, gvolumemonitor.c: Add more description to
-       GVolume, GDrive, GMounts, which hopefully gives the user less
-       confusions when using this API. Following explainations from
-       Alexander Larsson on gtk-devel-list.
-
-2007-12-30  Matthias Clasen  <mclasen@redhat.com> 
-
-       * gfileinfo.c: Expand the long description.
-
-2007-12-30  Matthias Clasen  <mclasen@redhat.com> 
-
-       * fam/Makefile.am:
-       * inotify/Makefile.am: Use GLIB_DEBUG_FLAGS. This should
-       fix builds with --disable-visibility.  (#500273, Christian Persch)
-
-2007-12-30  Matthias Clasen  <mclasen@redhat.com> 
-
-       * gdesktopfileinfo.c (g_app_info_get_all): Don't include NULLs
-       in the list of returned app infos.
-
-2007-12-30  Matthias Clasen  <mclasen@redhat.com> 
-
-       * gappinfo.c: Fix a cross-reference
-
-2007-12-30  Matthias Clasen  <mclasen@redhat.com> 
-
-       * gfileinputstream.c:
-       * gfileoutputstream.c:
-       * gloadableicon.h:
-       * gunixmounts.c:
-       * gmount.h:
-       * gdesktopappinfo.c:
-       * gvolumemonitor.c: 
-       * gfileinfo.c: Documentation updates.
-
-2007-12-26  Matthias Clasen  <mclasen@redhat.com> 
-
-       * gdesktopappinfo.c: Include crt_externs.h.  (#505730,
-       Tommi Komulainen)
-
-2007-12-26  Matthias Clasen  <mclasen@redhat.com> 
-
-       * gcontenttype.c (g_content_types_get_registered): Don't return
-       freed memory (#505815, Mikael Hermansson)
-
-2007-12-25  Paolo Borelli  <pborelli@katamail.com>
-
-       * glocalfileinfo.c (set_info_from_stat): fix typo in the ifdef
-       used to detect statbuf->st_blocks. (#505042)
-
-2007-12-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c (g_desktop_app_info_launch): Fix the
-       environment handling.  (#504829, Cosimo Cecchi)
-
-2007-12-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * gappinfo.c: Doc improvements
-       
-       * gdesktopappinfo.c (g_app_info_get_all): Return app infos,
-       not ids.
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.0 ===
-
-2007-12-20  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc : don't build gdesktopappinfo.obj, it collides 
-       with symbols gwin32appinfo.obj, added gmount.obj
-       * gio.symbols : mark g_desktop_app_* as G_OS_UNIX
-
-2007-12-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       * gfileattribute.c:
-       * gfileinfo.c:
-       * gfileinfo.h:
-       * gfilenamecompleter.c:
-       * glocalfile.c:
-       * glocalfileinfo.c:
-       * gpollfilemonitor.c:
-       File attribute renames:
-       std:: -> standard::
-       fs:: -> filesystem::
-       id::fs -> id::filesystem
-       
-2007-12-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       * gdrive.[ch]:
-       * gmount.[ch]:
-       * gvolume.[ch]:
-       * gunixmount.c:
-       * gunixvolume.c:
-       * gio.symbols:
-       Add GMountUnmountFlags to all unmount and
-       eject calls.
-       Add g_mount_remount() call.
-
-2007-12-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gvfs.c (get_default_vfs):
-       Fix unused variable warning
-
-2007-12-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * pltcheck.sh: Update
-
-2007-12-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gunionvolumemonitor.c:
-       * gunixmount.c: Remove C99 comments
-
-2007-12-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio.symbols: Add some missing symbols
-
-2007-12-19  Alexander Larsson  <alexl@redhat.com>
-
-       * giomodule.c:
-       Make g_io_modules_load_all_in_directory not unuse
-       loaded modules so that users of it can do stuff
-       before unloading.
-       Init internal "module" types.
-       Initialize static prio and name for types so that
-       we don't have to load modules to get it.
-       
-       * gnativevolumemonitor.h:
-       * gvolumemonitor.h:
-       Move is_supported to parent class so that
-       non-native monitors can avoid being initialized
-       too. (For instance GDaemonVolumeMonitor if we're
-       not using GDaemonVfs.)
-       
-       * glocaldirectorymonitor.[ch]:
-       * glocalfilemonitor.[ch]:
-       * gunionvolumemonitor.c:
-       * gunixvolumemonitor.c:
-       * gvfs.c:
-       Find plugins using the static prio+name to
-       avoid unnecessarily loading the modules.
-
-2007-12-19  Alexander Larsson  <alexl@redhat.com>
-
-       * giomodule.c:
-       Remove warnings
-
-2007-12-19  Alexander Larsson  <alexl@redhat.com>
-
-       * gunionvolumemonitor.c:
-       Store the native type as GType, not class so that
-       we can unload it. But still avoid unnecessarily
-       unload modules.
-
-2007-12-19  David Zeuthen  <davidz@redhat.com>
-
-       Introduce g_volume_monitor_adopt_orphan_mount() function. Also
-       add signals 'disconnected' and 'eject-button' on GDrive. Add
-       signal 'removed' on GVolume and 'unmounted' on GMount.
-
-       * gdrive.c: (g_drive_base_init):
-       * gdrive.h:
-       * gfile.c: (g_file_mount_mountable),
-       (g_file_mount_enclosing_volume):
-       * gio.symbols:
-       * gioerror.h:
-       * gmount.c: (g_mount_base_init):
-       * gmount.h:
-       * gunionvolumemonitor.c: (g_volume_monitor_adopt_orphan_mount):
-       * gunixvolumemonitor.c: (update_volumes), (update_mounts):
-       * gvolume.c: (g_volume_base_init), (g_volume_mount):
-       * gvolume.h:
-       * gvolumemonitor.h:
-
-2007-12-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * *.c: Fix up includes in the section docs.
-
-2007-12-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gnativevolumemonitor.h:
-       * gunionvolumemonitor.c:
-       * gunixvolumemonitor.c:
-       Add is_supported() to GNativeVolumeMonitorClass so
-       that we can avoid having to create an object to see
-       if the backend is supported at runtime.
-       Also add name member and an env var to pick a specific
-       volume monitor backend.
-       
-       * gmountprivate.h:
-       * glocalfile.c:
-       Add cancellable to _g_mount_get_for_mount_path()
-       
-       * glocaldirectorymonitor.c:
-       * glocalfilemonitor.c:
-       Avoid loading and unloading modules while sorting.
-
-2007-12-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * gio.symbols:
-       * gunixmounts.[hc]: Namespace waste reduction, move some
-       g_get_unix_mount functions to the g_unix_mount namespace.
-
-       * gunixmounts.c:
-       * gunixvolumemonitor.c:
-       * glocalfile.c:
-       * glocaldirectorymonitor.c: Update all callers.
-
-       * gunixmounts.h: Remove leftover g_unix_get_canonical_device_path
-
-2007-12-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       Add doc comments about what GFile operations are
-       guaranteed to not block.
-
-2007-12-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gunixmounts.c:
-       Add missing #ifdef fixing OSX build.
-       (#503334, patch from Richard Hult)
-
-2007-12-14  David Zeuthen  <davidz@redhat.com>
-
-       * Makefile.am:
-       * gio.symbols:
-       * gmount.c: (g_mount_get_uuid), (g_mount_can_eject),
-       (g_mount_eject), (g_mount_eject_finish):
-       * gmount.h:
-       * gunionvolumemonitor.c: (g_union_volume_monitor_finalize),
-       (get_volume_for_uuid), (get_mount_for_uuid),
-       (g_union_volume_monitor_class_init),
-       (get_default_native_type_with_exclude), (get_default_native_type),
-       (get_native_type), (update_native_type),
-       (g_union_volume_monitor_init), (_g_mount_get_for_mount_path):
-       * gunixmount.c: (_g_unix_mount_new), (g_unix_mount_get_uuid),
-       (g_unix_mount_can_eject), (eject_unmount_cb),
-       (eject_unmount_read_error), (eject_unmount_do),
-       (g_unix_mount_unmount), (g_unix_mount_eject),
-       (g_unix_mount_eject_finish), (g_unix_mount_mount_iface_init):
-       * gunixmounts.c: (g_unix_mount_guess_can_eject),
-       (g_unix_mount_point_guess_can_eject):
-       * gunixmounts.h:
-       * gunixvolume.c: (_g_unix_volume_new), (g_unix_volume_get_uuid),
-       (g_unix_volume_can_eject), (g_unix_volume_get_drive),
-       (eject_mount_cb), (eject_mount_read_error), (eject_mount_do),
-       (g_unix_volume_mount), (g_unix_volume_eject),
-       (g_unix_volume_eject_finish), (g_unix_volume_volume_iface_init):
-       * gunixvolumemonitor.c: (get_volume_for_uuid),
-       (get_mount_for_uuid), (g_unix_volume_monitor_class_init),
-       (update_mounts):
-       * gvolume.c: (g_volume_get_uuid), (g_volume_can_eject),
-       (g_volume_eject), (g_volume_eject_finish):
-       * gvolume.h:
-       * gvolumemonitor.c: (g_volume_monitor_get_volume_for_uuid),
-       (g_volume_monitor_get_mount_for_uuid):
-       * gvolumemonitor.h:
-
-       Provide eject() on both GMount and GVolume and utility functions
-       to guess whether a GUnixMountPoint or GUnixMountEntry should be
-       ejected. Introduce the concept of UUID's and wire it into GVolume
-       and GMount and provide API on GVolumeMonitor to find such
-       instances. Also handle the case where an external
-       GNativeVolumeMonitor fails to initialize. Lock around the
-       _g_get_mount_for_mount_path() function such that volume monitor
-       implementations won't have to do locking themselves.
-
-2007-12-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * gdesktopappinfo.c:
-       * gunixmounts.c:
-       * gfileinfo.c:
-       * gvolumemonitor.c:
-       * gfile.h:
-       * gioscheduler.c:
-       * gvolume.h: Documentation updates
-
-2007-12-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * gunixmounts.c:
-       * gfile.h: Doc updates
-
-2007-12-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * gcontenttype.c:
-       * gdesktopappinfo.c: Use hash table iterators.
-
-2007-12-14  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * gfileattribute.[ch]:
-       * gfileattribute-priv.h:
-       Move GFileAttributeValue to a private header, as
-       its sort of ugly.
-       
-       * gfile.[ch]:
-       Make set_attribute take a type + a pointer instead
-       of a GFileAttributeValue.
-       
-       * gfileinfo.[ch]:
-       Fix up for above changes.
-       Add g_file_info_get_attribute_data to get
-       all info in one call, g_file_info_get_attribute_status
-       to get the status and g_file_info_get_attribute_as_string.
-       
-       * gio.symbols:
-       * glocalfile.c:
-       * glocalfileinfo.[ch]:
-       Update for changes
-       
-       * gunixmounts.c:
-       Make _guess_type static.
-
-2007-12-14  Yevgen Muntyan  <muntyan@tamu.edu>
-
-       * Makefile.am:
-       * inotify/Makefile.am: Fixed build when srcdir != builddir,
-       made mkenums and friends use temporary files to avoid leaving
-       empty generated files on failure (#503470).
-
-2007-12-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gmountoperation.h:
-       Fix AKS -> ASK typo
-
-2007-12-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.h:
-       * gfile.[ch]:
-       * gfileattribute.[ch]:
-       * gio.symbols:
-       * glocalfile.c:
-       * glocalfileoutputstream.c:
-       * gmountoperation.[ch]:
-       * goutputstream.[ch]:
-       Clean up all flags enums to not have _FLAGS in them
-       Make the names of some of the enums better.
-
-       * glocalfileinfo.c:
-       Fix warning
-       
-2007-12-14  Michael Natterer  <mitch@imendio.com>
-
-       * gio.symbols: fix g_io_scheduler symbol names.
-
-2007-12-14  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * fam/Makefile.am:
-       * gappinfo.h:
-       * gasyncresult.h:
-       * gbufferedinputstream.h:
-       * gbufferedoutputstream.h:
-       * gcancellable.h:
-       * gcontenttype.h:
-       * gdatainputstream.h:
-       * gdataoutputstream.h:
-       * gdesktopappinfo.h:
-       * gdirectorymonitor.h:
-       * gdrive.h:
-       * gfile.h:
-       * gfileattribute.h:
-       * gfileenumerator.h:
-       * gfileicon.h:
-       * gfileinfo.h:
-       * gfileinputstream.h:
-       * gfilemonitor.h:
-       * gfilenamecompleter.h:
-       * gfileoutputstream.h:
-       * gfilterinputstream.h:
-       * gfilteroutputstream.h:
-       * gicon.h:
-       * ginputstream.h:
-       * gio.h:
-       * gioerror.h:
-       * giomodule.h:
-       * gioscheduler.h:
-       * gloadableicon.h:
-       * gmemoryinputstream.h:
-       * gmemoryoutputstream.h:
-       * gmount.h:
-       * gmountoperation.h:
-       * goutputstream.h:
-       * gseekable.h:
-       * gsimpleasyncresult.h:
-       * gthemedicon.h:
-       * gunixinputstream.h:
-       * gunixmounts.h:
-       * gunixoutputstream.h:
-       * gvfs.h:
-       * gvolume.h:
-       * gvolumemonitor.h:
-       * inotify/Makefile.am:
-       Only allow including <gio/gio.h> from apps
-
-2007-12-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gioscheduler.[ch]:
-       * gsimpleasyncresult.c:
-       Rename gioscheduler calls so they all use the g_io_schedule_ prefix.
-       Split out the send_to_mainloop call into two versions instead
-       of having the block argument.
-
-2007-12-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gcancellable.[ch]:
-       * gio.symbols:
-       * gbufferedinputstream.c:
-       * gfileenumerator.c:
-       * gfileinputstream.c:
-       * gfileoutputstream.c:
-       * ginputstream.c:
-       * gioscheduler.c:
-       * goutputstream.c:
-       g_push/pop_current_cancellable ->
-       g_cancellable_push/pop_current
-
-2007-12-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       * gio.symbols:
-       Rename g_mount_for_location to g_file_mount_enclosing_volume.
-
-2007-12-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gmountoperation.h:
-       G_PASSWORD_FLAGS_ANON_SUPPORTED -> G_PASSWORD_FLAGS_ANONYMOUS_SUPPORTED
-
-2007-12-12  Alexander Larsson  <alexl@redhat.com>
-
-       * gioscheduler.c:
-       Fix race condition when freeing proxy in
-       g_io_job_send_to_mainloop().
-
-2007-12-12  Alexander Larsson  <alexl@redhat.com>
-
-       * gfileattribute.c:
-       * gfileinfo.[ch]:
-       * glocalfile.c:
-       * glocalfileinfo.c:
-       Make attribute namespace separator "::" instead of ":".
-       Use - instead of _ as separator in attribute names.
-
-2007-12-12  Alexander Larsson  <alexl@redhat.com>
-
-       * gbufferedinputstream.h:
-       * gbufferedoutputstream.h:
-       * gdatainputstream.h:
-       * gdataoutputstream.h:
-       * gdirectorymonitor.h:
-       * gfileenumerator.h:
-       * gfileinputstream.h:
-       * gfilemonitor.h:
-       * gfileoutputstream.h:
-       * gfilterinputstream.h:
-       * gfilteroutputstream.h:
-       * ginputstream.h:
-       * glocalfileinputstream.h:
-       * glocalfileoutputstream.h:
-       * gmemoryinputstream.h:
-       * gmemoryoutputstream.h:
-       * gnativevolumemonitor.h:
-       * goutputstream.h:
-       * gunixinputstream.h:
-       * gunixoutputstream.h:
-       * gvfs.h:
-       * gvolumemonitor.h:
-       s/parent/parent_instance/ in GObjects
-
-2007-12-12  Alexander Larsson  <alexl@redhat.com>
-
-       * gdrive.h:
-       * gmount.h:
-       * gvolume.h:
-       No need for padding for interfaces
-       
-2007-12-12  Alexander Larsson  <alexl@redhat.com>
-
-       * gappinfo.[ch]:
-       * gasyncresult.c:
-       * gbufferedinputstream.c:
-       * gbufferedoutputstream.c:
-       * gcancellable.c:
-       * gcontenttype.c:
-       * gdatainputstream.[ch]:
-       * gdesktopappinfo.c:
-       * gdirectorymonitor.c:
-       * gfile.[ch]:
-       * gfileattribute.[ch]:
-       * gfileicon.[ch]:
-       * gfileinfo.h:
-       * gfileinputstream.h:
-       * gfilemonitor.[ch]:
-       * gfileoutputstream.[ch]:
-       * gfilterinputstream.h:
-       * gfilteroutputstream.h:
-       * gicon.h:
-       * gioscheduler.c:
-       * gloadableicon.[ch]:
-       * gmemoryinputstream.c:
-       * gmountoperation.c:
-       * gthemedicon.c:
-       Fix up a bunch of details in the docs.
-
-       * glocalfileinfo.c:
-       CR/LF -> LF fixups
-       
-2007-12-11  David Zeuthen  <davidz@redhat.com>
-
-       Rework how volumes, drives and volume monitoring is
-       done. Previosly the model was
-
-        GDrive <1-1> GVolume
-
-       where a GDrive instance represented a mount point and a GVolume
-       instance represented a mounted file system. This patch changes it
-       the model to
-
-               GDrive <1-N> GVolume <1-1> GMount
-
-       where GMount now serves the purpose of the old GVolume and the new
-       GVolume serves the purpose of the old GDrive. In addition the new
-       GDrive interface is used to represent a collection of GVolume
-       instances (typically partitions) and also contains utility to query
-       the state of the physical drive the GDrive object represents (such
-       as checking for media, polling the drive, ejecting the media etc.).
-
-       Also implement mounting and unmounting in the Unix volume monitor
-       backend. A subquent patch will introduce GDrive support for ejection
-       of media.
-
-       * Makefile.am:
-       * gdrive.c: (g_drive_is_media_check_automatic),
-       (g_drive_is_media_removable), (g_drive_has_media),
-       (g_drive_can_poll_for_media), (g_drive_eject),
-       (g_drive_eject_finish), (g_drive_poll_for_media),
-       (g_drive_poll_for_media_finish):
-       * gdrive.h:
-       * gfile.c: (g_file_find_enclosing_mount):
-       * gfile.h:
-       * gio.symbols:
-       * glocaldirectorymonitor.c:
-       (g_local_directory_monitor_constructor), (mounts_changed):
-       * glocalfile.c: (get_mount_info),
-       (g_local_file_find_enclosing_mount),
-       (g_local_file_file_iface_init):
-       * gnativevolumemonitor.h:
-       * gunionvolumemonitor.c: (get_mounts), (get_volumes),
-       (get_connected_drives), (g_union_volume_monitor_class_init),
-       (child_volume_added), (child_volume_removed),
-       (child_volume_changed), (child_mount_added), (child_mount_removed),
-       (child_mount_pre_unmount), (child_mount_changed),
-       (child_drive_changed), (g_union_volume_monitor_add_monitor),
-       (g_union_volume_monitor_remove_monitor),
-       (_g_mount_get_for_mount_path):
-       * gunixmounts.c: (g_unix_is_mount_path_system_internal),
-       (guess_system_internal), (_g_get_unix_mounts),
-       (_g_get_unix_mount_points), (g_get_unix_mount_at),
-       (g_unix_mount_free), (g_unix_mount_compare),
-       (g_unix_mount_get_mount_path), (g_unix_mount_get_device_path),
-       (g_unix_mount_get_fs_type), (g_unix_mount_is_readonly),
-       (g_unix_mount_is_system_internal), (g_unix_mount_guess_type),
-       (type_to_icon), (g_unix_mount_guess_name),
-       (g_unix_mount_guess_icon), (g_unix_mount_point_guess_name),
-       (g_unix_mount_point_guess_icon), (_canonicalize_filename),
-       (_resolve_symlink), (_resolve_dev_root):
-       * gunixmounts.h:
-       * gunixvolume.c: (g_unix_volume_finalize), (_g_unix_volume_new),
-       (_g_unix_volume_disconnected), (_g_unix_volume_set_mount),
-       (_g_unix_volume_unset_mount), (g_unix_volume_get_icon),
-       (g_unix_volume_get_name), (g_unix_volume_can_mount),
-       (g_unix_volume_get_drive), (g_unix_volume_get_mount),
-       (_g_unix_volume_has_mount_path), (mount_cb), (mount_read_error),
-       (g_unix_volume_mount), (g_unix_volume_mount_finish),
-       (g_unix_volume_volume_iface_init):
-       * gunixvolume.h:
-       * gunixvolumemonitor.c: (g_unix_volume_monitor_finalize),
-       (get_mounts), (get_volumes), (get_connected_drives),
-       (get_mount_for_mount_path), (g_unix_volume_monitor_class_init),
-       (mountpoints_changed), (mounts_changed),
-       (g_unix_volume_monitor_init),
-       (_g_unix_volume_monitor_lookup_volume_for_mount_path),
-       (find_mount_by_mountpath), (update_volumes), (update_mounts):
-       * gunixvolumemonitor.h:
-       * gvolume.c: (g_volume_get_mount), (g_volume_can_mount),
-       (g_volume_mount), (g_volume_mount_finish):
-       * gvolume.h:
-       * gvolumemonitor.c: (g_volume_monitor_class_init),
-       (g_volume_monitor_get_connected_drives),
-       (g_volume_monitor_get_volumes), (g_volume_monitor_get_mounts):
-       * gvolumemonitor.h:
-
-2007-12-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmountoperation.h (GPasswordFlags): Close the gap
-
-2007-12-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.am: Install gdesktopappinfo.h as unix-specific header.
-       * gio.symbols:
-       * gdesktopappinfo.[hc]: Remove _-prefixes
-
-2007-12-10  Tor Lillqvist  <tml@novell.com>
-
-       * glocalfile.c: Add some more G_OS_WIN32 conditionals to silence
-       gcc warnings.
-
-2007-12-10  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c (g_file_set_display_name):
-       Don't hardcode '/' (#502727)
-
-2007-12-09  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc : follow lib naming convention
-       * glocalfileinfo.c(win32_get_file_user_info) : working implementation
-       for user and group name, tested with ../tests/gio-ls
-
-2007-12-09  A. Walton  <awalton@svn.gnome.org>
-
-       * gdesktopappinfo.c:
-       * gdrive.c:
-       * gdrive.h:
-       * gfile.c:
-       * gfile.h:
-       * gfileattribute.c:
-       * gfileenumerator.c:
-       * gioerror.c:
-       * gioscheduler.c:
-       * gioscheduler.h:
-       * gloadableicon.c:
-       * gmemoryinputstream.c:
-       * gmemoryoutputstream.c:
-       * goutputstream.h:
-       * gsimpleasyncresult.c:
-       More documentation cleanup and filling in missing information, bringing
-       GIO to 99% symbol coverage.
-
-2007-12-08  Hans Breuer  <hans@breuer.org>
-
-       [gio compiles and links on win32, not sure how much already works]
-       * glocaldirectorymonitor.c : ifdefed out inotify emulation for win32
-       * glocalfile.c : use HAVE_UNISTD_H; implement file system size info 
-       base on win32 API; prefer g_lstat() over lstat(); instead of 
-       localtime_r() use an all GLib implementation on win32;
-       get_mount_info() still needs a win32 specifc implementation
-       * glocalfileinfo.c : use HAVE_*_H; start of implementation of 
-       win32_get_file_user_info to get owner/group info without uid/gid
-       * glocalfileinputstream.c : include <io.h> on win32
-       * glocalfileoutputstream.c : include <io.h> on win32 and some S_IS*
-       definition, use g_win32_ftruncate() for G_OS_WIN32
-       * gwin32appinfo.c : optionalize a bunch on #ifdef AssocQueryString
-       it is available with mingw/w32api but a mess with the M$ Platform SDKs
-       see: http://mail.gnome.org/archives/gtk-devel-list/2007-December/msg00014.html
-       * makefile.msc : updated
-
-2007-12-07  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileenumerator.c (_g_local_file_enumerator_new):
-       Avoid warning spew if error == NULL
-       
-2007-12-07  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.c:
-       Update docs wrt etags
-
-2007-12-06  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileinfo.h:
-       Include sys/types.h for dev_t (#501919)
-
-2007-12-06  Behdad Esfahbod  <behdad@gnome.org>
-
-       * gio.symbols:
-       * pltcheck.sh:
-       Make abicheck and pltcheck pass.
-
-2007-12-05  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * giomodule-priv.h: Added.
-       * glocaldirectorymonitor.c:
-       * glocalfilemonitor.c:
-       * gunionvolumemonitor.c:
-       * gvfs.c:
-       Actually add the declaration of _g_io_modules_ensure_loaded
-
-2007-12-05  Alexander Larsson  <alexl@redhat.com>
-
-       * gdatainputstream.c:
-       Fix warnings
-       
-       * gio.symbols:
-       * giomodule.[ch]
-       * glocaldirectorymonitor.c:
-       * glocalfilemonitor.c:
-       * gunionvolumemonitor.c:
-       * gvfs.c:
-       Make g_io_modules_ensure_loaded a private function and
-       don't pass in the dirname. This means we can do magic
-       directory finding in the win32 version.
-       Export the actual load-modules-in-directory code so that
-       gvfs can reuse that.
-
-2007-12-05  Alexander Larsson  <alexl@redhat.com>
-
-       * gbufferedinputstream.c:
-       * gbufferedoutputstream.c:
-       * gdrive.[ch]:
-       * gfile.[ch]:
-       * gfileenumerator.[ch]:
-       * gfileinputstream.c:
-       * gfileoutputstream.[ch]:
-       * gfilterinputstream.c:
-       * gfilteroutputstream.c:
-       * ginputstream.[ch]:
-       * glocalfile.c:
-       * glocalfileenumerator.c:
-       * glocalfileinputstream.c:
-       * glocalfileoutputstream.c:
-       * gmemoryinputstream.c:
-       * gmemoryoutputstream.c:
-       * goutputstream.[ch]:
-       * gseekable.[ch]:
-       * gunixdrive.c:
-       * gunixinputstream.c:
-       * gunixoutputstream.c:
-       Rename all struct members named:
-       read, write, close, truncate, or mount
-       to foo_fn, as these are reserved names
-       and could be defined as macros in libc.
-       (#501645)
-
-2007-12-04  Alexander Larsson  <alexl@redhat.com>
-
-       * goutputstream.c:
-       (g_output_stream_close):
-       Only call flush if non-null.
-
-2007-11-30  Dan Winship  <danw@gnome.org>
-
-       * ginputstream.c (g_input_stream_set_pending): Make this take a
-       GError and return a gboolean, and do the "outstanding operation"
-       check (and the "stream is already closed" check) itself.
-       (g_input_stream_clear_pending): Formerly set_pending(FALSE).
-
-       * goutputstream.c (g_output_stream_set_pending)
-       (g_output_stream_clear_pending): Likewise
-
-       * gbufferedinputstream.c: 
-       * gfileinputstream.c: 
-       * gfileoutputstream.c: Update for that
-
-       * gsimpleasyncresult.c (g_simple_async_report_gerror_in_idle):
-       Like g_simple_async_report_error_in_idle, but takes a GError
-       rather than building one.
-
-2007-11-30  Dan Winship  <danw@gnome.org>
-
-       * goutputstream.c: Don't cheat and unset the "pending" flag around
-       inner calls. Instead, call the class method directly rather than
-       the wrapper function that checks "pending"
-
-2007-12-03  Behdad Esfahbod  <behdad@gnome.org>
-
-       * glib/gnulib/Makefile.am: Fix EXTRA_DIST automake warnings. (#501107)
-
-2007-12-03  Hans Breuer  <hans@breuer.org>
-
-       [start of port to win32/msvc]
-       * gcancellable.c : HAVE_UNIST_H and _pipe()
-       * gcontenttype.c : only include <dirent.h> in the UNIX branch
-       * gdatainputstream.c : pointer arithmetic on void* is a gcc extension
-       * gdummyfile.c glocalfileinputstream.c gsimpleasyncresult.c : use 
-       HAVE_UNIST_H
-       * glocalfileoutputstream.c : use HAVE_UNIST_H and s/ssize_t/gssize/
-       * glocalvfs.c : use HAVE_PWD_H
-       * gio.symbols : ifdef unix specific functions with G_OS_UNIX
-       * makefile.msc : new file (maybe later converted to makefile.msc.in)
-       * Makefile.am : added to EXTRA_DIST
-
-2007-12-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfile.c (g_file_copy): Add a cross-reference to g_file_dup().
-       (#499783)
-
-2007-12-03  Alexander Larsson  <alexl@redhat.com>
-
-       * glocalfileinfo.c:
-       Handle OSX style xattrs API (#500506)
-
-2007-12-03  Alexander Larsson  <alexl@redhat.com>
-
-       * gfile.[ch]:
-       * glocalfile.c:
-       Add G_FILE_COPY_NO_FALLBACK_FOR_MOVE flag
-
-2007-12-02  A. Walton  <awalton@svn.gnome.org>
-
-       * gfile.c:
-       * gfileattribute.c:
-       Documentation accuracy fixes.
-
-2007-12-01  Behdad Esfahbod  <behdad@gnome.org>
-
-       * gioenumtypes.c.template: Fix typo.
-
-2007-12-01  Matthias Clasen <mclasen@redhat.com>
-
-       * gioenumtypes.c.template: Make threadsafe get_type() functions.
-
-2007-12-01  Matthias Clasen <mclasen@redhat.com>
-
-       * gdirectorymonitor.c:
-       * gfilemonitor.c: Add properties
-
-       * gbufferedoutputstream.c: Don't mark buffer-size property 
-       as construct-only.
-
-2007-12-01  Matthias Clasen <mclasen@redhat.com>
-
-       * gbufferedoutputstream.c: Add auto-grow property.
-
-2007-11-30  Matthias Clasen <mclasen@redhat.com>
-
-       * *.c: Unify the capitalization of section headings.
-
-2007-11-30  Matthias Clasen <mclasen@redhat.com>
-
-       * gmountoperation.c: Add properties
-       
-       * gdatainputstream.c: Turn byte-order and newline-type into
-       properties.
-
-2007-11-30  Matthias Clasen <mclasen@redhat.com>
-
-       * gioenumtypes.[hc].template: Templates for enum registration
-
-       * Makefile.am: Generate gioenumtypes.[hc]
-
-       * gio.h: Include gioenumtypes.h
-       * gappinfo.h:
-       * gfile.h: Add some explicit nicks.
-
-       * gio.symbols: Add new symbols
-
-       * pltcheck.sh: Adjust
-
-2007-11-30  Matthias Clasen <mclasen@redhat.com>
-
-       * *.c: Explain etags and link to the explanation
-
-2007-11-29  Matthias Clasen <mclasen@redhat.com>
-
-       * *.c: Explain I/O priority.
-
-       * *.c: More coding style fixes.
-
-2007-11-29  Matthias Clasen <mclasen@redhat.com>
-
-       * gasyncresult.c: Add another paragraph to the intro,
-       adjust coding style of example.
-
-2007-11-29  A. Walton <awalton@svn.gnome.org>
-
-       * gappinfo.c:
-         Fixes unknown meaning in GAppLaunchContext docs.
-       * gfile.c:
-         Clarify asynchronous ops.
-       * gfileattribute.c:
-         Fix entity tag docs.
-       * gicon.c:
-       * gthemedicon.c:
-         Provides missing gtk-doc section, fixes API docs slighly.
-       * gsimpleasyncresult.c:
-         Fill in missing info in docs.
-       * gunixinputstream.c:
-       * gunixoutputstream.c:
-         Be more expressive in short description.
-       * gunixvolume.c:
-         Remove gtk-doc stubs for non-public API.
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * *.c: Coding style fixups
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * inotify/inotify-helper.c: Don't export the lock from libgio.
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.am:
-       * abicheck.sh: Fix copy-and-paste leftovers 
-
-2007-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gfile.h: Add G_FILE_COPY_FLAGS_NONE for consistency.
-
-2007-11-28  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * gdriveprivate.h:
-       Removed unnecessary file
-       
-       * gdesktopappinfo.[ch]:
-       * gdummyfile.[ch]:
-       * gfile.c:
-       * glocaldirectorymonitor.[ch]:
-       * glocalfile.[ch]:
-       * glocalfileenumerator.[ch]:
-       * glocalfileinputstream.[ch]:
-       * glocalfilemonitor.[ch]:
-       * glocalfileoutputstream.[ch]:
-       * glocalvfs.[ch]:
-       * gnativevolumemonitor.c:
-       * gpollfilemonitor.[ch]:
-       * gunionvolumemonitor.[ch]:
-       * gunixdrive.[ch]:
-       * gunixvolume.[ch]:
-       * gunixvolumemonitor.[ch]:
-       * gvfs.c:
-       * gvolumeprivate.h:
-       * inotify/ginotifydirectorymonitor.[ch]:
-       * inotify/ginotifyfilemonitor.[ch]:
-       * inotify/inotify-helper.c:
-       Append _ to all internal functions
-       
-       * gio.symbols:
-       Add missing symbols
-       Export symbols needed for modules
-
-2007-11-28  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * abicheck.sh: Added.
-       * makegioalias.pl: Added.
-       * pltcheck.sh: Added.
-       * gio.symbols: Added.
-       * *.c:
-       * inotify/*.c
-       Initial work on adding symbol handling.
-
-       * gvfs.h:
-       Correct ifdef guard name
-
-       * fam/Makefile.am:
-       * inotify/Makefile.am:
-       * xdgmime/Makefile.am:
-       Include toplevel Makefile.decl
-
-2007-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gcontenttype.c: Move doc comments to the unix section.
-
-       * *.[hc]: More trivial doc corrections.
-
-2007-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gpollfilemonitor.c:
-       * gunixmounts.c:
-       * gvfs.c:
-       * gfile.c:
-       * gdesktopappinfo.c:
-       * gwin32appinfo.c:
-       * gvolume.c:
-       * glocalvfs.c:
-       * gvolumemonitor.c:
-       * gdatainputstream.c:
-       * gdatainputstream.h:
-       * gdataoutputstream.c:
-       * gdataoutputstream.h:
-       * gfileinfo.h: Doc cleanups
-
-2007-11-28  Andre Klapper  <a9016009@gmx.de>
-
-       * gdesktopappinfo.c: Fix a typo.
-
-2007-11-27  Andre Klapper  <a9016009@gmx.de>
-
-       * glocalfileoutputstream.c: Fix a typo.
-
-2007-11-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gio.h:
-       Don't include removed headers
-
-2007-11-27  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * gsocketinputstream.[ch]: Removed.
-       * gsocketoutputstream.[ch]: Removed.
-       * gunixinputstream.[ch]: Added.
-       * gunixoutputstream.[ch]: Added.
-       Renamed GSocket*Stream to GUnix*Stream and made
-       it unix-only, since its not really only for sockets
-       and it only works on unix (but is highly useful there).
-
-2007-11-27  Andrew Walton  <awalton@svn.gnome.org>
-       * gappinfo.c:
-       * gappinfo.h:
-       * gasynchelper.c:
-       * gasyncresult.c:
-       * gasyncresult.h:
-       * gbufferedinputstream.c:
-       * gbufferedinputstream.h:
-       * gbufferedoutputstream.c:
-       * gbufferedoutputstream.h:
-       * gcancellable.c: 
-       * gcancellable.h:
-       * gcontenttype.c:
-       * gdatainputstream.c:
-       * gdatainputstream.h:
-       * gdataoutputstream.c:
-       * gdataoutputstream.h:
-       * gdirectorymonitor.c:
-       * gdirectorymonitor.h:
-       * gdrive.c: 
-       * gdrive.h:
-       * gfile.c:
-       * gfile.h:
-       * gfileattribute.c:
-       * gfileattribute.h:
-       * gfileenumerator.c:
-       * gfileenumerator.h:
-       * gfileicon.c:
-       * gfileicon.h:
-       * gfileinfo.c:
-       * gfileinfo.h:
-       * gfileinputstream.c:
-       * gfileinputstream.h:
-       * gfilemonitor.c:
-       * gfilemonitor.h:
-       * gfilenamecompleter.c:
-       * gfilenamecompleter.h:
-       * gfileoutputstream.c:
-       * gfileoutputstream.h:
-       * gfilterinputstream.c:
-       * gfilterinputstream.h:
-       * gfilteroutputstream.c:
-       * gfilteroutputstream.h:
-       * gicon.c:
-       * gicon.h:
-       * ginputstream.c:
-       * ginputstream.h:
-       * gioerror.c:
-       * gioerror.h:
-       * giomodule.c:
-       * giomodule.h:
-       * gioscheduler.c:
-       * gioscheduler.h:
-       * gloadableicon.c:
-       * gloadableicon.h:
-       * glocalfileoutputstream.c:
-       * gmemoryinputstream.c:
-       * gmemoryinputstream.h:
-       * gmemoryoutputstream.c:
-       * gmemoryoutputstream.h:
-       * gmountoperation.c: 
-       * gmountoperation.h:
-       * goutputstream.c:
-       * goutputstream.h:
-       * gpollfilemonitor.c:
-       * gseekable.c:
-       * gseekable.h:
-       * gsimpleasyncresult.c:
-       * gsimpleasyncresult.h:
-       * gsocketinputstream.c:
-       * gsocketinputstream.h:
-       * gsocketoutputstream.c:
-       * gsocketoutputstream.h:
-       * gthemedicon.c:
-       * gthemedicon.h:
-       * gunixdrive.c:
-       * gunixmounts.c: 
-       * gunixmounts.h:
-       * gunixvolume.c:
-       * gunixvolumemonitor.c:
-       * gurifuncs.c:
-       * gurifuncs.h:
-       * gvfs.c:
-       * gvfs.h:
-       * gvolume.c:
-       * gvolume.h:
-       * gvolumemonitor.c: 
-       * gvolumemonitor.h:
-       Bumps documentation to 93% symbol coverage, touching most 
-       of the public files. Fixes broken function documentation prototypes. 
-       Fixes GCancellable inaccuracies. Removes unnecessary incomplete 
-       gtk-doc headers in private files.
-
-2007-11-27  Jürg Billeter  <j@bitron.ch>
-
-       * gbufferedinputstream.c: (g_buffered_input_stream_peek_buffer),
-       (g_buffered_input_stream_read_byte):
-       * gbufferedinputstream.h:
-       New functions for efficient access to buffer and simple single byte
-       reads.
-
-       * gdatainputstream.c: (scan_for_newline), (scan_for_chars),
-       (g_data_input_stream_read_until):
-       * gdatainputstream.h:
-       Use peek_buffer to avoid memcpy in scan_for_newline, implement
-       read_until with multiple stop chars.
-
-2007-11-27  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * fam/Makefile.am:
-       * inotify/Makefile.am:
-       Use the user-specified giomoduledir
-
-2007-11-27  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am
-       * gio.h:
-       Add catch-all gio.h header
-       Don't install gdummyfile.h
-
-2007-11-26  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am (gioinclude_HEADERS):
-       Remove trailing whitespace
-       
-2007-11-26  Alexander Larsson  <alexl@redhat.com>
-
-       Merge gio-standalone into glib
-
-2007-11-25  Christian Kellner  <gicmo@gnome.org>
-
-       * gio/goutputstream.c:
-       Fix small mistake in the docs.
-
-2007-11-21  Christian Persch  <chpe@gnome.org>
-
-       * gio/glocalfile.c: (g_local_file_trash):
-       Convert filenames to UTF-8 for GError.
-       Use g_mkdir_with_parent to create the Trash dir, and use mode 0700
-       as per xdg base dir spec.
-
-2007-11-21  Christian Persch  <chpe@gnome.org>
-
-       * gio/gdesktopappinfo.c:
-       Use that g_key_file_to_data cannot fail.
-       Some misc cleanups.
-       Use stock defines for the key file group and key names.
-       Use bitfields.
-
-2007-11-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.c:
-       (copy_stream_with_progress):
-       Make sure we do a final progress callback with
-       the full total size.
-
-2007-11-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       Export g_file_copy_attributes
-       Remove padding as its not needed for interfaces
-
-2007-11-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.c:
-       * gio/gioerror.h:
-       * gio/glocalfile.c:
-       Add G_IO_ERROR_WOULD_MERGE for
-       copy/move dir on dir with overwrite.
-
-2007-11-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       * gio/glocalfileinfo.c:
-       Add COPY_NAME (this is an optional
-       non-modified utf8 version of the name) that
-       can roundtrip.
-
-2007-11-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileenumerator.c:
-       Report errors as GIOError, not GFileError
-
-2007-11-16  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileoutputstream.c:
-       * gio/gwin32appinfo.c:
-       Fix typos in strings.
-       Patch from Luca Ferretti <elle.uca@libero.it>
-
-2007-11-15  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.ac:
-       Post release version bump
-
-=== gio-standalone 0.1.2 ===
-
-2007-11-15  Alexander Larsson  <alexl@redhat.com>
-
-       * docs/reference/gio/Makefile.am:
-       Fix up distcheck by removing weird
-       non-needed stuff
-
-       * NEWS:
-       Update for release
-
-2007-11-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdesktopappinfo.c:
-       * gio/glocaldirectorymonitor.c:
-       * gio/glocalfile.c:
-       * gio/glocalfileinfo.c:
-       * gio/inotify/inotify-sub.c:
-       * programs/gio-cat.c:
-       * programs/gio-copy.c:
-       * programs/gio-info.c:
-       * programs/gio-ls.c:
-       * programs/gio-monitor-dir.c:
-       * programs/gio-monitor-file.c:
-       * programs/gio-mount.c:
-       * programs/gio-move.c:
-       * programs/gio-rm.c:
-       * programs/gio-save.c:
-       * programs/gio-trash.c:
-       Leak fixes from Kjartan Maraas
-
-2007-11-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/fam/fam-helper.c:
-       * gio/gdrive.[ch]:
-       * gio/glocalfileinfo.c:
-       * gio/gunixdrive.c:
-       * gio/gvfs.c:
-       * gio/gvolume.[ch]:
-       * gio/inotify/inotify-diag.c:
-       * gio/inotify/inotify-kernel.c:
-       Various code cleanups from Kjartan Maraas
-
-2007-11-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gioscheduler.c:
-       (init_scheduler):
-       Set up threadpool so that we cache 2 unused
-       idle threads for at 15 secs. This means we
-       will reuse thread-local data (like dbus connections)
-       for them.
-
-2007-11-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/fam/fam-helper.c:
-       * gio/fam/gfamdirectorymonitor.c:
-       * gio/fam/gfamfilemonitor.c:
-       * gio/gappinfo.c:
-       * gio/gcontenttype.c:
-       * gio/gdatainputstream.c:
-       * gio/gdataoutputstream.c:
-       * gio/gdummyfile.c:
-       * gio/gfile.c:
-       * gio/gfile.h:
-       * gio/gfileattribute.h:
-       * gio/gfileenumerator.c:
-       * gio/gfileinfo.c:
-       * gio/ginputstream.c:
-       * gio/gioerror.h:
-       * gio/glocalfile.c:
-       * gio/glocalfileinfo.c:
-       * gio/goutputstream.c:
-       * gio/gpollfilemonitor.c:
-       * gio/gsimpleasyncresult.c:
-       * gio/gunixmounts.c:
-       * gio/gunixmounts.h:
-       * gio/inotify/ginotifydirectorymonitor.c:
-       * gio/inotify/ginotifyfilemonitor.c:
-       * gio/inotify/inotify-diag.c:
-       * gio/inotify/inotify-kernel.c:
-       * gio/inotify/inotify-path.c:
-       * gio/test-gio.c:
-       * gio/test-streams.c:
-       * programs/gio-info.c:
-       * programs/gio-monitor-dir.c:
-       * programs/gio-monitor-file.c:
-       Various code cleanups from Kjartan Maraas
-
-2007-11-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdummyfile.c:
-       Handle the uri-scheme calls for dummy files
-
-2007-11-13  Marko Anastasov  <marko@marko.anastasov.name>
-
-       * gio/gio/gfileinfo.[ch]: Use a different parameter name instead of
-       'namespace' for in g_file_attribute_matcher_enumerate_namespace()
-       to avoid clash with the C++ keyword.
-
-2007-11-13  Marko Anastasov  <marko@marko.anastasov.name>
-
-       * gio/glocalfileinfo.c: Build fix, added missing semicolon
-       to an ifdef'ed call to getpwuid() in lookup_uid_data().
-
-2007-11-11  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/glocaldirectorymonitor.c:
-       * gio/glocalfilemonitor.c:
-       * gio/gunionvolumemonitor.c:
-       Don't use g_once_init_*() for initializations that could fail and
-       could leave the initialization variable set to 0 but use GOnce.
-       This prevents a deadlock on the second call when trying to create
-       a monitor and no monitor type is available. Thanks to Sven Herzberg
-       for reporting.
-
-2007-11-11  Sven Herzberg  <sven@imendio.com>
-
-       * gio/glocalfile.c: guard the #include <sys/statfs.h> by the correct
-       #ifdef (make it work on MacOS X again)
-
-2007-11-09  Andrew Walton  <awalton@svn.gnome.org>
-       * Changelog:
-       Fixes Changelog for last two commits (sorry guys).
-
-2007-11-07  Andrew Walton  <awalton@svn.gnome.org>
-       * gio/gappinfo.c:
-       * gio/gbufferedinputstream.c:
-       * gio/gdatainputstream.c:
-       * gio/gfile.c:
-       * gio/gfileoutputstream.c:
-       * gio/gfilterinputstream.c:
-       * gio/glocalfileinputstream.c:
-       * gio/gurifuncs.c:
-       * gio/gvfs.c:
-       More consistency fixes in g*stream.c files. 
-       Significant clean of gfile's documentation, filling in of 
-       asynchronous operations documentation.
-
-2007-11-07  Andrew Walton  <awalton@svn.gnome.org>
-       * gio/gappinfo.c:
-       * gio/gasyncresult.c:
-       * gio/gbufferedinputstream.c:
-       * gio/gbufferedoutputstream.c:
-       * gio/gcancellable.c:
-       * gio/gcontenttype.c:
-       * gio/gdatainputstream.c:
-       * gio/gdataoutputstream.c:
-       * gio/gdesktopappinfo.c:
-       * gio/gdrive.c:
-       * gio/gfile.c:
-       * gio/gfileattribute.c:
-       * gio/gio/gfileenumerator.c:
-       * gio/gfileinfo.c:
-       * gio/gfileinputstream.c:
-       * gio/gfilemonitor.c:
-       * gio/gfileoutputstream.c:
-       * gio/ginputstream.c:
-       * gio/giomodule.c:
-       * gio/gioscheduler.c:
-       * gio/gloadableicon.c:
-       * gio/glocalfileoutputstream.c:
-       * gio/gmemoryoutputstream.c:
-       * gio/gmountoperation.c:
-       * gio/goutputstream.c:
-       * gio/gseekable.c:
-       * gio/gsimpleasyncresult.c:
-       * gio/gunionvolumemonitor.c:
-       * gio/gunixmounts.c:
-       * gio/gunixvolume.c:
-       * gio/gurifuncs.c:
-       * gio/gvfs.c:
-       * gio/gvolume.c:
-       * gio/gvolumemonitor.c:
-       Updated documentation stubs, working towards consistency and 
-       completeness.
-
-2007-11-07  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gmemoryoutputstream.c:
-       * gio/gmemoryoutputstream.h:
-       Change g_memory_output_stream_set_free_on_close() to
-       g_memory_output_stream_set_free_data() as this makes more sense and
-       is more consistent with GMemoryInputStream.
-
-2007-11-07  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.c:
-       Fix some docs
-       
-       * gio/glocalvfs.c:
-       * gio/gvfs.[ch]:
-       Change how we find the default vfs so that
-       we can handle a gvfs failing to init
-
-2007-11-07  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gbufferedoutputstream.c:
-       * gio/gdatainputstream.c:
-       * gio/gdataoutputstream.c:
-       * gio/gfileinputstream.c:
-       * gio/gfileoutputstream.c:
-       * gio/gfilterinputstream.c:
-       * gio/gfilteroutputstream.c:
-       * gio/ginputstream.c:
-       * gio/gmemoryinputstream.c:
-       * gio/gmemoryoutputstream.c:
-       * gio/goutputstream.c:
-       * gio/gsimpleasyncresult.c:
-       * gio/gsocketinputstream.c:
-       * gio/gsocketoutputstream.c:
-       Add guards to the remaining public functions, add a TODO for
-       an unimplemented function and remove some useless guards.
-
-2007-11-07  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.ac:
-       Autoconf checks for the various types of
-       getpwuid_r and getgrgid_r
-       
-       * gio/glocalfileinfo.c:
-       Use the autoconf checks from above
-
-2007-11-07  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfile.c:
-       (g_local_file_query_filesystem_info):
-       Some fixes for the statvfs case
-       
-2007-11-07  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfile.c:
-       (g_local_file_query_filesystem_info):
-       Pick the "best" of statfs / statvfs for the system
-       if both are availible.
-
-2007-11-07  Alexander Larsson  <alexl@redhat.com>
-
-       Solaris fixes from Halton.Huo@Sun.COM:
-       
-       * gio/gdrive.c:
-       * gio/gfile.c:
-       * gio/gvolume.c:
-       Don't return void
-       
-       * gio/glocalfileinfo.c:
-       Fix for solaris definition of getpwuid_r
-       
-       * gio/test-streams.c:
-       Use G_GNUC_PRETTY_FUNCTION
-
-2007-11-07  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdesktopappinfo.c:
-       (update_default_list):
-       Remove double semicolon.
-       Patch from Jens Granseuer
-
-2007-11-06  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * docs/reference/gio/gio-sections.txt:
-       * gio/gbufferedinputstream.c:
-       * gio/gbufferedinputstream.h:
-       * gio/gdatainputstream.c:
-       * gio/gfileenumerator.c:
-       * gio/gioscheduler.c:
-       * gio/gunionvolumemonitor.c:
-       * gio/gvfs.c:
-       * programs/gio-save.c:
-       Fix typo: availible -> available. Unfortuntely this breaks API
-       and ABI as g_buffered_input_stream_get_available() was renamed.
-       
-       * gio/gunixmounts.c:
-       * gio/gbufferedinputstream.c:
-       Add guards for public functions.
-
-2007-11-06  Ross Burton  <ross@openedhand.com>
-
-       * docs/reference/gio/Makefile.am:
-       Fix invalid += usage which automake 1.10 doesn't like.
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.c:
-       (g_app_launch_context_class_init):
-       Fix warning
-
-       Patch from Ross Burton 
-       
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.ac:
-       Post release version bump
-
-=== gio-standalone 0.1.1 ===
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.ac:
-       Bump version to 0.1.1
-       
-       * gio/gsimpleasyncresult.c:
-       (g_simple_async_result_set_from_error):
-       Remove bogus g_return_if_fail
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * configure.ac:
-       The name is gio-standalone
-       
-       * gio/Makefile.am:
-       Add top src/builddir to includedir
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * docs/reference/gio/gio-sections.txt:
-       * gio/gappinfo.c:
-       * gio/gbufferedinputstream.c:
-       * gio/gbufferedoutputstream.c:
-       * gio/gcancellable.c:
-       * gio/gdatainputstream.h:
-       * gio/gdataoutputstream.c:
-       * gio/gdataoutputstream.h:
-       * gio/gdirectorymonitor.c:
-       * gio/gfile.c:
-       * gio/gfileattribute.c:
-       * gio/gfileattribute.h:
-       * gio/gfileenumerator.c:
-       * gio/gfileenumerator.h:
-       * gio/gfileinfo.c:
-       * gio/gfileinfo.h:
-       * gio/gfileinputstream.h:
-       * gio/gfilemonitor.c:
-       * gio/gfileoutputstream.h:
-       * gio/glocalfilemonitor.h:
-       * gio/glocalfileoutputstream.h:
-       * gio/gmemoryinputstream.c:
-       * gio/gmemoryoutputstream.c:
-       * gio/gmountoperation.c:
-       * gio/goutputstream.c:
-       * gio/goutputstream.h:
-       * gio/gseekable.h:
-       * gio/gsimpleasyncresult.c:
-       * gio/gunixmounts.c:
-       * gio/gunixmounts.h:
-       * gio/gurifuncs.h:
-       * gio/inotify/inotify-helper.c:
-       Fix gtk-doc warnings
-
-       Patch from Ross Burton 
-       
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfilenamecompleter.c:
-       (g_filename_completer_get_completions):
-       fix warning
-       
-       * gio/gunixvolume.c:
-       Remove unused function
-
-       Patches from Ross Burton 
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdrive.h:
-       * gio/gseekable.h:
-       * gio/gvolume.h:
-       Padding not needed for interfaces
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfilemonitor.c:
-       Remove debug spew
-
-       * gio/Makefile.am:
-       Make giotypes.h an internal file
-       
-       * gio/gappinfo.h:
-       * gio/gbufferedinputstream.h:
-       * gio/gbufferedoutputstream.h:
-       * gio/gcancellable.h:
-       * gio/gdatainputstream.h:
-       * gio/gdataoutputstream.h:
-       * gio/gdirectorymonitor.c:
-       * gio/gdirectorymonitor.h:
-       * gio/gdrive.c:
-       * gio/gdrive.h:
-       * gio/gfile.c:
-       * gio/gfile.h:
-       * gio/gfileattribute.h:
-       * gio/gfileenumerator.h:
-       * gio/gfileicon.c:
-       * gio/gfileicon.h:
-       * gio/gfileinfo.c:
-       * gio/gfileinfo.h:
-       * gio/gfilemonitor.c:
-       * gio/gfilemonitor.h:
-       * gio/gfilenamecompleter.c:
-       * gio/gfilenamecompleter.h:
-       * gio/gfilterinputstream.h:
-       * gio/gfilteroutputstream.h:
-       * gio/ginputstream.h:
-       * gio/gmemoryinputstream.h:
-       * gio/gmemoryoutputstream.h:
-       * gio/gmountoperation.c:
-       * gio/gmountoperation.h:
-       * gio/gnativevolumemonitor.c:
-       * gio/goutputstream.h:
-       * gio/gseekable.c:
-       * gio/gseekable.h:
-       * gio/gsimpleasyncresult.c:
-       * gio/gsimpleasyncresult.h:
-       * gio/gsocketinputstream.h:
-       * gio/gsocketoutputstream.h:
-       * gio/gthemedicon.c:
-       * gio/gthemedicon.h:
-       * gio/gvfs.h:
-       * gio/gvolume.c:
-       * gio/gvolume.h:
-       * gio/gvolumemonitor.c:
-       * gio/gvolumemonitor.h:
-       Add padding in classes where it seems useful
-       Don't include giotypes.h from public headers
-       Move in Class definitions into c file where possible
-       
-       * gio/glocalfile.c:
-       Fix warnings
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * docs/reference/gio/gio-docs.xml:
-       Better structure for API docs
-
-2007-11-06  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfileicon.c:
-       * gio/gloadableicon.c:
-       * gio/gsimpleasyncresult.c:
-       * gio/gthemedicon.c:
-       Add some more guards to public functions. Only files missing are now
-       g*stream*.c.
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * docs/reference/gio/gio-docs.xml:
-       Remove old files, add missing ones
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * docs/reference/gio/gio-sections.txt:
-       Restructure
-       Add missing stuff
-       Hide implementation classes
-       
-       * gio/gdriveprivate.h:
-       * gio/gvolumeprivate.h:
-       Remove non-existing function declarations
-
-2007-11-06  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gappinfo.c:
-       Fix compilation warnings and add guards to the new functions.
-       
-       * gio/gasyncresult.c:
-       * gio/gdummyfile.c:
-       Add guards to the public functions.
-       
-       * gio/gdummyfile.c:
-       Implement get_path().
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfilenamecompleter.c:
-       Make g_filename_completer_get_completions
-       return char ** instead of GList for
-       typesafety.
-       
-       * docs/reference/gio/gio-docs.xml:
-       * docs/reference/gio/gio-sections.txt:
-       * gio/gappinfo.c:
-       * gio/gasyncresult.c:
-       * gio/gbufferedinputstream.c:
-       * gio/gbufferedoutputstream.c:
-       * gio/gcancellable.c:
-       * gio/gcontenttype.c:
-       * gio/gdatainputstream.c:
-       * gio/gdataoutputstream.c:
-       * gio/gdesktopappinfo.c:
-       * gio/gdirectorymonitor.c:
-       * gio/gdrive.c:
-       * gio/gdummyfile.c:
-       * gio/gfile.c:
-       * gio/gfileattribute.c:
-       * gio/gfileenumerator.c:
-       * gio/gfileicon.c:
-       * gio/gfileinfo.c:
-       * gio/gfileinputstream.c:
-       * gio/gfilemonitor.c:
-       * gio/gfilenamecompleter.c:
-       * gio/gfilenamecompleter.h:
-       * gio/gfileoutputstream.c:
-       * gio/gfilterinputstream.c:
-       * gio/gicon.c:
-       * gio/ginputstream.c:
-       * gio/giomodule.c:
-       * gio/gioscheduler.c:
-       * gio/gloadableicon.c:
-       * gio/glocaldirectorymonitor.c:
-       * gio/glocalfile.c:
-       * gio/glocalfileinputstream.c:
-       * gio/glocalfilemonitor.c:
-       * gio/glocalfileoutputstream.c:
-       * gio/glocalvfs.c:
-       * gio/gmemoryinputstream.c:
-       * gio/gmemoryoutputstream.c:
-       * gio/gmountoperation.c:
-       * gio/goutputstream.c:
-       * gio/gpollfilemonitor.c:
-       * gio/gseekable.c:
-       * gio/gsimpleasyncresult.c:
-       * gio/gsocketinputstream.c:
-       * gio/gsocketoutputstream.c:
-       * gio/gthemedicon.c:
-       * gio/gunionvolumemonitor.c:
-       * gio/gunixdrive.c:
-       * gio/gunixmounts.c:
-       * gio/gunixvolume.c:
-       * gio/gunixvolumemonitor.c:
-       * gio/gurifuncs.c:
-       * gio/gvfs.c:
-       * gio/gvolume.c:
-       * gio/gvolumemonitor.c:
-       * gio/gwin32appinfo.c:
-       Add (mostly stub) doc strings to public functions.
-       Patch from Andrew Walton (awalton@gmail.com)
-
-2007-11-06  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.[ch]:
-       Added GAppLaunchContext object and pass that to launch.
-       This allows simple implementation of both
-       launch-on-screen and startup notification via a gtk+
-       subclass of GAppLaunchContext
-       
-       * gio/gdesktopappinfo.c:
-       Implement GAppLaunchContext API
-       
-       * gio/gwin32appinfo.c:
-       Update to new APIs
-
-2007-11-05  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gmountoperation.c:
-       Add some guards to GMountOperation's public functions.
-
-2007-11-05  Sebastian Dröge  <slomo@circular-chaos.org>
-
-
-       * gio/gappinfo.c:
-       * gio/gcancellable.c:
-       * gio/gdirectorymonitor.c:
-       * gio/gdrive.c:
-       * gio/gfileenumerator.c:
-       * gio/gfilemonitor.c:,
-       * gio/gfilenamecompleter.c:
-       * gio/gicon.c:
-       * gio/giomodule.c:
-       * gio/gioscheduler.c:
-       * gio/gseekable.c:
-       * gio/gurifuncs.c:
-       * gio/gvolume.c:
-       * gio/gvolumemonitor.c:
-       Add even more guards to various public functions.
-
-2007-11-05  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gappinfo.c:
-       Add guards to the public functions of GAppInfo.
-
-2007-11-05  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gcontenttype.c:
-       Add some more guards for public functions.
-
-2007-11-05  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/fam/fam-module.c:
-       * gio/fam/gfamdirectorymonitor.c:
-       * gio/fam/gfamdirectorymonitor.h:
-       * gio/fam/gfamfilemonitor.c:
-       * gio/fam/gfamfilemonitor.h:
-       * gio/inotify/ginotifydirectorymonitor.c:
-       * gio/inotify/ginotifydirectorymonitor.h:
-       * gio/inotify/ginotifyfilemonitor.c:
-       * gio/inotify/ginotifyfilemonitor.h:
-       Add proper copyright information and remove an unused variable
-       in the GInotifyFileMonitor constructor.
-
-       * gio/gcancellable.c:
-       Add a guard for a public function and an assertion to prevent
-       an undefined program state.
-
-2007-11-05  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfileattribute.c:
-       Don't run into an assertion if the given attribute value is NULL
-       in g_file_attribute_value_get_*() but instead return a fallback
-       value that makes sense in most situations. Passing them a attribute
-       value with the wrong type will still run into an assertion.
-
-2007-11-02  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfileattribute.c:
-       * gio/gfileinfo.c:
-       Add even more guards to the public functions. Also fix the refcounting
-       of GFileAttributeInfoList and GFileAttributeMatcher to be atomic and
-       let g_file_info_list_attributes() filter the attributes by namespace
-       instead of simply ignoring the namespace parameter.
-
-2007-11-03  Sven Herzberg  <sven@imendio.com>
-
-       * gio/gdesktopappinfo.c: don't use environ. Use the glib API for that.
-       (This makes gio work on MacOS X again)
-
-2007-11-02  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * Makefile.am:
-       Build the gio subdirectory before the docs. Otherwise the build will
-       fail.
-
-       * gio/gvfs.c: (g_vfs_get_name), (g_vfs_get_priority),
-       (g_vfs_get_file_for_path), (g_vfs_get_file_for_uri),
-       (g_vfs_get_supported_uri_schemes), (g_vfs_parse_name):
-       Add guards to the public functions.
-
-2007-11-02  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfileattribute.c: (g_file_attribute_value_as_string):
-       Cast parameter to g_type_name_from_instance() to a GTypeInstance *
-       to prevent a compiler warning.
-
-       * gio/glocalfile.c: (get_mount_info), (find_topdir_for):
-       Set the G_FILE_ATTRIBUTE_FS_READONLY as boolean, not as string and
-       return something in the non-void function find_topdir_for().
-
-2007-11-01  Christian Kellner  <gicmo@gnome.org>,  Ryan Lortie  <desrt@desrt.ca>
-
-       * configure.ac:
-       * Makefile.am:
-       * docs/:
-       Gtkdocify!
-
-2007-11-01  Ryan Lortie  <desrt@desrt.ca>
-
-       * gappinfo.c (g_app_info_launch, g_app_info_launch_uris):
-       * gappinfo.h (g_app_info_launch, g_app_info_launch_uris):
-       * gwin32appinfo.c (g_win32_app_info_launch):
-       * gdesktopappinfo.c (expand_macro, equal_up_to_equals,
-       envp_for_startup_id, g_desktop_app_info_launch,
-       g_desktop_app_info_launch_uris):
-
-       Give an opaque 'startup_id' string instead of 'envp'.
-       Support empty file lists for launching new windows.
-       Fix infinite recursion bug when launching URIs.
-
-2007-11-01  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfile.c:
-       Add guard to the new g_file_get_uri_scheme() function.
-
-2007-11-01  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfile.c:
-       Convert a g_return_val_if_fail() to setting the GError instead as
-       otherwise applications have to verify the parameter before otherwise
-       and the parameter might come directly from the user.
-
-2007-11-01  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/inotify/ginotify*.[ch]:
-       Add missing copyright information.
-
-2007-11-01  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfile.c:
-       Add guards in the beginning of public functions to check for valid
-       parameters and fix a bug in copy_stream_with_progress() that could've
-       caused writing less bytes than reading.
-       * gio/glocalfileinfo.c:
-       Check for a NULL parameter and set the GError accordingly then.
-       * gio/goutputstream.c:
-       Fix the same bug as in gfile.c that could've caused writing less bytes
-       than reading in g_output_stream_real_splice().
-
-2007-11-01  Sebastien Bacher  <seb128@ubuntu.com>
-
-       * gio/Makefile.am:
-       Use the correct gvolumeprivate.h naming
-
-2007-11-01  Christian Kellner  <gicmo@gnome.org>
-
-       * gio/Makefile.am:
-       Remove leftover "$(daemon_sources)" entry.
-
-2007-11-01  Christian Kellner  <gicmo@gnome.org>
-
-       * gio/fam/*.[ch]:
-       * gio/*.[ch]:
-       * programs/*.[ch]:
-       Add copyright information to source files.
-
-2007-11-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       * gio/glocalfile.c:
-       Add g_file_get_uri_scheme
-
-2007-11-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.h:
-       * gio/gdesktopappinfo.c:
-       * gio/gwin32appinfo.c:
-       Add g_app_info_get_default_for_uri_scheme.
-
-2007-11-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/Makefile.am:
-       Correct filename for gdriveprivate.h
-
-2007-10-31  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       Rename id:value to id:file
-       Add id:fs
-       
-       * gio/glocalfileinfo.c:
-       Implement id:fs
-
-2007-10-31  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gunixvolume.c:
-       * gio/gvolume.[ch]:
-       Remove g_volume_get_platform_id, as thats not
-       needed with the simpler union volume monitor
-
-2007-10-31  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/Makefile.am:
-       * gio/guniondrive.[ch]: Removed.
-       * gio/gunionvolume.[ch]: Removed.
-       Remove GUnionDrive/Volume
-
-       * gio/gunionvolumemonitor.c:
-       Simplify union volume monitor, now we
-       only have one native volume monitor and
-       we use the actual volumes/drives from the
-       child monitors instead of wrapping them
-
-       * gio/gnativevolumemonitor.[ch]:
-       Base class for native volume monitors.
-       Includes priority and get_volume_for_mountpoint
-       
-       * gio/gfile.[ch]:
-       Add g_file_find_enclosing_volume
-
-       * gio/gfileinfo.h:
-       Remove volume name fs attribute
-       Add readonly fs attribute
-       
-       * gio/glocalfile.c:
-       Implement readonly attribute
-       remove volume name attribute
-       Implement find_enclosing volume
-       
-       * gio/gunixmounts.c:
-       Add a volume for "/".
-       
-       * gio/gunixvolume.[ch]:
-       Set better name for /
-       
-       * gio/gunixvolumemonitor.[ch]:
-       Derive from GNativeVolumeMonitor
-       Implement get_volume_for_mountpoint
-       
-       * gio/gvolume.h:
-       GVolume typedef moved to gfile.h
-       
-       * gio/gvolumeprivate.h:
-       Add g_volume_get_for_mount_path
-
-2007-10-31  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gunixmounts.[ch]:
-       Add cache info to unix mount listers
-       Make getmntent use threadsafe
-       Add is_system_internal attribute for GUnixMount
-       
-       * gio/gunixvolume.c:
-       (g_unix_volume_new):
-       Use is_system_internal instead of own code
-       
-       * gio/glocaldirectorymonitor.c:
-       * gio/gunixvolumemonitor.c:
-       Update to new gunixmounts API
-       
-       * gio/glocalfile.c:
-       Fix warning
-
-2007-10-30  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       Add volume name fsinfo attribute
-       
-       * gio/glocalfile.c:
-       Read volume name info
-       
-       * gio/gunionvolumemonitor.c:
-       Fix infinite loops when finalizing a union volume monitor
-
-2007-10-30  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/goutputstream.[ch]:
-       Add splice() with default implementation
-       
-       * gio/gsocketoutputstream.c:
-       (g_socket_output_stream_write):
-       Return error on cancellation correctly.
-       
-2007-10-26  Paolo Borelli  <pborelli@katamail.com>
-
-       * gio/glocalfile.c (g_local_file_trash):
-       Do not leak a string.
-
-2007-10-26  Paolo Borelli  <pborelli@katamail.com>
-
-       * gio/gfile.c (g_file_load_contents):
-       Unref the stream after closing it.
-
-2007-10-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gioscheduler.h:
-       Fix include
-
-2007-10-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       * gio/glocalfile.c:
-       Add g_file_has_uri_scheme and implement for local files
-
-2007-10-25  Paolo Borelli  <pborelli@katamail.com>
-
-       * gio/gdesktopappinfo.c: do not leak a string.
-
-2007-10-24  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/glocaldirectorymonitor.c: (_compare_monitor_class_by_prio),
-       (g_local_directory_monitor_new):
-       * gio/glocalfilemonitor.c: (_compare_monitor_class_by_prio),
-       (g_local_file_monitor_new):
-       Only look for the monitor type that should be used the first time
-       and use g_qsort_with_data() instead of our own bubble sort
-       implementation.
-
-2007-10-24  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/Makefile.am:
-       * gio/fam/Makefile.am:
-       * gio/fam/fam-helper.c: (_fam_sub_startup), (_fam_sub_add):
-       * gio/fam/fam-helper.h:
-       * gio/fam/fam-module.c: (g_io_module_load), (g_io_module_unload):
-       * gio/fam/gfamdirectorymonitor.c:
-       * gio/fam/gfamdirectorymonitor.h:
-       * gio/fam/gfamfilemonitor.c: (g_fam_file_monitor_finalize),
-       * gio/fam/gfamfilemonitor.h:
-       * gio/glocaldirectorymonitor.c:
-       * gio/glocaldirectorymonitor.h:
-       * gio/glocalfilemonitor.c: (g_local_file_monitor_init),
-       * gio/glocalfilemonitor.h:
-       * gio/inotify/Makefile.am:
-       * gio/inotify/ginotifydirectorymonitor.c:
-       * gio/inotify/ginotifydirectorymonitor.h:
-       * gio/inotify/ginotifyfilemonitor.c:
-       * gio/inotify/ginotifyfilemonitor.h:
-       Implement the FAM and Inotify monitors as
-       GLocal(Directory|File)Monitor subclasses and put the FAM monitors into
-       their own GIO module. GLocal(Directory|File)Monitor will use the
-       monitor with the highest rank that is supported on that machine.
-
-2007-10-23  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/Makefile.am:
-       Change GIO module dir to $(libdir)/gio/modules and change
-       the log domain from GVFS to GIO. Also only export symbols starting
-       with g_ in the resulting library.
-       * gio/test-streams.c: (main):
-       Set log handler for the GIO log domain.
-
-2007-10-22  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfilenamecompleter.[ch]:
-       Add g_filename_completer_set_dirs_only
-
-2007-10-22  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/Makefile.am:
-       * gio/gurifuncs.[ch]:
-       Add some simple URI helpers
-       
-       * gio/gfilenamecompleter.[ch]:
-       Added object for filename (parse name actually) completion
-       
-       * gio/glocalvfs.c:
-       Handle ~ in parse names
-
-2007-10-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       * gio/glocalfileinfo.c:
-       Add and implement id:value attribute
-
-2007-10-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdrive.[ch]:
-       * gio/guniondrive.c:
-       * gio/gunixdrive.c:
-       Add and implement g_drive_has_volumes
-       
-2007-10-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       * gio/glocalfileinfo.[ch]:
-       Add unix:is_mountpoint and implement for local files
-
-2007-10-16  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gunionvolumemonitor.c:
-       (g_union_volume_monitor_init):
-       Fix up the unix type getting so that it works with gcc
-       
-2007-10-12  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       * gio/glocalfileinfo.c:
-       Add thumbnail:failed to file info
-
-2007-10-12  Richard Hult  <richard@imendio.com>
-
-       * gio/gvfs.c (get_default_vfs): Make the type volatile to avoid
-       optimizing away the get_type call (happens with some gcc versions,
-       like the one shipped with OS X 10.4).
-
-2007-10-12  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c:
-       (_g_local_file_info_set_attribute):
-       Fix build if not HAVE_XATTR
-       Patch from Milosz Derezynski <internalerror@gmail.com>
-
-2007-10-11  Sven Herzberg  <herzi@gnome-de.org>
-
-       * gio/gunixmounts.c: small build fix (sorry, Alex, you haven't been
-       around for review, otherwise I would have asked you before
-       committing)
-
-2007-10-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       Add thumbnail:path attribute
-       
-       * gio/glocalfileinfo.c:
-       Implement thumbnail:path for local files
-
-2007-10-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c:
-       (_g_local_file_info_get):
-       Avoid duplicate icon names
-
-2007-10-11  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gthemedicon.[ch]:
-       Change g_themed_icon_get_names return type to const
-
-2007-10-10  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c:
-       Don't reference freed memory
-
-2007-10-10  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileattribute.c:
-       Handle objects
-       
-       * gio/glocalfileinfo.c:
-       Return icon info
-
-2007-10-10  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.c:
-       Check for NULL icons
-
-       * gio/gfileattribute.c:
-       Don't dup when getting objects (same as for string attributes)
-
-       * gio/gicon.c (g_icon_equal):
-       Safely handle NULLs in equal
-
-2007-10-10  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h:
-       Fix c++ compilation issues
-       Patch from Milosz Derezynski <internalerror@gmail.com>
-
-2007-10-10  Alexander Larsson  <alexl@redhat.com>
-
-       * programs/gio-monitor-dir.c:
-       Don't crash if dir monitor not supported.
-
-2007-10-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gioerror.h:
-       Add missing G_END_DECLS
-
-2007-10-09  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gfile.c: (g_file_set_display_name),
-       (g_file_query_settable_attributes),
-       (g_file_query_writable_namespaces):
-       Return NULL not FALSE on errors as the return type is a pointer.
-
-2007-10-09  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/glocalfile.c: (g_local_file_monitor_file):
-       Don't call monitor_file on the default interface vtable (which
-       is NULL) but simply return NULL. The caller, GFile, will create a
-       polling monitor if NULL is returned.
-
-2007-10-09  Alexander Larsson  <alexl@redhat.com>
-
-       * Makefile.am:
-       * configure.ac:
-       * gio-unix-2.0.pc.in:
-       Add gio-unix-2.0.pc if OS_UNIX
-       
-       * gio/Makefile.am:
-       Install gunixmounts.h into gio-unix-2.0 if OS_UNIX
-
-2007-10-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gunixmounts.[ch]:
-       Make unix mount monitoring API sane.
-       Now its just a object with mounts_changed
-       and mountpoints_changed signals.
-       
-       * gio/glocaldirectorymonitor.c:
-       * gio/gunixvolumemonitor.c:
-       Use new mount monitor api
-
-2007-10-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gunixmounts.[ch]:
-       Move guess type into one call for mounts and one for mountpoints
-       
-       * gio/gunixdrive.c:
-       * gio/gunixvolume.c:
-       Update
-
-2007-10-09  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gunixmounts.[ch]:
-       Remove _ prefix in preparation to make this semi-public
-       Hide implementation of structs
-       
-       * gio/glocaldirectorymonitor.c:
-       * gio/gunixdrive.c:
-       * gio/gunixvolume.c:
-       * gio/gunixvolumemonitor.c:
-       Update for above API changes
-
-2007-10-08  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.c:
-       Better polling fallback. This also handles the case where we have
-       a monitor_file implementation, but it fails.
-
-2007-10-08  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       * gio/glocalfile.c:
-       * gio/gunixmounts.c:
-       * programs/gio-monitor-dir.c:
-       * programs/gio-monitor-file.c:
-       Added cancellable to file monitoring calls.
-       These are really sync calls and need this.
-
-2007-10-08  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/glocalvfs.c: (g_local_vfs_get_supported_uri_schemes),
-       (g_local_vfs_class_init):
-       * gio/gvfs.c: (g_vfs_get_supported_uri_schemes):
-       * gio/gvfs.h: Add functions to get a list of supported URI schemes.
-
-2007-10-05  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdirectorymonitorprivate.h: 
-       * gio/gfilemonitorprivate.h: 
-       * gio/gdirectorymonitor.h:
-       * gio/gfilemonitor.h:
-       Remove *private.h and move to the public API, so that
-       we can do implementations outside gio (such as in gvfs)
-       
-       * gio/gdirectorymonitor.c:
-       * gio/gfilemonitor.c:
-       * gio/glocaldirectorymonitor.c:
-       * gio/gpollfilemonitor.c:
-       * gio/inotify/inotify-helper.c:
-       * gio/fam/fam-helper.c:
-       Update to the new header names
-
-2007-10-05  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gdirectorymonitor.c:
-       * gio/gfilemonitor.c: Mark the GFileMonitor and GDirectoryMonitor
-       GTypes as abstract.
-
-2007-10-04  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c (get_access_rights):
-       Set CAN_TRASH when we can move the file.
-       We should really also check for a parent trash dir.
-
-2007-10-04  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.h (G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH):
-       Add can_trash access attribute
-
-2007-10-04  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfile.c:
-       (g_local_file_trash):
-       Create info file first. This is per-spec and allows
-       us to actually trash directories.
-
-2007-10-02  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdesktopappinfo.c:
-       Implement the new mime support code.
-       Always set app as handling mimetype when being set as default for it
-
-2007-10-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c (_g_local_file_info_set_attribute):
-       Fix up check for xattrs:
-
-2007-10-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.c:
-       (g_app_info_set_as_default_for_extension):
-       (g_app_info_add_supports_type):
-       (g_app_info_can_remove_supports_type):
-       (g_app_info_remove_supports_type):
-       Make these fail nicely if not implemented
-
-2007-10-01  Paolo Borelli  <pborelli@katamail.com>
-
-       * gio/glocalfileoutputstream.c:
-       * gio/glocalfileoutputstream.h:
-       * gio/test-gio.c:
-       * gio/gfile.c:
-       * gio/gfile.h:
-       * gio/glocalfile.c:
-       * programs/gio-save.c: 
-       Add a GFileCreateFlags argument to operations that can create
-       a new file.
-
-2007-10-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.[ch]:
-       * gio/gdesktopappinfo.c:
-       Add more (stubbed out) mime API needed for nautilus
-
-2007-10-01  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.h:
-       Add GAppInfoCreateFlags flag to g_app_info_create_from_commandline.
-       Add g_app_info_set_as_default_for_extension.
-       
-       * gio/gdesktopappinfo.c:
-       Dummy for g_app_info_set_as_default_for_extension
-       Support flags in g_app_info_create_from_commandline
-
-       * gio/gwin32appinfo.c:
-       * gio/test-gio.c:
-       Update for API changes
-       
-       * gio/gthemedicon.c:
-       Properly NULL-terminate list of icon names
-
-2007-09-28  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gloadableicon.h:
-       Correct G_TYPE_LOADABLE_ICON, it was pointing to the GIcon type...
-
-2007-09-28  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/Makefile.am:
-       Install headers in $includedir/gio-standalone/
-       
-       * gio-2.0.pc.in: Added.
-       * gio-standalone.pc.in: Removed.
-       * configure.ac:
-       * Makefile.am:
-       Renamed pkg-config file to match glib (for future move)
-       Update to the new include dir
-       
-       * gio/gappinfo.h:
-       Add more TODO comments
-
-2007-09-28  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdesktopappinfo.[ch]:
-       Expose new_from_filename
-       Add getter for is_hidden and handle it better
-
-2007-09-28  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.[ch]:
-       Rename g_file_size_format_for_display to
-       g_format_file_size_for_display.
-       Now it doesn't have the g_file prefix, so we
-       can later move it to glib.
-
-2007-09-28  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.[ch]:
-       Add g_app_info_get_id and g_app_info_get_executable.
-       Make all getters non-reffing
-       Make g_app_info_launch take GFile arguments.
-       Add must_support_uris argument to g_app_info_get_default_for_type.
-       
-       * gio/gwin32appinfo.c:
-       Update to GAppInfo api changes
-       
-       * gio/gdesktopappinfo.c:
-       Update to GAppInfo api changes
-       Implement supports_xdg_startup_notify
-       
-       * gio/gfileicon.c (g_file_icon_get_file):
-       Make getter non-reffing.
-       
-       * gio/test-gio.c:
-       Update to new API
-
-2007-09-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinfo.[ch]: 
-       Add g_file_size_format_for_display helper
-       
-2007-09-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c:
-       Set UNIX_GID from gid, not from uid
-
-2007-09-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       Add g_file_set_attributes_async
-
-2007-09-27  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfile.c (g_local_file_set_display_name):
-       Fix set_display_name to actually rename to the right place.
-       Use lstat to look for existing files so we don't overwrite
-       broken links.
-
-2007-09-26  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       Add g_file_set_display_name_async()
-
-2007-09-26  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       Add load_partial_contents async calls
-       
-       * gio/glocalfile.c:
-       Make internal function static
-
-2007-09-26  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c:
-       Correctly detect broken symlinks
-
-2007-09-26  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gcancellable.c (g_cancellable_cancel):
-       Allow cancel on NULL cancellable
-
-2007-09-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gsimpleasyncresult.c:
-       Don't allocate g_error manually.
-       Fixes g_slice/g_new mixup crash
-
-2007-09-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocaldirectorymonitor.c (g_local_directory_monitor_new):
-       Actually set active_backend.
-       This means the monitor will be cancelled correctly.
-
-2007-09-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdirectorymonitor.c:
-       Set timeout to NULL when destroying
-
-2007-09-25  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gioerror.h:
-       Rename G_IO_ERROR_NOT_MOUNTABLE to G_IO_ERROR_NOT_MOUNTABLE_FILE as
-       that is a better description of the error.
-
-2007-09-25  Sebastian Dröge  <slomo@circular-chaos.org>
-
-       * gio/gvfs.c: (g_vfs_get_local):
-       Make the local vfs variable static. The same instance should
-       always be returned.
-
-2007-09-24  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileinfo.c:
-       Pass in actual length read into sniffer, not the length
-       we tried to read.
-
-2007-09-21  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileenumerator.c:
-       * gio/gfileinfo.c:
-       * gio/gfileinfo.h:
-       * gio/gfileinputstream.c:
-       * gio/gfileoutputstream.c:
-       * gio/ginputstream.c:
-       * gio/goutputstream.c:
-       Don't crash if async callbacks are NULL
-
-2007-09-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       Add async enumerate_children method and default
-       implementation
-
-2007-09-20  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]
-       Add g_file_contains_file & g_file_get_relative_path, since they
-       were needed for nautilus.
-       Renamed g_file_resolve_relative to g_file_resolve_relative_path
-       to make it clearer.
-       
-       * gio/gdummyfile.c:
-       * gio/glocalfile.c:
-       Implement new methods
-
-2007-09-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       * gio/gfileinputstream.[ch]:
-       * gio/gfileoutputstream.[ch]:
-       * gio/glocalfile.c:
-       * gio/glocalfileenumerator.[ch]:
-       * gio/glocalfileinfo.[ch]:
-       * gio/glocalfileinputstream.c:
-       * gio/glocalfileoutputstream.c:
-       * gio/gpollfilemonitor.c:
-       * programs/gio-copy.c:
-       * programs/gio-info.c:
-       * programs/gio-move.c:
-       Rename get_file_info to query_info() to make it clearer
-       that these are not simple getters, but do i/o.
-
-2007-09-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdatainputstream.[ch]:
-       * gio/test-streams.c:
-       Use _read_XXX instead of _get_XXX for the i/o calls
-       in GDataInputStream
-
-2007-09-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gappinfo.h:
-       Added needed stuff to TODO comment
-
-2007-09-17  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/glocalfileoutputstream.c (g_local_file_output_stream_close):
-       Don't error out removing the backup copy if it doesn't
-       already exist.
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * programs/Makefile.am:
-       * programs/gvfs-*.c: 
-       * programs/gio-*.c:
-       Renamed apps from gvfs-xxx to gio-xxx.
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.c:
-       * gio/gfileoutputstream.[ch]:
-       * gio/glocalfileoutputstream.c:
-       * programs/gvfs-save.c:
-       g_file_output_stream_get_etag doesn't do i/o, so remove
-       cancellation and error.
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       Add new_etag output to replace_contents functions
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileoutputstream.[ch]:
-       Add async get_file_info and default implementation
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinputstream.c:
-       Implement fallback wrapper for async get_file_info
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfile.[ch]:
-       Add etag out argument to load_contents
-       
-       * gio/test-gio.c:
-       Update to new API
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gcontenttype.c (looks_like_text):
-       Whitespace like tab, cr and lf do not make the
-       file binary.
-
-2007-09-14  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gfileinputstream.[ch]:
-       Add async get_file_info.
-
-2007-09-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/goutputstream.c (g_output_stream_write_all):
-       Allow NULL for bytes_written
-
-2007-09-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gmemoryinputstream.[ch]:
-       Add accessors for data
-
-2007-09-13  Alexander Larsson  <alexl@redhat.com>
-
-       * gio/gdatainputstream.c (g_data_input_stream_get_until):
-       Don't crash if length is NULL
-
index 646b8ef..47cd733 100644 (file)
@@ -769,7 +769,7 @@ g_app_info_launch_default_for_uri (const char         *uri,
  * @uri: the uri to show
  * @context: (nullable): an optional #GAppLaunchContext
  * @cancellable: (nullable): a #GCancellable
- * @callback: (nullable): a #GASyncReadyCallback to call when the request is done
+ * @callback: (nullable): a #GAsyncReadyCallback to call when the request is done
  * @user_data: (nullable): data to pass to @callback
  *
  * Async version of g_app_info_launch_default_for_uri().
index d4a0cd7..2d2ab48 100644 (file)
  *     If this function returns %TRUE, registration will proceed; otherwise
  *     registration will abort. Since: 2.34
  * @dbus_unregister: invoked locally during unregistration, if the application
- *     is using its D-Bus backend. Use this to undo anything done by the
- *     @dbus_register vfunc. Since: 2.34
+ *     is using its D-Bus backend. Use this to undo anything done by
+ *     the @dbus_register vfunc. Since: 2.34
  * @handle_local_options: invoked locally after the parsing of the commandline
  *  options has occurred. Since: 2.40
+ * @name_lost: invoked when another instance is taking over the name. Since: 2.60
  *
  * Virtual function table for #GApplication.
  *
@@ -277,6 +278,7 @@ enum
   SIGNAL_ACTION,
   SIGNAL_COMMAND_LINE,
   SIGNAL_HANDLE_LOCAL_OPTIONS,
+  SIGNAL_NAME_LOST,
   NR_SIGNALS
 };
 
@@ -476,6 +478,7 @@ g_application_parse_command_line (GApplication   *application,
 {
   gboolean become_service = FALSE;
   gchar *app_id = NULL;
+  gboolean replace = FALSE;
   GVariantDict *dict = NULL;
   GOptionContext *context;
   GOptionGroup *gapplication_group;
@@ -557,6 +560,18 @@ g_application_parse_command_line (GApplication   *application,
       g_option_group_add_entries (gapplication_group, entries);
     }
 
+  /* Allow replacing if the application allows it */
+  if (application->priv->flags & G_APPLICATION_ALLOW_REPLACEMENT)
+    {
+      GOptionEntry entries[] = {
+        { "gapplication-replace", '\0', 0, G_OPTION_ARG_NONE, &replace,
+          N_("Replace the running instance") },
+        { NULL }
+      };
+
+      g_option_group_add_entries (gapplication_group, entries);
+    }
+
   /* Now we parse... */
   if (!g_option_context_parse_strv (context, arguments, error))
     goto out;
@@ -569,6 +584,10 @@ g_application_parse_command_line (GApplication   *application,
   if (app_id)
     g_application_set_application_id (application, app_id);
 
+  /* Check for --gapplication-replace */
+  if (replace)
+    application->priv->flags |= G_APPLICATION_REPLACE;
+
   dict = g_variant_dict_new (NULL);
   if (application->priv->packed_options)
     {
@@ -1177,6 +1196,13 @@ g_application_real_dbus_unregister (GApplication    *application,
 {
 }
 
+static gboolean
+g_application_real_name_lost (GApplication *application)
+{
+  g_application_quit (application);
+  return TRUE;
+}
+
 /* GObject implementation stuff {{{1 */
 static void
 g_application_set_property (GObject      *object,
@@ -1434,6 +1460,7 @@ g_application_class_init (GApplicationClass *class)
   class->add_platform_data = g_application_real_add_platform_data;
   class->dbus_register = g_application_real_dbus_register;
   class->dbus_unregister = g_application_real_dbus_unregister;
+  class->name_lost = g_application_real_name_lost;
 
   g_object_class_install_property (object_class, PROP_APPLICATION_ID,
     g_param_spec_string ("application-id",
@@ -1628,6 +1655,25 @@ g_application_class_init (GApplicationClass *class)
                   g_application_handle_local_options_accumulator, NULL, NULL,
                   G_TYPE_INT, 1, G_TYPE_VARIANT_DICT);
 
+  /**
+   * GApplication::name-lost:
+   * @application: the application
+   *
+   * The ::name-lost signal is emitted only on the registered primary instance
+   * when a new instance has taken over. This can only happen if the application
+   * is using the %G_APPLICATION_ALLOW_REPLACEMENT flag.
+   *
+   * The default handler for this signal calls g_application_quit().
+   *
+   * Returns: %TRUE if the signal has been handled
+   *
+   * Since: 2.60
+   */
+  g_application_signals[SIGNAL_NAME_LOST] =
+    g_signal_new (I_("name-lost"), G_TYPE_APPLICATION, G_SIGNAL_RUN_LAST,
+                  G_STRUCT_OFFSET (GApplicationClass, name_lost),
+                  g_signal_accumulator_true_handled, NULL, NULL,
+                  G_TYPE_BOOLEAN, 0);
 }
 
 /* Application ID validity {{{1 */
index cdb9365..adc32ed 100644 (file)
@@ -112,9 +112,10 @@ struct _GApplicationClass
                                                      const gchar               *object_path);
   gint                      (* handle_local_options)(GApplication              *application,
                                                      GVariantDict              *options);
+  gboolean                  (* name_lost)           (GApplication              *application);
 
   /*< private >*/
-  gpointer padding[8];
+  gpointer padding[7];
 };
 
 GLIB_AVAILABLE_IN_ALL
index f9e5e71..76d67ee 100644 (file)
@@ -111,6 +111,7 @@ struct _GApplicationImpl
   GDBusConnection *session_bus;
   GActionGroup    *exported_actions;
   const gchar     *bus_name;
+  guint            name_lost_signal;
 
   gchar           *object_path;
   guint            object_id;
@@ -327,6 +328,25 @@ application_path_from_appid (const gchar *appid)
   return appid_path;
 }
 
+static void g_application_impl_stop_primary (GApplicationImpl *impl);
+
+static void
+name_lost (GDBusConnection *bus,
+           const char      *sender_name,
+           const char      *object_path,
+           const char      *interface_name,
+           const char      *signal_name,
+           GVariant        *parameters,
+           gpointer         user_data)
+{
+  GApplicationImpl *impl = user_data;
+  gboolean handled;
+
+  impl->primary = FALSE;
+  g_application_impl_stop_primary (impl);
+  g_signal_emit_by_name (impl->app, "name-lost", &handled);
+}
+
 /* Attempt to become the primary instance.
  *
  * Returns %TRUE if everything went OK, regardless of if we became the
@@ -347,6 +367,8 @@ g_application_impl_attempt_primary (GApplicationImpl  *impl,
     NULL /* set_property */
   };
   GApplicationClass *app_class = G_APPLICATION_GET_CLASS (impl->app);
+  GBusNameOwnerFlags name_owner_flags;
+  GApplicationFlags app_flags;
   GVariant *reply;
   guint32 rval;
 
@@ -426,11 +448,33 @@ g_application_impl_attempt_primary (GApplicationImpl  *impl,
    * the well-known name and fall back to remote mode (!is_primary)
    * in the case that we can't do that.
    */
-  reply = g_dbus_connection_call_sync (impl->session_bus, "org.freedesktop.DBus", "/org/freedesktop/DBus",
-                                       "org.freedesktop.DBus", "RequestName",
-                                       g_variant_new ("(su)",
-                                                      impl->bus_name,
-                                                      G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE),
+  name_owner_flags = G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE;
+  app_flags = g_application_get_flags (impl->app);
+
+  if (app_flags & G_APPLICATION_ALLOW_REPLACEMENT)
+    {
+      impl->name_lost_signal = g_dbus_connection_signal_subscribe (impl->session_bus,
+                                                                   "org.freedesktop.DBus",
+                                                                   "org.freedesktop.DBus",
+                                                                   "NameLost",
+                                                                   "/org/freedesktop/DBus",
+                                                                   impl->bus_name,
+                                                                   G_DBUS_SIGNAL_FLAGS_NONE,
+                                                                   name_lost,
+                                                                   impl,
+                                                                   NULL);
+
+      name_owner_flags |= G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT;
+    }
+  if (app_flags & G_APPLICATION_REPLACE)
+    name_owner_flags |= G_BUS_NAME_OWNER_FLAGS_REPLACE;
+
+  reply = g_dbus_connection_call_sync (impl->session_bus,
+                                       "org.freedesktop.DBus",
+                                       "/org/freedesktop/DBus",
+                                       "org.freedesktop.DBus",
+                                       "RequestName",
+                                       g_variant_new ("(su)", impl->bus_name, name_owner_flags),
                                        G_VARIANT_TYPE ("(u)"),
                                        0, -1, cancellable, error);
 
@@ -443,6 +487,12 @@ g_application_impl_attempt_primary (GApplicationImpl  *impl,
   /* DBUS_REQUEST_NAME_REPLY_EXISTS: 3 */
   impl->primary = (rval != 3);
 
+  if (!impl->primary && impl->name_lost_signal)
+    {
+      g_dbus_connection_signal_unsubscribe (impl->session_bus, impl->name_lost_signal);
+      impl->name_lost_signal = 0;
+    }
+
   return TRUE;
 }
 
@@ -485,6 +535,12 @@ g_application_impl_stop_primary (GApplicationImpl *impl)
       impl->actions_id = 0;
     }
 
+  if (impl->name_lost_signal)
+    {
+      g_dbus_connection_signal_unsubscribe (impl->session_bus, impl->name_lost_signal);
+      impl->name_lost_signal = 0;
+    }
+
   if (impl->primary && impl->bus_name)
     {
       g_dbus_connection_call (impl->session_bus, "org.freedesktop.DBus",
index 48c736c..de6d434 100644 (file)
@@ -339,7 +339,7 @@ g_cancellable_set_error_if_cancelled (GCancellable  *cancellable,
  *
  * See also g_cancellable_make_pollfd().
  *
- * Returns: A valid file descriptor. %-1 if the file descriptor 
+ * Returns: A valid file descriptor. `-1` if the file descriptor
  * is not supported, or on errors. 
  **/
 int
index 57249d9..04d278d 100644 (file)
  *
  * A content type is a platform specific string that defines the type
  * of a file. On UNIX it is a
- * [mime type](http://www.wikipedia.org/wiki/Internet_media_type)
- * like "text/plain" or "image/png".
- * On Win32 it is an extension string like ".doc", ".txt" or a perceived
- * string like "audio". Such strings can be looked up in the registry at
- * HKEY_CLASSES_ROOT.
- * On OSX it is a [Uniform Type Identifier](https://en.wikipedia.org/wiki/Uniform_Type_Identifier)
- * such as "com.apple.application".
+ * [MIME type](http://www.wikipedia.org/wiki/Internet_media_type)
+ * like `text/plain` or `image/png`.
+ * On Win32 it is an extension string like `.doc`, `.txt` or a perceived
+ * string like `audio`. Such strings can be looked up in the registry at
+ * `HKEY_CLASSES_ROOT`.
+ * On macOS it is a [Uniform Type Identifier](https://en.wikipedia.org/wiki/Uniform_Type_Identifier)
+ * such as `com.apple.application`.
  **/
 
 #include <dirent.h>
@@ -55,6 +55,8 @@
 #define XDG_PREFIX _gio_xdg
 #include "xdgmime/xdgmime.h"
 
+static void tree_magic_schedule_reload (void);
+
 /* We lock this mutex whenever we modify global state in this module.  */
 G_LOCK_DEFINE_STATIC (gio_xdgmime);
 
@@ -111,6 +113,106 @@ _g_unix_content_type_get_parents (const gchar *type)
   return (gchar **)g_ptr_array_free (array, FALSE);
 }
 
+G_LOCK_DEFINE_STATIC (global_mime_dirs);
+static gchar **global_mime_dirs = NULL;
+
+static void
+_g_content_type_set_mime_dirs_locked (const char * const *dirs)
+{
+  g_clear_pointer (&global_mime_dirs, g_strfreev);
+
+  if (dirs != NULL)
+    {
+      global_mime_dirs = g_strdupv ((gchar **) dirs);
+    }
+  else
+    {
+      GPtrArray *mime_dirs = g_ptr_array_new_with_free_func (g_free);
+      const gchar * const *system_dirs = g_get_system_data_dirs ();
+
+      g_ptr_array_add (mime_dirs, g_build_filename (g_get_user_data_dir (), "mime", NULL));
+      for (; *system_dirs != NULL; system_dirs++)
+        g_ptr_array_add (mime_dirs, g_build_filename (*system_dirs, "mime", NULL));
+      g_ptr_array_add (mime_dirs, NULL);  /* NULL terminator */
+
+      global_mime_dirs = (gchar **) g_ptr_array_free (mime_dirs, FALSE);
+    }
+
+  xdg_mime_set_dirs ((const gchar * const *) global_mime_dirs);
+  tree_magic_schedule_reload ();
+}
+
+/**
+ * g_content_type_set_mime_dirs:
+ * @dirs: (array zero-terminated=1) (nullable): %NULL-terminated list of
+ *    directories to load MIME data from, including any `mime/` subdirectory,
+ *    and with the first directory to try listed first
+ *
+ * Set the list of directories used by GIO to load the MIME database.
+ * If @dirs is %NULL, the directories used are the default:
+ *
+ *  - the `mime` subdirectory of the directory in `$XDG_DATA_HOME`
+ *  - the `mime` subdirectory of every directory in `$XDG_DATA_DIRS`
+ *
+ * This function is intended to be used when writing tests that depend on
+ * information stored in the MIME database, in order to control the data.
+ *
+ * Typically, in case your tests use %G_TEST_OPTION_ISOLATE_DIRS, but they
+ * depend on the system’s MIME database, you should call this function
+ * with @dirs set to %NULL before calling g_test_init(), for instance:
+ *
+ * |[<!-- language="C" -->
+ *   // Load MIME data from the system
+ *   g_content_type_set_mime_dirs (NULL);
+ *   // Isolate the environment
+ *   g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+ *
+ *   …
+ *
+ *   return g_test_run ();
+ * ]|
+ *
+ * Since: 2.60
+ */
+/*< private >*/
+void
+g_content_type_set_mime_dirs (const gchar * const *dirs)
+{
+  G_LOCK (global_mime_dirs);
+  _g_content_type_set_mime_dirs_locked (dirs);
+  G_UNLOCK (global_mime_dirs);
+}
+
+/**
+ * g_content_type_get_mime_dirs:
+ *
+ * Get the list of directories which MIME data is loaded from. See
+ * g_content_type_set_mime_dirs() for details.
+ *
+ * Returns: (transfer none) (array zero-terminated=1): %NULL-terminated list of
+ *    directories to load MIME data from, including any `mime/` subdirectory,
+ *    and with the first directory to try listed first
+ * Since: 2.60
+ */
+/*< private >*/
+const gchar * const *
+g_content_type_get_mime_dirs (void)
+{
+  const gchar * const *mime_dirs;
+
+  G_LOCK (global_mime_dirs);
+
+  if (global_mime_dirs == NULL)
+    _g_content_type_set_mime_dirs_locked (NULL);
+
+  mime_dirs = (const gchar * const *) global_mime_dirs;
+
+  G_UNLOCK (global_mime_dirs);
+
+  g_assert (mime_dirs != NULL);
+  return mime_dirs;
+}
+
 /**
  * g_content_type_equals:
  * @type1: a content type string
@@ -306,7 +408,7 @@ load_comment_for_mime_helper (const char *dir,
     mime_info_text
   };
 
-  filename = g_build_filename (dir, "mime", basename, NULL);
+  filename = g_build_filename (dir, basename, NULL);
 
   res = g_file_get_contents (filename,  &data,  &len,  NULL);
   g_free (filename);
@@ -328,22 +430,14 @@ load_comment_for_mime_helper (const char *dir,
 static char *
 load_comment_for_mime (const char *mimetype)
 {
-  const char * constdirs;
+  const char * const *dirs;
   char *basename;
   char *comment;
-  int i;
+  gsize i;
 
   basename = g_strdup_printf ("%s.xml", mimetype);
 
-  comment = load_comment_for_mime_helper (g_get_user_data_dir (), basename);
-  if (comment)
-    {
-      g_free (basename);
-      return comment;
-    }
-
-  dirs = g_get_system_data_dirs ();
-
+  dirs = g_content_type_get_mime_dirs ();
   for (i = 0; dirs[i] != NULL; i++)
     {
       comment = load_comment_for_mime_helper (dirs[i], basename);
@@ -780,10 +874,10 @@ enumerate_mimetypes_dir (const char *dir,
 {
   DIR *d;
   struct dirent *ent;
-  char *mimedir;
+  const char *mimedir;
   char *name;
 
-  mimedir = g_build_filename (dir, "mime", NULL);
+  mimedir = dir;
 
   d = opendir (mimedir);
   if (d)
@@ -800,8 +894,6 @@ enumerate_mimetypes_dir (const char *dir,
         }
       closedir (d);
     }
-
-  g_free (mimedir);
 }
 
 /**
@@ -809,7 +901,7 @@ enumerate_mimetypes_dir (const char *dir,
  *
  * Gets a list of strings containing all the registered content types
  * known to the system. The list and its data should be freed using
- * g_list_free_full (list, g_free).
+ * `g_list_free_full (list, g_free)`.
  *
  * Returns: (element-type utf8) (transfer full): list of the registered
  *     content types
@@ -817,18 +909,16 @@ enumerate_mimetypes_dir (const char *dir,
 GList *
 g_content_types_get_registered (void)
 {
-  const char * constdirs;
+  const char * const *dirs;
   GHashTable *mimetypes;
   GHashTableIter iter;
   gpointer key;
-  int i;
+  gsize i;
   GList *l;
 
   mimetypes = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
 
-  enumerate_mimetypes_dir (g_get_user_data_dir (), mimetypes);
-  dirs = g_get_system_data_dirs ();
-
+  dirs = g_content_type_get_mime_dirs ();
   for (i = 0; dirs[i] != NULL; i++)
     enumerate_mimetypes_dir (dirs[i], mimetypes);
 
@@ -1030,7 +1120,7 @@ read_tree_magic_from_directory (const gchar *prefix)
   TreeMatchlet *matchlet;
   gint depth;
 
-  filename = g_build_filename (prefix, "mime", "treemagic", NULL);
+  filename = g_build_filename (prefix, "treemagic", NULL);
 
   if (g_file_get_contents (filename, &text, &len, NULL))
     {
@@ -1068,11 +1158,16 @@ read_tree_magic_from_directory (const gchar *prefix)
   g_free (filename);
 }
 
+static void
+tree_magic_schedule_reload (void)
+{
+  need_reload = TRUE;
+}
 
 static void
 xdg_mime_reload (void *user_data)
 {
-  need_reload = TRUE;
+  tree_magic_schedule_reload ();
 }
 
 static void
@@ -1086,9 +1181,7 @@ static void
 tree_magic_init (void)
 {
   static gboolean initialized = FALSE;
-  const gchar *dir;
-  const gchar * const * dirs;
-  int i;
+  gsize i;
 
   if (!initialized)
     {
@@ -1100,14 +1193,14 @@ tree_magic_init (void)
 
   if (need_reload)
     {
+      const char * const *dirs;
+
       need_reload = FALSE;
 
       tree_magic_shutdown ();
 
-      dir = g_get_user_data_dir ();
-      read_tree_magic_from_directory (dir);
-      dirs = g_get_system_data_dirs ();
-      for (i = 0; dirs[i]; i++)
+      dirs = g_content_type_get_mime_dirs ();
+      for (i = 0; dirs[i] != NULL; i++)
         read_tree_magic_from_directory (dirs[i]);
     }
 }
index d87672d..d970acb 100644 (file)
@@ -69,6 +69,12 @@ gchar ** g_content_type_guess_for_tree    (GFile        *root);
 GLIB_AVAILABLE_IN_ALL
 GList *  g_content_types_get_registered   (void);
 
+/*< private >*/
+GLIB_AVAILABLE_IN_2_60
+const gchar * const *g_content_type_get_mime_dirs (void);
+GLIB_AVAILABLE_IN_2_60
+void                 g_content_type_set_mime_dirs (const gchar * const *dirs);
+
 G_END_DECLS
 
 #endif /* __G_CONTENT_TYPE_H__ */
index 9f207b1..c2b19fd 100644 (file)
@@ -323,7 +323,7 @@ read_data (GDataInputStream  *stream,
  * 
  * Reads an unsigned 8-bit/1-byte value from @stream.
  *
- * Returns: an unsigned 8-bit/1-byte value read from the @stream or %0 
+ * Returns: an unsigned 8-bit/1-byte value read from the @stream or `0`
  * if an error occurred.
  **/
 guchar
@@ -353,7 +353,7 @@ g_data_input_stream_read_byte (GDataInputStream  *stream,
  * In order to get the correct byte order for this read operation, 
  * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order().
  * 
- * Returns: a signed 16-bit/2-byte value read from @stream or %0 if 
+ * Returns: a signed 16-bit/2-byte value read from @stream or `0` if
  * an error occurred.
  **/
 gint16
@@ -397,7 +397,7 @@ g_data_input_stream_read_int16 (GDataInputStream  *stream,
  * In order to get the correct byte order for this read operation, 
  * see g_data_input_stream_get_byte_order() and g_data_input_stream_set_byte_order(). 
  * 
- * Returns: an unsigned 16-bit/2-byte value read from the @stream or %0 if 
+ * Returns: an unsigned 16-bit/2-byte value read from the @stream or `0` if
  * an error occurred. 
  **/
 guint16
@@ -445,7 +445,7 @@ g_data_input_stream_read_uint16 (GDataInputStream  *stream,
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. 
  *   
- * Returns: a signed 32-bit/4-byte value read from the @stream or %0 if 
+ * Returns: a signed 32-bit/4-byte value read from the @stream or `0` if
  * an error occurred. 
  **/
 gint32
@@ -493,7 +493,7 @@ g_data_input_stream_read_int32 (GDataInputStream  *stream,
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. 
  * 
- * Returns: an unsigned 32-bit/4-byte value read from the @stream or %0 if 
+ * Returns: an unsigned 32-bit/4-byte value read from the @stream or `0` if
  * an error occurred. 
  **/
 guint32
@@ -541,7 +541,7 @@ g_data_input_stream_read_uint32 (GDataInputStream  *stream,
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. 
  * 
- * Returns: a signed 64-bit/8-byte value read from @stream or %0 if 
+ * Returns: a signed 64-bit/8-byte value read from @stream or `0` if
  * an error occurred.  
  **/
 gint64
@@ -589,7 +589,7 @@ g_data_input_stream_read_int64 (GDataInputStream  *stream,
  * triggering the cancellable object from another thread. If the operation
  * was cancelled, the error %G_IO_ERROR_CANCELLED will be returned. 
  * 
- * Returns: an unsigned 64-bit/8-byte read from @stream or %0 if 
+ * Returns: an unsigned 64-bit/8-byte read from @stream or `0` if
  * an error occurred. 
  **/
 guint64
index 144fa42..8dabc14 100644 (file)
@@ -3,7 +3,7 @@
 
 # GDBus - GLib D-Bus Library
 #
-# Copyright (C) 2008-2011 Red Hat, Inc.
+# Copyright (C) 2008-2018 Red Hat, Inc.
 # Copyright (C) 2018 Iñigo Martínez <inigomartinez@gmail.com>
 #
 # This library is free software; you can redistribute it and/or
@@ -959,7 +959,8 @@ class CodeGenerator:
                            '{\n'
                            '  GDBusPropertyInfo parent_struct;\n'
                            '  const gchar *hyphen_name;\n'
-                           '  gboolean use_gvariant;\n'
+                           '  guint use_gvariant : 1;\n'
+                           '  guint emits_changed_signal : 1;\n'
                            '} _ExtendedGDBusPropertyInfo;\n'
                            '\n')
 
@@ -1254,9 +1255,13 @@ class CodeGenerator:
                                        '  "%s",\n'
                                        %(p.name_hyphen))
                     if not utils.lookup_annotation(p.annotations, 'org.gtk.GDBus.C.ForceGVariant'):
-                        self.outfile.write('  FALSE\n')
+                        self.outfile.write('  FALSE,\n')
                     else:
+                        self.outfile.write('  TRUE,\n')
+                    if p.emits_changed_signal:
                         self.outfile.write('  TRUE\n')
+                    else:
+                        self.outfile.write('  FALSE\n')
                     self.outfile.write('};\n'
                                        '\n')
 
@@ -1527,7 +1532,10 @@ class CodeGenerator:
                     s = 'g_param_spec_boxed ("%s", "%s", "%s", G_TYPE_STRV'%(p.name_hyphen, p.name, p.name)
                 else:
                     print_error('Unsupported gtype "{}" for GParamSpec'.format(p.arg.gtype))
-                self.outfile.write('    %s, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));'%s);
+                flags = 'G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS'
+                if p.deprecated:
+                    flags = 'G_PARAM_DEPRECATED | ' + flags
+                self.outfile.write('    %s, %s));'%(s, flags));
                 self.outfile.write('\n')
 
         self.outfile.write('}\n'
@@ -1559,7 +1567,7 @@ class CodeGenerator:
             if p.arg.free_func != None:
                 self.outfile.write(' * <warning>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use %s_dup_%s() if on another thread.</warning>\n'
                                    ' *\n'
-                                   ' * Returns: (transfer none): The property value or %%NULL if the property is not set. Do not free the returned value, it belongs to @object.\n'
+                                   ' * Returns: (transfer none) (nullable): The property value or %%NULL if the property is not set. Do not free the returned value, it belongs to @object.\n'
                                    %(i.name_lower, p.name_lower))
             else:
                 self.outfile.write(' * Returns: The property value.\n')
@@ -1581,7 +1589,7 @@ class CodeGenerator:
                         ' *\n'
                         ' * %s\n'
                         ' *\n'
-                        ' * Returns: (transfer full): The property value or %%NULL if the property is not set. The returned value should be freed with %s().\n'
+                        ' * Returns: (transfer full) (nullable): The property value or %%NULL if the property is not set. The returned value should be freed with %s().\n'
                         %(i.name_lower, p.name_lower, i.camel_name, i.name, p.name, hint, p.arg.free_func), False))
                 self.write_gtkdoc_deprecated_and_since_and_close(p, self.outfile, 0)
                 self.outfile.write('%s\n'
@@ -1717,9 +1725,9 @@ class CodeGenerator:
                                ' * @proxy: A #%sProxy.\n'
                                %(i.name_lower, m.name_lower, i.camel_name))
             for a in m.out_args:
-                self.outfile.write(' * @out_%s: (out)%s: Return location for return parameter or %%NULL to ignore.\n'%(a.name, ' ' + a.array_annotation if a.array_annotation else ''))
+                self.outfile.write(' * @out_%s: (out) (optional)%s: Return location for return parameter or %%NULL to ignore.\n'%(a.name, ' ' + a.array_annotation if a.array_annotation else ''))
             if unix_fd:
-                self.outfile.write(' * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.\n')
+                self.outfile.write(' * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.\n')
             self.outfile.write(self.docbook_gen.expand(
                     ' * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to %s_call_%s().\n'
                     ' * @error: Return location for error or %%NULL.\n'
@@ -1772,7 +1780,7 @@ class CodeGenerator:
             if unix_fd:
                 self.outfile.write(' * @fd_list: (nullable): A #GUnixFDList or %NULL.\n')
             for a in m.out_args:
-                self.outfile.write(' * @out_%s: (out)%s: Return location for return parameter or %%NULL to ignore.\n'%(a.name, ' ' + a.array_annotation if a.array_annotation else ''))
+                self.outfile.write(' * @out_%s: (out) (optional)%s: Return location for return parameter or %%NULL to ignore.\n'%(a.name, ' ' + a.array_annotation if a.array_annotation else ''))
             if unix_fd:
                 self.outfile.write(' * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.\n')
             self.outfile.write(self.docbook_gen.expand(
@@ -2889,14 +2897,17 @@ class CodeGenerator:
                                '  const GValue *value,\n'
                                '  GParamSpec   *pspec)\n'
                                '{\n'%(i.name_lower))
-            self.outfile.write('  %sSkeleton *skeleton = %s%s_SKELETON (object);\n'
+            self.outfile.write('  const _ExtendedGDBusPropertyInfo *info;\n'
+                               '  %sSkeleton *skeleton = %s%s_SKELETON (object);\n'
                                '  g_assert (prop_id != 0 && prop_id - 1 < %d);\n'
+                               '  info = (const _ExtendedGDBusPropertyInfo *) _%s_property_info_pointers[prop_id - 1];\n'
                                '  g_mutex_lock (&skeleton->priv->lock);\n'
                                '  g_object_freeze_notify (object);\n'
                                '  if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))\n'
                                '    {\n'
-                               '      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL)\n'
-                               '        _%s_schedule_emit_changed (skeleton, (const _ExtendedGDBusPropertyInfo *) _%s_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]);\n'
+                               '      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&\n'
+                               '          info->emits_changed_signal)\n'
+                               '        _%s_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);\n'
                                '      g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);\n'
                                '      g_object_notify_by_pspec (object, pspec);\n'
                                '    }\n'
@@ -3062,9 +3073,12 @@ class CodeGenerator:
                     '   * Connect to the #GObject::notify signal to get informed of property changes.\n'
                     %(self.namespace, i.name_hyphen, i.camel_name, i.name), False))
             self.write_gtkdoc_deprecated_and_since_and_close(i, self.outfile, 2)
-            self.outfile.write('  g_object_interface_install_property (iface, g_param_spec_object ("%s", "%s", "%s", %sTYPE_%s, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));\n'
+            flags = 'G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS'
+            if i.deprecated:
+                flags = 'G_PARAM_DEPRECATED | ' + flags
+            self.outfile.write('  g_object_interface_install_property (iface, g_param_spec_object ("%s", "%s", "%s", %sTYPE_%s, %s));\n'
                                '\n'
-                               %(i.name_hyphen, i.name_hyphen, i.name_hyphen, self.ns_upper, i.name_upper))
+                               %(i.name_hyphen, i.name_hyphen, i.name_hyphen, self.ns_upper, i.name_upper, flags))
         self.outfile.write('}\n'
                            '\n')
 
@@ -3076,7 +3090,7 @@ class CodeGenerator:
                     ' *\n'
                     ' * Gets the #%s instance for the D-Bus interface #%s on @object, if any.\n'
                     ' *\n'
-                    ' * Returns: (transfer full): A #%s that must be freed with g_object_unref() or %%NULL if @object does not implement the interface.\n'
+                    ' * Returns: (transfer full) (nullable): A #%s that must be freed with g_object_unref() or %%NULL if @object does not implement the interface.\n'
                     %(self.ns_lower, i.name_upper.lower(), self.namespace, i.camel_name, i.name, i.camel_name), False))
             self.write_gtkdoc_deprecated_and_since_and_close(i, self.outfile, 0)
             self.outfile.write('%s *%sobject_get_%s (%sObject *object)\n'
@@ -3101,7 +3115,7 @@ class CodeGenerator:
                     ' *\n'
                     ' * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>\n'
                     ' *\n'
-                    ' * Returns: (transfer none): A #%s or %%NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.\n'
+                    ' * Returns: (transfer none) (nullable): A #%s or %%NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.\n'
                     %(self.ns_lower, i.name_upper.lower(), self.namespace, self.ns_lower, i.name_upper.lower(), i.camel_name), False))
             self.write_gtkdoc_deprecated_and_since_and_close(i, self.outfile, 0)
             self.outfile.write('%s *%sobject_peek_%s (%sObject *object)\n'
index 2ff736a..60c53c4 100644 (file)
@@ -354,6 +354,7 @@ class Property:
         self.doc_string = ''
         self.since = ''
         self.deprecated = False
+        self.emits_changed_signal = True
 
     def post_process(self, interface_prefix, cns, cns_upper, cns_lower, containing_iface):
         if len(self.doc_string) == 0:
@@ -386,6 +387,12 @@ class Property:
         for a in self.annotations:
             a.post_process(interface_prefix, cns, cns_upper, cns_lower, self)
 
+        # FIXME: for now we only support 'false' and 'const' on the signal itself, see #674913 and
+        # http://dbus.freedesktop.org/doc/dbus-specification.html#introspection-format
+        # for details
+        if utils.lookup_annotation(self.annotations, 'org.freedesktop.DBus.Property.EmitsChangedSignal') in ('false', 'const'):
+            self.emits_changed_signal = False
+
 class Interface:
     def __init__(self, name):
         self.name = name
index 7270365..677fa76 100644 (file)
@@ -728,6 +728,10 @@ g_dbus_connection_get_property (GObject    *object,
       g_value_set_flags (value, g_dbus_connection_get_capabilities (connection));
       break;
 
+    case PROP_FLAGS:
+      g_value_set_flags (value, g_dbus_connection_get_flags (connection));
+      break;
+
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -874,6 +878,7 @@ g_dbus_connection_class_init (GDBusConnectionClass *klass)
                                                        P_("Flags"),
                                                        G_TYPE_DBUS_CONNECTION_FLAGS,
                                                        G_DBUS_CONNECTION_FLAGS_NONE,
+                                                       G_PARAM_READABLE |
                                                        G_PARAM_WRITABLE |
                                                        G_PARAM_CONSTRUCT_ONLY |
                                                        G_PARAM_STATIC_NAME |
@@ -1186,6 +1191,28 @@ g_dbus_connection_get_capabilities (GDBusConnection *connection)
   return connection->capabilities;
 }
 
+/**
+ * g_dbus_connection_get_flags:
+ * @connection: a #GDBusConnection
+ *
+ * Gets the flags used to construct this connection
+ *
+ * Returns: zero or more flags from the #GDBusConnectionFlags enumeration
+ *
+ * Since: 2.60
+ */
+GDBusConnectionFlags
+g_dbus_connection_get_flags (GDBusConnection *connection)
+{
+  g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), G_DBUS_CONNECTION_FLAGS_NONE);
+
+  /* do not use g_return_val_if_fail(), we want the memory barrier */
+  if (!check_initialized (connection))
+    return G_DBUS_CONNECTION_FLAGS_NONE;
+
+  return connection->flags;
+}
+
 /* ---------------------------------------------------------------------------------------------------- */
 
 /* Called in a temporary thread without holding locks. */
@@ -3009,7 +3036,7 @@ g_dbus_connection_get_guid (GDBusConnection *connection)
  * bus. This can also be used to figure out if @connection is a
  * message bus connection.
  *
- * Returns: the unique name or %NULL if @connection is not a message
+ * Returns: (nullable): the unique name or %NULL if @connection is not a message
  *     bus connection. Do not free this string, it is owned by
  *     @connection.
  *
@@ -3410,6 +3437,11 @@ is_signal_data_for_name_lost_or_acquired (SignalData *signal_data)
  * signal is unsubscribed from, and may be called after @connection
  * has been destroyed.)
  *
+ * The returned subscription identifier is an opaque value which is guaranteed
+ * to never be zero.
+ *
+ * This function can never fail.
+ *
  * Returns: a subscription identifier that can be used with g_dbus_connection_signal_unsubscribe()
  *
  * Since: 2.26
index b2c5035..c37363c 100644 (file)
@@ -114,6 +114,8 @@ void             g_dbus_connection_set_exit_on_close          (GDBusConnection
                                                                gboolean            exit_on_close);
 GLIB_AVAILABLE_IN_ALL
 GDBusCapabilityFlags  g_dbus_connection_get_capabilities      (GDBusConnection    *connection);
+GLIB_AVAILABLE_IN_2_60
+GDBusConnectionFlags  g_dbus_connection_get_flags             (GDBusConnection    *connection);
 
 /* ---------------------------------------------------------------------------------------------------- */
 
index e9601db..dde0642 100644 (file)
@@ -105,7 +105,7 @@ typedef struct
 GDBusNodeInfo *
 g_dbus_node_info_ref (GDBusNodeInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return info;
   g_atomic_int_inc (&info->ref_count);
   return info;
@@ -125,7 +125,7 @@ g_dbus_node_info_ref (GDBusNodeInfo *info)
 GDBusInterfaceInfo *
 g_dbus_interface_info_ref (GDBusInterfaceInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return info;
   g_atomic_int_inc (&info->ref_count);
   return info;
@@ -145,7 +145,7 @@ g_dbus_interface_info_ref (GDBusInterfaceInfo *info)
 GDBusMethodInfo *
 g_dbus_method_info_ref (GDBusMethodInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return info;
   g_atomic_int_inc (&info->ref_count);
   return info;
@@ -165,7 +165,7 @@ g_dbus_method_info_ref (GDBusMethodInfo *info)
 GDBusSignalInfo *
 g_dbus_signal_info_ref (GDBusSignalInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return info;
   g_atomic_int_inc (&info->ref_count);
   return info;
@@ -185,7 +185,7 @@ g_dbus_signal_info_ref (GDBusSignalInfo *info)
 GDBusPropertyInfo *
 g_dbus_property_info_ref (GDBusPropertyInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return info;
   g_atomic_int_inc (&info->ref_count);
   return info;
@@ -205,7 +205,7 @@ g_dbus_property_info_ref (GDBusPropertyInfo *info)
 GDBusArgInfo *
 g_dbus_arg_info_ref (GDBusArgInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return info;
   g_atomic_int_inc (&info->ref_count);
   return info;
@@ -225,7 +225,7 @@ g_dbus_arg_info_ref (GDBusArgInfo *info)
 GDBusAnnotationInfo *
 g_dbus_annotation_info_ref (GDBusAnnotationInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return info;
   g_atomic_int_inc (&info->ref_count);
   return info;
@@ -258,7 +258,7 @@ free_null_terminated_array (gpointer array, GDestroyNotify unref_func)
 void
 g_dbus_annotation_info_unref (GDBusAnnotationInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return;
   if (g_atomic_int_dec_and_test (&info->ref_count))
     {
@@ -282,7 +282,7 @@ g_dbus_annotation_info_unref (GDBusAnnotationInfo *info)
 void
 g_dbus_arg_info_unref (GDBusArgInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return;
   if (g_atomic_int_dec_and_test (&info->ref_count))
     {
@@ -306,7 +306,7 @@ g_dbus_arg_info_unref (GDBusArgInfo *info)
 void
 g_dbus_method_info_unref (GDBusMethodInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return;
   if (g_atomic_int_dec_and_test (&info->ref_count))
     {
@@ -331,7 +331,7 @@ g_dbus_method_info_unref (GDBusMethodInfo *info)
 void
 g_dbus_signal_info_unref (GDBusSignalInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return;
   if (g_atomic_int_dec_and_test (&info->ref_count))
     {
@@ -355,7 +355,7 @@ g_dbus_signal_info_unref (GDBusSignalInfo *info)
 void
 g_dbus_property_info_unref (GDBusPropertyInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return;
   if (g_atomic_int_dec_and_test (&info->ref_count))
     {
@@ -379,7 +379,7 @@ g_dbus_property_info_unref (GDBusPropertyInfo *info)
 void
 g_dbus_interface_info_unref (GDBusInterfaceInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return;
   if (g_atomic_int_dec_and_test (&info->ref_count))
     {
@@ -405,7 +405,7 @@ g_dbus_interface_info_unref (GDBusInterfaceInfo *info)
 void
 g_dbus_node_info_unref (GDBusNodeInfo *info)
 {
-  if (info->ref_count == -1)
+  if (g_atomic_int_get (&info->ref_count) == -1)
     return;
   if (g_atomic_int_dec_and_test (&info->ref_count))
     {
index 169e6fd..b9f32e9 100644 (file)
@@ -2148,18 +2148,20 @@ g_dbus_message_new_from_blob (guchar                *blob,
       else if (signature_str_len > 0)
         {
           GVariantType *variant_type;
-          gchar *tupled_signature_str;
+          gchar *tupled_signature_str = g_strdup_printf ("(%s)", signature_str);
 
-          if (!g_variant_is_signature (signature_str))
+          if (!g_variant_is_signature (signature_str) ||
+              !g_variant_type_string_is_valid (tupled_signature_str))
             {
               g_set_error (error,
                            G_IO_ERROR,
                            G_IO_ERROR_INVALID_ARGUMENT,
                            _("Parsed value “%s” is not a valid D-Bus signature (for body)"),
                            signature_str);
+              g_free (tupled_signature_str);
               goto out;
             }
-          tupled_signature_str = g_strdup_printf ("(%s)", signature_str);
+
           variant_type = g_variant_type_new (tupled_signature_str);
           g_free (tupled_signature_str);
 #ifdef DEBUG_SERIALIZER
index ae70583..6a1be42 100644 (file)
@@ -59,8 +59,7 @@
  * well-known name, the property cache is flushed when the name owner
  * vanishes and reloaded when a name owner appears.
  *
- * If a #GDBusProxy is used for a well-known name, the owner of the
- * name is tracked and can be read from
+ * The unique name owner of the proxy's name is tracked and can be read from
  * #GDBusProxy:g-name-owner. Connect to the #GObject::notify signal to
  * get notified of changes. Additionally, only signals and property
  * changes emitted from the current name owner are considered and
@@ -1769,7 +1768,8 @@ async_initable_init_first (GAsyncInitable *initable)
                                             (GDestroyNotify) signal_subscription_unref);
     }
 
-  if (proxy->priv->name != NULL && !g_dbus_is_unique_name (proxy->priv->name))
+  if (proxy->priv->name != NULL &&
+      (g_dbus_connection_get_flags (proxy->priv->connection) & G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION))
     {
       proxy->priv->name_owner_changed_subscription_id =
         g_dbus_connection_signal_subscribe (proxy->priv->connection,
@@ -1996,6 +1996,10 @@ initable_iface_init (GInitableIface *initable_iface)
  * match rules for signals. Connect to the #GDBusProxy::g-signal signal
  * to handle signals from the remote object.
  *
+ * If both %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES and
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS are set, this constructor is
+ * guaranteed to complete immediately without blocking.
+ *
  * If @name is a well-known name and the
  * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
  * flags aren't set and no name owner currently exists, the message bus
@@ -2096,6 +2100,10 @@ g_dbus_proxy_new_finish (GAsyncResult  *res,
  * match rules for signals. Connect to the #GDBusProxy::g-signal signal
  * to handle signals from the remote object.
  *
+ * If both %G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES and
+ * %G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS are set, this constructor is
+ * guaranteed to return immediately without blocking.
+ *
  * If @name is a well-known name and the
  * %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
  * flags aren't set and no name owner currently exists, the message bus
@@ -2723,7 +2731,8 @@ g_dbus_proxy_call_internal (GDBusProxy          *proxy,
               g_task_return_new_error (task,
                                        G_IO_ERROR,
                                        G_IO_ERROR_FAILED,
-                                       _("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"));
+                                       _("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"),
+                                       proxy->priv->name);
               g_object_unref (task);
             }
           G_UNLOCK (properties_lock);
@@ -2854,10 +2863,11 @@ g_dbus_proxy_call_sync_internal (GDBusProxy      *proxy,
       destination = g_strdup (get_destination_for_call (proxy));
       if (destination == NULL)
         {
-          g_set_error_literal (error,
-                               G_IO_ERROR,
-                               G_IO_ERROR_FAILED,
-                               _("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"));
+          g_set_error (error,
+                       G_IO_ERROR,
+                       G_IO_ERROR_FAILED,
+                       _("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"),
+                       proxy->priv->name);
           ret = NULL;
           G_UNLOCK (properties_lock);
           goto out;
index d0ffbac..9ebfce4 100644 (file)
@@ -152,6 +152,7 @@ typedef struct
 
 static DesktopFileDir *desktop_file_dirs;
 static guint           n_desktop_file_dirs;
+static const gchar    *desktop_file_dirs_config_dir = NULL;
 static const guint     desktop_file_dir_user_config_index = 0;
 static guint           desktop_file_dir_user_data_index;
 static GMutex          desktop_file_dir_lock;
@@ -1476,9 +1477,24 @@ static void
 desktop_file_dirs_lock (void)
 {
   gint i;
+  const gchar *user_config_dir = g_get_user_config_dir ();
 
   g_mutex_lock (&desktop_file_dir_lock);
 
+  /* If the XDG dirs configuration has changed (expected only during tests),
+   * clear and reload the state. */
+  if (g_strcmp0 (desktop_file_dirs_config_dir, user_config_dir) != 0)
+    {
+      g_debug ("%s: Resetting desktop app info dirs from %s to %s",
+               G_STRFUNC, desktop_file_dirs_config_dir, user_config_dir);
+
+      for (i = 0; i < n_desktop_file_dirs; i++)
+        desktop_file_dir_reset (&desktop_file_dirs[i]);
+      g_clear_pointer (&desktop_file_dirs, g_free);
+      n_desktop_file_dirs = 0;
+      desktop_file_dir_user_data_index = 0;
+    }
+
   if (desktop_file_dirs == NULL)
     {
       const char * const *dirs;
@@ -1488,7 +1504,7 @@ desktop_file_dirs_lock (void)
       tmp = g_array_new (FALSE, FALSE, sizeof (DesktopFileDir));
 
       /* First, the configs.  Highest priority: the user's ~/.config */
-      desktop_file_dir_create_for_config (tmp, g_get_user_config_dir ());
+      desktop_file_dir_create_for_config (tmp, user_config_dir);
 
       /* Next, the system configs (/etc/xdg, and so on). */
       dirs = g_get_system_config_dirs ();
@@ -1504,9 +1520,11 @@ desktop_file_dirs_lock (void)
       for (i = 0; dirs[i]; i++)
         desktop_file_dir_create (tmp, dirs[i]);
 
-      /* The list of directories will never change after this. */
+      /* The list of directories will never change after this, unless
+       * g_get_user_config_dir() changes due to %G_TEST_OPTION_ISOLATE_DIRS. */
       desktop_file_dirs = (DesktopFileDir *) tmp->data;
       n_desktop_file_dirs = tmp->len;
+      desktop_file_dirs_config_dir = user_config_dir;
 
       g_array_free (tmp, FALSE);
     }
@@ -3191,6 +3209,8 @@ ensure_dir (DirType   type,
       g_assert_not_reached ();
     }
 
+  g_debug ("%s: Ensuring %s", G_STRFUNC, path);
+
   errno = 0;
   if (g_mkdir_with_parents (path, 0700) == 0)
     return path;
@@ -4535,6 +4555,33 @@ g_desktop_app_info_get_boolean (GDesktopAppInfo *info,
 }
 
 /**
+ * g_desktop_app_info_get_string_list:
+ * @info: a #GDesktopAppInfo
+ * @key: the key to look up
+ * @length: (out) (optional): return location for the number of returned strings, or %NULL
+ *
+ * Looks up a string list value in the keyfile backing @info.
+ *
+ * The @key is looked up in the "Desktop Entry" group.
+ *
+ * Returns: (array zero-terminated=1 length=length) (element-type utf8) (transfer full):
+ *  a %NULL-terminated string array or %NULL if the specified
+ *  key cannot be found. The array should be freed with g_strfreev().
+ *
+ * Since: 2.60.0
+ */
+gchar **
+g_desktop_app_info_get_string_list (GDesktopAppInfo *info,
+                                    const char      *key,
+                                    gsize           *length)
+{
+  g_return_val_if_fail (G_IS_DESKTOP_APP_INFO (info), NULL);
+
+  return g_key_file_get_string_list (info->keyfile,
+                                     G_KEY_FILE_DESKTOP_GROUP, key, length, NULL);
+}
+
+/**
  * g_desktop_app_info_has_key:
  * @info: a #GDesktopAppInfo
  * @key: the key to look up
index 86a3caa..1254038 100644 (file)
@@ -89,6 +89,11 @@ GLIB_AVAILABLE_IN_2_36
 gboolean         g_desktop_app_info_get_boolean       (GDesktopAppInfo *info,
                                                        const char      *key);
 
+GLIB_AVAILABLE_IN_2_60
+gchar **         g_desktop_app_info_get_string_list (GDesktopAppInfo *info,
+                                                     const char      *key,
+                                                     gsize           *length);
+
 GLIB_AVAILABLE_IN_2_38
 const gchar * const *   g_desktop_app_info_list_actions                 (GDesktopAppInfo   *info);
 
index cbcb720..2545371 100644 (file)
@@ -162,6 +162,10 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
    * g_dtls_connection_set_rehandshake_mode().
    *
    * Since: 2.48
+   *
+   * Deprecated: 2.60. Changing the rehandshake mode is no longer
+   *   required for compatibility. Also, rehandshaking has been removed
+   *   from the TLS protocol in TLS 1.3.
    */
   g_object_interface_install_property (iface,
                                        g_param_spec_enum ("rehandshake-mode",
@@ -171,7 +175,8 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
                                                           G_TLS_REHANDSHAKE_NEVER,
                                                           G_PARAM_READWRITE |
                                                           G_PARAM_CONSTRUCT |
-                                                          G_PARAM_STATIC_STRINGS));
+                                                          G_PARAM_STATIC_STRINGS |
+                                                          G_PARAM_DEPRECATED));
   /**
    * GDtlsConnection:certificate:
    *
@@ -227,6 +232,37 @@ g_dtls_connection_default_init (GDtlsConnectionInterface *iface)
                                                            0,
                                                            G_PARAM_READABLE |
                                                            G_PARAM_STATIC_STRINGS));
+  /**
+   * GDtlsConnection:advertised-protocols:
+   *
+   * The list of application-layer protocols that the connection
+   * advertises that it is willing to speak. See
+   * g_dtls_connection_set_advertised_protocols().
+   *
+   * Since: 2.60
+   */
+  g_object_interface_install_property (iface,
+                                       g_param_spec_boxed ("advertised-protocols",
+                                                           P_("Advertised Protocols"),
+                                                           P_("Application-layer protocols available on this connection"),
+                                                           G_TYPE_STRV,
+                                                           G_PARAM_READWRITE |
+                                                           G_PARAM_STATIC_STRINGS));
+  /**
+   * GDtlsConnection:negotiated-protocol:
+   *
+   * The application-layer protocol negotiated during the TLS
+   * handshake. See g_dtls_connection_get_negotiated_protocol().
+   *
+   * Since: 2.60
+   */
+  g_object_interface_install_property (iface,
+                                       g_param_spec_string ("negotiated-protocol",
+                                                            P_("Negotiated Protocol"),
+                                                            P_("Application-layer protocol negotiated for this connection"),
+                                                            NULL,
+                                                            G_PARAM_READABLE |
+                                                            G_PARAM_STATIC_STRINGS));
 
   /**
    * GDtlsConnection::accept-certificate:
@@ -597,6 +633,10 @@ g_dtls_connection_get_require_close_notify (GDtlsConnection *conn)
  * software.
  *
  * Since: 2.48
+ *
+ * Deprecated: 2.60. Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 void
 g_dtls_connection_set_rehandshake_mode (GDtlsConnection     *conn,
@@ -656,8 +696,15 @@ g_dtls_connection_get_rehandshake_mode (GDtlsConnection       *conn)
  * Likewise, on the server side, although a handshake is necessary at
  * the beginning of the communication, you do not need to call this
  * function explicitly unless you want clearer error reporting.
- * However, you may call g_dtls_connection_handshake() later on to
- * renegotiate parameters (encryption methods, etc) with the client.
+ *
+ * If TLS 1.2 or older is in use, you may call
+ * g_dtls_connection_handshake() after the initial handshake to
+ * rehandshake; however, this usage is deprecated because rehandshaking
+ * is no longer part of the TLS protocol in TLS 1.3. Accordingly, the
+ * behavior of calling this function after the initial handshake is now
+ * undefined, except it is guaranteed to be reasonable and
+ * nondestructive so as to preserve compatibility with code written for
+ * older versions of GLib.
  *
  * #GDtlsConnection::accept_certificate may be emitted during the
  * handshake.
@@ -973,3 +1020,63 @@ g_dtls_connection_emit_accept_certificate (GDtlsConnection      *conn,
                  peer_cert, errors, &accept);
   return accept;
 }
+
+/**
+ * g_dtls_connection_set_advertised_protocols:
+ * @conn: a #GDtlsConnection
+ * @protocols: (array zero-terminated=1) (nullable): a %NULL-terminated
+ *   array of ALPN protocol names (eg, "http/1.1", "h2"), or %NULL
+ *
+ * Sets the list of application-layer protocols to advertise that the
+ * caller is willing to speak on this connection. The
+ * Application-Layer Protocol Negotiation (ALPN) extension will be
+ * used to negotiate a compatible protocol with the peer; use
+ * g_dtls_connection_get_negotiated_protocol() to find the negotiated
+ * protocol after the handshake.  Specifying %NULL for the the value
+ * of @protocols will disable ALPN negotiation.
+ *
+ * See [IANA TLS ALPN Protocol IDs](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)
+ * for a list of registered protocol IDs.
+ *
+ * Since: 2.60
+ */
+void
+g_dtls_connection_set_advertised_protocols (GDtlsConnection     *conn,
+                                            const gchar * const *protocols)
+{
+  GDtlsConnectionInterface *iface;
+
+  iface = G_DTLS_CONNECTION_GET_INTERFACE (conn);
+  if (iface->set_advertised_protocols == NULL)
+    return;
+
+  return iface->set_advertised_protocols (conn, protocols);
+}
+
+/**
+ * g_dtls_connection_get_negotiated_protocol:
+ * @conn: a #GDtlsConnection
+ *
+ * Gets the name of the application-layer protocol negotiated during
+ * the handshake.
+ *
+ * If the peer did not use the ALPN extension, or did not advertise a
+ * protocol that matched one of @conn's protocols, or the TLS backend
+ * does not support ALPN, then this will be %NULL. See
+ * g_dtls_connection_set_advertised_protocols().
+ *
+ * Returns: (nullable): the negotiated protocol, or %NULL
+ *
+ * Since: 2.60
+ */
+const gchar *
+g_dtls_connection_get_negotiated_protocol (GDtlsConnection *conn)
+{
+  GDtlsConnectionInterface *iface;
+
+  iface = G_DTLS_CONNECTION_GET_INTERFACE (conn);
+  if (iface->set_advertised_protocols == NULL)
+    return NULL;
+
+  return iface->get_negotiated_protocol (conn);
+}
index 207b6df..364be93 100644 (file)
@@ -45,6 +45,8 @@ typedef struct _GDtlsConnectionInterface GDtlsConnectionInterface;
  * @shutdown: Shut down one or both directions of the connection.
  * @shutdown_async: Start an asynchronous shutdown operation.
  * @shutdown_finish: Finish an asynchronous shutdown operation.
+ * @set_advertised_protocols: Set APLN protocol list
+ * @get_negotiated_protocol: Retrieve ALPN-negotiated protocol
  *
  * Virtual method table for a #GDtlsConnection implementation.
  *
@@ -89,6 +91,10 @@ struct _GDtlsConnectionInterface
   gboolean (*shutdown_finish)    (GDtlsConnection       *conn,
                                   GAsyncResult          *result,
                                   GError               **error);
+
+  void (*set_advertised_protocols)        (GDtlsConnection     *conn,
+                                           const gchar * const *protocols);
+  const gchar *(*get_negotiated_protocol) (GDtlsConnection     *conn);
 };
 
 GLIB_AVAILABLE_IN_2_48
@@ -123,10 +129,10 @@ void                  g_dtls_connection_set_require_close_notify    (GDtlsConnec
 GLIB_AVAILABLE_IN_2_48
 gboolean              g_dtls_connection_get_require_close_notify    (GDtlsConnection       *conn);
 
-GLIB_AVAILABLE_IN_2_48
+GLIB_DEPRECATED_IN_2_60
 void                  g_dtls_connection_set_rehandshake_mode        (GDtlsConnection       *conn,
                                                                      GTlsRehandshakeMode    mode);
-GLIB_AVAILABLE_IN_2_48
+GLIB_DEPRECATED_IN_2_60
 GTlsRehandshakeMode   g_dtls_connection_get_rehandshake_mode        (GDtlsConnection       *conn);
 
 GLIB_AVAILABLE_IN_2_48
@@ -186,6 +192,13 @@ GLIB_AVAILABLE_IN_2_48
 gboolean              g_dtls_connection_emit_accept_certificate     (GDtlsConnection       *conn,
                                                                      GTlsCertificate       *peer_cert,
                                                                      GTlsCertificateFlags   errors);
+GLIB_AVAILABLE_IN_2_60
+void                  g_dtls_connection_set_advertised_protocols    (GDtlsConnection     *conn,
+                                                                     const gchar * const *protocols);
+
+GLIB_AVAILABLE_IN_2_60
+const gchar *          g_dtls_connection_get_negotiated_protocol     (GDtlsConnection    *conn);
+
 G_END_DECLS
 
 #endif /* __G_DTLS_CONNECTION_H__ */
index 201b8c9..e2bdaa3 100644 (file)
@@ -85,6 +85,8 @@
 #define G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT (7340032 + 10)
 #define G_FILE_ATTRIBUTE_ID_DOS_IS_ARCHIVE (8388608 + 1)
 #define G_FILE_ATTRIBUTE_ID_DOS_IS_SYSTEM (8388608 + 2)
+#define G_FILE_ATTRIBUTE_ID_DOS_IS_MOUNTPOINT (8388608 + 3)
+#define G_FILE_ATTRIBUTE_ID_DOS_REPARSE_POINT_TAG (8388608 + 4)
 #define G_FILE_ATTRIBUTE_ID_OWNER_USER (9437184 + 1)
 #define G_FILE_ATTRIBUTE_ID_OWNER_USER_REAL (9437184 + 2)
 #define G_FILE_ATTRIBUTE_ID_OWNER_GROUP (9437184 + 3)
index a595c6f..fa53a9c 100644 (file)
@@ -245,6 +245,8 @@ ensure_attribute_hash (void)
   REGISTER_ATTRIBUTE (UNIX_IS_MOUNTPOINT);
   REGISTER_ATTRIBUTE (DOS_IS_ARCHIVE);
   REGISTER_ATTRIBUTE (DOS_IS_SYSTEM);
+  REGISTER_ATTRIBUTE (DOS_IS_MOUNTPOINT);
+  REGISTER_ATTRIBUTE (DOS_REPARSE_POINT_TAG);
   REGISTER_ATTRIBUTE (OWNER_USER);
   REGISTER_ATTRIBUTE (OWNER_USER_REAL);
   REGISTER_ATTRIBUTE (OWNER_GROUP);
index 8416b4f..2ca623c 100644 (file)
@@ -672,6 +672,33 @@ typedef struct _GFileInfoClass   GFileInfoClass;
  **/
 #define G_FILE_ATTRIBUTE_DOS_IS_SYSTEM "dos::is-system"           /* boolean */
 
+/**
+ * G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT:
+ *
+ * A key in the "dos" namespace for checking if the file is a NTFS mount point
+ * (a volume mount or a junction point).
+ * This attribute is %TRUE if file is a reparse point of type
+ * [IO_REPARSE_TAG_MOUNT_POINT](https://msdn.microsoft.com/en-us/library/dd541667.aspx).
+ * This attribute is only available for DOS file systems.
+ * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
+ *
+ * Since: 2.60
+ **/
+#define G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT "dos::is-mountpoint"   /* boolean */
+
+/**
+ * G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG:
+ *
+ * A key in the "dos" namespace for getting the file NTFS reparse tag.
+ * This value is 0 for files that are not reparse points.
+ * See the [Reparse Tags](https://msdn.microsoft.com/en-us/library/dd541667.aspx)
+ * page for possible reparse tag values. Corresponding #GFileAttributeType
+ * is %G_FILE_ATTRIBUTE_TYPE_UINT32.
+ *
+ * Since: 2.60
+ **/
+#define G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG "dos::reparse-point-tag"   /* uint32 */
+
 /* Owner attributes */
 
 /**
index 99b1c79..d6d1e59 100644 (file)
@@ -1474,6 +1474,11 @@ typedef enum
  * @G_APPLICATION_CAN_OVERRIDE_APP_ID: Allow users to override the
  *     application ID from the command line with `--gapplication-app-id`.
  *     Since: 2.48
+ * @G_APPLICATION_ALLOW_REPLACEMENT: Allow another instance to take over
+ *     the bus name. Since: 2.60
+ * @G_APPLICATION_REPLACE: Take over from another instance. This flag is
+ *     usually set by passing `--gapplication-replace` on the commandline.
+ *     Since: 2.60
  *
  * Flags used to define the behaviour of a #GApplication.
  *
@@ -1491,7 +1496,9 @@ typedef enum
 
   G_APPLICATION_NON_UNIQUE =           (1 << 5),
 
-  G_APPLICATION_CAN_OVERRIDE_APP_ID =  (1 << 6)
+  G_APPLICATION_CAN_OVERRIDE_APP_ID =  (1 << 6),
+  G_APPLICATION_ALLOW_REPLACEMENT   =  (1 << 7),
+  G_APPLICATION_REPLACE             =  (1 << 8)
 } GApplicationFlags;
 
 /**
@@ -1509,6 +1516,9 @@ typedef enum
  * @G_TLS_ERROR_EOF: The TLS connection was closed without proper
  *   notice, which may indicate an attack. See
  *   g_tls_connection_set_require_close_notify().
+ * @G_TLS_ERROR_INAPPROPRIATE_FALLBACK: The TLS handshake failed
+ *   because the client sent the fallback SCSV, indicating a protocol
+ *   downgrade attack. Since: 2.60
  *
  * An error code used with %G_TLS_ERROR in a #GError returned from a
  * TLS-related routine.
@@ -1522,7 +1532,8 @@ typedef enum {
   G_TLS_ERROR_NOT_TLS,
   G_TLS_ERROR_HANDSHAKE,
   G_TLS_ERROR_CERTIFICATE_REQUIRED,
-  G_TLS_ERROR_EOF
+  G_TLS_ERROR_EOF,
+  G_TLS_ERROR_INAPPROPRIATE_FALLBACK
 } GTlsError;
 
 /**
@@ -1589,6 +1600,10 @@ typedef enum {
  * g_tls_connection_set_rehandshake_mode().
  *
  * Since: 2.28
+ *
+ * Deprecated: 2.60. Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 typedef enum {
   G_TLS_REHANDSHAKE_NEVER,
index bf88334..60ccdbf 100644 (file)
@@ -483,7 +483,7 @@ end_element (GMarkupParseContext  *context,
            }
 
          g_free (data->content);
-         data->content_size = g_memory_output_stream_get_size (G_MEMORY_OUTPUT_STREAM (out));
+         data->content_size = g_memory_output_stream_get_data_size (G_MEMORY_OUTPUT_STREAM (out));
          data->content = g_memory_output_stream_steal_data (G_MEMORY_OUTPUT_STREAM (out));
 
          g_object_unref (compressor);
@@ -725,6 +725,7 @@ main (int argc, char **argv)
   gboolean generate_header = FALSE;
   gboolean manual_register = FALSE;
   gboolean internal = FALSE;
+  gboolean external_data = FALSE;
   gboolean generate_dependencies = FALSE;
   gboolean generate_phony_targets = FALSE;
   char *dependency_file = NULL;
@@ -744,6 +745,7 @@ main (int argc, char **argv)
     { "generate-phony-targets", 0, 0, G_OPTION_ARG_NONE, &generate_phony_targets, N_("Include phony targets in the generated dependency file"), NULL },
     { "manual-register", 0, 0, G_OPTION_ARG_NONE, &manual_register, N_("Don’t automatically create and register resource"), NULL },
     { "internal", 0, 0, G_OPTION_ARG_NONE, &internal, N_("Don’t export functions; declare them G_GNUC_INTERNAL"), NULL },
+    { "external-data", 0, 0, G_OPTION_ARG_NONE, &external_data, N_("Don’t embed resource data in the C file; assume it's linked externally instead"), NULL },
     { "c-name", 0, 0, G_OPTION_ARG_STRING, &c_name, N_("C identifier name used for the generated source code"), NULL },
     { NULL }
   };
@@ -1086,31 +1088,63 @@ main (int argc, char **argv)
               "#else\n"
               "# define SECTION\n"
               "#endif\n"
-              "\n"
-              "static const SECTION union { const guint8 data[%"G_GSIZE_FORMAT"]; const double alignment; void * const ptr;}  %s_resource_data = { {\n",
-              c_name_no_underscores, data_size, c_name);
-
-      for (i = 0; i < data_size; i++) {
-       if (i % 8 == 0)
-         g_fprintf (file, "  ");
-       g_fprintf (file, "0x%2.2x", (int)data[i]);
-       if (i != data_size - 1)
-         g_fprintf (file, ", ");
-       if ((i % 8 == 7) || (i == data_size - 1))
-         g_fprintf (file, "\n");
-      }
+              "\n",
+              c_name_no_underscores);
+
+      if (external_data)
+        {
+          g_fprintf (file,
+                     "extern const SECTION union { const guint8 data[%"G_GSIZE_FORMAT"]; const double alignment; void * const ptr;}  %s_resource_data;"
+                     "\n",
+                     data_size, c_name);
+        }
+      else
+        {
+          /* For Visual Studio builds: Avoid surpassing the 65535-character limit for a string, GitLab issue #1580 */
+          g_fprintf (file, "#ifdef _MSC_VER\n");
+          g_fprintf (file,
+                     "static const SECTION union { const guint8 data[%"G_GSIZE_FORMAT"]; const double alignment; void * const ptr;}  %s_resource_data = { {\n",
+                     data_size + 1 /* nul terminator */, c_name);
+
+          for (i = 0; i < data_size; i++)
+            {
+              if (i % 16 == 0)
+                g_fprintf (file, "  ");
+              g_fprintf (file, "0%3.3o", (int)data[i]);
+              if (i != data_size - 1)
+                g_fprintf (file, ", ");
+              if (i % 16 == 15 || i == data_size - 1)
+                g_fprintf (file, "\n");
+            }
+
+          g_fprintf (file, "} };\n");
+
+          /* For other compilers, use the long string approach */
+          g_fprintf (file, "#else /* _MSC_VER */\n");
+          g_fprintf (file,
+                     "static const SECTION union { const guint8 data[%"G_GSIZE_FORMAT"]; const double alignment; void * const ptr;}  %s_resource_data = {\n  \"",
+                     data_size + 1 /* nul terminator */, c_name);
 
-      g_fprintf (file, "} };\n");
+          for (i = 0; i < data_size; i++)
+            {
+              g_fprintf (file, "\\%3.3o", (int)data[i]);
+              if (i % 16 == 15)
+                g_fprintf (file, "\"\n  \"");
+            }
+
+          g_fprintf (file, "\" };\n");
+          g_fprintf (file, "#endif /* !_MSC_VER */\n");
+        }
 
       g_fprintf (file,
               "\n"
-              "static GStaticResource static_resource = { %s_resource_data.data, sizeof (%s_resource_data.data), NULL, NULL, NULL };\n"
+              "static GStaticResource static_resource = { %s_resource_data.data, sizeof (%s_resource_data.data)%s, NULL, NULL, NULL };\n"
               "%s GResource *%s_get_resource (void);\n"
               "GResource *%s_get_resource (void)\n"
               "{\n"
               "  return g_static_resource_get_resource (&static_resource);\n"
               "}\n",
-              c_name, c_name, linkage, c_name, c_name);
+              c_name, c_name, (external_data ? "" : " - 1 /* nul terminator */"), linkage, c_name, c_name);
 
 
       if (manual_register)
index c91dcb3..ae8e2c1 100644 (file)
@@ -125,10 +125,8 @@ g_list_store_set_property (GObject      *object,
   switch (property_id)
     {
     case PROP_ITEM_TYPE: /* construct-only */
+      g_assert (g_type_is_a (g_value_get_gtype (value), G_TYPE_OBJECT));
       store->item_type = g_value_get_gtype (value);
-      if (!g_type_is_a (store->item_type, G_TYPE_OBJECT))
-        g_critical ("GListStore cannot store items of type '%s'. Items must be GObjects.",
-                    g_type_name (store->item_type));
       break;
 
     default:
@@ -486,8 +484,7 @@ g_list_store_splice (GListStore *store,
               return;
             }
 
-          it = g_sequence_insert_before (it, g_object_ref (additions[i]));
-          it = g_sequence_iter_next (it);
+          g_sequence_insert_before (it, g_object_ref (additions[i]));
         }
     }
 
index d86a0ce..59cfb9b 100644 (file)
@@ -1063,7 +1063,7 @@ make_valid_utf8 (const char *name)
 {
   GString *string;
   const gchar *remainder, *invalid;
-  gint remaining_bytes, valid_bytes;
+  gsize remaining_bytes, valid_bytes;
   
   string = NULL;
   remainder = name;
@@ -1071,7 +1071,7 @@ make_valid_utf8 (const char *name)
   
   while (remaining_bytes != 0) 
     {
-      if (g_utf8_validate (remainder, remaining_bytes, &invalid))
+      if (g_utf8_validate_len (remainder, remaining_bytes, &invalid))
        break;
       valid_bytes = invalid - remainder;
     
@@ -1867,6 +1867,12 @@ _g_local_file_info_get (const char             *basename,
 
   if (statbuf.attributes & FILE_ATTRIBUTE_SYSTEM)
     _g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_SYSTEM, TRUE);
+
+  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);
+
+  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);
 #endif
 
   symlink_target = NULL;
index 7b0a824..8a4c4ec 100644 (file)
@@ -834,6 +834,7 @@ static void g_local_file_monitor_class_init (GLocalFileMonitorClass *class)
 
 static GLocalFileMonitor *
 g_local_file_monitor_new (gboolean   is_remote_fs,
+                          gboolean   is_directory,
                           GError   **error)
 {
   GType type = G_TYPE_INVALID;
@@ -843,7 +844,8 @@ g_local_file_monitor_new (gboolean   is_remote_fs,
                                           "GIO_USE_FILE_MONITOR",
                                           G_STRUCT_OFFSET (GLocalFileMonitorClass, is_supported));
 
-  if (type == G_TYPE_INVALID)
+  /* Fallback rather to poll file monitor for remote files, see gfile.c. */
+  if (type == G_TYPE_INVALID && (!is_remote_fs || is_directory))
     type = _g_io_module_get_default_type (G_LOCAL_FILE_MONITOR_EXTENSION_POINT_NAME,
                                           "GIO_USE_FILE_MONITOR",
                                           G_STRUCT_OFFSET (GLocalFileMonitorClass, is_supported));
@@ -869,7 +871,7 @@ g_local_file_monitor_new_for_path (const gchar        *pathname,
 
   is_remote_fs = g_local_file_is_remote (pathname);
 
-  monitor = g_local_file_monitor_new (is_remote_fs, error);
+  monitor = g_local_file_monitor_new (is_remote_fs, is_directory, error);
 
   if (monitor)
     g_local_file_monitor_start (monitor, pathname, is_directory, flags, g_main_context_get_thread_default ());
@@ -890,7 +892,7 @@ g_local_file_monitor_new_in_worker (const gchar           *pathname,
 
   is_remote_fs = g_local_file_is_remote (pathname);
 
-  monitor = g_local_file_monitor_new (is_remote_fs, error);
+  monitor = g_local_file_monitor_new (is_remote_fs, is_directory, error);
 
   if (monitor)
     {
index d59acb3..c3f5d25 100644 (file)
@@ -548,7 +548,7 @@ g_mount_operation_class_init (GMountOperationClass *klass)
    * GMountOperation:is-tcrypt-hidden-volume:
    *
    * Whether the device to be unlocked is a TCRYPT hidden volume.
-   * See https://www.veracrypt.fr/en/Hidden%20Volume.html.
+   * See [the VeraCrypt documentation](https://www.veracrypt.fr/en/Hidden%20Volume.html).
    *
    * Since: 2.58
    */
@@ -568,7 +568,7 @@ g_mount_operation_class_init (GMountOperationClass *klass)
   * In this context, a system volume is a volume with a bootloader
   * and operating system installed. This is only supported for Windows
   * operating systems. For further documentation, see
-  * https://www.veracrypt.fr/en/System%20Encryption.html.
+  * [the VeraCrypt documentation](https://www.veracrypt.fr/en/System%20Encryption.html).
   *
   * Since: 2.58
   */
@@ -585,7 +585,7 @@ g_mount_operation_class_init (GMountOperationClass *klass)
   * GMountOperation:pim:
   *
   * The VeraCrypt PIM value, when unlocking a VeraCrypt volume. See
-  * https://www.veracrypt.fr/en/Personal%20Iterations%20Multiplier%20(PIM).html.
+  * [the VeraCrypt documentation](https://www.veracrypt.fr/en/Personal%20Iterations%20Multiplier%20(PIM).html).
   *
   * Since: 2.58
   */
index 1361fb8..56db2a5 100644 (file)
@@ -66,9 +66,12 @@ struct _GMountOperationClass
 
   /**
    * GMountOperationClass::ask_question:
-   * @op:
-   * @message:
-   * @choices: (array zero-terminated=1) (element-type utf8):
+   * @op: a #GMountOperation
+   * @message: string containing a message to display to the user
+   * @choices: (array zero-terminated=1) (element-type utf8): an array of
+   *    strings for each possible choice
+   *
+   * Virtual implementation of #GMountOperation::ask-question.
    */
   void (* ask_question) (GMountOperation       *op,
                         const char            *message,
@@ -81,10 +84,14 @@ struct _GMountOperationClass
 
   /**
    * GMountOperationClass::show_processes:
-   * @op:
-   * @message:
-   * @processes: (element-type GPid):
-   * @choices: (array zero-terminated=1) (element-type utf8):
+   * @op: a #GMountOperation
+   * @message: string containing a message to display to the user
+   * @processes: (element-type GPid): an array of #GPid for processes blocking
+   *    the operation
+   * @choices: (array zero-terminated=1) (element-type utf8): an array of
+   *    strings for each possible choice
+   *
+   * Virtual implementation of #GMountOperation::show-processes.
    *
    * Since: 2.22
    */
index 8d5a996..1651f89 100644 (file)
@@ -3,6 +3,7 @@
 /* GIO - GLib Input, Output and Streaming Library
  *
  * Copyright (C) 2008 Red Hat, Inc.
+ * Copyright (C) 2018 Igalia S.L.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -47,7 +48,7 @@
  * then attempt to connect to that host, handling the possibility of
  * multiple IP addresses and multiple address families.
  *
- * See #GSocketConnectable for and example of using the connectable
+ * See #GSocketConnectable for an example of using the connectable
  * interface.
  */
 
@@ -215,24 +216,29 @@ g_network_address_get_property (GObject    *object,
 
 }
 
+/*
+ * g_network_address_add_addresses:
+ * @addr: A #GNetworkAddress
+ * @addresses: (transfer full): List of #GSocketAddress
+ * @resolver_serial: Serial of #GResolver used
+ *
+ * Consumes address list and adds them to internal list.
+ */
 static void
-g_network_address_set_addresses (GNetworkAddress *addr,
+g_network_address_add_addresses (GNetworkAddress *addr,
                                  GList           *addresses,
                                  guint64          resolver_serial)
 {
   GList *a;
   GSocketAddress *sockaddr;
 
-  g_return_if_fail (addresses != NULL && addr->priv->sockaddrs == NULL);
-
   for (a = addresses; a; a = a->next)
     {
       sockaddr = g_inet_socket_address_new (a->data, addr->priv->port);
-      addr->priv->sockaddrs = g_list_prepend (addr->priv->sockaddrs, sockaddr);
+      addr->priv->sockaddrs = g_list_append (addr->priv->sockaddrs, sockaddr);
       g_object_unref (a->data);
     }
   g_list_free (addresses);
-  addr->priv->sockaddrs = g_list_reverse (addr->priv->sockaddrs);
 
   addr->priv->resolver_serial = resolver_serial;
 }
@@ -246,7 +252,7 @@ g_network_address_parse_sockaddr (GNetworkAddress *addr)
                                                     addr->priv->port);
   if (sockaddr)
     {
-      addr->priv->sockaddrs = g_list_prepend (addr->priv->sockaddrs, sockaddr);
+      addr->priv->sockaddrs = g_list_append (addr->priv->sockaddrs, sockaddr);
       return TRUE;
     }
   else
@@ -315,7 +321,7 @@ g_network_address_new_loopback (guint16 port)
 
   addrs = g_list_append (addrs, g_inet_address_new_loopback (AF_INET6));
   addrs = g_list_append (addrs, g_inet_address_new_loopback (AF_INET));
-  g_network_address_set_addresses (addr, addrs, 0);
+  g_network_address_add_addresses (addr, g_steal_pointer (&addrs), 0);
 
   return G_SOCKET_CONNECTABLE (addr);
 }
@@ -876,9 +882,14 @@ g_network_address_get_scheme (GNetworkAddress *addr)
 typedef struct {
   GSocketAddressEnumerator parent_instance;
 
-  GNetworkAddress *addr;
-  GList *addresses;
-  GList *next;
+  GNetworkAddress *addr; /* (owned) */
+  GList *addresses; /* (owned) (nullable) */
+  GList *last_tail; /* (unowned) (nullable) */
+  GList *current_item; /* (unowned) (nullable) */
+  GTask *queued_task; /* (owned) (nullable) */
+  GError *last_error; /* (owned) (nullable) */
+  GSource *wait_source; /* (owned) (nullable) */
+  GMainContext *context; /* (owned) (nullable) */
 } GNetworkAddressAddressEnumerator;
 
 typedef struct {
@@ -895,11 +906,139 @@ g_network_address_address_enumerator_finalize (GObject *object)
   GNetworkAddressAddressEnumerator *addr_enum =
     G_NETWORK_ADDRESS_ADDRESS_ENUMERATOR (object);
 
+  if (addr_enum->wait_source)
+    {
+      g_source_destroy (addr_enum->wait_source);
+      g_clear_pointer (&addr_enum->wait_source, g_source_unref);
+    }
+  g_clear_object (&addr_enum->queued_task);
+  g_clear_error (&addr_enum->last_error);
   g_object_unref (addr_enum->addr);
+  g_clear_pointer (&addr_enum->addresses, g_list_free);
+  g_clear_pointer (&addr_enum->context, g_main_context_unref);
 
   G_OBJECT_CLASS (_g_network_address_address_enumerator_parent_class)->finalize (object);
 }
 
+static inline GSocketFamily
+get_address_family (GInetSocketAddress *address)
+{
+  return g_inet_address_get_family (g_inet_socket_address_get_address (address));
+}
+
+static void
+list_split_families (GList  *list,
+                     GList **out_ipv4,
+                     GList **out_ipv6)
+{
+  g_assert (out_ipv4);
+  g_assert (out_ipv6);
+
+  while (list)
+    {
+      GSocketFamily family = get_address_family (list->data);
+      switch (family)
+        {
+          case G_SOCKET_FAMILY_IPV4:
+            *out_ipv4 = g_list_prepend (*out_ipv4, list->data);
+            break;
+          case G_SOCKET_FAMILY_IPV6:
+            *out_ipv6 = g_list_prepend (*out_ipv6, list->data);
+            break;
+          case G_SOCKET_FAMILY_INVALID:
+          case G_SOCKET_FAMILY_UNIX:
+            g_assert_not_reached ();
+        }
+
+      list = g_list_next (list);
+    }
+
+  *out_ipv4 = g_list_reverse (*out_ipv4);
+  *out_ipv6 = g_list_reverse (*out_ipv6);
+}
+
+static GList *
+list_interleave_families (GList *list1,
+                          GList *list2)
+{
+  GList *interleaved = NULL;
+
+  while (list1 || list2)
+    {
+      if (list1)
+        {
+          interleaved = g_list_append (interleaved, list1->data);
+          list1 = g_list_delete_link (list1, list1);
+        }
+      if (list2)
+        {
+          interleaved = g_list_append (interleaved, list2->data);
+          list2 = g_list_delete_link (list2, list2);
+        }
+    }
+
+  return interleaved;
+}
+
+/* list_copy_interleaved:
+ * @list: (transfer container): List to copy
+ *
+ * Does a shallow copy of a list with address families interleaved.
+ *
+ * For example:
+ *   Input: [ipv6, ipv6, ipv4, ipv4]
+ *   Output: [ipv6, ipv4, ipv6, ipv4]
+ *
+ * Returns: (transfer container): A new list
+ */
+static GList *
+list_copy_interleaved (GList *list)
+{
+  GList *ipv4 = NULL, *ipv6 = NULL;
+
+  list_split_families (list, &ipv4, &ipv6);
+  return list_interleave_families (ipv6, ipv4);
+}
+
+/* list_concat_interleaved:
+ * @current_item: (transfer container): Already existing list
+ * @new_list: (transfer none): New list to be interleaved and concatenated
+ *
+ * This differs from g_list_concat() + list_copy_interleaved() in that it sorts
+ * items in the previous list starting from @current_item.
+ *
+ * Returns: (transfer container): New start of list
+ */
+static GList *
+list_concat_interleaved (GList *current_item,
+                         GList *new_list)
+{
+  GList *ipv4 = NULL, *ipv6 = NULL, *interleaved, *trailing = NULL;
+  GSocketFamily last_family = G_SOCKET_FAMILY_IPV4; /* Default to starting with ipv6 */
+
+  if (current_item)
+    {
+      last_family = get_address_family (current_item->data);
+
+      /* Unused addresses will get removed, resorted, then readded */
+      trailing = g_list_next (current_item);
+      current_item->next = NULL;
+    }
+
+  list_split_families (trailing, &ipv4, &ipv6);
+  list_split_families (new_list, &ipv4, &ipv6);
+
+  if (trailing)
+    g_list_free (trailing);
+
+  if (last_family == G_SOCKET_FAMILY_IPV4)
+    interleaved = list_interleave_families (ipv6, ipv4);
+  else
+    interleaved = list_interleave_families (ipv4, ipv6);
+
+  return g_list_concat (current_item, interleaved);
+}
+
 static GSocketAddress *
 g_network_address_address_enumerator_next (GSocketAddressEnumerator  *enumerator,
                                            GCancellable              *cancellable,
@@ -938,36 +1077,34 @@ g_network_address_address_enumerator_next (GSocketAddressEnumerator  *enumerator
               return NULL;
             }
 
-          g_network_address_set_addresses (addr, addresses, serial);
+          g_network_address_add_addresses (addr, g_steal_pointer (&addresses), serial);
         }
-          
-      addr_enum->addresses = addr->priv->sockaddrs;
-      addr_enum->next = addr_enum->addresses;
+
+      addr_enum->current_item = addr_enum->addresses = list_copy_interleaved (addr->priv->sockaddrs);
+      addr_enum->last_tail = g_list_last (addr->priv->sockaddrs);
       g_object_unref (resolver);
     }
 
-  if (addr_enum->next == NULL)
+  if (addr_enum->current_item == NULL)
     return NULL;
 
-  sockaddr = addr_enum->next->data;
-  addr_enum->next = addr_enum->next->next;
+  sockaddr = addr_enum->current_item->data;
+  addr_enum->current_item = g_list_next (addr_enum->current_item);
   return g_object_ref (sockaddr);
 }
 
 static void
-have_addresses (GNetworkAddressAddressEnumerator *addr_enum,
-                GTask *task, GError *error)
+complete_queued_task (GNetworkAddressAddressEnumerator *addr_enum,
+                      GTask                            *task,
+                      GError                           *error)
 {
   GSocketAddress *sockaddr;
 
-  addr_enum->addresses = addr_enum->addr->priv->sockaddrs;
-  addr_enum->next = addr_enum->addresses;
+  addr_enum->current_item = addr_enum->addresses = list_copy_interleaved (addr_enum->addr->priv->sockaddrs);
+  addr_enum->last_tail = g_list_last (addr_enum->addr->priv->sockaddrs);
 
-  if (addr_enum->next)
-    {
-      sockaddr = g_object_ref (addr_enum->next->data);
-      addr_enum->next = addr_enum->next->next;
-    }
+  if (addr_enum->current_item)
+    sockaddr = g_object_ref (addr_enum->current_item->data);
   else
     sockaddr = NULL;
 
@@ -978,28 +1115,125 @@ have_addresses (GNetworkAddressAddressEnumerator *addr_enum,
   g_object_unref (task);
 }
 
+static int
+on_address_timeout (gpointer user_data)
+{
+  GNetworkAddressAddressEnumerator *addr_enum = user_data;
+
+  /* If ipv6 didn't come in yet, just complete the task */
+  if (addr_enum->queued_task != NULL)
+    complete_queued_task (addr_enum, g_steal_pointer (&addr_enum->queued_task),
+                          g_steal_pointer (&addr_enum->last_error));
+
+  g_clear_pointer (&addr_enum->wait_source, g_source_unref);
+  return G_SOURCE_REMOVE;
+}
+
 static void
-got_addresses (GObject      *source_object,
-               GAsyncResult *result,
-               gpointer      user_data)
+got_ipv6_addresses (GObject      *source_object,
+                    GAsyncResult *result,
+                    gpointer      user_data)
 {
-  GTask *task = user_data;
-  GNetworkAddressAddressEnumerator *addr_enum = g_task_get_source_object (task);
+  GNetworkAddressAddressEnumerator *addr_enum = user_data;
   GResolver *resolver = G_RESOLVER (source_object);
   GList *addresses;
   GError *error = NULL;
 
-  if (!addr_enum->addr->priv->sockaddrs)
+  addresses = g_resolver_lookup_by_name_with_flags_finish (resolver, result, &error);
+  if (!error)
     {
-      addresses = g_resolver_lookup_by_name_finish (resolver, result, &error);
+      /* Regardless of which responds first we add them to the enumerator
+       * which does mean the timing of next_async() will potentially change
+       * the results */
+      g_network_address_add_addresses (addr_enum->addr, g_steal_pointer (&addresses),
+                                       g_resolver_get_serial (resolver));
+    }
+  else
+    g_debug ("IPv6 DNS error: %s", error->message);
 
-      if (!error)
-        {
-          g_network_address_set_addresses (addr_enum->addr, addresses,
-                                           g_resolver_get_serial (resolver));
-        }
+  /* If ipv4 was first and waiting on us it can stop waiting */
+  if (addr_enum->wait_source)
+    {
+      g_source_destroy (addr_enum->wait_source);
+      g_clear_pointer (&addr_enum->wait_source, g_source_unref);
+    }
+
+  /* If we got an error before ipv4 then let it handle it.
+   * If we get ipv6 response first or error second then
+   * immediately complete the task.
+   */
+  if (error != NULL && !addr_enum->last_error)
+    {
+      addr_enum->last_error = g_steal_pointer (&error);
+
+      /* This shouldn't happen often but avoid never responding. */
+      addr_enum->wait_source = g_timeout_source_new_seconds (1);
+      g_source_set_callback (addr_enum->wait_source,
+                             on_address_timeout,
+                             addr_enum, NULL);
+      g_source_attach (addr_enum->wait_source, addr_enum->context);
+    }
+  else if (addr_enum->queued_task != NULL)
+    {
+      g_clear_error (&addr_enum->last_error);
+      complete_queued_task (addr_enum, g_steal_pointer (&addr_enum->queued_task),
+                            g_steal_pointer (&error));
+    }
+  else if (error != NULL)
+    g_clear_error (&error);
+
+  g_object_unref (addr_enum);
+}
+
+static void
+got_ipv4_addresses (GObject      *source_object,
+                    GAsyncResult *result,
+                    gpointer      user_data)
+{
+  GNetworkAddressAddressEnumerator *addr_enum = user_data;
+  GResolver *resolver = G_RESOLVER (source_object);
+  GList *addresses;
+  GError *error = NULL;
+
+  addresses = g_resolver_lookup_by_name_with_flags_finish (resolver, result, &error);
+  if (!error)
+    {
+      g_network_address_add_addresses (addr_enum->addr, g_steal_pointer (&addresses),
+                                       g_resolver_get_serial (resolver));
+    }
+  else
+    g_debug ("IPv4 DNS error: %s", error->message);
+
+  if (addr_enum->wait_source)
+    {
+      g_source_destroy (addr_enum->wait_source);
+      g_clear_pointer (&addr_enum->wait_source, g_source_unref);
     }
-  have_addresses (addr_enum, task, error);
+
+  /* If ipv6 already came in and errored then we return.
+   * If ipv6 returned successfully then we don't need to do anything.
+   * Otherwise we should wait a short while for ipv6 as RFC 8305 suggests.
+   */
+  if (addr_enum->last_error)
+    {
+      g_assert (addr_enum->queued_task);
+      g_clear_error (&addr_enum->last_error);
+      complete_queued_task (addr_enum, g_steal_pointer (&addr_enum->queued_task),
+                            g_steal_pointer (&error));
+    }
+  else if (addr_enum->queued_task != NULL)
+    {
+      addr_enum->last_error = g_steal_pointer (&error);
+      addr_enum->wait_source = g_timeout_source_new (50);
+      g_source_set_callback (addr_enum->wait_source,
+                             on_address_timeout,
+                             addr_enum, NULL);
+      g_source_attach (addr_enum->wait_source, addr_enum->context);
+    }
+  else if (error != NULL)
+    g_clear_error (&error);
+
+  g_object_unref (addr_enum);
 }
 
 static void
@@ -1012,6 +1246,7 @@ g_network_address_address_enumerator_next_async (GSocketAddressEnumerator  *enum
     G_NETWORK_ADDRESS_ADDRESS_ENUMERATOR (enumerator);
   GSocketAddress *sockaddr;
   GTask *task;
+  GNetworkAddress *addr = addr_enum->addr;
 
   task = g_task_new (addr_enum, cancellable, callback, user_data);
   g_task_set_source_tag (task, g_network_address_address_enumerator_next_async);
@@ -1030,33 +1265,61 @@ g_network_address_address_enumerator_next_async (GSocketAddressEnumerator  *enum
           addr->priv->sockaddrs = NULL;
         }
 
-      if (!addr->priv->sockaddrs)
+      if (addr->priv->sockaddrs == NULL)
         {
           if (g_network_address_parse_sockaddr (addr))
-            have_addresses (addr_enum, task, NULL);
+            complete_queued_task (addr_enum, task, NULL);
           else
             {
-              g_resolver_lookup_by_name_async (resolver,
-                                               addr->priv->hostname,
-                                               cancellable,
-                                               got_addresses, task);
+              /* It does not make sense for this to be called multiple
+               * times before the initial callback has been called */
+              g_assert (addr_enum->queued_task == NULL);
+
+              addr_enum->queued_task = g_steal_pointer (&task);
+              /* Lookup in parallel as per RFC 8305 */
+              g_resolver_lookup_by_name_with_flags_async (resolver,
+                                                          addr->priv->hostname,
+                                                          G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY,
+                                                          cancellable,
+                                                          got_ipv6_addresses, g_object_ref (addr_enum));
+              g_resolver_lookup_by_name_with_flags_async (resolver,
+                                                          addr->priv->hostname,
+                                                          G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY,
+                                                          cancellable,
+                                                          got_ipv4_addresses, g_object_ref (addr_enum));
             }
           g_object_unref (resolver);
           return;
         }
 
-      addr_enum->addresses = addr->priv->sockaddrs;
-      addr_enum->next = addr_enum->addresses;
       g_object_unref (resolver);
     }
 
-  if (addr_enum->next)
+  if (addr_enum->addresses == NULL)
     {
-      sockaddr = g_object_ref (addr_enum->next->data);
-      addr_enum->next = addr_enum->next->next;
+      g_assert (addr->priv->sockaddrs);
+
+      addr_enum->current_item = addr_enum->addresses = list_copy_interleaved (addr->priv->sockaddrs);
+      sockaddr = g_object_ref (addr_enum->current_item->data);
     }
   else
-    sockaddr = NULL;
+    {
+      GList *parent_tail = g_list_last (addr_enum->addr->priv->sockaddrs);
+
+      if (addr_enum->last_tail != parent_tail)
+        {
+          addr_enum->current_item = list_concat_interleaved (addr_enum->current_item, g_list_next (addr_enum->last_tail));
+          addr_enum->last_tail = parent_tail;
+        }
+
+      if (addr_enum->current_item->next)
+        {
+          addr_enum->current_item = g_list_next (addr_enum->current_item);
+          sockaddr = g_object_ref (addr_enum->current_item->data);
+        }
+      else
+        sockaddr = NULL;
+    }
 
   g_task_return_pointer (task, sockaddr, g_object_unref);
   g_object_unref (task);
@@ -1075,6 +1338,7 @@ g_network_address_address_enumerator_next_finish (GSocketAddressEnumerator  *enu
 static void
 _g_network_address_address_enumerator_init (GNetworkAddressAddressEnumerator *enumerator)
 {
+  enumerator->context = g_main_context_ref_thread_default ();
 }
 
 static void
index 3841e69..95de879 100644 (file)
@@ -52,9 +52,11 @@ struct _GNetworkMonitorNetlinkPrivate
   GPtrArray *dump_networks;
 };
 
-static gboolean read_netlink_messages (GSocket             *socket,
-                                       GIOCondition         condition,
-                                       gpointer             user_data);
+static gboolean read_netlink_messages (GNetworkMonitorNetlink  *nl,
+                                       GError                 **error);
+static gboolean read_netlink_messages_callback (GSocket             *socket,
+                                                GIOCondition         condition,
+                                                gpointer             user_data);
 static gboolean request_dump (GNetworkMonitorNetlink  *nl,
                               GError                 **error);
 
@@ -139,15 +141,20 @@ g_network_monitor_netlink_initable_init (GInitable     *initable,
    */
   while (nl->priv->dump_networks)
     {
-      if (!read_netlink_messages (NULL, G_IO_IN, nl))
-        break;
+      GError *local_error = NULL;
+      if (!read_netlink_messages (nl, &local_error))
+        {
+          g_warning ("%s", local_error->message);
+          g_clear_error (&local_error);
+          break;
+        }
     }
 
   g_socket_set_blocking (nl->priv->sock, FALSE);
   nl->priv->context = g_main_context_ref_thread_default ();
   nl->priv->source = g_socket_create_source (nl->priv->sock, G_IO_IN, NULL);
   g_source_set_callback (nl->priv->source,
-                         (GSourceFunc) read_netlink_messages, nl, NULL);
+                         (GSourceFunc) read_netlink_messages_callback, nl, NULL);
   g_source_attach (nl->priv->source, nl->priv->context);
 
   return initable_parent_iface->init (initable, cancellable, error);
@@ -287,15 +294,13 @@ finish_dump (GNetworkMonitorNetlink *nl)
 }
 
 static gboolean
-read_netlink_messages (GSocket      *socket,
-                       GIOCondition  condition,
-                       gpointer      user_data)
+read_netlink_messages (GNetworkMonitorNetlink  *nl,
+                       GError                 **error)
 {
-  GNetworkMonitorNetlink *nl = user_data;
   GInputVector iv;
   gssize len;
   gint flags;
-  GError *error = NULL;
+  GError *local_error = NULL;
   GSocketAddress *addr = NULL;
   struct nlmsghdr *msg;
   struct rtmsg *rtmsg;
@@ -310,11 +315,9 @@ read_netlink_messages (GSocket      *socket,
 
   flags = MSG_PEEK | MSG_TRUNC;
   len = g_socket_receive_message (nl->priv->sock, NULL, &iv, 1,
-                                  NULL, NULL, &flags, NULL, &error);
+                                  NULL, NULL, &flags, NULL, &local_error);
   if (len < 0)
     {
-      g_warning ("Error on netlink socket: %s", error->message);
-      g_clear_error (&error);
       retval = FALSE;
       goto done;
     }
@@ -322,19 +325,15 @@ read_netlink_messages (GSocket      *socket,
   iv.buffer = g_malloc (len);
   iv.size = len;
   len = g_socket_receive_message (nl->priv->sock, &addr, &iv, 1,
-                                  NULL, NULL, NULL, NULL, &error);
+                                  NULL, NULL, NULL, NULL, &local_error);
   if (len < 0)
     {
-      g_warning ("Error on netlink socket: %s", error->message);
-      g_clear_error (&error);
       retval = FALSE;
       goto done;
     }
 
-  if (!g_socket_address_to_native (addr, &source_sockaddr, sizeof (source_sockaddr), &error))
+  if (!g_socket_address_to_native (addr, &source_sockaddr, sizeof (source_sockaddr), &local_error))
     {
-      g_warning ("Error on netlink socket: %s", error->message);
-      g_clear_error (&error);
       retval = FALSE;
       goto done;
     }
@@ -348,7 +347,10 @@ read_netlink_messages (GSocket      *socket,
     {
       if (!NLMSG_OK (msg, (size_t) len))
         {
-          g_warning ("netlink message was truncated; shouldn't happen...");
+          g_set_error_literal (&local_error,
+                               G_IO_ERROR,
+                               G_IO_ERROR_PARTIAL_INPUT,
+                               "netlink message was truncated; shouldn't happen...");
           retval = FALSE;
           goto done;
         }
@@ -409,13 +411,21 @@ read_netlink_messages (GSocket      *socket,
           {
             struct nlmsgerr *e = NLMSG_DATA (msg);
 
-            g_warning ("netlink error: %s", g_strerror (-e->error));
+            g_set_error (&local_error,
+                         G_IO_ERROR,
+                         g_io_error_from_errno (-e->error),
+                         "netlink error: %s",
+                         g_strerror (-e->error));
           }
           retval = FALSE;
           goto done;
 
         default:
-          g_warning ("unexpected netlink message %d", msg->nlmsg_type);
+          g_set_error (&local_error,
+                       G_IO_ERROR,
+                       G_IO_ERROR_INVALID_DATA,
+                       "unexpected netlink message %d",
+                       msg->nlmsg_type);
           retval = FALSE;
           goto done;
         }
@@ -427,6 +437,10 @@ read_netlink_messages (GSocket      *socket,
 
   if (!retval && nl->priv->dump_networks)
     finish_dump (nl);
+
+  if (local_error)
+    g_propagate_prefixed_error (error, local_error, "Error on netlink socket: ");
+
   return retval;
 }
 
@@ -459,6 +473,24 @@ g_network_monitor_netlink_finalize (GObject *object)
   G_OBJECT_CLASS (g_network_monitor_netlink_parent_class)->finalize (object);
 }
 
+static gboolean
+read_netlink_messages_callback (GSocket      *socket,
+                                GIOCondition  condition,
+                                gpointer      user_data)
+{
+  GError *error = NULL;
+  GNetworkMonitorNetlink *nl = G_NETWORK_MONITOR_NETLINK (user_data);
+
+  if (!read_netlink_messages (nl, &error))
+    {
+      g_warning ("Error reading netlink message: %s", error->message);
+      g_clear_error (&error);
+      return FALSE;
+    }
+
+  return TRUE;
+}
+
 static void
 g_network_monitor_netlink_class_init (GNetworkMonitorNetlinkClass *nl_class)
 {
index 20a8657..5bc8c92 100644 (file)
@@ -309,6 +309,8 @@ g_network_monitor_nm_initable_init (GInitable     *initable,
 
   if (!name_owner)
     {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   _("NetworkManager not running"));
       g_object_unref (proxy);
       return FALSE;
     }
index a910a2d..40fe3ab 100644 (file)
@@ -52,7 +52,7 @@
  * address families.
  *
  * See #GSrvTarget for more information about SRV records, and see
- * #GSocketConnectable for and example of using the connectable
+ * #GSocketConnectable for an example of using the connectable
  * interface.
  */
 
index 74a486e..ecf04d1 100644 (file)
 #include "gsocketaddressenumerator.h"
 #include "gsocketconnectable.h"
 
+/**
+ * SECTION:gproxyaddressenumerator
+ * @short_description: Proxy wrapper enumerator for socket addresses
+ * @include: gio/gio.h
+ *
+ * #GProxyAddressEnumerator is a wrapper around #GSocketAddressEnumerator which
+ * takes the #GSocketAddress instances returned by the #GSocketAddressEnumerator
+ * and wraps them in #GProxyAddress instances, using the given
+ * #GProxyAddressEnumerator:proxy-resolver.
+ *
+ * This enumerator will be returned (for example, by
+ * g_socket_connectable_enumerate()) as appropriate when a proxy is configured;
+ * there should be no need to manually wrap a #GSocketAddressEnumerator instance
+ * with one.
+ */
+
 #define GET_PRIVATE(o) (G_PROXY_ADDRESS_ENUMERATOR (o)->priv)
 
 enum
index 1b99e35..de9fa83 100644 (file)
@@ -49,12 +49,19 @@ typedef struct _GProxyAddressEnumeratorPrivate GProxyAddressEnumeratorPrivate;
 
 struct _GProxyAddressEnumerator
 {
+  /*< private >*/
   GSocketAddressEnumerator parent_instance;
   GProxyAddressEnumeratorPrivate *priv;
 };
 
+/**
+ * GProxyAddressEnumeratorClass:
+ *
+ * Class structure for #GProxyAddressEnumerator.
+ */
 struct _GProxyAddressEnumeratorClass
 {
+  /*< private >*/
   GSocketAddressEnumeratorClass parent_class;
 
   void (*_g_reserved1) (void);
index b60544a..6a33634 100644 (file)
@@ -3,6 +3,7 @@
 /* GIO - GLib Input, Output and Streaming Library
  *
  * Copyright (C) 2008 Red Hat, Inc.
+ * Copyright (C) 2018 Igalia S.L.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -30,6 +31,7 @@
 #include "gsrvtarget.h"
 #include "gthreadedresolver.h"
 #include "gioerror.h"
+#include "gcancellable.h"
 
 #ifdef G_OS_UNIX
 #include <sys/stat.h>
@@ -347,6 +349,60 @@ handle_ip_address (const char  *hostname,
   return FALSE;
 }
 
+static GList *
+lookup_by_name_real (GResolver                 *resolver,
+                     const gchar               *hostname,
+                     GResolverNameLookupFlags   flags,
+                     GCancellable              *cancellable,
+                     GError                    **error)
+{
+  GList *addrs;
+  gchar *ascii_hostname = NULL;
+
+  g_return_val_if_fail (G_IS_RESOLVER (resolver), NULL);
+  g_return_val_if_fail (hostname != NULL, NULL);
+  g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+  /* Check if @hostname is just an IP address */
+  if (handle_ip_address (hostname, &addrs, error))
+    return addrs;
+
+  if (g_hostname_is_non_ascii (hostname))
+    hostname = ascii_hostname = g_hostname_to_ascii (hostname);
+
+  if (!hostname)
+    {
+      g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                           _("Invalid hostname"));
+      return NULL;
+    }
+
+  g_resolver_maybe_reload (resolver);
+
+  if (flags != G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT)
+    {
+      if (!G_RESOLVER_GET_CLASS (resolver)->lookup_by_name_with_flags)
+        {
+          g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+                       /* Translators: The placeholder is for a function name. */
+                       _("%s not implemented"), "lookup_by_name_with_flags");
+          g_free (ascii_hostname);
+          return NULL;
+        }
+      addrs = G_RESOLVER_GET_CLASS (resolver)->
+        lookup_by_name_with_flags (resolver, hostname, flags, cancellable, error);
+    }
+  else
+    addrs = G_RESOLVER_GET_CLASS (resolver)->
+      lookup_by_name (resolver, hostname, cancellable, error);
+
+  remove_duplicates (addrs);
+
+  g_free (ascii_hostname);
+  return addrs;
+}
+
 /**
  * g_resolver_lookup_by_name:
  * @resolver: a #GResolver
@@ -391,57 +447,53 @@ g_resolver_lookup_by_name (GResolver     *resolver,
                            GCancellable  *cancellable,
                            GError       **error)
 {
-  GList *addrs;
-  gchar *ascii_hostname = NULL;
-
-  g_return_val_if_fail (G_IS_RESOLVER (resolver), NULL);
-  g_return_val_if_fail (hostname != NULL, NULL);
-
-  /* Check if @hostname is just an IP address */
-  if (handle_ip_address (hostname, &addrs, error))
-    return addrs;
-
-  if (g_hostname_is_non_ascii (hostname))
-    hostname = ascii_hostname = g_hostname_to_ascii (hostname);
-
-  if (!hostname)
-    {
-      g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                           _("Invalid hostname"));
-      return NULL;
-    }
-
-  g_resolver_maybe_reload (resolver);
-  addrs = G_RESOLVER_GET_CLASS (resolver)->
-    lookup_by_name (resolver, hostname, cancellable, error);
-
-  remove_duplicates (addrs);
-
-  g_free (ascii_hostname);
-  return addrs;
+  return lookup_by_name_real (resolver,
+                              hostname,
+                              G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT,
+                              cancellable,
+                              error);
 }
 
 /**
- * g_resolver_lookup_by_name_async:
+ * g_resolver_lookup_by_name_with_flags:
  * @resolver: a #GResolver
- * @hostname: the hostname to look up the address of
+ * @hostname: the hostname to look up
+ * @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
+ * @error: (nullable): return location for a #GError, or %NULL
  *
- * Begins asynchronously resolving @hostname to determine its
- * associated IP address(es), and eventually calls @callback, which
- * must call g_resolver_lookup_by_name_finish() to get the result.
- * See g_resolver_lookup_by_name() for more details.
+ * This differs from g_resolver_lookup_by_name() in that you can modify
+ * the lookup behavior with @flags. For example this can be used to limit
+ * results with #G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY.
  *
- * Since: 2.22
+ * Returns: (element-type GInetAddress) (transfer full): a non-empty #GList
+ * of #GInetAddress, or %NULL on error. You
+ * must unref each of the addresses and free the list when you are
+ * done with it. (You can use g_resolver_free_addresses() to do this.)
+ *
+ * Since: 2.60
  */
-void
-g_resolver_lookup_by_name_async (GResolver           *resolver,
-                                 const gchar         *hostname,
-                                 GCancellable        *cancellable,
-                                 GAsyncReadyCallback  callback,
-                                 gpointer             user_data)
+GList *
+g_resolver_lookup_by_name_with_flags (GResolver                 *resolver,
+                                      const gchar               *hostname,
+                                      GResolverNameLookupFlags   flags,
+                                      GCancellable              *cancellable,
+                                      GError                   **error)
+{
+  return lookup_by_name_real (resolver,
+                              hostname,
+                              flags,
+                              cancellable,
+                              error);
+}
+
+static void
+lookup_by_name_async_real (GResolver                *resolver,
+                           const gchar              *hostname,
+                           GResolverNameLookupFlags  flags,
+                           GCancellable             *cancellable,
+                           GAsyncReadyCallback       callback,
+                           gpointer                  user_data)
 {
   gchar *ascii_hostname = NULL;
   GList *addrs;
@@ -449,6 +501,7 @@ g_resolver_lookup_by_name_async (GResolver           *resolver,
 
   g_return_if_fail (G_IS_RESOLVER (resolver));
   g_return_if_fail (hostname != NULL);
+  g_return_if_fail (!(flags & G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY && flags & G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY));
 
   /* Check if @hostname is just an IP address */
   if (handle_ip_address (hostname, &addrs, &error))
@@ -456,7 +509,7 @@ g_resolver_lookup_by_name_async (GResolver           *resolver,
       GTask *task;
 
       task = g_task_new (resolver, cancellable, callback, user_data);
-      g_task_set_source_tag (task, g_resolver_lookup_by_name_async);
+      g_task_set_source_tag (task, lookup_by_name_async_real);
       if (addrs)
         g_task_return_pointer (task, addrs, (GDestroyNotify) g_resolver_free_addresses);
       else
@@ -475,19 +528,136 @@ g_resolver_lookup_by_name_async (GResolver           *resolver,
       g_set_error_literal (&error, G_IO_ERROR, G_IO_ERROR_FAILED,
                            _("Invalid hostname"));
       task = g_task_new (resolver, cancellable, callback, user_data);
-      g_task_set_source_tag (task, g_resolver_lookup_by_name_async);
+      g_task_set_source_tag (task, lookup_by_name_async_real);
       g_task_return_error (task, error);
       g_object_unref (task);
       return;
     }
 
   g_resolver_maybe_reload (resolver);
-  G_RESOLVER_GET_CLASS (resolver)->
-    lookup_by_name_async (resolver, hostname, cancellable, callback, user_data);
+
+  if (flags != G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT)
+    {
+      if (G_RESOLVER_GET_CLASS (resolver)->lookup_by_name_with_flags_async == NULL)
+        {
+          GTask *task;
+
+          g_set_error (&error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+                       /* Translators: The placeholder is for a function name. */
+                       _("%s not implemented"), "lookup_by_name_with_flags_async");
+          task = g_task_new (resolver, cancellable, callback, user_data);
+          g_task_set_source_tag (task, lookup_by_name_async_real);
+          g_task_return_error (task, error);
+          g_object_unref (task);
+        }
+      else
+        G_RESOLVER_GET_CLASS (resolver)->
+          lookup_by_name_with_flags_async (resolver, hostname, flags, cancellable, callback, user_data);
+    }
+  else
+    G_RESOLVER_GET_CLASS (resolver)->
+      lookup_by_name_async (resolver, hostname, cancellable, callback, user_data);
 
   g_free (ascii_hostname);
 }
 
+static GList *
+lookup_by_name_finish_real (GResolver     *resolver,
+                            GAsyncResult  *result,
+                            GError       **error,
+                            gboolean       with_flags)
+{
+  GList *addrs;
+
+  g_return_val_if_fail (G_IS_RESOLVER (resolver), NULL);
+  g_return_val_if_fail (G_IS_ASYNC_RESULT (result), NULL);
+  g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+
+  if (g_async_result_legacy_propagate_error (result, error))
+    return NULL;
+  else if (g_async_result_is_tagged (result, lookup_by_name_async_real))
+    {
+      /* Handle the stringified-IP-addr case */
+      return g_task_propagate_pointer (G_TASK (result), error);
+    }
+
+  if (with_flags)
+    {
+      g_assert (G_RESOLVER_GET_CLASS (resolver)->lookup_by_name_with_flags_finish != NULL);
+      addrs = G_RESOLVER_GET_CLASS (resolver)->
+        lookup_by_name_with_flags_finish (resolver, result, error);
+    }
+  else
+    addrs = G_RESOLVER_GET_CLASS (resolver)->
+      lookup_by_name_finish (resolver, result, error);
+
+  remove_duplicates (addrs);
+
+  return addrs;
+}
+
+/**
+ * g_resolver_lookup_by_name_with_flags_async:
+ * @resolver: a #GResolver
+ * @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
+ *
+ * Begins asynchronously resolving @hostname to determine its
+ * associated IP address(es), and eventually calls @callback, which
+ * must call g_resolver_lookup_by_name_with_flags_finish() to get the result.
+ * See g_resolver_lookup_by_name() for more details.
+ *
+ * Since: 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)
+{
+  lookup_by_name_async_real (resolver,
+                             hostname,
+                             flags,
+                             cancellable,
+                             callback,
+                             user_data);
+}
+
+/**
+ * g_resolver_lookup_by_name_async:
+ * @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
+ *
+ * Begins asynchronously resolving @hostname to determine its
+ * associated IP address(es), and eventually calls @callback, which
+ * must call g_resolver_lookup_by_name_finish() to get the result.
+ * See g_resolver_lookup_by_name() for more details.
+ *
+ * Since: 2.22
+ */
+void
+g_resolver_lookup_by_name_async (GResolver           *resolver,
+                                 const gchar         *hostname,
+                                 GCancellable        *cancellable,
+                                 GAsyncReadyCallback  callback,
+                                 gpointer             user_data)
+{
+  lookup_by_name_async_real (resolver,
+                             hostname,
+                             0,
+                             cancellable,
+                             callback,
+                             user_data);
+}
+
 /**
  * g_resolver_lookup_by_name_finish:
  * @resolver: a #GResolver
@@ -512,24 +682,40 @@ g_resolver_lookup_by_name_finish (GResolver     *resolver,
                                   GAsyncResult  *result,
                                   GError       **error)
 {
-  GList *addrs;
-
-  g_return_val_if_fail (G_IS_RESOLVER (resolver), NULL);
-
-  if (g_async_result_legacy_propagate_error (result, error))
-    return NULL;
-  else if (g_async_result_is_tagged (result, g_resolver_lookup_by_name_async))
-    {
-      /* Handle the stringified-IP-addr case */
-      return g_task_propagate_pointer (G_TASK (result), error);
-    }
-
-  addrs = G_RESOLVER_GET_CLASS (resolver)->
-    lookup_by_name_finish (resolver, result, error);
-
-  remove_duplicates (addrs);
+  return lookup_by_name_finish_real (resolver,
+                                     result,
+                                     error,
+                                     FALSE);
+}
 
-  return addrs;
+/**
+ * g_resolver_lookup_by_name_with_flags_finish:
+ * @resolver: a #GResolver
+ * @result: the result passed to your #GAsyncReadyCallback
+ * @error: return location for a #GError, or %NULL
+ *
+ * Retrieves the result of a call to
+ * g_resolver_lookup_by_name_with_flags_async().
+ *
+ * If the DNS resolution failed, @error (if non-%NULL) will be set to
+ * a value from #GResolverError. If the operation was cancelled,
+ * @error will be set to %G_IO_ERROR_CANCELLED.
+ *
+ * Returns: (element-type GInetAddress) (transfer full): a #GList
+ * of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
+ * for more details.
+ *
+ * Since: 2.60
+ */
+GList *
+g_resolver_lookup_by_name_with_flags_finish (GResolver     *resolver,
+                                             GAsyncResult  *result,
+                                             GError       **error)
+{
+  return lookup_by_name_finish_real (resolver,
+                                     result,
+                                     error,
+                                     TRUE);
 }
 
 /**
index a39e8f7..dc4ba59 100644 (file)
@@ -1,6 +1,7 @@
 /* GIO - GLib Input, Output and Streaming Library
  *
  * Copyright (C) 2008 Red Hat, Inc.
+ * Copyright (C) 2018 Igalia S.L.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -43,158 +44,237 @@ struct _GResolver {
   GResolverPrivate *priv;
 };
 
+/**
+ * GResolverNameLookupFlags:
+ * @G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT: default behavior (same as g_resolver_lookup_by_name())
+ * @G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY: only resolve ipv4 addresses
+ * @G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY: only resolve ipv6 addresses
+ *
+ * Flags to modify lookup behavior.
+ *
+ * Since: 2.60
+ */
+typedef enum {
+  G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT = 0,
+  G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY = 1 << 0,
+  G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY = 1 << 1,
+} GResolverNameLookupFlags;
+
 struct _GResolverClass {
   GObjectClass parent_class;
 
   /* Signals */
-  void    ( *reload)                   (GResolver            *resolver);
+  void    ( *reload)                           (GResolver               *resolver);
 
   /* Virtual methods */
-  GList * ( *lookup_by_name)           (GResolver            *resolver,
-                                       const gchar          *hostname,
-                                       GCancellable         *cancellable,
-                                       GError              **error);
-  void    ( *lookup_by_name_async)     (GResolver            *resolver,
-                                       const gchar          *hostname,
-                                       GCancellable         *cancellable,
-                                       GAsyncReadyCallback   callback,
-                                       gpointer              user_data);
-  GList * ( *lookup_by_name_finish)    (GResolver            *resolver,
-                                       GAsyncResult         *result,
-                                       GError              **error);
-
-  gchar * ( *lookup_by_address)        (GResolver            *resolver,
-                                       GInetAddress         *address,
-                                       GCancellable         *cancellable,
-                                       GError              **error);
-  void    ( *lookup_by_address_async)  (GResolver            *resolver,
-                                       GInetAddress         *address,
-                                       GCancellable         *cancellable,
-                                       GAsyncReadyCallback   callback,
-                                       gpointer              user_data);
-  gchar * ( *lookup_by_address_finish) (GResolver            *resolver,
-                                       GAsyncResult         *result,
-                                       GError              **error);
-
-  GList * ( *lookup_service)           (GResolver            *resolver,
-                                       const gchar          *rrname,
-                                       GCancellable         *cancellable,
-                                       GError              **error);
-  void    ( *lookup_service_async)     (GResolver            *resolver,
-                                       const gchar          *rrname,
-                                       GCancellable         *cancellable,
-                                       GAsyncReadyCallback   callback,
-                                       gpointer              user_data);
-  GList * ( *lookup_service_finish)    (GResolver            *resolver,
-                                       GAsyncResult         *result,
-                                       GError              **error);
-
-  GList * ( *lookup_records)           (GResolver            *resolver,
-                                        const gchar          *rrname,
-                                        GResolverRecordType   record_type,
-                                        GCancellable         *cancellable,
-                                        GError              **error);
-
-  void    ( *lookup_records_async)     (GResolver            *resolver,
-                                        const gchar          *rrname,
-                                        GResolverRecordType   record_type,
-                                        GCancellable         *cancellable,
-                                        GAsyncReadyCallback   callback,
-                                        gpointer              user_data);
-
-  GList * ( *lookup_records_finish)    (GResolver            *resolver,
-                                        GAsyncResult         *result,
-                                        GError              **error);
-
-  /* Padding for future expansion */
-  void (*_g_reserved4) (void);
-  void (*_g_reserved5) (void);
-  void (*_g_reserved6) (void);
+  GList * ( *lookup_by_name)                   (GResolver               *resolver,
+                                                const gchar             *hostname,
+                                                GCancellable            *cancellable,
+                                                GError                 **error);
+  void    ( *lookup_by_name_async)             (GResolver               *resolver,
+                                                const gchar             *hostname,
+                                                GCancellable            *cancellable,
+                                                GAsyncReadyCallback      callback,
+                                                gpointer                 user_data);
+  GList * ( *lookup_by_name_finish)            (GResolver               *resolver,
+                                                GAsyncResult            *result,
+                                                GError                 **error);
+
+  gchar * ( *lookup_by_address)                (GResolver               *resolver,
+                                                GInetAddress            *address,
+                                                GCancellable            *cancellable,
+                                                GError                 **error);
+  void    ( *lookup_by_address_async)          (GResolver               *resolver,
+                                                GInetAddress            *address,
+                                                GCancellable            *cancellable,
+                                                GAsyncReadyCallback      callback,
+                                                gpointer                 user_data);
+  gchar * ( *lookup_by_address_finish)         (GResolver               *resolver,
+                                                GAsyncResult            *result,
+                                                GError                 **error);
+
+  GList * ( *lookup_service)                   (GResolver               *resolver,
+                                                const gchar              *rrname,
+                                                GCancellable             *cancellable,
+                                                GError                  **error);
+  void    ( *lookup_service_async)             (GResolver                *resolver,
+                                                const gchar              *rrname,
+                                                GCancellable             *cancellable,
+                                                GAsyncReadyCallback       callback,
+                                                gpointer                  user_data);
+  GList * ( *lookup_service_finish)            (GResolver                *resolver,
+                                                GAsyncResult             *result,
+                                                GError                  **error);
+
+  GList * ( *lookup_records)                   (GResolver                *resolver,
+                                                const gchar              *rrname,
+                                                GResolverRecordType       record_type,
+                                                GCancellable             *cancellable,
+                                                GError                  **error);
+
+  void    ( *lookup_records_async)             (GResolver                *resolver,
+                                                const gchar              *rrname,
+                                                GResolverRecordType       record_type,
+                                                GCancellable             *cancellable,
+                                                GAsyncReadyCallback       callback,
+                                                gpointer                  user_data);
+
+  GList * ( *lookup_records_finish)            (GResolver                *resolver,
+                                                GAsyncResult             *result,
+                                                GError                   **error);
+  /**
+   * GResolverClass::lookup_by_name_with_flags_async:
+   * @resolver: a #GResolver
+   * @hostname: the hostname to resolve
+   * @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
+   *
+   * Asynchronous version of GResolverClass::lookup_by_name_with_flags
+   *
+   * GResolverClass::lookup_by_name_with_flags_finish will be called to get
+   * the result.
+   *
+   * Since: 2.60
+   */
+  void    ( *lookup_by_name_with_flags_async)  (GResolver                 *resolver,
+                                                const gchar               *hostname,
+                                                GResolverNameLookupFlags   flags,
+                                                GCancellable              *cancellable,
+                                                GAsyncReadyCallback        callback,
+                                                gpointer                   user_data);
+  /**
+   * GResolverClass::lookup_by_name_with_flags_finish:
+   * @resolver: a #GResolver
+   * @result: a #GAsyncResult
+   * @error: (nullable): a pointer to a %NULL #GError
+   *
+   * Gets the result from GResolverClass::lookup_by_name_with_flags_async
+   *
+   * Returns: (element-type GInetAddress) (transfer full): List of #GInetAddress.
+   * Since: 2.60
+   */
+  GList * ( *lookup_by_name_with_flags_finish) (GResolver                 *resolver,
+                                                GAsyncResult              *result,
+                                                GError                   **error);
+  /**
+   * GResolverClass::lookup_by_name_with_flags:
+   * @resolver: a #GResolver
+   * @hostname: the hostname to resolve
+   * @flags: extra #GResolverNameLookupFlags to modify the lookup
+   * @cancellable: (nullable): a #GCancellable
+   * @error: (nullable): a pointer to a %NULL #GError
+   *
+   * This is identical to GResolverClass::lookup_by_name except it takes
+   * @flags which modifies the behavior of the lookup. See #GResolverNameLookupFlags
+   * for more details.
+   *
+   * Returns: (element-type GInetAddress) (transfer full): List of #GInetAddress.
+   * Since: 2.60
+   */
+  GList * ( *lookup_by_name_with_flags)        (GResolver                 *resolver,
+                                                const gchar               *hostname,
+                                                GResolverNameLookupFlags   flags,
+                                                GCancellable              *cancellable,
+                                                GError                   **error);
 
 };
 
 GLIB_AVAILABLE_IN_ALL
-GType      g_resolver_get_type                  (void) G_GNUC_CONST;
+GType      g_resolver_get_type                         (void) G_GNUC_CONST;
 GLIB_AVAILABLE_IN_ALL
-GResolver *g_resolver_get_default               (void);
+GResolver *g_resolver_get_default                      (void);
 GLIB_AVAILABLE_IN_ALL
-void       g_resolver_set_default               (GResolver            *resolver);
-
+void       g_resolver_set_default                      (GResolver                 *resolver);
 GLIB_AVAILABLE_IN_ALL
-GList     *g_resolver_lookup_by_name            (GResolver            *resolver,
-                                                const gchar          *hostname,
-                                                GCancellable         *cancellable,
-                                                GError              **error);
+GList     *g_resolver_lookup_by_name                   (GResolver                 *resolver,
+                                                        const gchar               *hostname,
+                                                        GCancellable              *cancellable,
+                                                        GError                   **error);
 GLIB_AVAILABLE_IN_ALL
-void       g_resolver_lookup_by_name_async      (GResolver            *resolver,
-                                                const gchar          *hostname,
-                                                GCancellable         *cancellable,
-                                                GAsyncReadyCallback   callback,
-                                                gpointer              user_data);
+void       g_resolver_lookup_by_name_async             (GResolver                 *resolver,
+                                                        const gchar               *hostname,
+                                                        GCancellable              *cancellable,
+                                                        GAsyncReadyCallback        callback,
+                                                        gpointer                   user_data);
 GLIB_AVAILABLE_IN_ALL
-GList     *g_resolver_lookup_by_name_finish     (GResolver            *resolver,
-                                                GAsyncResult         *result,
-                                                GError              **error);
-
+GList     *g_resolver_lookup_by_name_finish            (GResolver                 *resolver,
+                                                        GAsyncResult              *result,
+                                                        GError                   **error);
+GLIB_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
+GList     *g_resolver_lookup_by_name_with_flags_finish (GResolver                 *resolver,
+                                                        GAsyncResult              *result,
+                                                        GError                   **error);
+GLIB_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
-void       g_resolver_free_addresses            (GList                *addresses);
-
+void       g_resolver_free_addresses                   (GList                     *addresses);
 GLIB_AVAILABLE_IN_ALL
-gchar     *g_resolver_lookup_by_address         (GResolver            *resolver,
-                                                GInetAddress         *address,
-                                                GCancellable         *cancellable,
-                                                GError              **error);
+gchar     *g_resolver_lookup_by_address                (GResolver                 *resolver,
+                                                        GInetAddress              *address,
+                                                        GCancellable              *cancellable,
+                                                        GError                   **error);
 GLIB_AVAILABLE_IN_ALL
-void       g_resolver_lookup_by_address_async   (GResolver            *resolver,
-                                                GInetAddress         *address,
-                                                GCancellable         *cancellable,
-                                                GAsyncReadyCallback   callback,
-                                                gpointer              user_data);
+void       g_resolver_lookup_by_address_async          (GResolver                 *resolver,
+                                                        GInetAddress              *address,
+                                                        GCancellable              *cancellable,
+                                                        GAsyncReadyCallback        callback,
+                                                        gpointer                   user_data);
 GLIB_AVAILABLE_IN_ALL
-gchar     *g_resolver_lookup_by_address_finish  (GResolver            *resolver,
-                                                GAsyncResult         *result,
-                                                GError              **error);
-
+gchar     *g_resolver_lookup_by_address_finish         (GResolver                 *resolver,
+                                                        GAsyncResult              *result,
+                                                        GError                   **error);
 GLIB_AVAILABLE_IN_ALL
-GList     *g_resolver_lookup_service            (GResolver            *resolver,
-                                                const gchar          *service,
-                                                const gchar          *protocol,
-                                                const gchar          *domain,
-                                                GCancellable         *cancellable,
-                                                GError              **error);
+GList     *g_resolver_lookup_service                   (GResolver                 *resolver,
+                                                        const gchar               *service,
+                                                        const gchar               *protocol,
+                                                        const gchar               *domain,
+                                                        GCancellable              *cancellable,
+                                                        GError                   **error);
 GLIB_AVAILABLE_IN_ALL
-void       g_resolver_lookup_service_async      (GResolver            *resolver,
-                                                const gchar          *service,
-                                                const gchar          *protocol,
-                                                const gchar          *domain,
-                                                GCancellable         *cancellable,
-                                                GAsyncReadyCallback   callback,
-                                                gpointer              user_data);
+void       g_resolver_lookup_service_async             (GResolver                 *resolver,
+                                                        const gchar               *service,
+                                                        const gchar               *protocol,
+                                                        const gchar               *domain,
+                                                        GCancellable              *cancellable,
+                                                        GAsyncReadyCallback        callback,
+                                                        gpointer                   user_data);
 GLIB_AVAILABLE_IN_ALL
-GList     *g_resolver_lookup_service_finish     (GResolver            *resolver,
-                                                GAsyncResult         *result,
-                                                GError              **error);
-
+GList     *g_resolver_lookup_service_finish            (GResolver                 *resolver,
+                                                        GAsyncResult              *result,
+                                                        GError                   **error);
 GLIB_AVAILABLE_IN_2_34
-GList     *g_resolver_lookup_records            (GResolver            *resolver,
-                                                 const gchar          *rrname,
-                                                 GResolverRecordType   record_type,
-                                                 GCancellable         *cancellable,
-                                                 GError              **error);
+GList     *g_resolver_lookup_records                   (GResolver                 *resolver,
+                                                        const gchar               *rrname,
+                                                        GResolverRecordType        record_type,
+                                                        GCancellable              *cancellable,
+                                                        GError                   **error);
 GLIB_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);
+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
-GList     *g_resolver_lookup_records_finish     (GResolver            *resolver,
-                                                 GAsyncResult         *result,
-                                                 GError              **error);
-
+GList     *g_resolver_lookup_records_finish            (GResolver                 *resolver,
+                                                        GAsyncResult              *result,
+                                                        GError                   **error);
 GLIB_AVAILABLE_IN_ALL
-void       g_resolver_free_targets              (GList                *targets);
+void       g_resolver_free_targets                     (GList                     *targets);
+
 
 /**
  * G_RESOLVER_ERROR:
index 5237e7f..6886683 100644 (file)
@@ -36,7 +36,7 @@
  * fixed-size.
  *
  * #GSeekable on fixed-sized streams is approximately the same as POSIX
- * lseek() on a block device (for example: attmepting to seek past the
+ * lseek() on a block device (for example: attempting to seek past the
  * end of the device is an error).  Fixed streams typically cannot be
  * truncated.
  *
index ab7f438..2934f2b 100644 (file)
  *       <default>(20,30)</default>
  *     </key>
  *
+ *     <key name="empty-string" type="s">
+ *       <default>""</default>
+ *       <summary>Empty strings have to be provided in GVariant form</summary>
+ *     </key>
+ *
  *   </schema>
  * </schemalist>
  * ]|
@@ -2469,16 +2474,9 @@ g_settings_list_keys (GSettings *settings)
  * The list is exactly the list of strings for which it is not an error
  * to call g_settings_get_child().
  *
- * For GSettings objects that are lists, this value can change at any
- * time. Note that there is a race condition here: you may
- * request a child after listing it only for it to have been destroyed
- * in the meantime.  For this reason, g_settings_get_child() may return
- * %NULL even for a child that was listed by this function.
- *
- * For GSettings objects that are not lists, you should probably not be
- * calling this function from "normal" code (since you should already
- * know what children are in your schema).  This function may still be
- * useful there for introspection reasons, however.
+ * There is little reason to call this function from "normal" code, since
+ * you should already know what children are in your schema. This function
+ * may still be useful there for introspection reasons, however.
  *
  * You should free the return value with g_strfreev() when you are done
  * with it.
index 859e807..8ceaa16 100644 (file)
@@ -2711,8 +2711,6 @@ g_socket_accept (GSocket       *socket,
 
   while (TRUE)
     {
-      win32_unset_event_mask (socket, FD_ACCEPT);
-
       if ((ret = accept (socket->priv->fd, NULL, 0)) < 0)
        {
          int errsv = get_socket_errno ();
@@ -2727,6 +2725,8 @@ g_socket_accept (GSocket       *socket,
               errsv == EAGAIN)
 #endif
             {
+              win32_unset_event_mask (socket, FD_ACCEPT);
+
               if (socket->priv->blocking)
                 {
                   if (!g_socket_condition_wait (socket,
@@ -2743,6 +2743,8 @@ g_socket_accept (GSocket       *socket,
       break;
     }
 
+  win32_unset_event_mask (socket, FD_ACCEPT);
+
 #ifdef G_OS_WIN32
   {
     /* The socket inherits the accepting sockets event mask and even object,
@@ -2834,8 +2836,6 @@ g_socket_connect (GSocket         *socket,
 
   while (1)
     {
-      win32_unset_event_mask (socket, FD_CONNECT);
-
       if (connect (socket->priv->fd, &buffer.sa,
                   g_socket_address_get_native_size (address)) < 0)
        {
@@ -2850,6 +2850,8 @@ g_socket_connect (GSocket         *socket,
          if (errsv == WSAEWOULDBLOCK)
 #endif
            {
+              win32_unset_event_mask (socket, FD_CONNECT);
+
              if (socket->priv->blocking)
                {
                  if (g_socket_condition_wait (socket, G_IO_OUT, cancellable, error))
@@ -2875,6 +2877,8 @@ g_socket_connect (GSocket         *socket,
       break;
     }
 
+  win32_unset_event_mask (socket, FD_CONNECT);
+
   socket->priv->connected_read = TRUE;
   socket->priv->connected_write = TRUE;
 
@@ -3068,8 +3072,6 @@ g_socket_receive_with_timeout (GSocket       *socket,
 
   while (1)
     {
-      win32_unset_event_mask (socket, FD_READ);
-
       if ((ret = recv (socket->priv->fd, buffer, size, 0)) < 0)
        {
          int errsv = get_socket_errno ();
@@ -3084,6 +3086,8 @@ g_socket_receive_with_timeout (GSocket       *socket,
               errsv == EAGAIN)
 #endif
             {
+              win32_unset_event_mask (socket, FD_READ);
+
               if (timeout != 0)
                 {
                   if (!block_on_timeout (socket, G_IO_IN, timeout, start_time,
@@ -3094,10 +3098,14 @@ g_socket_receive_with_timeout (GSocket       *socket,
                 }
             }
 
+         win32_unset_event_mask (socket, FD_READ);
+
          socket_set_error_lazy (error, errsv, _("Error receiving data: %s"));
          return -1;
        }
 
+      win32_unset_event_mask (socket, FD_READ);
+
       break;
     }
 
@@ -3263,8 +3271,6 @@ g_socket_send_with_timeout (GSocket       *socket,
 
   while (1)
     {
-      win32_unset_event_mask (socket, FD_WRITE);
-
       if ((ret = send (socket->priv->fd, (const char *)buffer, size, G_SOCKET_DEFAULT_SEND_FLAGS)) < 0)
        {
          int errsv = get_socket_errno ();
@@ -3279,6 +3285,8 @@ g_socket_send_with_timeout (GSocket       *socket,
               errsv == EAGAIN)
 #endif
             {
+              win32_unset_event_mask (socket, FD_WRITE);
+
               if (timeout != 0)
                 {
                   if (!block_on_timeout (socket, G_IO_OUT, timeout, start_time,
@@ -4755,8 +4763,6 @@ g_socket_send_message_with_timeout (GSocket                *socket,
 
     while (1)
       {
-        win32_unset_event_mask (socket, FD_WRITE);
-
        if (address)
          result = WSASendTo (socket->priv->fd,
                              bufs, num_vectors,
@@ -4778,6 +4784,8 @@ g_socket_send_message_with_timeout (GSocket                *socket,
 
            if (errsv == WSAEWOULDBLOCK)
               {
+                win32_unset_event_mask (socket, FD_WRITE);
+
                 if (timeout != 0)
                   {
                     if (!block_on_timeout (socket, G_IO_OUT, timeout,
@@ -5225,8 +5233,6 @@ g_socket_receive_message_with_timeout (GSocket                 *socket,
     /* do it */
     while (1)
       {
-        win32_unset_event_mask (socket, FD_READ);
-
        addrlen = sizeof addr;
        if (address)
          result = WSARecvFrom (socket->priv->fd,
@@ -5248,6 +5254,8 @@ g_socket_receive_message_with_timeout (GSocket                 *socket,
 
             if (errsv == WSAEWOULDBLOCK)
               {
+                win32_unset_event_mask (socket, FD_READ);
+
                 if (timeout != 0)
                   {
                     if (!block_on_timeout (socket, G_IO_IN, timeout,
@@ -5261,6 +5269,7 @@ g_socket_receive_message_with_timeout (GSocket                 *socket,
            socket_set_error_lazy (error, errsv, _("Error receiving message: %s"));
            return -1;
          }
+        win32_unset_event_mask (socket, FD_READ);
        break;
       }
 
index 03b1502..3defc7f 100644 (file)
@@ -1,5 +1,5 @@
 /* GIO - GLib Input, Output and Streaming Library
- * 
+ *
  * Copyright (C) 2008 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
 
 #include "gtask.h"
 
+/**
+ * SECTION:gsocketaddressenumerator
+ * @short_description: Enumerator for socket addresses
+ * @include: gio/gio.h
+ *
+ * #GSocketAddressEnumerator is an enumerator type for #GSocketAddress
+ * instances. It is returned by enumeration functions such as
+ * g_socket_connectable_enumerate(), which returns a #GSocketAddressEnumerator
+ * to list all the #GSocketAddresses which could be used to connect to that
+ * #GSocketConnectable.
+ *
+ * Enumeration is typically a blocking operation, so the asynchronous methods
+ * g_socket_address_enumerator_next_async() and
+ * g_socket_address_enumerator_next_finish() should be used where possible.
+ *
+ * Each #GSocketAddressEnumerator can only be enumerated once. Once
+ * g_socket_address_enumerator_next() has returned %NULL (and no error), further
+ * enumeration with that #GSocketAddressEnumerator is not possible, and it can
+ * be unreffed.
+ */
 
 G_DEFINE_ABSTRACT_TYPE (GSocketAddressEnumerator, g_socket_address_enumerator, G_TYPE_OBJECT)
 
@@ -120,6 +140,8 @@ g_socket_address_enumerator_real_next_async (GSocketAddressEnumerator *enumerato
  * Asynchronously retrieves the next #GSocketAddress from @enumerator
  * and then calls @callback, which must call
  * g_socket_address_enumerator_next_finish() to get the result.
+ *
+ * It is an error to call this multiple times before the previous callback has finished.
  */
 void
 g_socket_address_enumerator_next_async (GSocketAddressEnumerator *enumerator,
index f148f63..2a180fd 100644 (file)
@@ -44,14 +44,24 @@ typedef struct _GSocketAddressEnumeratorClass GSocketAddressEnumeratorClass;
 
 struct _GSocketAddressEnumerator
 {
+  /*< private >*/
   GObject parent_instance;
-
 };
 
+/**
+ * GSocketAddressEnumeratorClass:
+ * @next: Virtual method for g_socket_address_enumerator_next().
+ * @next_async: Virtual method for g_socket_address_enumerator_next_async().
+ * @next_finish: Virtual method for g_socket_address_enumerator_next_finish().
+ *
+ * Class structure for #GSocketAddressEnumerator.
+ */
 struct _GSocketAddressEnumeratorClass
 {
+  /*< private >*/
   GObjectClass parent_class;
 
+  /*< public >*/
   /* Virtual Table */
 
   GSocketAddress * (* next)        (GSocketAddressEnumerator  *enumerator,
index ddd1497..5c6513c 100644 (file)
@@ -2,6 +2,7 @@
  *
  * Copyright © 2008, 2009 codethink
  * Copyright © 2009 Red Hat, Inc
+ * Copyright © 2018 Igalia S.L.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 #include <gio/ginetaddress.h>
 #include "glibintl.h"
 
+/* As recommended by RFC 8305 this is the time it waits
+ * on a connection before starting another concurrent attempt.
+ */
+#define HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS 250
 
 /**
  * SECTION:gsocketclient
@@ -1328,28 +1333,82 @@ typedef struct
   GSocketConnectable *connectable;
   GSocketAddressEnumerator *enumerator;
   GProxyAddress *proxy_addr;
-  GSocketAddress *current_addr;
-  GSocket *current_socket;
+  GSocket *socket;
   GIOStream *connection;
 
+  GSList *connection_attempts;
   GError *last_error;
 } GSocketClientAsyncConnectData;
 
+static void connection_attempt_unref (gpointer attempt);
+
 static void
 g_socket_client_async_connect_data_free (GSocketClientAsyncConnectData *data)
 {
   g_clear_object (&data->connectable);
   g_clear_object (&data->enumerator);
   g_clear_object (&data->proxy_addr);
-  g_clear_object (&data->current_addr);
-  g_clear_object (&data->current_socket);
+  g_clear_object (&data->socket);
   g_clear_object (&data->connection);
+  g_slist_free_full (data->connection_attempts, connection_attempt_unref);
 
   g_clear_error (&data->last_error);
 
   g_slice_free (GSocketClientAsyncConnectData, data);
 }
 
+typedef struct
+{
+  GSocketAddress *address;
+  GSocket *socket;
+  GIOStream *connection;
+  GSocketClientAsyncConnectData *data; /* unowned */
+  GSource *timeout_source;
+  GCancellable *cancellable;
+  grefcount ref;
+} ConnectionAttempt;
+
+static ConnectionAttempt *
+connection_attempt_new (void)
+{
+  ConnectionAttempt *attempt = g_new0 (ConnectionAttempt, 1);
+  g_ref_count_init (&attempt->ref);
+  return attempt;
+}
+
+static ConnectionAttempt *
+connection_attempt_ref (ConnectionAttempt *attempt)
+{
+  g_ref_count_inc (&attempt->ref);
+  return attempt;
+}
+
+static void
+connection_attempt_unref (gpointer pointer)
+{
+  ConnectionAttempt *attempt = pointer;
+  if (g_ref_count_dec (&attempt->ref))
+    {
+      g_clear_object (&attempt->address);
+      g_clear_object (&attempt->socket);
+      g_clear_object (&attempt->connection);
+      g_clear_object (&attempt->cancellable);
+      if (attempt->timeout_source)
+        {
+          g_source_destroy (attempt->timeout_source);
+          g_source_unref (attempt->timeout_source);
+        }
+      g_free (attempt);
+    }
+}
+
+static void
+connection_attempt_remove (ConnectionAttempt *attempt)
+{
+  attempt->data->connection_attempts = g_slist_remove (attempt->data->connection_attempts, attempt);
+  connection_attempt_unref (attempt);
+}
+
 static void
 g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data)
 {
@@ -1359,8 +1418,7 @@ g_socket_client_async_connect_complete (GSocketClientAsyncConnectData *data)
     {
       GSocketConnection *wrapper_connection;
 
-      wrapper_connection = g_tcp_wrapper_connection_new (data->connection,
-                                                        data->current_socket);
+      wrapper_connection = g_tcp_wrapper_connection_new (data->connection, data->socket);
       g_object_unref (data->connection);
       data->connection = (GIOStream *)wrapper_connection;
     }
@@ -1389,8 +1447,7 @@ static void
 enumerator_next_async (GSocketClientAsyncConnectData *data)
 {
   /* We need to cleanup the state */
-  g_clear_object (&data->current_socket);
-  g_clear_object (&data->current_addr);
+  g_clear_object (&data->socket);
   g_clear_object (&data->proxy_addr);
   g_clear_object (&data->connection);
 
@@ -1485,34 +1542,68 @@ g_socket_client_connected_callback (GObject      *source,
                                    GAsyncResult *result,
                                    gpointer      user_data)
 {
-  GSocketClientAsyncConnectData *data = user_data;
+  ConnectionAttempt *attempt = user_data;
+  GSocketClientAsyncConnectData *data = attempt->data;
+  GSList *l;
   GError *error = NULL;
   GProxy *proxy;
   const gchar *protocol;
 
-  if (g_task_return_error_if_cancelled (data->task))
+  /* data is NULL once the task is completed */
+  if (data && g_task_return_error_if_cancelled (data->task))
     {
       g_object_unref (data->task);
+      connection_attempt_unref (attempt);
       return;
     }
 
+  if (attempt->timeout_source)
+    {
+      g_source_destroy (attempt->timeout_source);
+      g_clear_pointer (&attempt->timeout_source, g_source_unref);
+    }
+
   if (!g_socket_connection_connect_finish (G_SOCKET_CONNECTION (source),
                                           result, &error))
     {
-      clarify_connect_error (error, data->connectable,
-                            data->current_addr);
-      set_last_error (data, error);
+      if (!g_cancellable_is_cancelled (attempt->cancellable))
+        {
+          clarify_connect_error (error, data->connectable, attempt->address);
+          set_last_error (data, error);
+        }
+      else
+        g_clear_error (&error);
+
+      if (data)
+        {
+          connection_attempt_remove (attempt);
+          enumerator_next_async (data);
+        }
+      else
+        connection_attempt_unref (attempt);
 
-      /* try next one */
-      enumerator_next_async (data);
       return;
     }
 
+  data->socket = g_steal_pointer (&attempt->socket);
+  data->connection = g_steal_pointer (&attempt->connection);
+
+  for (l = data->connection_attempts; l; l = g_slist_next (l))
+    {
+      ConnectionAttempt *attempt_entry = l->data;
+      g_cancellable_cancel (attempt_entry->cancellable);
+      attempt_entry->data = NULL;
+      connection_attempt_unref (attempt_entry);
+    }
+  g_slist_free (data->connection_attempts);
+  data->connection_attempts = NULL;
+  connection_attempt_unref (attempt);
+
   g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, NULL);
   g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTED, data->connectable, data->connection);
 
   /* wrong, but backward compatible */
-  g_socket_set_blocking (data->current_socket, TRUE);
+  g_socket_set_blocking (data->socket, TRUE);
 
   if (!data->proxy_addr)
     {
@@ -1565,6 +1656,26 @@ g_socket_client_connected_callback (GObject      *source,
     }
 }
 
+static gboolean
+on_connection_attempt_timeout (gpointer data)
+{
+  ConnectionAttempt *attempt = data;
+
+  enumerator_next_async (attempt->data);
+
+  g_clear_pointer (&attempt->timeout_source, g_source_unref);
+  return G_SOURCE_REMOVE;
+}
+
+static void
+on_connection_cancelled (GCancellable *cancellable,
+                         gpointer      data)
+{
+  GCancellable *attempt_cancellable = data;
+
+  g_cancellable_cancel (attempt_cancellable);
+}
+
 static void
 g_socket_client_enumerator_callback (GObject      *object,
                                     GAsyncResult *result,
@@ -1573,6 +1684,7 @@ g_socket_client_enumerator_callback (GObject      *object,
   GSocketClientAsyncConnectData *data = user_data;
   GSocketAddress *address = NULL;
   GSocket *socket;
+  ConnectionAttempt *attempt;
   GError *error = NULL;
 
   if (g_task_return_error_if_cancelled (data->task))
@@ -1585,6 +1697,9 @@ g_socket_client_enumerator_callback (GObject      *object,
                                                     result, &error);
   if (address == NULL)
     {
+      if (data->connection_attempts)
+        return;
+
       g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_COMPLETE, data->connectable, NULL);
       if (!error)
        {
@@ -1621,16 +1736,27 @@ g_socket_client_enumerator_callback (GObject      *object,
       return;
     }
 
-  data->current_socket = socket;
-  data->current_addr = address;
-  data->connection = (GIOStream *) g_socket_connection_factory_create_connection (socket);
-
-  g_socket_connection_set_cached_remote_address ((GSocketConnection*)data->connection, address);
-  g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, data->connection);
-  g_socket_connection_connect_async (G_SOCKET_CONNECTION (data->connection),
+  attempt = connection_attempt_new ();
+  attempt->data = data;
+  attempt->socket = socket;
+  attempt->address = address;
+  attempt->cancellable = g_cancellable_new ();
+  attempt->connection = (GIOStream *)g_socket_connection_factory_create_connection (socket);
+  attempt->timeout_source = g_timeout_source_new (HAPPY_EYEBALLS_CONNECTION_ATTEMPT_TIMEOUT_MS);
+  g_source_set_callback (attempt->timeout_source, on_connection_attempt_timeout, attempt, NULL);
+  g_source_attach (attempt->timeout_source, g_main_context_get_thread_default ());
+  data->connection_attempts = g_slist_append (data->connection_attempts, attempt);
+
+  if (g_task_get_cancellable (data->task))
+    g_cancellable_connect (g_task_get_cancellable (data->task), G_CALLBACK (on_connection_cancelled),
+                           g_object_ref (attempt->cancellable), g_object_unref);
+
+  g_socket_connection_set_cached_remote_address ((GSocketConnection *)attempt->connection, address);
+  g_socket_client_emit_event (data->client, G_SOCKET_CLIENT_CONNECTING, data->connectable, attempt->connection);
+  g_socket_connection_connect_async (G_SOCKET_CONNECTION (attempt->connection),
                                     address,
-                                    g_task_get_cancellable (data->task),
-                                    g_socket_client_connected_callback, data);
+                                    attempt->cancellable,
+                                    g_socket_client_connected_callback, connection_attempt_ref (attempt));
 }
 
 /**
index 23bfbdd..dcdb84d 100644 (file)
@@ -1784,6 +1784,9 @@ g_subprocess_communicate_finish (GSubprocess   *subprocess,
  *
  * Like g_subprocess_communicate(), but validates the output of the
  * process as UTF-8, and returns it as a regular NUL terminated string.
+ *
+ * On error, @stdout_buf and @stderr_buf will be set to undefined values and
+ * should not be used.
  */
 gboolean
 g_subprocess_communicate_utf8 (GSubprocess   *subprocess,
@@ -1868,6 +1871,7 @@ communicate_result_validate_utf8 (const char            *stream_name,
       if (!g_utf8_validate (*return_location, -1, &end))
         {
           g_free (*return_location);
+          *return_location = NULL;
           g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
                        "Invalid UTF-8 in child %s at offset %lu",
                        stream_name,
@@ -1900,6 +1904,7 @@ g_subprocess_communicate_utf8_finish (GSubprocess   *subprocess,
 {
   gboolean ret = FALSE;
   CommunicateState *state;
+  gchar *local_stdout_buf = NULL, *local_stderr_buf = NULL;
 
   g_return_val_if_fail (G_IS_SUBPROCESS (subprocess), FALSE);
   g_return_val_if_fail (g_task_is_valid (result, subprocess), FALSE);
@@ -1913,11 +1918,11 @@ g_subprocess_communicate_utf8_finish (GSubprocess   *subprocess,
 
   /* TODO - validate UTF-8 while streaming, rather than all at once.
    */
-  if (!communicate_result_validate_utf8 ("stdout", stdout_buf,
+  if (!communicate_result_validate_utf8 ("stdout", &local_stdout_buf,
                                          state->stdout_buf,
                                          error))
     goto out;
-  if (!communicate_result_validate_utf8 ("stderr", stderr_buf,
+  if (!communicate_result_validate_utf8 ("stderr", &local_stderr_buf,
                                          state->stderr_buf,
                                          error))
     goto out;
@@ -1925,5 +1930,14 @@ g_subprocess_communicate_utf8_finish (GSubprocess   *subprocess,
   ret = TRUE;
  out:
   g_object_unref (result);
+
+  if (ret && stdout_buf != NULL)
+    *stdout_buf = g_steal_pointer (&local_stdout_buf);
+  if (ret && stderr_buf != NULL)
+    *stderr_buf = g_steal_pointer (&local_stderr_buf);
+
+  g_free (local_stderr_buf);
+  g_free (local_stdout_buf);
+
   return ret;
 }
index 4087543..a2f316d 100644 (file)
@@ -543,6 +543,7 @@ struct _GTask {
 
   gpointer source_object;
   gpointer source_tag;
+  gchar *name;  /* (owned); may only be modified before the #GTask is threaded */
 
   gpointer task_data;
   GDestroyNotify task_data_destroy;
@@ -551,20 +552,26 @@ struct _GTask {
   gint64 creation_time;
   gint priority;
   GCancellable *cancellable;
-  gboolean check_cancellable;
 
   GAsyncReadyCallback callback;
   gpointer callback_data;
-  gboolean completed;
 
   GTaskThreadFunc task_func;
   GMutex lock;
   GCond cond;
-  gboolean return_on_cancel;
+
+  /* This can’t be in the bit field because we access it from TRACE(). */
   gboolean thread_cancelled;
-  gboolean synchronous;
-  gboolean thread_complete;
-  gboolean blocking_other_task;
+
+  gboolean check_cancellable : 1;
+  gboolean completed : 1;
+  gboolean return_on_cancel : 1;
+  gboolean synchronous : 1;
+  gboolean thread_complete : 1;
+  gboolean blocking_other_task : 1;
+  gboolean had_error : 1;
+  gboolean result_set : 1;
+  gboolean ever_returned : 1;
 
   GError *error;
   union {
@@ -573,8 +580,6 @@ struct _GTask {
     gboolean boolean;
   } result;
   GDestroyNotify result_destroy;
-  gboolean had_error;
-  gboolean result_set;
 };
 
 #define G_TASK_IS_THREADED(task) ((task)->task_func != NULL)
@@ -633,6 +638,7 @@ g_task_finalize (GObject *object)
 
   g_clear_object (&task->source_object);
   g_clear_object (&task->cancellable);
+  g_free (task->name);
 
   if (task->context)
     g_main_context_unref (task->context);
@@ -975,6 +981,36 @@ g_task_set_source_tag (GTask    *task,
 }
 
 /**
+ * g_task_set_name:
+ * @task: a #GTask
+ * @name: (nullable): a human readable name for the task, or %NULL to unset it
+ *
+ * Sets @task’s name, used in debugging and profiling. The name defaults to
+ * %NULL.
+ *
+ * The task name should describe in a human readable way what the task does.
+ * For example, ‘Open file’ or ‘Connect to network host’. It is used to set the
+ * name of the #GSource used for idle completion of the task.
+ *
+ * This function may only be called before the @task is first used in a thread
+ * other than the one it was constructed in.
+ *
+ * Since: 2.60
+ */
+void
+g_task_set_name (GTask       *task,
+                 const gchar *name)
+{
+  gchar *new_name;
+
+  g_return_if_fail (G_IS_TASK (task));
+
+  new_name = g_strdup (name);
+  g_free (task->name);
+  task->name = g_steal_pointer (&new_name);
+}
+
+/**
  * g_task_get_source_object:
  * @task: a #GTask
  *
@@ -1134,6 +1170,22 @@ g_task_get_source_tag (GTask *task)
   return task->source_tag;
 }
 
+/**
+ * g_task_get_name:
+ * @task: a #GTask
+ *
+ * Gets @task’s name. See g_task_set_name().
+ *
+ * Returns: (nullable) (transfer none): @task’s name, or %NULL
+ * Since: 2.60
+ */
+const gchar *
+g_task_get_name (GTask *task)
+{
+  g_return_val_if_fail (G_IS_TASK (task), NULL);
+
+  return task->name;
+}
 
 static void
 g_task_return_now (GTask *task)
@@ -1176,6 +1228,9 @@ g_task_return (GTask           *task,
 {
   GSource *source;
 
+  if (type != G_TASK_RETURN_FROM_THREAD)
+    task->ever_returned = TRUE;
+
   if (type == G_TASK_RETURN_SUCCESS)
     task->result_set = TRUE;
 
@@ -1520,6 +1575,9 @@ g_task_run_in_thread_sync (GTask           *task,
  * #GMainContext with @task's [priority][io-priority], and sets @source's
  * 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.
+ *
  * This takes a reference on @task until @source is destroyed.
  *
  * Since: 2.36
@@ -1534,6 +1592,9 @@ 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)
+    g_source_set_name (source, task->name);
+
   g_source_attach (source, task->context);
 }
 
@@ -1596,7 +1657,7 @@ g_task_return_pointer (GTask          *task,
                        GDestroyNotify  result_destroy)
 {
   g_return_if_fail (G_IS_TASK (task));
-  g_return_if_fail (task->result_set == FALSE);
+  g_return_if_fail (!task->ever_returned);
 
   task->result.pointer = result;
   task->result_destroy = result_destroy;
@@ -1631,7 +1692,7 @@ g_task_propagate_pointer (GTask   *task,
   if (g_task_propagate_error (task, error))
     return NULL;
 
-  g_return_val_if_fail (task->result_set == TRUE, NULL);
+  g_return_val_if_fail (task->result_set, NULL);
 
   task->result_destroy = NULL;
   task->result_set = FALSE;
@@ -1654,7 +1715,7 @@ g_task_return_int (GTask  *task,
                    gssize  result)
 {
   g_return_if_fail (G_IS_TASK (task));
-  g_return_if_fail (task->result_set == FALSE);
+  g_return_if_fail (!task->ever_returned);
 
   task->result.size = result;
 
@@ -1687,7 +1748,7 @@ g_task_propagate_int (GTask   *task,
   if (g_task_propagate_error (task, error))
     return -1;
 
-  g_return_val_if_fail (task->result_set == TRUE, -1);
+  g_return_val_if_fail (task->result_set, -1);
 
   task->result_set = FALSE;
   return task->result.size;
@@ -1709,7 +1770,7 @@ g_task_return_boolean (GTask    *task,
                        gboolean  result)
 {
   g_return_if_fail (G_IS_TASK (task));
-  g_return_if_fail (task->result_set == FALSE);
+  g_return_if_fail (!task->ever_returned);
 
   task->result.boolean = result;
 
@@ -1742,7 +1803,7 @@ g_task_propagate_boolean (GTask   *task,
   if (g_task_propagate_error (task, error))
     return FALSE;
 
-  g_return_val_if_fail (task->result_set == TRUE, FALSE);
+  g_return_val_if_fail (task->result_set, FALSE);
 
   task->result_set = FALSE;
   return task->result.boolean;
@@ -1772,7 +1833,7 @@ g_task_return_error (GTask  *task,
                      GError *error)
 {
   g_return_if_fail (G_IS_TASK (task));
-  g_return_if_fail (task->result_set == FALSE);
+  g_return_if_fail (!task->ever_returned);
   g_return_if_fail (error != NULL);
 
   task->error = error;
@@ -1833,7 +1894,7 @@ g_task_return_error_if_cancelled (GTask *task)
   GError *error = NULL;
 
   g_return_val_if_fail (G_IS_TASK (task), FALSE);
-  g_return_val_if_fail (task->result_set == FALSE, FALSE);
+  g_return_val_if_fail (!task->ever_returned, FALSE);
 
   if (g_cancellable_set_error_if_cancelled (task->cancellable, &error))
     {
index 92cd2b1..4fc1c85 100644 (file)
@@ -74,6 +74,9 @@ void          g_task_set_check_cancellable (GTask               *task,
 GLIB_AVAILABLE_IN_2_36
 void          g_task_set_source_tag        (GTask               *task,
                                             gpointer             source_tag);
+GLIB_AVAILABLE_IN_2_60
+void          g_task_set_name              (GTask               *task,
+                                            const gchar         *name);
 
 GLIB_AVAILABLE_IN_2_36
 gpointer      g_task_get_source_object     (GTask               *task);
@@ -89,6 +92,8 @@ GLIB_AVAILABLE_IN_2_36
 gboolean      g_task_get_check_cancellable (GTask               *task);
 GLIB_AVAILABLE_IN_2_36
 gpointer      g_task_get_source_tag        (GTask               *task);
+GLIB_AVAILABLE_IN_2_60
+const gchar  *g_task_get_name              (GTask               *task);
 
 GLIB_AVAILABLE_IN_2_36
 gboolean      g_task_is_valid              (gpointer             result,
index 9e110cd..a6dd35c 100644 (file)
@@ -3,6 +3,7 @@
 /* GIO - GLib Input, Output and Streaming Library
  *
  * Copyright (C) 2008 Red Hat, Inc.
+ * Copyright (C) 2018 Igalia S.L.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -63,7 +64,27 @@ g_resolver_error_from_addrinfo_error (gint err)
     }
 }
 
-static struct addrinfo addrinfo_hints;
+typedef struct {
+  char *hostname;
+  int address_family;
+} LookupData;
+
+static LookupData *
+lookup_data_new (const char *hostname,
+                 int         address_family)
+{
+  LookupData *data = g_new (LookupData, 1);
+  data->hostname = g_strdup (hostname);
+  data->address_family = address_family;
+  return data;
+}
+
+static void
+lookup_data_free (LookupData *data)
+{
+  g_free (data->hostname);
+  g_free (data);
+}
 
 static void
 do_lookup_by_name (GTask         *task,
@@ -71,11 +92,24 @@ do_lookup_by_name (GTask         *task,
                    gpointer       task_data,
                    GCancellable  *cancellable)
 {
-  const char *hostname = task_data;
+  LookupData *lookup_data = task_data;
+  const char *hostname = lookup_data->hostname;
   struct addrinfo *res = NULL;
   GList *addresses;
   gint retval;
+  struct addrinfo addrinfo_hints = { 0 };
 
+#ifdef AI_ADDRCONFIG
+  addrinfo_hints.ai_flags = AI_ADDRCONFIG;
+#endif
+  /* socktype and protocol don't actually matter, they just get copied into the
+  * returned addrinfo structures (and then we ignore them). But if
+  * we leave them unset, we'll get back duplicate answers.
+  */
+  addrinfo_hints.ai_socktype = SOCK_STREAM;
+  addrinfo_hints.ai_protocol = IPPROTO_TCP;
+
+  addrinfo_hints.ai_family = lookup_data->address_family;
   retval = getaddrinfo (hostname, NULL, &addrinfo_hints, &res);
 
   if (retval == 0)
@@ -139,10 +173,53 @@ lookup_by_name (GResolver     *resolver,
 {
   GTask *task;
   GList *addresses;
+  LookupData *data;
 
+  data = lookup_data_new (hostname, AF_UNSPEC);
   task = g_task_new (resolver, cancellable, NULL, NULL);
   g_task_set_source_tag (task, lookup_by_name);
-  g_task_set_task_data (task, g_strdup (hostname), g_free);
+  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);
+  addresses = g_task_propagate_pointer (task, error);
+  g_object_unref (task);
+
+  return addresses;
+}
+
+static int
+flags_to_family (GResolverNameLookupFlags flags)
+{
+  int address_family = AF_UNSPEC;
+
+  if (flags & G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY)
+    address_family = AF_INET;
+
+  if (flags & G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY)
+    {
+      address_family = AF_INET6;
+      /* You can only filter by one family at a time */
+      g_return_val_if_fail (!(flags & G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY), address_family);
+    }
+
+  return address_family;
+}
+
+static GList *
+lookup_by_name_with_flags (GResolver                 *resolver,
+                           const gchar               *hostname,
+                           GResolverNameLookupFlags   flags,
+                           GCancellable              *cancellable,
+                           GError                   **error)
+{
+  GTask *task;
+  GList *addresses;
+  LookupData *data;
+
+  data = lookup_data_new (hostname, AF_UNSPEC);
+  task = g_task_new (resolver, cancellable, NULL, NULL);
+  g_task_set_source_tag (task, lookup_by_name_with_flags);
+  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);
   addresses = g_task_propagate_pointer (task, error);
@@ -152,22 +229,40 @@ lookup_by_name (GResolver     *resolver,
 }
 
 static void
-lookup_by_name_async (GResolver           *resolver,
-                      const gchar         *hostname,
-                      GCancellable        *cancellable,
-                      GAsyncReadyCallback  callback,
-                      gpointer             user_data)
+lookup_by_name_with_flags_async (GResolver                *resolver,
+                                 const gchar              *hostname,
+                                 GResolverNameLookupFlags  flags,
+                                 GCancellable             *cancellable,
+                                 GAsyncReadyCallback       callback,
+                                 gpointer                  user_data)
 {
   GTask *task;
+  LookupData *data;
 
+  data = lookup_data_new (hostname, flags_to_family (flags));
   task = g_task_new (resolver, cancellable, callback, user_data);
-  g_task_set_source_tag (task, lookup_by_name_async);
-  g_task_set_task_data (task, g_strdup (hostname), g_free);
+  g_task_set_source_tag (task, lookup_by_name_with_flags_async);
+  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_object_unref (task);
 }
 
+static void
+lookup_by_name_async (GResolver           *resolver,
+                      const gchar         *hostname,
+                      GCancellable        *cancellable,
+                      GAsyncReadyCallback  callback,
+                      gpointer             user_data)
+{
+  lookup_by_name_with_flags_async (resolver,
+                                   hostname,
+                                   G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT,
+                                   cancellable,
+                                   callback,
+                                   user_data);
+}
+
 static GList *
 lookup_by_name_finish (GResolver     *resolver,
                        GAsyncResult  *result,
@@ -178,6 +273,15 @@ lookup_by_name_finish (GResolver     *resolver,
   return g_task_propagate_pointer (G_TASK (result), error);
 }
 
+static GList *
+lookup_by_name_with_flags_finish (GResolver     *resolver,
+                                  GAsyncResult  *result,
+                                  GError       **error)
+{
+  g_return_val_if_fail (g_task_is_valid (result, resolver), NULL);
+
+  return g_task_propagate_pointer (G_TASK (result), error);
+}
 
 static void
 do_lookup_by_address (GTask         *task,
@@ -970,24 +1074,16 @@ g_threaded_resolver_class_init (GThreadedResolverClass *threaded_class)
 {
   GResolverClass *resolver_class = G_RESOLVER_CLASS (threaded_class);
 
-  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;
-  resolver_class->lookup_by_address        = lookup_by_address;
-  resolver_class->lookup_by_address_async  = lookup_by_address_async;
-  resolver_class->lookup_by_address_finish = lookup_by_address_finish;
-  resolver_class->lookup_records           = lookup_records;
-  resolver_class->lookup_records_async     = lookup_records_async;
-  resolver_class->lookup_records_finish    = lookup_records_finish;
-
-  /* Initialize addrinfo_hints */
-#ifdef AI_ADDRCONFIG
-  addrinfo_hints.ai_flags |= AI_ADDRCONFIG;
-#endif
-  /* These two don't actually matter, they just get copied into the
-   * returned addrinfo structures (and then we ignore them). But if
-   * we leave them unset, we'll get back duplicate answers.
-   */
-  addrinfo_hints.ai_socktype = SOCK_STREAM;
-  addrinfo_hints.ai_protocol = IPPROTO_TCP;
+  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;
+  resolver_class->lookup_by_name_with_flags        = lookup_by_name_with_flags;
+  resolver_class->lookup_by_name_with_flags_async  = lookup_by_name_with_flags_async;
+  resolver_class->lookup_by_name_with_flags_finish = lookup_by_name_with_flags_finish;
+  resolver_class->lookup_by_address                = lookup_by_address;
+  resolver_class->lookup_by_address_async          = lookup_by_address_async;
+  resolver_class->lookup_by_address_finish         = lookup_by_address_finish;
+  resolver_class->lookup_records                   = lookup_records;
+  resolver_class->lookup_records_async             = lookup_records_async;
+  resolver_class->lookup_records_finish            = lookup_records_finish;
 }
index 80af6ad..d67e490 100644 (file)
@@ -21,6 +21,7 @@
 #include "glib.h"
 
 #include "gtlsbackend.h"
+#include "gtlsdatabase.h"
 #include "gdummytlsbackend.h"
 #include "gioenumtypes.h"
 #include "giomodule-priv.h"
@@ -84,6 +85,9 @@
 
 G_DEFINE_INTERFACE (GTlsBackend, g_tls_backend, G_TYPE_OBJECT)
 
+static GTlsDatabase *default_database;
+G_LOCK_DEFINE_STATIC (default_database_lock);
+
 static void
 g_tls_backend_default_init (GTlsBackendInterface *iface)
 {
@@ -161,13 +165,50 @@ g_tls_backend_supports_dtls (GTlsBackend *backend)
 GTlsDatabase *
 g_tls_backend_get_default_database (GTlsBackend *backend)
 {
+  GTlsDatabase *db;
+
   g_return_val_if_fail (G_IS_TLS_BACKEND (backend), NULL);
 
   /* This method was added later, so accept the (remote) possibility it can be NULL */
   if (!G_TLS_BACKEND_GET_INTERFACE (backend)->get_default_database)
     return NULL;
 
-  return G_TLS_BACKEND_GET_INTERFACE (backend)->get_default_database (backend);
+  G_LOCK (default_database_lock);
+
+  if (!default_database)
+    default_database = G_TLS_BACKEND_GET_INTERFACE (backend)->get_default_database (backend);
+  db = default_database ? g_object_ref (default_database) : NULL;
+  G_UNLOCK (default_database_lock);
+
+  return db;
+}
+
+/**
+ * g_tls_backend_set_default_database:
+ * @backend: the #GTlsBackend
+ * @database: (nullable): the #GTlsDatabase
+ *
+ * Set the default #GTlsDatabase used to verify TLS connections
+ *
+ * Any subsequent call to g_tls_backend_get_default_database() will return
+ * the database set in this call.  Existing databases and connections are not
+ * modified.
+ *
+ * Setting a %NULL default database will reset to using the system default
+ * database as if g_tls_backend_set_default_database() had never been called.
+ *
+ * Since: 2.60
+ */
+void
+g_tls_backend_set_default_database (GTlsBackend  *backend,
+                                    GTlsDatabase *database)
+{
+  g_return_if_fail (G_IS_TLS_BACKEND (backend));
+  g_return_if_fail (database == NULL || G_IS_TLS_DATABASE (database));
+
+  G_LOCK (default_database_lock);
+  g_set_object (&default_database, database);
+  G_UNLOCK (default_database_lock);
 }
 
 /**
index a75036f..f19ab7e 100644 (file)
@@ -85,6 +85,9 @@ GTlsBackend *  g_tls_backend_get_default                (void);
 
 GLIB_AVAILABLE_IN_ALL
 GTlsDatabase * g_tls_backend_get_default_database       (GTlsBackend *backend);
+GLIB_AVAILABLE_IN_2_60
+void           g_tls_backend_set_default_database       (GTlsBackend  *backend,
+                                                         GTlsDatabase *database);
 
 GLIB_AVAILABLE_IN_ALL
 gboolean       g_tls_backend_supports_tls               (GTlsBackend *backend);
index 1ec48f1..72de5eb 100644 (file)
@@ -218,12 +218,11 @@ g_tls_certificate_new_internal (const gchar      *certificate_pem,
 
 #define PEM_CERTIFICATE_HEADER     "-----BEGIN CERTIFICATE-----"
 #define PEM_CERTIFICATE_FOOTER     "-----END CERTIFICATE-----"
-#define PEM_PKCS1_PRIVKEY_HEADER   "-----BEGIN RSA PRIVATE KEY-----"
-#define PEM_PKCS1_PRIVKEY_FOOTER   "-----END RSA PRIVATE KEY-----"
-#define PEM_PKCS8_PRIVKEY_HEADER   "-----BEGIN PRIVATE KEY-----"
-#define PEM_PKCS8_PRIVKEY_FOOTER   "-----END PRIVATE KEY-----"
+#define PEM_PRIVKEY_HEADER_BEGIN   "-----BEGIN "
+#define PEM_PRIVKEY_HEADER_END     "PRIVATE KEY-----"
+#define PEM_PRIVKEY_FOOTER_BEGIN   "-----END "
+#define PEM_PRIVKEY_FOOTER_END     "PRIVATE KEY-----"
 #define PEM_PKCS8_ENCRYPTED_HEADER "-----BEGIN ENCRYPTED PRIVATE KEY-----"
-#define PEM_PKCS8_ENCRYPTED_FOOTER "-----END ENCRYPTED PRIVATE KEY-----"
 
 static gchar *
 parse_private_key (const gchar *data,
@@ -231,45 +230,47 @@ parse_private_key (const gchar *data,
                   gboolean required,
                   GError **error)
 {
-  const gchar *start, *end, *footer;
+  const gchar *header_start = NULL, *header_end, *footer_start = NULL, *footer_end;
 
-  start = g_strstr_len (data, data_len, PEM_PKCS1_PRIVKEY_HEADER);
-  if (start)
-    footer = PEM_PKCS1_PRIVKEY_FOOTER;
-  else
+  header_end = g_strstr_len (data, data_len, PEM_PRIVKEY_HEADER_END);
+  if (header_end)
+    header_start = g_strrstr_len (data, header_end - data, PEM_PRIVKEY_HEADER_BEGIN);
+
+  if (!header_start)
     {
-      start = g_strstr_len (data, data_len, PEM_PKCS8_PRIVKEY_HEADER);
-      if (start)
-       footer = PEM_PKCS8_PRIVKEY_FOOTER;
-      else
-       {
-         start = g_strstr_len (data, data_len, PEM_PKCS8_ENCRYPTED_HEADER);
-         if (start)
-           {
-             g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE,
-                                  _("Cannot decrypt PEM-encoded private key"));
-           }
-         else if (required)
-           {
-             g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE,
-                                  _("No PEM-encoded private key found"));
-           }
-         return NULL;
-       }
+      if (required)
+       g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE,
+                            _("No PEM-encoded private key found"));
+
+      return NULL;
     }
 
-  end = g_strstr_len (start, data_len - (start - data), footer);
-  if (!end)
+  header_end += strlen (PEM_PRIVKEY_HEADER_END);
+
+  if (strncmp (header_start, PEM_PKCS8_ENCRYPTED_HEADER, header_end - header_start) == 0)
+    {
+      g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE,
+                          _("Cannot decrypt PEM-encoded private key"));
+      return NULL;
+    }
+
+  footer_end = g_strstr_len (header_end, data_len - (header_end - data), PEM_PRIVKEY_FOOTER_END);
+  if (footer_end)
+    footer_start = g_strrstr_len (header_end, footer_end - header_end, PEM_PRIVKEY_FOOTER_BEGIN);
+
+  if (!footer_start)
     {
       g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE,
                           _("Could not parse PEM-encoded private key"));
       return NULL;
     }
-  end += strlen (footer);
-  while (*end == '\r' || *end == '\n')
-    end++;
 
-  return g_strndup (start, end - start);
+  footer_end += strlen (PEM_PRIVKEY_FOOTER_END);
+
+  while (*footer_end == '\r' || *footer_end == '\n')
+    footer_end++;
+
+  return g_strndup (header_start, footer_end - header_start);
 }
 
 
index 4364c12..a1e98c0 100644 (file)
  * Since: 2.28
  */
 
-G_DEFINE_ABSTRACT_TYPE (GTlsConnection, g_tls_connection, G_TYPE_IO_STREAM)
+struct _GTlsConnectionPrivate
+{
+  gchar *negotiated_protocol;
+};
+
+G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GTlsConnection, g_tls_connection, G_TYPE_IO_STREAM)
 
 static void g_tls_connection_get_property (GObject    *object,
                                           guint       prop_id,
@@ -64,6 +69,7 @@ static void g_tls_connection_set_property (GObject      *object,
                                           guint         prop_id,
                                           const GValue *value,
                                           GParamSpec   *pspec);
+static void g_tls_connection_finalize (GObject *object);
 
 enum {
   ACCEPT_CERTIFICATE,
@@ -83,7 +89,9 @@ enum {
   PROP_INTERACTION,
   PROP_CERTIFICATE,
   PROP_PEER_CERTIFICATE,
-  PROP_PEER_CERTIFICATE_ERRORS
+  PROP_PEER_CERTIFICATE_ERRORS,
+  PROP_ADVERTISED_PROTOCOLS,
+  PROP_NEGOTIATED_PROTOCOL,
 };
 
 static void
@@ -93,6 +101,7 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
 
   gobject_class->get_property = g_tls_connection_get_property;
   gobject_class->set_property = g_tls_connection_set_property;
+  gobject_class->finalize = g_tls_connection_finalize;
 
   /**
    * GTlsConnection:base-io-stream:
@@ -194,7 +203,8 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
                                                      G_TLS_REHANDSHAKE_SAFELY,
                                                      G_PARAM_READWRITE |
                                                      G_PARAM_CONSTRUCT |
-                                                     G_PARAM_STATIC_STRINGS));
+                                                     G_PARAM_STATIC_STRINGS |
+                                                     G_PARAM_DEPRECATED));
   /**
    * GTlsConnection:certificate:
    *
@@ -250,6 +260,37 @@ g_tls_connection_class_init (GTlsConnectionClass *klass)
                                                       0,
                                                       G_PARAM_READABLE |
                                                       G_PARAM_STATIC_STRINGS));
+  /**
+   * GTlsConnection:advertised-protocols:
+   *
+   * The list of application-layer protocols that the connection
+   * advertises that it is willing to speak. See
+   * g_tls_connection_set_advertised_protocols().
+   *
+   * Since: 2.60
+   */
+  g_object_class_install_property (gobject_class, PROP_ADVERTISED_PROTOCOLS,
+                                   g_param_spec_boxed ("advertised-protocols",
+                                                       P_("Advertised Protocols"),
+                                                       P_("Application-layer protocols available on this connection"),
+                                                       G_TYPE_STRV,
+                                                       G_PARAM_READWRITE |
+                                                       G_PARAM_STATIC_STRINGS));
+  /**
+   * GTlsConnection:negotiated-protocol:
+   *
+   * The application-layer protocol negotiated during the TLS
+   * handshake. See g_tls_connection_get_negotiated_protocol().
+   *
+   * Since: 2.60
+   */
+  g_object_class_install_property (gobject_class, PROP_NEGOTIATED_PROTOCOL,
+                                   g_param_spec_string ("negotiated-protocol",
+                                                        P_("Negotiated Protocol"),
+                                                        P_("Application-layer protocol negotiated for this connection"),
+                                                        NULL,
+                                                        G_PARAM_READABLE |
+                                                        G_PARAM_STATIC_STRINGS));
 
   /**
    * GTlsConnection::accept-certificate:
@@ -333,6 +374,17 @@ g_tls_connection_set_property (GObject      *object,
   G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 }
 
+static void
+g_tls_connection_finalize (GObject *object)
+{
+  GTlsConnection *conn = G_TLS_CONNECTION(object);
+  GTlsConnectionPrivate *priv = g_tls_connection_get_instance_private (conn);
+
+  g_clear_pointer (&priv->negotiated_protocol, g_free);
+
+  G_OBJECT_CLASS (g_tls_connection_parent_class)->finalize (object);
+}
+
 /**
  * g_tls_connection_set_use_system_certdb:
  * @conn: a #GTlsConnection
@@ -697,6 +749,10 @@ g_tls_connection_get_require_close_notify (GTlsConnection *conn)
  * software.
  *
  * Since: 2.28
+ *
+ * Deprecated: 2.60. Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 void
 g_tls_connection_set_rehandshake_mode (GTlsConnection       *conn,
@@ -719,6 +775,10 @@ g_tls_connection_set_rehandshake_mode (GTlsConnection       *conn,
  * Returns: @conn's rehandshaking mode
  *
  * Since: 2.28
+ *
+ * Deprecated: 2.60. Changing the rehandshake mode is no longer
+ *   required for compatibility. Also, rehandshaking has been removed
+ *   from the TLS protocol in TLS 1.3.
  */
 GTlsRehandshakeMode
 g_tls_connection_get_rehandshake_mode (GTlsConnection       *conn)
@@ -734,6 +794,82 @@ g_tls_connection_get_rehandshake_mode (GTlsConnection       *conn)
 }
 
 /**
+ * g_tls_connection_set_advertised_protocols:
+ * @conn: a #GTlsConnection
+ * @protocols: (array zero-terminated=1) (nullable): a %NULL-terminated
+ *   array of ALPN protocol names (eg, "http/1.1", "h2"), or %NULL
+ *
+ * Sets the list of application-layer protocols to advertise that the
+ * caller is willing to speak on this connection. The
+ * Application-Layer Protocol Negotiation (ALPN) extension will be
+ * used to negotiate a compatible protocol with the peer; use
+ * g_tls_connection_get_negotiated_protocol() to find the negotiated
+ * protocol after the handshake.  Specifying %NULL for the the value
+ * of @protocols will disable ALPN negotiation.
+ *
+ * See [IANA TLS ALPN Protocol IDs](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids)
+ * for a list of registered protocol IDs.
+ *
+ * Since: 2.60
+ */
+void
+g_tls_connection_set_advertised_protocols (GTlsConnection      *conn,
+                                           const gchar * const *protocols)
+{
+  g_return_if_fail (G_IS_TLS_CONNECTION (conn));
+
+  g_object_set (G_OBJECT (conn),
+                "advertised-protocols", protocols,
+                NULL);
+}
+
+/**
+ * g_tls_connection_get_negotiated_protocol:
+ * @conn: a #GTlsConnection
+ *
+ * Gets the name of the application-layer protocol negotiated during
+ * the handshake.
+ *
+ * If the peer did not use the ALPN extension, or did not advertise a
+ * protocol that matched one of @conn's protocols, or the TLS backend
+ * does not support ALPN, then this will be %NULL. See
+ * g_tls_connection_set_advertised_protocols().
+ *
+ * Returns: (nullable): the negotiated protocol, or %NULL
+ *
+ * Since: 2.60
+ */
+const gchar *
+g_tls_connection_get_negotiated_protocol (GTlsConnection *conn)
+{
+  GTlsConnectionPrivate *priv;
+  gchar *protocol;
+
+  g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), NULL);
+
+  g_object_get (G_OBJECT (conn),
+                "negotiated-protocol", &protocol,
+                NULL);
+
+  /*
+   * Cache the property internally so we can return a `const` pointer
+   * to the caller.
+   */
+  priv = g_tls_connection_get_instance_private (conn);
+  if (g_strcmp0 (priv->negotiated_protocol, protocol) != 0)
+    {
+      g_free (priv->negotiated_protocol);
+      priv->negotiated_protocol = protocol;
+    }
+  else
+    {
+      g_free (protocol);
+    }
+
+  return priv->negotiated_protocol;
+}
+
+/**
  * g_tls_connection_handshake:
  * @conn: a #GTlsConnection
  * @cancellable: (nullable): a #GCancellable, or %NULL
@@ -756,11 +892,15 @@ g_tls_connection_get_rehandshake_mode (GTlsConnection       *conn)
  * Likewise, on the server side, although a handshake is necessary at
  * the beginning of the communication, you do not need to call this
  * function explicitly unless you want clearer error reporting.
- * However, you may call g_tls_connection_handshake() later on to
- * rehandshake, if TLS 1.2 or older is in use. With TLS 1.3, the
- * behavior is undefined but guaranteed to be reasonable and
- * nondestructive, so most older code should be expected to continue to
- * work without changes.
+ *
+ * If TLS 1.2 or older is in use, you may call
+ * g_tls_connection_handshake() after the initial handshake to
+ * rehandshake; however, this usage is deprecated because rehandshaking
+ * is no longer part of the TLS protocol in TLS 1.3. Accordingly, the
+ * behavior of calling this function after the initial handshake is now
+ * undefined, except it is guaranteed to be reasonable and
+ * nondestructive so as to preserve compatibility with code written for
+ * older versions of GLib.
  *
  * #GTlsConnection::accept_certificate may be emitted during the
  * handshake.
index 9c038e2..39ec3fa 100644 (file)
@@ -109,12 +109,19 @@ void                  g_tls_connection_set_require_close_notify    (GTlsConnecti
 GLIB_AVAILABLE_IN_ALL
 gboolean              g_tls_connection_get_require_close_notify    (GTlsConnection       *conn);
 
-GLIB_AVAILABLE_IN_ALL
+GLIB_DEPRECATED_IN_2_60
 void                  g_tls_connection_set_rehandshake_mode        (GTlsConnection       *conn,
                                                                    GTlsRehandshakeMode   mode);
-GLIB_AVAILABLE_IN_ALL
+GLIB_DEPRECATED_IN_2_60
 GTlsRehandshakeMode   g_tls_connection_get_rehandshake_mode        (GTlsConnection       *conn);
 
+GLIB_AVAILABLE_IN_2_60
+void                  g_tls_connection_set_advertised_protocols    (GTlsConnection       *conn,
+                                                                    const gchar * const  *protocols);
+
+GLIB_AVAILABLE_IN_2_60
+const gchar *         g_tls_connection_get_negotiated_protocol     (GTlsConnection       *conn);
+
 GLIB_AVAILABLE_IN_ALL
 gboolean              g_tls_connection_handshake                   (GTlsConnection       *conn,
                                                                    GCancellable         *cancellable,
index 5a77b56..821af97 100644 (file)
@@ -39,6 +39,9 @@
  * from a certificate or key store. It is an abstract base class which
  * TLS library specific subtypes override.
  *
+ * A #GTlsDatabase may be accessed from multiple threads by the TLS backend.
+ * All implementations are required to be fully thread-safe.
+ *
  * Most common client applications will not directly interact with
  * #GTlsDatabase. It is used internally by #GTlsConnection.
  *
@@ -776,7 +779,7 @@ g_tls_database_lookup_certificate_for_handle_finish (GTlsDatabase            *se
  *
  * Lookup the issuer of @certificate in the database.
  *
- * The %issuer property
+ * The #GTlsCertificate:issuer property
  * of @certificate is not modified, and the two certificates are not hooked
  * into a chain.
  *
index 6dc7741..cc905f2 100644 (file)
@@ -125,6 +125,7 @@ typedef enum {
 struct _GUnixMountEntry {
   char *mount_path;
   char *device_path;
+  char *root_path;
   char *filesystem_type;
   char *options;
   gboolean is_read_only;
@@ -343,7 +344,6 @@ g_unix_is_system_fs_type (const char *fs_type)
     "sysfs",
     "tmpfs",
     "usbfs",
-    "zfs",
     NULL
   };
 
@@ -388,8 +388,9 @@ g_unix_is_system_device_path (const char *device_path)
 
 static gboolean
 guess_system_internal (const char *mountpoint,
-                      const char *fs,
-                      const char *device)
+                       const char *fs,
+                       const char *device,
+                       const char *root)
 {
   if (g_unix_is_system_fs_type (fs))
     return TRUE;
@@ -399,7 +400,29 @@ guess_system_internal (const char *mountpoint,
 
   if (g_unix_is_mount_path_system_internal (mountpoint))
     return TRUE;
-  
+
+  /* It is not possible to reliably detect mounts which were created by bind
+   * operation. mntent-based _g_get_unix_mounts() implementation blindly skips
+   * mounts with a device path that is repeated (e.g. mounts created by bind
+   * operation, btrfs subvolumes). This usually chooses the most important
+   * mounts (i.e. which points to the root of filesystem), but it doesn't work
+   * in all cases and also it is not ideal that those mounts are completely
+   * ignored (e.g. x-gvfs-show doesn't work for them, trash backend can't handle
+   * files on btrfs subvolumes). libmount-based _g_get_unix_mounts()
+   * implementation provides a root path. So there is no need to completely
+   * ignore those mounts, because e.g. our volume monitors can use the root path
+   * to not mengle those mounts with the "regular" mounts (i.e. which points to
+   * the root). But because those mounts usually just duplicate other mounts and
+   * are completely ignored with mntend-based implementation, let's mark them as
+   * system internal. Given the different approches it doesn't mean that all
+   * mounts which were ignored will be system internal now, but this should work
+   * in most cases. For more info, see g_unix_mount_get_root_path() annotation,
+   * comment in mntent-based _g_get_unix_mounts() implementation and the
+   * https://gitlab.gnome.org/GNOME/glib/issues/1271 issue.
+   */
+  if (root != NULL && g_strcmp0 (root, "/") != 0)
+    return TRUE;
+
   return FALSE;
 }
 
@@ -408,6 +431,7 @@ guess_system_internal (const char *mountpoint,
 static GUnixMountEntry *
 create_unix_mount_entry (const char *device_path,
                          const char *mount_path,
+                         const char *root_path,
                          const char *filesystem_type,
                          const char *options,
                          gboolean    is_read_only)
@@ -417,6 +441,7 @@ create_unix_mount_entry (const char *device_path,
   mount_entry = g_new0 (GUnixMountEntry, 1);
   mount_entry->device_path = g_strdup (device_path);
   mount_entry->mount_path = g_strdup (mount_path);
+  mount_entry->root_path = g_strdup (root_path);
   mount_entry->filesystem_type = g_strdup (filesystem_type);
   mount_entry->options = g_strdup (options);
   mount_entry->is_read_only = is_read_only;
@@ -424,7 +449,9 @@ create_unix_mount_entry (const char *device_path,
   mount_entry->is_system_internal =
     guess_system_internal (mount_entry->mount_path,
                            mount_entry->filesystem_type,
-                           mount_entry->device_path);
+                           mount_entry->device_path,
+                           mount_entry->root_path);
+
   return mount_entry;
 }
 
@@ -461,18 +488,6 @@ create_unix_mount_point (const char *device_path,
  */
 #define PROC_MOUNTINFO_PATH "/proc/self/mountinfo"
 
-static int
-uniq_fs_source_cmp (struct libmnt_table *table G_GNUC_UNUSED,
-                    struct libmnt_fs *a,
-                    struct libmnt_fs *b)
-{
-  if (mnt_fs_is_pseudofs (a) || mnt_fs_is_netfs (a) ||
-      mnt_fs_is_pseudofs (b) || mnt_fs_is_netfs (b))
-    return 1;
-
-  return !mnt_fs_streq_srcpath (a, mnt_fs_get_srcpath (b));
-}
-
 static GList *
 _g_get_unix_mounts (void)
 {
@@ -486,11 +501,6 @@ _g_get_unix_mounts (void)
   if (mnt_table_parse_mtab (table, NULL) < 0)
     goto out;
 
-  /* Use only the first mount for device, see comment from _g_get_unix_mounts
-   * in #else branch.
-   */
-  mnt_table_uniq_fs (table, MNT_UNIQ_FORWARD, uniq_fs_source_cmp);
-
   iter = mnt_new_iter (MNT_ITER_FORWARD);
   while (mnt_table_next_fs (table, iter, &fs) == 0)
     {
@@ -513,6 +523,7 @@ _g_get_unix_mounts (void)
 
       mount_entry = create_unix_mount_entry (device_path,
                                              mnt_fs_get_target (fs),
+                                             mnt_fs_get_root (fs),
                                              mnt_fs_get_fstype (fs),
                                              mnt_fs_get_options (fs),
                                              is_read_only);
@@ -608,6 +619,7 @@ _g_get_unix_mounts (void)
 
       mount_entry = create_unix_mount_entry (device_path,
                                              mntent->mnt_dir,
+                                             NULL,
                                              mntent->mnt_type,
                                              mntent->mnt_opts,
                                              is_read_only);
@@ -722,6 +734,7 @@ _g_get_unix_mounts (void)
 
       mount_entry = create_unix_mount_entry (mntent.mnt_special,
                                              mntent.mnt_mountp,
+                                             NULL,
                                              mntent.mnt_fstype,
                                              mntent.mnt_opts,
                                              is_read_only);
@@ -789,6 +802,7 @@ _g_get_unix_mounts (void)
 
       mount_entry = create_unix_mount_entry (vmt2dataptr (vmount_info, VMT_OBJECT),
                                              vmt2dataptr (vmount_info, VMT_STUB),
+                                             NULL,
                                              fs_info == NULL ? "unknown" : fs_info->vfsent_name,
                                              NULL,
                                              is_read_only);
@@ -865,6 +879,7 @@ _g_get_unix_mounts (void)
 
       mount_entry = create_unix_mount_entry (mntent[i].f_mntfromname,
                                              mntent[i].f_mntonname,
+                                             NULL,
                                              mntent[i].f_fstypename,
                                              NULL,
                                              is_read_only);
@@ -2009,6 +2024,7 @@ g_unix_mount_free (GUnixMountEntry *mount_entry)
 
   g_free (mount_entry->mount_path);
   g_free (mount_entry->device_path);
+  g_free (mount_entry->root_path);
   g_free (mount_entry->filesystem_type);
   g_free (mount_entry->options);
   g_free (mount_entry);
@@ -2034,6 +2050,7 @@ g_unix_mount_copy (GUnixMountEntry *mount_entry)
   copy = g_new0 (GUnixMountEntry, 1);
   copy->mount_path = g_strdup (mount_entry->mount_path);
   copy->device_path = g_strdup (mount_entry->device_path);
+  copy->root_path = g_strdup (mount_entry->root_path);
   copy->filesystem_type = g_strdup (mount_entry->filesystem_type);
   copy->options = g_strdup (mount_entry->options);
   copy->is_read_only = mount_entry->is_read_only;
@@ -2114,7 +2131,11 @@ g_unix_mount_compare (GUnixMountEntry *mount1,
   res = g_strcmp0 (mount1->device_path, mount2->device_path);
   if (res != 0)
     return res;
-       
+
+  res = g_strcmp0 (mount1->root_path, mount2->root_path);
+  if (res != 0)
+    return res;
+
   res = g_strcmp0 (mount1->filesystem_type, mount2->filesystem_type);
   if (res != 0)
     return res;
@@ -2163,6 +2184,29 @@ g_unix_mount_get_device_path (GUnixMountEntry *mount_entry)
 }
 
 /**
+ * g_unix_mount_get_root_path:
+ * @mount_entry: a #GUnixMountEntry.
+ * 
+ * Gets the root of the mount within the filesystem. This is useful e.g. for
+ * mounts created by bind operation, or btrfs subvolumes.
+ * 
+ * For example, the root path is equal to "/" for mount created by
+ * "mount /dev/sda1 /mnt/foo" and "/bar" for
+ * "mount --bind /mnt/foo/bar /mnt/bar".
+ *
+ * Returns: (nullable): a string containing the root, or %NULL if not supported.
+ *
+ * Since: 2.60
+ */
+const gchar *
+g_unix_mount_get_root_path (GUnixMountEntry *mount_entry)
+{
+  g_return_val_if_fail (mount_entry != NULL, NULL);
+
+  return mount_entry->root_path;
+}
+
+/**
  * g_unix_mount_get_fs_type:
  * @mount_entry: a #GUnixMount.
  * 
index a392d49..fe8e241 100644 (file)
@@ -79,6 +79,8 @@ GLIB_AVAILABLE_IN_ALL
 const char *   g_unix_mount_get_mount_path          (GUnixMountEntry    *mount_entry);
 GLIB_AVAILABLE_IN_ALL
 const char *   g_unix_mount_get_device_path         (GUnixMountEntry    *mount_entry);
+GLIB_AVAILABLE_IN_2_60
+const char *   g_unix_mount_get_root_path           (GUnixMountEntry    *mount_entry);
 GLIB_AVAILABLE_IN_ALL
 const char *   g_unix_mount_get_fs_type             (GUnixMountEntry    *mount_entry);
 GLIB_AVAILABLE_IN_2_58
index d3bd3b2..dd49df7 100644 (file)
  * for credentials.
  *
  * The callback will be fired when the operation has resolved (either
- * with success or failure), and a #GAsyncReady structure will be
+ * with success or failure), and a #GAsyncResult instance will be
  * passed to the callback.  That callback should then call
  * g_volume_mount_finish() with the #GVolume instance and the
- * #GAsyncReady data to see if the operation was completed
+ * #GAsyncResult data to see if the operation was completed
  * successfully.  If an @error is present when g_volume_mount_finish()
  * is called, then it will be filled with any error information.
  *
index 1bb47e5..6d8a814 100644 (file)
@@ -74,8 +74,8 @@ G_BEGIN_DECLS
  *
  * The string used to obtain the volume class with g_volume_get_identifier().
  *
- * Known volume classes include `device` and `network`. Other classes may
- * be added in the future.
+ * Known volume classes include `device`, `network`, and `loop`. Other
+ * classes may be added in the future.
  *
  * This is intended to be used by applications to classify #GVolume
  * instances into different sections - for example a file manager or
index cb22f89..1718bb6 100644 (file)
@@ -43,6 +43,9 @@
  * [thread-default-context aware][g-main-context-push-thread-default],
  * and so should not be used other than from the main thread, with no
  * thread-default-context active.
+ *
+ * In order to receive updates about volumes and mounts monitored through GVFS,
+ * a main loop must be running.
  **/
 
 G_DEFINE_TYPE (GVolumeMonitor, g_volume_monitor, G_TYPE_OBJECT)
index 9f335b3..499bbb3 100644 (file)
@@ -1426,7 +1426,7 @@ collect_capable_apps_from_clients (GPtrArray *capable_apps,
       GWin32RegistrySubkeyIter subkey_iter;
       GWin32RegistryKey *system_client_type;
       GWin32RegistryValueType default_type;
-      gunichar2 *default_value = NULL;
+      gunichar2 *default_value;
       gunichar2 *client_name;
       gsize client_name_len;
 
index 7f2c08e..47aa0b4 100644 (file)
@@ -797,6 +797,7 @@ libgio = library('gio-2.0',
   objects : internal_objects,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   include_directories : [configinc, gioinc],
   #  '$(gio_win32_res_ldflag)',
@@ -816,7 +817,7 @@ endif
 
 schemas_subdir = join_paths('glib-2.0', 'schemas')
 
-pkg.generate(libraries : libgio,
+pkg.generate(libgio,
   libraries_private : [osx_ldflags],
   requires : ['glib-2.0', 'gobject-2.0'],
   variables : ['datadir=' + join_paths('${prefix}', get_option('datadir')),
@@ -854,9 +855,8 @@ else
 endif
 
 libgio_dep = declare_dependency(link_with : libgio,
-  dependencies : [gioenumtypes_dep],
-  # We sadly need to export configinc here because everyone includes <gio/*.h>
-  include_directories : [configinc, gioinc])
+  dependencies : [libgmodule_dep, libgobject_dep, gioenumtypes_dep],
+  include_directories : [gioinc])
 
 if host_system == 'windows'
   # Hack till https://github.com/mesonbuild/meson/issues/2324 is fixed
index a6942d2..69e02d5 100644 (file)
@@ -135,13 +135,12 @@ test_resources2.h
 testfilemonitor
 thumbnail-verification
 tls-certificate
+tls-database
 tls-interaction
 unix-fd
 unix-streams
 vfs
 volumemonitor
-xdgconfighome
-xdgdatadir
-xdgdatahome
 xgen-gio
 xgen-giosrc.c
+gresource-big-test.txt
index c4e7a92..e8baa01 100644 (file)
@@ -50,7 +50,6 @@ test_programs = \
        memory-output-stream                    \
        monitor                                 \
        mount-operation                         \
-       network-address                         \
        network-monitor                         \
        network-monitor-race                    \
        permission                              \
@@ -65,6 +64,7 @@ test_programs = \
        socket-service                          \
        srvtarget                               \
        task                                    \
+       tls-database                            \
        tls-interaction                         \
        vfs                                     \
        volumemonitor                           \
@@ -194,6 +194,12 @@ schema_tests = \
        wrong-category.gschema.xml                      \
        $(NULL)
 
+test_programs += network-address
+network_address_SOURCES = \
+       network-address.c \
+       mock-resolver.c \
+       mock-resolver.h
+
 test_programs += thumbnail-verification
 dist_test_data += $(thumbnail_data_files)
 thumbnail_data_files = $(addprefix thumbnails/,$(thumbnail_tests))
@@ -219,15 +225,20 @@ tls_certificate_SOURCES = \
 dist_test_data += $(cert_data_files)
 cert_data_files = $(addprefix cert-tests/,$(cert_tests))
 cert_tests = \
-       cert1.pem       \
-       cert2.pem       \
-       cert3.pem       \
-       cert-key.pem    \
-       cert-list.pem   \
-       key8.pem        \
-       key-cert.pem    \
-       key.pem         \
-       nothing.pem     \
+       cert1.pem               \
+       cert2.pem               \
+       cert3.pem               \
+       cert-crlf.pem           \
+       cert-key.pem            \
+       cert-list.pem           \
+       key8.pem                \
+       key8enc.pem             \
+       key-cert.pem            \
+       key.pem                 \
+       key-crlf.pem            \
+       key_missing-footer.pem  \
+       key_missing-header.pem  \
+       nothing.pem             \
        $(NULL)
 
 uninstalled_test_extra_programs += socket-client
@@ -333,10 +344,7 @@ dist_test_data += \
 
 dist_test_data += \
        appinfo-test-actions.desktop            \
-       appinfo-test-gnome.desktop              \
-       appinfo-test-notgnome.desktop           \
-       appinfo-test.desktop                    \
-       appinfo-test2.desktop                   \
+       appinfo-test-static.desktop             \
        file.c                                  \
        org.gtk.test.dbusappinfo.desktop        \
        x-content/image-dcf/DCIM/Camera/20130831_203925.jpg \
@@ -356,11 +364,37 @@ uninstalled_test_extra_programs += \
 if !OS_COCOA
 test_extra_programs += apps
 test_programs += mimeapps
-clean-local: clean-mimeapps
-clean-mimeapps:
-       rm -rf xdgdatadir xdgdatahome xdgconfighome
 endif
 
+appinfo-test-gnome.desktop: appinfo-test-gnome.desktop.in Makefile
+       $(AM_V_GEN)$(SED) \
+               -e 's|[@]installed_tests_dir[@]|$(installed_testdir)|g' \
+               $< > $@
+appinfo-test-notgnome.desktop: appinfo-test-notgnome.desktop.in Makefile
+       $(AM_V_GEN)$(SED) \
+               -e 's|[@]installed_tests_dir[@]|$(installed_testdir)|g' \
+               $< > $@
+appinfo-test.desktop: appinfo-test.desktop.in Makefile
+       $(AM_V_GEN)$(SED) \
+               -e 's|[@]installed_tests_dir[@]|$(installed_testdir)|g' \
+               $< > $@
+appinfo-test2.desktop: appinfo-test2.desktop.in Makefile
+       $(AM_V_GEN)$(SED) \
+               -e 's|[@]installed_tests_dir[@]|$(installed_testdir)|g' \
+               $< > $@
+
+appinfo_desktop_templates = \
+       appinfo-test-gnome.desktop.in \
+       appinfo-test-notgnome.desktop.in \
+       appinfo-test.desktop.in \
+       appinfo-test2.desktop.in \
+       $(NULL)
+appinfo_desktop_files = $(appinfo_desktop_templates:.in=)
+
+EXTRA_DIST += $(appinfo_desktop_templates)
+CLEANFILES += $(appinfo_desktop_files)
+test_data += $(appinfo_desktop_files)
+
 uninstalled_test_programs += gsettings gschema-compile
 gsettings_DEPENDENCIES = test.mo
 CLEANFILES += test.mo de/LC_MESSAGES/test.mo keyfile/gsettings.store
@@ -448,6 +482,7 @@ test_programs += \
        gdbus-peer                              \
        gdbus-proxy                             \
        gdbus-proxy-threads                     \
+       gdbus-proxy-unique-name                 \
        gdbus-proxy-well-known-name             \
        gdbus-test-codegen                      \
        gdbus-test-codegen-old                  \
@@ -482,6 +517,7 @@ gdbus_introspection_SOURCES              = $(gdbus_sessionbus_sources) gdbus-int
 gdbus_names_SOURCES                      = $(gdbus_sessionbus_sources) gdbus-names.c
 gdbus_proxy_SOURCES                      = $(gdbus_sessionbus_sources) gdbus-proxy.c
 gdbus_proxy_threads_SOURCES              = $(gdbus_sessionbus_sources) gdbus-proxy-threads.c
+gdbus_proxy_unique_name_SOURCES          = $(gdbus_sessionbus_sources) gdbus-proxy-unique-name.c
 gdbus_proxy_well_known_name_SOURCES      = $(gdbus_sessionbus_sources) gdbus-proxy-well-known-name.c
 gdbus_test_codegen_SOURCES               = $(gdbus_sessionbus_sources) gdbus-test-codegen.c
 nodist_gdbus_test_codegen_SOURCES        = gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h gdbus-test-codegen-generated-interface-info.c gdbus-test-codegen-generated-interface-info.h
@@ -555,6 +591,7 @@ endif # OS_UNIX
 endif # HAVE_DBUS_DAEMON
 
 tls_interaction_SOURCES = tls-interaction.c gtesttlsbackend.c gtesttlsbackend.h
+tls_database_SOURCES = tls-database.c gtesttlsbackend.c gtesttlsbackend.h
 
 # -----------------------------------------------------------------------------
 
@@ -617,9 +654,12 @@ test-generated.txt: test1.txt
        $(AM_V_GEN) echo "Generated" > $@ && \
          cat $< >> $@
 
+gresource-big-test.txt: gen-big-test-resource.py
+       $(AM_V_GEN) $(PYTHON) $< $@
+
 resources.o: test_resources2.h
 test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test2.gresource.xml)
-       $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $<
+       $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=. --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $<
 
 test_resources2.h test_resources2.c: test3.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test3.gresource.xml)
        $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate --c-name _g_test2 --manual-register $<
@@ -630,8 +670,21 @@ plugin_resources.c: test4.gresource.xml Makefile $(shell $(glib_compile_resource
 test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=. --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test.gresource.xml)
        $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=. --sourcedir=$(srcdir) $<
 
-EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml
-CLEANFILES += test-generated.txt test_resources.c test_resources2.[ch] plugin_resources.c test.gresource
+EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml test5.gresource.xml gen-big-test-resource.py
+CLEANFILES += test-generated.txt test_resources.c test_resources2.[ch] plugin_resources.c test.gresource gresource-big-test.txt
+
+if OS_LINUX
+test5.gresource: test5.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=. --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test5.gresource.xml)
+       $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=. --sourcedir=$(srcdir) $<
+test_resources_binary.c: test5.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=. --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test5.gresource.xml)
+       $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_binary_test1 $<
+test_resources_binary_data.o: test5.gresource
+       $(AM_V_GEN) ld -r -b binary $< -o $@
+test_resources_binary_data2.o: test_resources_binary.o
+       $(AM_V_GEN) objcopy --add-symbol _g_binary_test1_resource_data=.data:0 -N _binary_test5_gresource_start -N _binary_test5_gresource_size -N _binary_test5_gresource_end $< $@
+nodist_resources_SOURCES += test_resources_binary_data2.o test_resources_binary.c
+endif
+
 endif # !CROSS_COMPILING
 
 BUILT_SOURCES += giotypefuncs.inc
index 8b5339e..1e175c6 100644 (file)
@@ -515,7 +515,7 @@ test_parse_detailed (void)
           expected = g_variant_parse (NULL, testcases[i].expected_target, NULL, NULL, NULL);
           g_assert (expected);
 
-          g_assert (g_variant_equal (expected, target));
+          g_assert_cmpvariant (expected, target);
           g_variant_unref (expected);
           g_variant_unref (target);
         }
@@ -1040,6 +1040,8 @@ test_property_actions (void)
   g_assert_cmpstr (name, ==, "keepalive");
   g_assert (enabled);
   g_free (name);
+  g_variant_type_free (ptype);
+  g_variant_type_free (stype);
   g_variant_unref (state);
 
   g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (action));
similarity index 64%
rename from gio/tests/appinfo-test-gnome.desktop
rename to gio/tests/appinfo-test-gnome.desktop.in
index 9e3b428..e32d545 100644 (file)
@@ -1,6 +1,6 @@
 [Desktop Entry]
 Type=Application
 Name=appinfo-test
-Exec=./appinfo-test --option
+Exec=@installed_tests_dir@/appinfo-test --option
 OnlyShowIn=GNOME;KDE;
 NotShowIn=ROX;
similarity index 63%
rename from gio/tests/appinfo-test-notgnome.desktop
rename to gio/tests/appinfo-test-notgnome.desktop.in
index 2f7c11d..5858182 100644 (file)
@@ -1,6 +1,6 @@
 [Desktop Entry]
 Type=Application
 Name=appinfo-test
-Exec=./appinfo-test --option
+Exec=@installed_tests_dir@/appinfo-test --option
 OnlyShowIn=KDE;
 NotShowIn=GNOME;
diff --git a/gio/tests/appinfo-test-static.desktop b/gio/tests/appinfo-test-static.desktop
new file mode 100644 (file)
index 0000000..f8a09f6
--- /dev/null
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Type=Application
+GenericName=generic-appinfo-test
+Name=appinfo-test
+Name[de]=appinfo-test-de
+X-GNOME-FullName=example
+X-GNOME-FullName[de]=Beispiel
+Comment=GAppInfo example
+Comment[de]=GAppInfo Beispiel
+Exec=true --option %U %i --name %c --filename %k %m %%
+Icon=testicon.svg
+Terminal=true
+StartupNotify=true
+StartupWMClass=appinfo-class
+MimeType=image/png;image/jpeg;
+Keywords=keyword1;test keyword;
+Categories=GNOME;GTK;
+X-JunkFood=Burger
+X-JunkFood[de]=Bratwurst
\ No newline at end of file
index 86d0e49..3a91a2f 100644 (file)
@@ -14,7 +14,7 @@ main (int argc, char *argv[])
       gchar *expected;
       gint pid_from_env;
 
-      expected = g_test_build_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+      expected = g_test_build_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
       g_assert_cmpstr (envvar, ==, expected);
       g_free (expected);
 
similarity index 83%
rename from gio/tests/appinfo-test.desktop
rename to gio/tests/appinfo-test.desktop.in
index 90e4120..bc292b1 100644 (file)
@@ -7,7 +7,7 @@ X-GNOME-FullName=example
 X-GNOME-FullName[de]=Beispiel
 Comment=GAppInfo example
 Comment[de]=GAppInfo Beispiel
-Exec=./appinfo-test --option %U %i --name %c --filename %k %m %%
+Exec=@installed_tests_dir@/appinfo-test --option %U %i --name %c --filename %k %m %%
 Icon=testicon.svg
 Terminal=true
 StartupNotify=true
similarity index 81%
rename from gio/tests/appinfo-test2.desktop
rename to gio/tests/appinfo-test2.desktop.in
index 1f55393..70780f8 100644 (file)
@@ -6,6 +6,6 @@ X-GNOME-FullName=example
 X-GNOME-FullName[de]=Beispiel
 Comment=GAppInfo example
 Comment[de]=GAppInfo Beispiel
-Exec=./appinfo-test --option
+Exec=@installed_tests_dir@/appinfo-test --option
 TryExec=does-not-exist
 Icon=testicon
index a52bc70..f13698d 100644 (file)
@@ -9,7 +9,8 @@
 static void
 test_launch_for_app_info (GAppInfo *appinfo)
 {
-  GError *error;
+  GError *error = NULL;
+  gboolean success;
   GFile *file;
   GList *l;
   const gchar *path;
@@ -21,30 +22,34 @@ test_launch_for_app_info (GAppInfo *appinfo)
       return;
     }
 
-  error = NULL;
-  g_assert (g_app_info_launch (appinfo, NULL, NULL, &error));
+  success = g_app_info_launch (appinfo, NULL, NULL, &error);
   g_assert_no_error (error);
+  g_assert_true (success);
 
-  g_assert (g_app_info_launch_uris (appinfo, NULL, NULL, &error));
+  success = g_app_info_launch_uris (appinfo, NULL, NULL, &error);
   g_assert_no_error (error);
+  g_assert_true (success);
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
   file = g_file_new_for_path (path);
   l = NULL;
   l = g_list_append (l, file);
 
-  g_assert (g_app_info_launch (appinfo, l, NULL, &error));
+  success = g_app_info_launch (appinfo, l, NULL, &error);
   g_assert_no_error (error);
+  g_assert_true (success);
   g_list_free (l);
   g_object_unref (file);
 
   l = NULL;
-  uri = g_strconcat ("file://", g_test_get_dir (G_TEST_DIST), "/appinfo-test.desktop", NULL);
+  uri = g_strconcat ("file://", g_test_get_dir (G_TEST_BUILT), "/appinfo-test.desktop", NULL);
   l = g_list_append (l, uri);
   l = g_list_append (l, "file:///etc/group#adm");
 
-  g_assert (g_app_info_launch_uris (appinfo, l, NULL, &error));
+  success = g_app_info_launch_uris (appinfo, l, NULL, &error);
   g_assert_no_error (error);
+  g_assert_true (success);
+
   g_list_free (l);
   g_free (uri);
 }
@@ -55,9 +60,14 @@ test_launch (void)
   GAppInfo *appinfo;
   const gchar *path;
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
-  g_assert (appinfo != NULL);
+
+  if (appinfo == NULL)
+    {
+      g_test_skip ("appinfo-test binary not installed");
+      return;
+    }
 
   test_launch_for_app_info (appinfo);
   g_object_unref (appinfo);
@@ -84,44 +94,50 @@ test_launch_no_app_id (void)
     "Keywords=keyword1;test keyword;\n"
     "Categories=GNOME;GTK;\n";
 
-  const char *exec_line_variants[] = {
-    "Exec=./appinfo-test --option %U %i --name %c --filename %k %m %%",
-    "Exec=./appinfo-test --option %u %i --name %c --filename %k %m %%"
-  };
-
+  gchar *exec_line_variants[2];
   gsize i;
 
+  exec_line_variants[0] = g_strdup_printf (
+      "Exec=%s/appinfo-test --option %%U %%i --name %%c --filename %%k %%m %%%%",
+      g_test_get_dir (G_TEST_BUILT));
+  exec_line_variants[1] = g_strdup_printf (
+      "Exec=%s/appinfo-test --option %%u %%i --name %%c --filename %%k %%m %%%%",
+      g_test_get_dir (G_TEST_BUILT));
+
   g_test_bug ("791337");
 
   for (i = 0; i < G_N_ELEMENTS (exec_line_variants); i++)
-  {
-    gchar *desktop_file_contents;
-    GKeyFile *fake_desktop_file;
-    GAppInfo *appinfo;
-    gboolean loaded;
-
-    g_test_message ("Exec line variant #%" G_GSIZE_FORMAT, i);
-
-    desktop_file_contents = g_strdup_printf ("%s\n%s",
-                                             desktop_file_base_contents,
-                                             exec_line_variants[i]);
-
-    /* We load a desktop file from memory to force the app not
-     * to have an app ID, which would check different codepaths.
-     */
-    fake_desktop_file = g_key_file_new ();
-    loaded = g_key_file_load_from_data (fake_desktop_file, desktop_file_contents, -1, G_KEY_FILE_NONE, NULL);
-    g_assert_true (loaded);
-
-    appinfo = (GAppInfo*)g_desktop_app_info_new_from_keyfile (fake_desktop_file);
-    g_assert (appinfo != NULL);
-
-    test_launch_for_app_info (appinfo);
-
-    g_free (desktop_file_contents);
-    g_object_unref (appinfo);
-    g_key_file_unref (fake_desktop_file);
-  }
+    {
+      gchar *desktop_file_contents;
+      GKeyFile *fake_desktop_file;
+      GAppInfo *appinfo;
+      gboolean loaded;
+
+      g_test_message ("Exec line variant #%" G_GSIZE_FORMAT, i);
+
+      desktop_file_contents = g_strdup_printf ("%s\n%s",
+                                               desktop_file_base_contents,
+                                               exec_line_variants[i]);
+
+      /* We load a desktop file from memory to force the app not
+       * to have an app ID, which would check different codepaths.
+       */
+      fake_desktop_file = g_key_file_new ();
+      loaded = g_key_file_load_from_data (fake_desktop_file, desktop_file_contents, -1, G_KEY_FILE_NONE, NULL);
+      g_assert_true (loaded);
+
+      appinfo = (GAppInfo*)g_desktop_app_info_new_from_keyfile (fake_desktop_file);
+      g_assert_nonnull (appinfo);
+
+      test_launch_for_app_info (appinfo);
+
+      g_free (desktop_file_contents);
+      g_object_unref (appinfo);
+      g_key_file_unref (fake_desktop_file);
+    }
+
+  g_free (exec_line_variants[1]);
+  g_free (exec_line_variants[0]);
 }
 
 static void
@@ -135,7 +151,7 @@ test_locale (const char *locale)
   g_setenv ("LANGUAGE", locale, TRUE);
   setlocale (LC_ALL, "");
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_DIST, "appinfo-test-static.desktop", NULL);
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
 
   if (g_strcmp0 (locale, "C") == 0)
@@ -181,16 +197,17 @@ test_basic (void)
   GIcon *icon, *icon2;
   const gchar *path;
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_DIST, "appinfo-test-static.desktop", NULL);
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
+  g_assert_nonnull (appinfo);
 
-  g_assert_cmpstr (g_app_info_get_id (appinfo), ==, "appinfo-test.desktop");
-  g_assert (strstr (g_app_info_get_executable (appinfo), "appinfo-test") != NULL);
+  g_assert_cmpstr (g_app_info_get_id (appinfo), ==, "appinfo-test-static.desktop");
+  g_assert_nonnull (strstr (g_app_info_get_executable (appinfo), "true"));
 
   icon = g_app_info_get_icon (appinfo);
-  g_assert (G_IS_THEMED_ICON (icon));
+  g_assert_true (G_IS_THEMED_ICON (icon));
   icon2 = g_themed_icon_new ("testicon");
-  g_assert (g_icon_equal (icon, icon2));
+  g_assert_true (g_icon_equal (icon, icon2));
   g_object_unref (icon2);
 
   appinfo2 = g_app_info_dup (appinfo);
@@ -207,19 +224,26 @@ test_show_in (void)
   GAppInfo *appinfo;
   const gchar *path;
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
-  g_assert (g_app_info_should_show (appinfo));
+
+  if (appinfo == NULL)
+    {
+      g_test_skip ("appinfo-test binary not installed");
+      return;
+    }
+
+  g_assert_true (g_app_info_should_show (appinfo));
   g_object_unref (appinfo);
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test-gnome.desktop", NULL);
+  path = g_test_get_filename (G_TEST_BUILT, "appinfo-test-gnome.desktop", NULL);
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
-  g_assert (g_app_info_should_show (appinfo));
+  g_assert_true (g_app_info_should_show (appinfo));
   g_object_unref (appinfo);
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test-notgnome.desktop", NULL);
+  path = g_test_get_filename (G_TEST_BUILT, "appinfo-test-notgnome.desktop", NULL);
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
-  g_assert (!g_app_info_should_show (appinfo));
+  g_assert_false (g_app_info_should_show (appinfo));
   g_object_unref (appinfo);
 }
 
@@ -239,12 +263,12 @@ test_commandline (void)
                                                 "cmdline-app-test",
                                                 G_APP_INFO_CREATE_SUPPORTS_URIS,
                                                 &error);
-  g_assert (appinfo != NULL);
   g_assert_no_error (error);
+  g_assert_nonnull (appinfo);
   g_assert_cmpstr (g_app_info_get_name (appinfo), ==, "cmdline-app-test");
   g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, cmdline_out);
-  g_assert (g_app_info_supports_uris (appinfo));
-  g_assert (!g_app_info_supports_files (appinfo));
+  g_assert_true (g_app_info_supports_uris (appinfo));
+  g_assert_false (g_app_info_supports_files (appinfo));
 
   g_object_unref (appinfo);
 
@@ -256,12 +280,12 @@ test_commandline (void)
                                                 "cmdline-app-test",
                                                 G_APP_INFO_CREATE_NONE,
                                                 &error);
-  g_assert (appinfo != NULL);
   g_assert_no_error (error);
+  g_assert_nonnull (appinfo);
   g_assert_cmpstr (g_app_info_get_name (appinfo), ==, "cmdline-app-test");
   g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, cmdline_out);
-  g_assert (!g_app_info_supports_uris (appinfo));
-  g_assert (g_app_info_supports_files (appinfo));
+  g_assert_false (g_app_info_supports_uris (appinfo));
+  g_assert_true (g_app_info_supports_files (appinfo));
 
   g_object_unref (appinfo);
 
@@ -286,10 +310,10 @@ test_launch_context (void)
                                                 NULL);
 
   str = g_app_launch_context_get_display (context, appinfo, NULL);
-  g_assert (str == NULL);
+  g_assert_null (str);
 
   str = g_app_launch_context_get_startup_notify_id (context, appinfo, NULL);
-  g_assert (str == NULL);
+  g_assert_null (str);
 
   g_object_unref (appinfo);
   g_object_unref (context);
@@ -308,8 +332,8 @@ launched (GAppLaunchContext *context,
   gint pid;
 
   pid = 0;
-  g_assert (g_variant_lookup (platform_data, "pid", "i", &pid));
-  g_assert (pid != 0);
+  g_assert_true (g_variant_lookup (platform_data, "pid", "i", &pid));
+  g_assert_cmpint (pid, !=, 0);
 
   launched_reached = TRUE;
 }
@@ -327,6 +351,7 @@ test_launch_context_signals (void)
   GAppLaunchContext *context;
   GAppInfo *appinfo;
   GError *error = NULL;
+  gboolean success;
   gchar *cmdline;
 
   cmdline = g_strconcat (g_test_get_dir (G_TEST_BUILT), "/appinfo-test --option", NULL);
@@ -339,11 +364,11 @@ test_launch_context_signals (void)
                                                 G_APP_INFO_CREATE_SUPPORTS_URIS,
                                                 NULL);
 
-  error = NULL;
-  g_assert (g_app_info_launch (appinfo, NULL, context, &error));
+  success = g_app_info_launch (appinfo, NULL, context, &error);
   g_assert_no_error (error);
+  g_assert_true (success);
 
-  g_assert (launched_reached);
+  g_assert_true (launched_reached);
 
   g_object_unref (appinfo);
   g_object_unref (context);
@@ -357,10 +382,10 @@ test_tryexec (void)
   GAppInfo *appinfo;
   const gchar *path;
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test2.desktop", NULL);
+  path = g_test_get_filename (G_TEST_BUILT, "appinfo-test2.desktop", NULL);
   appinfo = (GAppInfo*)g_desktop_app_info_new_from_filename (path);
 
-  g_assert (appinfo == NULL);
+  g_assert_null (appinfo);
 }
 
 /* Test that we can set an appinfo as default for a mime type or
@@ -371,7 +396,7 @@ test_associations (void)
 {
   GAppInfo *appinfo;
   GAppInfo *appinfo2;
-  GError *error;
+  GError *error = NULL;
   gboolean result;
   GList *list;
   gchar *cmdline;
@@ -383,33 +408,31 @@ test_associations (void)
                                                 NULL);
   g_free (cmdline);
 
-  error = NULL;
   result = g_app_info_set_as_default_for_type (appinfo, "application/x-glib-test", &error);
-
-  g_assert (result);
   g_assert_no_error (error);
+  g_assert_true (result);
 
   appinfo2 = g_app_info_get_default_for_type ("application/x-glib-test", FALSE);
 
-  g_assert (appinfo2);
+  g_assert_nonnull (appinfo2);
   g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, g_app_info_get_commandline (appinfo2));
 
   g_object_unref (appinfo2);
 
   result = g_app_info_set_as_default_for_extension (appinfo, "gio-tests", &error);
-  g_assert (result);
   g_assert_no_error (error);
+  g_assert_true (result);
 
   appinfo2 = g_app_info_get_default_for_type ("application/x-extension-gio-tests", FALSE);
 
-  g_assert (appinfo2);
+  g_assert_nonnull (appinfo2);
   g_assert_cmpstr (g_app_info_get_commandline (appinfo), ==, g_app_info_get_commandline (appinfo2));
 
   g_object_unref (appinfo2);
 
   result = g_app_info_add_supports_type (appinfo, "application/x-gio-test", &error);
-  g_assert (result);
   g_assert_no_error (error);
+  g_assert_true (result);
 
   list = g_app_info_get_all_for_type ("application/x-gio-test");
   g_assert_cmpint (g_list_length (list), ==, 1);
@@ -418,12 +441,13 @@ test_associations (void)
   g_object_unref (appinfo2);
   g_list_free (list);
 
-  g_assert (g_app_info_can_remove_supports_type (appinfo));
-  g_assert (g_app_info_remove_supports_type (appinfo, "application/x-gio-test", &error));
+  g_assert_true (g_app_info_can_remove_supports_type (appinfo));
+  result = g_app_info_remove_supports_type (appinfo, "application/x-gio-test", &error);
   g_assert_no_error (error);
+  g_assert_true (result);
 
-  g_assert (g_app_info_can_delete (appinfo));
-  g_assert (g_app_info_delete (appinfo));
+  g_assert_true (g_app_info_can_delete (appinfo));
+  g_assert_true (g_app_info_delete (appinfo));
   g_object_unref (appinfo);
 }
 
@@ -442,8 +466,8 @@ test_environment (void)
 
   env = g_app_launch_context_get_environment (ctx);
 
-  g_assert (g_environ_getenv (env, "FOO") == NULL);
-  g_assert (g_environ_getenv (env, "BLA") == NULL);
+  g_assert_null (g_environ_getenv (env, "FOO"));
+  g_assert_null (g_environ_getenv (env, "BLA"));
   g_assert_cmpstr (g_environ_getenv (env, "PATH"), ==, path);
 
   g_strfreev (env);
@@ -465,7 +489,7 @@ test_environment (void)
   env = g_app_launch_context_get_environment (ctx);
 
   g_assert_cmpstr (g_environ_getenv (env, "FOO"), ==, "baz");
-  g_assert (g_environ_getenv (env, "BLA") == NULL);
+  g_assert_null (g_environ_getenv (env, "BLA"));
 
   g_strfreev (env);
 
@@ -479,7 +503,7 @@ test_startup_wm_class (void)
   const char *wm_class;
   const gchar *path;
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_DIST, "appinfo-test-static.desktop", NULL);
   appinfo = g_desktop_app_info_new_from_filename (path);
   wm_class = g_desktop_app_info_get_startup_wm_class (appinfo);
 
@@ -495,7 +519,7 @@ test_supported_types (void)
   const char * const *content_types;
   const gchar *path;
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_DIST, "appinfo-test-static.desktop", NULL);
   appinfo = G_APP_INFO (g_desktop_app_info_new_from_filename (path));
   content_types = g_app_info_get_supported_types (appinfo);
 
@@ -512,53 +536,53 @@ test_from_keyfile (void)
   GKeyFile *kf;
   GError *error = NULL;
   const gchar *categories;
+  gchar **categories_list;
+  gsize categories_count;
   gchar **keywords;
   const gchar *file;
   const gchar *name;
   const gchar *path;
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_DIST, "appinfo-test-static.desktop", NULL);
   kf = g_key_file_new ();
   g_key_file_load_from_file (kf, path, G_KEY_FILE_NONE, &error);
   g_assert_no_error (error);
   info = g_desktop_app_info_new_from_keyfile (kf);
-  g_key_file_free (kf);
-  g_assert (info != NULL);
+  g_key_file_unref (kf);
+  g_assert_nonnull (info);
 
   g_object_get (info, "filename", &file, NULL);
-  g_assert (file == NULL);
+  g_assert_null (file);
 
   file = g_desktop_app_info_get_filename (info);
-  g_assert (file == NULL);
+  g_assert_null (file);
   categories = g_desktop_app_info_get_categories (info);
   g_assert_cmpstr (categories, ==, "GNOME;GTK;");
+  categories_list = g_desktop_app_info_get_string_list (info, "Categories", &categories_count);
+  g_assert_cmpint (categories_count, ==, 2);
+  g_assert_cmpint (g_strv_length (categories_list), ==, 2);
+  g_assert_cmpstr (categories_list[0], ==, "GNOME");
+  g_assert_cmpstr (categories_list[1], ==, "GTK");
   keywords = (gchar **)g_desktop_app_info_get_keywords (info);
   g_assert_cmpint (g_strv_length (keywords), ==, 2);
   g_assert_cmpstr (keywords[0], ==, "keyword1");
   g_assert_cmpstr (keywords[1], ==, "test keyword");
   name = g_desktop_app_info_get_generic_name (info);
   g_assert_cmpstr (name, ==, "generic-appinfo-test");
-  g_assert (!g_desktop_app_info_get_nodisplay (info));
+  g_assert_false (g_desktop_app_info_get_nodisplay (info));
 
+  g_strfreev (categories_list);
   g_object_unref (info);
 }
 
 int
 main (int argc, char *argv[])
 {
-  const gchar *build_dir;
-
   g_setenv ("XDG_CURRENT_DESKTOP", "GNOME", TRUE);
 
-  g_test_init (&argc, &argv, NULL);
+  g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
   g_test_bug_base ("https://bugzilla.gnome.org/show_bug.cgi?id=");
 
-  /* With Meson build we need to change into right directory, so that the
-   * appinfo-test binary can be found. */
-  build_dir = g_getenv ("G_TEST_BUILDDIR");
-  if (build_dir)
-    g_chdir (build_dir);
-
   g_test_add_func ("/appinfo/basic", test_basic);
   g_test_add_func ("/appinfo/text", test_text);
   g_test_add_func ("/appinfo/launch", test_launch);
index 30ea108..c4e0721 100644 (file)
@@ -3,7 +3,6 @@
 
 typedef struct
 {
-  gchar *data_dir;
   gchar *applications_dir;
 } Fixture;
 
@@ -11,18 +10,10 @@ static void
 setup (Fixture       *fixture,
        gconstpointer  user_data)
 {
-  GError *error = NULL;
-
-  fixture->data_dir = g_dir_make_tmp ("gio-test-app-monitor_XXXXXX", &error);
-  g_assert_no_error (error);
+  fixture->applications_dir = g_build_filename (g_get_user_data_dir (), "applications", NULL);
+  g_assert_cmpint (g_mkdir_with_parents (fixture->applications_dir, 0755), ==, 0);
 
-  fixture->applications_dir = g_build_filename (fixture->data_dir, "applications", NULL);
-  g_assert_cmpint (g_mkdir (fixture->applications_dir, 0755), ==, 0);
-
-  g_setenv ("XDG_DATA_DIRS", fixture->data_dir, TRUE);
-  g_setenv ("XDG_DATA_HOME", fixture->data_dir, TRUE);
-
-  g_test_message ("Using data directory: %s", fixture->data_dir);
+  g_test_message ("Using data directory: %s", g_get_user_data_dir ());
 }
 
 static void
@@ -31,9 +22,6 @@ teardown (Fixture       *fixture,
 {
   g_assert_cmpint (g_rmdir (fixture->applications_dir), ==, 0);
   g_clear_pointer (&fixture->applications_dir, g_free);
-
-  g_assert_cmpint (g_rmdir (fixture->data_dir), ==, 0);
-  g_clear_pointer (&fixture->data_dir, g_free);
 }
 
 static gboolean
@@ -129,7 +117,7 @@ test_app_monitor (Fixture       *fixture,
 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 ("/monitor/app", Fixture, NULL, setup, test_app_monitor, teardown);
 
diff --git a/gio/tests/cert-tests/cert-crlf.pem b/gio/tests/cert-tests/cert-crlf.pem
new file mode 100644 (file)
index 0000000..c54f448
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----\r
+MIICtTCCAh4CCQCMmwFMUPAJYzANBgkqhkiG9w0BAQUFADCBnjELMAkGA1UEBhMC\r
+Q0ExDzANBgNVBAgMBlF1ZWJlYzERMA8GA1UEBwwITW9udHJlYWwxFzAVBgNVBAoM\r
+DkNvbGxhYm9yYSBMdGQuMQ8wDQYDVQQLDAZDYW5hZGExEjAQBgNVBAMMCTEyNy4w\r
+LjAuMTEtMCsGCSqGSIb3DQEJARYebmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEu\r
+Y29tMB4XDTExMDcyNTE4NDkzNFoXDTEyMDcyNDE4NDkzNFowgZ4xCzAJBgNVBAYT\r
+AkNBMQ8wDQYDVQQIDAZRdWViZWMxETAPBgNVBAcMCE1vbnRyZWFsMRcwFQYDVQQK\r
+DA5Db2xsYWJvcmEgTHRkLjEPMA0GA1UECwwGQ2FuYWRhMRIwEAYDVQQDDAkxMjcu\r
+MC4wLjExLTArBgkqhkiG9w0BCQEWHm5pY29sYXMuZHVmcmVzbmVAY29sbGFib3Jh\r
+LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJa05foKd5ULBBjHoI4U\r
+DKMOcoYp6UO8o4t+rKBrlKVMp0D7Oz+bZt6I2T3kBjZmKH9wrHNsk6zC6wonbfMR\r
+ZHILWcnTifbEEhIMHNqH+J5b33yGW3SEftd1jj1UZkubQVZEFha5UhbUO9AQ4TSt\r
+0mX5AG+PkJi0kdTCRWlD1q0CAwEAATANBgkqhkiG9w0BAQUFAAOBgQCaaBfCfCiw\r
+BJ/2pzZOjoFQcMqwPWufJ+F7hv8AK0zaEhsYW/JPPNpVVjM4Rf9dhMFG513GQ6IR\r
+q3K+okin/2H6XyLD1eyAxAreuyMZPwOsTdgkVROhl+NJEfZKnFZSxK9wkiQRnNhS\r
++5L8/na5o3vsgGerggQi8pj2JjfVE0R/aQ==\r
+-----END CERTIFICATE-----\r
diff --git a/gio/tests/cert-tests/key-crlf.pem b/gio/tests/cert-tests/key-crlf.pem
new file mode 100644 (file)
index 0000000..ddb7fd1
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----\r
+MIICXQIBAAKBgQCslrTl+gp3lQsEGMegjhQMow5yhinpQ7yji36soGuUpUynQPs7\r
+P5tm3ojZPeQGNmYof3Csc2yTrMLrCidt8xFkcgtZydOJ9sQSEgwc2of4nlvffIZb\r
+dIR+13WOPVRmS5tBVkQWFrlSFtQ70BDhNK3SZfkAb4+QmLSR1MJFaUPWrQIDAQAB\r
+AoGAUTnskYAIhRdEQ/1Vlp7HmNr05bl26C3VDjOMvroRZ7gUR3MxykS5YsTBK10R\r
+gEsB8XVpFgCMzUO1yODShdCsEg9kCB3fzSWkunK8+TF2TKOM5uWlQwifKJvcNisR\r
+Nbg3r8WygMMXaWSFA3xWoRuZ5It0jOX18v+x5RHHon/kaRECQQDl6FSwgJLeNAkR\r
+pMNQGdRhmMesHWmNNBv3Wozqm6Wpkwo5ZXPsLt3pprd0GN5jX0IG7clT1/eMD9/G\r
++3UGqTj3AkEAwC0M2gv+QUhbaB+KSlOZDOi4gsnhnsnaM7HQGDJJ5no4y2EvnYI3\r
+Y5rPJWedeYlCV3ccMitjnjcIJHInRZBIewJBANgsamVDn9Ua7GQQni1U/COAek7V\r
+oQfKNXmRROrbyxr1TSnGwQcU0kf+IIUjVQfu67CEKUeSzAqAapM4oULQHuUCQQC9\r
+J9qdiO6DXXAzRdA9pplgHnT2rzV3sSEoft3f4yfgRu8+KHPQqkpQrSE1pQ5YgWUe\r
+aGwFabXNFkfab839562fAkBl8jPidQdKWEgSa6h5pm4++sXLdWl7p6jiyetH64W7\r
+HnhRryE3ptrRGO0hSV1v4bx3DKzeJiJRlWUWiSl7828t\r
+-----END RSA PRIVATE KEY-----\r
diff --git a/gio/tests/cert-tests/key8enc.pem b/gio/tests/cert-tests/key8enc.pem
new file mode 100644 (file)
index 0000000..26a7157
--- /dev/null
@@ -0,0 +1,18 @@
+-----BEGIN ENCRYPTED PRIVATE KEY-----
+MIIC3TBXBgkqhkiG9w0BBQ0wSjApBgkqhkiG9w0BBQwwHAQIdjDoEOJTH2ICAggA
+MAwGCCqGSIb3DQIJBQAwHQYJYIZIAWUDBAEqBBDNLC2sDVjClaQyT8BfXTt1BIIC
+gCN4s9Z5bmfKogL7YHIJly2zLX5uILHeCr3iQpoPS8057V9Af1wqB/8AUOJrLY96
+R2amkXjlxuqA0BebEk4gcR4tWvCNQ2VCOqvQozUt8LnA+2xQRgzNwaW0HPxcAUzf
+6GVZKL7xfpwFD2ootfLwTHB2zAIVMo8nwgEzdDz93ZwsMmXJmOfSO7vpDQUnVqUX
+jVlue0i8n7fO4ClQ8fz5J8zyvPj403bR9qxsIJjQZACNVLMIksQXjTDngymy/ziI
+lZD4JDLXCQwAOgFz6N6vsyD/mHROyL4/4q8ujYFPmVpuAlQzuZJe6TFnmZHiSfoI
+we6wi1Nee1rbM4VzsGFzMa4Fr0ZhElHEKBXXje4YKWCAOWEo3tLjow4+0dQxNx5W
+tsbQdRt2fRYNYTgt18O55kq3DVfy93aMQVYIMuXkxwAuCWBeiLQrCfAM5r7kDwfc
+owp2AQ5Ndf+aAwr89k2fYUpexz9kZzU+eIY2K1cRhpUlLRAr5SG2oVy7n9IvYs1m
+O7/hjVBvXeAPDADVOtx/YNxPYr9ZI1X2QNDYGxNuSUNF1qGps66Gj+fcRe2NO+Ej
+YfSyfBvw+0h8sad81ZPepCSpIkYX91p6lCdCmRnJWYBwYyn6V5tXOx6tn5ntKJZ9
+9OtTGr7CMm7PLs9S8b03MV9IDJH+TBqR7msP1KWZbTxCNOws28EXo75tQ51ywElF
+FJI6ZU2gBYaX39i8WyvEMXFRRqzYUMzV0Yw2KeVRiGLh0ZX/4rlh2PQqVXGyakvn
+XttDRKEYPEvXDSRpO+tIvESlq9T0Pfo/rpnD4xJd2JWO6z/CSrn8cujs80e1+YjT
+HXksoJzsoLGeiYG2DzTK9lY=
+-----END ENCRYPTED PRIVATE KEY-----
diff --git a/gio/tests/cert-tests/key_missing-footer.pem b/gio/tests/cert-tests/key_missing-footer.pem
new file mode 100644 (file)
index 0000000..3a5b38d
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCslrTl+gp3lQsEGMegjhQMow5yhinpQ7yji36soGuUpUynQPs7
+P5tm3ojZPeQGNmYof3Csc2yTrMLrCidt8xFkcgtZydOJ9sQSEgwc2of4nlvffIZb
+dIR+13WOPVRmS5tBVkQWFrlSFtQ70BDhNK3SZfkAb4+QmLSR1MJFaUPWrQIDAQAB
+AoGAUTnskYAIhRdEQ/1Vlp7HmNr05bl26C3VDjOMvroRZ7gUR3MxykS5YsTBK10R
+gEsB8XVpFgCMzUO1yODShdCsEg9kCB3fzSWkunK8+TF2TKOM5uWlQwifKJvcNisR
+Nbg3r8WygMMXaWSFA3xWoRuZ5It0jOX18v+x5RHHon/kaRECQQDl6FSwgJLeNAkR
+pMNQGdRhmMesHWmNNBv3Wozqm6Wpkwo5ZXPsLt3pprd0GN5jX0IG7clT1/eMD9/G
++3UGqTj3AkEAwC0M2gv+QUhbaB+KSlOZDOi4gsnhnsnaM7HQGDJJ5no4y2EvnYI3
+Y5rPJWedeYlCV3ccMitjnjcIJHInRZBIewJBANgsamVDn9Ua7GQQni1U/COAek7V
+oQfKNXmRROrbyxr1TSnGwQcU0kf+IIUjVQfu67CEKUeSzAqAapM4oULQHuUCQQC9
+J9qdiO6DXXAzRdA9pplgHnT2rzV3sSEoft3f4yfgRu8+KHPQqkpQrSE1pQ5YgWUe
+aGwFabXNFkfab839562fAkBl8jPidQdKWEgSa6h5pm4++sXLdWl7p6jiyetH64W7
+HnhRryE3ptrRGO0hSV1v4bx3DKzeJiJRlWUWiSl7828t
diff --git a/gio/tests/cert-tests/key_missing-header.pem b/gio/tests/cert-tests/key_missing-header.pem
new file mode 100644 (file)
index 0000000..4bcb367
--- /dev/null
@@ -0,0 +1,14 @@
+MIICXQIBAAKBgQCslrTl+gp3lQsEGMegjhQMow5yhinpQ7yji36soGuUpUynQPs7
+P5tm3ojZPeQGNmYof3Csc2yTrMLrCidt8xFkcgtZydOJ9sQSEgwc2of4nlvffIZb
+dIR+13WOPVRmS5tBVkQWFrlSFtQ70BDhNK3SZfkAb4+QmLSR1MJFaUPWrQIDAQAB
+AoGAUTnskYAIhRdEQ/1Vlp7HmNr05bl26C3VDjOMvroRZ7gUR3MxykS5YsTBK10R
+gEsB8XVpFgCMzUO1yODShdCsEg9kCB3fzSWkunK8+TF2TKOM5uWlQwifKJvcNisR
+Nbg3r8WygMMXaWSFA3xWoRuZ5It0jOX18v+x5RHHon/kaRECQQDl6FSwgJLeNAkR
+pMNQGdRhmMesHWmNNBv3Wozqm6Wpkwo5ZXPsLt3pprd0GN5jX0IG7clT1/eMD9/G
++3UGqTj3AkEAwC0M2gv+QUhbaB+KSlOZDOi4gsnhnsnaM7HQGDJJ5no4y2EvnYI3
+Y5rPJWedeYlCV3ccMitjnjcIJHInRZBIewJBANgsamVDn9Ua7GQQni1U/COAek7V
+oQfKNXmRROrbyxr1TSnGwQcU0kf+IIUjVQfu67CEKUeSzAqAapM4oULQHuUCQQC9
+J9qdiO6DXXAzRdA9pplgHnT2rzV3sSEoft3f4yfgRu8+KHPQqkpQrSE1pQ5YgWUe
+aGwFabXNFkfab839562fAkBl8jPidQdKWEgSa6h5pm4++sXLdWl7p6jiyetH64W7
+HnhRryE3ptrRGO0hSV1v4bx3DKzeJiJRlWUWiSl7828t
+-----END RSA PRIVATE KEY-----
index b656b27..0872edf 100644 (file)
@@ -166,9 +166,11 @@ test_data_array (guchar *buffer, gsize len,
     case TEST_DATA_INT16:
     case TEST_DATA_UINT16:
       g_assert_cmpint (len % 2, ==, 0);
+      G_GNUC_FALLTHROUGH;
     case TEST_DATA_INT32:
     case TEST_DATA_UINT32:
       g_assert_cmpint (len % 4, ==, 0);
+      G_GNUC_FALLTHROUGH;
     case TEST_DATA_INT64:
     case TEST_DATA_UINT64:
       g_assert_cmpint (len % 8, ==, 0);
index 4871d85..dd41af8 100644 (file)
@@ -27,9 +27,7 @@
 #include <string.h>
 #include <unistd.h>
 
-static char *basedir;
-
-static GAppInfo * 
+static GAppInfo *
 create_app_info (const char *name)
 {
   GError *error;
@@ -40,13 +38,13 @@ create_app_info (const char *name)
                                              name,
                                              G_APP_INFO_CREATE_NONE,
                                              &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   /* this is necessary to ensure that the info is saved */
   g_app_info_set_as_default_for_type (info, "application/x-blah", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
   g_app_info_remove_supports_type (info, "application/x-blah", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
   g_app_info_reset_type_associations ("application/x-blah");
   
   return info;
@@ -64,34 +62,34 @@ test_delete (void)
   info = create_app_info ("Blah");
  
   id = g_app_info_get_id (info);
-  g_assert (id != NULL);
+  g_assert_nonnull (id);
 
-  filename = g_build_filename (basedir, "applications", id, NULL);
+  filename = g_build_filename (g_get_user_data_dir (), "applications", id, NULL);
 
   res = g_file_test (filename, G_FILE_TEST_EXISTS);
-  g_assert (res);
+  g_assert_true (res);
 
   res = g_app_info_can_delete (info);
-  g_assert (res);
+  g_assert_true (res);
 
   res = g_app_info_delete (info);
-  g_assert (res);
+  g_assert_true (res);
 
   res = g_file_test (filename, G_FILE_TEST_EXISTS);
-  g_assert (!res);
+  g_assert_false (res);
 
   g_object_unref (info);
 
   if (g_file_test ("/usr/share/applications/gedit.desktop", G_FILE_TEST_EXISTS))
     {
       info = (GAppInfo*)g_desktop_app_info_new_from_filename ("/usr/share/applications/gedit.desktop");
-      g_assert (info);
+      g_assert_nonnull (info);
      
       res = g_app_info_can_delete (info);
-      g_assert (!res);
+      g_assert_false (res);
  
       res = g_app_info_delete (info);
-      g_assert (!res);
+      g_assert_false (res);
     }
 
   g_free (filename);
@@ -109,33 +107,33 @@ test_default (void)
   info3 = create_app_info ("Blah3");
 
   g_app_info_set_as_default_for_type (info1, "application/x-test", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   g_app_info_set_as_default_for_type (info2, "application/x-test", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   info = g_app_info_get_default_for_type ("application/x-test", FALSE);
-  g_assert (info != NULL);
+  g_assert_nonnull (info);
   g_assert_cmpstr (g_app_info_get_id (info), ==, g_app_info_get_id (info2));
   g_object_unref (info);
 
   /* now try adding something, but not setting as default */
   g_app_info_add_supports_type (info3, "application/x-test", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   /* check that info2 is still default */
   info = g_app_info_get_default_for_type ("application/x-test", FALSE);
-  g_assert (info != NULL);
+  g_assert_nonnull (info);
   g_assert_cmpstr (g_app_info_get_id (info), ==, g_app_info_get_id (info2));
   g_object_unref (info);
 
   /* now remove info1 again */
   g_app_info_remove_supports_type (info1, "application/x-test", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   /* and make sure info2 is still default */
   info = g_app_info_get_default_for_type ("application/x-test", FALSE);
-  g_assert (info != NULL);
+  g_assert_nonnull (info);
   g_assert_cmpstr (g_app_info_get_id (info), ==, g_app_info_get_id (info2));
   g_object_unref (info);
 
@@ -143,7 +141,7 @@ test_default (void)
   g_app_info_reset_type_associations ("application/x-test");
 
   list = g_app_info_get_all_for_type ("application/x-test");
-  g_assert (list == NULL);
+  g_assert_null (list);
 
   g_app_info_delete (info1);
   g_app_info_delete (info2);
@@ -165,17 +163,17 @@ test_fallback (void)
   info1 = create_app_info ("Test1");
   info2 = create_app_info ("Test2");
 
-  g_assert (g_content_type_is_a ("text/x-python", "text/plain"));
+  g_assert_true (g_content_type_is_a ("text/x-python", "text/plain"));
 
   apps = g_app_info_get_all_for_type ("text/x-python");
   old_length = g_list_length (apps);
   g_list_free_full (apps, g_object_unref);
 
   g_app_info_add_supports_type (info1, "text/x-python", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   g_app_info_add_supports_type (info2, "text/plain", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   /* check that both apps are registered */
   apps = g_app_info_get_all_for_type ("text/x-python");
@@ -183,18 +181,18 @@ test_fallback (void)
 
   /* check that Test1 is among the recommended apps */
   recomm = g_app_info_get_recommended_for_type ("text/x-python");
-  g_assert (recomm != NULL);
+  g_assert_nonnull (recomm);
   for (l = recomm; l; l = l->next)
     {
       app = l->data;
       if (g_app_info_equal (info1, app))
         break;
     }
-  g_assert (g_app_info_equal (info1, app));
+  g_assert_true (g_app_info_equal (info1, app));
 
   /* and that Test2 is among the fallback apps */
   fallback = g_app_info_get_fallback_for_type ("text/x-python");
-  g_assert (fallback != NULL);
+  g_assert_nonnull (fallback);
   for (l = fallback; l; l = l->next)
     {
       app = l->data;
@@ -205,11 +203,11 @@ test_fallback (void)
 
   /* check that recomm + fallback = all applications */
   list = g_list_concat (g_list_copy (recomm), g_list_copy (fallback));
-  g_assert (g_list_length (list) == g_list_length (apps));
+  g_assert_cmpuint (g_list_length (list), ==, g_list_length (apps));
 
   for (l = list, m = apps; l != NULL && m != NULL; l = l->next, m = m->next)
     {
-      g_assert (g_app_info_equal (l->data, m->data));
+      g_assert_true (g_app_info_equal (l->data, m->data));
     }
 
   g_list_free (list);
@@ -239,32 +237,32 @@ test_last_used (void)
   info2 = create_app_info ("Test2");
 
   g_app_info_set_as_default_for_type (info1, "application/x-test", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   g_app_info_add_supports_type (info2, "application/x-test", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   applications = g_app_info_get_recommended_for_type ("application/x-test");
-  g_assert (g_list_length (applications) == 2);
+  g_assert_cmpuint (g_list_length (applications), ==, 2);
 
   /* the first should be the default app now */
-  g_assert (g_app_info_equal (g_list_nth_data (applications, 0), info1));
-  g_assert (g_app_info_equal (g_list_nth_data (applications, 1), info2));
+  g_assert_true (g_app_info_equal (g_list_nth_data (applications, 0), info1));
+  g_assert_true (g_app_info_equal (g_list_nth_data (applications, 1), info2));
 
   g_list_free_full (applications, g_object_unref);
 
   g_app_info_set_as_last_used_for_type (info2, "application/x-test", &error);
-  g_assert (error == NULL);
+  g_assert_no_error (error);
 
   applications = g_app_info_get_recommended_for_type ("application/x-test");
-  g_assert (g_list_length (applications) == 2);
+  g_assert_cmpuint (g_list_length (applications), ==, 2);
 
   default_app = g_app_info_get_default_for_type ("application/x-test", FALSE);
-  g_assert (g_app_info_equal (default_app, info1));
+  g_assert_true (g_app_info_equal (default_app, info1));
 
   /* the first should be the other app now */
-  g_assert (g_app_info_equal (g_list_nth_data (applications, 0), info2));
-  g_assert (g_app_info_equal (g_list_nth_data (applications, 1), info1));
+  g_assert_true (g_app_info_equal (g_list_nth_data (applications, 0), info2));
+  g_assert_true (g_app_info_equal (g_list_nth_data (applications, 1), info1));
 
   g_list_free_full (applications, g_object_unref);
 
@@ -278,81 +276,6 @@ test_last_used (void)
   g_object_unref (default_app);
 }
 
-static gboolean
-cleanup_dir_recurse (GFile   *parent,
-                     GFile   *root,
-                     GError **error)
-{
-  gboolean ret = FALSE;
-  GFileEnumerator *enumerator;
-  GError *local_error = NULL;
-
-  g_assert (root != NULL);
-
-  enumerator =
-    g_file_enumerate_children (parent, "*",
-                               G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL,
-                               &local_error);
-  if (!enumerator)
-    {
-      if (g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
-        {
-          g_clear_error (&local_error);
-          ret = TRUE;
-        }
-      goto out;
-    }
-
-  while (TRUE)
-    {
-      GFile *child;
-      GFileInfo *finfo;
-      char *relative_path;
-
-      if (!g_file_enumerator_iterate (enumerator, &finfo, &child, NULL, error))
-        goto out;
-      if (!finfo)
-        break;
-        
-      relative_path = g_file_get_relative_path (root, child);
-      g_assert (relative_path != NULL);
-      g_free (relative_path);
-
-      if (g_file_info_get_file_type (finfo) == G_FILE_TYPE_DIRECTORY)
-        {
-          if (!cleanup_dir_recurse (child, root, error))
-            goto out;
-        }
-
-      if (!g_file_delete (child, NULL, error))
-        goto out;
-    }
-
-  ret = TRUE;
- out:
-  g_clear_object (&enumerator);
-
-  return ret;
-}
-
-static void
-cleanup_subdirs (const char *base_dir)
-{
-  GFile *base, *file;
-  GError *error = NULL;
-  base = g_file_new_for_path (base_dir);  
-  file = g_file_get_child (base, "applications");
-  (void) cleanup_dir_recurse (file, file, &error);
-  g_assert_no_error (error);
-  g_object_unref (file);
-  file = g_file_get_child (base, "mime");
-  (void) cleanup_dir_recurse (file, file, &error);
-  g_assert_no_error (error);
-  g_object_unref (file);
-  g_object_unref (base);
-}
-
 static void
 test_extra_getters (void)
 {
@@ -365,11 +288,11 @@ test_extra_getters (void)
   g_setenv ("LANGUAGE", "de_DE.UTF8", TRUE);
   setlocale (LC_ALL, "");
 
-  appinfo = g_desktop_app_info_new_from_filename (g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL));
-  g_assert (appinfo != NULL);
+  appinfo = g_desktop_app_info_new_from_filename (g_test_get_filename (G_TEST_DIST, "appinfo-test-static.desktop", NULL));
+  g_assert_nonnull (appinfo);
 
-  g_assert (g_desktop_app_info_has_key (appinfo, "Terminal"));
-  g_assert (!g_desktop_app_info_has_key (appinfo, "Bratwurst"));
+  g_assert_true (g_desktop_app_info_has_key (appinfo, "Terminal"));
+  g_assert_false (g_desktop_app_info_has_key (appinfo, "Bratwurst"));
 
   s = g_desktop_app_info_get_string (appinfo, "StartupWMClass");
   g_assert_cmpstr (s, ==, "appinfo-class");
@@ -387,7 +310,7 @@ test_extra_getters (void)
   g_free (s);
 
   b = g_desktop_app_info_get_boolean (appinfo, "Terminal");
-  g_assert (b);
+  g_assert_true (b);
 
   g_object_unref (appinfo);
 
@@ -400,7 +323,7 @@ wait_for_file (const gchar *want_this,
                const gchar *but_not_this,
                const gchar *or_this)
 {
-  gint retries = 600;
+  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
@@ -411,12 +334,12 @@ wait_for_file (const gchar *want_this,
   while (access (want_this, F_OK) != 0)
     {
       g_usleep (100000); /* 100ms */
-      g_assert (retries);
+      g_assert_cmpuint (retries, >, 0);
       retries--;
     }
 
-  g_assert (access (but_not_this, F_OK) != 0);
-  g_assert (access (or_this, F_OK) != 0);
+  g_assert_cmpuint (access (but_not_this, F_OK), !=, 0);
+  g_assert_cmpuint (access (or_this, F_OK), !=, 0);
 
   unlink (want_this);
   unlink (but_not_this);
@@ -431,7 +354,7 @@ test_actions (void)
   gchar *name;
 
   appinfo = g_desktop_app_info_new_from_filename (g_test_get_filename (G_TEST_DIST, "appinfo-test-actions.desktop", NULL));
-  g_assert (appinfo != NULL);
+  g_assert_nonnull (appinfo);
 
   actions = g_desktop_app_info_list_actions (appinfo);
   g_assert_cmpstr (actions[0], ==, "frob");
@@ -453,8 +376,8 @@ test_actions (void)
   g_free (name);
 
   name = g_desktop_app_info_get_action_name (appinfo, "broken");
-  g_assert (name != NULL);
-  g_assert (g_utf8_validate (name, -1, NULL));
+  g_assert_nonnull (name);
+  g_assert_true (g_utf8_validate (name, -1, NULL));
   g_free (name);
 
   unlink ("frob"); unlink ("tweak"); unlink ("twiddle");
@@ -485,6 +408,7 @@ run_apps (const gchar *command,
   gchar **argv;
   gint status;
   gchar *out;
+  gchar *argv_str = NULL;
 
   argv = g_new (gchar *, 4);
   argv[0] = g_test_build_filename (G_TEST_BUILT, "apps", NULL);
@@ -527,9 +451,15 @@ run_apps (const gchar *command,
   else
     envp = g_environ_unsetenv (envp, "XDG_CURRENT_DESKTOP");
 
+  envp = g_environ_setenv (envp, "G_MESSAGES_DEBUG", "", TRUE);
+
   success = g_spawn_sync (NULL, argv, envp, 0, NULL, NULL, &out, NULL, &status, NULL);
-  g_assert (success);
-  g_assert (status == 0);
+  g_assert_true (success);
+  g_assert_cmpuint (status, ==, 0);
+
+  argv_str = g_strjoinv (" ", argv);
+  g_test_message ("%s: `%s` returned: %s", G_STRFUNC, argv_str, out);
+  g_free (argv_str);
 
   g_strfreev (envp);
   g_strfreev (argv);
@@ -814,9 +744,14 @@ test_launch_as_manager (void)
       return;
     }
 
-  path = g_test_get_filename (G_TEST_DIST, "appinfo-test.desktop", NULL);
+  path = g_test_get_filename (G_TEST_BUILT, "appinfo-test.desktop", NULL);
   appinfo = g_desktop_app_info_new_from_filename (path);
-  g_assert_nonnull (appinfo);
+
+  if (appinfo == NULL)
+    {
+      g_test_skip ("appinfo-test binary not installed");
+      return;
+    }
 
   retval = g_desktop_app_info_launch_uris_as_manager (appinfo, NULL, NULL, 0,
                                                       NULL, NULL,
@@ -841,20 +776,12 @@ int
 main (int   argc,
       char *argv[])
 {
-  const gchar *build_dir;
-  gint result;
-
-  /* With Meson build we need to change into right directory, so that the
-   * appinfo-test binary can be found. */
-  build_dir = g_getenv ("G_TEST_BUILDDIR");
-  if (build_dir)
-    g_chdir (build_dir);
+  /* 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. */
+  g_content_type_set_mime_dirs (NULL);
 
-  g_test_init (&argc, &argv, NULL);
-
-  basedir = g_get_current_dir ();
-  g_setenv ("XDG_DATA_HOME", basedir, TRUE);
-  cleanup_subdirs (basedir);
+  g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
 
   g_test_add_func ("/desktop-app-info/delete", test_delete);
   g_test_add_func ("/desktop-app-info/default", test_default);
@@ -867,9 +794,5 @@ main (int   argc,
   g_test_add_func ("/desktop-app-info/show-in", test_show_in);
   g_test_add_func ("/desktop-app-info/launch-as-manager", test_launch_as_manager);
 
-  result = g_test_run ();
-
-  cleanup_subdirs (basedir);
-
-  return result;
+  return g_test_run ();
 }
index 123dcd8..a715ef8 100644 (file)
  * if advised of the possibility of such damage.
  */
 
+#include <errno.h>
 #include <glib.h>
 #include <glib/gstdio.h>
 #include <gio/gio.h>
 #include <gio/gunixmounts.h>
 
 static void
+run (GError **error,
+     const gchar *argv0,
+     ...)
+{
+  GPtrArray *args;
+  const gchar *arg;
+  va_list ap;
+  GSubprocess *subprocess;
+
+  args = g_ptr_array_new ();
+
+  va_start (ap, argv0);
+  g_ptr_array_add (args, (gchar *) argv0);
+  while ((arg = va_arg (ap, const gchar *)))
+    g_ptr_array_add (args, (gchar *) arg);
+  g_ptr_array_add (args, NULL);
+  va_end (ap);
+
+  subprocess = g_subprocess_newv ((const gchar * const *) args->pdata, G_SUBPROCESS_FLAGS_NONE, error);
+  g_ptr_array_free (args, TRUE);
+
+  if (subprocess == NULL)
+    return;
+
+  g_subprocess_wait_check (subprocess, NULL, error);
+  g_object_unref (subprocess);
+}
+
+static void
+assert_remove (const gchar *file)
+{
+  if (g_remove (file) != 0)
+    g_error ("failed to remove %s: %s", file, g_strerror (errno));
+}
+
+static void
 test_filesystem_readonly (gconstpointer with_mount_monitor)
 {
   GFileInfo *file_info;
   GFile *mounted_file;
   GUnixMountMonitor *mount_monitor = NULL;
   gchar *bindfs, *fusermount;
-  gchar *command_mount, *command_mount_ro, *command_umount;
   gchar *curdir, *dir_to_mount, *dir_mountpoint;
   gchar *file_in_mount, *file_in_mountpoint;
+  GError *error = NULL;
 
   /* installed by package 'bindfs' in Fedora */
   bindfs = g_find_program_in_path ("bindfs");
@@ -68,8 +105,8 @@ test_filesystem_readonly (gconstpointer with_mount_monitor)
 
   /* Use bindfs, which does not need root privileges, to mount the contents of one dir
    * into another dir (and do the mount as readonly as per passed '-o ro' option) */
-  command_mount_ro = g_strdup_printf ("%s -n -o ro '%s' '%s'", bindfs, dir_to_mount, dir_mountpoint);
-  g_spawn_command_line_sync (command_mount_ro, NULL, NULL, NULL, NULL);
+  run (&error, bindfs, "-n", "-o", "ro", dir_to_mount, dir_mountpoint, NULL);
+  g_assert_no_error (error);
 
   /* Let's check now, that the file is in indeed in a readonly filesystem */
   file_in_mountpoint = g_strdup_printf ("%s/example.txt", dir_mountpoint);
@@ -83,7 +120,9 @@ test_filesystem_readonly (gconstpointer with_mount_monitor)
     }
 
   file_info = g_file_query_filesystem_info (mounted_file,
-                                            G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, NULL, NULL);
+                                            G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, NULL, &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (file_info);
   if (! g_file_info_get_attribute_boolean (file_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY))
     {
       g_test_skip ("Failed to create readonly file needed to proceed further with the test");
@@ -91,10 +130,10 @@ test_filesystem_readonly (gconstpointer with_mount_monitor)
     }
 
   /* Now we unmount, and mount again but this time rw (not readonly) */
-  command_umount = g_strdup_printf ("%s -u '%s'", fusermount, dir_mountpoint);
-  g_spawn_command_line_sync (command_umount, NULL, NULL, NULL, NULL);
-  command_mount = g_strdup_printf ("%s -n '%s' '%s'", bindfs, dir_to_mount, dir_mountpoint);
-  g_spawn_command_line_sync (command_mount, NULL, NULL, NULL, NULL);
+  run (&error, fusermount, "-z", "-u", dir_mountpoint, NULL);
+  g_assert_no_error (error);
+  run (&error, bindfs, "-n", dir_to_mount, dir_mountpoint, NULL);
+  g_assert_no_error (error);
 
   if (with_mount_monitor)
     {
@@ -108,40 +147,28 @@ test_filesystem_readonly (gconstpointer with_mount_monitor)
   g_clear_object (&mounted_file);
   mounted_file = g_file_new_for_path (file_in_mountpoint);
   file_info = g_file_query_filesystem_info (mounted_file,
-                                            G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, NULL, NULL);
+                                            G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, NULL, &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (file_info);
 
-  if (g_file_info_get_attribute_boolean (file_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY))
-    {
-      /* ¡¡ GIO still reports filesystem as being Readonly !!
-       * Let's check if that's true by trying to write to file */
-      GFileOutputStream *write_stream;
-      write_stream = g_file_append_to (mounted_file, G_FILE_CREATE_NONE, NULL, NULL);
-      if (write_stream != NULL)
-        {
-          /* The file has been opened for writing without error, so ¡¡ GIO IS WRONG !! */
-          g_object_unref (write_stream);
-          g_test_fail (); /* Marking test as FAILED */
-        }
-    }
+  g_assert_false (g_file_info_get_attribute_boolean (file_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY));
 
   /* Clean up */
   g_clear_object (&mount_monitor);
   g_clear_object (&file_info);
   g_clear_object (&mounted_file);
-  g_spawn_command_line_sync (command_umount, NULL, NULL, NULL, NULL); /* unmount */
+  run (&error, fusermount, "-z", "-u", dir_mountpoint, NULL);
+  g_assert_no_error (error);
 
-  g_remove (file_in_mount);
-  g_remove (dir_to_mount);
-  g_remove (dir_mountpoint);
+  assert_remove (file_in_mount);
+  assert_remove (dir_to_mount);
+  assert_remove (dir_mountpoint);
 
   g_free (bindfs);
   g_free (fusermount);
   g_free (curdir);
   g_free (dir_to_mount);
   g_free (dir_mountpoint);
-  g_free (command_mount);
-  g_free (command_mount_ro);
-  g_free (command_umount);
   g_free (file_in_mount);
   g_free (file_in_mountpoint);
 }
index 58a3be6..28a2426 100644 (file)
@@ -181,16 +181,24 @@ test_internal_enhanced_stdio (void)
       gchar *programdata;
       gchar *users_dir;
       gchar *allusers;
-      GFile *gf_programdata, *gf_allusers;
-      GFileInfo *fi_programdata, *fi_allusers, *fi_allusers_target;
+      gchar *commondata;
+      GFile *gf_programdata, *gf_allusers, *gf_commondata;
+      GFileInfo *fi_programdata, *fi_allusers, *fi_allusers_target, *fi_commondata, *fi_commondata_target;
       GFileType ft_allusers;
       GFileType ft_allusers_target;
       GFileType ft_programdata;
+      GFileType ft_commondata;
       gboolean allusers_is_symlink;
+      gboolean commondata_is_symlink;
+      gboolean commondata_is_mount_point;
+      guint32 allusers_reparse_tag;
+      guint32 commondata_reparse_tag;
       const gchar *id_allusers;
       const gchar *id_allusers_target;
+      const gchar *id_commondata_target;
       const gchar *id_programdata;
       const gchar *allusers_target;
+      const gchar *commondata_target;
 
       /* C:/ProgramData */
       programdata = g_utf16_to_utf8 (programdata_dir_w, -1, NULL, NULL, NULL);
@@ -202,7 +210,11 @@ test_internal_enhanced_stdio (void)
        * for "C:/ProgramData".
        */
       allusers = g_build_filename (users_dir, "All Users", NULL);
-      g_assert_nonnull (allusers);
+
+      /* "C:/Users/All Users/Application Data" is a known
+       * junction for "C:/ProgramData"
+       */
+      commondata = g_build_filename (allusers, "Application Data", NULL);
 
       /* We don't test g_stat() and g_lstat() on these directories,
        * because it is pointless - there's no way to tell that these
@@ -214,6 +226,7 @@ test_internal_enhanced_stdio (void)
        */
       gf_programdata = g_file_new_for_path (programdata);
       gf_allusers = g_file_new_for_path (allusers);
+      gf_commondata = g_file_new_for_path (commondata);
 
       fi_programdata = g_file_query_info (gf_programdata,
                                           G_FILE_ATTRIBUTE_ID_FILE ","
@@ -230,52 +243,99 @@ test_internal_enhanced_stdio (void)
       fi_allusers = g_file_query_info (gf_allusers,
                                        G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET ","
                                        G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK ","
+                                       G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG ","
                                        G_FILE_ATTRIBUTE_ID_FILE ","
                                        G_FILE_ATTRIBUTE_STANDARD_TYPE,
                                        G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
                                        NULL, NULL);
 
-      g_assert (g_file_info_has_attribute (fi_programdata, G_FILE_ATTRIBUTE_ID_FILE));
-      g_assert (g_file_info_has_attribute (fi_programdata, G_FILE_ATTRIBUTE_STANDARD_TYPE));
-
-      g_assert (g_file_info_has_attribute (fi_allusers_target, G_FILE_ATTRIBUTE_ID_FILE));
-      g_assert (g_file_info_has_attribute (fi_allusers_target, G_FILE_ATTRIBUTE_STANDARD_TYPE));
-
-      g_assert (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_ID_FILE));
-      g_assert (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_STANDARD_TYPE));
-      g_assert (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK));
-      g_assert (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET));
+      fi_commondata = g_file_query_info (gf_commondata,
+                                         G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET ","
+                                         G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK ","
+                                         G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT ","
+                                         G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG ","
+                                         G_FILE_ATTRIBUTE_ID_FILE ","
+                                         G_FILE_ATTRIBUTE_STANDARD_TYPE,
+                                         G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
+                                         NULL, NULL);
+
+      fi_commondata_target = g_file_query_info (gf_commondata,
+                                                G_FILE_ATTRIBUTE_ID_FILE ","
+                                                G_FILE_ATTRIBUTE_STANDARD_TYPE,
+                                                G_FILE_QUERY_INFO_NONE,
+                                                NULL, NULL);
+
+      g_assert_true (g_file_info_has_attribute (fi_programdata, G_FILE_ATTRIBUTE_ID_FILE));
+      g_assert_true (g_file_info_has_attribute (fi_programdata, G_FILE_ATTRIBUTE_STANDARD_TYPE));
+
+      g_assert_true (g_file_info_has_attribute (fi_allusers_target, G_FILE_ATTRIBUTE_ID_FILE));
+      g_assert_true (g_file_info_has_attribute (fi_allusers_target, G_FILE_ATTRIBUTE_STANDARD_TYPE));
+      g_assert_true (g_file_info_has_attribute (fi_commondata_target, G_FILE_ATTRIBUTE_ID_FILE));
+      g_assert_true (g_file_info_has_attribute (fi_commondata_target, G_FILE_ATTRIBUTE_STANDARD_TYPE));
+
+      g_assert_true (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_ID_FILE));
+      g_assert_true (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_STANDARD_TYPE));
+      g_assert_true (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK));
+      g_assert_true (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG));
+      g_assert_true (g_file_info_has_attribute (fi_allusers, G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET));
+
+      g_assert_true (g_file_info_has_attribute (fi_commondata, G_FILE_ATTRIBUTE_ID_FILE));
+      g_assert_true (g_file_info_has_attribute (fi_commondata, G_FILE_ATTRIBUTE_STANDARD_TYPE));
+      g_assert_true (g_file_info_has_attribute (fi_commondata, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK));
+      g_assert_true (g_file_info_has_attribute (fi_commondata, G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT));
+      g_assert_true (g_file_info_has_attribute (fi_commondata, G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG));
+      g_assert_true (g_file_info_has_attribute (fi_commondata, G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET));
 
       ft_allusers = g_file_info_get_file_type (fi_allusers);
       ft_allusers_target = g_file_info_get_file_type (fi_allusers_target);
       ft_programdata = g_file_info_get_file_type (fi_programdata);
+      ft_commondata = g_file_info_get_file_type (fi_commondata);
 
-      g_assert (ft_allusers == G_FILE_TYPE_SYMBOLIC_LINK);
-      g_assert (ft_allusers_target == G_FILE_TYPE_DIRECTORY);
-      g_assert (ft_programdata == G_FILE_TYPE_DIRECTORY);
+      g_assert_cmpint (ft_allusers, ==, G_FILE_TYPE_SYMBOLIC_LINK);
+      g_assert_cmpint (ft_allusers_target, ==, G_FILE_TYPE_DIRECTORY);
+      g_assert_cmpint (ft_programdata, ==, G_FILE_TYPE_DIRECTORY);
+      g_assert_cmpint (ft_commondata, ==, G_FILE_TYPE_SYMBOLIC_LINK);
 
       allusers_is_symlink = g_file_info_get_attribute_boolean (fi_allusers, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK);
+      allusers_reparse_tag = g_file_info_get_attribute_uint32 (fi_allusers, G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG);
+      commondata_is_symlink = g_file_info_get_attribute_boolean (fi_commondata, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK);
+      commondata_is_mount_point = g_file_info_get_attribute_boolean (fi_commondata, G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT);
+      commondata_reparse_tag = g_file_info_get_attribute_uint32 (fi_commondata, G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG);
 
       g_assert_true (allusers_is_symlink);
+      g_assert_cmpuint (allusers_reparse_tag, ==, IO_REPARSE_TAG_SYMLINK);
+      g_assert_true (commondata_is_symlink);
+      g_assert_true (commondata_is_mount_point);
+      g_assert_cmpuint (commondata_reparse_tag, ==, IO_REPARSE_TAG_MOUNT_POINT);
 
       id_allusers = g_file_info_get_attribute_string (fi_allusers, G_FILE_ATTRIBUTE_ID_FILE);
       id_allusers_target = g_file_info_get_attribute_string (fi_allusers_target, G_FILE_ATTRIBUTE_ID_FILE);
+      id_commondata_target = g_file_info_get_attribute_string (fi_commondata_target, G_FILE_ATTRIBUTE_ID_FILE);
       id_programdata = g_file_info_get_attribute_string (fi_programdata, G_FILE_ATTRIBUTE_ID_FILE);
 
       g_assert_cmpstr (id_allusers_target, ==, id_programdata);
+      g_assert_cmpstr (id_commondata_target, ==, id_programdata);
       g_assert_cmpstr (id_allusers, !=, id_programdata);
 
       allusers_target = g_file_info_get_symlink_target (fi_allusers);
 
       g_assert_true (g_str_has_suffix (allusers_target, "ProgramData"));
 
+      commondata_target = g_file_info_get_symlink_target (fi_commondata);
+
+      g_assert_true (g_str_has_suffix (commondata_target, "ProgramData"));
+
       g_object_unref (fi_allusers);
       g_object_unref (fi_allusers_target);
+      g_object_unref (fi_commondata);
+      g_object_unref (fi_commondata_target);
       g_object_unref (fi_programdata);
       g_object_unref (gf_allusers);
+      g_object_unref (gf_commondata);
       g_object_unref (gf_programdata);
 
       g_free (allusers);
+      g_free (commondata);
       g_free (users_dir);
       g_free (programdata);
     }
@@ -326,7 +386,7 @@ test_internal_enhanced_stdio (void)
       g_assert_nonnull (f);
 
       h = (HANDLE) _get_osfhandle (fileno (f));
-      g_assert (h != INVALID_HANDLE_VALUE);
+      g_assert_cmpuint ((guintptr) h, !=, (guintptr) INVALID_HANDLE_VALUE);
 
       ssb.SetSparse = TRUE;
       g_assert_true (DeviceIoControl (h,
@@ -365,8 +425,8 @@ test_internal_enhanced_stdio (void)
 
       g_remove (ps);
 
-      g_assert (g_file_info_has_attribute (fi_ps, G_FILE_ATTRIBUTE_STANDARD_SIZE));
-      g_assert (g_file_info_has_attribute (fi_ps, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
+      g_assert_true (g_file_info_has_attribute (fi_ps, G_FILE_ATTRIBUTE_STANDARD_SIZE));
+      g_assert_true (g_file_info_has_attribute (fi_ps, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
 
       size_ps = g_file_info_get_attribute_uint64 (fi_ps, G_FILE_ATTRIBUTE_STANDARD_SIZE);
       alsize_ps = g_file_info_get_attribute_uint64 (fi_ps, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE);
@@ -405,7 +465,7 @@ test_internal_enhanced_stdio (void)
   g_assert_nonnull (f);
 
   h = (HANDLE) _get_osfhandle (fileno (f));
-  g_assert (h != INVALID_HANDLE_VALUE);
+  g_assert_cmpuint ((guintptr) h, !=, (guintptr) INVALID_HANDLE_VALUE);
 
   fprintf (f, "1");
   fflush (f);
@@ -444,15 +504,15 @@ test_internal_enhanced_stdio (void)
                              G_FILE_QUERY_INFO_NONE,
                              NULL, NULL);
 
-  g_assert (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_STANDARD_SIZE));
-  g_assert (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
-  g_assert (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_ID_FILE));
-  g_assert (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_TIME_MODIFIED));
+  g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_STANDARD_SIZE));
+  g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
+  g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_ID_FILE));
+  g_assert_true (g_file_info_has_attribute (fi_p0, G_FILE_ATTRIBUTE_TIME_MODIFIED));
 
-  g_assert (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_STANDARD_SIZE));
-  g_assert (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
-  g_assert (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_ID_FILE));
-  g_assert (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_TIME_MODIFIED));
+  g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_STANDARD_SIZE));
+  g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE));
+  g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_ID_FILE));
+  g_assert_true (g_file_info_has_attribute (fi_p1, G_FILE_ATTRIBUTE_TIME_MODIFIED));
 
   size_p0 = g_file_info_get_attribute_uint64 (fi_p0, G_FILE_ATTRIBUTE_STANDARD_SIZE);
   alsize_p0 = g_file_info_get_attribute_uint64 (fi_p0, G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE);
@@ -470,7 +530,7 @@ test_internal_enhanced_stdio (void)
   /* st_ino from W32 stat() is useless for file identification.
    * It will be either 0, or it will be the same for both files.
    */
-  g_assert (statbuf_p0.st_ino == statbuf_p1.st_ino);
+  g_assert_cmpint (statbuf_p0.st_ino, ==, statbuf_p1.st_ino);
   g_assert_cmpstr (id_p0, !=, id_p1);
 
   time_p0 = g_file_info_get_attribute_uint64 (fi_p0, G_FILE_ATTRIBUTE_TIME_MODIFIED);
@@ -482,7 +542,7 @@ test_internal_enhanced_stdio (void)
    *  and 64-bit on 64-bit Windows, usually),
    * so it *can* pass this test in some cases.
    */
-  g_assert (time_p0 > G_GUINT64_CONSTANT (0xFFFFFFFF));
+  g_assert_cmpuint (time_p0, >, G_GUINT64_CONSTANT (0xFFFFFFFF));
 
   g_object_unref (fi_p0);
   g_object_unref (fi_p1);
index f5491ec..ec57977 100644 (file)
@@ -969,6 +969,156 @@ test_api (void)
   g_object_unref (app);
 }
 
+/* Check that G_APPLICATION_ALLOW_REPLACEMENT works. To do so, we launch
+ * a GApplication in this process that allows replacement, and then
+ * launch a subprocess with --gapplication-replace. We have to do our
+ * own async version of g_test_trap_subprocess() here since we need
+ * the main process to keep spinning its mainloop.
+ */
+
+static gboolean
+name_was_lost (GApplication *app,
+               gboolean     *called)
+{
+  *called = TRUE;
+  g_application_quit (app);
+  return TRUE;
+}
+
+static void
+startup_in_subprocess (GApplication *app,
+                       gboolean     *called)
+{
+  *called = TRUE;
+}
+
+typedef struct
+{
+  gboolean allow_replacement;
+  GSubprocess *subprocess;
+} TestReplaceData;
+
+static void
+startup_cb (GApplication *app,
+            TestReplaceData *data)
+{
+  const char *argv[] = { NULL, "--verbose", "--quiet", "-p", NULL, "--GTestSubprocess", NULL };
+  GSubprocessLauncher *launcher;
+  GError *local_error = NULL;
+
+  g_application_hold (app);
+
+  argv[0] = g_get_prgname ();
+
+  if (data->allow_replacement)
+    argv[4] = "/gapplication/replace";
+  else
+    argv[4] = "/gapplication/no-replace";
+
+  /* Now that we are the primary instance, launch our replacement.
+   * We inherit the environment to share the test session bus.
+   */
+  g_test_message ("launching subprocess");
+
+  launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE);
+  g_subprocess_launcher_set_environ (launcher, NULL);
+  data->subprocess = g_subprocess_launcher_spawnv (launcher, argv, &local_error);
+  g_assert_no_error (local_error);
+  g_object_unref (launcher);
+
+  if (!data->allow_replacement)
+    {
+      /* make sure we exit after a bit, if the subprocess is not replacing us */
+      g_application_set_inactivity_timeout (app, 500);
+      g_application_release (app);
+    }
+}
+
+static void
+activate (gpointer data)
+{
+  /* GApplication complains if we don't connect to ::activate */
+}
+
+static gboolean
+quit_already (gpointer data)
+{
+  GApplication *app = data;
+
+  g_application_quit (app);
+
+  return G_SOURCE_REMOVE;
+}
+
+static void
+test_replace (gconstpointer data)
+{
+  gboolean allow = GPOINTER_TO_INT (data);
+
+  if (g_test_subprocess ())
+    {
+      char *binpath = g_test_build_filename (G_TEST_BUILT, "unimportant", NULL);
+      char *argv[] = { binpath, "--gapplication-replace", NULL };
+      GApplication *app;
+      gboolean startup = FALSE;
+
+      app = g_application_new ("org.gtk.TestApplication.Replace", G_APPLICATION_ALLOW_REPLACEMENT);
+      g_signal_connect (app, "startup", G_CALLBACK (startup_in_subprocess), &startup);
+      g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
+
+      g_application_run (app, G_N_ELEMENTS (argv) - 1, argv);
+
+      if (allow)
+        g_assert_true (startup);
+      else
+        g_assert_false (startup);
+
+      g_object_unref (app);
+      g_free (binpath);
+    }
+  else
+    {
+      char *binpath = g_test_build_filename (G_TEST_BUILT, "unimportant", NULL);
+      gchar *argv[] = { binpath, NULL };
+      GApplication *app;
+      gboolean name_lost = FALSE;
+      TestReplaceData data;
+      GTestDBus *bus;
+
+      data.allow_replacement = allow;
+      data.subprocess = NULL;
+
+      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_FLAGS_NONE);
+      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);
+
+      g_application_run (app, G_N_ELEMENTS (argv) - 1, argv);
+
+      g_assert_nonnull (data.subprocess);
+      if (allow)
+        g_assert_true (name_lost);
+      else
+        g_assert_false (name_lost);
+
+      g_object_unref (app);
+      g_free (binpath);
+
+      g_subprocess_wait (data.subprocess, NULL, NULL);
+      g_clear_object (&data.subprocess);
+
+      g_test_dbus_down (bus);
+      g_object_unref (bus);
+    }
+}
+
 int
 main (int argc, char **argv)
 {
@@ -976,7 +1126,8 @@ main (int argc, char **argv)
 
   g_test_init (&argc, &argv, NULL);
 
-  g_test_dbus_unset ();
+  if (!g_test_subprocess ())
+    g_test_dbus_unset ();
 
   g_test_add_func ("/gapplication/no-dbus", test_nodbus);
 /*  g_test_add_func ("/gapplication/basic", basic); */
@@ -996,6 +1147,8 @@ main (int argc, char **argv)
   g_test_add_func ("/gapplication/test-handle-local-options2", test_handle_local_options_failure);
   g_test_add_func ("/gapplication/test-handle-local-options3", test_handle_local_options_passthrough);
   g_test_add_func ("/gapplication/api", test_api);
+  g_test_add_data_func ("/gapplication/replace", GINT_TO_POINTER (TRUE), test_replace);
+  g_test_add_data_func ("/gapplication/no-replace", GINT_TO_POINTER (FALSE), test_replace);
 
   return g_test_run ();
 }
index b235ca1..af69c02 100644 (file)
@@ -1,5 +1,5 @@
 
-#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h"
+#include "gdbus-object-manager-example/objectmanager-gen.h"
 
 /* ---------------------------------------------------------------------------------------------------- */
 
index 2a7bf63..c460e66 100644 (file)
@@ -1,5 +1,5 @@
 
-#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h"
+#include "gdbus-object-manager-example/objectmanager-gen.h"
 
 /* ---------------------------------------------------------------------------------------------------- */
 
old mode 100644 (file)
new mode 100755 (executable)
index 179aabb..bf151cf
@@ -121,6 +121,16 @@ static const GDBusInterfaceVTable interface_vtable =
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+static void
+connection_closed (GDBusConnection *connection,
+                   gboolean remote_peer_vanished,
+                   GError *Error,
+                   gpointer user_data)
+{
+  g_print ("Client disconnected.\n");
+  g_object_unref (connection);
+}
+
 static gboolean
 on_new_connection (GDBusServer *server,
                    GDBusConnection *connection,
@@ -144,6 +154,7 @@ on_new_connection (GDBusServer *server,
            g_dbus_connection_get_capabilities (connection) & G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING);
 
   g_object_ref (connection);
+  g_signal_connect (connection, "closed", G_CALLBACK (connection_closed), NULL);
   registration_id = g_dbus_connection_register_object (connection,
                                                        "/org/gtk/GDBus/TestObject",
                                                        introspection_data->interfaces[0],
index 4d6d3a4..506c745 100644 (file)
@@ -337,6 +337,22 @@ introspect_callback (GDBusProxy   *proxy,
   g_main_loop_quit (loop);
 }
 
+static gint
+compare_strings (gconstpointer a,
+                 gconstpointer b)
+{
+  const gchar *sa = *(const gchar **) a;
+  const gchar *sb = *(const gchar **) b;
+
+  /* Array terminator must sort last */
+  if (sa == NULL)
+    return 1;
+  if (sb == NULL)
+    return -1;
+
+  return strcmp (sa, sb);
+}
+
 static gchar **
 get_nodes_at (GDBusConnection  *c,
               const gchar      *object_path)
@@ -390,6 +406,9 @@ get_nodes_at (GDBusConnection  *c,
   g_free (xml_data);
   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);
+
   return (gchar **) g_ptr_array_free (p, FALSE);
 }
 
@@ -1240,9 +1259,9 @@ test_object_registration (void)
   nodes = get_nodes_at (c, "/foo/dyna");
   g_assert (nodes != NULL);
   g_assert_cmpint (g_strv_length (nodes), ==, 3);
-  g_assert_cmpstr (nodes[0], ==, "lol");
-  g_assert_cmpstr (nodes[1], ==, "cat");
-  g_assert_cmpstr (nodes[2], ==, "cheezburger");
+  g_assert_cmpstr (nodes[0], ==, "cat");
+  g_assert_cmpstr (nodes[1], ==, "cheezburger");
+  g_assert_cmpstr (nodes[2], ==, "lol");
   g_strfreev (nodes);
   g_assert_cmpint (count_interfaces (c, "/foo/dyna/lol"), ==, 4);
   g_assert_cmpint (count_interfaces (c, "/foo/dyna/cat"), ==, 4);
@@ -1253,10 +1272,10 @@ test_object_registration (void)
   nodes = get_nodes_at (c, "/foo/dyna");
   g_assert (nodes != NULL);
   g_assert_cmpint (g_strv_length (nodes), ==, 4);
-  g_assert_cmpstr (nodes[0], ==, "lol");
-  g_assert_cmpstr (nodes[1], ==, "cat");
-  g_assert_cmpstr (nodes[2], ==, "cheezburger");
-  g_assert_cmpstr (nodes[3], ==, "dynamicallycreated");
+  g_assert_cmpstr (nodes[0], ==, "cat");
+  g_assert_cmpstr (nodes[1], ==, "cheezburger");
+  g_assert_cmpstr (nodes[2], ==, "dynamicallycreated");
+  g_assert_cmpstr (nodes[3], ==, "lol");
   g_strfreev (nodes);
   g_assert_cmpint (count_interfaces (c, "/foo/dyna/dynamicallycreated"), ==, 4);
 
index 88a9c5d..278ccc4 100644 (file)
@@ -128,7 +128,7 @@ message_copy (void)
       copy_val = g_dbus_message_get_header (m, m_headers[n]);
       g_assert (m_val != NULL);
       g_assert (copy_val != NULL);
-      g_assert (g_variant_equal (m_val, copy_val));
+      g_assert_cmpvariant (m_val, copy_val);
     }
   g_assert_cmpint (n, >, 0); /* make sure we actually compared headers etc. */
   g_assert_cmpint (copy_headers[n], ==, 0);
index 1d0464c..735fddc 100644 (file)
@@ -5,10 +5,10 @@ AM_CPPFLAGS = -g $(gio_INCLUDES) $(GLIB_DEBUG_FLAGS) -I$(top_builddir)/gio -I$(t
 # ------------------------------------------------------------------------
 
 GDBUS_GENERATED = \
-       gdbus-example-objectmanager-generated.h                                                 \
-       gdbus-example-objectmanager-generated.c                                                 \
-       gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Animal.xml    \
-       gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Cat.xml       \
+       objectmanager-gen.h                                                     \
+       objectmanager-gen.c                                                     \
+       objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Animal.xml    \
+       objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Cat.xml   \
        $(NULL)
 
 $(GDBUS_GENERATED) : gdbus-example-objectmanager.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen
@@ -18,8 +18,8 @@ $(GDBUS_GENERATED) : gdbus-example-objectmanager.xml Makefile $(top_builddir)/gi
                --interface-prefix org.gtk.GDBus.Example.ObjectManager. \
                --c-namespace Example \
                --c-generate-object-manager \
-               --generate-c-code gdbus-example-objectmanager-generated \
-               --generate-docbook gdbus-example-objectmanager-generated \
+               --generate-c-code objectmanager-gen \
+               --generate-docbook objectmanager-gen \
                $< \
                $(NULL)
 
@@ -32,8 +32,8 @@ noinst_LTLIBRARIES += libgdbus-example-objectmanager.la
 endif
 
 nodist_libgdbus_example_objectmanager_la_SOURCES = \
-       gdbus-example-objectmanager-generated.h         \
-       gdbus-example-objectmanager-generated.c
+       objectmanager-gen.h             \
+       objectmanager-gen.c
 
 libgdbus_example_objectmanager_la_LIBADD = \
        $(top_builddir)/glib/libglib-2.0.la             \
@@ -46,4 +46,4 @@ EXTRA_DIST += gdbus-example-objectmanager.xml
 
 CLEANFILES += $(GDBUS_GENERATED)
 
-check-TESTS:
\ No newline at end of file
+check-TESTS:
index 1a87eb4..404c377 100644 (file)
@@ -1,17 +1,17 @@
 # FIXME: set UNINSTALLED_GLIB_{SRC|BUILD}DIR=top_{src|build}dir ?
-gdbus_example_objectmanager_generated = custom_target('gdbus-example-objectmanager-generated',
+gdbus_example_objectmanager_generated = custom_target('objectmanager-gen',
   input  : ['gdbus-example-objectmanager.xml'],
-  output : ['gdbus-example-objectmanager-generated.h',
-            'gdbus-example-objectmanager-generated.c',
-            'gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Animal.xml',
-            'gdbus-example-objectmanager-generated-org.gtk.GDBus.Example.ObjectManager.Cat.xml'],
+  output : ['objectmanager-gen.h',
+            'objectmanager-gen.c',
+            'objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Animal.xml',
+            'objectmanager-gen-org.gtk.GDBus.Example.ObjectManager.Cat.xml'],
   command : [python, gdbus_codegen,
              '--interface-prefix', 'org.gtk.GDBus.Example.ObjectManager.',
              '--c-namespace', 'Example',
              '--c-generate-object-manager',
              '--output-directory', '@OUTDIR@',
-             '--generate-c-code', 'gdbus-example-objectmanager-generated',
-             '--generate-docbook', 'gdbus-example-objectmanager-generated',
+             '--generate-c-code', 'objectmanager-gen',
+             '--generate-docbook', 'objectmanager-gen',
              '@INPUT@'])
 
 libgdbus_example_objectmanager = library('gdbus-example-objectmanager',
index 7f35baa..c21b9e9 100644 (file)
@@ -45,7 +45,7 @@
 
 #include "gdbus-tests.h"
 
-#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h"
+#include "gdbus-object-manager-example/objectmanager-gen.h"
 
 #ifdef G_OS_UNIX
 static gboolean is_unix = TRUE;
diff --git a/gio/tests/gdbus-proxy-unique-name.c b/gio/tests/gdbus-proxy-unique-name.c
new file mode 100644 (file)
index 0000000..eacb021
--- /dev/null
@@ -0,0 +1,215 @@
+/* GLib testing framework examples and tests
+ *
+ * Copyright (C) 2008-2010 Red Hat, Inc.
+ *
+ * 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: Cosimo Cecchi <cosimoc@gnome.org>
+ */
+
+#include <gio/gio.h>
+#include <unistd.h>
+#include <string.h>
+
+#include "gdbus-tests.h"
+
+/* all tests rely on a shared mainloop */
+static GMainLoop *loop = NULL;
+
+/* ---------------------------------------------------------------------------------------------------- */
+
+static void
+proxy_new_cb (GObject       *source_object,
+              GAsyncResult  *res,
+              gpointer       user_data)
+{
+  GDBusProxy **ret = user_data;
+  GError *error;
+
+  error = NULL;
+  *ret = g_dbus_proxy_new_finish (res, &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (ret);
+
+  g_main_loop_quit (loop);
+}
+
+static void
+test_proxy_unique_name (void)
+{
+  GDBusProxy *wp;
+  GDBusProxy *p;
+  GDBusProxy *ap;
+  GDBusConnection *c;
+  GError *error;
+  gchar *name_owner;
+  gchar **property_names;
+  GVariant *variant;
+  GVariant *result;
+  char *unique_name;
+
+  session_bus_up ();
+
+  error = NULL;
+  c = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (c);
+
+  /* use a proxy to the well-known name to set things up */
+  wp = g_dbus_proxy_new_sync (c,
+                              G_DBUS_PROXY_FLAGS_NONE,
+                              NULL,                      /* GDBusInterfaceInfo* */
+                              "com.example.TestService", /* name */
+                              "/com/example/TestObject", /* object path */
+                              "com.example.Frob",        /* interface name */
+                              NULL,                      /* GCancellable */
+                              &error);
+  g_assert_no_error (error);
+
+  /* this is safe; testserver will exit once the bus goes away */
+  g_assert_true (g_spawn_command_line_async (g_test_get_filename (G_TEST_BUILT, "gdbus-testserver", NULL), NULL));
+
+  /* check that we get the notify::g-name-owner signal */
+  _g_assert_property_notify (wp, "g-name-owner");
+
+  /* now get the unique name of testserver's connection */
+  unique_name = g_dbus_proxy_get_name_owner (wp);
+
+  /* if we create another a proxy with the service being available, check that
+   * it has a name owner and properties
+   */
+  error = NULL;
+  p = g_dbus_proxy_new_sync (c,
+                              G_DBUS_PROXY_FLAGS_NONE,
+                              NULL,                      /* GDBusInterfaceInfo* */
+                              unique_name,               /* name */
+                              "/com/example/TestObject", /* object path */
+                              "com.example.Frob",        /* interface name */
+                              NULL,                      /* GCancellable */
+                              &error);
+  g_assert_no_error (error);
+  name_owner = g_dbus_proxy_get_name_owner (p);
+  property_names = g_dbus_proxy_get_cached_property_names (p);
+  g_assert_true (g_dbus_is_unique_name (name_owner));
+  g_assert_nonnull (property_names);
+  g_assert_cmpint (g_strv_length (property_names), >, 0);
+  g_free (name_owner);
+  g_strfreev (property_names);
+
+  /* also for async: we should have a name owner and cached properties */
+  g_dbus_proxy_new (c,
+                    G_DBUS_PROXY_FLAGS_NONE,
+                    NULL,                      /* GDBusInterfaceInfo* */
+                    unique_name,               /* name */
+                    "/com/example/TestObject", /* object path */
+                    "com.example.Frob",        /* interface name */
+                    NULL,                      /* GCancellable */
+                    (GAsyncReadyCallback) proxy_new_cb,
+                    &ap);
+  g_main_loop_run (loop);
+  name_owner = g_dbus_proxy_get_name_owner (ap);
+  property_names = g_dbus_proxy_get_cached_property_names (ap);
+  g_assert_true (g_dbus_is_unique_name (name_owner));
+  g_assert_nonnull (property_names);
+  g_assert_cmpint (g_strv_length (property_names), >, 0);
+  g_free (name_owner);
+  g_strfreev (property_names);
+
+  /* Check property value is the initial value */
+  variant = g_dbus_proxy_get_cached_property (p, "y");
+  g_assert_nonnull (variant);
+  g_assert_cmpint (g_variant_get_byte (variant), ==, 1);
+  g_variant_unref (variant);
+  variant = g_dbus_proxy_get_cached_property (ap, "y");
+  g_assert_nonnull (variant);
+  g_assert_cmpint (g_variant_get_byte (variant), ==, 1);
+  g_variant_unref (variant);
+
+  /* Check that properties are updated on p */
+  result = g_dbus_proxy_call_sync (p,
+                                   "FrobSetProperty",
+                                   g_variant_new ("(sv)",
+                                                  "y",
+                                                  g_variant_new_byte (42)),
+                                   G_DBUS_CALL_FLAGS_NONE,
+                                   -1,
+                                   NULL,
+                                   &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (result);
+  g_assert_cmpstr (g_variant_get_type_string (result), ==, "()");
+  g_variant_unref (result);
+  _g_assert_signal_received (p, "g-properties-changed");
+  variant = g_dbus_proxy_get_cached_property (p, "y");
+  g_assert_nonnull (variant);
+  g_assert_cmpint (g_variant_get_byte (variant), ==, 42);
+  g_variant_unref (variant);
+  variant = g_dbus_proxy_get_cached_property (ap, "y");
+  g_assert_nonnull (variant);
+  g_assert_cmpint (g_variant_get_byte (variant), ==, 42);
+  g_variant_unref (variant);
+
+  /* Nuke the service and check that we get the signal and then don't
+   * have a name owner nor any cached properties
+   */
+  result = g_dbus_proxy_call_sync (p,
+                                   "Quit",
+                                   NULL,
+                                   G_DBUS_CALL_FLAGS_NONE,
+                                   -1,
+                                   NULL,
+                                   &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (result);
+  g_assert_cmpstr (g_variant_get_type_string (result), ==, "()");
+  g_variant_unref (result);
+  /* and wait... */
+  _g_assert_property_notify (p, "g-name-owner");
+  /* now we shouldn't have a name owner nor any cached properties */
+  g_assert_cmpstr (g_dbus_proxy_get_name_owner (p), ==, NULL);
+  g_assert_null (g_dbus_proxy_get_cached_property_names (p));
+  g_assert_null (g_dbus_proxy_get_cached_property (p, "y"));
+
+  g_object_unref (p);
+  g_object_unref (ap);
+
+  g_object_unref (wp);
+  g_free (unique_name);
+
+  g_object_unref (c);
+
+  /* tear down bus */
+  session_bus_down ();
+}
+
+/* ---------------------------------------------------------------------------------------------------- */
+
+int
+main (int   argc,
+      char *argv[])
+{
+  gint ret;
+
+  g_test_init (&argc, &argv, NULL);
+
+  /* all the tests rely on a shared main loop */
+  loop = g_main_loop_new (NULL, FALSE);
+
+  g_test_dbus_unset ();
+
+  g_test_add_func ("/gdbus/proxy-unique-name", test_proxy_unique_name);
+
+  ret = g_test_run();
+  return ret;
+}
index e7c402e..89a2e97 100644 (file)
@@ -526,7 +526,6 @@ check_serialization (GVariant *value,
   GError *error;
   DBusError dbus_error;
   gchar *s;
-  gchar *s1;
   guint n;
 
   message = g_dbus_message_new ();
@@ -618,17 +617,7 @@ check_serialization (GVariant *value,
       else
         {
           g_assert (g_dbus_message_get_body (recovered_message) != NULL);
-          if (!g_variant_equal (g_dbus_message_get_body (recovered_message), value))
-            {
-              s = g_variant_print (g_dbus_message_get_body (recovered_message), TRUE);
-              s1 = g_variant_print (value, TRUE);
-              g_printerr ("Recovered value:\n%s\ndoes not match given value\n%s\n",
-                          s,
-                          s1);
-              g_free (s);
-              g_free (s1);
-              g_assert_not_reached ();
-            }
+          g_assert_cmpvariant (g_dbus_message_get_body (recovered_message), value);
         }
       g_object_unref (recovered_message);
       g_free (blob);
@@ -1205,6 +1194,64 @@ test_message_parse_multiple_signature_header (void)
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+/* Test that an invalid header in a D-Bus message (specifically, containing a
+ * variant with a valid type signature that is too long to be a valid
+ * #GVariantType due to exceeding the array nesting limits) is gracefully
+ * handled with an error rather than a crash. The set of bytes here come
+ * directly from fuzzer output. */
+static void
+test_message_parse_over_long_signature_header (void)
+{
+  const guint8 data[] = {
+    'l',  /* little-endian byte order */
+    0x20,  /* message type */
+    0x20,  /* message flags */
+    0x01,  /* major protocol version */
+    0x20, 0x20, 0x20, 0x01,  /* body length (invalid) */
+    0x20, 0x20, 0x20, 0x20,  /* message serial */
+    /* a{yv} of header fields:
+     * (things start to be even more invalid below here) */
+    0x20, 0x00, 0x00, 0x00,  /* array length (in bytes) */
+      0x08,  /* array key */
+      /* Variant array value: */
+      0x04,  /* signature length */
+      'g', 0x00, 0x20, 0x20,  /* one complete type plus some rubbish */
+      0x00,  /* nul terminator */
+      /* (Variant array value payload) */
+      /* Critically, this contains 128 nested ‘a’s, which exceeds
+       * %G_VARIANT_MAX_RECURSION_DEPTH. */
+      0xec,
+      'a', 'b', 'g', 'd', 'u', 'd', 'd', 'd', 'd', 'd', 'd', 'd',
+      'd', 'd', 'd',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a',
+      'v'
+    /* (message body length missing) */
+  };
+  gsize size = sizeof (data);
+  GDBusMessage *message = NULL;
+  GError *local_error = NULL;
+
+  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
 main (int   argc,
       char *argv[])
@@ -1230,6 +1277,8 @@ main (int   argc,
                    test_message_parse_empty_signature_header);
   g_test_add_func ("/gdbus/message-parse/multiple-signature-header",
                    test_message_parse_multiple_signature_header);
+  g_test_add_func ("/gdbus/message-parse/over-long-signature-header",
+                   test_message_parse_over_long_signature_header);
 
   return g_test_run();
 }
index 37e1b49..e212e98 100644 (file)
@@ -1,6 +1,6 @@
 /* GLib testing framework examples and tests
  *
- * Copyright (C) 2008-2011 Red Hat, Inc.
+ * Copyright (C) 2008-2018 Red Hat, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -933,7 +933,7 @@ check_bar_proxy (FooiGenBar *proxy,
   g_assert_cmpuint (g_strv_length ((gchar **) ret_array_of_objpaths), ==,
                     g_strv_length ((gchar **) array_of_objpaths));
   g_assert_nonnull (ret_array_of_signatures);
-  g_assert_true (g_variant_equal (ret_array_of_signatures, array_of_signatures));
+  g_assert_cmpvariant (ret_array_of_signatures, array_of_signatures);
   g_assert_nonnull (ret_array_of_bytestrings);
   g_assert_cmpuint (g_strv_length ((gchar **) ret_array_of_bytestrings), ==,
                     g_strv_length ((gchar **) array_of_bytestrings));
@@ -1768,9 +1768,9 @@ on_object_proxy_removed (GDBusObjectManagerClient  *manager,
 }
 
 static void
-property_d_changed (GObject    *object,
-                   GParamSpec *pspec,
-                   gpointer    user_data)
+property_changed (GObject    *object,
+                 GParamSpec *pspec,
+                 gpointer    user_data)
 {
   gboolean *changed = user_data;
 
@@ -1783,6 +1783,8 @@ om_check_property_and_signal_emission (GMainLoop  *loop,
                                        FooiGenBar *proxy)
 {
   gboolean d_changed = FALSE;
+  gboolean quiet_changed = FALSE;
+  gboolean quiet_too_changed = FALSE;
   guint handler;
 
   /* First PropertiesChanged */
@@ -1804,13 +1806,35 @@ om_check_property_and_signal_emission (GMainLoop  *loop,
    * notifications are serialized.
    */
   handler = g_signal_connect (proxy, "notify::d",
-                             G_CALLBACK (property_d_changed), &d_changed);
+                             G_CALLBACK (property_changed), &d_changed);
   foo_igen_bar_set_d (skeleton, 1.0);
   foo_igen_bar_set_i (skeleton, 2);
   _g_assert_property_notify (proxy, "i");
   g_assert (d_changed == FALSE);
   g_signal_handler_disconnect (proxy, handler);
 
+  /* Verify that re-setting a property with the "EmitsChangedSignal"
+   * set to false doesn't emit a signal. */
+  handler = g_signal_connect (proxy, "notify::quiet",
+                             G_CALLBACK (property_changed), &quiet_changed);
+  foo_igen_bar_set_quiet (skeleton, "hush!");
+  foo_igen_bar_set_i (skeleton, 3);
+  _g_assert_property_notify (proxy, "i");
+  g_assert (quiet_changed == FALSE);
+  g_assert_cmpstr (foo_igen_bar_get_quiet (skeleton), ==, "hush!");
+  g_signal_handler_disconnect (proxy, handler);
+
+  /* Also verify that re-setting a property with the "EmitsChangedSignal"
+   * set to 'const' doesn't emit a signal. */
+  handler = g_signal_connect (proxy, "notify::quiet-too",
+                             G_CALLBACK (property_changed), &quiet_changed);
+  foo_igen_bar_set_quiet_too (skeleton, "hush too!");
+  foo_igen_bar_set_i (skeleton, 4);
+  _g_assert_property_notify (proxy, "i");
+  g_assert (quiet_too_changed == FALSE);
+  g_assert_cmpstr (foo_igen_bar_get_quiet_too (skeleton), ==, "hush too!");
+  g_signal_handler_disconnect (proxy, handler);
+
   /* Then just a regular signal */
   foo_igen_bar_emit_another_signal (skeleton, "word");
   _g_assert_signal_received (proxy, "another-signal");
@@ -2152,7 +2176,7 @@ check_object_manager (void)
    * that ObjectManager.GetManagedObjects() works
    */
   om_check_get_all (c, loop,
-                    "({objectpath '/managed/first': {'com.acme.Coyote': {'Mood': <''>}}, '/managed/second': {'org.project.Bar': {'y': <byte 0x00>, 'b': <false>, 'n': <int16 0>, 'q': <uint16 0>, 'i': <0>, 'u': <uint32 0>, 'x': <int64 0>, 't': <uint64 0>, 'd': <0.0>, 's': <''>, 'o': <objectpath '/'>, 'g': <signature ''>, 'ay': <b''>, 'as': <@as []>, 'aay': <@aay []>, 'ao': <@ao []>, 'ag': <@ag []>, 'FinallyNormalName': <''>, 'ReadonlyProperty': <''>, 'unset_i': <0>, 'unset_d': <0.0>, 'unset_s': <''>, 'unset_o': <objectpath '/'>, 'unset_g': <signature ''>, 'unset_ay': <b''>, 'unset_as': <@as []>, 'unset_ao': <@ao []>, 'unset_ag': <@ag []>, 'unset_struct': <(0, 0.0, '', objectpath '/', signature '', @ay [], @as [], @ao [], @ag [])>}, 'org.project.Bat': {'force_i': <0>, 'force_s': <''>, 'force_ay': <@ay []>, 'force_struct': <(0,)>}}},)");
+                    "({objectpath '/managed/first': {'com.acme.Coyote': {'Mood': <''>}}, '/managed/second': {'org.project.Bar': {'y': <byte 0x00>, 'b': <false>, 'n': <int16 0>, 'q': <uint16 0>, 'i': <0>, 'u': <uint32 0>, 'x': <int64 0>, 't': <uint64 0>, 'd': <0.0>, 's': <''>, 'o': <objectpath '/'>, 'g': <signature ''>, 'ay': <b''>, 'as': <@as []>, 'aay': <@aay []>, 'ao': <@ao []>, 'ag': <@ag []>, 'FinallyNormalName': <''>, 'ReadonlyProperty': <''>, 'quiet': <''>, 'quiet_too': <''>, 'unset_i': <0>, 'unset_d': <0.0>, 'unset_s': <''>, 'unset_o': <objectpath '/'>, 'unset_g': <signature ''>, 'unset_ay': <b''>, 'unset_as': <@as []>, 'unset_ao': <@ao []>, 'unset_ag': <@ag []>, 'unset_struct': <(0, 0.0, '', objectpath '/', signature '', @ay [], @as [], @ao [], @ag [])>}, 'org.project.Bat': {'force_i': <0>, 'force_s': <''>, 'force_ay': <@ay []>, 'force_struct': <(0,)>}}},)");
 
   /* Set connection to NULL, causing everything to be unexported.. verify this.. and
    * then set the connection back.. and then check things still work
@@ -2164,7 +2188,7 @@ check_object_manager (void)
 
   g_dbus_object_manager_server_set_connection (manager, c);
   om_check_get_all (c, loop,
-                    "({objectpath '/managed/first': {'com.acme.Coyote': {'Mood': <''>}}, '/managed/second': {'org.project.Bar': {'y': <byte 0x00>, 'b': <false>, 'n': <int16 0>, 'q': <uint16 0>, 'i': <0>, 'u': <uint32 0>, 'x': <int64 0>, 't': <uint64 0>, 'd': <0.0>, 's': <''>, 'o': <objectpath '/'>, 'g': <signature ''>, 'ay': <b''>, 'as': <@as []>, 'aay': <@aay []>, 'ao': <@ao []>, 'ag': <@ag []>, 'FinallyNormalName': <''>, 'ReadonlyProperty': <''>, 'unset_i': <0>, 'unset_d': <0.0>, 'unset_s': <''>, 'unset_o': <objectpath '/'>, 'unset_g': <signature ''>, 'unset_ay': <b''>, 'unset_as': <@as []>, 'unset_ao': <@ao []>, 'unset_ag': <@ag []>, 'unset_struct': <(0, 0.0, '', objectpath '/', signature '', @ay [], @as [], @ao [], @ag [])>}, 'org.project.Bat': {'force_i': <0>, 'force_s': <''>, 'force_ay': <@ay []>, 'force_struct': <(0,)>}}},)");
+                    "({objectpath '/managed/first': {'com.acme.Coyote': {'Mood': <''>}}, '/managed/second': {'org.project.Bar': {'y': <byte 0x00>, 'b': <false>, 'n': <int16 0>, 'q': <uint16 0>, 'i': <0>, 'u': <uint32 0>, 'x': <int64 0>, 't': <uint64 0>, 'd': <0.0>, 's': <''>, 'o': <objectpath '/'>, 'g': <signature ''>, 'ay': <b''>, 'as': <@as []>, 'aay': <@aay []>, 'ao': <@ao []>, 'ag': <@ag []>, 'FinallyNormalName': <''>, 'ReadonlyProperty': <''>, 'quiet': <''>, 'quiet_too': <''>, 'unset_i': <0>, 'unset_d': <0.0>, 'unset_s': <''>, 'unset_o': <objectpath '/'>, 'unset_g': <signature ''>, 'unset_ay': <b''>, 'unset_as': <@as []>, 'unset_ao': <@ao []>, 'unset_ag': <@ag []>, 'unset_struct': <(0, 0.0, '', objectpath '/', signature '', @ay [], @as [], @ao [], @ag [])>}, 'org.project.Bat': {'force_i': <0>, 'force_s': <''>, 'force_ay': <@ay []>, 'force_struct': <(0,)>}}},)");
 
   /* Also check that the ObjectManagerClient returns these objects - and
    * that they are of the right GType cf. what was requested via
@@ -2428,6 +2452,42 @@ test_autocleanups (void)
 
 /* ---------------------------------------------------------------------------------------------------- */
 
+/* deprecations
+ */
+
+static void
+test_deprecations (void)
+{
+  {
+    FooiGenOldieInterface *iskel;
+    GParamSpec *pspec;
+
+    G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
+    iskel = foo_igen_oldie_interface_skeleton_new ();
+    G_GNUC_END_IGNORE_DEPRECATIONS;
+
+    pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (iskel), "bat");
+    g_assert_nonnull (pspec);
+    g_assert_cmpint (pspec->flags & G_PARAM_DEPRECATED, ==, G_PARAM_DEPRECATED);
+
+    g_object_unref (iskel);
+  }
+
+  {
+    FooiGenObjectSkeleton *oskel;
+    GParamSpec *pspec;
+
+    oskel = foo_igen_object_skeleton_new ("/objects/first");
+    pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (oskel), "oldie-interface");
+    g_assert_nonnull (pspec);
+    g_assert_cmpint (pspec->flags & G_PARAM_DEPRECATED, ==, G_PARAM_DEPRECATED);
+
+    g_object_unref (oskel);
+  }
+}
+
+/* ---------------------------------------------------------------------------------------------------- */
+
 static void
 assert_arg_infos_equal (GDBusArgInfo **a,
                         GDBusArgInfo **b)
@@ -2543,6 +2603,7 @@ main (int   argc,
   g_test_add_func ("/gdbus/codegen/object-manager", test_object_manager);
   g_test_add_func ("/gdbus/codegen/property-naming", test_property_naming);
   g_test_add_func ("/gdbus/codegen/autocleanups", test_autocleanups);
+  g_test_add_func ("/gdbus/codegen/deprecations", test_deprecations);
   g_test_add_func ("/gdbus/codegen/standalone-interface-info", test_standalone_interface_info);
 
   return session_bus_run ();
index 1e0a322..f8b9b93 100644 (file)
@@ -1,5 +1,5 @@
 
-#include "gdbus-object-manager-example/gdbus-example-objectmanager-generated.h"
+#include "gdbus-object-manager-example/objectmanager-gen.h"
 
 /* ---------------------------------------------------------------------------------------------------- */
 
diff --git a/gio/tests/gen-big-test-resource.py b/gio/tests/gen-big-test-resource.py
new file mode 100644 (file)
index 0000000..e031a0a
--- /dev/null
@@ -0,0 +1,27 @@
+# Generate a large text file to test compile
+# the resulting code that contains a large (>65536 bytes)
+# resource entry.  Just have 12 iterations of the following:
+#
+# -100 of each of the lowercase letters
+# -100 of each of the uppercase letters
+# -100 of the numbers 0 to 9
+#
+# See issue #1580
+
+import io
+import string
+import sys
+
+if len(sys.argv) != 2:
+    raise SystemExit('Usage: %s <output-file>' % sys.argv[0])
+
+with open(sys.argv[1], 'w', newline='\n') as f:
+    for count in range(12):
+        for c in string.ascii_lowercase:
+            f.write("%s\n" % (c * 100))
+
+        for c in string.ascii_uppercase:
+            f.write("%s\n" % (c * 100))
+
+        for i in range(10):
+            f.write("%s\n" % (str(i) * 100))
index dcf571f..533e2e4 100644 (file)
 
 #include <string.h>
 
+/* Wrapper around g_list_model_get_item() and g_list_model_get_object() which
+ * checks they return the same thing. */
+static gpointer
+list_model_get (GListModel *model,
+                guint       position)
+{
+  GObject *item = g_list_model_get_item (model, position);
+  GObject *object = g_list_model_get_object (model, position);
+
+  g_assert_true (item == object);
+
+  g_clear_object (&object);
+  return g_steal_pointer (&item);
+}
+
+/* Test that constructing/getting/setting properties on a #GListStore works. */
+static void
+test_store_properties (void)
+{
+  GListStore *store = NULL;
+  GType item_type;
+
+  store = g_list_store_new (G_TYPE_MENU_ITEM);
+  g_object_get (store, "item-type", &item_type, NULL);
+  g_assert_cmpint (item_type, ==, G_TYPE_MENU_ITEM);
+
+  g_clear_object (&store);
+}
+
+/* Test that #GListStore rejects non-GObject item types. */
+static void
+test_store_non_gobjects (void)
+{
+  if (g_test_subprocess ())
+    {
+      /* We have to use g_object_new() since g_list_store_new() checks the item
+       * type. We want to check the property setter code works properly. */
+      g_object_new (G_TYPE_LIST_STORE, "item-type", G_TYPE_LONG, NULL);
+      return;
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*WARNING*value * of type 'GType' is invalid or "
+                             "out of range for property 'item-type'*");
+}
+
 static void
 test_store_boundaries (void)
 {
@@ -92,7 +139,7 @@ test_store_refcounts (void)
   store = g_list_store_new (G_TYPE_MENU_ITEM);
 
   g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (store)), ==, 0);
-  g_assert_null (g_list_model_get_item (G_LIST_MODEL (store), 0));
+  g_assert_null (list_model_get (G_LIST_MODEL (store), 0));
 
   n_items = G_N_ELEMENTS (items);
   for (i = 0; i < n_items; i++)
@@ -106,17 +153,17 @@ test_store_refcounts (void)
     }
 
   g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (store)), ==, n_items);
-  g_assert_null (g_list_model_get_item (G_LIST_MODEL (store), n_items));
+  g_assert_null (list_model_get (G_LIST_MODEL (store), n_items));
 
-  tmp = g_list_model_get_item (G_LIST_MODEL (store), 3);
-  g_assert (tmp == items[3]);
+  tmp = list_model_get (G_LIST_MODEL (store), 3);
+  g_assert_true (tmp == items[3]);
   g_object_unref (tmp);
 
   g_list_store_remove (store, 4);
   g_assert_null (items[4]);
   n_items--;
   g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (store)), ==, n_items);
-  g_assert_null (g_list_model_get_item (G_LIST_MODEL (store), n_items));
+  g_assert_null (list_model_get (G_LIST_MODEL (store), n_items));
 
   g_object_unref (store);
   for (i = 0; i < G_N_ELEMENTS (items); i++)
@@ -189,8 +236,8 @@ test_store_sorted (void)
       GObject *a, *b;
 
       /* should see our two copies */
-      a = g_list_model_get_item (G_LIST_MODEL (store), i * 2);
-      b = g_list_model_get_item (G_LIST_MODEL (store), i * 2 + 1);
+      a = list_model_get (G_LIST_MODEL (store), i * 2);
+      b = list_model_get (G_LIST_MODEL (store), i * 2 + 1);
 
       g_assert (compare_items (a, b, GUINT_TO_POINTER(0x1234)) == 0);
       g_assert (a != b);
@@ -199,7 +246,7 @@ test_store_sorted (void)
         {
           GObject *c;
 
-          c = g_list_model_get_item (G_LIST_MODEL (store), i * 2 - 1);
+          c = list_model_get (G_LIST_MODEL (store), i * 2 - 1);
           g_assert (c != a);
           g_assert (c != b);
 
@@ -241,13 +288,13 @@ test_store_splice_replace_middle (void)
   g_list_store_splice (store, 0, 0, array->pdata, 3);
   g_assert_cmpuint (g_list_model_get_n_items (model), ==, 3);
 
-  item = g_list_model_get_item (model, 0);
+  item = list_model_get (model, 0);
   g_assert_cmpstr (g_action_get_name (item), ==, "1");
   g_object_unref (item);
-  item = g_list_model_get_item (model, 1);
+  item = list_model_get (model, 1);
   g_assert_cmpstr (g_action_get_name (item), ==, "2");
   g_object_unref (item);
-  item = g_list_model_get_item (model, 2);
+  item = list_model_get (model, 2);
   g_assert_cmpstr (g_action_get_name (item), ==, "3");
   g_object_unref (item);
 
@@ -255,16 +302,16 @@ test_store_splice_replace_middle (void)
   g_list_store_splice (store, 1, 1, array->pdata + 3, 2);
   g_assert_cmpuint (g_list_model_get_n_items (model), ==, 4);
 
-  item = g_list_model_get_item (model, 0);
+  item = list_model_get (model, 0);
   g_assert_cmpstr (g_action_get_name (item), ==, "1");
   g_object_unref (item);
-  item = g_list_model_get_item (model, 1);
+  item = list_model_get (model, 1);
   g_assert_cmpstr (g_action_get_name (item), ==, "4");
   g_object_unref (item);
-  item = g_list_model_get_item (model, 2);
+  item = list_model_get (model, 2);
   g_assert_cmpstr (g_action_get_name (item), ==, "5");
   g_object_unref (item);
-  item = g_list_model_get_item (model, 3);
+  item = list_model_get (model, 3);
   g_assert_cmpstr (g_action_get_name (item), ==, "3");
   g_object_unref (item);
 
@@ -296,10 +343,10 @@ test_store_splice_replace_all (void)
   g_list_store_splice (store, 0, 0, array->pdata, 2);
 
   g_assert_cmpuint (g_list_model_get_n_items (model), ==, 2);
-  item = g_list_model_get_item (model, 0);
+  item = list_model_get (model, 0);
   g_assert_cmpstr (g_action_get_name (item), ==, "1");
   g_object_unref (item);
-  item = g_list_model_get_item (model, 1);
+  item = list_model_get (model, 1);
   g_assert_cmpstr (g_action_get_name (item), ==, "2");
   g_object_unref (item);
 
@@ -307,10 +354,10 @@ test_store_splice_replace_all (void)
   g_list_store_splice (store, 0, 2, array->pdata + 2, 2);
 
   g_assert_cmpuint (g_list_model_get_n_items (model), ==, 2);
-  item = g_list_model_get_item (model, 0);
+  item = list_model_get (model, 0);
   g_assert_cmpstr (g_action_get_name (item), ==, "3");
   g_object_unref (item);
-  item = g_list_model_get_item (model, 1);
+  item = list_model_get (model, 1);
   g_assert_cmpstr (g_action_get_name (item), ==, "4");
   g_object_unref (item);
 
@@ -344,7 +391,7 @@ test_store_splice_noop (void)
   g_list_store_splice (store, 1, 0, NULL, 0);
   g_assert_cmpuint (g_list_model_get_n_items (model), ==, 1);
 
-  item = g_list_model_get_item (model, 0);
+  item = list_model_get (model, 0);
   g_assert_cmpstr (g_action_get_name (item), ==, "1");
   g_object_unref (item);
 
@@ -364,7 +411,7 @@ model_array_equal (GListModel *model, GPtrArray *array)
       GObject *ptr;
       gboolean ptrs_equal;
 
-      ptr = g_list_model_get_item (model, i);
+      ptr = list_model_get (model, i);
       ptrs_equal = (g_ptr_array_index (array, i) == ptr);
       g_object_unref (ptr);
       if (!ptrs_equal)
@@ -589,33 +636,33 @@ test_store_get_item_cache (void)
   g_list_store_append (store, item2);
 
   /* Clear the cache */
-  g_assert_null (g_list_model_get_item (model, 42));
+  g_assert_null (list_model_get (model, 42));
 
   /* Access the same position twice */
-  temp = g_list_model_get_item (model, 1);
+  temp = list_model_get (model, 1);
   g_assert (temp == item2);
   g_object_unref (temp);
-  temp = g_list_model_get_item (model, 1);
+  temp = list_model_get (model, 1);
   g_assert (temp == item2);
   g_object_unref (temp);
 
-  g_assert_null (g_list_model_get_item (model, 42));
+  g_assert_null (list_model_get (model, 42));
 
   /* Access forwards */
-  temp = g_list_model_get_item (model, 0);
+  temp = list_model_get (model, 0);
   g_assert (temp == item1);
   g_object_unref (temp);
-  temp = g_list_model_get_item (model, 1);
+  temp = list_model_get (model, 1);
   g_assert (temp == item2);
   g_object_unref (temp);
 
-  g_assert_null (g_list_model_get_item (model, 42));
+  g_assert_null (list_model_get (model, 42));
 
   /* Access backwards */
-  temp = g_list_model_get_item (model, 1);
+  temp = list_model_get (model, 1);
   g_assert (temp == item2);
   g_object_unref (temp);
-  temp = g_list_model_get_item (model, 0);
+  temp = list_model_get (model, 0);
   g_assert (temp == item1);
   g_object_unref (temp);
 
@@ -736,6 +783,8 @@ int main (int argc, char *argv[])
   g_test_init (&argc, &argv, NULL);
   g_test_bug_base ("https://bugzilla.gnome.org/");
 
+  g_test_add_func ("/glistmodel/store/properties", test_store_properties);
+  g_test_add_func ("/glistmodel/store/non-gobjects", test_store_non_gobjects);
   g_test_add_func ("/glistmodel/store/boundaries", test_store_boundaries);
   g_test_add_func ("/glistmodel/store/refcounts", test_store_refcounts);
   g_test_add_func ("/glistmodel/store/sorted", test_store_sorted);
index 5d6f485..53e7013 100644 (file)
@@ -1160,6 +1160,8 @@ do_modify (gpointer data)
       random_menu_change (menu, rand);
     }
 
+  g_rand_free (rand);
+
   return NULL;
 }
 
@@ -1201,9 +1203,11 @@ test_dbus_threaded (void)
 
   for (i = 0; i < 10; i++)
     {
-      menu[i] = random_menu_new (g_rand_new_with_seed (g_test_rand_int ()), 2);
+      GRand *rand = g_rand_new_with_seed (g_test_rand_int ());
+      menu[i] = random_menu_new (rand, 2);
       call[i] = g_thread_new ("call", do_modify, menu[i]);
       export[i] = g_thread_new ("export", do_export, menu[i]);
+      g_rand_free (rand);
     }
 
   for (i = 0; i < 10; i++)
diff --git a/gio/tests/gsocketclient-slow.c b/gio/tests/gsocketclient-slow.c
new file mode 100644 (file)
index 0000000..bc7d027
--- /dev/null
@@ -0,0 +1,74 @@
+/* GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2018 Igalia S.L.
+ *
+ * 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>
+
+static void
+on_connected (GObject      *source_object,
+              GAsyncResult *result,
+              gpointer      user_data)
+{
+  GSocketConnection *conn;
+  GError *error = NULL;
+
+  conn = g_socket_client_connect_to_uri_finish (G_SOCKET_CLIENT (source_object), result, &error);
+  g_assert_no_error (error);
+
+  g_object_unref (conn);
+  g_main_loop_quit (user_data);
+}
+
+static void
+test_happy_eyeballs (void)
+{
+  GSocketClient *client;
+  GSocketService *service;
+  GError *error = NULL;
+  guint16 port;
+  GMainLoop *loop;
+
+  loop = g_main_loop_new (NULL, FALSE);
+
+  service = g_socket_service_new ();
+  port = g_socket_listener_add_any_inet_port (G_SOCKET_LISTENER (service), NULL, &error);
+  g_assert_no_error (error);
+  g_socket_service_start (service);
+
+  /* All of the magic here actually happens in slow-connect-preload.c
+   * which as you would guess is preloaded. So this is just making a
+   * normal connection that happens to take 600ms each time. This will
+   * trigger the logic to make multiple parallel connections.
+   */
+  client = g_socket_client_new ();
+  g_socket_client_connect_to_host_async (client, "localhost", port, NULL, on_connected, loop);
+  g_main_loop_run (loop);
+
+  g_main_loop_unref (loop);
+  g_object_unref (service);
+  g_object_unref (client);
+}
+
+int
+main (int argc, char *argv[])
+{
+  g_test_init (&argc, &argv, NULL);
+
+  g_test_add_func ("/socket-client/happy-eyeballs", test_happy_eyeballs);
+
+  return g_test_run ();
+}
\ No newline at end of file
index 74cb9e2..c9b06c2 100644 (file)
@@ -200,12 +200,17 @@ main (int argc, char **argv)
   GOptionContext *context;
   GError *error = NULL;
   const char *mode;
+  gboolean ret;
 
   context = g_option_context_new ("MODE - Test GSubprocess stuff");
   g_option_context_add_main_entries (context, options, NULL);
-  if (!g_option_context_parse (context, &argc, &argv, &error))
+  ret = g_option_context_parse (context, &argc, &argv, &error);
+  g_option_context_free (context);
+
+  if (!ret)
     {
       g_printerr ("%s: %s\n", argv[0], error->message);
+      g_error_free (error);
       return 1;
     }
 
index f617bc5..4318283 100644 (file)
@@ -1190,7 +1190,7 @@ test_communicate_nothing (void)
 }
 
 static void
-test_communicate_utf8_invalid (void)
+test_communicate_utf8_async_invalid (void)
 {
   GSubprocessFlags flags = G_SUBPROCESS_FLAGS_STDOUT_PIPE;
   GError *error = NULL;
@@ -1222,6 +1222,37 @@ test_communicate_utf8_invalid (void)
   g_object_unref (proc);
 }
 
+/* Test that invalid UTF-8 received using g_subprocess_communicate_utf8()
+ * results in an error. */
+static void
+test_communicate_utf8_invalid (void)
+{
+  GSubprocessFlags flags = G_SUBPROCESS_FLAGS_STDOUT_PIPE;
+  GError *local_error = NULL;
+  gboolean ret;
+  GPtrArray *args;
+  gchar *stdout_str = NULL, *stderr_str = NULL;
+  GSubprocess *proc;
+
+  args = get_test_subprocess_args ("cat", NULL);
+  proc = g_subprocess_newv ((const gchar* const*)args->pdata,
+                            G_SUBPROCESS_FLAGS_STDIN_PIPE | flags,
+                            &local_error);
+  g_assert_no_error (local_error);
+  g_ptr_array_free (args, TRUE);
+
+  ret = g_subprocess_communicate_utf8 (proc, "\xFF\xFF", NULL,
+                                       &stdout_str, &stderr_str, &local_error);
+  g_assert_error (local_error, G_IO_ERROR, G_IO_ERROR_FAILED);
+  g_error_free (local_error);
+  g_assert_false (ret);
+
+  g_assert_null (stdout_str);
+  g_assert_null (stderr_str);
+
+  g_object_unref (proc);
+}
+
 static gboolean
 send_terminate (gpointer   user_data)
 {
@@ -1783,6 +1814,7 @@ main (int argc, char **argv)
       g_free (test_path);
     }
 
+  g_test_add_func ("/gsubprocess/communicate/utf8/async/invalid", test_communicate_utf8_async_invalid);
   g_test_add_func ("/gsubprocess/communicate/utf8/invalid", test_communicate_utf8_invalid);
   g_test_add_func ("/gsubprocess/communicate/nothing", test_communicate_nothing);
   g_test_add_func ("/gsubprocess/terminate", test_terminate);
index 83dad36..157a4a3 100644 (file)
@@ -22,6 +22,8 @@
 
 static GType _g_test_tls_certificate_get_type (void);
 static GType _g_test_tls_connection_get_type (void);
+static GTlsDatabase * _g_test_tls_backend_get_default_database (GTlsBackend * backend);
+static GType _g_test_tls_database_get_type (void);
 
 struct _GTestTlsBackend {
   GObject parent_instance;
@@ -57,6 +59,26 @@ g_test_tls_backend_iface_init (GTlsBackendInterface *iface)
   iface->get_certificate_type = _g_test_tls_certificate_get_type;
   iface->get_client_connection_type = _g_test_tls_connection_get_type;
   iface->get_server_connection_type = _g_test_tls_connection_get_type;
+  iface->get_default_database = _g_test_tls_backend_get_default_database;
+  iface->get_file_database_type = _g_test_tls_database_get_type;
+}
+
+static GTlsDatabase *
+_g_test_tls_backend_get_default_database (GTlsBackend * backend)
+{
+  static GTlsDatabase *default_db;
+  GError *error = NULL;
+
+  if (!default_db)
+    {
+      default_db = g_initable_new (_g_test_tls_database_get_type (),
+                                   NULL,
+                                   &error,
+                                   NULL);
+      g_assert_no_error (error);
+    }
+
+  return default_db;
 }
 
 /* Test certificate type */
@@ -77,9 +99,7 @@ struct _GTestTlsCertificateClass {
 
 enum
 {
-  PROP_CERTIFICATE_0,
-
-  PROP_CERT_CERTIFICATE,
+  PROP_CERT_CERTIFICATE = 1,
   PROP_CERT_CERTIFICATE_PEM,
   PROP_CERT_PRIVATE_KEY,
   PROP_CERT_PRIVATE_KEY_PEM,
@@ -164,6 +184,8 @@ g_test_tls_certificate_finalize (GObject *object)
   g_free (cert->cert_pem);
   g_free (cert->key_pem);
   g_clear_object (&cert->issuer);
+
+  G_OBJECT_CLASS (g_test_tls_certificate_parent_class)->finalize (object);
 }
 
 static void
@@ -222,9 +244,7 @@ struct _GTestTlsConnectionClass {
 
 enum
 {
-  PROP_CONNECTION_0,
-
-  PROP_CONN_BASE_IO_STREAM,
+  PROP_CONN_BASE_IO_STREAM = 1,
   PROP_CONN_USE_SYSTEM_CERTDB,
   PROP_CONN_REQUIRE_CLOSE_NOTIFY,
   PROP_CONN_REHANDSHAKE_MODE,
@@ -327,3 +347,117 @@ g_test_tls_connection_get_private_key_pem (GTlsCertificate *cert)
 {
   return ((GTestTlsCertificate *)cert)->key_pem;
 }
+
+/* Test database type */
+
+typedef struct _GTestTlsDatabase      GTestTlsDatabase;
+typedef struct _GTestTlsDatabaseClass GTestTlsDatabaseClass;
+
+struct _GTestTlsDatabase {
+  GTlsDatabase parent_instance;
+  gchar *anchors;
+};
+
+struct _GTestTlsDatabaseClass {
+  GTlsDatabaseClass parent_class;
+};
+
+enum
+{
+  PROP_DATABASE_ANCHORS = 1,
+};
+
+static void g_test_tls_database_initable_iface_init (GInitableIface *iface);
+static void g_test_tls_file_database_file_database_interface_init (GInitableIface *iface);
+
+#define g_test_tls_database_get_type _g_test_tls_database_get_type
+G_DEFINE_TYPE_WITH_CODE (GTestTlsDatabase, g_test_tls_database, G_TYPE_TLS_DATABASE,
+                        G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE,
+                                               g_test_tls_database_initable_iface_init);
+                        G_IMPLEMENT_INTERFACE (G_TYPE_TLS_FILE_DATABASE,
+                                               g_test_tls_file_database_file_database_interface_init))
+
+static void
+g_test_tls_database_get_property (GObject    *object,
+                                  guint       prop_id,
+                                  GValue     *value,
+                                  GParamSpec *pspec)
+{
+  GTestTlsDatabase *db = (GTestTlsDatabase *) object;
+
+  switch (prop_id)
+    {
+    case PROP_DATABASE_ANCHORS:
+      g_value_set_string (value, db->anchors);
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+    }
+}
+
+static void
+g_test_tls_database_set_property (GObject      *object,
+                                  guint         prop_id,
+                                  const GValue *value,
+                                  GParamSpec   *pspec)
+{
+  GTestTlsDatabase *db = (GTestTlsDatabase *) object;
+
+  switch (prop_id)
+    {
+    case PROP_DATABASE_ANCHORS:
+      g_free (db->anchors);
+      db->anchors = g_value_dup_string (value);
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+    }
+}
+
+static void
+g_test_tls_database_finalize (GObject *object)
+{
+  GTestTlsDatabase *db = (GTestTlsDatabase *) object;
+
+  g_free (db->anchors);
+
+  G_OBJECT_CLASS (g_test_tls_database_parent_class)->finalize (object);
+}
+
+static void
+g_test_tls_database_class_init (GTestTlsDatabaseClass *test_class)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (test_class);
+
+  gobject_class->get_property = g_test_tls_database_get_property;
+  gobject_class->set_property = g_test_tls_database_set_property;
+  gobject_class->finalize = g_test_tls_database_finalize;
+
+  g_object_class_override_property (gobject_class, PROP_DATABASE_ANCHORS, "anchors");
+}
+
+static void
+g_test_tls_database_init (GTestTlsDatabase *database)
+{
+}
+
+static gboolean
+g_test_tls_database_initable_init (GInitable       *initable,
+                                   GCancellable    *cancellable,
+                                   GError         **error)
+{
+  return TRUE;
+}
+
+static void
+g_test_tls_file_database_file_database_interface_init (GInitableIface *iface)
+{
+}
+
+static void
+g_test_tls_database_initable_iface_init (GInitableIface  *iface)
+{
+  iface->init = g_test_tls_database_initable_init;
+}
index dca33bd..5bbc071 100644 (file)
@@ -26,9 +26,7 @@ giotypefuncs_inc = custom_target(
   command: [gengiotypefuncs_prog, '@OUTPUT@', '@INPUT@'])
 
 #  Test programs buildable on all platforms
-# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0
-# that supports '+=' operator on dictionnaries.
-gio_tests = [{
+gio_tests = {
   'appmonitor' : {},
   'async-close-output-stream' : {},
   'async-splice-output-stream' : {},
@@ -57,7 +55,7 @@ gio_tests = [{
   'memory-output-stream' : {},
   'monitor' : {},
   'mount-operation' : {},
-  'network-address' : {},
+  'network-address' : {'extra_sources': ['mock-resolver.c']},
   'network-monitor' : {},
   'network-monitor-race' : {},
   'permission' : {},
@@ -79,15 +77,14 @@ gio_tests = [{
   'thumbnail-verification' : {},
   'tls-certificate' : {'extra_sources' : ['gtesttlsbackend.c']},
   'tls-interaction' : {'extra_sources' : ['gtesttlsbackend.c']},
-}]
+  'tls-database' : {'extra_sources' : ['gtesttlsbackend.c']},
+}
 
-# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0
-# that supports '+=' operator on dictionnaries.
-test_extra_programs = [{
+test_extra_programs = {
   'gdbus-connection-flush-helper' : {},
   'gdbus-testserver' : {},
   'gsubprocess-testprog' : {},
-}]
+}
 
 test_env = environment()
 test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
@@ -113,17 +110,17 @@ endif
 if dbus1_dep.found()
   glib_conf.set('HAVE_DBUS1', 1)
 
-  gio_tests += [{
+  gio_tests += {
     'gdbus-serialization' : {
       'extra_sources' : ['gdbus-tests.c'],
       'dependencies' : [dbus1_dep],
     }
-  }]
+  }
 endif
 
 #  Test programs buildable on UNIX only
 if host_machine.system() != 'windows'
-  gio_tests += [{
+  gio_tests += {
     'file' : {},
     'gdbus-peer' : {
       'dependencies' : [libgdbus_example_objectmanager_dep],
@@ -137,38 +134,48 @@ if host_machine.system() != 'windows'
     'unix-mounts' : {},
     'unix-streams' : {},
     'g-file-info-filesystem-readonly' : {},
+    'gsocketclient-slow' : {
+      'depends' : [
+        shared_library('slow-connect-preload',
+          'slow-connect-preload.c',
+          name_prefix : '',
+          dependencies: cc.find_library('dl'),
+        )
+      ],
+      'env' : {
+        'LD_PRELOAD': '@0@/slow-connect-preload.so'.format(meson.current_build_dir())
+      }
+    },
     'gschema-compile' : {'install' : false},
     'trash' : {},
-  }]
+  }
 
   # Uninstalled because of the check-for-executable logic in DesktopAppInfo
   # unable to find the installed executable
   if not glib_have_cocoa
-    gio_tests += [{
+    gio_tests += {
       'appinfo' : {
         'install' : false,
-        'is_parallel' : false,
       },
       'desktop-app-info' : {
         'install' : false,
-        'is_parallel' : false,
       },
-    }]
+    }
   endif
 
-  test_extra_programs += [{
+  test_extra_programs += {
     'basic-application' : {},
     'dbus-launch' : {},
     'appinfo-test' : {},
-  }]
+  }
 
   if not glib_have_cocoa
-    test_extra_programs += [{
+    test_extra_programs += {
       'apps' : {},
-    }]
-    gio_tests += [{
+    }
+    gio_tests += {
       'mimeapps' : {},
-    }]
+    }
   endif
 
   #  Test programs that need to bring up a session bus (requires dbus-daemon)
@@ -224,7 +231,7 @@ if host_machine.system() != 'windows'
 
     extra_sources = ['gdbus-sessionbus.c', 'gdbus-tests.c']
 
-    gio_tests += [{
+    gio_tests += {
       'actions' : {
         'extra_sources' : extra_sources,
         'suite' : ['slow'],
@@ -248,6 +255,7 @@ if host_machine.system() != 'windows'
         '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-test-codegen' : {
         'extra_sources' : [extra_sources, gdbus_test_codegen_generated, gdbus_test_codegen_generated_interface_info],
@@ -271,14 +279,14 @@ if host_machine.system() != 'windows'
       },
       'gapplication' : {'extra_sources' : extra_sources},
       'gdbus-unix-addresses' : {},
-    }]
+    }
 
     if not glib_have_cocoa
-      gio_tests += [{
+      gio_tests += {
         'dbus-appinfo' : {
           'extra_sources' : extra_sources,
         },
-      }]
+      }
     endif
   endif # have_dbus_daemon
 
@@ -289,44 +297,44 @@ if host_machine.system() != 'windows'
       install_dir : installed_tests_execdir,
       install : installed_tests_enabled)
 
-  gio_tests += [{
+  gio_tests += {
     'gdbus-connection-flush' : {
       'extra_sources' : ['test-io-stream.c', 'test-pipe-unix.c'],
     },
     'gdbus-non-socket' : {
       'extra_sources' : ['gdbus-tests.c', 'test-io-stream.c', 'test-pipe-unix.c'],
     },
-  }]
+  }
 
   # Generate test.mo from de.po using msgfmt
   msgfmt = find_program('msgfmt', required : false)
   if msgfmt.found()
     subdir('de/LC_MESSAGES')
-    gio_tests += [{
+    gio_tests += {
       'gsettings' : {
         'extra_sources' : [test_mo],
         'c_args' : ['-DSRCDIR="@0@"'.format(meson.current_source_dir()),
                     '-DTEST_LOCALE_PATH="@0@"'.format(test_mo_dir)],
         'install' : false,
       },
-    }]
+    }
   endif
 endif # unix
 
 #  Test programs buildable on Windows only
 if host_machine.system() == 'windows'
-  gio_tests += [{'win32-streams' : {}}]
+  gio_tests += {'win32-streams' : {}}
 endif
 
 if cc.get_id() != 'msvc'
-  gio_tests += [{
+  gio_tests += {
     'autoptr-gio' : {
       'source' : 'autoptr.c',
     },
-  }]
+  }
 endif
 
-test_extra_programs += [{
+test_extra_programs += {
   'gio-du' : {'install' : false},
   'echo-server' : {'install' : false},
   'filter-cat' : {'install' : false},
@@ -358,10 +366,10 @@ test_extra_programs += [{
     'extra_sources' : ['gtlsconsoleinteraction.c'],
     'install' : false,
   },
-}]
+}
 
 if cc.get_id() != 'msvc'
-  test_extra_programs += [{
+  test_extra_programs += {
     # These three are manual-run tests because they need a session bus but don't bring one up themselves
     # FIXME: these build but don't seem to work!
     'gdbus-example-objectmanager-client' : {
@@ -376,26 +384,47 @@ if cc.get_id() != 'msvc'
       'dependencies' : [libgdbus_example_objectmanager_dep],
       'install' : false,
     },
-  }]
+  }
 endif
 
 if host_machine.system() != 'windows'
-  test_extra_programs += [{
+  test_extra_programs += {
     'gdbus-example-unix-fd-client' : {
       'install' : false,
     },
-  }]
+  }
+endif
+
+appinfo_test_desktop_files = [
+  'appinfo-test-gnome.desktop',
+  'appinfo-test-notgnome.desktop',
+  'appinfo-test.desktop',
+  'appinfo-test2.desktop',
+]
+
+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
+  configure_file(
+    input: appinfo_test_desktop_file + '.in',
+    output: appinfo_test_desktop_file,
+    install_dir: installed_tests_execdir,
+    install: installed_tests_enabled,
+    configuration: cdata,
+  )
+endforeach
+
 if installed_tests_enabled
   install_data(
     'contexts.c',
     'g-icon.c',
     'appinfo-test-actions.desktop',
-    'appinfo-test-gnome.desktop',
-    'appinfo-test-notgnome.desktop',
-    'appinfo-test.desktop',
-    'appinfo-test2.desktop',
+    'appinfo-test-static.desktop',
     'file.c',
     'org.gtk.test.dbusappinfo.desktop',
     install_dir : installed_tests_execdir,
@@ -404,6 +433,18 @@ if installed_tests_enabled
   install_subdir('desktop-files', install_dir : installed_tests_execdir)
   install_subdir('thumbnails', install_dir : installed_tests_execdir)
   install_subdir('cert-tests', install_dir : installed_tests_execdir)
+
+  cdata = configuration_data()
+  cdata.set('installed_tests_dir', installed_tests_execdir)
+  cdata.set('program', 'static-link.py ' + glib_pkgconfigreldir)
+  configure_file(
+    input: installed_tests_template,
+    output: 'static-link.test',
+    install_dir: installed_tests_metadir,
+    configuration: cdata
+  )
+  install_subdir('static-link', install_dir : installed_tests_execdir)
+  install_data('static-link.py', install_dir : installed_tests_execdir)
 endif
 
 if not meson.is_cross_build() or meson.has_exe_wrapper()
@@ -425,6 +466,13 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
     install : installed_tests_enabled
   )
 
+  # referenced by test2.gresource.xml
+  big_test_resource = custom_target(
+    'gresource-big-test.txt',
+    input : ['gen-big-test-resource.py'],
+    output : ['gresource-big-test.txt'],
+    command : [python, '@INPUT0@', '@OUTPUT@'])
+
   test_gresource = custom_target('test.gresource',
     input : 'test.gresource.xml',
     output : 'test.gresource',
@@ -460,10 +508,12 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
 
   test_resources_c = custom_target('test_resources.c',
     input : 'test2.gresource.xml',
+    depends : big_test_resource,
     output : 'test_resources.c',
     command : [glib_compile_resources,
                '--target=@OUTPUT@',
                '--sourcedir=' + meson.current_source_dir(),
+               '--sourcedir=' + meson.current_build_dir(),
                '--generate-source',
                '--c-name', '_g_test1',
                '@INPUT@'])
@@ -474,64 +524,122 @@ if not meson.is_cross_build() or meson.has_exe_wrapper()
     copy : true,
     install : false)
 
-  gio_tests += [{
-    'resources' : {
-      'extra_sources' : [test_gresource, test_resources_c, test_resources2_c,
-                         test_resources2_h],
-    },
-  }]
-endif
+  # Create object file containing resource data
+  # for testing the external data option
+  if build_machine.system() == 'linux'
+    test_gresource_binary = custom_target('test5.gresource',
+      input : 'test5.gresource.xml',
+      output : 'test5.gresource',
+      command : [glib_compile_resources,
+                 '--target=@OUTPUT@',
+                 '--sourcedir=' + meson.current_source_dir(),
+                 '--sourcedir=' + meson.current_build_dir(),
+                 '@INPUT@'],
+      install_dir : installed_tests_execdir,
+      install : installed_tests_enabled)
 
-foreach test_dict : gio_tests
-  foreach test_name, extra_args : test_dict
-    source = extra_args.get('source', test_name + '.c')
-    extra_sources = extra_args.get('extra_sources', [])
-    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)
-      configure_file(
-        input: installed_tests_template_tap,
-        output: test_name + '.test',
-        install_dir: installed_tests_metadir,
-        configuration: test_conf
-      )
-    endif
+       # Create resource data file
+    test_resources_binary_c = custom_target('test_resources_binary.c',
+      input : 'test5.gresource.xml',
+      output : 'test_resources_binary.c',
+      command : [glib_compile_resources,
+                 '--target=@OUTPUT@',
+                 '--sourcedir=' + meson.current_source_dir(),
+                 '--sourcedir=' + meson.current_build_dir(),
+                 '--generate-source',
+                 '--external-data',
+                 '--c-name', '_g_binary_test1',
+                 '@INPUT@'])
+
+       # Create object file containing resource data
+    test_resources_binary = custom_target('test_resources.o',
+      input : test_gresource_binary,
+      output : 'test_resources.o',
+      command : ['ld',
+                 '-r',
+                 '-b','binary',
+                 '@INPUT@',
+                 '-o','@OUTPUT@'])
+
+       # Rename symbol to match the one in the C file
+    test_resources_binary2 = custom_target('test_resources2.o',
+      input : test_resources_binary,
+      output : 'test_resources2.o',
+      command : ['objcopy',
+                 '--add-symbol','_g_binary_test1_resource_data=.data:0',
+                 '@INPUT@',
+                 '@OUTPUT@'])
+
+    gio_tests += {
+      'resources' : {
+        'extra_sources' : [test_gresource, test_resources_c, test_resources2_c,
+                           test_resources2_h, test_resources_binary_c,
+                           test_resources_binary2],
+      },
+    }
+  else
+    gio_tests += {
+      'resources' : {
+        'extra_sources' : [test_gresource, test_resources_c, test_resources2_c,
+                           test_resources2_h],
+      },
+    }
+  endif
+endif
 
-    exe = executable(test_name, [source, extra_sources],
-      c_args : test_c_args + extra_args.get('c_args', []),
-      dependencies : common_gio_tests_deps + extra_args.get('dependencies', []),
-      install_rpath : extra_args.get('install_rpath', ''),
-      install_dir: installed_tests_execdir,
-      install: install,
+foreach test_name, extra_args : gio_tests
+  source = extra_args.get('source', test_name + '.c')
+  extra_sources = extra_args.get('extra_sources', [])
+  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)
+    configure_file(
+      input: installed_tests_template_tap,
+      output: test_name + '.test',
+      install_dir: installed_tests_metadir,
+      configuration: test_conf
     )
+  endif
 
-    suite = ['gio'] + extra_args.get('suite', [])
-    timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
-    test(test_name, exe,
-      env : test_env,
-      timeout : timeout,
-      suite : suite,
-      args : ['--tap'],
-      is_parallel : extra_args.get('is_parallel', true),
-    )
+  exe = executable(test_name, [source, extra_sources],
+    c_args : test_c_args + extra_args.get('c_args', []),
+    dependencies : common_gio_tests_deps + extra_args.get('dependencies', []),
+    install_rpath : extra_args.get('install_rpath', ''),
+    install_dir: installed_tests_execdir,
+    install: install,
+  )
+
+  suite = ['gio'] + extra_args.get('suite', [])
+  timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+  local_test_env = test_env
+
+  foreach var, value : extra_args.get('env', {})
+    local_test_env.append(var, value)
   endforeach
+
+  test(test_name, exe,
+    env : local_test_env,
+    timeout : timeout,
+    suite : suite,
+    args : ['--tap'],
+    is_parallel : extra_args.get('is_parallel', true),
+    depends : extra_args.get('depends', []),
+  )
 endforeach
 
-foreach program_dict : test_extra_programs
-  foreach program_name, extra_args : program_dict
-    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 : install,
-    )
-  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 : install,
+  )
 endforeach
 
 # FIXME: subdir('services')
index 8a9722f..08bcce2 100644 (file)
@@ -95,109 +95,114 @@ const gchar *mimecache_data =
   "image/bmp=myapp4.desktop;myapp5.desktop;\n"
   "image/png=myapp3.desktop;\n";
 
+typedef struct
+{
+  gchar *mimeapps_list_home;  /* (owned) */
+} Fixture;
+
 /* Set up XDG_DATA_HOME and XDG_DATA_DIRS.
  * XDG_DATA_DIRS/applications will contain mimeapps.list
  * XDG_DATA_HOME/applications will contain myapp.desktop
  * and myapp2.desktop, and no mimeapps.list
  */
 static void
-setup (void)
+setup (Fixture       *fixture,
+       gconstpointer  test_data)
 {
-  gchar *dir;
-  gchar *xdgconfighome;
-  gchar *xdgdatahome;
-  gchar *xdgdatadir;
+  const gchar *xdgdatahome;
+  const gchar * const *xdgdatadirs;
   gchar *appdir;
   gchar *apphome;
   gchar *mimeapps;
   gchar *name;
-  gboolean res;
+  gint res;
   GError *error = NULL;
 
-  dir = g_get_current_dir ();
-  xdgconfighome = g_build_filename (dir, "xdgconfighome", NULL);
-  xdgdatahome = g_build_filename (dir, "xdgdatahome", NULL);
-  xdgdatadir = g_build_filename (dir, "xdgdatadir", NULL);
-  g_test_message ("setting XDG_CONFIG_HOME to '%s'\n", xdgconfighome);
-  g_setenv ("XDG_CONFIG_HOME", xdgconfighome, TRUE);
-  g_test_message ("setting XDG_DATA_HOME to '%s'\n", xdgdatahome);
-  g_setenv ("XDG_DATA_HOME", xdgdatahome, TRUE);
-  g_test_message ("setting XDG_DATA_DIRS to '%s'\n", xdgdatadir);
-  g_setenv ("XDG_DATA_DIRS", xdgdatadir, TRUE);
-
-  appdir = g_build_filename (xdgdatadir, "applications", NULL);
-  g_test_message ("creating '%s'\n", appdir);
+  /* These are already set to a temporary directory through our use of
+   * %G_TEST_OPTION_ISOLATE_DIRS below. */
+  xdgdatahome = g_get_user_data_dir ();
+  xdgdatadirs = g_get_system_data_dirs ();
+
+  appdir = g_build_filename (xdgdatadirs[0], "applications", NULL);
+  g_test_message ("creating '%s'", appdir);
   res = g_mkdir_with_parents (appdir, 0700);
-  g_assert (res == 0);
+  g_assert_cmpint (res, ==, 0);
 
   name = g_build_filename (appdir, "mimeapps.list", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, defaults_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
   apphome = g_build_filename (xdgdatahome, "applications", NULL);
-  g_test_message ("creating '%s'\n", apphome);
+  g_test_message ("creating '%s'", apphome);
   res = g_mkdir_with_parents (apphome, 0700);
-  g_assert (res == 0);
+  g_assert_cmpint (res, ==, 0);
 
   name = g_build_filename (apphome, "myapp.desktop", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, myapp_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
   name = g_build_filename (apphome, "myapp2.desktop", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, myapp2_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
   name = g_build_filename (apphome, "myapp3.desktop", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, myapp3_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
   name = g_build_filename (apphome, "myapp4.desktop", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, myapp4_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
   name = g_build_filename (apphome, "myapp5.desktop", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, myapp5_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
   name = g_build_filename (apphome, "nosuchapp.desktop", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, nosuchapp_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
   mimeapps = g_build_filename (apphome, "mimeapps.list", NULL);
-  g_test_message ("removing '%s'\n", mimeapps);
+  g_test_message ("removing '%s'", mimeapps);
   g_remove (mimeapps);
 
   name = g_build_filename (apphome, "mimeinfo.cache", NULL);
-  g_test_message ("creating '%s'\n", name);
+  g_test_message ("creating '%s'", name);
   g_file_set_contents (name, mimecache_data, -1, &error);
   g_assert_no_error (error);
   g_free (name);
 
-  g_free (dir);
-  g_free (xdgconfighome);
-  g_free (xdgdatahome);
-  g_free (xdgdatadir);
   g_free (apphome);
   g_free (appdir);
   g_free (mimeapps);
+
+  /* Pointer to one of the temporary directories. */
+  fixture->mimeapps_list_home = g_build_filename (g_get_user_config_dir (), "mimeapps.list", NULL);
 }
 
 static void
-test_mime_api (void)
+teardown (Fixture       *fixture,
+          gconstpointer  test_data)
+{
+  g_free (fixture->mimeapps_list_home);
+}
+
+static void
+test_mime_api (Fixture       *fixture,
+               gconstpointer  test_data)
 {
   GAppInfo *appinfo;
   GAppInfo *appinfo2;
@@ -214,8 +219,8 @@ test_mime_api (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (def == NULL);
-  g_assert (list == NULL);
+  g_assert_null (def);
+  g_assert_null (list);
 
   /* 1. add a non-default association */
   g_app_info_add_supports_type (appinfo, contenttype, &error);
@@ -223,9 +228,9 @@ test_mime_api (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo));
+  g_assert_true (g_app_info_equal (def, appinfo));
   g_assert_cmpint (g_list_length (list), ==, 1);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -235,10 +240,10 @@ test_mime_api (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo));
+  g_assert_true (g_app_info_equal (def, appinfo));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -248,10 +253,10 @@ test_mime_api (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo));
+  g_assert_true (g_app_info_equal (def, appinfo));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -261,10 +266,10 @@ test_mime_api (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo));
+  g_assert_true (g_app_info_equal (def, appinfo));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo2));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo2));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -273,8 +278,8 @@ test_mime_api (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (def == NULL);
-  g_assert (list == NULL);
+  g_assert_null (def);
+  g_assert_null (list);
 
   g_object_unref (appinfo);
   g_object_unref (appinfo2);
@@ -286,7 +291,8 @@ test_mime_api (void)
  * mimeapps.list to verify the results.
  */
 static void
-test_mime_file (void)
+test_mime_file (Fixture       *fixture,
+                gconstpointer  test_data)
 {
   gchar **assoc;
   GAppInfo *appinfo;
@@ -297,13 +303,8 @@ test_mime_file (void)
   gboolean res;
   GAppInfo *def;
   GList *list;
-  gchar *mimeapps;
-  gchar *dir;
   const gchar *contenttype = "application/pdf";
 
-  dir = g_get_current_dir ();
-  mimeapps = g_build_filename (dir, "xdgconfighome", "mimeapps.list", NULL);
-
   /* clear things out */
   g_app_info_reset_type_associations (contenttype);
 
@@ -312,25 +313,25 @@ test_mime_file (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (def == NULL);
-  g_assert (list == NULL);
+  g_assert_null (def);
+  g_assert_null (list);
 
   /* 1. add a non-default association */
   g_app_info_add_supports_type (appinfo, contenttype, &error);
   g_assert_no_error (error);
 
   keyfile = g_key_file_new ();
-  g_key_file_load_from_file (keyfile, mimeapps, G_KEY_FILE_NONE, &error);
+  g_key_file_load_from_file (keyfile, fixture->mimeapps_list_home, G_KEY_FILE_NONE, &error);
   g_assert_no_error (error);
 
   assoc = g_key_file_get_string_list (keyfile, "Added Associations", contenttype, NULL, &error);
   g_assert_no_error (error);
-  g_assert (strv_equal (assoc, "myapp.desktop", NULL));
+  g_assert_true (strv_equal (assoc, "myapp.desktop", NULL));
   g_strfreev (assoc);
 
   /* we've unset XDG_DATA_DIRS so there should be no default */
   assoc = g_key_file_get_string_list (keyfile, "Default Applications", contenttype, NULL, &error);
-  g_assert (error != NULL);
+  g_assert_nonnull (error);
   g_clear_error (&error);
 
   g_key_file_free (keyfile);
@@ -340,16 +341,16 @@ test_mime_file (void)
   g_assert_no_error (error);
 
   keyfile = g_key_file_new ();
-  g_key_file_load_from_file (keyfile, mimeapps, G_KEY_FILE_NONE, &error);
+  g_key_file_load_from_file (keyfile, fixture->mimeapps_list_home, G_KEY_FILE_NONE, &error);
   g_assert_no_error (error);
 
   assoc = g_key_file_get_string_list (keyfile, "Added Associations", contenttype, NULL, &error);
   g_assert_no_error (error);
-  g_assert (strv_equal (assoc, "myapp.desktop", "myapp2.desktop", NULL));
+  g_assert_true (strv_equal (assoc, "myapp.desktop", "myapp2.desktop", NULL));
   g_strfreev (assoc);
 
   assoc = g_key_file_get_string_list (keyfile, "Default Applications", contenttype, NULL, &error);
-  g_assert (error != NULL);
+  g_assert_nonnull (error);
   g_clear_error (&error);
 
   g_key_file_free (keyfile);
@@ -359,12 +360,12 @@ test_mime_file (void)
   g_assert_no_error (error);
 
   keyfile = g_key_file_new ();
-  g_key_file_load_from_file (keyfile, mimeapps, G_KEY_FILE_NONE, &error);
+  g_key_file_load_from_file (keyfile, fixture->mimeapps_list_home, G_KEY_FILE_NONE, &error);
   g_assert_no_error (error);
 
   assoc = g_key_file_get_string_list (keyfile, "Added Associations", contenttype, NULL, &error);
   g_assert_no_error (error);
-  g_assert (strv_equal (assoc, "myapp.desktop", "myapp2.desktop", NULL));
+  g_assert_true (strv_equal (assoc, "myapp.desktop", "myapp2.desktop", NULL));
   g_strfreev (assoc);
 
   str = g_key_file_get_string (keyfile, "Default Applications", contenttype, &error);
@@ -379,12 +380,12 @@ test_mime_file (void)
   g_assert_no_error (error);
 
   keyfile = g_key_file_new ();
-  g_key_file_load_from_file (keyfile, mimeapps, G_KEY_FILE_NONE, &error);
+  g_key_file_load_from_file (keyfile, fixture->mimeapps_list_home, G_KEY_FILE_NONE, &error);
   g_assert_no_error (error);
 
   assoc = g_key_file_get_string_list (keyfile, "Added Associations", contenttype, NULL, &error);
   g_assert_no_error (error);
-  g_assert (strv_equal (assoc, "myapp2.desktop", "myapp.desktop", NULL));
+  g_assert_true (strv_equal (assoc, "myapp2.desktop", "myapp.desktop", NULL));
   g_strfreev (assoc);
 
   g_key_file_free (keyfile);
@@ -393,27 +394,25 @@ test_mime_file (void)
   g_app_info_reset_type_associations (contenttype);
 
   keyfile = g_key_file_new ();
-  g_key_file_load_from_file (keyfile, mimeapps, G_KEY_FILE_NONE, &error);
+  g_key_file_load_from_file (keyfile, fixture->mimeapps_list_home, G_KEY_FILE_NONE, &error);
   g_assert_no_error (error);
 
   res = g_key_file_has_key (keyfile, "Added Associations", contenttype, NULL);
-  g_assert (!res);
+  g_assert_false (res);
 
   res = g_key_file_has_key (keyfile, "Default Applications", contenttype, NULL);
-  g_assert (!res);
+  g_assert_false (res);
 
   g_key_file_free (keyfile);
 
   g_object_unref (appinfo);
   g_object_unref (appinfo2);
-
-  g_free (mimeapps);
-  g_free (dir);
 }
 
 /* test interaction between mimeapps.list at different levels */
 static void
-test_mime_default (void)
+test_mime_default (Fixture       *fixture,
+                   gconstpointer  test_data)
 {
   GAppInfo *appinfo;
   GAppInfo *appinfo2;
@@ -433,9 +432,9 @@ test_mime_default (void)
   /* myapp3 is set as the default in defaults.list */
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo3));
+  g_assert_true (g_app_info_equal (def, appinfo3));
   g_assert_cmpint (g_list_length (list), ==, 1);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo3));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo3));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -445,10 +444,10 @@ test_mime_default (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo3)); /* default is unaffected */
+  g_assert_true (g_app_info_equal (def, appinfo3)); /* default is unaffected */
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo3));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo3));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -458,11 +457,11 @@ test_mime_default (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo3));
+  g_assert_true (g_app_info_equal (def, appinfo3));
   g_assert_cmpint (g_list_length (list), ==, 3);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->next->data, appinfo3));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->next->data, appinfo3));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -472,11 +471,11 @@ test_mime_default (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo));
+  g_assert_true (g_app_info_equal (def, appinfo));
   g_assert_cmpint (g_list_length (list), ==, 3);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->next->data, appinfo3));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo2));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->next->data, appinfo3));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -490,7 +489,8 @@ test_mime_default (void)
  * change the default
  */
 static void
-test_mime_default_last_used (void)
+test_mime_default_last_used (Fixture       *fixture,
+                             gconstpointer  test_data)
 {
   GAppInfo *appinfo4;
   GAppInfo *appinfo5;
@@ -509,10 +509,10 @@ test_mime_default_last_used (void)
   /* myapp4 and myapp5 can both handle image/bmp */
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo4));
+  g_assert_true (g_app_info_equal (def, appinfo4));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo4));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo5));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo4));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo5));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -522,10 +522,10 @@ test_mime_default_last_used (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo4)); /* default is unaffected */
+  g_assert_true (g_app_info_equal (def, appinfo4)); /* default is unaffected */
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo4));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo5));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo4));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo5));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -535,10 +535,10 @@ test_mime_default_last_used (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo4));
+  g_assert_true (g_app_info_equal (def, appinfo4));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo5));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo4));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo5));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo4));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -548,10 +548,10 @@ test_mime_default_last_used (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo5));
+  g_assert_true (g_app_info_equal (def, appinfo5));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo5));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo4));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo5));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo4));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -561,10 +561,10 @@ test_mime_default_last_used (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo5));
+  g_assert_true (g_app_info_equal (def, appinfo5));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo4));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo5));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo4));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo5));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -574,10 +574,10 @@ test_mime_default_last_used (void)
 
   def = g_app_info_get_default_for_type (contenttype, FALSE);
   list = g_app_info_get_recommended_for_type (contenttype);
-  g_assert (g_app_info_equal (def, appinfo5));
+  g_assert_true (g_app_info_equal (def, appinfo5));
   g_assert_cmpint (g_list_length (list), ==, 2);
-  g_assert (g_app_info_equal ((GAppInfo*)list->data, appinfo5));
-  g_assert (g_app_info_equal ((GAppInfo*)list->next->data, appinfo4));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->data, appinfo5));
+  g_assert_true (g_app_info_equal ((GAppInfo*)list->next->data, appinfo4));
   g_object_unref (def);
   g_list_free_full (list, g_object_unref);
 
@@ -586,13 +586,14 @@ test_mime_default_last_used (void)
 }
 
 static void
-test_scheme_handler (void)
+test_scheme_handler (Fixture       *fixture,
+                     gconstpointer  test_data)
 {
   GAppInfo *info, *info5;
 
   info5 = (GAppInfo*)g_desktop_app_info_new ("myapp5.desktop");
   info = g_app_info_get_default_for_uri_scheme ("ftp");
-  g_assert (g_app_info_equal (info, info5));
+  g_assert_true (g_app_info_equal (info, info5));
 
   g_object_unref (info);
   g_object_unref (info5);
@@ -601,23 +602,25 @@ test_scheme_handler (void)
 /* test that g_app_info_* ignores desktop files with nonexisting executables
  */
 static void
-test_mime_ignore_nonexisting (void)
+test_mime_ignore_nonexisting (Fixture       *fixture,
+                              gconstpointer  test_data)
 {
   GAppInfo *appinfo;
 
   appinfo = (GAppInfo*)g_desktop_app_info_new ("nosuchapp.desktop");
-  g_assert (appinfo == NULL);
+  g_assert_null (appinfo);
 }
 
 static void
-test_all (void)
+test_all (Fixture       *fixture,
+          gconstpointer  test_data)
 {
   GList *all, *l;
 
   all = g_app_info_get_all ();
 
   for (l = all; l; l = l->next)
-    g_assert (G_IS_APP_INFO (l->data));
+    g_assert_true (G_IS_APP_INFO (l->data));
 
   g_list_free_full (all, g_object_unref);
 }
@@ -625,17 +628,21 @@ test_all (void)
 int
 main (int argc, char *argv[])
 {
-  g_test_init (&argc, &argv, NULL);
-
-  setup ();
-
-  g_test_add_func ("/appinfo/mime/api", test_mime_api);
-  g_test_add_func ("/appinfo/mime/default", test_mime_default);
-  g_test_add_func ("/appinfo/mime/file", test_mime_file);
-  g_test_add_func ("/appinfo/mime/scheme-handler", test_scheme_handler);
-  g_test_add_func ("/appinfo/mime/default-last-used", test_mime_default_last_used);
-  g_test_add_func ("/appinfo/mime/ignore-nonexisting", test_mime_ignore_nonexisting);
-  g_test_add_func ("/appinfo/all", test_all);
+  g_test_init (&argc, &argv, G_TEST_OPTION_ISOLATE_DIRS, NULL);
+
+  g_test_add ("/appinfo/mime/api", Fixture, NULL, setup,
+              test_mime_api, teardown);
+  g_test_add ("/appinfo/mime/default", Fixture, NULL, setup,
+              test_mime_default, teardown);
+  g_test_add ("/appinfo/mime/file", Fixture, NULL, setup,
+              test_mime_file, teardown);
+  g_test_add ("/appinfo/mime/scheme-handler", Fixture, NULL, setup,
+              test_scheme_handler, teardown);
+  g_test_add ("/appinfo/mime/default-last-used", Fixture, NULL, setup,
+              test_mime_default_last_used, teardown);
+  g_test_add ("/appinfo/mime/ignore-nonexisting", Fixture, NULL, setup,
+              test_mime_ignore_nonexisting, teardown);
+  g_test_add ("/appinfo/all", Fixture, NULL, setup, test_all, teardown);
 
   return g_test_run ();
 }
diff --git a/gio/tests/mock-resolver.c b/gio/tests/mock-resolver.c
new file mode 100644 (file)
index 0000000..271aa2c
--- /dev/null
@@ -0,0 +1,169 @@
+/* GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2018 Igalia S.L.
+ *
+ * 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 "mock-resolver.h"
+
+struct _MockResolver
+{
+  GResolver parent_instance;
+  guint ipv4_delay_ms;
+  guint ipv6_delay_ms;
+  GList *ipv4_results;
+  GList *ipv6_results;
+  GError *ipv4_error;
+  GError *ipv6_error;
+};
+
+G_DEFINE_TYPE (MockResolver, mock_resolver, G_TYPE_RESOLVER)
+
+MockResolver *
+mock_resolver_new (void)
+{
+  return g_object_new (MOCK_TYPE_RESOLVER, NULL);
+}
+
+void
+mock_resolver_set_ipv4_delay_ms (MockResolver *self, guint delay_ms)
+{
+  self->ipv4_delay_ms = delay_ms;
+}
+
+static gpointer
+copy_object (gconstpointer obj, gpointer user_data)
+{
+  return g_object_ref (G_OBJECT (obj));
+}
+
+void
+mock_resolver_set_ipv4_results (MockResolver *self, GList *results)
+{
+  if (self->ipv4_results)
+    g_list_free_full (self->ipv4_results, g_object_unref);
+  self->ipv4_results = g_list_copy_deep (results, copy_object, NULL);
+}
+
+void
+mock_resolver_set_ipv4_error (MockResolver *self, GError *error)
+{
+  g_clear_error (&self->ipv4_error);
+  if (error)
+    self->ipv4_error = g_error_copy (error);
+}
+
+void
+mock_resolver_set_ipv6_delay_ms (MockResolver *self, guint delay_ms)
+{
+  self->ipv6_delay_ms = delay_ms;
+}
+
+void
+mock_resolver_set_ipv6_results (MockResolver *self, GList *results)
+{
+  if (self->ipv6_results)
+    g_list_free_full (self->ipv6_results, g_object_unref);
+  self->ipv6_results = g_list_copy_deep (results, copy_object, NULL);
+}
+
+void
+mock_resolver_set_ipv6_error (MockResolver *self, GError *error)
+{
+  g_clear_error (&self->ipv6_error);
+  if (error)
+    self->ipv6_error = g_error_copy (error);
+}
+
+static void
+do_lookup_by_name (GTask         *task,
+                   gpointer       source_object,
+                   gpointer       task_data,
+                   GCancellable  *cancellable)
+{
+  MockResolver *self = source_object;
+  GResolverNameLookupFlags flags = GPOINTER_TO_UINT(task_data);
+
+  if (flags == G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY)
+    {
+      g_usleep (self->ipv4_delay_ms * 1000);
+      if (self->ipv4_error)
+        g_task_return_error (task, g_error_copy (self->ipv4_error));
+      else
+        g_task_return_pointer (task, g_list_copy_deep (self->ipv4_results, copy_object, NULL), NULL);
+    }
+  else if (flags == G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY)
+    {
+      g_usleep (self->ipv6_delay_ms * 1000);
+      if (self->ipv6_error)
+        g_task_return_error (task, g_error_copy (self->ipv6_error));
+      else
+        g_task_return_pointer (task, g_list_copy_deep (self->ipv6_results, copy_object, NULL), NULL);
+    }
+  else
+    g_assert_not_reached ();
+}
+
+static void
+lookup_by_name_with_flags_async (GResolver                *resolver,
+                                 const gchar              *hostname,
+                                 GResolverNameLookupFlags  flags,
+                                 GCancellable             *cancellable,
+                                 GAsyncReadyCallback       callback,
+                                 gpointer                  user_data)
+{
+  GTask *task = g_task_new (resolver, cancellable, callback, user_data);
+  g_task_set_task_data (task, GUINT_TO_POINTER(flags), NULL);
+  g_task_run_in_thread (task, do_lookup_by_name);
+  g_object_unref (task);
+}
+
+static GList *
+lookup_by_name_with_flags_finish (GResolver     *resolver,
+                                  GAsyncResult  *result,
+                                  GError       **error)
+{
+  return g_task_propagate_pointer (G_TASK (result), error);
+}
+
+static void
+mock_resolver_finalize (GObject *object)
+{
+  MockResolver *self = (MockResolver*)object;
+
+  g_clear_error (&self->ipv4_error);
+  g_clear_error (&self->ipv6_error);
+  if (self->ipv6_results)
+    g_list_free_full (self->ipv6_results, g_object_unref);
+  if (self->ipv4_results)
+    g_list_free_full (self->ipv4_results, g_object_unref);
+
+  G_OBJECT_CLASS (mock_resolver_parent_class)->finalize (object);
+}
+
+static void
+mock_resolver_class_init (MockResolverClass *klass)
+{
+  GResolverClass *resolver_class = G_RESOLVER_CLASS (klass);
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  resolver_class->lookup_by_name_with_flags_async  = lookup_by_name_with_flags_async;
+  resolver_class->lookup_by_name_with_flags_finish = lookup_by_name_with_flags_finish;
+  object_class->finalize = mock_resolver_finalize;
+}
+
+static void
+mock_resolver_init (MockResolver *self)
+{
+}
diff --git a/gio/tests/mock-resolver.h b/gio/tests/mock-resolver.h
new file mode 100644 (file)
index 0000000..54391d0
--- /dev/null
@@ -0,0 +1,35 @@
+/* GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2018 Igalia S.L.
+ *
+ * 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/>.
+ */
+
+#pragma once
+
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+#define MOCK_TYPE_RESOLVER (mock_resolver_get_type())
+G_DECLARE_FINAL_TYPE (MockResolver, mock_resolver, MOCK, RESOLVER, GResolver)
+
+MockResolver *mock_resolver_new (void);
+void mock_resolver_set_ipv4_delay_ms (MockResolver *self, guint delay_ms);
+void mock_resolver_set_ipv4_results (MockResolver *self, GList *results);
+void mock_resolver_set_ipv4_error (MockResolver *self, GError *error);
+void mock_resolver_set_ipv6_delay_ms (MockResolver *self, guint delay_ms);
+void mock_resolver_set_ipv6_results (MockResolver *self, GList *results);
+void mock_resolver_set_ipv6_error (MockResolver *self, GError *error);
+G_END_DECLS
index 1a7f8e7..4a2718e 100644 (file)
@@ -1,4 +1,5 @@
 #include "config.h"
+#include "mock-resolver.h"
 
 #include <gio/gio.h>
 #include <gio/gnetworking.h>
@@ -416,6 +417,8 @@ test_loopback_sync (void)
 typedef struct {
   GList/*<owned GSocketAddress> */ *addrs;  /* owned */
   GMainLoop *loop;  /* owned */
+  guint delay_ms;
+  gint expected_error_code;
 } AsyncData;
 
 static void
@@ -430,7 +433,14 @@ got_addr (GObject *source_object, GAsyncResult *result, gpointer user_data)
   data = user_data;
 
   a = g_socket_address_enumerator_next_finish (enumerator, result, &error);
-  g_assert_no_error (error);
+
+  if (data->expected_error_code)
+    {
+      g_assert_error (error, G_IO_ERROR, data->expected_error_code);
+      g_clear_error (&error);
+    }
+  else
+    g_assert_no_error (error);
 
   if (a == NULL)
     {
@@ -443,6 +453,9 @@ got_addr (GObject *source_object, GAsyncResult *result, gpointer user_data)
       g_assert (G_IS_INET_SOCKET_ADDRESS (a));
       data->addrs = g_list_prepend (data->addrs, a);
 
+      if (data->delay_ms)
+        g_usleep (data->delay_ms * 1000);
+
       g_socket_address_enumerator_next_async (enumerator, NULL,
                                               got_addr, user_data);
     }
@@ -515,6 +528,336 @@ test_to_string (void)
   g_object_unref (addr);
 }
 
+static int
+sort_addresses (gconstpointer a, gconstpointer b)
+{
+  GSocketFamily family_a = g_inet_address_get_family (G_INET_ADDRESS (a));
+  GSocketFamily family_b = g_inet_address_get_family (G_INET_ADDRESS (b));
+
+  if (family_a == family_b)
+    return 0;
+  else if (family_a == G_SOCKET_FAMILY_IPV4)
+    return -1;
+  else
+    return 1;
+}
+
+static int
+sort_socket_addresses (gconstpointer a, gconstpointer b)
+{
+  GInetAddress *addr_a = g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (a));
+  GInetAddress *addr_b = g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (b));
+  return sort_addresses (addr_a, addr_b);
+}
+
+static void
+assert_list_matches_expected (GList *result, GList *expected)
+{
+  g_assert_cmpint (g_list_length (result), ==, g_list_length (expected));
+
+  /* Sort by ipv4 first which matches the expected list */
+  result = g_list_sort (result, sort_socket_addresses);
+
+  for (; result != NULL; result = result->next, expected = expected->next)
+    {
+      GInetAddress *address = g_inet_socket_address_get_address (G_INET_SOCKET_ADDRESS (result->data));
+      g_assert_true (g_inet_address_equal (address, expected->data));
+    }
+}
+
+typedef struct {
+  MockResolver *mock_resolver;
+  GResolver *original_resolver;
+  GList *input_ipv4_results;
+  GList *input_ipv6_results;
+  GList *input_all_results;
+  GSocketConnectable *addr;
+  GSocketAddressEnumerator *enumerator;
+  GMainLoop *loop;
+} HappyEyeballsFixture;
+
+static void
+happy_eyeballs_setup (HappyEyeballsFixture *fixture,
+                      gconstpointer         data)
+{
+  static const char * const ipv4_address_strings[] = { "1.1.1.1", "2.2.2.2" };
+  static const char * const ipv6_address_strings[] = { "ff::11", "ff::22" };
+  gsize i;
+
+  fixture->original_resolver = g_resolver_get_default ();
+  fixture->mock_resolver = mock_resolver_new ();
+  g_resolver_set_default (G_RESOLVER (fixture->mock_resolver));
+
+  for (i = 0; i < G_N_ELEMENTS (ipv4_address_strings); ++i)
+    {
+      GInetAddress *ipv4_addr = g_inet_address_new_from_string (ipv4_address_strings[i]);
+      GInetAddress *ipv6_addr = g_inet_address_new_from_string (ipv6_address_strings[i]);
+      fixture->input_ipv4_results = g_list_append (fixture->input_ipv4_results, ipv4_addr);
+      fixture->input_ipv6_results = g_list_append (fixture->input_ipv6_results, ipv6_addr);
+      fixture->input_all_results = g_list_append (fixture->input_all_results, ipv4_addr);
+      fixture->input_all_results = g_list_append (fixture->input_all_results, ipv6_addr);
+    }
+  fixture->input_all_results = g_list_sort (fixture->input_all_results, sort_addresses);
+  mock_resolver_set_ipv4_results (fixture->mock_resolver, fixture->input_ipv4_results);
+  mock_resolver_set_ipv6_results (fixture->mock_resolver, fixture->input_ipv6_results);
+
+  fixture->addr = g_network_address_new ("test.fake", 80);
+  fixture->enumerator = g_socket_connectable_enumerate (fixture->addr);
+
+  fixture->loop = g_main_loop_new (NULL, FALSE);
+}
+
+static void
+happy_eyeballs_teardown (HappyEyeballsFixture *fixture,
+                         gconstpointer         data)
+{
+  g_object_unref (fixture->addr);
+  g_object_unref (fixture->enumerator);
+  g_resolver_free_addresses (fixture->input_all_results);
+  g_list_free (fixture->input_ipv4_results);
+  g_list_free (fixture->input_ipv6_results);
+  g_resolver_set_default (fixture->original_resolver);
+  g_object_unref (fixture->original_resolver);
+  g_object_unref (fixture->mock_resolver);
+  g_main_loop_unref (fixture->loop);
+}
+
+static void
+test_happy_eyeballs_basic (HappyEyeballsFixture *fixture,
+                           gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+
+  data.delay_ms = 10;
+  data.loop = fixture->loop;
+
+  /* This just tests in the common case it gets all results */
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  assert_list_matches_expected (data.addrs, fixture->input_all_results);
+}
+
+static void
+test_happy_eyeballs_slow_ipv4 (HappyEyeballsFixture *fixture,
+                               gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+
+  /* If ipv4 dns response is a bit slow we just don't get them */
+
+  data.loop = fixture->loop;
+  mock_resolver_set_ipv4_delay_ms (fixture->mock_resolver, 25);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  assert_list_matches_expected (data.addrs, fixture->input_ipv6_results);
+}
+
+static void
+test_happy_eyeballs_slow_ipv6 (HappyEyeballsFixture *fixture,
+                               gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+
+  /* If ipv6 is a bit slow it waits for them */
+
+  data.loop = fixture->loop;
+  mock_resolver_set_ipv6_delay_ms (fixture->mock_resolver, 25);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  assert_list_matches_expected (data.addrs, fixture->input_all_results);
+}
+
+static void
+test_happy_eyeballs_very_slow_ipv6 (HappyEyeballsFixture *fixture,
+                                    gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+
+  /* If ipv6 is very slow we don't get them */
+
+  data.loop = fixture->loop;
+  mock_resolver_set_ipv6_delay_ms (fixture->mock_resolver, 200);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  assert_list_matches_expected (data.addrs, fixture->input_ipv4_results);
+}
+
+static void
+test_happy_eyeballs_slow_connection_and_ipv4 (HappyEyeballsFixture *fixture,
+                                              gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+
+  /* Even if the dns response is slow we still get them if our connection attempts
+   * take long enough. */
+
+  data.loop = fixture->loop;
+  data.delay_ms = 500;
+  mock_resolver_set_ipv4_delay_ms (fixture->mock_resolver, 200);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  assert_list_matches_expected (data.addrs, fixture->input_all_results);
+}
+
+static void
+test_happy_eyeballs_ipv6_error (HappyEyeballsFixture *fixture,
+                                gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+  GError *ipv6_error;
+
+  /* If ipv6 fails we still get ipv4. */
+
+  data.loop = fixture->loop;
+  ipv6_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv6 Broken");
+  mock_resolver_set_ipv6_error (fixture->mock_resolver, ipv6_error);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  assert_list_matches_expected (data.addrs, fixture->input_ipv4_results);
+
+  g_error_free (ipv6_error);
+}
+
+static void
+test_happy_eyeballs_ipv4_error (HappyEyeballsFixture *fixture,
+                                gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+  GError *ipv4_error;
+
+  /* If ipv4 fails we still get ipv6. */
+
+  data.loop = fixture->loop;
+  ipv4_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv4 Broken");
+  mock_resolver_set_ipv4_error (fixture->mock_resolver, ipv4_error);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  assert_list_matches_expected (data.addrs, fixture->input_ipv6_results);
+
+  g_error_free (ipv4_error);
+}
+
+static void
+test_happy_eyeballs_both_error (HappyEyeballsFixture *fixture,
+                                gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+  GError *ipv4_error, *ipv6_error;
+
+  /* If both fail we get an error. */
+
+  data.loop = fixture->loop;
+  data.expected_error_code = G_IO_ERROR_TIMED_OUT;
+  ipv4_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv4 Broken");
+  ipv6_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv6 Broken");
+
+  mock_resolver_set_ipv4_error (fixture->mock_resolver, ipv4_error);
+  mock_resolver_set_ipv6_error (fixture->mock_resolver, ipv6_error);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  g_assert_null (data.addrs);
+
+  g_error_free (ipv4_error);
+  g_error_free (ipv6_error);
+}
+
+static void
+test_happy_eyeballs_both_error_delays_1 (HappyEyeballsFixture *fixture,
+                                         gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+  GError *ipv4_error, *ipv6_error;
+
+  /* The same with some different timings */
+
+  data.loop = fixture->loop;
+  data.expected_error_code = G_IO_ERROR_TIMED_OUT;
+  ipv4_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv4 Broken");
+  ipv6_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv6 Broken");
+
+  mock_resolver_set_ipv4_error (fixture->mock_resolver, ipv4_error);
+  mock_resolver_set_ipv4_delay_ms (fixture->mock_resolver, 25);
+  mock_resolver_set_ipv6_error (fixture->mock_resolver, ipv6_error);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  g_assert_null (data.addrs);
+
+  g_error_free (ipv4_error);
+  g_error_free (ipv6_error);
+}
+
+static void
+test_happy_eyeballs_both_error_delays_2 (HappyEyeballsFixture *fixture,
+                                         gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+  GError *ipv4_error, *ipv6_error;
+
+  /* The same with some different timings */
+
+  data.loop = fixture->loop;
+  data.expected_error_code = G_IO_ERROR_TIMED_OUT;
+  ipv4_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv4 Broken");
+  ipv6_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv6 Broken");
+
+  mock_resolver_set_ipv4_error (fixture->mock_resolver, ipv4_error);
+  mock_resolver_set_ipv6_error (fixture->mock_resolver, ipv6_error);
+  mock_resolver_set_ipv6_delay_ms (fixture->mock_resolver, 25);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  g_assert_null (data.addrs);
+
+  g_error_free (ipv4_error);
+  g_error_free (ipv6_error);
+}
+
+static void
+test_happy_eyeballs_both_error_delays_3 (HappyEyeballsFixture *fixture,
+                                         gconstpointer         user_data)
+{
+  AsyncData data = { 0 };
+  GError *ipv4_error, *ipv6_error;
+
+  /* The same with some different timings */
+
+  data.loop = fixture->loop;
+  data.expected_error_code = G_IO_ERROR_TIMED_OUT;
+  ipv4_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv4 Broken");
+  ipv6_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv6 Broken");
+
+  mock_resolver_set_ipv4_error (fixture->mock_resolver, ipv4_error);
+  mock_resolver_set_ipv6_error (fixture->mock_resolver, ipv6_error);
+  mock_resolver_set_ipv6_delay_ms (fixture->mock_resolver, 200);
+
+  g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data);
+  g_main_loop_run (fixture->loop);
+
+  g_assert_null (data.addrs);
+
+  g_error_free (ipv4_error);
+  g_error_free (ipv6_error);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -560,5 +903,28 @@ main (int argc, char *argv[])
   g_test_add_func ("/network-address/loopback/async", test_loopback_async);
   g_test_add_func ("/network-address/to-string", test_to_string);
 
+  g_test_add ("/network-address/happy-eyeballs/basic", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_basic, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/slow-ipv4", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_slow_ipv4, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/slow-ipv6", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_slow_ipv6, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/very-slow-ipv6", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_very_slow_ipv6, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/slow-connection-and-ipv4", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_slow_connection_and_ipv4, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/ipv6-error", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_ipv6_error, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/ipv4-error", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_ipv4_error, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/both-error", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_both_error, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/both-error-delays-1", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_both_error_delays_1, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/both-error-delays-2", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_both_error_delays_2, happy_eyeballs_teardown);
+  g_test_add ("/network-address/happy-eyeballs/both-error-delays-3", HappyEyeballsFixture, NULL,
+              happy_eyeballs_setup, test_happy_eyeballs_both_error_delays_3, happy_eyeballs_teardown);
+
   return g_test_run ();
 }
index cadd62c..9c6866e 100644 (file)
@@ -74,7 +74,10 @@ test_network_monitor (void)
 
   for (ii = 0; ii < MAX_RUNS; ii++)
     {
-       g_test_trap_subprocess (NULL, 0, 0);
+       g_test_trap_subprocess (NULL,
+                               0,
+                               G_TEST_SUBPROCESS_INHERIT_STDOUT |
+                               G_TEST_SUBPROCESS_INHERIT_STDERR);
        g_test_trap_assert_passed ();
     }
 }
index 826eaec..b8c8710 100644 (file)
@@ -38,10 +38,13 @@ poll_source_callback (GPollableInputStream *in,
   gssize nread;
   gboolean *success = user_data;
 
+  g_assert_true (g_pollable_input_stream_is_readable (G_POLLABLE_INPUT_STREAM (in)));
+
   nread = g_pollable_input_stream_read_nonblocking (in, buf, 2, NULL, &error);
   g_assert_no_error (error);
   g_assert_cmpint (nread, ==, 2);
   g_assert_cmpstr (buf, ==, "x");
+  g_assert_false (g_pollable_input_stream_is_readable (G_POLLABLE_INPUT_STREAM (in)));
 
   *success = TRUE;
   return G_SOURCE_REMOVE;
@@ -65,9 +68,13 @@ write_callback (gpointer user_data)
   gssize nwrote;
   GError *error = NULL;
 
+  g_assert_true (g_pollable_output_stream_is_writable (G_POLLABLE_OUTPUT_STREAM (out)));
+
   nwrote = g_output_stream_write (out, buf, 2, NULL, &error);
   g_assert_no_error (error);
   g_assert_cmpint (nwrote, ==, 2);
+  g_assert_true (g_pollable_output_stream_is_writable (G_POLLABLE_OUTPUT_STREAM (out)));
+
 /* Give the pipe a few ticks to propagate the write for sockets. On my
  * iMac i7, 40 works, 30 doesn't. */
   g_usleep (80L);
index 3855ae2..8f6dccf 100644 (file)
@@ -772,6 +772,22 @@ g_fake_resolver_lookup_by_name_async (GResolver           *resolver,
   g_object_unref (task);
 }
 
+static void
+g_fake_resolver_lookup_by_name_with_flags_async (GResolver               *resolver,
+                                                 const gchar             *hostname,
+                                                 GResolverNameLookupFlags flags,
+                                                 GCancellable            *cancellable,
+                                                 GAsyncReadyCallback      callback,
+                                                 gpointer                 user_data)
+{
+  /* Note this isn't a real implementation as it ignores the flags */
+  g_fake_resolver_lookup_by_name_async (resolver,
+                                        hostname,
+                                        cancellable,
+                                        callback,
+                                        user_data);
+}
+
 static GList *
 g_fake_resolver_lookup_by_name_finish (GResolver            *resolver,
                                       GAsyncResult         *result,
@@ -785,9 +801,11 @@ g_fake_resolver_class_init (GFakeResolverClass *fake_class)
 {
   GResolverClass *resolver_class = G_RESOLVER_CLASS (fake_class);
 
-  resolver_class->lookup_by_name        = g_fake_resolver_lookup_by_name;
-  resolver_class->lookup_by_name_async  = g_fake_resolver_lookup_by_name_async;
-  resolver_class->lookup_by_name_finish = g_fake_resolver_lookup_by_name_finish;
+  resolver_class->lookup_by_name                   = g_fake_resolver_lookup_by_name;
+  resolver_class->lookup_by_name_async             = g_fake_resolver_lookup_by_name_async;
+  resolver_class->lookup_by_name_finish            = g_fake_resolver_lookup_by_name_finish;
+  resolver_class->lookup_by_name_with_flags_async  = g_fake_resolver_lookup_by_name_with_flags_async;
+  resolver_class->lookup_by_name_with_flags_finish = g_fake_resolver_lookup_by_name_finish;
 }
 
 
index 70d8c03..7196245 100644 (file)
@@ -558,6 +558,43 @@ test_resource_manual2 (void)
   g_resource_unref (resource);
 }
 
+/* Test building resources with external data option,
+ * where data is linked in as binary instead of compiled in.
+ * Checks if resources are automatically registered and
+ * data can be found and read. */
+static void
+test_resource_binary_linked (void)
+{
+  #ifndef __linux__
+  g_test_skip ("--external-data test only works on Linux");
+  return;
+  #else /* if __linux__ */
+  GError *error = NULL;
+  gboolean found;
+  gsize size;
+  guint32 flags;
+  GBytes *data;
+
+  found = g_resources_get_info ("/binary_linked/test1.txt",
+                               G_RESOURCE_LOOKUP_FLAGS_NONE,
+                               &size, &flags, &error);
+  g_assert_true (found);
+  g_assert_no_error (error);
+  g_assert_cmpint (size, ==, 6);
+  g_assert_cmpuint (flags, ==, 0);
+
+  data = g_resources_lookup_data ("/binary_linked/test1.txt",
+                                 G_RESOURCE_LOOKUP_FLAGS_NONE,
+                                 &error);
+  g_assert_nonnull (data);
+  g_assert_no_error (error);
+  size = g_bytes_get_size (data);
+  g_assert_cmpint (size, ==, 6);
+  g_assert_cmpstr (g_bytes_get_data (data, NULL), ==, "test1\n");
+  g_bytes_unref (data);
+  #endif /* if __linux__ */
+}
+
 static void
 test_resource_module (void)
 {
@@ -812,6 +849,50 @@ test_uri_file (void)
   g_resource_unref (resource);
 }
 
+static void
+test_resource_64k (void)
+{
+  GError *error = NULL;
+  gboolean found;
+  gsize size;
+  guint32 flags;
+  GBytes *data;
+  gchar **tokens;
+
+  found = g_resources_get_info ("/big_prefix/gresource-big-test.txt",
+                               G_RESOURCE_LOOKUP_FLAGS_NONE,
+                               &size, &flags, &error);
+  g_assert_true (found);
+  g_assert_no_error (error);
+
+  /* Check size: 100 of all lower case letters + newline char +
+   *             100 all upper case letters + newline char +
+   *             100 of all numbers between 0 to 9 + newline char
+   *             (for 12 iterations)
+   */
+
+  g_assert_cmpint (size, ==, (26 + 26 + 10) * (100 + 1) * 12);
+  g_assert_cmpuint (flags, ==, 0);
+  data = g_resources_lookup_data ("/big_prefix/gresource-big-test.txt",
+                                 G_RESOURCE_LOOKUP_FLAGS_NONE,
+                                 &error);
+  g_assert_nonnull (data);
+  g_assert_no_error (error);
+  size = g_bytes_get_size (data);
+
+  g_assert_cmpint (size, ==, (26 + 26 + 10) * (100 + 1) * 12);
+  tokens = g_strsplit ((const gchar *) g_bytes_get_data (data, NULL), "\n", -1);
+
+  /* check tokens[x] == entry at gresource-big-test.txt's line, where x = line - 1 */
+  g_assert_cmpstr (tokens[0], ==, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
+  g_assert_cmpstr (tokens[27], ==, "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
+  g_assert_cmpstr (tokens[183], ==, "7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777");
+  g_assert_cmpstr (tokens[600], ==, "QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ");
+  g_assert_cmpstr (tokens[742], ==, "8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888");
+  g_strfreev (tokens);
+  g_bytes_unref (data);
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -833,9 +914,11 @@ main (int   argc,
   g_test_add_func ("/resource/automatic", test_resource_automatic);
   /* This only uses automatic resources too, so it tests the constructors and destructors */
   g_test_add_func ("/resource/module", test_resource_module);
+  g_test_add_func ("/resource/binary-linked", test_resource_binary_linked);
 #endif
   g_test_add_func ("/resource/uri/query-info", test_uri_query_info);
   g_test_add_func ("/resource/uri/file", test_uri_file);
+  g_test_add_func ("/resource/64k", test_resource_64k);
 
   return g_test_run();
 }
index c808716..664fb3b 100644 (file)
@@ -33,12 +33,14 @@ cook_piece (void)
         {
          case 26:
           buffer[i++] = '\n';
+          G_GNUC_FALLTHROUGH;
          case 27:
           buffer[i++] = '\r';
           break;
 
          case 28:
           buffer[i++] = '\r';
+          G_GNUC_FALLTHROUGH;
          case 29:
           buffer[i++] = '\n';
           break;
diff --git a/gio/tests/slow-connect-preload.c b/gio/tests/slow-connect-preload.c
new file mode 100644 (file)
index 0000000..9fdb431
--- /dev/null
@@ -0,0 +1,43 @@
+/* GIO - GLib Input, Output and Streaming Library
+ *
+ * Copyright (C) 2018 Igalia S.L.
+ *
+ * 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 <unistd.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <stdio.h>
+#include <dlfcn.h>
+
+/* This is used in gsocketclient-slow.c used to test
+ * and get coverage on how GSocketClient reacts to
+ * slow connections.
+ */
+int
+connect (int                    sockfd,
+         const struct sockaddr *addr,
+         socklen_t              addrlen)
+{
+  static int (*real_connect)(int, const struct sockaddr *, socklen_t);
+
+  if (real_connect == NULL)
+    real_connect = dlsym (RTLD_NEXT, "connect");
+
+  /* This is long enough for multiple connection attempts to be done
+   * in parallel given that their timeout is 250ms */
+  usleep (600 * 1000);
+  return real_connect (sockfd, addr, addrlen);
+}
diff --git a/gio/tests/static-link.py b/gio/tests/static-link.py
new file mode 100755 (executable)
index 0000000..0af9b1a
--- /dev/null
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+# Copyright (C) 2018 Collabora Inc.
+#
+# 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: Xavier Claessens <xavier.claessens@collabora.com>
+
+import os
+import sys
+import tempfile
+import subprocess
+
+if not 'GLIB_TEST_COMPILATION' in os.environ:
+  print('''Test disabled because GLIB_TEST_COMPILATION is not set in the env.
+If you wish to run this test, set GLIB_TEST_COMPILATION=1 in the env,
+and make sure you have glib build dependencies installed, including
+meson.''')
+  sys.exit(0)
+
+if len(sys.argv) != 2:
+  print('Usage: {} <gio-2.0.pc dir>'.format(os.path.basename(sys.argv[0])))
+  sys.exit(1)
+
+test_dir = os.path.dirname(sys.argv[0])
+
+with tempfile.TemporaryDirectory() as builddir:
+  env = os.environ.copy()
+  env['PKG_CONFIG_PATH'] = sys.argv[1]
+  sourcedir = os.path.join(test_dir, 'static-link')
+
+  # Ensure we can static link and run a test app
+  subprocess.check_call(['meson', sourcedir, builddir], env=env)
+  subprocess.check_call(['ninja', '-C', builddir, 'test'], env=env)
+  # FIXME: This probably only works on Linux
+  out = subprocess.check_output(['ldd', os.path.join(builddir, 'test-static-link')], env=env).decode()
+  if 'libgio' in out:
+    print('test-static-link is dynamically linked on libgio')
+    exit(1)
diff --git a/gio/tests/static-link/app.c b/gio/tests/static-link/app.c
new file mode 100644 (file)
index 0000000..94baf60
--- /dev/null
@@ -0,0 +1,8 @@
+#include <gio/gio.h>
+
+int main(int argc, char *argv[])
+{
+  GApplication *app = g_application_new (NULL, 0);
+  g_object_unref (app);
+  return 0;
+}
diff --git a/gio/tests/static-link/meson.build b/gio/tests/static-link/meson.build
new file mode 100644 (file)
index 0000000..c0b638f
--- /dev/null
@@ -0,0 +1,8 @@
+project('test-static-link', 'c')
+
+# This is a dummy project that static links against installed gio.
+# See gio/tests/static-link.py.
+app = executable('test-static-link', 'app.c',
+  dependencies : dependency('gio-2.0', static : true)
+)
+test('test-static-link', app)
index 934262e..db1b2d4 100644 (file)
@@ -614,6 +614,46 @@ test_priority (void)
   g_assert_cmpint (ret3, ==, 3);
 }
 
+/* Test that getting and setting the task name works. */
+static void name_callback (GObject      *object,
+                           GAsyncResult *result,
+                           gpointer      user_data);
+
+static void
+test_name (void)
+{
+  GTask *t1 = NULL;
+  gchar *name1 = NULL;
+
+  t1 = g_task_new (NULL, NULL, name_callback, &name1);
+  g_task_set_name (t1, "some task");
+  g_task_return_boolean (t1, TRUE);
+  g_object_unref (t1);
+
+  g_main_loop_run (loop);
+
+  g_assert_cmpstr (name1, ==, "some task");
+
+  g_free (name1);
+}
+
+static void
+name_callback (GObject      *object,
+               GAsyncResult *result,
+               gpointer      user_data)
+{
+  gchar **name_out = user_data;
+  GError *local_error = NULL;
+
+  g_assert_null (*name_out);
+  *name_out = g_strdup (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_check_cancellable: cancellation overrides return value */
 
 enum {
@@ -793,6 +833,7 @@ run_in_thread_callback (GObject      *object,
   g_assert (g_async_result_get_user_data (result) == user_data);
   g_assert (!g_task_had_error (G_TASK (result)));
   g_assert_false (g_task_get_completed (G_TASK (result)));
+  g_assert_cmpstr (g_task_get_name (G_TASK (result)), ==, "test_run_in_thread name");
 
   ret = g_task_propagate_int (G_TASK (result), &error);
   g_assert_no_error (error);
@@ -816,6 +857,7 @@ run_in_thread_thread (GTask        *task,
   g_assert (task_data == g_task_get_task_data (task));
   g_assert (cancellable == g_task_get_cancellable (task));
   g_assert_false (g_task_get_completed (task));
+  g_assert_cmpstr (g_task_get_name (task), ==, "test_run_in_thread name");
 
   g_assert (g_thread_self () != main_thread);
 
@@ -837,13 +879,13 @@ test_run_in_thread (void)
   gboolean done = FALSE;
 
   task = g_task_new (NULL, NULL, run_in_thread_callback, &done);
+  g_task_set_name (task, "test_run_in_thread name");
   g_object_weak_ref (G_OBJECT (task), task_weak_notify, (gpointer)&weak_notify_ran);
   g_signal_connect (task, "notify::completed",
                     (GCallback) completed_cb, &notification_emitted);
 
   g_task_set_task_data (task, (gpointer)&thread_ran, NULL);
   g_task_run_in_thread (task, run_in_thread_thread);
-  g_object_unref (task);
 
   g_mutex_lock (&run_in_thread_mutex);
   while (!thread_ran)
@@ -858,6 +900,10 @@ test_run_in_thread (void)
   g_assert (done == TRUE);
   g_assert_true (notification_emitted);
 
+  g_assert_cmpstr (g_task_get_name (task), ==, "test_run_in_thread name");
+
+  g_object_unref (task);
+
   g_mutex_lock (&run_in_thread_mutex);
   while (!weak_notify_ran)
     g_cond_wait (&run_in_thread_cond, &run_in_thread_mutex);
@@ -1689,7 +1735,6 @@ test_return_on_cancel_atomic (void)
 
   g_task_set_task_data (task, (gpointer)&state, NULL);
   g_task_run_in_thread (task, return_on_cancel_atomic_thread);
-  g_object_unref (task);
 
   g_assert_cmpint (state, ==, 0);
 
@@ -1724,6 +1769,7 @@ test_return_on_cancel_atomic (void)
   g_object_unref (cancellable);
   g_mutex_unlock (&roca_mutex_1);
   g_mutex_unlock (&roca_mutex_2);
+  g_object_unref (task);
 }
 
 /* test_return_pointer: memory management of pointer returns */
@@ -1987,6 +2033,136 @@ test_legacy_error (void)
   g_assert (simple == NULL);
 }
 
+/* Various helper functions for the return tests below. */
+static void
+task_complete_cb (GObject *source,
+                  GAsyncResult *result,
+                  gpointer user_data)
+{
+  GTask *task = G_TASK (result);
+  guint *calls = user_data;
+
+  g_assert_cmpint (++*calls, <=, 1);
+
+  /* Propagate the result, so it’s removed from the task’s internal state. */
+  g_task_propagate_boolean (task, NULL);
+}
+
+static void
+return_twice (GTask *task)
+{
+  gboolean error_first = GPOINTER_TO_UINT (g_task_get_task_data (task));
+
+  if (error_first)
+    {
+      g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_UNKNOWN, "oh no");
+      g_task_return_boolean (task, TRUE);
+    }
+  else
+    {
+      g_task_return_boolean (task, TRUE);
+      g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_UNKNOWN, "oh no");
+    }
+}
+
+static gboolean
+idle_cb (gpointer user_data)
+{
+  GTask *task = user_data;
+  return_twice (task);
+  g_object_unref (task);
+
+  return G_SOURCE_REMOVE;
+}
+
+static void
+test_return_permutation (gboolean error_first,
+                         gboolean return_in_idle)
+{
+  guint calls = 0;
+  GTask *task = NULL;
+
+  g_test_bug ("https://gitlab.gnome.org/GNOME/glib/issues/1525");
+
+  task = g_task_new (NULL, NULL, task_complete_cb, &calls);
+  g_task_set_task_data (task, GUINT_TO_POINTER (error_first), NULL);
+
+  if (return_in_idle)
+    g_idle_add (idle_cb, g_object_ref (task));
+  else
+    return_twice (task);
+
+  while (calls == 0)
+    g_main_context_iteration (NULL, TRUE);
+
+  g_assert_cmpint (calls, ==, 1);
+
+  g_object_unref (task);
+}
+
+/* Test that calling g_task_return_boolean() after g_task_return_error(), when
+ * returning in an idle callback, correctly results in a critical warning. */
+static void
+test_return_in_idle_error_first (void)
+{
+  if (g_test_subprocess ())
+    {
+      test_return_permutation (TRUE, TRUE);
+      return;
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*CRITICAL*assertion '!task->ever_returned' failed*");
+}
+
+/* Test that calling g_task_return_error() after g_task_return_boolean(), when
+ * returning in an idle callback, correctly results in a critical warning. */
+static void
+test_return_in_idle_value_first (void)
+{
+  if (g_test_subprocess ())
+    {
+      test_return_permutation (FALSE, TRUE);
+      return;
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*CRITICAL*assertion '!task->ever_returned' failed*");
+}
+
+/* Test that calling g_task_return_boolean() after g_task_return_error(), when
+ * returning synchronously, correctly results in a critical warning. */
+static void
+test_return_error_first (void)
+{
+  if (g_test_subprocess ())
+    {
+      test_return_permutation (TRUE, FALSE);
+      return;
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*CRITICAL*assertion '!task->ever_returned' failed*");
+}
+
+/* Test that calling g_task_return_error() after g_task_return_boolean(), when
+ * returning synchronously, correctly results in a critical warning. */
+static void
+test_return_value_first (void)
+{
+  if (g_test_subprocess ())
+    {
+      test_return_permutation (FALSE, FALSE);
+      return;
+    }
+
+  g_test_trap_subprocess (NULL, 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*CRITICAL*assertion '!task->ever_returned' failed*");
+}
 
 int
 main (int argc, char **argv)
@@ -1994,6 +2170,7 @@ main (int argc, char **argv)
   int ret;
 
   g_test_init (&argc, &argv, NULL);
+  g_test_bug_base ("");
 
   loop = g_main_loop_new (NULL, FALSE);
   main_thread = g_thread_self ();
@@ -2008,6 +2185,7 @@ main (int argc, char **argv)
   g_test_add_func ("/gtask/no-callback", test_no_callback);
   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/check-cancellable", test_check_cancellable);
   g_test_add_func ("/gtask/return-if-cancelled", test_return_if_cancelled);
   g_test_add_func ("/gtask/run-in-thread", test_run_in_thread);
@@ -2021,6 +2199,10 @@ main (int argc, char **argv)
   g_test_add_func ("/gtask/return-pointer", test_return_pointer);
   g_test_add_func ("/gtask/object-keepalive", test_object_keepalive);
   g_test_add_func ("/gtask/legacy-error", test_legacy_error);
+  g_test_add_func ("/gtask/return/in-idle/error-first", test_return_in_idle_error_first);
+  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);
 
   ret = g_test_run();
 
index 885a21f..39d8769 100644 (file)
     <property name="FinallyNormalName" type="s" access="readwrite"/>
     <property name="ReadonlyProperty" type="s" access="read"/>
     <property name="WriteonlyProperty" type="s" access="write"/>
+    <property name="quiet" type="s" access="readwrite">
+      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="false"/>
+    </property>
+    <property name="quiet_too" type="s" access="readwrite">
+      <annotation name="org.freedesktop.DBus.Property.EmitsChangedSignal" value="const"/>
+    </property>
 
     <!-- unset properties -->
     <property name="unset_i" type="i" access="readwrite"/>
index 6876280..0323b47 100644 (file)
@@ -3,4 +3,9 @@
   <gresource prefix="/auto_loaded">
     <file>test1.txt</file>
   </gresource>
+  <!-- Test compiling the generated GResource C-code
+       that has a resouce entry size over 65536 bytes -->
+  <gresource prefix="/big_prefix">
+    <file>gresource-big-test.txt</file>
+  </gresource>
 </gresources>
diff --git a/gio/tests/test5.gresource.xml b/gio/tests/test5.gresource.xml
new file mode 100644 (file)
index 0000000..8e81a51
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+  <gresource prefix="/binary_linked">
+    <file>test1.txt</file>
+  </gresource>
+</gresources>
index db2511f..e1ba237 100644 (file)
@@ -27,7 +27,9 @@
 typedef struct
 {
   gchar *cert_pems[3];
+  gchar *cert_crlf_pem;
   gchar *key_pem;
+  gchar *key_crlf_pem;
   gchar *key8_pem;
 } Reference;
 
@@ -44,12 +46,12 @@ pem_parser (const Reference *ref)
   /* Check PEM parsing in certificate, private key order. */
   g_file_get_contents (g_test_get_filename (G_TEST_DIST, "cert-tests", "cert-key.pem", NULL), &pem, &pem_len, &error);
   g_assert_no_error (error);
-  g_assert (pem);
+  g_assert_nonnull (pem);
   g_assert_cmpuint (pem_len, >=, 10);
 
   cert = g_tls_certificate_new_from_pem (pem, -1, &error);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -79,11 +81,11 @@ pem_parser (const Reference *ref)
   /* Check PEM parsing in private key, certificate order */
   g_file_get_contents (g_test_get_filename (G_TEST_DIST, "cert-tests", "key-cert.pem", NULL), &pem, NULL, &error);
   g_assert_no_error (error);
-  g_assert (pem);
+  g_assert_nonnull (pem);
 
   cert = g_tls_certificate_new_from_pem (pem, -1, &error);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -101,11 +103,11 @@ pem_parser (const Reference *ref)
   /* Check certificate only PEM */
   g_file_get_contents (g_test_get_filename (G_TEST_DIST, "cert-tests", "cert1.pem", NULL), &pem, NULL, &error);
   g_assert_no_error (error);
-  g_assert (pem);
+  g_assert_nonnull (pem);
 
   cert = g_tls_certificate_new_from_pem (pem, -1, &error);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -114,7 +116,7 @@ pem_parser (const Reference *ref)
   g_assert_cmpstr (parsed_cert_pem, ==, ref->cert_pems[0]);
   g_free (parsed_cert_pem);
   parsed_cert_pem = NULL;
-  g_assert (parsed_key_pem == NULL);
+  g_assert_null (parsed_key_pem);
 
   g_free (pem);
   g_object_unref (cert);
@@ -122,12 +124,12 @@ pem_parser (const Reference *ref)
   /* Check error with private key only PEM */
   g_file_get_contents (g_test_get_filename (G_TEST_DIST, "cert-tests", "key.pem", NULL), &pem, NULL, &error);
   g_assert_no_error (error);
-  g_assert (pem);
+  g_assert_nonnull (pem);
 
   cert = g_tls_certificate_new_from_pem (pem, -1, &error);
   g_assert_error (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE);
   g_clear_error (&error);
-  g_assert (cert == NULL);
+  g_assert_null (cert);
   g_free (pem);
 }
 
@@ -145,12 +147,12 @@ pem_parser_handles_chain (const Reference *ref)
   /* Check that a chain with exactly three certificates is returned */
   g_file_get_contents (g_test_get_filename (G_TEST_DIST, "cert-tests", "cert-list.pem", NULL), &pem, NULL, &error);
   g_assert_no_error (error);
-  g_assert (pem);
+  g_assert_nonnull (pem);
 
   cert = original_cert = g_tls_certificate_new_from_pem (pem, -1, &error);
   g_free (pem);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -165,11 +167,11 @@ pem_parser_handles_chain (const Reference *ref)
 
   /* Now test the second cert */
   issuer = g_tls_certificate_get_issuer (cert);
-  g_assert (issuer);
+  g_assert_nonnull (issuer);
 
   cert = issuer;
   issuer = g_tls_certificate_get_issuer (cert);
-  g_assert (issuer);
+  g_assert_nonnull (issuer);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -179,12 +181,12 @@ pem_parser_handles_chain (const Reference *ref)
 
   /* Only the first cert should have a private key */
   parsed_key_pem = g_test_tls_connection_get_private_key_pem (cert);
-  g_assert (!parsed_key_pem);
+  g_assert_null (parsed_key_pem);
 
   /* Now test the final cert */
   cert = issuer;
   issuer = g_tls_certificate_get_issuer (cert);
-  g_assert (!issuer);
+  g_assert_null (issuer);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -193,7 +195,7 @@ pem_parser_handles_chain (const Reference *ref)
   g_clear_pointer (&parsed_cert_pem, g_free);
 
   parsed_key_pem = g_test_tls_connection_get_private_key_pem (cert);
-  g_assert (!parsed_key_pem);
+  g_assert_null (parsed_key_pem);
 
   g_object_unref (original_cert);
 }
@@ -209,7 +211,7 @@ from_file (const Reference *ref)
   cert = g_tls_certificate_new_from_file (g_test_get_filename (G_TEST_DIST, "cert-tests", "key-cert.pem", NULL),
                                           &error);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -236,7 +238,7 @@ from_files (const Reference *ref)
                                            g_test_get_filename (G_TEST_DIST, "cert-tests", "key.pem", NULL),
                                            &error);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -256,7 +258,23 @@ from_files (const Reference *ref)
                                            &error);
   g_assert_error (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE);
   g_clear_error (&error);
-  g_assert (cert == NULL);
+  g_assert_null (cert);
+
+  /* Missing header private key */
+  cert = g_tls_certificate_new_from_files (g_test_get_filename (G_TEST_DIST, "cert-tests", "cert1.pem", NULL),
+                                           g_test_get_filename (G_TEST_DIST, "cert-tests", "key_missing-header.pem", NULL),
+                                           &error);
+  g_assert_error (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE);
+  g_clear_error (&error);
+  g_assert_null (cert);
+
+  /* Missing footer private key */
+  cert = g_tls_certificate_new_from_files (g_test_get_filename (G_TEST_DIST, "cert-tests", "cert1.pem", NULL),
+                                           g_test_get_filename (G_TEST_DIST, "cert-tests", "key_missing-footer.pem", NULL),
+                                           &error);
+  g_assert_error (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE);
+  g_clear_error (&error);
+  g_assert_null (cert);
 
   /* Missing certificate */
   cert = g_tls_certificate_new_from_files (g_test_get_filename (G_TEST_DIST, "cert-tests", "key.pem", NULL),
@@ -264,7 +282,7 @@ from_files (const Reference *ref)
                                            &error);
   g_assert_error (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE);
   g_clear_error (&error);
-  g_assert (cert == NULL);
+  g_assert_null (cert);
 
   /* Using this method twice with a file containing both private key and
    * certificate as a way to inforce private key presence is a fair use
@@ -273,10 +291,36 @@ from_files (const Reference *ref)
                                            g_test_get_filename (G_TEST_DIST, "cert-tests", "key-cert.pem", NULL),
                                            &error);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
   g_object_unref (cert);
 }
 
+static void
+from_files_crlf (const Reference *ref)
+{
+  GTlsCertificate *cert;
+  gchar *parsed_cert_pem = NULL;
+  const gchar *parsed_key_pem = NULL;
+  GError *error = NULL;
+
+  cert = g_tls_certificate_new_from_files (g_test_get_filename (G_TEST_DIST, "cert-tests", "cert-crlf.pem", NULL),
+                                           g_test_get_filename (G_TEST_DIST, "cert-tests", "key-crlf.pem", NULL),
+                                           &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (cert);
+
+  g_object_get (cert,
+      "certificate-pem", &parsed_cert_pem,
+      NULL);
+  parsed_key_pem = g_test_tls_connection_get_private_key_pem (cert);
+  g_assert_cmpstr (parsed_cert_pem, ==, ref->cert_crlf_pem);
+  g_free (parsed_cert_pem);
+  parsed_cert_pem = NULL;
+  g_assert_cmpstr (parsed_key_pem, ==, ref->key_crlf_pem);
+  parsed_key_pem = NULL;
+
+  g_object_unref (cert);
+}
 
 static void
 from_files_pkcs8 (const Reference *ref)
@@ -290,7 +334,7 @@ from_files_pkcs8 (const Reference *ref)
                                            g_test_get_filename (G_TEST_DIST, "cert-tests", "key8.pem", NULL),
                                            &error);
   g_assert_no_error (error);
-  g_assert (cert);
+  g_assert_nonnull (cert);
 
   g_object_get (cert,
       "certificate-pem", &parsed_cert_pem,
@@ -306,6 +350,21 @@ from_files_pkcs8 (const Reference *ref)
 }
 
 static void
+from_files_pkcs8enc (const Reference *ref)
+{
+  GTlsCertificate *cert;
+  GError *error = NULL;
+
+  /* Mare sure an error is returned for encrypted key */
+  cert = g_tls_certificate_new_from_files (g_test_get_filename (G_TEST_DIST, "cert-tests", "cert1.pem", NULL),
+                                           g_test_get_filename (G_TEST_DIST, "cert-tests", "key8enc.pem", NULL),
+                                           &error);
+  g_assert_error (error, G_TLS_ERROR, G_TLS_ERROR_BAD_CERTIFICATE);
+  g_clear_error (&error);
+  g_assert_null (cert);
+}
+
+static void
 list_from_file (const Reference *ref)
 {
   GList *list, *l;
@@ -356,27 +415,37 @@ main (int   argc,
   path = g_test_build_filename (G_TEST_DIST, "cert-tests", "cert1.pem", NULL);
   g_file_get_contents (path, &ref.cert_pems[0], NULL, &error);
   g_assert_no_error (error);
-  g_assert (ref.cert_pems[0]);
+  g_assert_nonnull (ref.cert_pems[0]);
   g_free (path);
   path = g_test_build_filename (G_TEST_DIST, "cert-tests", "cert2.pem", NULL);
   g_file_get_contents (path, &ref.cert_pems[1], NULL, &error);
   g_assert_no_error (error);
-  g_assert (ref.cert_pems[1]);
+  g_assert_nonnull (ref.cert_pems[1]);
   g_free (path);
   path = g_test_build_filename (G_TEST_DIST, "cert-tests", "cert3.pem", NULL);
   g_file_get_contents (path, &ref.cert_pems[2], NULL, &error);
   g_assert_no_error (error);
-  g_assert (ref.cert_pems[2]);
+  g_assert_nonnull (ref.cert_pems[2]);
+  g_free (path);
+  path = g_test_build_filename (G_TEST_DIST, "cert-tests", "cert-crlf.pem", NULL);
+  g_file_get_contents (path, &ref.cert_crlf_pem, NULL, &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (ref.cert_crlf_pem);
   g_free (path);
   path = g_test_build_filename (G_TEST_DIST, "cert-tests", "key.pem", NULL);
   g_file_get_contents (path, &ref.key_pem, NULL, &error);
   g_assert_no_error (error);
-  g_assert (ref.key_pem);
+  g_assert_nonnull (ref.key_pem);
+  g_free (path);
+  path = g_test_build_filename (G_TEST_DIST, "cert-tests", "key-crlf.pem", NULL);
+  g_file_get_contents (path, &ref.key_crlf_pem, NULL, &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (ref.key_crlf_pem);
   g_free (path);
   path = g_test_build_filename (G_TEST_DIST, "cert-tests", "key8.pem", NULL);
   g_file_get_contents (path, &ref.key8_pem, NULL, &error);
   g_assert_no_error (error);
-  g_assert (ref.key8_pem);
+  g_assert_nonnull (ref.key8_pem);
   g_free (path);
 
   g_test_add_data_func ("/tls-certificate/pem-parser",
@@ -387,8 +456,12 @@ main (int   argc,
                         &ref, (GTestDataFunc)from_file);
   g_test_add_data_func ("/tls-certificate/from_files",
                         &ref, (GTestDataFunc)from_files);
+  g_test_add_data_func ("/tls-certificate/from_files_crlf",
+                        &ref, (GTestDataFunc)from_files_crlf);
   g_test_add_data_func ("/tls-certificate/from_files_pkcs8",
                         &ref, (GTestDataFunc)from_files_pkcs8);
+  g_test_add_data_func ("/tls-certificate/from_files_pkcs8enc",
+                        &ref, (GTestDataFunc)from_files_pkcs8enc);
   g_test_add_data_func ("/tls-certificate/list_from_file",
                         &ref, (GTestDataFunc)list_from_file);
 
@@ -397,7 +470,9 @@ main (int   argc,
   g_free (ref.cert_pems[0]);
   g_free (ref.cert_pems[1]);
   g_free (ref.cert_pems[2]);
+  g_free (ref.cert_crlf_pem);
   g_free (ref.key_pem);
+  g_free (ref.key_crlf_pem);
   g_free (ref.key8_pem);
 
   return rtv;
diff --git a/gio/tests/tls-database.c b/gio/tests/tls-database.c
new file mode 100644 (file)
index 0000000..1bad255
--- /dev/null
@@ -0,0 +1,75 @@
+/* GLib testing framework examples and tests
+ *
+ * Copyright (C) Matthew Waters <matthew@centricular.com>.
+ *
+ * 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 <gio/gio.h>
+
+#include "gtesttlsbackend.h"
+
+static void
+set_default_database (void)
+{
+  GTlsBackend *backend;
+  GTlsDatabase *default_db, *file_db, *test_db;
+  GError *error = NULL;
+  gchar *path;
+
+  backend = g_tls_backend_get_default ();
+  g_assert_nonnull (backend);
+
+  default_db = g_tls_backend_get_default_database (backend);
+  g_assert_nonnull (default_db);
+
+  path = g_test_build_filename (G_TEST_DIST, "cert-tests", "cert1.pem", NULL);
+  file_db = g_tls_file_database_new (path, &error);
+  g_assert_no_error (error);
+  g_assert_nonnull (file_db);
+
+  /* setting a default database makes get_default_database return that database */
+  g_tls_backend_set_default_database (backend, file_db);
+  test_db = g_tls_backend_get_default_database (backend);
+  g_assert_nonnull (test_db);
+  g_assert_true (test_db == file_db);
+  g_object_unref (test_db);
+
+  /* setting a NULL default database returns the original default database */
+  g_tls_backend_set_default_database (backend, NULL);
+  test_db = g_tls_backend_get_default_database (backend);
+  g_assert_nonnull (test_db);
+  g_assert_true (test_db == default_db);
+
+  g_object_unref (default_db);
+  g_object_unref (file_db);
+  g_object_unref (test_db);
+  g_free (path);
+}
+
+int
+main (int   argc,
+      char *argv[])
+{
+  g_test_init (&argc, &argv, NULL);
+
+  _g_test_tls_backend_get_type ();
+
+  g_test_add_func ("/tls-backend/set-default-database",
+                   set_default_database);
+
+  return g_test_run();
+}
index 4bf8fd0..1055585 100644 (file)
@@ -107,54 +107,14 @@ test_trash_symlinks (void)
 
   g_test_bug ("1522");
 
+  /* The test assumes that ~/.local always exists. */
   target = g_build_filename (g_get_home_dir (), ".local", NULL);
-
-  if (!g_file_test (target, G_FILE_TEST_IS_DIR))
-    {
-      gchar *message;
-
-      message = g_strdup_printf ("Directory '%s' does not exist", target);
-      g_test_skip (message);
-      g_free (message);
-      g_free (target);
-      return;
-    }
-
   target_mount = g_unix_mount_for (target, NULL);
-
-  if (target_mount == NULL)
-    {
-      gchar *message;
-
-      message = g_strdup_printf ("Unable to determine mount point for %s",
-                                 target);
-      g_test_skip (message);
-      g_free (message);
-      g_free (target);
-      return;
-    }
-
   g_assert_nonnull (target_mount);
   g_test_message ("Target: %s (mount: %s)", target, g_unix_mount_get_mount_path (target_mount));
 
   tmp = g_dir_make_tmp ("test-trashXXXXXX", &error);
-  g_assert_no_error (error);
-  g_assert_nonnull (tmp);
   tmp_mount = g_unix_mount_for (tmp, NULL);
-
-  if (tmp_mount == NULL)
-    {
-      gchar *message;
-
-      message = g_strdup_printf ("Unable to determine mount point for %s", tmp);
-      g_test_skip (message);
-      g_free (message);
-      g_unix_mount_free (target_mount);
-      g_free (target);
-      g_free (tmp);
-      return;
-    }
-
   g_assert_nonnull (tmp_mount);
   g_test_message ("Tmp: %s (mount: %s)", tmp, g_unix_mount_get_mount_path (tmp_mount));
 
index 1202892..2446d38 100644 (file)
@@ -56,6 +56,8 @@ static XdgCallbackList *callback_list = NULL;
 static XdgIconList *icon_list = NULL;
 static XdgIconList *generic_icon_list = NULL;
 
+static char **xdg_dirs = NULL;  /* NULL terminated */
+
 XdgMimeCache **_caches = NULL;
 static int n_caches = 0;
 
@@ -139,8 +141,8 @@ xdg_mime_init_from_directory (const char *directory)
 
   assert (directory != NULL);
 
-  file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache");
+  file_name = malloc (strlen (directory) + strlen ("/mime.cache") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/mime.cache");
   if (stat (file_name, &st) == 0)
     {
       XdgMimeCache *cache = _xdg_mime_cache_new_from_file (file_name);
@@ -159,8 +161,8 @@ xdg_mime_init_from_directory (const char *directory)
     }
   free (file_name);
 
-  file_name = malloc (strlen (directory) + strlen ("/mime/globs2") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/globs2");
+  file_name = malloc (strlen (directory) + strlen ("/globs2") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/globs2");
   if (stat (file_name, &st) == 0)
     {
       _xdg_mime_glob_read_from_file (global_hash, file_name, TRUE);
@@ -169,8 +171,8 @@ xdg_mime_init_from_directory (const char *directory)
   else
     {
       free (file_name);
-      file_name = malloc (strlen (directory) + strlen ("/mime/globs") + 1);
-      strcpy (file_name, directory); strcat (file_name, "/mime/globs");
+      file_name = malloc (strlen (directory) + strlen ("/globs") + 1);
+      strcpy (file_name, directory); strcat (file_name, "/globs");
       if (stat (file_name, &st) == 0)
         {
           _xdg_mime_glob_read_from_file (global_hash, file_name, FALSE);
@@ -182,8 +184,8 @@ xdg_mime_init_from_directory (const char *directory)
         }
     }
 
-  file_name = malloc (strlen (directory) + strlen ("/mime/magic") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/magic");
+  file_name = malloc (strlen (directory) + strlen ("/magic") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/magic");
   if (stat (file_name, &st) == 0)
     {
       _xdg_mime_magic_read_from_file (global_magic, file_name);
@@ -194,69 +196,81 @@ xdg_mime_init_from_directory (const char *directory)
       free (file_name);
     }
 
-  file_name = malloc (strlen (directory) + strlen ("/mime/aliases") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/aliases");
+  file_name = malloc (strlen (directory) + strlen ("/aliases") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/aliases");
   _xdg_mime_alias_read_from_file (alias_list, file_name);
   free (file_name);
 
-  file_name = malloc (strlen (directory) + strlen ("/mime/subclasses") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/subclasses");
+  file_name = malloc (strlen (directory) + strlen ("/subclasses") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/subclasses");
   _xdg_mime_parent_read_from_file (parent_list, file_name);
   free (file_name);
 
-  file_name = malloc (strlen (directory) + strlen ("/mime/icons") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/icons");
+  file_name = malloc (strlen (directory) + strlen ("/icons") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/icons");
   _xdg_mime_icon_read_from_file (icon_list, file_name);
   free (file_name);
 
-  file_name = malloc (strlen (directory) + strlen ("/mime/generic-icons") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/generic-icons");
+  file_name = malloc (strlen (directory) + strlen ("/generic-icons") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/generic-icons");
   _xdg_mime_icon_read_from_file (generic_icon_list, file_name);
   free (file_name);
 
   return FALSE; /* Keep processing */
 }
 
-/* Runs a command on all the directories in the search path */
+/* Set @xdg_dirs from the environment. It must not have been set already. */
 static void
-xdg_run_command_on_dirs (XdgDirectoryFunc  func,
-                        void             *user_data)
+xdg_init_dirs (void)
 {
-  const char *xdg_data_home;
-  const char *xdg_data_dirs;
+  const char *xdg_data_home, *home, *xdg_data_dirs;
   const char *ptr;
+  size_t n_dirs = 0;
+  size_t i, current_dir;
+
+  assert (xdg_dirs == NULL);
 
   xdg_data_home = getenv ("XDG_DATA_HOME");
-  if (xdg_data_home)
+  home = getenv ("HOME");
+  xdg_data_dirs = getenv ("XDG_DATA_DIRS");
+
+  if (xdg_data_dirs == NULL)
+    xdg_data_dirs = "/usr/local/share/:/usr/share/";
+
+  /* Work out how many dirs we’re dealing with. */
+  if (xdg_data_home != NULL || home != NULL)
+    n_dirs++;
+  n_dirs++;  /* initial entry in @xdg_data_dirs */
+  for (i = 0; xdg_data_dirs[i] != '\0'; i++)
+    if (xdg_data_dirs[i] == ':')
+      n_dirs++;
+
+  xdg_dirs = calloc (n_dirs + 1  /* NULL terminator */, sizeof (char *));
+  current_dir = 0;
+
+  /* $XDG_DATA_HOME */
+  if (xdg_data_home != NULL)
     {
-      if ((func) (xdg_data_home, user_data))
-       return;
+      char *mime_subdir;
+
+      mime_subdir = malloc (strlen (xdg_data_home) + strlen ("/mime/") + 1);
+      strcpy (mime_subdir, xdg_data_home);
+      strcat (mime_subdir, "/mime/");
+
+      xdg_dirs[current_dir++] = mime_subdir;
     }
-  else
+  else if (home != NULL)
     {
-      const char *home;
-
-      home = getenv ("HOME");
-      if (home != NULL)
-       {
-         char *guessed_xdg_home;
-         int stop_processing;
+      char *guessed_xdg_home;
 
-         guessed_xdg_home = malloc (strlen (home) + strlen ("/.local/share/") + 1);
-         strcpy (guessed_xdg_home, home);
-         strcat (guessed_xdg_home, "/.local/share/");
-         stop_processing = (func) (guessed_xdg_home, user_data);
-         free (guessed_xdg_home);
+      guessed_xdg_home = malloc (strlen (home) + strlen ("/.local/share/mime/") + 1);
+      strcpy (guessed_xdg_home, home);
+      strcat (guessed_xdg_home, "/.local/share/mime/");
 
-         if (stop_processing)
-           return;
-       }
+      xdg_dirs[current_dir++] = guessed_xdg_home;
     }
 
-  xdg_data_dirs = getenv ("XDG_DATA_DIRS");
-  if (xdg_data_dirs == NULL)
-    xdg_data_dirs = "/usr/local/share/:/usr/share/";
-
+  /* $XDG_DATA_DIRS */
   ptr = xdg_data_dirs;
 
   while (*ptr != '\000')
@@ -264,33 +278,83 @@ xdg_run_command_on_dirs (XdgDirectoryFunc  func,
       const char *end_ptr;
       char *dir;
       int len;
-      int stop_processing;
 
       end_ptr = ptr;
       while (*end_ptr != ':' && *end_ptr != '\000')
-       end_ptr ++;
+        end_ptr ++;
 
       if (end_ptr == ptr)
-       {
-         ptr++;
-         continue;
-       }
+        {
+          ptr++;
+          continue;
+        }
 
       if (*end_ptr == ':')
-       len = end_ptr - ptr;
+        len = end_ptr - ptr;
       else
-       len = end_ptr - ptr + 1;
-      dir = malloc (len + 1);
+        len = end_ptr - ptr + 1;
+      dir = malloc (len + strlen ("/mime/") + 1);
       strncpy (dir, ptr, len);
       dir[len] = '\0';
-      stop_processing = (func) (dir, user_data);
-      free (dir);
+      strcat (dir, "/mime/");
 
-      if (stop_processing)
-       return;
+      xdg_dirs[current_dir++] = dir;
 
       ptr = end_ptr;
     }
+
+  /* NULL terminator */
+  xdg_dirs[current_dir] = NULL;
+
+  need_reread = TRUE;
+}
+
+/* Runs a command on all the directories in the search path (@xdg_dirs). */
+static void
+xdg_run_command_on_dirs (XdgDirectoryFunc  func,
+                         void             *user_data)
+{
+  size_t i;
+
+  if (xdg_dirs == NULL)
+    xdg_init_dirs ();
+
+  for (i = 0; xdg_dirs[i] != NULL; i++)
+    {
+      if ((func) (xdg_dirs[i], user_data))
+        return;
+    }
+}
+
+/* Allows the calling code to override the directories used by xdgmime, without
+ * having to change environment variables in a running process (which is not
+ * thread safe). This is intended to be used by tests. The changes will be
+ * picked up by xdg_mime_init() next time public API is called.
+ *
+ * This will set @xdg_dirs. Directories in @dirs must be complete, including
+ * the conventional `/mime` subdirectory. This is to allow tests to override
+ * them without the need to create a subdirectory. */
+void
+xdg_mime_set_dirs (const char * const *dirs)
+{
+  size_t i;
+
+  for (i = 0; xdg_dirs != NULL && xdg_dirs[i] != NULL; i++)
+    free (xdg_dirs[i]);
+  if (xdg_dirs != NULL)
+    free (xdg_dirs[i]);
+  xdg_dirs = NULL;
+
+  if (dirs != NULL)
+    {
+      for (i = 0; dirs[i] != NULL; i++);
+      xdg_dirs = calloc (i + 1  /* NULL terminator */, sizeof (char*));
+      for (i = 0; dirs[i] != NULL; i++)
+        xdg_dirs[i] = strdup (dirs[i]);
+      xdg_dirs[i] = NULL;
+    }
+
+  need_reread = TRUE;
 }
 
 /* Checks file_path to make sure it has the same mtime as last time it was
@@ -344,8 +408,8 @@ xdg_check_dir (const char *directory,
   assert (directory != NULL);
 
   /* Check the mime.cache file */
-  file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache");
+  file_name = malloc (strlen (directory) + strlen ("/mime.cache") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/mime.cache");
   invalid = xdg_check_file (file_name, &exists);
   free (file_name);
   if (invalid)
@@ -359,8 +423,8 @@ xdg_check_dir (const char *directory,
     }
 
   /* Check the globs file */
-  file_name = malloc (strlen (directory) + strlen ("/mime/globs") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/globs");
+  file_name = malloc (strlen (directory) + strlen ("/globs") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/globs");
   invalid = xdg_check_file (file_name, NULL);
   free (file_name);
   if (invalid)
@@ -370,8 +434,8 @@ xdg_check_dir (const char *directory,
     }
 
   /* Check the magic file */
-  file_name = malloc (strlen (directory) + strlen ("/mime/magic") + 1);
-  strcpy (file_name, directory); strcat (file_name, "/mime/magic");
+  file_name = malloc (strlen (directory) + strlen ("/magic") + 1);
+  strcpy (file_name, directory); strcat (file_name, "/magic");
   invalid = xdg_check_file (file_name, NULL);
   free (file_name);
   if (invalid)
index cd20c77..b175de1 100644 (file)
@@ -127,6 +127,8 @@ int          xdg_mime_register_reload_callback     (XdgMimeCallback  callback,
 void         xdg_mime_remove_callback              (int              callback_id);
 #endif
 
+void xdg_mime_set_dirs (const char * const *dirs);
+
    /* Private versions of functions that don't call xdg_mime_init () */
 int          _xdg_mime_mime_type_equal             (const char *mime_a,
                                                    const char *mime_b);
index f64826b..c8b184e 100644 (file)
--- a/glib.supp
+++ b/glib.supp
 }
 
 {
+       glib-init-malloc
+       Memcheck:Leak
+       fun:malloc
+       ...
+       fun:g_quark_init
+       ...
+       fun:glib_init_ctor
+}
+
+{
+       glib-init-calloc
+       Memcheck:Leak
+       fun:calloc
+       ...
+       fun:g_quark_init
+       ...
+       fun:glib_init_ctor
+}
+
+{
        gobject-init-malloc
        Memcheck:Leak
        fun:malloc
 {
        g-type-class-init
        Memcheck:Leak
-       fun:calloc
+       fun:g_type_create_instance
        ...
        fun:type_class_init_Wm
 }
 }
 
 {
-       g-get-language-names
+       g-get-language-names-malloc
        Memcheck:Leak
        fun:malloc
        ...
 }
 
 {
+       g-get-language-names-calloc
+       Memcheck:Leak
+       fun:calloc
+       ...
+       fun:g_get_language_names
+}
+
+{
        g-static-mutex
        Memcheck:Leak
        fun:malloc
        ...
        fun:g_object_new_valist
 }
+
+# g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
+{
+       g_set_user_dirs_str
+       Memcheck:Leak
+       fun:malloc
+       ...
+       fun:set_str_if_different
+       fun:g_set_user_dirs
+}
+
+# g_set_user_dirs() deliberately leaks the previous cached g_get_user_*() values.
+{
+       g_set_user_dirs_strv
+       Memcheck:Leak
+       fun:malloc
+       ...
+       fun:set_strv_if_different
+       fun:g_set_user_dirs
+}
+
+# g_get_system_data_dirs() caches a one-time allocation
+{
+       g_get_system_data_dirs
+       Memcheck:Leak
+       fun:malloc
+       ...
+       fun:g_build_system_data_dirs
+       fun:g_get_system_data_dirs
+}
+
+# g_get_user_data_dir() caches a one-time allocation
+{
+       g_get_user_data_dir
+       Memcheck:Leak
+       fun:realloc
+       ...
+       fun:g_build_user_data_dir
+       fun:g_get_user_data_dir
+}
+
+# gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
+{
+       desktop_file_dirs_malloc
+       Memcheck:Leak
+       fun:malloc
+       ...
+       fun:desktop_file_dirs_lock
+}
+
+# gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
+{
+       desktop_file_dirs_realloc
+       Memcheck:Leak
+       fun:realloc
+       ...
+       fun:desktop_file_dirs_lock
+}
+
+# gdesktopappinfo.c caches a one-time allocation global table of @desktop_file_dirs.
+{
+       desktop_file_dir_unindexed_setup_search
+       Memcheck:Leak
+       fun:malloc
+       ...
+       fun:desktop_file_dir_unindexed_setup_search
+       fun:desktop_file_dir_unindexed_setup_search
+}
+
+# g_io_extension_point_register() caches a one-time allocation global table of @extension_points.
+{
+       g_io_extension_point_register
+       Memcheck:Leak
+       fun:calloc
+       ...
+       fun:g_io_extension_point_register
+}
+
+# g_strerror() caches a one-time allocation global table of @errors.
+{
+       g_strerror
+       Memcheck:Leak
+       fun:malloc
+       ...
+       fun:g_locale_to_utf8
+       fun:g_strerror
+}
+
+# g_socket_connection_factory_register_type() caches a one-time allocation global table of @connection_types.
+{
+       g_socket_connection_factory_register_type
+       Memcheck:Leak
+       fun:calloc
+       ...
+       fun:g_socket_connection_factory_register_type
+}
+
+# g_dbus_error_quark() never unregisters itself as a GDBusError domain, as it’s always available
+{
+       g_dbus_error_quark
+       Memcheck:Leak
+       fun:calloc
+       ...
+       fun:g_dbus_error_register_error_domain
+       fun:g_dbus_error_quark
+}
\ No newline at end of file
index 39163aa..e433d48 100644 (file)
@@ -191,6 +191,7 @@ libglib_2_0_la_SOURCES =    \
        gunicodeprivate.h       \
        gurifuncs.c             \
        gutils.c                \
+       gutilsprivate.h         \
        guuid.c                 \
        gvalgrind.h             \
        gvariant.h              \
@@ -456,6 +457,7 @@ gtester_LDADD        = libglib-2.0.la
 
 bin_SCRIPTS = gtester-report
 EXTRA_DIST += gtester-report.in
+CLEANFILES += gtester-report
 
 gtester-report: gtester-report.in Makefile
        $(AM_V_GEN) set -e ; \
index 23ef419..30f6e6a 100644 (file)
  * macro will not work on an array allocated on the heap, only static
  * arrays or arrays on the stack.
  */
+
+/**
+ * G_ALIGNOF
+ * @a: a type-name
+ *
+ * Return the minimum alignment required by the platform ABI for values of the given
+ * type. The address of a variable or struct member of the given type must always be
+ * a multiple of this alignment. For example, most platforms require int variables
+ * to be aligned at a 4-byte boundary, so `G_ALIGNOF (int)` is 4 on most platforms.
+ *
+ * Since: 2.60
+ */
+
 /* Miscellaneous Macros {{{1 */
 
 /**
  */
 
 /**
+ * G_GNUC_FALLTHROUGH:
+ *
+ * Expands to the GNU C fallthrough statement attribute if the compiler is gcc.
+ * This allows declaring case statement to explicitly fall through in switch
+ * statements. To enable this feature, use -Wimplicit-fallthrough during
+ * compilation.
+ *
+ * Put the attribute right before the case statement you want to fall through
+ * to.
+ *
+ * See the GNU C documentation for more details.
+ *
+ * Since: 2.60
+ */
+
+/**
  * G_GNUC_UNUSED:
  *
  * Expands to the GNU C unused function attribute if the compiler is gcc.
  */
 
 /**
+ * G_GNUC_STRFTIME:
+ * @format_idx: the index of the argument corresponding to
+ *     the format string (the arguments are numbered from 1)
+ *
+ * Expands to the GNU C strftime format function attribute if the compiler
+ * is gcc. This is used for declaring functions which take a format argument
+ * which is passed to strftime() or an API implementing its formats. It allows
+ * the compiler check the format passed to the function.
+ *
+ * See the
+ * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-3288)
+ * for details.
+ *
+ * Since: 2.60
+ */
+
+/**
  * G_GNUC_FORMAT:
  * @arg_idx: the index of the argument
  *
  * Since: 2.44
  */
 
+/* Warnings and Assertions {{{1 */
+
+/**
+ * SECTION:warnings
+ * @title: Warnings and Assertions
+ * @short_description: warnings and assertions to use in runtime code
+ *
+ * GLib defines several warning functions and assertions which can be used to
+ * warn of programmer errors when calling functions, and print error messages
+ * from command line programs.
+ *
+ * The g_return_if_fail(), g_return_val_if_fail(), g_return_if_reached() and
+ * g_return_val_if_reached() macros are intended as pre-condition assertions, to
+ * be used at the top of a public function to check that the function’s
+ * arguments are acceptable. Any failure of such a pre-condition assertion is
+ * considered a programming error on the part of the caller of the public API,
+ * and the program is considered to be in an undefined state afterwards. They
+ * are similar to the libc assert() function, but provide more context on
+ * failures.
+ *
+ * For example:
+ * |[<!-- language="C" -->
+ * gboolean
+ * g_dtls_connection_shutdown (GDtlsConnection  *conn,
+ *                             gboolean          shutdown_read,
+ *                             gboolean          shutdown_write,
+ *                             GCancellable     *cancellable,
+ *                             GError          **error)
+ * {
+ *   // local variable declarations
+ *
+ *   g_return_val_if_fail (G_IS_DTLS_CONNECTION (conn), FALSE);
+ *   g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
+ *   g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ *
+ *   // function body
+ *
+ *   return return_val;
+ * }
+ * ]|
+ *
+ * g_print(), g_printerr() and g_set_print_handler() 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.
+ */
+
 /* Windows Compatibility Functions {{{1 */
 
 /**
index 9c1bd8f..128d62d 100644 (file)
  * The data will be freed when its reference count drops to
  * zero.
  *
+ * The allocated data is guaranteed to be suitably aligned for any
+ * built-in type.
+ *
  * Returns: (transfer full) (not nullable): a pointer to the allocated memory
  *
  * Since: 2.58
@@ -177,7 +180,7 @@ g_atomic_rc_box_alloc (gsize block_size)
 {
   g_return_val_if_fail (block_size > 0, NULL);
 
-  return g_rc_box_alloc_full (block_size, TRUE, FALSE);
+  return g_rc_box_alloc_full (block_size, STRUCT_ALIGNMENT, TRUE, FALSE);
 }
 
 /**
@@ -192,6 +195,9 @@ g_atomic_rc_box_alloc (gsize block_size)
  * The data will be freed when its reference count drops to
  * zero.
  *
+ * The allocated data is guaranteed to be suitably aligned for any
+ * built-in type.
+ *
  * Returns: (transfer full) (not nullable): a pointer to the allocated memory
  *
  * Since: 2.58
@@ -201,7 +207,7 @@ g_atomic_rc_box_alloc0 (gsize block_size)
 {
   g_return_val_if_fail (block_size > 0, NULL);
 
-  return g_rc_box_alloc_full (block_size, TRUE, TRUE);
+  return g_rc_box_alloc_full (block_size, STRUCT_ALIGNMENT, TRUE, TRUE);
 }
 
 /**
@@ -262,7 +268,7 @@ gpointer
   g_return_val_if_fail (block_size > 0, NULL);
   g_return_val_if_fail (mem_block != NULL, NULL);
 
-  res = g_rc_box_alloc_full (block_size, TRUE, FALSE);
+  res = g_rc_box_alloc_full (block_size, STRUCT_ALIGNMENT, TRUE, FALSE);
   memcpy (res, mem_block, block_size);
 
   return res;
@@ -339,13 +345,15 @@ g_atomic_rc_box_release_full (gpointer       mem_block,
 
   if (g_atomic_ref_count_dec (&real_box->ref_count))
     {
+      char *real_mem = (char *) real_box - real_box->private_offset;
+
       TRACE (GLIB_RCBOX_RELEASE (mem_block, 1));
 
       if (clear_func != NULL)
         clear_func (mem_block);
 
       TRACE (GLIB_RCBOX_FREE (mem_block));
-      g_free (real_box);
+      g_free (real_mem);
     }
 }
 
index a6cbd57..3ef15cd 100644 (file)
@@ -318,15 +318,15 @@ g_array_get_element_size (GArray *array)
  * @free_segment: if %TRUE the actual element data is freed as well
  *
  * Frees the memory allocated for the #GArray. If @free_segment is
- * %TRUE it frees the memory block holding the elements as well and
- * also each element if @array has a @element_free_func set. Pass
+ * %TRUE it frees the memory block holding the elements as well. Pass
  * %FALSE if you want to free the #GArray wrapper but preserve the
- * underlying array for use elsewhere. If the reference count of @array
- * is greater than one, the #GArray wrapper is preserved but the size
- * of @array will be set to zero.
+ * underlying array for use elsewhere. If the reference count of
+ * @array is greater than one, the #GArray wrapper is preserved but
+ * the size of  @array will be set to zero.
  *
- * If array elements contain dynamically-allocated memory, they should
- * be freed separately.
+ * If array contents point to dynamically-allocated memory, they should
+ * be freed separately if @free_seg is %TRUE and no @clear_func
+ * function has been set for @array.
  *
  * This function is not thread-safe. If using a #GArray from multiple
  * threads, use only the atomic g_array_ref() and g_array_unref()
index 7d8b20d..ae9d5fe 100644 (file)
@@ -170,8 +170,11 @@ g_base64_encode_step (const guchar *in,
       /* len can only be 0 1 or 2 */
       switch(len)
         {
-        case 2: *saveout++ = *inptr++;
-        case 1: *saveout++ = *inptr++;
+        case 2:
+          *saveout++ = *inptr++;
+          G_GNUC_FALLTHROUGH;
+        case 1:
+          *saveout++ = *inptr++;
         }
       ((char *)save)[0] += len;
     }
index f75f261..60d2287 100644 (file)
@@ -162,24 +162,24 @@ struct _BookmarkAppInfo
 {
   gchar *name;
   gchar *exec;
-  
+
   guint count;
-  
+
   time_t stamp;
 };
 
 struct _BookmarkMetadata
 {
   gchar *mime_type;
-  
+
   GList *groups;
-  
+
   GList *applications;
   GHashTable *apps_by_name;
-  
+
   gchar *icon_href;
   gchar *icon_mime;
-  
+
   guint is_private : 1;
 };
 
@@ -213,7 +213,7 @@ struct _GBookmarkFile
 typedef enum
 {
   STATE_STARTED        = 0,
-  
+
   STATE_ROOT,
   STATE_BOOKMARK,
   STATE_TITLE,
@@ -226,7 +226,7 @@ typedef enum
   STATE_GROUP,
   STATE_MIME,
   STATE_ICON,
-  
+
   STATE_FINISHED
 } ParserState;
 
@@ -244,7 +244,7 @@ static BookmarkItem *g_bookmark_file_lookup_item (GBookmarkFile  *bookmark,
 static void          g_bookmark_file_add_item    (GBookmarkFile  *bookmark,
                                                  BookmarkItem   *item,
                                                  GError        **error);
-                                                      
+
 static time_t  timestamp_from_iso8601 (const gchar *iso_date);
 static gchar * timestamp_to_iso8601   (time_t       timestamp);
 
@@ -257,16 +257,16 @@ static BookmarkAppInfo *
 bookmark_app_info_new (const gchar *name)
 {
   BookmarkAppInfo *retval;
+
   g_warn_if_fail (name != NULL);
-  
+
   retval = g_slice_new (BookmarkAppInfo);
-  
+
   retval->name = g_strdup (name);
   retval->exec = NULL;
   retval->count = 0;
   retval->stamp = 0;
-  
+
   return retval;
 }
 
@@ -275,10 +275,10 @@ bookmark_app_info_free (BookmarkAppInfo *app_info)
 {
   if (!app_info)
     return;
-  
+
   g_free (app_info->name);
   g_free (app_info->exec);
-  
+
   g_slice_free (BookmarkAppInfo, app_info);
 }
 
@@ -324,24 +324,24 @@ static BookmarkMetadata *
 bookmark_metadata_new (void)
 {
   BookmarkMetadata *retval;
-  
+
   retval = g_slice_new (BookmarkMetadata);
 
   retval->mime_type = NULL;
-  
+
   retval->groups = NULL;
-  
+
   retval->applications = NULL;
   retval->apps_by_name = g_hash_table_new_full (g_str_hash,
                                                 g_str_equal,
                                                 NULL,
                                                 NULL);
-  
+
   retval->is_private = FALSE;
-  
+
   retval->icon_href = NULL;
   retval->icon_mime = NULL;
-  
+
   return retval;
 }
 
@@ -350,9 +350,9 @@ bookmark_metadata_free (BookmarkMetadata *metadata)
 {
   if (!metadata)
     return;
-  
+
   g_free (metadata->mime_type);
-    
+
   g_list_free_full (metadata->groups, g_free);
   g_list_free_full (metadata->applications, (GDestroyNotify) bookmark_app_info_free);
 
@@ -360,7 +360,7 @@ bookmark_metadata_free (BookmarkMetadata *metadata)
 
   g_free (metadata->icon_href);
   g_free (metadata->icon_mime);
-  
+
   g_slice_free (BookmarkMetadata, metadata);
 }
 
@@ -369,12 +369,12 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
 {
   GString *retval;
   gchar *buffer;
+
   if (!metadata->applications)
     return NULL;
-  
+
   retval = g_string_sized_new (1024);
-  
+
   /* metadata container */
   g_string_append (retval,
                   "      "
@@ -387,7 +387,7 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
     buffer = g_strconcat ("        "
                          "<" MIME_NAMESPACE_NAME ":" MIME_TYPE_ELEMENT " "
                          MIME_TYPE_ATTRIBUTE "=\"", metadata->mime_type, "\"/>\n",
-                         NULL);    
+                         NULL);
     g_string_append (retval, buffer);
     g_free (buffer);
   }
@@ -395,13 +395,13 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
   if (metadata->groups)
     {
       GList *l;
-      
+
       /* open groups container */
       g_string_append (retval,
                       "        "
                       "<" BOOKMARK_NAMESPACE_NAME
                       ":" BOOKMARK_GROUPS_ELEMENT ">\n");
-      
+
       for (l = g_list_last (metadata->groups); l != NULL; l = l->prev)
         {
           gchar *group_name;
@@ -418,31 +418,31 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
          g_free (buffer);
          g_free (group_name);
         }
-      
+
       /* close groups container */
       g_string_append (retval,
                       "        "
                       "</" BOOKMARK_NAMESPACE_NAME
                       ":" BOOKMARK_GROUPS_ELEMENT ">\n");
     }
-  
+
   if (metadata->applications)
     {
       GList *l;
-      
+
       /* open applications container */
       g_string_append (retval,
                       "        "
                       "<" BOOKMARK_NAMESPACE_NAME
                       ":" BOOKMARK_APPLICATIONS_ELEMENT ">\n");
-      
+
       for (l = g_list_last (metadata->applications); l != NULL; l = l->prev)
         {
           BookmarkAppInfo *app_info = (BookmarkAppInfo *) l->data;
           gchar *app_data;
 
          g_warn_if_fail (app_info != NULL);
-          
+
           app_data = bookmark_app_info_dump (app_info);
 
          if (app_data)
@@ -452,14 +452,14 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
              g_free (app_data);
            }
         }
-      
+
       /* close applications container */
       g_string_append (retval,
                       "        "
                       "</" BOOKMARK_NAMESPACE_NAME
                       ":" BOOKMARK_APPLICATIONS_ELEMENT ">\n");
     }
-  
+
   /* icon */
   if (metadata->icon_href)
     {
@@ -475,19 +475,19 @@ bookmark_metadata_dump (BookmarkMetadata *metadata)
 
       g_free (buffer);
     }
-  
+
   /* private hint */
   if (metadata->is_private)
     g_string_append (retval,
                     "        "
                     "<" BOOKMARK_NAMESPACE_NAME
                     ":" BOOKMARK_PRIVATE_ELEMENT "/>\n");
-  
+
   /* close metadata container */
   g_string_append (retval,
                   "      "
                   "</" XBEL_METADATA_ELEMENT ">\n");
-                          
+
   return g_string_free (retval, FALSE);
 }
 
@@ -500,21 +500,21 @@ static BookmarkItem *
 bookmark_item_new (const gchar *uri)
 {
   BookmarkItem *item;
+
   g_warn_if_fail (uri != NULL);
-  
+
   item = g_slice_new (BookmarkItem);
   item->uri = g_strdup (uri);
-  
+
   item->title = NULL;
   item->description = NULL;
-  
+
   item->added = (time_t) -1;
   item->modified = (time_t) -1;
   item->visited = (time_t) -1;
-  
+
   item->metadata = NULL;
-  
+
   return item;
 }
 
@@ -527,10 +527,10 @@ bookmark_item_free (BookmarkItem *item)
   g_free (item->uri);
   g_free (item->title);
   g_free (item->description);
-  
+
   if (item->metadata)
     bookmark_metadata_free (item->metadata);
-  
+
   g_slice_free (BookmarkItem, item);
 }
 
@@ -541,7 +541,7 @@ bookmark_item_dump (BookmarkItem *item)
   gchar *added, *visited, *modified;
   gchar *escaped_uri;
   gchar *buffer;
+
   /* at this point, we must have at least a registered application; if we don't
    * we don't screw up the bookmark file, and just skip this item
    */
@@ -550,9 +550,9 @@ bookmark_item_dump (BookmarkItem *item)
       g_warning ("Item for URI '%s' has no registered applications: skipping.", item->uri);
       return NULL;
     }
-  
+
   retval = g_string_sized_new (4096);
-  
+
   added = timestamp_to_iso8601 (item->added);
   modified = timestamp_to_iso8601 (item->modified);
   visited = timestamp_to_iso8601 (item->visited);
@@ -575,11 +575,11 @@ bookmark_item_dump (BookmarkItem *item)
   g_free (modified);
   g_free (added);
   g_free (buffer);
-  
+
   if (item->title)
     {
       gchar *escaped_title;
-      
+
       escaped_title = g_markup_escape_text (item->title, -1);
       buffer = g_strconcat ("    "
                             "<" XBEL_TITLE_ELEMENT ">",
@@ -591,11 +591,11 @@ bookmark_item_dump (BookmarkItem *item)
       g_free (escaped_title);
       g_free (buffer);
     }
-  
+
   if (item->description)
     {
       gchar *escaped_desc;
-      
+
       escaped_desc = g_markup_escape_text (item->description, -1);
       buffer = g_strconcat ("    "
                             "<" XBEL_DESC_ELEMENT ">",
@@ -607,11 +607,11 @@ bookmark_item_dump (BookmarkItem *item)
       g_free (escaped_desc);
       g_free (buffer);
     }
-  
+
   if (item->metadata)
     {
       gchar *metadata;
-      
+
       metadata = bookmark_metadata_dump (item->metadata);
       if (metadata)
         {
@@ -629,7 +629,7 @@ bookmark_item_dump (BookmarkItem *item)
     }
 
   g_string_append (retval, "  </" XBEL_BOOKMARK_ELEMENT ">\n");
-  
+
   return g_string_free (retval, FALSE);
 }
 
@@ -641,20 +641,20 @@ bookmark_item_lookup_app_info (BookmarkItem *item,
 
   if (!item->metadata)
     return NULL;
-  
+
   return g_hash_table_lookup (item->metadata->apps_by_name, app_name);
 }
 
 /*************************
  *    GBookmarkFile    *
  *************************/
+
 static void
 g_bookmark_file_init (GBookmarkFile *bookmark)
 {
   bookmark->title = NULL;
   bookmark->description = NULL;
-  
+
   bookmark->items = NULL;
   bookmark->items_by_uri = g_hash_table_new_full (g_str_hash,
                                                   g_str_equal,
@@ -670,11 +670,11 @@ 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;
     }
 }
@@ -682,9 +682,9 @@ g_bookmark_file_clear (GBookmarkFile *bookmark)
 struct _ParseData
 {
   ParserState state;
-  
+
   GHashTable *namespaces;
-  
+
   GBookmarkFile *bookmark_file;
   BookmarkItem *current_item;
 };
@@ -693,16 +693,16 @@ static ParseData *
 parse_data_new (void)
 {
   ParseData *retval;
-  
+
   retval = g_new (ParseData, 1);
-  
+
   retval->state = STATE_STARTED;
   retval->namespaces = g_hash_table_new_full (g_str_hash, g_str_equal,
                                              (GDestroyNotify) g_free,
                                              (GDestroyNotify) g_free);
   retval->bookmark_file = NULL;
   retval->current_item = NULL;
-  
+
   return retval;
 }
 
@@ -710,7 +710,7 @@ static void
 parse_data_free (ParseData *parse_data)
 {
   g_hash_table_destroy (parse_data->namespaces);
-  
+
   g_free (parse_data);
 }
 
@@ -728,9 +728,9 @@ parse_bookmark_element (GMarkupParseContext  *context,
   gint i;
   BookmarkItem *item;
   GError *add_error;
+
   g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_BOOKMARK));
-  
+
   i = 0;
   uri = added = modified = visited = NULL;
   for (attr = attribute_names[i]; attr != NULL; attr = attribute_names[++i])
@@ -757,7 +757,7 @@ parse_bookmark_element (GMarkupParseContext  *context,
           return;
         }
     }
-  
+
   if (!uri)
     {
       g_set_error (error, G_MARKUP_ERROR,
@@ -767,17 +767,17 @@ parse_bookmark_element (GMarkupParseContext  *context,
                   XBEL_BOOKMARK_ELEMENT);
       return;
     }
-  
+
   g_warn_if_fail (parse_data->current_item == NULL);
-  
+
   item = bookmark_item_new (uri);
-  
+
   if (added)
     item->added = timestamp_from_iso8601 (added);
-  
+
   if (modified)
     item->modified = timestamp_from_iso8601 (modified);
-  
+
   if (visited)
     item->visited = timestamp_from_iso8601 (visited);
 
@@ -788,12 +788,12 @@ parse_bookmark_element (GMarkupParseContext  *context,
   if (add_error)
     {
       bookmark_item_free (item);
-      
+
       g_propagate_error (error, add_error);
-      
+
       return;
-    }                                
-  
+    }
+
   parse_data->current_item = item;
 }
 
@@ -809,7 +809,7 @@ parse_application_element (GMarkupParseContext  *context,
   gint i;
   BookmarkItem *item;
   BookmarkAppInfo *ai;
-  
+
   g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_APPLICATION));
 
   i = 0;
@@ -838,7 +838,7 @@ parse_application_element (GMarkupParseContext  *context,
                   BOOKMARK_APPLICATION_ELEMENT);
       return;
     }
-  
+
   if (!exec)
     {
       g_set_error (error, G_MARKUP_ERROR,
@@ -849,24 +849,24 @@ parse_application_element (GMarkupParseContext  *context,
       return;
     }
 
-  g_warn_if_fail (parse_data->current_item != NULL);  
+  g_warn_if_fail (parse_data->current_item != NULL);
   item = parse_data->current_item;
-    
+
   ai = bookmark_item_lookup_app_info (item, name);
   if (!ai)
     {
       ai = bookmark_app_info_new (name);
-      
+
       if (!item->metadata)
        item->metadata = bookmark_metadata_new ();
-      
+
       item->metadata->applications = g_list_prepend (item->metadata->applications, ai);
       g_hash_table_replace (item->metadata->apps_by_name, ai->name, ai);
     }
 
   g_free (ai->exec);
   ai->exec = g_strdup (exec);
-  
+
   if (count)
     ai->count = atoi (count);
   else
@@ -897,9 +897,9 @@ parse_mime_type_element (GMarkupParseContext  *context,
   const gchar *attr;
   gint i;
   BookmarkItem *item;
-  
+
   g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_MIME));
-  
+
   i = 0;
   type = NULL;
   for (attr = attribute_names[i]; attr != NULL; attr = attribute_names[++i])
@@ -911,9 +911,9 @@ parse_mime_type_element (GMarkupParseContext  *context,
   if (!type)
     type = "application/octet-stream";
 
-  g_warn_if_fail (parse_data->current_item != NULL);  
+  g_warn_if_fail (parse_data->current_item != NULL);
   item = parse_data->current_item;
-    
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
 
@@ -933,9 +933,9 @@ parse_icon_element (GMarkupParseContext  *context,
   const gchar *attr;
   gint i;
   BookmarkItem *item;
-  
+
   g_warn_if_fail ((parse_data != NULL) && (parse_data->state == STATE_ICON));
-  
+
   i = 0;
   href = NULL;
   type = NULL;
@@ -947,7 +947,7 @@ parse_icon_element (GMarkupParseContext  *context,
         type = attribute_values[i];
     }
 
-  /* the "href" attribute is mandatory */       
+  /* the "href" attribute is mandatory */
   if (!href)
     {
       g_set_error (error, G_MARKUP_ERROR,
@@ -961,9 +961,9 @@ parse_icon_element (GMarkupParseContext  *context,
   if (!type)
     type = "application/octet-stream";
 
-  g_warn_if_fail (parse_data->current_item != NULL);  
+  g_warn_if_fail (parse_data->current_item != NULL);
   item = parse_data->current_item;
-    
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
 
@@ -980,7 +980,7 @@ parse_icon_element (GMarkupParseContext  *context,
  *
  * FIXME: this works on the assumption that the generator of the XBEL file
  * is either this code or is smart enough to place the namespace declarations
- * inside the main root node or inside the metadata node and does not redefine 
+ * inside the main root node or inside the metadata node and does not redefine
  * a namespace inside an inner node; this does *not* conform to the
  * XML-NS standard, although is a close approximation.  In order to make this
  * conformant to the XML-NS specification we should use a per-element
@@ -993,12 +993,12 @@ map_namespace_to_name (ParseData    *parse_data,
 {
   const gchar *attr;
   gint i;
+
   g_warn_if_fail (parse_data != NULL);
-  
+
   if (!attribute_names || !attribute_names[0])
     return;
-  
+
   i = 0;
   for (attr = attribute_names[i]; attr; attr = attribute_names[++i])
     {
@@ -1006,16 +1006,16 @@ map_namespace_to_name (ParseData    *parse_data,
         {
           gchar *namespace_name, *namespace_uri;
           gchar *p;
-          
+
           p = g_utf8_strchr (attr, -1, ':');
           if (p)
             p = g_utf8_next_char (p);
           else
             p = "default";
-          
+
           namespace_name = g_strdup (p);
           namespace_uri = g_strdup (attribute_values[i]);
-          
+
           g_hash_table_replace (parse_data->namespaces,
                                 namespace_name,
                                 namespace_uri);
@@ -1039,17 +1039,17 @@ is_element_full (ParseData   *parse_data,
   gchar *ns_uri, *ns_name;
   const gchar *p, *element_name;
   gboolean retval;
+
   g_warn_if_fail (parse_data != NULL);
   g_warn_if_fail (element_full != NULL);
-  
+
   if (!element)
     return FALSE;
-    
+
   /* no namespace requested: dumb element compare */
   if (!namespace)
     return (0 == strcmp (element_full, element));
-  
+
   /* search for namespace separator; if none found, assume we are under the
    * default namespace, and set ns_name to our "default" marker; if no default
    * namespace has been set, just do a plain comparison between @full_element
@@ -1066,21 +1066,21 @@ is_element_full (ParseData   *parse_data,
       ns_name = g_strdup ("default");
       element_name = element_full;
     }
-  
-  ns_uri = g_hash_table_lookup (parse_data->namespaces, ns_name);  
+
+  ns_uri = g_hash_table_lookup (parse_data->namespaces, ns_name);
   if (!ns_uri)
     {
       /* no default namespace found */
       g_free (ns_name);
-      
+
       return (0 == strcmp (element_full, element));
     }
 
   retval = (0 == strcmp (ns_uri, namespace) &&
             0 == strcmp (element_name, element));
-  
+
   g_free (ns_name);
-  
+
   return retval;
 }
 
@@ -1135,13 +1135,13 @@ start_element_raw_cb (GMarkupParseContext *context,
   ParseData *parse_data = (ParseData *) user_data;
 
   /* we must check for namespace declarations first
-   * 
+   *
    * XXX - we could speed up things by checking for namespace declarations
    * only on the root node, where they usually are; this would probably break
    * on streams not produced by us or by "smart" generators
    */
   map_namespace_to_name (parse_data, attribute_names, attribute_values);
-  
+
   switch (parse_data->state)
     {
     case STATE_STARTED:
@@ -1149,7 +1149,7 @@ start_element_raw_cb (GMarkupParseContext *context,
         {
           const gchar *attr;
           gint i;
-          
+
           i = 0;
           for (attr = attribute_names[i]; attr; attr = attribute_names[++i])
             {
@@ -1172,9 +1172,9 @@ start_element_raw_cb (GMarkupParseContext *context,
       else if (IS_ELEMENT (parse_data, element_name, XBEL_BOOKMARK_ELEMENT))
         {
           GError *inner_error = NULL;
-          
+
           parse_data->state = STATE_BOOKMARK;
-          
+
           parse_bookmark_element (context,
                                  parse_data,
                                  attribute_names,
@@ -1209,7 +1209,7 @@ start_element_raw_cb (GMarkupParseContext *context,
         {
           const gchar *attr;
           gint i;
-          
+
           i = 0;
           for (attr = attribute_names[i]; attr; attr = attribute_names[++i])
             {
@@ -1217,7 +1217,7 @@ start_element_raw_cb (GMarkupParseContext *context,
                   (0 == strcmp (attribute_values[i], BOOKMARK_METADATA_OWNER)))
                 {
                   parse_data->state = STATE_METADATA;
-                  
+
                   if (!parse_data->current_item->metadata)
                     parse_data->current_item->metadata = bookmark_metadata_new ();
                 }
@@ -1240,9 +1240,9 @@ start_element_raw_cb (GMarkupParseContext *context,
       else if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_ICON_ELEMENT))
         {
           GError *inner_error = NULL;
-          
+
          parse_data->state = STATE_ICON;
-          
+
           parse_icon_element (context,
                              parse_data,
                              attribute_names,
@@ -1254,9 +1254,9 @@ start_element_raw_cb (GMarkupParseContext *context,
       else if (IS_ELEMENT_NS (parse_data, element_name, MIME_NAMESPACE_URI, MIME_TYPE_ELEMENT))
         {
           GError *inner_error = NULL;
-          
+
           parse_data->state = STATE_MIME;
-          
+
           parse_mime_type_element (context,
                                   parse_data,
                                   attribute_names,
@@ -1276,9 +1276,9 @@ start_element_raw_cb (GMarkupParseContext *context,
       if (IS_ELEMENT_NS (parse_data, element_name, BOOKMARK_NAMESPACE_URI, BOOKMARK_APPLICATION_ELEMENT))
         {
           GError *inner_error = NULL;
-          
+
           parse_data->state = STATE_APPLICATION;
-          
+
           parse_application_element (context,
                                     parse_data,
                                     attribute_names,
@@ -1332,13 +1332,13 @@ end_element_raw_cb (GMarkupParseContext *context,
                     GError             **error)
 {
   ParseData *parse_data = (ParseData *) user_data;
-  
+
   if (IS_ELEMENT (parse_data, element_name, XBEL_ROOT_ELEMENT))
     parse_data->state = STATE_FINISHED;
   else if (IS_ELEMENT (parse_data, element_name, XBEL_BOOKMARK_ELEMENT))
     {
       parse_data->current_item = NULL;
-      
+
       parse_data->state = STATE_ROOT;
     }
   else if ((IS_ELEMENT (parse_data, element_name, XBEL_INFO_ELEMENT)) ||
@@ -1377,9 +1377,9 @@ text_raw_cb (GMarkupParseContext *context,
 {
   ParseData *parse_data = (ParseData *) user_data;
   gchar *payload;
-  
+
   payload = g_strndup (text, length);
-  
+
   switch (parse_data->state)
     {
     case STATE_TITLE:
@@ -1409,12 +1409,12 @@ text_raw_cb (GMarkupParseContext *context,
     case STATE_GROUP:
       {
       GList *groups;
-      
+
       g_warn_if_fail (parse_data->current_item != NULL);
-      
+
       if (!parse_data->current_item->metadata)
         parse_data->current_item->metadata = bookmark_metadata_new ();
-      
+
       groups = parse_data->current_item->metadata->groups;
       parse_data->current_item->metadata->groups = g_list_prepend (groups, g_strdup (payload));
       }
@@ -1433,7 +1433,7 @@ text_raw_cb (GMarkupParseContext *context,
       g_warn_if_reached ();
       break;
     }
-  
+
   g_free (payload);
 }
 
@@ -1456,7 +1456,7 @@ g_bookmark_file_parse (GBookmarkFile  *bookmark,
   ParseData *parse_data;
   GError *parse_error, *end_error;
   gboolean retval;
-  
+
   g_warn_if_fail (bookmark != NULL);
 
   if (!buffer)
@@ -1464,18 +1464,18 @@ g_bookmark_file_parse (GBookmarkFile  *bookmark,
 
   parse_error = NULL;
   end_error = NULL;
-  
+
   if (length == (gsize) -1)
     length = strlen (buffer);
 
   parse_data = parse_data_new ();
   parse_data->bookmark_file = bookmark;
-  
+
   context = g_markup_parse_context_new (&markup_parser,
                                        0,
                                        parse_data,
                                        (GDestroyNotify) parse_data_free);
-  
+
   retval = g_markup_parse_context_parse (context,
                                         buffer,
                                         length,
@@ -1488,7 +1488,7 @@ g_bookmark_file_parse (GBookmarkFile  *bookmark,
       if (!retval)
         g_propagate_error (error, end_error);
    }
+
   g_markup_parse_context_free (context);
 
   return retval;
@@ -1502,7 +1502,7 @@ g_bookmark_file_dump (GBookmarkFile  *bookmark,
   GString *retval;
   gchar *buffer;
   GList *l;
-  
+
   retval = g_string_sized_new (4096);
 
   g_string_append (retval,
@@ -1516,28 +1516,28 @@ g_bookmark_file_dump (GBookmarkFile  *bookmark,
                   "<" XBEL_ROOT_ELEMENT " " XBEL_VERSION_ATTRIBUTE "=\"" XBEL_VERSION "\"\n"
                   "      xmlns:" BOOKMARK_NAMESPACE_NAME "=\"" BOOKMARK_NAMESPACE_URI "\"\n"
                   "      xmlns:" MIME_NAMESPACE_NAME     "=\"" MIME_NAMESPACE_URI "\"\n>");
-  
+
   if (bookmark->title)
     {
       gchar *escaped_title;
+
       escaped_title = g_markup_escape_text (bookmark->title, -1);
 
       buffer = g_strconcat ("  "
                            "<" XBEL_TITLE_ELEMENT ">",
                            escaped_title,
                            "</" XBEL_TITLE_ELEMENT ">\n", NULL);
-      
+
       g_string_append (retval, buffer);
 
       g_free (buffer);
       g_free (escaped_title);
     }
-  
+
   if (bookmark->description)
     {
       gchar *escaped_desc;
+
       escaped_desc = g_markup_escape_text (bookmark->description, -1);
 
       buffer = g_strconcat ("  "
@@ -1549,7 +1549,7 @@ g_bookmark_file_dump (GBookmarkFile  *bookmark,
       g_free (buffer);
       g_free (escaped_desc);
     }
-  
+
   if (!bookmark->items)
     goto out;
   else
@@ -1562,29 +1562,29 @@ g_bookmark_file_dump (GBookmarkFile  *bookmark,
     {
       BookmarkItem *item = (BookmarkItem *) l->data;
       gchar *item_dump;
-      
+
       item_dump = bookmark_item_dump (item);
       if (!item_dump)
         continue;
-      
+
       retval = g_string_append (retval, item_dump);
-      
+
       g_free (item_dump);
     }
 
 out:
   g_string_append (retval, "</" XBEL_ROOT_ELEMENT ">");
-  
+
   if (length)
     *length = retval->len;
-  
+
   return g_string_free (retval, FALSE);
 }
 
 /**************
  *    Misc    *
  **************/
+
 /* converts a Unix timestamp in a ISO 8601 compliant string; you
  * should free the returned string.
  */
@@ -1638,11 +1638,11 @@ GBookmarkFile *
 g_bookmark_file_new (void)
 {
   GBookmarkFile *bookmark;
-  
+
   bookmark = g_new (GBookmarkFile, 1);
-  
+
   g_bookmark_file_init (bookmark);
-  
+
   return bookmark;
 }
 
@@ -1659,10 +1659,10 @@ g_bookmark_file_free (GBookmarkFile *bookmark)
 {
   if (!bookmark)
     return;
-  
+
   g_bookmark_file_clear (bookmark);
-  
-  g_free (bookmark);  
+
+  g_free (bookmark);
 }
 
 /**
@@ -1689,7 +1689,7 @@ g_bookmark_file_load_from_data (GBookmarkFile  *bookmark,
 {
   GError *parse_error;
   gboolean retval;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
 
   if (length == (gsize) -1)
@@ -1733,13 +1733,13 @@ g_bookmark_file_load_from_file (GBookmarkFile  *bookmark,
   gboolean ret = FALSE;
   gchar *buffer = NULL;
   gsize len;
-       
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (filename != NULL, FALSE);
 
   if (!g_file_get_contents (filename, &buffer, &len, error))
     goto out;
-  
+
   if (!g_bookmark_file_load_from_data (bookmark, buffer, len, error))
     goto out;
 
@@ -1811,10 +1811,10 @@ find_file_in_data_dirs (const gchar   *file,
       g_set_error_literal (error, G_BOOKMARK_FILE_ERROR,
                            G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND,
                            _("No valid bookmark file found in data dirs"));
-      
+
       return NULL;
     }
-  
+
   return path;
 }
 
@@ -1828,8 +1828,8 @@ find_file_in_data_dirs (const gchar   *file,
  * @error: return location for a #GError, or %NULL
  *
  * This function looks for a desktop bookmark file named @file in the
- * paths returned from g_get_user_data_dir() and g_get_system_data_dirs(), 
- * loads the file into @bookmark and returns the file's full path in 
+ * paths returned from g_get_user_data_dir() and g_get_system_data_dirs(),
+ * loads the file into @bookmark and returns the file's full path in
  * @full_path.  If the file could not be loaded then @error is
  * set to either a #GFileError or #GBookmarkFileError.
  *
@@ -1850,10 +1850,10 @@ g_bookmark_file_load_from_data_dirs (GBookmarkFile  *bookmark,
   gsize i, j;
   gchar *output_path;
   gboolean found_file;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (!g_path_is_absolute (file), FALSE);
-  
+
   user_data_dir = g_get_user_data_dir ();
   system_data_dirs = g_get_system_data_dirs ();
   all_data_dirs = g_new0 (gchar *, g_strv_length ((gchar **)system_data_dirs) + 2);
@@ -1873,7 +1873,7 @@ g_bookmark_file_load_from_data_dirs (GBookmarkFile  *bookmark,
       g_free (output_path);
 
       output_path = find_file_in_data_dirs (file, &data_dirs, &file_error);
-      
+
       if (file_error)
         {
           g_propagate_error (error, file_error);
@@ -1892,7 +1892,7 @@ g_bookmark_file_load_from_data_dirs (GBookmarkFile  *bookmark,
 
   if (found_file && full_path)
     *full_path = output_path;
-  else 
+  else
     g_free (output_path);
 
   g_strfreev (all_data_dirs);
@@ -1921,17 +1921,17 @@ g_bookmark_file_to_data (GBookmarkFile  *bookmark,
 {
   GError *write_error = NULL;
   gchar *retval;
-  
+
   g_return_val_if_fail (bookmark != NULL, NULL);
-  
+
   retval = g_bookmark_file_dump (bookmark, length, &write_error);
   if (write_error)
     {
       g_propagate_error (error, write_error);
-      
+
       return NULL;
     }
-      
+
   return retval;
 }
 
@@ -1960,13 +1960,13 @@ g_bookmark_file_to_file (GBookmarkFile  *bookmark,
 
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (filename != NULL, FALSE);
-  
+
   data_error = NULL;
   data = g_bookmark_file_to_data (bookmark, &len, &data_error);
   if (data_error)
     {
       g_propagate_error (error, data_error);
-      
+
       return FALSE;
     }
 
@@ -1975,14 +1975,14 @@ g_bookmark_file_to_file (GBookmarkFile  *bookmark,
   if (write_error)
     {
       g_propagate_error (error, write_error);
-      
+
       retval = FALSE;
     }
   else
     retval = TRUE;
 
   g_free (data);
-  
+
   return retval;
 }
 
@@ -1991,7 +1991,7 @@ g_bookmark_file_lookup_item (GBookmarkFile *bookmark,
                             const gchar   *uri)
 {
   g_warn_if_fail (bookmark != NULL && uri != NULL);
-  
+
   return g_hash_table_lookup (bookmark->items_by_uri, uri);
 }
 
@@ -2015,16 +2015,16 @@ g_bookmark_file_add_item (GBookmarkFile  *bookmark,
                   item->uri);
       return;
     }
-  
+
   bookmark->items = g_list_prepend (bookmark->items, item);
-  
+
   g_hash_table_replace (bookmark->items_by_uri,
                        item->uri,
                        item);
 
   if (item->added == (time_t) -1)
     item->added = time (NULL);
-  
+
   if (item->modified == (time_t) -1)
     item->modified = time (NULL);
 }
@@ -2038,7 +2038,7 @@ g_bookmark_file_add_item (GBookmarkFile  *bookmark,
  * Removes the bookmark for @uri from the bookmark file @bookmark.
  *
  * Returns: %TRUE if the bookmark was removed successfully.
- * 
+ *
  * Since: 2.12
  */
 gboolean
@@ -2047,12 +2047,12 @@ g_bookmark_file_remove_item (GBookmarkFile  *bookmark,
                             GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
-  
+
   if (!item)
     {
       g_set_error (error, G_BOOKMARK_FILE_ERROR,
@@ -2063,8 +2063,8 @@ g_bookmark_file_remove_item (GBookmarkFile  *bookmark,
     }
 
   bookmark->items = g_list_remove (bookmark->items, item);
-  g_hash_table_remove (bookmark->items_by_uri, item->uri);  
-  
+  g_hash_table_remove (bookmark->items_by_uri, item->uri);
+
   bookmark_item_free (item);
 
   return TRUE;
@@ -2087,7 +2087,7 @@ g_bookmark_file_has_item (GBookmarkFile *bookmark,
 {
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
-  
+
   return (NULL != g_hash_table_lookup (bookmark->items_by_uri, uri));
 }
 
@@ -2112,26 +2112,26 @@ g_bookmark_file_get_uris (GBookmarkFile *bookmark,
   GList *l;
   gchar **uris;
   gsize i, n_items;
-  
+
   g_return_val_if_fail (bookmark != NULL, NULL);
-  
-  n_items = g_list_length (bookmark->items); 
+
+  n_items = g_list_length (bookmark->items);
   uris = g_new0 (gchar *, n_items + 1);
 
   /* the items are stored in reverse order, so we walk the list backward */
   for (l = g_list_last (bookmark->items), i = 0; l != NULL; l = l->prev)
     {
       BookmarkItem *item = (BookmarkItem *) l->data;
-      
+
       g_warn_if_fail (item != NULL);
-      
+
       uris[i++] = g_strdup (item->uri);
     }
   uris[i] = NULL;
-  
+
   if (length)
     *length = i;
-  
+
   return uris;
 }
 
@@ -2156,7 +2156,7 @@ g_bookmark_file_set_title (GBookmarkFile *bookmark,
                           const gchar   *title)
 {
   g_return_if_fail (bookmark != NULL);
-  
+
   if (!uri)
     {
       g_free (bookmark->title);
@@ -2165,17 +2165,17 @@ g_bookmark_file_set_title (GBookmarkFile *bookmark,
   else
     {
       BookmarkItem *item;
-      
+
       item = g_bookmark_file_lookup_item (bookmark, uri);
       if (!item)
         {
           item = bookmark_item_new (uri);
           g_bookmark_file_add_item (bookmark, item, NULL);
         }
-      
+
       g_free (item->title);
       item->title = g_strdup (title);
-      
+
       item->modified = time (NULL);
     }
 }
@@ -2204,12 +2204,12 @@ g_bookmark_file_get_title (GBookmarkFile  *bookmark,
                           GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, NULL);
-  
+
   if (!uri)
     return g_strdup (bookmark->title);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2219,7 +2219,7 @@ g_bookmark_file_get_title (GBookmarkFile  *bookmark,
                   uri);
       return NULL;
     }
-  
+
   return g_strdup (item->title);
 }
 
@@ -2246,23 +2246,23 @@ g_bookmark_file_set_description (GBookmarkFile *bookmark,
 
   if (!uri)
     {
-      g_free (bookmark->description); 
+      g_free (bookmark->description);
       bookmark->description = g_strdup (description);
     }
   else
     {
       BookmarkItem *item;
-      
+
       item = g_bookmark_file_lookup_item (bookmark, uri);
       if (!item)
         {
           item = bookmark_item_new (uri);
           g_bookmark_file_add_item (bookmark, item, NULL);
         }
-      
+
       g_free (item->description);
       item->description = g_strdup (description);
-      
+
       item->modified = time (NULL);
     }
 }
@@ -2289,12 +2289,12 @@ g_bookmark_file_get_description (GBookmarkFile  *bookmark,
                                 GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, NULL);
 
   if (!uri)
     return g_strdup (bookmark->description);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2304,7 +2304,7 @@ g_bookmark_file_get_description (GBookmarkFile  *bookmark,
                   uri);
       return NULL;
     }
-  
+
   return g_strdup (item->description);
 }
 
@@ -2326,23 +2326,23 @@ g_bookmark_file_set_mime_type (GBookmarkFile *bookmark,
                               const gchar   *mime_type)
 {
   BookmarkItem *item;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
   g_return_if_fail (mime_type != NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       item = bookmark_item_new (uri);
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
-  
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
-  
+
   g_free (item->metadata->mime_type);
-  
+
   item->metadata->mime_type = g_strdup (mime_type);
   item->modified = time (NULL);
 }
@@ -2371,10 +2371,10 @@ g_bookmark_file_get_mime_type (GBookmarkFile  *bookmark,
                               GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, NULL);
   g_return_val_if_fail (uri != NULL, NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2384,7 +2384,7 @@ g_bookmark_file_get_mime_type (GBookmarkFile  *bookmark,
                   uri);
       return NULL;
     }
-  
+
   if (!item->metadata)
     {
       g_set_error (error, G_BOOKMARK_FILE_ERROR,
@@ -2393,7 +2393,7 @@ g_bookmark_file_get_mime_type (GBookmarkFile  *bookmark,
                   uri);
       return NULL;
     }
-  
+
   return g_strdup (item->metadata->mime_type);
 }
 
@@ -2415,20 +2415,20 @@ g_bookmark_file_set_is_private (GBookmarkFile *bookmark,
                                gboolean       is_private)
 {
   BookmarkItem *item;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       item = bookmark_item_new (uri);
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
-  
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
-  
+
   item->metadata->is_private = (is_private == TRUE);
   item->modified = time (NULL);
 }
@@ -2456,10 +2456,10 @@ g_bookmark_file_get_is_private (GBookmarkFile  *bookmark,
                                GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2469,7 +2469,7 @@ g_bookmark_file_get_is_private (GBookmarkFile  *bookmark,
                   uri);
       return FALSE;
     }
-  
+
   if (!item->metadata)
     {
       g_set_error (error, G_BOOKMARK_FILE_ERROR,
@@ -2478,7 +2478,7 @@ g_bookmark_file_get_is_private (GBookmarkFile  *bookmark,
                    uri);
       return FALSE;
     }
-  
+
   return item->metadata->is_private;
 }
 
@@ -2500,10 +2500,10 @@ g_bookmark_file_set_added (GBookmarkFile *bookmark,
                           time_t         added)
 {
   BookmarkItem *item;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2513,7 +2513,7 @@ g_bookmark_file_set_added (GBookmarkFile *bookmark,
 
   if (added == (time_t) -1)
     time (&added);
-  
+
   item->added = added;
   item->modified = added;
 }
@@ -2539,10 +2539,10 @@ g_bookmark_file_get_added (GBookmarkFile  *bookmark,
                           GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, (time_t) -1);
   g_return_val_if_fail (uri != NULL, (time_t) -1);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2552,7 +2552,7 @@ g_bookmark_file_get_added (GBookmarkFile  *bookmark,
                   uri);
       return (time_t) -1;
     }
-  
+
   return item->added;
 }
 
@@ -2579,20 +2579,20 @@ g_bookmark_file_set_modified (GBookmarkFile *bookmark,
                              time_t         modified)
 {
   BookmarkItem *item;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       item = bookmark_item_new (uri);
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
-  
+
   if (modified == (time_t) -1)
     time (&modified);
-  
+
   item->modified = modified;
 }
 
@@ -2617,10 +2617,10 @@ g_bookmark_file_get_modified (GBookmarkFile  *bookmark,
                              GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, (time_t) -1);
   g_return_val_if_fail (uri != NULL, (time_t) -1);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2630,7 +2630,7 @@ g_bookmark_file_get_modified (GBookmarkFile  *bookmark,
                   uri);
       return (time_t) -1;
     }
-  
+
   return item->modified;
 }
 
@@ -2644,7 +2644,7 @@ g_bookmark_file_get_modified (GBookmarkFile  *bookmark,
  *
  * If no bookmark for @uri is found then it is created.
  *
- * The "visited" time should only be set if the bookmark was launched, 
+ * The "visited" time should only be set if the bookmark was launched,
  * either using the command line retrieved by g_bookmark_file_get_app_info()
  * or by the default application for the bookmark's MIME type, retrieved
  * using g_bookmark_file_get_mime_type().  Changing the "visited" time
@@ -2658,10 +2658,10 @@ g_bookmark_file_set_visited (GBookmarkFile *bookmark,
                             time_t         visited)
 {
   BookmarkItem *item;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2671,7 +2671,7 @@ g_bookmark_file_set_visited (GBookmarkFile *bookmark,
 
   if (visited == (time_t) -1)
     time (&visited);
-  
+
   item->visited = visited;
 }
 
@@ -2696,10 +2696,10 @@ g_bookmark_file_get_visited (GBookmarkFile  *bookmark,
                             GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, (time_t) -1);
   g_return_val_if_fail (uri != NULL, (time_t) -1);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2709,7 +2709,7 @@ g_bookmark_file_get_visited (GBookmarkFile  *bookmark,
                   uri);
       return (time_t) -1;
     }
-  
+
   return item->visited;
 }
 
@@ -2738,10 +2738,10 @@ g_bookmark_file_has_group (GBookmarkFile  *bookmark,
 {
   BookmarkItem *item;
   GList *l;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2751,16 +2751,16 @@ g_bookmark_file_has_group (GBookmarkFile  *bookmark,
                   uri);
       return FALSE;
     }
-  
+
   if (!item->metadata)
     return FALSE;
-   
+
   for (l = item->metadata->groups; l != NULL; l = l->next)
     {
       if (strcmp (l->data, group) == 0)
         return TRUE;
     }
-  
+
   return FALSE;
 
 }
@@ -2784,26 +2784,26 @@ g_bookmark_file_add_group (GBookmarkFile *bookmark,
                           const gchar   *group)
 {
   BookmarkItem *item;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
   g_return_if_fail (group != NULL && group[0] != '\0');
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       item = bookmark_item_new (uri);
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
-  
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
-  
+
   if (!g_bookmark_file_has_group (bookmark, uri, group, NULL))
     {
       item->metadata->groups = g_list_prepend (item->metadata->groups,
                                                g_strdup (group));
-      
+
       item->modified = time (NULL);
     }
 }
@@ -2835,10 +2835,10 @@ g_bookmark_file_remove_group (GBookmarkFile  *bookmark,
 {
   BookmarkItem *item;
   GList *l;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2848,7 +2848,7 @@ g_bookmark_file_remove_group (GBookmarkFile  *bookmark,
                   uri);
       return FALSE;
     }
-  
+
   if (!item->metadata)
     {
       g_set_error (error, G_BOOKMARK_FILE_ERROR,
@@ -2857,7 +2857,7 @@ g_bookmark_file_remove_group (GBookmarkFile  *bookmark,
                    uri);
       return FALSE;
     }
-  
+
   for (l = item->metadata->groups; l != NULL; l = l->next)
     {
       if (strcmp (l->data, group) == 0)
@@ -2865,13 +2865,13 @@ g_bookmark_file_remove_group (GBookmarkFile  *bookmark,
           item->metadata->groups = g_list_remove_link (item->metadata->groups, l);
           g_free (l->data);
          g_list_free_1 (l);
-          
-          item->modified = time (NULL);          
-          
+
+          item->modified = time (NULL);
+
           return TRUE;
         }
     }
-  
+
   return FALSE;
 }
 
@@ -2898,24 +2898,24 @@ g_bookmark_file_set_groups (GBookmarkFile  *bookmark,
 {
   BookmarkItem *item;
   gsize i;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
   g_return_if_fail (groups != NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       item = bookmark_item_new (uri);
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
-  
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
 
   g_list_free_full (item->metadata->groups, g_free);
   item->metadata->groups = NULL;
-  
+
   if (groups)
     {
       for (i = 0; i < length && groups[i] != NULL; i++)
@@ -2956,10 +2956,10 @@ g_bookmark_file_get_groups (GBookmarkFile  *bookmark,
   GList *l;
   gsize len, i;
   gchar **retval;
-  
+
   g_return_val_if_fail (bookmark != NULL, NULL);
   g_return_val_if_fail (uri != NULL, NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -2969,15 +2969,15 @@ g_bookmark_file_get_groups (GBookmarkFile  *bookmark,
                   uri);
       return NULL;
     }
-  
+
   if (!item->metadata)
     {
       if (length)
        *length = 0;
-      
+
       return NULL;
     }
-  
+
   len = g_list_length (item->metadata->groups);
   retval = g_new0 (gchar *, len + 1);
   for (l = g_list_last (item->metadata->groups), i = 0;
@@ -2985,16 +2985,16 @@ g_bookmark_file_get_groups (GBookmarkFile  *bookmark,
        l = l->prev)
     {
       gchar *group_name = (gchar *) l->data;
-      
+
       g_warn_if_fail (group_name != NULL);
-      
+
       retval[i++] = g_strdup (group_name);
     }
   retval[i] = NULL;
-  
+
   if (length)
     *length = len;
-  
+
   return retval;
 }
 
@@ -3039,22 +3039,22 @@ g_bookmark_file_add_application (GBookmarkFile *bookmark,
 {
   BookmarkItem *item;
   gchar *app_name, *app_exec;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
       item = bookmark_item_new (uri);
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
-  
+
   if (name && name[0] != '\0')
     app_name = g_strdup (name);
   else
     app_name = g_strdup (g_get_application_name ());
-  
+
   if (exec && exec[0] != '\0')
     app_exec = g_strdup (exec);
   else
@@ -3066,7 +3066,7 @@ g_bookmark_file_add_application (GBookmarkFile *bookmark,
                                 -1,
                                 (time_t) -1,
                                 NULL);
-  
+
   g_free (app_exec);
   g_free (app_name);
 }
@@ -3099,11 +3099,11 @@ g_bookmark_file_remove_application (GBookmarkFile  *bookmark,
 {
   GError *set_error;
   gboolean retval;
-    
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
-  
+
   set_error = NULL;
   retval = g_bookmark_file_set_app_info (bookmark, uri,
                                         name,
@@ -3114,10 +3114,10 @@ g_bookmark_file_remove_application (GBookmarkFile  *bookmark,
   if (set_error)
     {
       g_propagate_error (error, set_error);
-      
+
       return FALSE;
     }
-  
+
   return retval;
 }
 
@@ -3145,11 +3145,11 @@ g_bookmark_file_has_application (GBookmarkFile  *bookmark,
                                 GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -3159,7 +3159,7 @@ g_bookmark_file_has_application (GBookmarkFile  *bookmark,
                   uri);
       return FALSE;
     }
-  
+
   return (NULL != bookmark_item_lookup_app_info (item, name));
 }
 
@@ -3218,12 +3218,12 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
 {
   BookmarkItem *item;
   BookmarkAppInfo *ai;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
   g_return_val_if_fail (exec != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -3241,7 +3241,7 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
          g_bookmark_file_add_item (bookmark, item, NULL);
        }
     }
-  
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
 
@@ -3260,7 +3260,7 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
       else
         {
           ai = bookmark_app_info_new (name);
-          
+
           item->metadata->applications = g_list_prepend (item->metadata->applications, ai);
           g_hash_table_replace (item->metadata->apps_by_name, ai->name, ai);
         }
@@ -3273,27 +3273,27 @@ g_bookmark_file_set_app_info (GBookmarkFile  *bookmark,
       bookmark_app_info_free (ai);
 
       item->modified = time (NULL);
-          
+
       return TRUE;
     }
   else if (count > 0)
     ai->count = count;
   else
     ai->count += 1;
-      
+
   if (stamp != (time_t) -1)
     ai->stamp = stamp;
   else
     ai->stamp = time (NULL);
-  
+
   if (exec && exec[0] != '\0')
     {
       g_free (ai->exec);
       ai->exec = g_shell_quote (exec);
     }
-  
+
   item->modified = time (NULL);
-  
+
   return TRUE;
 }
 
@@ -3304,7 +3304,7 @@ expand_exec_line (const gchar *exec_fmt,
 {
   GString *exec;
   gchar ch;
-  
+
   exec = g_string_sized_new (512);
   while ((ch = *exec_fmt++) != '\0')
    {
@@ -3313,7 +3313,7 @@ expand_exec_line (const gchar *exec_fmt,
          exec = g_string_append_c (exec, ch);
          continue;
        }
-     
+
      ch = *exec_fmt++;
      switch (ch)
        {
@@ -3345,7 +3345,7 @@ expand_exec_line (const gchar *exec_fmt,
          break;
        }
    }
-   
+
  out:
   return g_string_free (exec, FALSE);
 }
@@ -3389,11 +3389,11 @@ g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
 {
   BookmarkItem *item;
   BookmarkAppInfo *ai;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
   g_return_val_if_fail (name != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -3403,7 +3403,7 @@ g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
                   uri);
       return FALSE;
     }
-  
+
   ai = bookmark_item_lookup_app_info (item, name);
   if (!ai)
     {
@@ -3414,12 +3414,12 @@ g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
                   uri);
       return FALSE;
     }
-  
+
   if (exec)
     {
       GError *unquote_error = NULL;
       gchar *command_line;
-      
+
       command_line = g_shell_unquote (ai->exec, &unquote_error);
       if (unquote_error)
         {
@@ -3440,14 +3440,14 @@ g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
         }
       else
         g_free (command_line);
-    } 
+    }
 
   if (count)
     *count = ai->count;
-  
+
   if (stamp)
     *stamp = ai->stamp;
-  
+
   return TRUE;
 }
 
@@ -3460,7 +3460,7 @@ g_bookmark_file_get_app_info (GBookmarkFile  *bookmark,
  *
  * Retrieves the names of the applications that have registered the
  * bookmark for @uri.
- * 
+ *
  * In the event the URI cannot be found, %NULL is returned and
  * @error is set to #G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND.
  *
@@ -3479,10 +3479,10 @@ g_bookmark_file_get_applications (GBookmarkFile  *bookmark,
   GList *l;
   gchar **apps;
   gsize i, n_apps;
-  
+
   g_return_val_if_fail (bookmark != NULL, NULL);
   g_return_val_if_fail (uri != NULL, NULL);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -3492,45 +3492,45 @@ g_bookmark_file_get_applications (GBookmarkFile  *bookmark,
                   uri);
       return NULL;
     }
-  
+
   if (!item->metadata)
-    {     
+    {
       if (length)
        *length = 0;
-      
+
       return NULL;
     }
-  
+
   n_apps = g_list_length (item->metadata->applications);
   apps = g_new0 (gchar *, n_apps + 1);
-  
+
   for (l = g_list_last (item->metadata->applications), i = 0;
        l != NULL;
        l = l->prev)
     {
       BookmarkAppInfo *ai;
-      
+
       ai = (BookmarkAppInfo *) l->data;
-      
+
       g_warn_if_fail (ai != NULL);
       g_warn_if_fail (ai->name != NULL);
-      
+
       apps[i++] = g_strdup (ai->name);
     }
   apps[i] = NULL;
-  
+
   if (length)
     *length = i;
-  
+
   return apps;
 }
 
 /**
  * g_bookmark_file_get_size:
  * @bookmark: a #GBookmarkFile
- * 
+ *
  * Gets the number of bookmarks inside @bookmark.
- * 
+ *
  * Returns: the number of bookmarks
  *
  * Since: 2.12
@@ -3568,7 +3568,7 @@ g_bookmark_file_move_item (GBookmarkFile  *bookmark,
                           GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (old_uri != NULL, FALSE);
 
@@ -3594,7 +3594,7 @@ g_bookmark_file_move_item (GBookmarkFile  *bookmark,
         }
 
       g_hash_table_steal (bookmark->items_by_uri, item->uri);
-      
+
       g_free (item->uri);
       item->uri = g_strdup (new_uri);
       item->modified = time (NULL);
@@ -3634,7 +3634,7 @@ g_bookmark_file_set_icon (GBookmarkFile *bookmark,
                          const gchar   *mime_type)
 {
   BookmarkItem *item;
-  
+
   g_return_if_fail (bookmark != NULL);
   g_return_if_fail (uri != NULL);
 
@@ -3644,20 +3644,20 @@ g_bookmark_file_set_icon (GBookmarkFile *bookmark,
       item = bookmark_item_new (uri);
       g_bookmark_file_add_item (bookmark, item, NULL);
     }
-  
+
   if (!item->metadata)
     item->metadata = bookmark_metadata_new ();
-  
+
   g_free (item->metadata->icon_href);
   g_free (item->metadata->icon_mime);
-  
+
   item->metadata->icon_href = g_strdup (href);
-  
+
   if (mime_type && mime_type[0] != '\0')
     item->metadata->icon_mime = g_strdup (mime_type);
   else
     item->metadata->icon_mime = g_strdup ("application/octet-stream");
-  
+
   item->modified = time (NULL);
 }
 
@@ -3687,10 +3687,10 @@ g_bookmark_file_get_icon (GBookmarkFile  *bookmark,
                          GError        **error)
 {
   BookmarkItem *item;
-  
+
   g_return_val_if_fail (bookmark != NULL, FALSE);
   g_return_val_if_fail (uri != NULL, FALSE);
-  
+
   item = g_bookmark_file_lookup_item (bookmark, uri);
   if (!item)
     {
@@ -3700,15 +3700,15 @@ g_bookmark_file_get_icon (GBookmarkFile  *bookmark,
                   uri);
       return FALSE;
     }
-  
+
   if ((!item->metadata) || (!item->metadata->icon_href))
     return FALSE;
-  
+
   if (href)
     *href = g_strdup (item->metadata->icon_href);
-  
+
   if (mime_type)
     *mime_type = g_strdup (item->metadata->icon_mime);
-  
+
   return TRUE;
 }
index bfcd125..a97b33a 100644 (file)
@@ -576,15 +576,16 @@ g_get_language_names (void)
  *
  * g_get_language_names() returns g_get_language_names_with_category("LC_MESSAGES").
  *
- * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of strings owned by GLib
- *    that must not be modified or freed.
+ * Returns: (array zero-terminated=1) (transfer none): a %NULL-terminated array of strings owned by
+ *    the thread g_get_language_names_with_category was called from.
+ *    It must not be modified or freed. It must be copied if planned to be used in another thread.
  *
  * Since: 2.58
  */
 const gchar * const *
 g_get_language_names_with_category (const gchar *category_name)
 {
-  static GPrivate cache_private = G_PRIVATE_INIT ((void (*)(gpointer)) g_hash_table_remove_all);
+  static GPrivate cache_private = G_PRIVATE_INIT ((void (*)(gpointer)) g_hash_table_unref);
   GHashTable *cache = g_private_get (&cache_private);
   const gchar *languages;
   GLanguageNamesCache *name_cache;
index 5028647..3f6621b 100644 (file)
@@ -788,7 +788,8 @@ g_convert_with_fallback (const gchar *str,
                  inbytes_remaining = strlen (p);
                  break;
                }
-             /* fall thru if p is NULL */
+              /* if p is null */
+              G_GNUC_FALLTHROUGH;
            default:
               {
                 int errsv = errno;
index 02f5268..9136ba2 100644 (file)
@@ -2773,7 +2773,7 @@ format_z (GString *outstr,
 }
 
 #ifdef HAVE_LANGINFO_OUTDIGIT
-/** Initializes the array with UTF-8 encoded alternate digits suibtable for use
+/** Initializes the array with UTF-8 encoded alternate digits suitable for use
  * in current locale. Returns NULL when current locale does not use alternate
  * digits or there was an error converting them to UTF-8.
  */
index 9c8151c..c6edb83 100644 (file)
 #include "gquark.h"
 
 /* Environ array functions {{{1 */
+static gboolean
+g_environ_matches (const gchar *env, const gchar *variable, gsize len)
+{
+#ifdef G_OS_WIN32
+    /* TODO handle Unicode environment variable names */
+    /* Like filesystem paths, environment variables are case-insensitive. */
+    return g_ascii_strncasecmp (env, variable, len) == 0 && env[len] == '=';
+#else
+    return strncmp (env, variable, len) == 0 && env[len] == '=';
+#endif
+}
+
 static gint
 g_environ_find (gchar       **envp,
                 const gchar  *variable)
 {
-  gint len, i;
+  gsize len;
+  gint i;
 
   if (envp == NULL)
     return -1;
@@ -57,8 +70,7 @@ g_environ_find (gchar       **envp,
 
   for (i = 0; envp[i]; i++)
     {
-      if (strncmp (envp[i], variable, len) == 0 &&
-          envp[i][len] == '=')
+      if (g_environ_matches (envp[i], variable, len))
         return i;
     }
 
@@ -155,7 +167,7 @@ g_environ_unsetenv_internal (gchar        **envp,
                              const gchar   *variable,
                              gboolean       free_value)
 {
-  gint len;
+  gsize len;
   gchar **e, **f;
 
   len = strlen (variable);
@@ -166,7 +178,7 @@ g_environ_unsetenv_internal (gchar        **envp,
   e = f = envp;
   while (*e != NULL)
     {
-      if (strncmp (*e, variable, len) != 0 || (*e)[len] != '=')
+      if (!g_environ_matches (*e, variable, len))
         {
           *f = *e;
           f++;
index 1e7a771..d6beaa5 100644 (file)
@@ -2387,7 +2387,9 @@ g_path_get_basename (const gchar *file_name)
  * g_path_get_dirname:
  * @file_name: (type filename): the name of the file
  *
- * Gets the directory components of a file name.
+ * Gets the directory components of a file name. For example, the directory
+ * component of `/usr/bin/test` is `/usr/bin`. The directory component of `/`
+ * is `/`.
  *
  * If the file name has no directory components "." is returned.
  * The returned string should be freed when no longer needed.
index 433004c..dac5552 100644 (file)
@@ -31,7 +31,7 @@
 #include <string.h>  /* memset */
 
 #include "ghash.h"
-
+#include "gmacros.h"
 #include "glib-private.h"
 #include "gstrfuncs.h"
 #include "gatomic.h"
 #include "gslice.h"
 #include "grefcount.h"
 
+/* The following #pragma is here so we can do this...
+ *
+ *   #ifndef USE_SMALL_ARRAYS
+ *     is_big = TRUE;
+ *   #endif
+ *     return is_big ? *(((gpointer *) a) + index) : GUINT_TO_POINTER (*(((guint *) a) + index));
+ *
+ * ...instead of this...
+ *
+ *   #ifndef USE_SMALL_ARRAYS
+ *     return *(((gpointer *) a) + index);
+ *   #else
+ *     return is_big ? *(((gpointer *) a) + index) : GUINT_TO_POINTER (*(((guint *) a) + index));
+ *   #endif
+ *
+ * ...and still compile successfully when -Werror=duplicated-branches is passed. */
+
+#pragma GCC diagnostic ignored "-Wduplicated-branches"
+
 /**
  * SECTION:hash_tables
  * @title: Hash Tables
 #define HASH_IS_TOMBSTONE(h_) ((h_) == TOMBSTONE_HASH_VALUE)
 #define HASH_IS_REAL(h_) ((h_) >= 2)
 
+/* If int is smaller than void * on our arch, we start out with
+ * int-sized keys and values and resize to pointer-sized entries as
+ * needed. This saves a good amount of memory when the HT is being
+ * used with e.g. GUINT_TO_POINTER(). */
+
+#define BIG_ENTRY_SIZE (SIZEOF_VOID_P)
+#define SMALL_ENTRY_SIZE (SIZEOF_INT)
+
+#if SMALL_ENTRY_SIZE < BIG_ENTRY_SIZE
+# define USE_SMALL_ARRAYS
+#endif
+
 struct _GHashTable
 {
   gint             size;
@@ -221,9 +252,12 @@ struct _GHashTable
   gint             nnodes;
   gint             noccupied;  /* nnodes + tombstones */
 
-  gpointer        *keys;
+  guint            have_big_keys : 1;
+  guint            have_big_values : 1;
+
+  gpointer         keys;
   guint           *hashes;
-  gpointer        *values;
+  gpointer         values;
 
   GHashFunc        hash_func;
   GEqualFunc       key_equal_func;
@@ -251,7 +285,7 @@ typedef struct
 } RealIter;
 
 G_STATIC_ASSERT (sizeof (GHashTableIter) == sizeof (RealIter));
-G_STATIC_ASSERT (_g_alignof (GHashTableIter) >= _g_alignof (RealIter));
+G_STATIC_ASSERT (G_ALIGNOF (GHashTableIter) >= G_ALIGNOF (RealIter));
 
 /* Each table size has an associated prime modulo (the first prime
  * lower than the table size) used to find the initial bucket. Probing
@@ -297,19 +331,15 @@ static const gint prime_mod [] =
 static void
 g_hash_table_set_shift (GHashTable *hash_table, gint shift)
 {
-  gint i;
-  guint mask = 0;
-
   hash_table->size = 1 << shift;
   hash_table->mod  = prime_mod [shift];
 
-  for (i = 0; i < shift; i++)
-    {
-      mask <<= 1;
-      mask |= 1;
-    }
+  /* hash_table->size is always a power of two, so we can calculate the mask
+   * by simply subtracting 1 from it. The leading assertion ensures that
+   * we're really dealing with a power of two. */
 
-  hash_table->mask = mask;
+  g_assert ((hash_table->size & (hash_table->size - 1)) == 0);
+  hash_table->mask = hash_table->size - 1;
 }
 
 static gint
@@ -334,6 +364,67 @@ g_hash_table_set_shift_from_size (GHashTable *hash_table, gint size)
   g_hash_table_set_shift (hash_table, shift);
 }
 
+static inline gpointer
+g_hash_table_realloc_key_or_value_array (gpointer a, guint size, G_GNUC_UNUSED gboolean is_big)
+{
+#ifdef USE_SMALL_ARRAYS
+  return g_realloc (a, size * (is_big ? BIG_ENTRY_SIZE : SMALL_ENTRY_SIZE));
+#else
+  return g_renew (gpointer, a, size);
+#endif
+}
+
+static inline gpointer
+g_hash_table_fetch_key_or_value (gpointer a, guint index, gboolean is_big)
+{
+#ifndef USE_SMALL_ARRAYS
+  is_big = TRUE;
+#endif
+  return is_big ? *(((gpointer *) a) + index) : GUINT_TO_POINTER (*(((guint *) a) + index));
+}
+
+static inline void
+g_hash_table_assign_key_or_value (gpointer a, guint index, gboolean is_big, gpointer v)
+{
+#ifndef USE_SMALL_ARRAYS
+  is_big = TRUE;
+#endif
+  if (is_big)
+    *(((gpointer *) a) + index) = v;
+  else
+    *(((guint *) a) + index) = GPOINTER_TO_UINT (v);
+}
+
+static inline gpointer
+g_hash_table_evict_key_or_value (gpointer a, guint index, gboolean is_big, gpointer v)
+{
+#ifndef USE_SMALL_ARRAYS
+  is_big = TRUE;
+#endif
+  if (is_big)
+    {
+      gpointer r = *(((gpointer *) a) + index);
+      *(((gpointer *) a) + index) = v;
+      return r;
+    }
+  else
+    {
+      gpointer r = GUINT_TO_POINTER (*(((guint *) a) + index));
+      *(((guint *) a) + index) = GPOINTER_TO_UINT (v);
+      return r;
+    }
+}
+
+static inline guint
+g_hash_table_hash_to_index (GHashTable *hash_table, guint hash)
+{
+  /* Multiply the hash by a small prime before applying the modulo. This
+   * prevents the table from becoming densely packed, even with a poor hash
+   * function. A densely packed table would have poor performance on
+   * workloads with many failed lookups or a high degree of churn. */
+  return (hash * 11) % hash_table->mod;
+}
+
 /*
  * g_hash_table_lookup_node:
  * @hash_table: our #GHashTable
@@ -382,7 +473,7 @@ g_hash_table_lookup_node (GHashTable    *hash_table,
 
   *hash_return = hash_value;
 
-  node_index = hash_value % hash_table->mod;
+  node_index = g_hash_table_hash_to_index (hash_table, hash_value);
   node_hash = hash_table->hashes[node_index];
 
   while (!HASH_IS_UNUSED (node_hash))
@@ -393,7 +484,7 @@ g_hash_table_lookup_node (GHashTable    *hash_table,
        */
       if (node_hash == hash_value)
         {
-          gpointer node_key = hash_table->keys[node_index];
+          gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
 
           if (hash_table->key_equal_func)
             {
@@ -443,15 +534,15 @@ g_hash_table_remove_node (GHashTable   *hash_table,
   gpointer key;
   gpointer value;
 
-  key = hash_table->keys[i];
-  value = hash_table->values[i];
+  key = g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys);
+  value = g_hash_table_fetch_key_or_value (hash_table->values, i, hash_table->have_big_values);
 
   /* Erect tombstone */
   hash_table->hashes[i] = TOMBSTONE_HASH_VALUE;
 
   /* Be GC friendly */
-  hash_table->keys[i] = NULL;
-  hash_table->values[i] = NULL;
+  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);
 
   hash_table->nnodes--;
 
@@ -501,8 +592,14 @@ g_hash_table_remove_all_nodes (GHashTable *hash_table,
       if (!destruction)
         {
           memset (hash_table->hashes, 0, hash_table->size * sizeof (guint));
+
+#ifdef USE_SMALL_ARRAYS
+          memset (hash_table->keys, 0, hash_table->size * (hash_table->have_big_keys ? BIG_ENTRY_SIZE : SMALL_ENTRY_SIZE));
+          memset (hash_table->values, 0, hash_table->size * (hash_table->have_big_values ? BIG_ENTRY_SIZE : SMALL_ENTRY_SIZE));
+#else
           memset (hash_table->keys, 0, hash_table->size * sizeof (gpointer));
           memset (hash_table->values, 0, hash_table->size * sizeof (gpointer));
+#endif
         }
 
       return;
@@ -523,7 +620,7 @@ g_hash_table_remove_all_nodes (GHashTable *hash_table,
   g_hash_table_set_shift (hash_table, HASH_TABLE_MIN_SHIFT);
   if (!destruction)
     {
-      hash_table->keys   = g_new0 (gpointer, hash_table->size);
+      hash_table->keys   = g_hash_table_realloc_key_or_value_array (NULL, hash_table->size, FALSE);
       hash_table->values = hash_table->keys;
       hash_table->hashes = g_new0 (guint, hash_table->size);
     }
@@ -538,12 +635,13 @@ g_hash_table_remove_all_nodes (GHashTable *hash_table,
     {
       if (HASH_IS_REAL (old_hashes[i]))
         {
-          key = old_keys[i];
-          value = old_values[i];
+          key = g_hash_table_fetch_key_or_value (old_keys, i, hash_table->have_big_keys);
+          value = g_hash_table_fetch_key_or_value (old_values, i, hash_table->have_big_values);
 
           old_hashes[i] = UNUSED_HASH_VALUE;
-          old_keys[i] = NULL;
-          old_values[i] = NULL;
+
+          g_hash_table_assign_key_or_value (old_keys, i, hash_table->have_big_keys, NULL);
+          g_hash_table_assign_key_or_value (old_values, i, hash_table->have_big_values, NULL);
 
           if (hash_table->key_destroy_func != NULL)
             hash_table->key_destroy_func (key);
@@ -553,6 +651,9 @@ g_hash_table_remove_all_nodes (GHashTable *hash_table,
         }
     }
 
+  hash_table->have_big_keys = FALSE;
+  hash_table->have_big_values = FALSE;
+
   /* Destroy old storage space. */
   if (old_keys != old_values)
     g_free (old_values);
@@ -561,6 +662,125 @@ g_hash_table_remove_all_nodes (GHashTable *hash_table,
   g_free (old_hashes);
 }
 
+static void
+realloc_arrays (GHashTable *hash_table, gboolean is_a_set)
+{
+  hash_table->hashes = g_renew (guint, hash_table->hashes, hash_table->size);
+  hash_table->keys = g_hash_table_realloc_key_or_value_array (hash_table->keys, hash_table->size, hash_table->have_big_keys);
+
+  if (is_a_set)
+    hash_table->values = hash_table->keys;
+  else
+    hash_table->values = g_hash_table_realloc_key_or_value_array (hash_table->values, hash_table->size, hash_table->have_big_values);
+}
+
+/* When resizing the table in place, we use a temporary bit array to keep
+ * track of which entries have been assigned a proper location in the new
+ * table layout.
+ *
+ * Each bit corresponds to a bucket. A bit is set if an entry was assigned
+ * its corresponding location during the resize and thus should not be
+ * evicted. The array starts out cleared to zero. */
+
+static inline gboolean
+get_status_bit (const guint32 *bitmap, guint index)
+{
+  return (bitmap[index / 32] >> (index % 32)) & 1;
+}
+
+static inline void
+set_status_bit (guint32 *bitmap, guint index)
+{
+  bitmap[index / 32] |= 1U << (index % 32);
+}
+
+/* By calling dedicated resize functions for sets and maps, we avoid 2x
+ * test-and-branch per key in the inner loop. This yields a small
+ * performance improvement at the cost of a bit of macro gunk. */
+
+#define DEFINE_RESIZE_FUNC(fname) \
+static void fname (GHashTable *hash_table, guint old_size, guint32 *reallocated_buckets_bitmap) \
+{                                                                       \
+  guint i;                                                              \
+                                                                        \
+  for (i = 0; i < old_size; i++)                                        \
+    {                                                                   \
+      guint node_hash = hash_table->hashes[i];                          \
+      gpointer key, value G_GNUC_UNUSED;                                \
+                                                                        \
+      if (!HASH_IS_REAL (node_hash))                                    \
+        {                                                               \
+          /* Clear tombstones */                                        \
+          hash_table->hashes[i] = UNUSED_HASH_VALUE;                    \
+          continue;                                                     \
+        }                                                               \
+                                                                        \
+      /* Skip entries relocated through eviction */                     \
+      if (get_status_bit (reallocated_buckets_bitmap, i))               \
+        continue;                                                       \
+                                                                        \
+      hash_table->hashes[i] = UNUSED_HASH_VALUE;                        \
+      EVICT_KEYVAL (hash_table, i, NULL, NULL, key, value);             \
+                                                                        \
+      for (;;)                                                          \
+        {                                                               \
+          guint hash_val;                                               \
+          guint replaced_hash;                                          \
+          guint step = 0;                                               \
+                                                                        \
+          hash_val = g_hash_table_hash_to_index (hash_table, node_hash); \
+                                                                        \
+          while (get_status_bit (reallocated_buckets_bitmap, hash_val)) \
+            {                                                           \
+              step++;                                                   \
+              hash_val += step;                                         \
+              hash_val &= hash_table->mask;                             \
+            }                                                           \
+                                                                        \
+          set_status_bit (reallocated_buckets_bitmap, hash_val);        \
+                                                                        \
+          replaced_hash = hash_table->hashes[hash_val];                 \
+          hash_table->hashes[hash_val] = node_hash;                     \
+          if (!HASH_IS_REAL (replaced_hash))                            \
+            {                                                           \
+              ASSIGN_KEYVAL (hash_table, hash_val, key, value);         \
+              break;                                                    \
+            }                                                           \
+                                                                        \
+          node_hash = replaced_hash;                                    \
+          EVICT_KEYVAL (hash_table, hash_val, key, value, key, value);  \
+        }                                                               \
+    }                                                                   \
+}
+
+#define ASSIGN_KEYVAL(ht, index, key, value) G_STMT_START{ \
+    g_hash_table_assign_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
+    g_hash_table_assign_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
+  }G_STMT_END
+
+#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
+    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
+    (outvalue) = g_hash_table_evict_key_or_value ((ht)->values, (index), (ht)->have_big_values, (value)); \
+  }G_STMT_END
+
+DEFINE_RESIZE_FUNC (resize_map)
+
+#undef ASSIGN_KEYVAL
+#undef EVICT_KEYVAL
+
+#define ASSIGN_KEYVAL(ht, index, key, value) G_STMT_START{ \
+    g_hash_table_assign_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
+  }G_STMT_END
+
+#define EVICT_KEYVAL(ht, index, key, value, outkey, outvalue) G_STMT_START{ \
+    (outkey) = g_hash_table_evict_key_or_value ((ht)->keys, (index), (ht)->have_big_keys, (key)); \
+  }G_STMT_END
+
+DEFINE_RESIZE_FUNC (resize_set)
+
+#undef ASSIGN_KEYVAL
+#undef EVICT_KEYVAL
+
 /*
  * g_hash_table_resize:
  * @hash_table: our #GHashTable
@@ -577,54 +797,47 @@ g_hash_table_remove_all_nodes (GHashTable *hash_table,
 static void
 g_hash_table_resize (GHashTable *hash_table)
 {
-  gpointer *new_keys;
-  gpointer *new_values;
-  guint *new_hashes;
-  gint old_size;
-  gint i;
+  guint32 *reallocated_buckets_bitmap;
+  guint old_size;
+  gboolean is_a_set;
 
   old_size = hash_table->size;
-  g_hash_table_set_shift_from_size (hash_table, hash_table->nnodes * 2);
+  is_a_set = hash_table->keys == hash_table->values;
 
-  new_keys = g_new0 (gpointer, hash_table->size);
-  if (hash_table->keys == hash_table->values)
-    new_values = new_keys;
-  else
-    new_values = g_new0 (gpointer, hash_table->size);
-  new_hashes = g_new0 (guint, hash_table->size);
-
-  for (i = 0; i < old_size; i++)
-    {
-      guint node_hash = hash_table->hashes[i];
-      guint hash_val;
-      guint step = 0;
-
-      if (!HASH_IS_REAL (node_hash))
-        continue;
+  /* The outer checks in g_hash_table_maybe_resize() will only consider
+   * cleanup/resize when the load factor goes below .25 (1/4, ignoring
+   * tombstones) or above .9375 (15/16, including tombstones).
+   *
+   * Once this happens, tombstones will always be cleaned out. If our
+   * load sans tombstones is greater than .75 (1/1.333, see below), we'll
+   * take this opportunity to grow the table too.
+   *
+   * Immediately after growing, the load factor will be in the range
+   * .375 .. .469. After shrinking, it will be exactly .5. */
 
-      hash_val = node_hash % hash_table->mod;
+  g_hash_table_set_shift_from_size (hash_table, hash_table->nnodes * 1.333);
 
-      while (!HASH_IS_UNUSED (new_hashes[hash_val]))
-        {
-          step++;
-          hash_val += step;
-          hash_val &= hash_table->mask;
-        }
+  if (hash_table->size > old_size)
+    {
+      realloc_arrays (hash_table, is_a_set);
+      memset (&hash_table->hashes[old_size], 0, (hash_table->size - old_size) * sizeof (guint));
 
-      new_hashes[hash_val] = hash_table->hashes[i];
-      new_keys[hash_val] = hash_table->keys[i];
-      new_values[hash_val] = hash_table->values[i];
+      reallocated_buckets_bitmap = g_new0 (guint32, (hash_table->size + 31) / 32);
+    }
+  else
+    {
+      reallocated_buckets_bitmap = g_new0 (guint32, (old_size + 31) / 32);
     }
 
-  if (hash_table->keys != hash_table->values)
-    g_free (hash_table->values);
+  if (is_a_set)
+    resize_set (hash_table, old_size, reallocated_buckets_bitmap);
+  else
+    resize_map (hash_table, old_size, reallocated_buckets_bitmap);
 
-  g_free (hash_table->keys);
-  g_free (hash_table->hashes);
+  g_free (reallocated_buckets_bitmap);
 
-  hash_table->keys = new_keys;
-  hash_table->values = new_values;
-  hash_table->hashes = new_hashes;
+  if (hash_table->size < old_size)
+    realloc_arrays (hash_table, is_a_set);
 
   hash_table->noccupied = hash_table->nnodes;
 }
@@ -649,6 +862,94 @@ g_hash_table_maybe_resize (GHashTable *hash_table)
     g_hash_table_resize (hash_table);
 }
 
+#ifdef USE_SMALL_ARRAYS
+
+static inline gboolean
+entry_is_big (gpointer v)
+{
+  return (((guintptr) v) >> ((BIG_ENTRY_SIZE - SMALL_ENTRY_SIZE) * 8)) != 0;
+}
+
+static inline gboolean
+g_hash_table_maybe_make_big_keys_or_values (gpointer *a_p, gpointer v, gint ht_size)
+{
+  if (entry_is_big (v))
+    {
+      guint *a = (guint *) *a_p;
+      gpointer *a_new;
+      gint i;
+
+      a_new = g_new (gpointer, ht_size);
+
+      for (i = 0; i < ht_size; i++)
+        {
+          a_new[i] = GUINT_TO_POINTER (a[i]);
+        }
+
+      g_free (a);
+      *a_p = a_new;
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+#endif
+
+static inline void
+g_hash_table_ensure_keyval_fits (GHashTable *hash_table, gpointer key, gpointer value)
+{
+  gboolean is_a_set = (hash_table->keys == hash_table->values);
+
+#ifdef USE_SMALL_ARRAYS
+
+  /* Convert from set to map? */
+  if (is_a_set)
+    {
+      if (hash_table->have_big_keys)
+        {
+          if (key != value)
+            hash_table->values = g_memdup (hash_table->keys, sizeof (gpointer) * hash_table->size);
+          /* Keys and values are both big now, so no need for further checks */
+          return;
+        }
+      else
+        {
+          if (key != value)
+            {
+              hash_table->values = g_memdup (hash_table->keys, sizeof (guint) * hash_table->size);
+              is_a_set = FALSE;
+            }
+        }
+    }
+
+  /* Make keys big? */
+  if (!hash_table->have_big_keys)
+    {
+      hash_table->have_big_keys = g_hash_table_maybe_make_big_keys_or_values (&hash_table->keys, key, hash_table->size);
+
+      if (is_a_set)
+        {
+          hash_table->values = hash_table->keys;
+          hash_table->have_big_values = hash_table->have_big_keys;
+        }
+    }
+
+  /* Make values big? */
+  if (!is_a_set && !hash_table->have_big_values)
+    {
+      hash_table->have_big_values = g_hash_table_maybe_make_big_keys_or_values (&hash_table->values, value, hash_table->size);
+    }
+
+#else
+
+  /* Just split if necessary */
+  if (is_a_set && key != value)
+    hash_table->values = g_memdup (hash_table->keys, sizeof (gpointer) * hash_table->size);
+
+#endif
+}
+
 /**
  * g_hash_table_new:
  * @hash_func: a function to create a hash value from a key
@@ -726,10 +1027,18 @@ g_hash_table_new_full (GHashFunc      hash_func,
 #endif
   hash_table->key_destroy_func   = key_destroy_func;
   hash_table->value_destroy_func = value_destroy_func;
-  hash_table->keys               = g_new0 (gpointer, hash_table->size);
+  hash_table->keys               = g_hash_table_realloc_key_or_value_array (NULL, hash_table->size, FALSE);
   hash_table->values             = hash_table->keys;
   hash_table->hashes             = g_new0 (guint, hash_table->size);
 
+#ifdef USE_SMALL_ARRAYS
+  hash_table->have_big_keys = FALSE;
+  hash_table->have_big_values = FALSE;
+#else
+  hash_table->have_big_keys = TRUE;
+  hash_table->have_big_values = TRUE;
+#endif
+
   return hash_table;
 }
 
@@ -812,9 +1121,9 @@ g_hash_table_iter_next (GHashTableIter *iter,
   while (!HASH_IS_REAL (ri->hash_table->hashes[position]));
 
   if (key != NULL)
-    *key = ri->hash_table->keys[position];
+    *key = g_hash_table_fetch_key_or_value (ri->hash_table->keys, position, ri->hash_table->have_big_keys);
   if (value != NULL)
-    *value = ri->hash_table->values[position];
+    *value = g_hash_table_fetch_key_or_value (ri->hash_table->values, position, ri->hash_table->have_big_values);
 
   ri->position = position;
   return TRUE;
@@ -917,6 +1226,7 @@ g_hash_table_insert_node (GHashTable *hash_table,
   gboolean already_exists;
   guint old_hash;
   gpointer key_to_free = NULL;
+  gpointer key_to_keep = NULL;
   gpointer value_to_free = NULL;
 
   old_hash = hash_table->hashes[node_index];
@@ -946,31 +1256,31 @@ g_hash_table_insert_node (GHashTable *hash_table,
        * because we might change the value in the event that the two
        * arrays are shared.
        */
-      value_to_free = hash_table->values[node_index];
+      value_to_free = g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values);
 
       if (keep_new_key)
         {
-          key_to_free = hash_table->keys[node_index];
-          hash_table->keys[node_index] = new_key;
+          key_to_free = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
+          key_to_keep = new_key;
         }
       else
-        key_to_free = new_key;
+        {
+          key_to_free = new_key;
+          key_to_keep = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
+        }
     }
   else
     {
       hash_table->hashes[node_index] = key_hash;
-      hash_table->keys[node_index] = new_key;
+      key_to_keep = new_key;
     }
 
-  /* Step two: check if the value that we are about to write to the
-   * table is the same as the key in the same position.  If it's not,
-   * split the table.
-   */
-  if (G_UNLIKELY (hash_table->keys == hash_table->values && hash_table->keys[node_index] != new_value))
-    hash_table->values = g_memdup (hash_table->keys, sizeof (gpointer) * hash_table->size);
+  /* Resize key/value arrays and split table as necessary */
+  g_hash_table_ensure_keyval_fits (hash_table, key_to_keep, new_value);
+  g_hash_table_assign_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys, key_to_keep);
 
   /* Step 3: Actually do the write */
-  hash_table->values[node_index] = new_value;
+  g_hash_table_assign_key_or_value (hash_table->values, node_index, hash_table->have_big_values, new_value);
 
   /* Now, the bookkeeping... */
   if (!already_exists)
@@ -1032,7 +1342,8 @@ g_hash_table_iter_replace (GHashTableIter *iter,
   g_return_if_fail (ri->position < ri->hash_table->size);
 
   node_hash = ri->hash_table->hashes[ri->position];
-  key = ri->hash_table->keys[ri->position];
+
+  key = g_hash_table_fetch_key_or_value (ri->hash_table->keys, ri->position, ri->hash_table->have_big_keys);
 
   g_hash_table_insert_node (ri->hash_table, ri->position, node_hash, key, value, TRUE, TRUE);
 
@@ -1153,7 +1464,7 @@ g_hash_table_lookup (GHashTable    *hash_table,
   node_index = g_hash_table_lookup_node (hash_table, key, &node_hash);
 
   return HASH_IS_REAL (hash_table->hashes[node_index])
-    ? hash_table->values[node_index]
+    ? g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values)
     : NULL;
 }
 
@@ -1190,13 +1501,20 @@ g_hash_table_lookup_extended (GHashTable    *hash_table,
   node_index = g_hash_table_lookup_node (hash_table, lookup_key, &node_hash);
 
   if (!HASH_IS_REAL (hash_table->hashes[node_index]))
-    return FALSE;
+    {
+      if (orig_key != NULL)
+        *orig_key = NULL;
+      if (value != NULL)
+        *value = NULL;
+
+      return FALSE;
+    }
 
   if (orig_key)
-    *orig_key = hash_table->keys[node_index];
+    *orig_key = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
 
   if (value)
-    *value = hash_table->values[node_index];
+    *value = g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values);
 
   return TRUE;
 }
@@ -1467,10 +1785,16 @@ g_hash_table_steal_extended (GHashTable    *hash_table,
     }
 
   if (stolen_key != NULL)
-    *stolen_key = g_steal_pointer (&hash_table->keys[node_index]);
+  {
+    *stolen_key = g_hash_table_fetch_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys);
+    g_hash_table_assign_key_or_value (hash_table->keys, node_index, hash_table->have_big_keys, NULL);
+  }
 
   if (stolen_value != NULL)
-    *stolen_value = g_steal_pointer (&hash_table->values[node_index]);
+  {
+    *stolen_value = g_hash_table_fetch_key_or_value (hash_table->values, node_index, hash_table->have_big_values);
+    g_hash_table_assign_key_or_value (hash_table->values, node_index, hash_table->have_big_values, NULL);
+  }
 
   g_hash_table_remove_node (hash_table, node_index, FALSE);
   g_hash_table_maybe_resize (hash_table);
@@ -1564,8 +1888,8 @@ g_hash_table_foreach_remove_or_steal (GHashTable *hash_table,
   for (i = 0; i < hash_table->size; i++)
     {
       guint node_hash = hash_table->hashes[i];
-      gpointer node_key = hash_table->keys[i];
-      gpointer node_value = hash_table->values[i];
+      gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys);
+      gpointer node_value = g_hash_table_fetch_key_or_value (hash_table->values, i, hash_table->have_big_values);
 
       if (HASH_IS_REAL (node_hash) &&
           (* func) (node_key, node_value, user_data))
@@ -1680,8 +2004,8 @@ g_hash_table_foreach (GHashTable *hash_table,
   for (i = 0; i < hash_table->size; i++)
     {
       guint node_hash = hash_table->hashes[i];
-      gpointer node_key = hash_table->keys[i];
-      gpointer node_value = hash_table->values[i];
+      gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys);
+      gpointer node_value = g_hash_table_fetch_key_or_value (hash_table->values, i, hash_table->have_big_values);
 
       if (HASH_IS_REAL (node_hash))
         (* func) (node_key, node_value, user_data);
@@ -1741,8 +2065,8 @@ g_hash_table_find (GHashTable *hash_table,
   for (i = 0; i < hash_table->size; i++)
     {
       guint node_hash = hash_table->hashes[i];
-      gpointer node_key = hash_table->keys[i];
-      gpointer node_value = hash_table->values[i];
+      gpointer node_key = g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys);
+      gpointer node_value = g_hash_table_fetch_key_or_value (hash_table->values, i, hash_table->have_big_values);
 
       if (HASH_IS_REAL (node_hash))
         match = predicate (node_key, node_value, user_data);
@@ -1804,7 +2128,7 @@ g_hash_table_get_keys (GHashTable *hash_table)
   for (i = 0; i < hash_table->size; i++)
     {
       if (HASH_IS_REAL (hash_table->hashes[i]))
-        retval = g_list_prepend (retval, hash_table->keys[i]);
+        retval = g_list_prepend (retval, g_hash_table_fetch_key_or_value (hash_table->keys, i, hash_table->have_big_keys));
     }
 
   return retval;
@@ -1849,7 +2173,7 @@ g_hash_table_get_keys_as_array (GHashTable *hash_table,
   for (i = 0; i < hash_table->size; i++)
     {
       if (HASH_IS_REAL (hash_table->hashes[i]))
-        result[j++] = hash_table->keys[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);
   result[j] = NULL;
@@ -1890,7 +2214,7 @@ g_hash_table_get_values (GHashTable *hash_table)
   for (i = 0; i < hash_table->size; i++)
     {
       if (HASH_IS_REAL (hash_table->hashes[i]))
-        retval = g_list_prepend (retval, hash_table->values[i]);
+        retval = g_list_prepend (retval, g_hash_table_fetch_key_or_value (hash_table->values, i, hash_table->have_big_values));
     }
 
   return retval;
index 43c6a93..88fd8c8 100644 (file)
@@ -39,7 +39,6 @@
 #include "gstrfuncs.h"
 #include "gtestutils.h"
 #include "glibintl.h"
-#include "gunicodeprivate.h"
 
 
 /**
@@ -2324,7 +2323,7 @@ reconvert:
 
               /* UTF-8, just validate, emulate g_iconv */
 
-              if (!_g_utf8_validate_len (from_buf, try_len, &badchar))
+              if (!g_utf8_validate_len (from_buf, try_len, &badchar))
                 {
                   gunichar try_char;
                   gsize incomplete_len = from_buf + try_len - badchar;
index 4e9b535..41883e9 100644 (file)
@@ -599,7 +599,8 @@ static gboolean              g_key_file_parse_value_as_boolean (GKeyFile
 static gchar                *g_key_file_parse_boolean_as_value (GKeyFile               *key_file,
                                                                gboolean                value);
 static gchar                *g_key_file_parse_value_as_comment (GKeyFile               *key_file,
-                                                                const gchar            *value);
+                                                                const gchar            *value,
+                                                                gboolean                is_final_line);
 static gchar                *g_key_file_parse_comment_as_value (GKeyFile               *key_file,
                                                                 const gchar            *comment);
 static void                  g_key_file_parse_key_value_pair   (GKeyFile               *key_file,
@@ -3511,8 +3512,9 @@ g_key_file_get_key_comment (GKeyFile     *key_file,
       
       if (string == NULL)
        string = g_string_sized_new (512);
-      
-      comment = g_key_file_parse_value_as_comment (key_file, pair->value);
+
+      comment = g_key_file_parse_value_as_comment (key_file, pair->value,
+                                                   (tmp->prev == key_node));
       g_string_append (string, comment);
       g_free (comment);
       
@@ -3569,7 +3571,8 @@ get_group_comment (GKeyFile       *key_file,
       if (string == NULL)
         string = g_string_sized_new (512);
 
-      comment = g_key_file_parse_value_as_comment (key_file, pair->value);
+      comment = g_key_file_parse_value_as_comment (key_file, pair->value,
+                                                   (tmp->prev == NULL));
       g_string_append (string, comment);
       g_free (comment);
 
@@ -3640,7 +3643,9 @@ g_key_file_get_top_comment (GKeyFile  *key_file,
  * @group_name. If both @key and @group_name are %NULL, then
  * @comment will be read from above the first group in the file.
  *
- * Note that the returned string includes the '#' comment markers.
+ * Note that the returned string does not include the '#' comment markers,
+ * but does include any whitespace after them (on each line). It includes
+ * the line breaks between lines, but does not include the final line break.
  *
  * Returns: a comment that should be freed with g_free()
  *
@@ -4546,7 +4551,8 @@ g_key_file_parse_boolean_as_value (GKeyFile *key_file,
 
 static gchar *
 g_key_file_parse_value_as_comment (GKeyFile    *key_file,
-                                   const gchar *value)
+                                   const gchar *value,
+                                   gboolean     is_final_line)
 {
   GString *string;
   gchar **lines;
@@ -4558,13 +4564,22 @@ g_key_file_parse_value_as_comment (GKeyFile    *key_file,
 
   for (i = 0; lines[i] != NULL; i++)
     {
-        if (lines[i][0] != '#')
-           g_string_append_printf (string, "%s\n", lines[i]);
-        else 
-           g_string_append_printf (string, "%s\n", lines[i] + 1);
+      const gchar *line = lines[i];
+
+      if (i != 0)
+        g_string_append_c (string, '\n');
+
+      if (line[0] == '#')
+        line++;
+      g_string_append (string, line);
     }
   g_strfreev (lines);
 
+  /* This function gets called once per line of a comment, but we don’t want
+   * to add a trailing newline. */
+  if (!is_final_line)
+    g_string_append_c (string, '\n');
+
   return g_string_free (string, FALSE);
 }
 
index ce1690b..d89c8d2 100644 (file)
@@ -75,6 +75,7 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GStringChunk, g_string_chunk_free)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GThread, g_thread_unref)
 G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GMutex, g_mutex_clear)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMutexLocker, g_mutex_locker_free)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRecMutexLocker, g_rec_mutex_locker_free)
 G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GCond, g_cond_clear)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimer, g_timer_destroy)
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimeZone, g_time_zone_unref)
index 6cb4e4a..6ffe793 100644 (file)
@@ -20,8 +20,7 @@
 #include "config.h"
 
 #include "glib-init.h"
-
-#include "glib-private.h"
+#include "gmacros.h"
 #include "gtypes.h"
 #include "gutils.h"     /* for GDebugKey */
 #include "gconstructor.h"
@@ -40,10 +39,10 @@ G_STATIC_ASSERT (CHAR_BIT == 8);
 
 /* We assume that data pointers are the same size as function pointers... */
 G_STATIC_ASSERT (sizeof (gpointer) == sizeof (GFunc));
-G_STATIC_ASSERT (_g_alignof (gpointer) == _g_alignof (GFunc));
+G_STATIC_ASSERT (G_ALIGNOF (gpointer) == G_ALIGNOF (GFunc));
 /* ... and that all function pointers are the same size. */
 G_STATIC_ASSERT (sizeof (GFunc) == sizeof (GCompareDataFunc));
-G_STATIC_ASSERT (_g_alignof (GFunc) == _g_alignof (GCompareDataFunc));
+G_STATIC_ASSERT (G_ALIGNOF (GFunc) == G_ALIGNOF (GCompareDataFunc));
 
 /* We assume that "small" enums (those where all values fit in INT32_MIN
  * to INT32_MAX) are exactly int-sized. In particular, we assume that if
@@ -64,9 +63,9 @@ typedef enum {
 G_STATIC_ASSERT (sizeof (TestChar) == sizeof (int));
 G_STATIC_ASSERT (sizeof (TestShort) == sizeof (int));
 G_STATIC_ASSERT (sizeof (TestInt) == sizeof (int));
-G_STATIC_ASSERT (_g_alignof (TestChar) == _g_alignof (int));
-G_STATIC_ASSERT (_g_alignof (TestShort) == _g_alignof (int));
-G_STATIC_ASSERT (_g_alignof (TestInt) == _g_alignof (int));
+G_STATIC_ASSERT (G_ALIGNOF (TestChar) == G_ALIGNOF (int));
+G_STATIC_ASSERT (G_ALIGNOF (TestShort) == G_ALIGNOF (int));
+G_STATIC_ASSERT (G_ALIGNOF (TestInt) == G_ALIGNOF (int));
 
 /**
  * g_mem_gc_friendly:
index 31acd93..c002b4a 100644 (file)
 #include "gwakeup.h"
 #include "gstdioprivate.h"
 
-#if defined(__GNUC__)
-# define _g_alignof(type) (__alignof__ (type))
-#else
-# define _g_alignof(type) (G_STRUCT_OFFSET (struct { char a; type b; }, b))
-#endif
-
 GMainContext *          g_get_worker_context            (void);
 gboolean                g_check_setuid                  (void);
 GMainContext *          g_main_context_new_with_next_id (guint next_id);
index d6b1f8d..14bb8f1 100644 (file)
@@ -4,16 +4,16 @@ provider glib {
        probe mem__free(void*);
        probe slice__alloc(void*, unsigned int);
        probe slice__free(void*, unsigned int);
-       probe quark__new(char *, unsigned int);
+       probe quark__new(const char *, unsigned int);
        probe main__after_prepare(void*, void*, unsigned int);
        probe main__after_check(void*, void*, unsigned int);
-       probe main__before_dispatch(char*, void*, void*, void*, void*);
-       probe main__after_dispatch(char*, void*, void*, unsigned int);
-       probe main__source_attach(char*, void*, void*, unsigned int);
-       probe main__source_destroy(char*, void*, void*);
+       probe main__before_dispatch(const char*, void*, void*, void*, void*);
+       probe main__after_dispatch(const char*, void*, void*, unsigned int);
+       probe main__source_attach(const char*, void*, void*, unsigned int);
+       probe main__source_destroy(const char*, void*, void*);
        probe main__context_default(void*);
        probe main__context_new(void*);
-       probe main__context_acquire(void*, void*);
+       probe main__context_acquire(void*, int);
        probe main__context_release(void*);
        probe main__context_free(void*);
        probe main__context_push_thread_default(void*);
index 9b8ef0e..f8db7e8 100644 (file)
   __attribute__((__format__ (gnu_printf, format_idx, arg_idx)))
 #define G_GNUC_SCANF( format_idx, arg_idx )     \
   __attribute__((__format__ (gnu_scanf, format_idx, arg_idx)))
+#define G_GNUC_STRFTIME( format_idx )    \
+  __attribute__((__format__ (gnu_strftime, format_idx, 0)))
 #else
 #define G_GNUC_PRINTF( format_idx, arg_idx )    \
   __attribute__((__format__ (__printf__, format_idx, arg_idx)))
 #define G_GNUC_SCANF( format_idx, arg_idx )     \
   __attribute__((__format__ (__scanf__, format_idx, arg_idx)))
+#define G_GNUC_STRFTIME( format_idx )    \
+  __attribute__((__format__ (__strftime__, format_idx, 0)))
 #endif
 #define G_GNUC_FORMAT( arg_idx )                \
   __attribute__((__format_arg__ (arg_idx)))
 #else   /* !__GNUC__ */
 #define G_GNUC_PRINTF( format_idx, arg_idx )
 #define G_GNUC_SCANF( format_idx, arg_idx )
+#define G_GNUC_STRFTIME( format_idx )
 #define G_GNUC_FORMAT( arg_idx )
 #define G_GNUC_NORETURN
 #define G_GNUC_CONST
 #define G_GNUC_NO_INSTRUMENT
 #endif  /* !__GNUC__ */
 
+#if    __GNUC__ > 6
+#define G_GNUC_FALLTHROUGH __attribute__((fallthrough))
+#else
+#define G_GNUC_FALLTHROUGH
+#endif /* __GNUC__ */
+
 #if    __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
 #define G_GNUC_DEPRECATED __attribute__((__deprecated__))
 #else
 #endif
 #endif
 
+/* Provide G_ALIGNOF alignment macro.
+ */
+
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__cplusplus)
+#define G_ALIGNOF(type) _Alignof (type)
+#elif defined(__GNUC__)
+#define G_ALIGNOF(type) (__alignof__ (type))
+#else
+#define G_ALIGNOF(type) (G_STRUCT_OFFSET (struct { char a; type b; }, b))
+#endif
+
 /* Deprecated -- do not use. */
 #ifndef G_DISABLE_DEPRECATED
 #ifdef G_DISABLE_CONST_RETURNS
       _g_boolean_var_ = 0;                      \
    _g_boolean_var_;                             \
 })
-#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR((expr)), 1))
-#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR((expr)), 0))
+#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1))
+#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0))
 #else
 #define G_LIKELY(expr) (expr)
 #define G_UNLIKELY(expr) (expr)
 
 /* these macros are private */
 #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
 #define _GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName) glib_listautoptr_cleanup_##TypeName
 #define _GLIB_AUTOPTR_LIST_TYPENAME(TypeName)  TypeName##_listautoptr
 #define _GLIB_AUTOPTR_SLIST_TYPENAME(TypeName)  TypeName##_slistautoptr
 #define _GLIB_AUTO_FUNC_NAME(TypeName)    glib_auto_cleanup_##TypeName
 #define _GLIB_CLEANUP(func)               __attribute__((cleanup(func)))
+#define _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(TypeName, ParentName, cleanup) \
+  typedef TypeName *_GLIB_AUTOPTR_TYPENAME(TypeName);                                                           \
+  typedef GList *_GLIB_AUTOPTR_LIST_TYPENAME(TypeName);                                                         \
+  typedef GSList *_GLIB_AUTOPTR_SLIST_TYPENAME(TypeName);                                                       \
+  G_GNUC_BEGIN_IGNORE_DEPRECATIONS                                                                              \
+  static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (TypeName *_ptr)                     \
+    { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
+  static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_FUNC_NAME(TypeName) (TypeName **_ptr)                          \
+    { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); }                                                        \
+  static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName) (GList **_l)                          \
+    { g_list_free_full (*_l, (GDestroyNotify) (void(*)(void)) cleanup); }                                       \
+  static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_SLIST_FUNC_NAME(TypeName) (GSList **_l)                        \
+    { g_slist_free_full (*_l, (GDestroyNotify) (void(*)(void)) cleanup); }                                      \
+  G_GNUC_END_IGNORE_DEPRECATIONS
 #define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName) \
-  typedef ModuleObjName *_GLIB_AUTOPTR_TYPENAME(ModuleObjName);                                          \
-  static inline void _GLIB_AUTOPTR_FUNC_NAME(ModuleObjName) (ModuleObjName **_ptr) {                     \
-    _GLIB_AUTOPTR_FUNC_NAME(ParentName) ((ParentName **) _ptr); }                                        \
+  _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName))
 
 
 /* these macros are API */
 #define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func) \
-  typedef TypeName *_GLIB_AUTOPTR_TYPENAME(TypeName);                                                           \
-  typedef GList *_GLIB_AUTOPTR_LIST_TYPENAME(TypeName);                                                         \
-  typedef GSList *_GLIB_AUTOPTR_SLIST_TYPENAME(TypeName);                                                         \
-  G_GNUC_BEGIN_IGNORE_DEPRECATIONS                                                                              \
-  static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_FUNC_NAME(TypeName) (TypeName **_ptr) { if (*_ptr) (func) (*_ptr); }         \
-  static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName) (GList **_l) { g_list_free_full (*_l, (GDestroyNotify) (void(*)(void)) func); } \
-  static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_SLIST_FUNC_NAME(TypeName) (GSList **_l) { g_slist_free_full (*_l, (GDestroyNotify) (void(*)(void)) func); } \
-  G_GNUC_END_IGNORE_DEPRECATIONS
+  _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(TypeName, TypeName, func)
 #define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func) \
   G_GNUC_BEGIN_IGNORE_DEPRECATIONS                                                                              \
   static inline void _GLIB_AUTO_FUNC_NAME(TypeName) (TypeName *_ptr) { (func) (_ptr); }                         \
index 0a6857c..c24690e 100644 (file)
@@ -315,6 +315,7 @@ struct _GMainLoop
 struct _GTimeoutSource
 {
   GSource     source;
+  /* Measured in seconds if 'seconds' is TRUE, or milliseconds otherwise. */
   guint       interval;
   gboolean    seconds;
 };
@@ -327,7 +328,7 @@ struct _GChildWatchSource
 #ifdef G_OS_WIN32
   GPollFD     poll;
 #else /* G_OS_WIN32 */
-  gboolean    child_exited;
+  gboolean    child_exited; /* (atomic) */
 #endif /* G_OS_WIN32 */
 };
 
@@ -335,7 +336,7 @@ struct _GUnixSignalWatchSource
 {
   GSource     source;
   int         signum;
-  gboolean    pending;
+  gboolean    pending; /* (atomic) */
 };
 
 struct _GPollRec
@@ -462,10 +463,10 @@ static volatile sig_atomic_t any_unix_signal_pending;
 static volatile int unix_signal_pending[NSIG];
 static volatile int any_unix_signal_pending;
 #endif
-static volatile guint unix_signal_refcount[NSIG];
 
 /* Guards all the data below */
 G_LOCK_DEFINE_STATIC (unix_signal_lock);
+static guint unix_signal_refcount[NSIG];
 static GSList *unix_signal_watches;
 static GSList *unix_child_watches;
 
@@ -1584,6 +1585,10 @@ static GSourceCallbackFuncs g_source_callback_funcs = {
  * an initial reference count on @callback_data, and thus
  * @callback_funcs->unref will eventually be called once more
  * than @callback_funcs->ref.
+ *
+ * It is safe to call this function multiple times on a source which has already
+ * been attached to a context. The changes will take effect for the next time
+ * the source is dispatched after this call returns.
  **/
 void
 g_source_set_callback_indirect (GSource              *source,
@@ -1640,7 +1645,11 @@ g_source_set_callback_indirect (GSource              *source,
  * on how to handle memory management of @data.
  * 
  * Typically, you won't use this function. Instead use functions specific
- * to the type of source you are using.
+ * to the type of source you are using, such as g_idle_add() or g_timeout_add().
+ *
+ * It is safe to call this function multiple times on a source which has already
+ * been attached to a context. The changes will take effect for the next time
+ * the source is dispatched after this call returns.
  **/
 void
 g_source_set_callback (GSource        *source,
@@ -3516,13 +3525,13 @@ g_main_context_prepare (GMainContext *context,
                 }
               else
                 {
-                  gint timeout;
+                  gint64 timeout;
 
                   /* rounding down will lead to spinning, so always round up */
                   timeout = (source->priv->ready_time - context->time + 999) / 1000;
 
                   if (source_timeout < 0 || timeout < source_timeout)
-                    source_timeout = timeout;
+                    source_timeout = MIN (timeout, G_MAXINT);
                 }
             }
 
@@ -4607,8 +4616,6 @@ g_timeout_set_expiration (GTimeoutSource *timeout_source,
 {
   gint64 expiration;
 
-  expiration = current_time + (guint64) timeout_source->interval * 1000;
-
   if (timeout_source->seconds)
     {
       gint64 remainder;
@@ -4630,6 +4637,8 @@ g_timeout_set_expiration (GTimeoutSource *timeout_source,
             timer_perturb = 0;
         }
 
+      expiration = current_time + (guint64) timeout_source->interval * 1000 * 1000;
+
       /* We want the microseconds part of the timeout to land on the
        * 'timer_perturb' mark, but we need to make sure we don't try to
        * set the timeout in the past.  We do this by ensuring that we
@@ -4645,6 +4654,10 @@ g_timeout_set_expiration (GTimeoutSource *timeout_source,
       expiration -= remainder;
       expiration += timer_perturb;
     }
+  else
+    {
+      expiration = current_time + (guint64) timeout_source->interval * 1000;
+    }
 
   g_source_set_ready_time ((GSource *) timeout_source, expiration);
 }
@@ -4727,7 +4740,7 @@ g_timeout_source_new_seconds (guint interval)
   GSource *source = g_source_new (&g_timeout_funcs, sizeof (GTimeoutSource));
   GTimeoutSource *timeout_source = (GTimeoutSource *)source;
 
-  timeout_source->interval = 1000 * interval;
+  timeout_source->interval = interval;
   timeout_source->seconds = TRUE;
 
   g_timeout_set_expiration (timeout_source, g_get_monotonic_time ());
@@ -5099,7 +5112,7 @@ dispatch_unix_signals_unlocked (void)
         {
           GChildWatchSource *source = node->data;
 
-          if (!source->child_exited)
+          if (!g_atomic_int_get (&source->child_exited))
             {
               pid_t pid;
               do
@@ -5109,14 +5122,14 @@ dispatch_unix_signals_unlocked (void)
                   pid = waitpid (source->pid, &source->child_status, WNOHANG);
                   if (pid > 0)
                     {
-                      source->child_exited = TRUE;
+                      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_exited = TRUE;
                       source->child_status = 0;
+                      g_atomic_int_set (&source->child_exited, TRUE);
                       wake_source ((GSource *) source);
                     }
                 }
@@ -5130,14 +5143,10 @@ dispatch_unix_signals_unlocked (void)
     {
       GUnixSignalWatchSource *source = node->data;
 
-      if (!source->pending)
+      if (pending[source->signum] &&
+          g_atomic_int_compare_and_exchange (&source->pending, FALSE, TRUE))
         {
-          if (pending[source->signum])
-            {
-              source->pending = TRUE;
-
-              wake_source ((GSource *) source);
-            }
+          wake_source ((GSource *) source);
         }
     }
 
@@ -5159,7 +5168,7 @@ g_child_watch_prepare (GSource *source,
 
   child_watch_source = (GChildWatchSource *) source;
 
-  return child_watch_source->child_exited;
+  return g_atomic_int_get (&child_watch_source->child_exited);
 }
 
 static gboolean
@@ -5169,7 +5178,7 @@ g_child_watch_check (GSource *source)
 
   child_watch_source = (GChildWatchSource *) source;
 
-  return child_watch_source->child_exited;
+  return g_atomic_int_get (&child_watch_source->child_exited);
 }
 
 static gboolean
@@ -5180,7 +5189,7 @@ g_unix_signal_watch_prepare (GSource *source,
 
   unix_signal_source = (GUnixSignalWatchSource *) source;
 
-  return unix_signal_source->pending;
+  return g_atomic_int_get (&unix_signal_source->pending);
 }
 
 static gboolean
@@ -5190,7 +5199,7 @@ g_unix_signal_watch_check (GSource  *source)
 
   unix_signal_source = (GUnixSignalWatchSource *) source;
 
-  return unix_signal_source->pending;
+  return g_atomic_int_get (&unix_signal_source->pending);
 }
 
 static gboolean
@@ -5210,9 +5219,9 @@ g_unix_signal_watch_dispatch (GSource    *source,
       return FALSE;
     }
 
-  again = (callback) (user_data);
+  g_atomic_int_set (&unix_signal_source->pending, FALSE);
 
-  unix_signal_source->pending = FALSE;
+  again = (callback) (user_data);
 
   return again;
 }
index 4169cb1..fe723e5 100644 (file)
@@ -35,7 +35,6 @@
 #include "gtestutils.h"
 #include "glibintl.h"
 #include "gthread.h"
-#include "gunicodeprivate.h"
 
 /**
  * SECTION:markup
@@ -46,7 +45,8 @@
  * The "GMarkup" parser is intended to parse a simple markup format
  * that's a subset of XML. This is a small, efficient, easy-to-use
  * parser. It should not be used if you expect to interoperate with
- * other applications generating full-scale XML. However, it's very
+ * other applications generating full-scale XML, and must not be used if you
+ * expect to parse untrusted input. However, it's very
  * useful for application data files, config files, etc. where you
  * know your application will be the only one writing the file.
  * Full-scale XML parsers should be able to parse the subset used by
@@ -539,7 +539,7 @@ text_validate (GMarkupParseContext  *context,
                gint                  len,
                GError              **error)
 {
-  if (!_g_utf8_validate_len (p, len, NULL))
+  if (!g_utf8_validate_len (p, len, NULL))
     {
       set_error (context, error, G_MARKUP_ERROR_BAD_UTF8,
                  _("Invalid UTF-8 encoded text in name — not valid “%s”"), p);
@@ -2885,6 +2885,8 @@ failure:
             case G_MARKUP_COLLECT_STRDUP:
               if (written)
                 g_free (*(char **) ptr);
+              *(char **) ptr = NULL;
+              break;
 
             case G_MARKUP_COLLECT_STRING:
               *(char **) ptr = NULL;
index b72a583..09cd041 100644 (file)
@@ -170,8 +170,7 @@ g_realloc (gpointer mem,
                G_STRLOC, n_bytes);
     }
 
-  if (mem)
-    free (mem);
+  free (mem);
 
   TRACE (GLIB_MEM_REALLOC((void*) NULL, (void*)mem, 0, 0));
 
@@ -190,8 +189,7 @@ g_realloc (gpointer mem,
 void
 g_free (gpointer mem)
 {
-  if (G_LIKELY (mem))
-    free (mem);
+  free (mem);
   TRACE(GLIB_MEM_FREE((void*) mem));
 }
 
@@ -304,8 +302,7 @@ g_try_realloc (gpointer mem,
   else
     {
       newmem = NULL;
-      if (mem)
-       free (mem);
+      free (mem);
     }
 
   TRACE (GLIB_MEM_REALLOC((void*) newmem, (void*)mem, (unsigned int) n_bytes, 1));
index 569fe2c..0210b7a 100644 (file)
@@ -2165,31 +2165,24 @@ g_log_writer_is_journald (gint output_fd)
   /* FIXME: Use the new journal API for detecting whether we’re writing to the
    * journal. See: https://github.com/systemd/systemd/issues/2473
    */
-  static gsize initialized;
-  static gboolean fd_is_journal = FALSE;
+  union {
+    struct sockaddr_storage storage;
+    struct sockaddr sa;
+    struct sockaddr_un un;
+  } addr;
+  socklen_t addr_len;
+  int err;
 
   if (output_fd < 0)
     return FALSE;
 
-  if (g_once_init_enter (&initialized))
-    {
-      union {
-        struct sockaddr_storage storage;
-        struct sockaddr sa;
-        struct sockaddr_un un;
-      } addr;
-      socklen_t addr_len = sizeof(addr);
-      int err = getpeername (output_fd, &addr.sa, &addr_len);
-      if (err == 0 && addr.storage.ss_family == AF_UNIX)
-        fd_is_journal = g_str_has_prefix (addr.un.sun_path, "/run/systemd/journal/");
-
-      g_once_init_leave (&initialized, TRUE);
-    }
+  addr_len = sizeof(addr);
+  err = getpeername (output_fd, &addr.sa, &addr_len);
+  if (err == 0 && addr.storage.ss_family == AF_UNIX)
+    return g_str_has_prefix (addr.un.sun_path, "/run/systemd/journal/");
+#endif
 
-  return fd_is_journal;
-#else
   return FALSE;
-#endif
 }
 
 static void escape_string (GString *string);
@@ -2620,6 +2613,9 @@ g_log_writer_default (GLogLevelFlags   log_level,
                       gsize            n_fields,
                       gpointer         user_data)
 {
+  static gsize initialized = 0;
+  static gboolean stderr_is_journal = FALSE;
+
   g_return_val_if_fail (fields != NULL, G_LOG_WRITER_UNHANDLED);
   g_return_val_if_fail (n_fields > 0, G_LOG_WRITER_UNHANDLED);
 
@@ -2656,7 +2652,13 @@ g_log_writer_default (GLogLevelFlags   log_level,
     log_level |= G_LOG_FLAG_FATAL;
 
   /* Try logging to the systemd journal as first choice. */
-  if (g_log_writer_is_journald (fileno (stderr)) &&
+  if (g_once_init_enter (&initialized))
+    {
+      stderr_is_journal = g_log_writer_is_journald (fileno (stderr));
+      g_once_init_leave (&initialized, TRUE);
+    }
+
+  if (stderr_is_journal &&
       g_log_writer_journald (log_level, fields, n_fields, user_data) ==
       G_LOG_WRITER_HANDLED)
     goto handled;
@@ -2750,9 +2752,12 @@ _g_log_writer_fallback (GLogLevelFlags   log_level,
 
 /**
  * g_return_if_fail_warning: (skip)
- * @log_domain: (nullable):
- * @pretty_function:
- * @expression: (nullable):
+ * @log_domain: (nullable): log domain
+ * @pretty_function: function containing the assertion
+ * @expression: (nullable): expression which failed
+ *
+ * Internal function used to print messages from the public g_return_if_fail()
+ * and g_return_val_if_fail() macros.
  */
 void
 g_return_if_fail_warning (const char *log_domain,
@@ -2768,11 +2773,14 @@ g_return_if_fail_warning (const char *log_domain,
 
 /**
  * g_warn_message: (skip)
- * @domain: (nullable):
- * @file:
- * @line:
- * @func:
- * @warnexpr: (nullable):
+ * @domain: (nullable): log domain
+ * @file: file containing the warning
+ * @line: line number of the warning
+ * @func: function containing the warning
+ * @warnexpr: (nullable): expression which failed
+ *
+ * Internal function used to print messages from the public g_warn_if_reached()
+ * and g_warn_if_fail() macros.
  */
 void
 g_warn_message (const char     *domain,
index cebdc16..c609d08 100644 (file)
@@ -581,41 +581,53 @@ GPrintFunc      g_set_printerr_handler  (GPrintFunc      func);
 
 #else /* !G_DISABLE_CHECKS */
 
-#define g_return_if_fail(expr)         G_STMT_START{                   \
-     if G_LIKELY(expr) { } else                                        \
-       {                                                               \
-        g_return_if_fail_warning (G_LOG_DOMAIN,                        \
-                                  G_STRFUNC,                           \
-                                  #expr);                              \
-        return;                                                        \
-       };                              }G_STMT_END
-
-#define g_return_val_if_fail(expr,val) G_STMT_START{                   \
-     if G_LIKELY(expr) { } else                                                \
-       {                                                               \
-        g_return_if_fail_warning (G_LOG_DOMAIN,                        \
-                                  G_STRFUNC,                           \
-                                  #expr);                              \
-        return (val);                                                  \
-       };                              }G_STMT_END
-
-#define g_return_if_reached()          G_STMT_START{                   \
-     g_log (G_LOG_DOMAIN,                                              \
-           G_LOG_LEVEL_CRITICAL,                                       \
-           "file %s: line %d (%s): should not be reached",             \
-           __FILE__,                                                   \
-           __LINE__,                                                   \
-           G_STRFUNC);                                                 \
-     return;                           }G_STMT_END
-
-#define g_return_val_if_reached(val)   G_STMT_START{                   \
-     g_log (G_LOG_DOMAIN,                                              \
-           G_LOG_LEVEL_CRITICAL,                                       \
-           "file %s: line %d (%s): should not be reached",             \
-           __FILE__,                                                   \
-           __LINE__,                                                   \
-           G_STRFUNC);                                                 \
-     return (val);                     }G_STMT_END
+#define g_return_if_fail(expr) \
+  G_STMT_START { \
+    if (G_LIKELY (expr)) \
+      { } \
+    else \
+      { \
+        g_return_if_fail_warning (G_LOG_DOMAIN, \
+                                  G_STRFUNC, \
+                                  #expr); \
+        return; \
+      } \
+  } G_STMT_END
+
+#define g_return_val_if_fail(expr, val) \
+  G_STMT_START { \
+    if (G_LIKELY (expr)) \
+      { } \
+    else \
+      { \
+        g_return_if_fail_warning (G_LOG_DOMAIN, \
+                                  G_STRFUNC, \
+                                  #expr); \
+        return (val); \
+      } \
+  } G_STMT_END
+
+#define g_return_if_reached() \
+  G_STMT_START { \
+    g_log (G_LOG_DOMAIN, \
+           G_LOG_LEVEL_CRITICAL, \
+           "file %s: line %d (%s): should not be reached", \
+           __FILE__, \
+           __LINE__, \
+           G_STRFUNC); \
+    return; \
+  } G_STMT_END
+
+#define g_return_val_if_reached(val) \
+  G_STMT_START { \
+    g_log (G_LOG_DOMAIN, \
+           G_LOG_LEVEL_CRITICAL, \
+           "file %s: line %d (%s): should not be reached", \
+           __FILE__, \
+           __LINE__, \
+           G_STRFUNC); \
+    return (val); \
+  } G_STMT_END
 
 #endif /* !G_DISABLE_CHECKS */
 
index f31db78..7a9a6f6 100644 (file)
  * Since: 2.58.
  */
 
-#define G_RC_BOX(p)             (GRcBox *) (((char *) (p)) - G_RC_BOX_SIZE)
-
 /* We use the same alignment as GTypeInstance and GNU libc's malloc */
-#define STRUCT_ALIGNMENT        (2 * sizeof (gsize))
 #define ALIGN_STRUCT(offset)    ((offset + (STRUCT_ALIGNMENT - 1)) & -STRUCT_ALIGNMENT)
 
+#define G_RC_BOX(p)             (GRcBox *) (((char *) (p)) - G_RC_BOX_SIZE)
+
 gpointer
 g_rc_box_alloc_full (gsize    block_size,
+                     gsize    alignment,
                      gboolean atomic,
                      gboolean clear)
 {
-  /* sizeof GArcBox == sizeof GRcBox */
+  /* We don't do an (atomic ? G_ARC_BOX_SIZE : G_RC_BOX_SIZE) check, here
+   * because we have a static assertion that sizeof(GArcBox) == sizeof(GRcBox)
+   * inside grcboxprivate.h, and we don't want the compiler to unnecessarily
+   * warn about both branches of the conditional yielding identical results
+   */
   gsize private_size = G_ARC_BOX_SIZE;
+  gsize private_offset = 0;
   gsize real_size;
   char *allocated;
 
-  g_assert (block_size < (G_MAXSIZE - G_ARC_BOX_SIZE));
+  g_assert (alignment != 0);
+
+  /* We need to ensure that the private data is aligned */
+  if (private_size % alignment != 0)
+    {
+      private_offset = private_size % alignment;
+      private_size += (alignment - private_offset);
+    }
+
+  g_assert (block_size < (G_MAXSIZE - private_size));
   real_size = private_size + block_size;
 
+  /* The real allocated size must be a multiple of @alignment, to
+   * maintain the alignment of block_size
+   */
+  if (real_size % alignment != 0)
+    {
+      gsize offset = real_size % alignment;
+      g_assert (real_size < (G_MAXSIZE - (alignment - offset)));
+      real_size += (alignment - offset);
+    }
+
 #ifdef ENABLE_VALGRIND
   if (RUNNING_ON_VALGRIND)
     {
@@ -214,8 +238,18 @@ g_rc_box_alloc_full (gsize    block_size,
 
   if (atomic)
     {
-      GArcBox *real_box = (GArcBox *) allocated;
+      /* We leave the alignment padding at the top of the allocation,
+       * so we have an in memory layout of:
+       *
+       *  |[ offset ][ sizeof(GArcBox) ]||[ block_size ]|
+       */
+      GArcBox *real_box = (GArcBox *) (allocated + private_offset);
+      /* Store the real size */
       real_box->mem_size = block_size;
+      /* Store the alignment offset, to be used when freeing the
+       * allocated block
+       */
+      real_box->private_offset = private_offset;
 #ifndef G_DISABLE_ASSERT
       real_box->magic = G_BOX_MAGIC;
 #endif
@@ -223,8 +257,18 @@ g_rc_box_alloc_full (gsize    block_size,
     }
   else
     {
-      GRcBox *real_box = (GRcBox *) allocated;
+      /* We leave the alignment padding at the top of the allocation,
+       * so we have an in memory layout of:
+       *
+       *  |[ offset ][ sizeof(GRcBox) ]||[ block_size ]|
+       */
+      GRcBox *real_box = (GRcBox *) (allocated + private_offset);
+      /* Store the real size */
       real_box->mem_size = block_size;
+      /* Store the alignment offset, to be used when freeing the
+       * allocated block
+       */
+      real_box->private_offset = private_offset;
 #ifndef G_DISABLE_ASSERT
       real_box->magic = G_BOX_MAGIC;
 #endif
@@ -246,6 +290,9 @@ g_rc_box_alloc_full (gsize    block_size,
  * The data will be freed when its reference count drops to
  * zero.
  *
+ * The allocated data is guaranteed to be suitably aligned for any
+ * built-in type.
+ *
  * Returns: (transfer full) (not nullable): a pointer to the allocated memory
  *
  * Since: 2.58
@@ -255,7 +302,7 @@ g_rc_box_alloc (gsize block_size)
 {
   g_return_val_if_fail (block_size > 0, NULL);
 
-  return g_rc_box_alloc_full (block_size, FALSE, FALSE);
+  return g_rc_box_alloc_full (block_size, STRUCT_ALIGNMENT, FALSE, FALSE);
 }
 
 /**
@@ -270,6 +317,9 @@ g_rc_box_alloc (gsize block_size)
  * The data will be freed when its reference count drops to
  * zero.
  *
+ * The allocated data is guaranteed to be suitably aligned for any
+ * built-in type.
+ *
  * Returns: (transfer full) (not nullable): a pointer to the allocated memory
  *
  * Since: 2.58
@@ -279,7 +329,7 @@ g_rc_box_alloc0 (gsize block_size)
 {
   g_return_val_if_fail (block_size > 0, NULL);
 
-  return g_rc_box_alloc_full (block_size, FALSE, TRUE);
+  return g_rc_box_alloc_full (block_size, STRUCT_ALIGNMENT, FALSE, TRUE);
 }
 
 /**
@@ -339,7 +389,7 @@ gpointer
   g_return_val_if_fail (block_size > 0, NULL);
   g_return_val_if_fail (mem_block != NULL, NULL);
 
-  res = g_rc_box_alloc_full (block_size, FALSE, FALSE);
+  res = g_rc_box_alloc_full (block_size, STRUCT_ALIGNMENT, FALSE, FALSE);
   memcpy (res, mem_block, block_size);
 
   return res;
@@ -416,13 +466,15 @@ g_rc_box_release_full (gpointer       mem_block,
 
   if (g_ref_count_dec (&real_box->ref_count))
     {
+      char *real_mem = (char *) real_box - real_box->private_offset;
+
       TRACE (GLIB_RCBOX_RELEASE (mem_block, 0));
 
       if (clear_func != NULL)
         clear_func (mem_block);
 
       TRACE (GLIB_RCBOX_FREE (mem_block));
-      g_free (real_box);
+      g_free (real_mem);
     }
 }
 
index 8b0d8dd..73b578d 100644 (file)
@@ -27,6 +27,7 @@ typedef struct {
   grefcount ref_count;
 
   gsize mem_size;
+  gsize private_offset;
 
 #ifndef G_DISABLE_ASSERT
   /* A "magic" number, used to perform additional integrity
@@ -40,6 +41,7 @@ typedef struct {
   gatomicrefcount ref_count;
 
   gsize mem_size;
+  gsize private_offset;
 
 #ifndef G_DISABLE_ASSERT
   guint32 magic;
@@ -51,10 +53,18 @@ typedef struct {
 /* Keep the two refcounted boxes identical in size */
 G_STATIC_ASSERT (sizeof (GRcBox) == sizeof (GArcBox));
 
+/* This is the default alignment we use when allocating the
+ * refcounted memory blocks; it's similar to the alignment
+ * guaranteed by the malloc() in GNU's libc and by the GSlice
+ * allocator
+ */
+#define STRUCT_ALIGNMENT (2 * sizeof (gsize))
+
 #define G_RC_BOX_SIZE sizeof (GRcBox)
 #define G_ARC_BOX_SIZE sizeof (GArcBox)
 
 gpointer        g_rc_box_alloc_full     (gsize    block_size,
+                                         gsize    alignment,
                                          gboolean atomic,
                                          gboolean clear);
 
index 3708531..7cb12fc 100644 (file)
@@ -199,7 +199,7 @@ gboolean
  * g_atomic_ref_count_init:
  * @arc: the address of an atomic reference count variable
  *
- * Atomically initializes a reference count variable.
+ * Initializes a reference count variable.
  *
  * Since: 2.58
  */
@@ -217,7 +217,7 @@ void
    * Acquiring a reference moves us towards MAXINT, and releasing a
    * reference moves us towards 0.
    */
-  g_atomic_int_set (arc, 1);
+  *arc = 1;
 }
 
 /**
index b6eced1..599dac9 100644 (file)
@@ -92,7 +92,7 @@ gboolean        g_atomic_ref_count_compare      (gatomicrefcount *arc,
   (G_GNUC_EXTENSION ({ \
     G_STATIC_ASSERT (sizeof *(rc) == sizeof (gatomicrefcount)); \
     (void) (0 ? *(rc) ^ *(rc) : 1); \
-    g_atomic_int_set ((rc), 1); \
+    *(rc) = 1; \
   }))
 
 # define g_atomic_ref_count_inc(rc) \
index 65b391f..c27767c 100644 (file)
@@ -39,6 +39,19 @@ void    g_ref_string_release    (char       *str);
 GLIB_AVAILABLE_IN_2_58
 gsize   g_ref_string_length     (char       *str);
 
+/**
+ * GRefString:
+ *
+ * A typedef for a reference-counted string. A pointer to a #GRefString can be
+ * treated like a standard `char*` array by all code, but can additionally have
+ * `g_ref_string_*()` methods called on it. `g_ref_string_*()` methods cannot be
+ * called on `char*` arrays not allocated using g_ref_string_new().
+ *
+ * If using #GRefString with autocleanups, g_autoptr() must be used rather than
+ * g_autofree(), so that the reference counting metadata is also freed.
+ *
+ * Since: 2.58
+ */
 typedef char GRefString;
 
 G_END_DECLS
index f49aaae..f004c1f 100644 (file)
@@ -2537,6 +2537,7 @@ expand_escape (const gchar        *replacement,
           base = 8;
           p = g_utf8_next_char (p);
         }
+      G_GNUC_FALLTHROUGH;
     case '1':
     case '2':
     case '3':
index 1a56b19..4243fd5 100644 (file)
@@ -36,6 +36,7 @@
 #include <direct.h>
 #include <io.h>
 #include <sys/utime.h>
+#include <stdlib.h> /* for MB_CUR_MAX */
 #else
 #include <utime.h>
 #include <errno.h>
@@ -123,6 +124,140 @@ w32_error_to_errno (DWORD error_code)
 
 #include "gstdio-private.c"
 
+/* From
+ * https://support.microsoft.com/en-ca/help/167296/how-to-convert-a-unix-time-t-to-a-win32-filetime-or-systemtime
+ * FT = UT * 10000000 + 116444736000000000.
+ * Therefore:
+ * UT = (FT - 116444736000000000) / 10000000.
+ */
+static gint64
+_g_win32_filetime_to_unix_time (FILETIME *ft)
+{
+  gint64 result;
+  /* 1 unit of FILETIME is 100ns */
+  const gint64 hundreds_of_usec_per_sec = 10000000;
+  /* The difference between January 1, 1601 UTC (FILETIME epoch) and UNIX epoch
+   * in hundreds of nanoseconds.
+   */
+  const gint64 filetime_unix_epoch_offset = 116444736000000000;
+
+  result = ((gint64) ft->dwLowDateTime) | (((gint64) ft->dwHighDateTime) << 32);
+  return (result - filetime_unix_epoch_offset) / hundreds_of_usec_per_sec;
+}
+
+#  ifdef _MSC_VER
+#    ifndef S_IXUSR
+#      define _S_IRUSR _S_IREAD
+#      define _S_IWUSR _S_IWRITE
+#      define _S_IXUSR _S_IEXEC
+#      define S_IRUSR _S_IRUSR
+#      define S_IWUSR _S_IWUSR
+#      define S_IXUSR _S_IXUSR
+#      define S_IRGRP (S_IRUSR >> 3)
+#      define S_IWGRP (S_IWUSR >> 3)
+#      define S_IXGRP (S_IXUSR >> 3)
+#      define S_IROTH (S_IRGRP >> 3)
+#      define S_IWOTH (S_IWGRP >> 3)
+#      define S_IXOTH (S_IXGRP >> 3)
+#    endif
+#    ifndef S_ISDIR
+#      define S_ISDIR(m) (((m) & _S_IFMT) == _S_IFDIR)
+#    endif
+#  endif
+
+static int
+_g_win32_fill_statbuf_from_handle_info (const wchar_t              *filename,
+                                        const wchar_t              *filename_target,
+                                        BY_HANDLE_FILE_INFORMATION *handle_info,
+                                        struct __stat64            *statbuf)
+{
+  wchar_t drive_letter_w = 0;
+  size_t drive_letter_size = MB_CUR_MAX;
+  char *drive_letter = _alloca (drive_letter_size);
+
+  /* If filename (target or link) is absolute,
+   * then use the drive letter from it as-is.
+   */
+  if (filename_target != NULL &&
+      filename_target[0] != L'\0' &&
+      filename_target[1] == L':')
+    drive_letter_w = filename_target[0];
+  else if (filename[0] != L'\0' &&
+           filename[1] == L':')
+    drive_letter_w = filename[0];
+
+  if (drive_letter_w > 0 &&
+      iswalpha (drive_letter_w) &&
+      iswascii (drive_letter_w) &&
+      wctomb (drive_letter, drive_letter_w) == 1)
+    statbuf->st_dev = toupper (drive_letter[0]) - 'A'; /* 0 means A: drive */
+  else
+    /* Otherwise use the PWD drive.
+     * Return value of 0 gives us 0 - 1 = -1,
+     * which is the "no idea" value for st_dev.
+     */
+    statbuf->st_dev = _getdrive () - 1;
+
+  statbuf->st_rdev = statbuf->st_dev;
+  /* Theoretically, it's possible to set it for ext-FS. No idea how.
+   * Meaningless for all filesystems that Windows normally uses.
+   */
+  statbuf->st_ino = 0;
+  statbuf->st_mode = 0;
+
+  if ((handle_info->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
+    statbuf->st_mode |= S_IFDIR | S_IXUSR | S_IXGRP | S_IXOTH;
+  else
+    statbuf->st_mode |= S_IFREG;
+  /* No idea what S_IFCHR means here. */
+  /* S_IFIFO is not even mentioned in MSDN */
+  /* S_IFBLK is also not mentioned */
+
+  /* The aim here is to reproduce MS stat() behaviour,
+   * even if it's braindead.
+   */
+  statbuf->st_mode |= S_IRUSR | S_IRGRP | S_IROTH;
+  if ((handle_info->dwFileAttributes & FILE_ATTRIBUTE_READONLY) != FILE_ATTRIBUTE_READONLY)
+    statbuf->st_mode |= S_IWUSR | S_IWGRP | S_IWOTH;
+
+  if (!S_ISDIR (statbuf->st_mode))
+    {
+      const wchar_t *name;
+      const wchar_t *dot = NULL;
+
+      if (filename_target != NULL)
+        name = filename_target;
+      else
+        name = filename;
+
+      do
+        {
+          wchar_t *last_dot = wcschr (name, L'.');
+          if (last_dot == NULL)
+            break;
+          dot = last_dot;
+          name = &last_dot[1];
+        }
+      while (TRUE);
+
+      if ((dot != NULL &&
+          (wcsicmp (dot, L".exe") == 0 ||
+           wcsicmp (dot, L".com") == 0 ||
+           wcsicmp (dot, L".bat") == 0 ||
+           wcsicmp (dot, L".cmd") == 0)))
+        statbuf->st_mode |= S_IXUSR | S_IXGRP | S_IXOTH;
+    }
+
+  statbuf->st_nlink = handle_info->nNumberOfLinks;
+  statbuf->st_uid = statbuf->st_gid = 0;
+  statbuf->st_size = (((guint64) handle_info->nFileSizeHigh) << 32) | handle_info->nFileSizeLow;
+  statbuf->st_ctime = _g_win32_filetime_to_unix_time (&handle_info->ftCreationTime);
+  statbuf->st_mtime = _g_win32_filetime_to_unix_time (&handle_info->ftLastWriteTime);
+  statbuf->st_atime = _g_win32_filetime_to_unix_time (&handle_info->ftLastAccessTime);
+
+  return 0;
+}
+
 static int
 _g_win32_stat_utf16_no_trailing_slashes (const gunichar2    *filename,
                                          int                 fd,
@@ -232,11 +367,9 @@ _g_win32_stat_utf16_no_trailing_slashes (const gunichar2    *filename,
 
       if (is_symlink && !for_symlink)
         {
-          /* If filename is a symlink, _wstat64 obtains information about
-           * the symlink (except that st_size will be 0).
+          /* If filename is a symlink, but we need the target.
            * To get information about the target we need to resolve
-           * the symlink first. And we need _wstat64() to get st_dev,
-           * it's a bother to try finding it ourselves.
+           * the symlink first.
            */
           DWORD filename_target_len;
           DWORD new_len;
@@ -326,8 +459,18 @@ _g_win32_stat_utf16_no_trailing_slashes (const gunichar2    *filename,
       return -1;
     }
 
+  /*
+   * We can't use _wstat64() here, because with UCRT it now gives
+   * information about the target, even if we want information about
+   * the link itself (unlike MSVCRT, which gave information about
+   * the link, and if we needed information about the target we were
+   * able to resolve it by ourselves prior to calling _wstat64()).
+   */
   if (fd < 0)
-    result = _wstat64 (filename_target != NULL ? filename_target : filename, &statbuf);
+    result = _g_win32_fill_statbuf_from_handle_info (filename,
+                                                     filename_target,
+                                                     &handle_info,
+                                                     &statbuf);
   else
     result = _fstat64 (fd, &statbuf);
 
index a9889dd..756dbc5 100644 (file)
@@ -1140,6 +1140,11 @@ g_parse_long_long (const gchar  *nptr,
  * changing the current locale, since that would not be
  * thread-safe.
  *
+ * Note that input with a leading minus sign (`-`) is accepted, and will return
+ * the negation of the parsed number, unless that would overflow a #guint64.
+ * Critically, this means you cannot assume that a short fixed length input will
+ * never result in a low return value, as the input could have a leading `-`.
+ *
  * This function is typically used when reading configuration
  * files or other non-user input that should be locale independent.
  * To handle input from the user you should normally use the
@@ -3176,6 +3181,40 @@ g_strv_contains (const gchar * const *strv,
   return FALSE;
 }
 
+/**
+ * g_strv_equal:
+ * @strv1: a %NULL-terminated array of strings
+ * @strv2: another %NULL-terminated array of strings
+ *
+ * Checks if @strv1 and @strv2 contain exactly the same elements in exactly the
+ * same order. Elements are compared using g_str_equal(). To match independently
+ * of order, sort the arrays first (using g_qsort_with_data() or similar).
+ *
+ * Two empty arrays are considered equal. Neither @strv1 not @strv2 may be
+ * %NULL.
+ *
+ * Returns: %TRUE if @strv1 and @strv2 are equal
+ * Since: 2.60
+ */
+gboolean
+g_strv_equal (const gchar * const *strv1,
+              const gchar * const *strv2)
+{
+  g_return_val_if_fail (strv1 != NULL, FALSE);
+  g_return_val_if_fail (strv2 != NULL, FALSE);
+
+  if (strv1 == strv2)
+    return TRUE;
+
+  for (; *strv1 != NULL && *strv2 != NULL; strv1++, strv2++)
+    {
+      if (!g_str_equal (*strv1, *strv2))
+        return FALSE;
+    }
+
+  return (*strv1 == NULL && *strv2 == NULL);
+}
+
 static gboolean
 str_has_sign (const gchar *str)
 {
@@ -3304,7 +3343,8 @@ g_ascii_string_to_signed (const gchar  *str,
  * @base that is within inclusive bounds limited by @min and @max. If
  * this is true, then the converted number is stored in @out_num. An
  * empty string is not a valid input. A string with leading or
- * trailing whitespace is also an invalid input.
+ * trailing whitespace is also an invalid input. A string with a leading sign
+ * (`-` or `+`) is not a valid input for the unsigned parser.
  *
  * @base can be between 2 and 36 inclusive. Hexadecimal numbers must
  * not be prefixed with "0x" or "0X". Such a problem does not exist
index 6b6ce52..fc88cc1 100644 (file)
@@ -307,6 +307,10 @@ GLIB_AVAILABLE_IN_2_44
 gboolean              g_strv_contains  (const gchar * const *strv,
                                         const gchar         *str);
 
+GLIB_AVAILABLE_IN_2_60
+gboolean              g_strv_equal     (const gchar * const *strv1,
+                                        const gchar * const *strv2);
+
 /* Convenience ASCII string to number API */
 
 /**
index 7b29c27..4b008f3 100644 (file)
@@ -27,7 +27,6 @@
 #include <sys/time.h>
 #include <fcntl.h>
 #include <unistd.h>
-#include <glib/gstdio.h>
 #endif
 #include <string.h>
 #include <stdlib.h>
@@ -44,6 +43,7 @@
 #ifdef HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif /* HAVE_SYS_SELECT_H */
+#include <glib/gstdio.h>
 
 #include "gmain.h"
 #include "gpattern.h"
@@ -53,6 +53,7 @@
 #include "gslice.h"
 #include "gspawn.h"
 #include "glib-private.h"
+#include "gutilsprivate.h"
 
 
 /**
@@ -90,7 +91,8 @@
  * 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(),
- * g_assert_cmphex(), g_assert_cmpstr(), and g_assert_cmpmem(). The
+ * g_assert_cmphex(), g_assert_cmpstr(), g_assert_cmpmem() and
+ * g_assert_cmpvariant(). The
  * advantage of these variants over plain g_assert_true() is that the assertion
  * messages can be more elaborate, and include the values of the compared
  * entities.
  * g_assert_cmpstr:
  * @s1: a string (may be %NULL)
  * @cmp: The comparison operator to use.
- *     One of ==, !=, <, >, <=, >=.
+ *     One of `==`, `!=`, `<`, `>`, `<=`, `>=`.
  * @s2: another string (may be %NULL)
  *
  * Debugging macro to compare two strings. If the comparison fails,
  * g_assert_cmpint:
  * @n1: an integer
  * @cmp: The comparison operator to use.
- *     One of ==, !=, <, >, <=, >=.
+ *     One of `==`, `!=`, `<`, `>`, `<=`, `>=`.
  * @n2: another integer
  *
  * Debugging macro to compare two integers.
  * g_assert_cmpuint:
  * @n1: an unsigned integer
  * @cmp: The comparison operator to use.
- *     One of ==, !=, <, >, <=, >=.
+ *     One of `==`, `!=`, `<`, `>`, `<=`, `>=`.
  * @n2: another unsigned integer
  *
  * Debugging macro to compare two unsigned integers.
  * g_assert_cmphex:
  * @n1: an unsigned integer
  * @cmp: The comparison operator to use.
- *     One of ==, !=, <, >, <=, >=.
+ *     One of `==`, `!=`, `<`, `>`, `<=`, `>=`.
  * @n2: another unsigned integer
  *
  * Debugging macro to compare to unsigned integers.
  * g_assert_cmpfloat:
  * @n1: an floating point number
  * @cmp: The comparison operator to use.
- *     One of ==, !=, <, >, <=, >=.
+ *     One of `==`, `!=`, `<`, `>`, `<=`, `>=`.
  * @n2: another floating point number
  *
  * Debugging macro to compare two floating point numbers.
  */
 
 /**
+ * g_assert_cmpvariant:
+ * @v1: pointer to a #GVariant
+ * @v2: pointer to another #GVariant
+ *
+ * Debugging macro to compare two #GVariants. If the comparison fails,
+ * an error message is logged and the application is either terminated
+ * or the testcase marked as failed. The variants are compared using
+ * g_variant_equal().
+ *
+ * The effect of `g_assert_cmpvariant (v1, v2)` is the same as
+ * `g_assert_true (g_variant_equal (v1, v2))`. The advantage of this macro is
+ * that it can produce a message that includes the actual values of @v1 and @v2.
+ *
+ * Since: 2.60
+ */
+
+/**
  * g_assert_no_error:
  * @err: a #GError, possibly %NULL
  *
  *
  * This can only be used to test for a specific error. If you want to
  * test that @err is set, but don't care what it's set to, just use
- * `g_assert (err != NULL)`
+ * `g_assert_nonnull (err)`.
  *
  * Since: 2.20
  */
@@ -807,8 +826,12 @@ static const char * const g_test_result_names[] = {
 static int         test_log_fd = -1;
 static gboolean    test_mode_fatal = TRUE;
 static gboolean    g_test_run_once = TRUE;
+static gboolean    test_isolate_dirs = FALSE;
+static gchar      *test_isolate_dirs_tmpdir = NULL;
+static const gchar *test_tmpdir = NULL;
 static gboolean    test_run_list = FALSE;
 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 GSList    **test_filename_free_list;
@@ -1242,15 +1265,139 @@ parse_args (gint    *argc_p,
   *argc_p = e;
 }
 
+/* A fairly naive `rm -rf` implementation to clean up after unit tests. */
+static void
+rm_rf (const gchar *path)
+{
+  GDir *dir = NULL;
+  const gchar *entry;
+
+  dir = g_dir_open (path, 0, NULL);
+  if (dir == NULL)
+    {
+      /* Assume it’s a file. */
+      g_remove (path);
+      return;
+    }
+
+  while ((entry = g_dir_read_name (dir)) != NULL)
+    {
+      gchar *sub_path = g_build_filename (path, entry, NULL);
+      rm_rf (sub_path);
+      g_free (sub_path);
+    }
+
+  g_dir_close (dir);
+
+  g_rmdir (path);
+}
+
+/* Implement the %G_TEST_OPTION_ISOLATE_DIRS option, iff it’s enabled. Create
+ * a temporary directory for this unit test (disambiguated using @test_run_name)
+ * and use g_set_user_dirs() to point various XDG directories into it, without
+ * having to call setenv() in a process which potentially has threads running.
+ *
+ * Note that this is called for each unit test, and hence won’t have taken
+ * effect before g_test_run() is called in the unit test’s main(). Hence
+ * references to XDG variables in main() will not be using the temporary
+ * directory. */
+static gboolean
+test_do_isolate_dirs (GError **error)
+{
+  gchar *subdir = NULL;
+  gchar *home_dir = NULL, *cache_dir = NULL, *config_dir = NULL;
+  gchar *data_dir = NULL, *runtime_dir = NULL;
+  gchar *config_dirs[3];
+  gchar *data_dirs[3];
+
+  if (!test_isolate_dirs)
+    return TRUE;
+
+  /* The @test_run_name includes the test suites, so may be several directories
+   * 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);
+
+  /* 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
+   * test for testing purposes — see
+   * https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html.
+   * We don’t need to create the other directories — the specification
+   * requires that client code create them if they don’t exist. Not creating
+   * them automatically is a good test of clients’ adherence to the spec
+   * and error handling of missing directories. */
+  runtime_dir = g_build_filename (subdir, "runtime", NULL);
+  if (g_mkdir_with_parents (runtime_dir, 0700) != 0)
+    {
+      gint saved_errno = errno;
+      g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (saved_errno),
+                   "Failed to create XDG_RUNTIME_DIR ‘%s’: %s",
+                  runtime_dir, g_strerror (saved_errno));
+      g_free (runtime_dir);
+      g_free (subdir);
+      return FALSE;
+    }
+
+  home_dir = g_build_filename (subdir, "home", NULL);
+  cache_dir = g_build_filename (subdir, "cache", NULL);
+  config_dir = g_build_filename (subdir, "config", NULL);
+  data_dir = g_build_filename (subdir, "data", NULL);
+
+  config_dirs[0] = g_build_filename (subdir, "system-config1", NULL);
+  config_dirs[1] = g_build_filename (subdir, "system-config2", NULL);
+  config_dirs[2] = NULL;
+
+  data_dirs[0] = g_build_filename (subdir, "system-data1", NULL);
+  data_dirs[1] = g_build_filename (subdir, "system-data2", NULL);
+  data_dirs[2] = NULL;
+
+  /* Remember to update the documentation for %G_TEST_OPTION_ISOLATE_DIRS if
+   * this list changes. */
+  g_set_user_dirs ("HOME", home_dir,
+                   "XDG_CACHE_HOME", cache_dir,
+                   "XDG_CONFIG_DIRS", config_dirs,
+                   "XDG_CONFIG_HOME", config_dir,
+                   "XDG_DATA_DIRS", data_dirs,
+                   "XDG_DATA_HOME", data_dir,
+                   "XDG_RUNTIME_DIR", runtime_dir,
+                   NULL);
+
+  g_free (runtime_dir);
+  g_free (data_dir);
+  g_free (config_dir);
+  g_free (cache_dir);
+  g_free (home_dir);
+  g_free (data_dirs[1]);
+  g_free (data_dirs[0]);
+  g_free (config_dirs[1]);
+  g_free (config_dirs[0]);
+  g_free (subdir);
+
+  return TRUE;
+}
+
+/* Clean up after test_do_isolate_dirs(). */
+static void
+test_rm_isolate_dirs (void)
+{
+  gchar *subdir = NULL;
+
+  if (!test_isolate_dirs)
+    return;
+
+  subdir = g_build_filename (test_tmpdir, test_run_name, NULL);
+  rm_rf (subdir);
+  g_free (subdir);
+}
+
 /**
  * g_test_init:
  * @argc: Address of the @argc parameter of the main() function.
  *        Changed if any arguments were handled.
  * @argv: Address of the @argv parameter of main().
  *        Any parameters understood by g_test_init() stripped before return.
- * @...: %NULL-terminated list of special options. Currently the only
- *       defined option is `"no_g_set_prgname"`, which
- *       will cause g_test_init() to not call g_set_prgname().
+ * @...: %NULL-terminated list of special options, documented below.
  *
  * Initialize the GLib testing framework, e.g. by seeding the
  * test random number generator, the name for g_get_prgname()
@@ -1284,6 +1431,14 @@ parse_args (gint    *argc_p,
  *
  * - `--debug-log`: Debug test logging output.
  *
+ * Options which can be passed to @... are:
+ *
+ *  - `"no_g_set_prgname"`: Causes g_test_init() to not call g_set_prgname().
+ *  - %G_TEST_OPTION_ISOLATE_DIRS: Creates a unique temporary directory for each
+ *    unit test and uses g_set_user_dirs() to set XDG directories to point into
+ *    that temporary directory for the duration of the unit test. See the
+ *    documentation for %G_TEST_OPTION_ISOLATE_DIRS.
+ *
  * Since 2.58, if tests are compiled with `G_DISABLE_ASSERT` defined,
  * g_test_init() will print an error and exit. This is to prevent no-op tests
  * from being executed, as g_assert() is commonly (erroneously) used in unit
@@ -1316,6 +1471,8 @@ void
     {
       if (g_strcmp0 (option, "no_g_set_prgname") == 0)
         no_g_set_prgname = TRUE;
+      else if (g_strcmp0 (option, G_TEST_OPTION_ISOLATE_DIRS) == 0)
+        test_isolate_dirs = TRUE;
     }
   va_end (args);
 
@@ -1329,6 +1486,77 @@ void
   if (!g_get_prgname() && !no_g_set_prgname)
     g_set_prgname ((*argv)[0]);
 
+  /* 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
+   * the setup function, test, and teardown function, for each unit test.
+   * See test_do_isolate_dirs().
+   *
+   * The directory is deleted at the bottom of g_test_run().
+   *
+   * Rather than setting the XDG_* environment variables we use a new
+   * G_TEST_TMPDIR variable which gives the top-level temporary directory. This
+   * allows test subprocesses to reuse the same temporary directory when
+   * g_test_init() is called in them. */
+  if (test_isolate_dirs)
+    {
+      if (g_getenv ("G_TEST_TMPDIR") == NULL)
+        {
+          gchar *test_prgname = NULL;
+          gchar *tmpl = NULL;
+          GError *local_error = NULL;
+
+          test_prgname = g_path_get_basename (g_get_prgname ());
+          if (*test_prgname == '\0')
+            test_prgname = g_strdup ("unknown");
+          tmpl = g_strdup_printf ("test_%s_XXXXXX", test_prgname);
+          g_free (test_prgname);
+
+          test_isolate_dirs_tmpdir = g_dir_make_tmp (tmpl, &local_error);
+          if (local_error != NULL)
+            {
+              g_printerr ("%s: Failed to create temporary directory: %s\n",
+                          (*argv)[0], local_error->message);
+              g_error_free (local_error);
+              exit (1);
+            }
+          g_free (tmpl);
+
+          /* Propagate the temporary directory to subprocesses. */
+          g_setenv ("G_TEST_TMPDIR", test_isolate_dirs_tmpdir, TRUE);
+
+          /* And clear the traditional environment variables so subprocesses
+           * spawned by the code under test can’t trash anything. If a test
+           * spawns a process, the test is responsible for propagating
+           * appropriate environment variables.
+           *
+           * We assume that any in-process code will use g_get_user_data_dir()
+           * and friends, rather than getenv() directly.
+           *
+           * We set them to ‘/dev/null’ as that should fairly obviously not
+           * accidentally work, and should be fairly greppable. */
+            {
+              const gchar *overridden_environment_variables[] =
+                {
+                  "HOME",
+                  "XDG_CACHE_HOME",
+                  "XDG_CONFIG_DIRS",
+                  "XDG_CONFIG_HOME",
+                  "XDG_DATA_DIRS",
+                  "XDG_DATA_HOME",
+                  "XDG_RUNTIME_DIR",
+                };
+              gsize i;
+
+              for (i = 0; i < G_N_ELEMENTS (overridden_environment_variables); i++)
+                g_setenv (overridden_environment_variables[i], "/dev/null", TRUE);
+            }
+        }
+
+      /* Cache this for the remainder of this process’ lifetime. */
+      test_tmpdir = g_getenv ("G_TEST_TMPDIR");
+    }
+
   /* sanity check */
   if (test_tap_log)
     {
@@ -1437,7 +1665,13 @@ test_run_seed (const gchar *rseed)
 gint32
 g_test_rand_int (void)
 {
-  return g_rand_int (test_run_rand);
+  gint32 r;
+
+  G_LOCK (test_run_rand);
+  r = g_rand_int (test_run_rand);
+  G_UNLOCK (test_run_rand);
+
+  return r;
 }
 
 /**
@@ -1456,7 +1690,13 @@ gint32
 g_test_rand_int_range (gint32          begin,
                        gint32          end)
 {
-  return g_rand_int_range (test_run_rand, begin, end);
+  gint32 r;
+
+  G_LOCK (test_run_rand);
+  r = g_rand_int_range (test_run_rand, begin, end);
+  G_UNLOCK (test_run_rand);
+
+  return r;
 }
 
 /**
@@ -1472,7 +1712,13 @@ g_test_rand_int_range (gint32          begin,
 double
 g_test_rand_double (void)
 {
-  return g_rand_double (test_run_rand);
+  double r;
+
+  G_LOCK (test_run_rand);
+  r = g_rand_double (test_run_rand);
+  G_UNLOCK (test_run_rand);
+
+  return r;
 }
 
 /**
@@ -1491,7 +1737,13 @@ double
 g_test_rand_double_range (double          range_start,
                           double          range_end)
 {
-  return g_rand_double_range (test_run_rand, range_start, range_end);
+  double r;
+
+  G_LOCK (test_run_rand);
+  r = g_rand_double_range (test_run_rand, range_start, range_end);
+  G_UNLOCK (test_run_rand);
+
+  return r;
 }
 
 /**
@@ -1755,6 +2007,14 @@ g_test_run (void)
   if (g_test_run_suite (g_test_get_root()) != 0)
     return 1;
 
+  /* Clean up the temporary directory. */
+  if (test_isolate_dirs_tmpdir != NULL)
+    {
+      rm_rf (test_isolate_dirs_tmpdir);
+      g_free (test_isolate_dirs_tmpdir);
+      test_isolate_dirs_tmpdir = NULL;
+    }
+
   /* 77 is special to Automake's default driver, but not Automake's TAP driver
    * or Perl's prove(1) TAP driver. */
   if (test_tap_log)
@@ -1871,6 +2131,7 @@ g_test_add_vtable (const char       *testpath,
   g_return_if_fail (testpath != NULL);
   g_return_if_fail (g_path_is_absolute (testpath));
   g_return_if_fail (fixture_test_func != NULL);
+  g_return_if_fail (!test_isolate_dirs || strstr (testpath, "/.") == NULL);
 
   suite = g_test_get_root();
   segments = g_strsplit (testpath, "/", -1);
@@ -2059,6 +2320,10 @@ g_test_set_nonfatal_assertions (void)
  * the test will be skipped by default, and only run if explicitly
  * required via the `-p` command-line option or g_test_trap_subprocess().
  *
+ * No component of @testpath may start with a dot (`.`) if the
+ * %G_TEST_OPTION_ISOLATE_DIRS option is being used; and it is recommended to
+ * do so even if it isn’t.
+ *
  * Since: 2.16
  */
 void
@@ -2097,6 +2362,10 @@ g_test_add_func (const char *testpath,
  * the test will be skipped by default, and only run if explicitly
  * required via the `-p` command-line option or g_test_trap_subprocess().
  *
+ * No component of @testpath may start with a dot (`.`) if the
+ * %G_TEST_OPTION_ISOLATE_DIRS option is being used; and it is recommended to
+ * do so even if it isn’t.
+ *
  * Since: 2.16
  */
 void
@@ -2310,25 +2579,38 @@ test_case_run (GTestCase *tc)
         g_test_skip ("by request (-s option)");
       else
         {
-          g_timer_start (test_run_timer);
-          fixture = tc->fixture_size ? g_malloc0 (tc->fixture_size) : tc->test_data;
-          test_run_seed (test_run_seedstr);
-          if (tc->fixture_setup)
-            tc->fixture_setup (fixture, tc->test_data);
-          tc->fixture_test (fixture, tc->test_data);
-          test_trap_clear();
-          while (test_destroy_queue)
+          GError *local_error = NULL;
+
+          if (!test_do_isolate_dirs (&local_error))
+            {
+              g_test_log (G_TEST_LOG_ERROR, local_error->message, NULL, 0, NULL);
+              g_test_fail ();
+              g_error_free (local_error);
+            }
+          else
             {
-              DestroyEntry *dentry = test_destroy_queue;
-              test_destroy_queue = dentry->next;
-              dentry->destroy_func (dentry->destroy_data);
-              g_slice_free (DestroyEntry, dentry);
+              g_timer_start (test_run_timer);
+              fixture = tc->fixture_size ? g_malloc0 (tc->fixture_size) : tc->test_data;
+              test_run_seed (test_run_seedstr);
+              if (tc->fixture_setup)
+                tc->fixture_setup (fixture, tc->test_data);
+              tc->fixture_test (fixture, tc->test_data);
+              test_trap_clear();
+              while (test_destroy_queue)
+                {
+                  DestroyEntry *dentry = test_destroy_queue;
+                  test_destroy_queue = dentry->next;
+                  dentry->destroy_func (dentry->destroy_data);
+                  g_slice_free (DestroyEntry, dentry);
+                }
+              if (tc->fixture_teardown)
+                tc->fixture_teardown (fixture, tc->test_data);
+              if (tc->fixture_size)
+                g_free (fixture);
+              g_timer_stop (test_run_timer);
             }
-          if (tc->fixture_teardown)
-            tc->fixture_teardown (fixture, tc->test_data);
-          if (tc->fixture_size)
-            g_free (fixture);
-          g_timer_stop (test_run_timer);
+
+          test_rm_isolate_dirs ();
         }
       success = test_run_success;
       test_run_success = G_TEST_RUN_FAILURE;
@@ -2598,11 +2880,14 @@ g_assertion_message (const char     *domain,
 
 /**
  * g_assertion_message_expr: (skip)
- * @domain: (nullable):
- * @file:
- * @line:
- * @func:
- * @expr: (nullable):
+ * @domain: (nullable): log domain
+ * @file: file containing the assertion
+ * @line: line number of the assertion
+ * @func: function containing the assertion
+ * @expr: (nullable): expression which failed
+ *
+ * Internal function used to print messages from the public g_assert() and
+ * g_assert_not_reached() macros.
  */
 void
 g_assertion_message_expr (const char     *domain,
@@ -3343,7 +3628,8 @@ 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", process_id, match_error, stdout_pattern);
+      msg = g_strdup_printf ("stdout of child process (%s) %s: %s\nstderr was:\n%s",
+                             process_id, match_error, stdout_pattern, test_trap_last_stdout);
       g_assertion_message (domain, file, line, func, msg);
       g_free (msg);
     }
@@ -3353,7 +3639,8 @@ 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", process_id, match_error, stderr_pattern);
+      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_assertion_message (domain, file, line, func, msg);
       g_free (msg);
     }
@@ -3733,25 +4020,3 @@ g_test_get_filename (GTestFileType  file_type,
 
   return result;
 }
-
-/* --- macros docs START --- */
-/**
- * g_test_add:
- * @testpath:  The test path for a new test case.
- * @Fixture:   The type of a fixture data structure.
- * @tdata:     Data argument for the test functions.
- * @fsetup:    The function to set up the fixture data.
- * @ftest:     The actual test function.
- * @fteardown: The function to tear down the fixture data.
- *
- * Hook up a new test case at @testpath, similar to g_test_add_func().
- * A fixture data structure with setup and teardown functions may be provided,
- * similar to g_test_create_case().
- *
- * g_test_add() is implemented as a macro, so that the fsetup(), ftest() and
- * fteardown() callbacks can expect a @Fixture pointer as their first argument
- * in a type safe manner. They otherwise have type #GTestFixtureFunc.
- *
- * Since: 2.16
- **/
-/* --- macros docs END --- */
index 550e241..4aa6fa1 100644 (file)
@@ -87,6 +87,23 @@ typedef void (*GTestFixtureFunc) (gpointer      fixture,
                                                g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
                                                                     "assertion failed (" #m1 " == " #m2 ")"); \
                                         } G_STMT_END
+#define g_assert_cmpvariant(v1, v2) \
+  G_STMT_START \
+  { \
+    GVariant *__v1 = (v1), *__v2 = (v2); \
+    if (!g_variant_equal (__v1, __v2)) \
+      { \
+        gchar *__s1, *__s2, *__msg; \
+        __s1 = g_variant_print (__v1, TRUE); \
+        __s2 = g_variant_print (__v2, TRUE); \
+        __msg = g_strdup_printf ("assertion failed (" #v1 " == " #v2 "): %s does not equal %s", __s1, __s2); \
+        g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, __msg); \
+        g_free (__s1); \
+        g_free (__s2); \
+        g_free (__msg); \
+      } \
+  } \
+  G_STMT_END
 #define g_assert_no_error(err)          G_STMT_START { \
                                              if (err) \
                                                g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
@@ -148,6 +165,36 @@ void    g_test_init                     (int            *argc,
                                          char         ***argv,
                                          ...) G_GNUC_NULL_TERMINATED;
 
+/**
+ * G_TEST_OPTION_ISOLATE_DIRS:
+ *
+ * Creates a unique temporary directory for each unit test and uses
+ * g_set_user_dirs() to set XDG directories to point into subdirectories of it
+ * for the duration of the unit test. The directory tree is cleaned up after the
+ * test finishes successfully. Note that this doesn’t take effect until
+ * g_test_run() is called, so calls to (for example) g_get_user_home_dir() will
+ * return the system-wide value when made in a test program’s main() function.
+ *
+ * The following functions will return subdirectories of the temporary directory
+ * when this option is used. The specific subdirectory paths in use are not
+ * guaranteed to be stable API — always use a getter function to retrieve them.
+ *
+ *  - g_get_home_dir()
+ *  - g_get_user_cache_dir()
+ *  - g_get_system_config_dirs()
+ *  - g_get_user_config_dir()
+ *  - g_get_system_data_dirs()
+ *  - g_get_user_data_dir()
+ *  - g_get_user_runtime_dir()
+ *
+ * The subdirectories may not be created by the test harness; as with normal
+ * calls to functions like g_get_user_cache_dir(), the caller must be prepared
+ * to create the directory if it doesn’t exist.
+ *
+ * Since: 2.60
+ */
+#define G_TEST_OPTION_ISOLATE_DIRS "isolate_dirs"
+
 /* While we discourage its use, g_assert() is often used in unit tests
  * (especially in legacy code). g_assert_*() should really be used instead.
  * g_assert() can be disabled at client program compile time, which can render
@@ -213,7 +260,25 @@ gboolean g_test_failed                  (void);
 GLIB_AVAILABLE_IN_2_38
 void    g_test_set_nonfatal_assertions  (void);
 
-/* hook up a test with fixture under test path */
+/**
+ * g_test_add:
+ * @testpath:  The test path for a new test case.
+ * @Fixture:   The type of a fixture data structure.
+ * @tdata:     Data argument for the test functions.
+ * @fsetup:    The function to set up the fixture data.
+ * @ftest:     The actual test function.
+ * @fteardown: The function to tear down the fixture data.
+ *
+ * Hook up a new test case at @testpath, similar to g_test_add_func().
+ * A fixture data structure with setup and teardown functions may be provided,
+ * similar to g_test_create_case().
+ *
+ * g_test_add() is implemented as a macro, so that the fsetup(), ftest() and
+ * fteardown() callbacks can expect a @Fixture pointer as their first argument
+ * in a type safe manner. They otherwise have type #GTestFixtureFunc.
+ *
+ * Since: 2.16
+ */
 #define g_test_add(testpath, Fixture, tdata, fsetup, ftest, fteardown) \
                                        G_STMT_START {                  \
                                          void (*add_vtable) (const char*,       \
index 5debfa6..69010f9 100644 (file)
  * simultaneous read-only access (by holding the 'reader' lock via
  * g_rw_lock_reader_lock()).
  *
+ * It is unspecified whether readers or writers have priority in acquiring the
+ * lock when a reader already holds the lock and a writer is queued to acquire
+ * it.
+ *
  * Here is an example for an array with access functions:
  * |[<!-- language="C" --> 
  *   GRWLock lock;
@@ -691,10 +695,10 @@ void
 
   g_return_if_fail (g_atomic_pointer_get (value_location) == NULL);
   g_return_if_fail (result != 0);
-  g_return_if_fail (g_once_init_list != NULL);
 
   g_atomic_pointer_set (value_location, result);
   g_mutex_lock (&g_once_mutex);
+  g_return_if_fail (g_once_init_list != NULL);
   g_once_init_list = g_slist_remove (g_once_init_list, (void*) value_location);
   g_cond_broadcast (&g_once_cond);
   g_mutex_unlock (&g_once_mutex);
index 3d765c2..80b0ef9 100644 (file)
@@ -336,6 +336,75 @@ g_mutex_locker_free (GMutexLocker *locker)
   g_mutex_unlock ((GMutex *) locker);
 }
 
+/**
+ * GRecMutexLocker:
+ *
+ * Opaque type. See g_rec_mutex_locker_new() for details.
+ * Since: 2.60
+ */
+typedef void GRecMutexLocker;
+
+/**
+ * g_rec_mutex_locker_new:
+ * @rec_mutex: a recursive mutex to lock
+ *
+ * Lock @rec_mutex and return a new #GRecMutexLocker. Unlock with
+ * g_rec_mutex_locker_free(). Using g_rec_mutex_unlock() on @rec_mutex
+ * while a #GRecMutexLocker exists can lead to undefined behaviour.
+ *
+ * This is intended to be used with g_autoptr().  Note that g_autoptr()
+ * is only available when using GCC or clang, so the following example
+ * will only work with those compilers:
+ * |[
+ * typedef struct
+ * {
+ *   ...
+ *   GRecMutex rec_mutex;
+ *   ...
+ * } MyObject;
+ *
+ * static void
+ * my_object_do_stuff (MyObject *self)
+ * {
+ *   g_autoptr(GRecMutexLocker) locker = g_rec_mutex_locker_new (&self->rec_mutex);
+ *
+ *   // Code with rec_mutex locked here
+ *
+ *   if (cond)
+ *     // No need to unlock
+ *     return;
+ *
+ *   // Optionally early unlock
+ *   g_clear_pointer (&locker, g_rec_mutex_locker_free);
+ *
+ *   // Code with rec_mutex unlocked here
+ * }
+ * ]|
+ *
+ * Returns: a #GRecMutexLocker
+ * Since: 2.60
+ */
+static inline GRecMutexLocker *
+g_rec_mutex_locker_new (GRecMutex *rec_mutex)
+{
+  g_rec_mutex_lock (rec_mutex);
+  return (GRecMutexLocker *) rec_mutex;
+}
+
+/**
+ * g_rec_mutex_locker_free:
+ * @locker: a GRecMutexLocker
+ *
+ * Unlock @locker's recursive mutex. See g_rec_mutex_locker_new() for details.
+ *
+ * Since: 2.60
+ */
+static inline void
+g_rec_mutex_locker_free (GRecMutexLocker *locker)
+{
+  g_rec_mutex_unlock ((GRecMutex *) locker);
+}
+
 G_END_DECLS
 
 #endif /* __G_THREAD_H__ */
index dd72893..a1fbda6 100644 (file)
@@ -31,6 +31,7 @@
 #include "gmain.h"
 #include "gtestutils.h"
 #include "gtimer.h"
+#include "gutils.h"
 
 /**
  * SECTION:thread_pools
@@ -401,10 +402,15 @@ g_thread_pool_start_thread (GRealThreadPool  *pool,
 
   if (!success)
     {
+      const gchar *prgname = g_get_prgname ();
+      gchar name[16] = "pool";
       GThread *thread;
 
+      if (prgname)
+        g_snprintf (name, sizeof (name), "pool-%s", prgname);
+
       /* No thread was found, we have to start a new one */
-      thread = g_thread_try_new ("pool", g_thread_pool_thread_proxy, pool, error);
+      thread = g_thread_try_new (name, g_thread_pool_thread_proxy, pool, error);
 
       if (thread == NULL)
         return FALSE;
index 5189824..3d38b17 100644 (file)
@@ -372,6 +372,8 @@ parse_constant_offset (const gchar *name,
           *offset = -*offset;
           return TRUE;
         }
+      else
+        return FALSE;
 
     default:
       return FALSE;
index 481bc52..36f841b 100644 (file)
@@ -847,6 +847,10 @@ GLIB_AVAILABLE_IN_ALL
 gboolean g_utf8_validate (const gchar  *str,
                           gssize        max_len,
                           const gchar **end);
+GLIB_AVAILABLE_IN_2_60
+gboolean g_utf8_validate_len (const gchar  *str,
+                              gsize         max_len,
+                              const gchar **end);
 
 GLIB_AVAILABLE_IN_ALL
 gchar *g_utf8_strup   (const gchar *str,
index 5834640..6334960 100644 (file)
@@ -20,7 +20,6 @@
 #define __G_UNICODE_PRIVATE_H__
 
 #include "gtypes.h"
-#include "gunicode.h"
 
 G_BEGIN_DECLS
 
@@ -28,10 +27,6 @@ gunichar *_g_utf8_normalize_wc (const gchar    *str,
                                 gssize          max_len,
                                GNormalizeMode  mode);
 
-gboolean _g_utf8_validate_len (const gchar  *str,
-                               gsize         max_len,
-                               const gchar **end);
-
 G_END_DECLS
 
 #endif /* __G_UNICODE_PRIVATE_H__ */
index 3e797a4..291534f 100644 (file)
@@ -39,7 +39,6 @@
 #include "gtypes.h"
 #include "gthread.h"
 #include "glibintl.h"
-#include "gunicodeprivate.h"
 
 #define UTF8_COMPUTE(Char, Mask, Len)                                        \
   if (Char < 128)                                                            \
@@ -1671,7 +1670,7 @@ g_utf8_validate (const char   *str,
   const gchar *p;
 
   if (max_len >= 0)
-    return _g_utf8_validate_len (str, max_len, end);
+    return g_utf8_validate_len (str, max_len, end);
 
   p = fast_validate (str);
 
@@ -1684,8 +1683,8 @@ g_utf8_validate (const char   *str,
     return TRUE;
 }
 
-/*
- * _g_utf8_validate_len:
+/**
+ * g_utf8_validate_len:
  * @str: (array length=max_len) (element-type guint8): a pointer to character data
  * @max_len: max bytes to validate
  * @end: (out) (optional) (transfer none): return location for end of valid data
@@ -1696,12 +1695,12 @@ g_utf8_validate (const char   *str,
  * will always return %FALSE if any of the bytes of @str are nul.
  *
  * Returns: %TRUE if the text was valid UTF-8
- * Since: 2.60 (backported to 2.58)
+ * Since: 2.60
  */
 gboolean
-_g_utf8_validate_len (const char   *str,
-                      gsize         max_len,
-                      const gchar **end)
+g_utf8_validate_len (const char   *str,
+                     gsize         max_len,
+                     const gchar **end)
 
 {
   const gchar *p;
index 2b750ab..09c1523 100644 (file)
@@ -29,6 +29,7 @@
 #include "config.h"
 
 #include "gutils.h"
+#include "gutilsprivate.h"
 
 #include <stdarg.h>
 #include <stdlib.h>
@@ -555,12 +556,13 @@ typedef struct
   gchar *home_dir;
 } UserDatabaseEntry;
 
+/* These must all be read/written with @g_utils_global held. */
 static  gchar   *g_user_data_dir = NULL;
 static  gchar  **g_system_data_dirs = NULL;
 static  gchar   *g_user_cache_dir = NULL;
 static  gchar   *g_user_config_dir = NULL;
+static  gchar   *g_user_runtime_dir = NULL;
 static  gchar  **g_system_config_dirs = NULL;
-
 static  gchar  **g_user_special_dirs = NULL;
 
 /* fifteen minutes of fame for everybody */
@@ -790,6 +792,79 @@ g_get_real_name (void)
   return entry->real_name;
 }
 
+/* Protected by @g_utils_global_lock. */
+static gchar *g_home_dir = NULL;  /* (owned) (nullable before initialised) */
+
+static gchar *
+g_build_home_dir (void)
+{
+  gchar *home_dir;
+
+  /* We first check HOME and use it if it is set */
+  home_dir = g_strdup (g_getenv ("HOME"));
+
+#ifdef G_OS_WIN32
+  /* Only believe HOME if it is an absolute path and exists.
+   *
+   * We only do this check on Windows for a couple of reasons.
+   * Historically, we only did it there because we used to ignore $HOME
+   * on UNIX.  There are concerns about enabling it now on UNIX because
+   * of things like autofs.  In short, if the user has a bogus value in
+   * $HOME then they get what they pay for...
+   */
+  if (home_dir != NULL)
+    {
+      if (!(g_path_is_absolute (home_dir) &&
+            g_file_test (home_dir, G_FILE_TEST_IS_DIR)))
+        g_clear_pointer (&home_dir, g_free);
+    }
+
+  /* In case HOME is Unix-style (it happens), convert it to
+   * Windows style.
+   */
+  if (home_dir != NULL)
+    {
+      gchar *p;
+      while ((p = strchr (home_dir, '/')) != NULL)
+        *p = '\\';
+    }
+
+  if (home_dir == NULL)
+    {
+      /* USERPROFILE is probably the closest equivalent to $HOME? */
+      if (g_getenv ("USERPROFILE") != NULL)
+        home_dir = g_strdup (g_getenv ("USERPROFILE"));
+    }
+
+  if (home_dir == NULL)
+    home_dir = get_special_folder (CSIDL_PROFILE);
+
+  if (home_dir == NULL)
+    home_dir = get_windows_directory_root ();
+#endif /* G_OS_WIN32 */
+
+  if (home_dir == NULL)
+    {
+      /* If we didn't get it from any of those methods, we will have
+       * to read the user database entry.
+       */
+      UserDatabaseEntry *entry = g_get_user_database_entry ();
+      home_dir = g_strdup (entry->home_dir);
+    }
+
+  /* If we have been denied access to /etc/passwd (for example, by an
+   * overly-zealous LSM), make up a junk value. The return value at this
+   * point is explicitly documented as ‘undefined’. */
+  if (home_dir == NULL)
+    {
+      g_warning ("Could not find home directory: $HOME is not set, and "
+                 "user database could not be read.");
+      home_dir = g_strdup ("/");
+    }
+
+  return g_steal_pointer (&home_dir);
+}
+
 /**
  * g_get_home_dir:
  *
@@ -819,87 +894,15 @@ g_get_real_name (void)
 const gchar *
 g_get_home_dir (void)
 {
-  static gchar *home_dir;
-
-  if (g_once_init_enter (&home_dir))
-    {
-      gchar *tmp;
-
-      /* We first check HOME and use it if it is set */
-      tmp = g_strdup (g_getenv ("HOME"));
-
-#ifdef G_OS_WIN32
-      /* Only believe HOME if it is an absolute path and exists.
-       *
-       * We only do this check on Windows for a couple of reasons.
-       * Historically, we only did it there because we used to ignore $HOME
-       * on UNIX.  There are concerns about enabling it now on UNIX because
-       * of things like autofs.  In short, if the user has a bogus value in
-       * $HOME then they get what they pay for...
-       */
-      if (tmp)
-        {
-          if (!(g_path_is_absolute (tmp) &&
-                g_file_test (tmp, G_FILE_TEST_IS_DIR)))
-            {
-              g_free (tmp);
-              tmp = NULL;
-            }
-        }
-
-      /* In case HOME is Unix-style (it happens), convert it to
-       * Windows style.
-       */
-      if (tmp)
-        {
-          gchar *p;
-          while ((p = strchr (tmp, '/')) != NULL)
-            *p = '\\';
-        }
-
-      if (!tmp)
-        {
-          /* USERPROFILE is probably the closest equivalent to $HOME? */
-          if (g_getenv ("USERPROFILE") != NULL)
-            tmp = g_strdup (g_getenv ("USERPROFILE"));
-        }
-
-      if (!tmp)
-        tmp = get_special_folder (CSIDL_PROFILE);
-
-      if (!tmp)
-        tmp = get_windows_directory_root ();
-#endif /* G_OS_WIN32 */
-
-      if (!tmp)
-        {
-          /* If we didn't get it from any of those methods, we will have
-           * to read the user database entry.
-           */
-          UserDatabaseEntry *entry;
-
-          entry = g_get_user_database_entry ();
+  const gchar *home_dir;
 
-          /* Strictly speaking, we should copy this, but we know that
-           * neither will ever be freed, so don't bother...
-           */
-          tmp = entry->home_dir;
-        }
+  G_LOCK (g_utils_global);
 
-      /* If we have been denied access to /etc/passwd (for example, by an
-       * overly-zealous LSM), make up a junk value. The return value at this
-       * point is explicitly documented as ‘undefined’. Memory management is as
-       * immediately above: strictly this should be copied, but we know not
-       * copying it is OK. */
-      if (tmp == NULL)
-        {
-          g_warning ("Could not find home directory: $HOME is not set, and "
-                     "user database could not be read.");
-          tmp = "/";
-        }
+  if (g_home_dir == NULL)
+    g_home_dir = g_build_home_dir ();
+  home_dir = g_home_dir;
 
-      g_once_init_leave (&home_dir, tmp);
-    }
+  G_UNLOCK (g_utils_global);
 
   return home_dir;
 }
@@ -1167,6 +1170,135 @@ g_set_application_name (const gchar *application_name)
     g_warning ("g_set_application_name() called multiple times");
 }
 
+/* Set @global_str to a copy of @new_value if it’s currently unset or has a
+ * different value. If its current value matches @new_value, do nothing. If
+ * replaced, we have to leak the old value as client code could still have
+ * pointers to it. */
+static void
+set_str_if_different (gchar       **global_str,
+                      const gchar  *type,
+                      const gchar  *new_value)
+{
+  if (*global_str == NULL ||
+      !g_str_equal (new_value, *global_str))
+    {
+      g_debug ("g_set_user_dirs: Setting %s to %s", type, new_value);
+
+      /* We have to leak the old value, as user code could be retaining pointers
+       * to it. */
+      *global_str = g_strdup (new_value);
+    }
+}
+
+static void
+set_strv_if_different (gchar                ***global_strv,
+                       const gchar            *type,
+                       const gchar  * const   *new_value)
+{
+  if (*global_strv == NULL ||
+      !g_strv_equal (new_value, (const gchar * const *) *global_strv))
+    {
+      gchar *new_value_str = g_strjoinv (":", (gchar **) new_value);
+      g_debug ("g_set_user_dirs: Setting %s to %s", type, new_value_str);
+      g_free (new_value_str);
+
+      /* We have to leak the old value, as user code could be retaining pointers
+       * to it. */
+      *global_strv = g_strdupv ((gchar **) new_value);
+    }
+}
+
+/*
+ * g_set_user_dirs:
+ * @first_dir_type: Type of the first directory to set
+ * @...: Value to set the first directory to, followed by additional type/value
+ *    pairs, followed by %NULL
+ *
+ * Set one or more ‘user’ directories to custom values. This is intended to be
+ * used by test code (particularly with the %G_TEST_OPTION_ISOLATE_DIRS option)
+ * to override the values returned by the following functions, so that test
+ * code can be run without touching an installed system and user data:
+ *
+ *  - g_get_home_dir() — use type `HOME`, pass a string
+ *  - g_get_user_cache_dir() — use type `XDG_CACHE_HOME`, pass a string
+ *  - g_get_system_config_dirs() — use type `XDG_CONFIG_DIRS`, pass a
+ *    %NULL-terminated string array
+ *  - g_get_user_config_dir() — use type `XDG_CONFIG_HOME`, pass a string
+ *  - g_get_system_data_dirs() — use type `XDG_DATA_DIRS`, pass a
+ *    %NULL-terminated string array
+ *  - g_get_user_data_dir() — use type `XDG_DATA_HOME`, pass a string
+ *  - g_get_user_runtime_dir() — use type `XDG_RUNTIME_DIR`, pass a string
+ *
+ * The list must be terminated with a %NULL type. All of the values must be
+ * non-%NULL — passing %NULL as a value won’t reset a directory. If a reference
+ * to a directory from the calling environment needs to be kept, copy it before
+ * the first call to g_set_user_dirs(). g_set_user_dirs() can be called multiple
+ * times.
+ *
+ * Since: 2.60
+ */
+/*< private > */
+void
+g_set_user_dirs (const gchar *first_dir_type,
+                 ...)
+{
+  va_list args;
+  const gchar *dir_type;
+
+  G_LOCK (g_utils_global);
+
+  va_start (args, first_dir_type);
+
+  for (dir_type = first_dir_type; dir_type != NULL; dir_type = va_arg (args, const gchar *))
+    {
+      gconstpointer dir_value = va_arg (args, gconstpointer);
+      g_assert (dir_value != NULL);
+
+      if (g_str_equal (dir_type, "HOME"))
+        set_str_if_different (&g_home_dir, dir_type, dir_value);
+      else if (g_str_equal (dir_type, "XDG_CACHE_HOME"))
+        set_str_if_different (&g_user_cache_dir, dir_type, dir_value);
+      else if (g_str_equal (dir_type, "XDG_CONFIG_DIRS"))
+        set_strv_if_different (&g_system_config_dirs, dir_type, dir_value);
+      else if (g_str_equal (dir_type, "XDG_CONFIG_HOME"))
+        set_str_if_different (&g_user_config_dir, dir_type, dir_value);
+      else if (g_str_equal (dir_type, "XDG_DATA_DIRS"))
+        set_strv_if_different (&g_system_data_dirs, dir_type, dir_value);
+      else if (g_str_equal (dir_type, "XDG_DATA_HOME"))
+        set_str_if_different (&g_user_data_dir, dir_type, dir_value);
+      else if (g_str_equal (dir_type, "XDG_RUNTIME_DIR"))
+        set_str_if_different (&g_user_runtime_dir, dir_type, dir_value);
+      else
+        g_assert_not_reached ();
+    }
+
+  va_end (args);
+
+  G_UNLOCK (g_utils_global);
+}
+
+static gchar *
+g_build_user_data_dir (void)
+{
+  gchar *data_dir = NULL;
+  const gchar *data_dir_env = g_getenv ("XDG_DATA_HOME");
+
+  if (data_dir_env && data_dir_env[0])
+    data_dir = g_strdup (data_dir_env);
+#ifdef G_OS_WIN32
+  else
+    data_dir = get_special_folder (CSIDL_LOCAL_APPDATA);
+#endif
+  if (!data_dir || !data_dir[0])
+    {
+      gchar *home_dir = g_build_home_dir ();
+      data_dir = g_build_filename (home_dir, ".local", "share", NULL);
+      g_free (home_dir);
+    }
+
+  return g_steal_pointer (&data_dir);
+}
+
 /**
  * g_get_user_data_dir:
  * 
@@ -1192,67 +1324,39 @@ g_set_application_name (const gchar *application_name)
 const gchar *
 g_get_user_data_dir (void)
 {
-  gchar *data_dir = NULL;
+  const gchar *user_data_dir;
 
   G_LOCK (g_utils_global);
 
-  if (!g_user_data_dir)
-    {
-      const gchar *data_dir_env = g_getenv ("XDG_DATA_HOME");
-
-      if (data_dir_env && data_dir_env[0])
-        data_dir = g_strdup (data_dir_env);
-#ifdef G_OS_WIN32
-      else
-        data_dir = get_special_folder (CSIDL_LOCAL_APPDATA);
-#endif
-      if (!data_dir || !data_dir[0])
-       {
-          const gchar *home_dir = g_get_home_dir ();
-
-          if (home_dir)
-            data_dir = g_build_filename (home_dir, ".local", "share", NULL);
-         else
-            data_dir = g_build_filename (g_get_tmp_dir (), g_get_user_name (), ".local", "share", NULL);
-       }
-
-      g_user_data_dir = data_dir;
-    }
-  else
-    data_dir = g_user_data_dir;
+  if (g_user_data_dir == NULL)
+    g_user_data_dir = g_build_user_data_dir ();
+  user_data_dir = g_user_data_dir;
 
   G_UNLOCK (g_utils_global);
 
-  return data_dir;
+  return user_data_dir;
 }
 
-static void
-g_init_user_config_dir (void)
+static gchar *
+g_build_user_config_dir (void)
 {
   gchar *config_dir = NULL;
+  const gchar *config_dir_env = g_getenv ("XDG_CONFIG_HOME");
 
-  if (!g_user_config_dir)
-    {
-      const gchar *config_dir_env = g_getenv ("XDG_CONFIG_HOME");
-
-      if (config_dir_env && config_dir_env[0])
-       config_dir = g_strdup (config_dir_env);
+  if (config_dir_env && config_dir_env[0])
+    config_dir = g_strdup (config_dir_env);
 #ifdef G_OS_WIN32
-      else
-        config_dir = get_special_folder (CSIDL_LOCAL_APPDATA);
+  else
+    config_dir = get_special_folder (CSIDL_LOCAL_APPDATA);
 #endif
-      if (!config_dir || !config_dir[0])
-       {
-          const gchar *home_dir = g_get_home_dir ();
-
-          if (home_dir)
-            config_dir = g_build_filename (home_dir, ".config", NULL);
-         else
-            config_dir = g_build_filename (g_get_tmp_dir (), g_get_user_name (), ".config", NULL);
-       }
-
-      g_user_config_dir = config_dir;
+  if (!config_dir || !config_dir[0])
+    {
+      gchar *home_dir = g_build_home_dir ();
+      config_dir = g_build_filename (home_dir, ".config", NULL);
+      g_free (home_dir);
     }
+
+  return g_steal_pointer (&config_dir);
 }
 
 /**
@@ -1280,13 +1384,39 @@ g_init_user_config_dir (void)
 const gchar *
 g_get_user_config_dir (void)
 {
+  const gchar *user_config_dir;
+
   G_LOCK (g_utils_global);
 
-  g_init_user_config_dir ();
+  if (g_user_config_dir == NULL)
+    g_user_config_dir = g_build_user_config_dir ();
+  user_config_dir = g_user_config_dir;
 
   G_UNLOCK (g_utils_global);
 
-  return g_user_config_dir;
+  return user_config_dir;
+}
+
+static gchar *
+g_build_user_cache_dir (void)
+{
+  gchar *cache_dir = NULL;
+  const gchar *cache_dir_env = g_getenv ("XDG_CACHE_HOME");
+
+  if (cache_dir_env && cache_dir_env[0])
+    cache_dir = g_strdup (cache_dir_env);
+#ifdef G_OS_WIN32
+  else
+    cache_dir = get_special_folder (CSIDL_INTERNET_CACHE);
+#endif
+  if (!cache_dir || !cache_dir[0])
+    {
+      gchar *home_dir = g_build_home_dir ();
+      cache_dir = g_build_filename (home_dir, ".cache", NULL);
+      g_free (home_dir);
+    }
+
+  return g_steal_pointer (&cache_dir);
 }
 
 /**
@@ -1313,37 +1443,45 @@ g_get_user_config_dir (void)
 const gchar *
 g_get_user_cache_dir (void)
 {
-  gchar *cache_dir = NULL;
+  const gchar *user_cache_dir;
 
   G_LOCK (g_utils_global);
 
-  if (!g_user_cache_dir)
-    {
-      const gchar *cache_dir_env = g_getenv ("XDG_CACHE_HOME");
+  if (g_user_cache_dir == NULL)
+    g_user_cache_dir = g_build_user_cache_dir ();
+  user_cache_dir = g_user_cache_dir;
 
-      if (cache_dir_env && cache_dir_env[0])
-        cache_dir = g_strdup (cache_dir_env);
-#ifdef G_OS_WIN32
-      else
-        cache_dir = get_special_folder (CSIDL_INTERNET_CACHE);
-#endif
-      if (!cache_dir || !cache_dir[0])
-       {
-          const gchar *home_dir = g_get_home_dir ();
+  G_UNLOCK (g_utils_global);
 
-          if (home_dir)
-            cache_dir = g_build_filename (home_dir, ".cache", NULL);
-         else
-            cache_dir = g_build_filename (g_get_tmp_dir (), g_get_user_name (), ".cache", NULL);
-       }
-      g_user_cache_dir = cache_dir;
-    }
+  return user_cache_dir;
+}
+
+static gchar *
+g_build_user_runtime_dir (void)
+{
+  gchar *runtime_dir = NULL;
+  const gchar *runtime_dir_env = g_getenv ("XDG_RUNTIME_DIR");
+
+  if (runtime_dir_env && runtime_dir_env[0])
+    runtime_dir = g_strdup (runtime_dir_env);
   else
-    cache_dir = g_user_cache_dir;
+    {
+      runtime_dir = g_build_user_cache_dir ();
 
-  G_UNLOCK (g_utils_global);
+      /* The user should be able to rely on the directory existing
+       * when the function returns.  Probably it already does, but
+       * let's make sure.  Just do mkdir() directly since it will be
+       * no more expensive than a stat() in the case that the
+       * directory already exists and is a lot easier.
+       *
+       * $XDG_CACHE_HOME is probably ~/.cache/ so as long as $HOME
+       * exists this will work.  If the user changed $XDG_CACHE_HOME
+       * then they can make sure that it exists...
+       */
+      (void) g_mkdir (runtime_dir, 0700);
+    }
 
-  return cache_dir;
+  return g_steal_pointer (&runtime_dir);
 }
 
 /**
@@ -1368,38 +1506,17 @@ g_get_user_cache_dir (void)
 const gchar *
 g_get_user_runtime_dir (void)
 {
-  static const gchar *runtime_dir;
-
-  if (g_once_init_enter (&runtime_dir))
-    {
-      const gchar *dir;
-
-      dir = g_strdup (getenv ("XDG_RUNTIME_DIR"));
+  const gchar *user_runtime_dir;
 
-      if (dir == NULL)
-        {
-          /* No need to strdup this one since it is valid forever. */
-          dir = g_get_user_cache_dir ();
-
-          /* The user should be able to rely on the directory existing
-           * when the function returns.  Probably it already does, but
-           * let's make sure.  Just do mkdir() directly since it will be
-           * no more expensive than a stat() in the case that the
-           * directory already exists and is a lot easier.
-           *
-           * $XDG_CACHE_HOME is probably ~/.cache/ so as long as $HOME
-           * exists this will work.  If the user changed $XDG_CACHE_HOME
-           * then they can make sure that it exists...
-           */
-          (void) g_mkdir (dir, 0700);
-        }
+  G_LOCK (g_utils_global);
 
-      g_assert (dir != NULL);
+  if (g_user_runtime_dir == NULL)
+    g_user_runtime_dir = g_build_user_runtime_dir ();
+  user_runtime_dir = g_user_runtime_dir;
 
-      g_once_init_leave (&runtime_dir, dir);
-    }
+  G_UNLOCK (g_utils_global);
 
-  return runtime_dir;
+  return user_runtime_dir;
 }
 
 #ifdef HAVE_CARBON
@@ -1553,16 +1670,18 @@ load_user_special_dirs (void)
 static void
 load_user_special_dirs (void)
 {
+  gchar *config_dir = NULL;
   gchar *config_file;
   gchar *data;
   gchar **lines;
   gint n_lines, i;
   
-  g_init_user_config_dir ();
-  config_file = g_build_filename (g_user_config_dir,
+  config_dir = g_build_user_config_dir ();
+  config_file = g_build_filename (config_dir,
                                   "user-dirs.dirs",
                                   NULL);
-  
+  g_free (config_dir);
+
   if (!g_file_get_contents (config_file, &data, NULL, NULL))
     {
       g_free (config_file);
@@ -1669,7 +1788,9 @@ load_user_special_dirs (void)
       
       if (is_relative)
         {
-          g_user_special_dirs[directory] = g_build_filename (g_get_home_dir (), d, NULL);
+          gchar *home_dir = g_build_home_dir ();
+          g_user_special_dirs[directory] = g_build_filename (home_dir, d, NULL);
+          g_free (home_dir);
         }
       else
        g_user_special_dirs[directory] = g_strdup (d);
@@ -1689,7 +1810,7 @@ load_user_special_dirs (void)
  * that the latest on-disk version is used. Call this only
  * if you just changed the data on disk yourself.
  *
- * Due to threadsafety issues this may cause leaking of strings
+ * Due to thread safety issues this may cause leaking of strings
  * that were previously returned from g_get_user_special_dir()
  * that can't be freed. We ensure to only leak the data for
  * the directories that actually changed value though.
@@ -1762,6 +1883,8 @@ g_reload_user_special_dirs_cache (void)
 const gchar *
 g_get_user_special_dir (GUserDirectory directory)
 {
+  const gchar *user_special_dir;
+
   g_return_val_if_fail (directory >= G_USER_DIRECTORY_DESKTOP &&
                         directory < G_USER_N_DIRECTORIES, NULL);
 
@@ -1775,12 +1898,17 @@ g_get_user_special_dir (GUserDirectory directory)
 
       /* Special-case desktop for historical compatibility */
       if (g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] == NULL)
-        g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_build_filename (g_get_home_dir (), "Desktop", NULL);
+        {
+          gchar *home_dir = g_build_home_dir ();
+          g_user_special_dirs[G_USER_DIRECTORY_DESKTOP] = g_build_filename (home_dir, "Desktop", NULL);
+          g_free (home_dir);
+        }
     }
+  user_special_dir = g_user_special_dirs[directory];
 
   G_UNLOCK (g_utils_global);
 
-  return g_user_special_dirs[directory];
+  return user_special_dir;
 }
 
 #ifdef G_OS_WIN32
@@ -1942,7 +2070,7 @@ g_win32_get_system_data_dirs_for_module (void (*address_of_function)(void))
   gboolean should_call_g_get_system_data_dirs;
 
   should_call_g_get_system_data_dirs = TRUE;
-  /* These checks are the same as the ones that g_get_system_data_dirs() does.
+  /* These checks are the same as the ones that g_build_system_data_dirs() does.
    * Please keep them in sync.
    */
   G_LOCK (g_utils_global);
@@ -1986,6 +2114,30 @@ g_win32_get_system_data_dirs_for_module (void (*address_of_function)(void))
 
 #endif
 
+static gchar **
+g_build_system_data_dirs (void)
+{
+  gchar **data_dir_vector = NULL;
+  gchar *data_dirs = (gchar *) g_getenv ("XDG_DATA_DIRS");
+
+  /* These checks are the same as the ones that g_win32_get_system_data_dirs_for_module()
+   * does. Please keep them in sync.
+   */
+#ifndef G_OS_WIN32
+  if (!data_dirs || !data_dirs[0])
+    data_dirs = "/usr/local/share/:/usr/share/";
+
+  data_dir_vector = g_strsplit (data_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
+#else
+  if (!data_dirs || !data_dirs[0])
+    data_dir_vector = g_strdupv ((gchar **) g_win32_get_system_data_dirs_for_module_real (NULL));
+  else
+    data_dir_vector = g_strsplit (data_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
+#endif
+
+  return g_steal_pointer (&data_dir_vector);
+}
+
 /**
  * g_get_system_data_dirs:
  * 
@@ -2030,37 +2182,49 @@ g_win32_get_system_data_dirs_for_module (void (*address_of_function)(void))
 const gchar * const * 
 g_get_system_data_dirs (void)
 {
-  gchar **data_dir_vector;
+  const gchar * const *system_data_dirs;
 
-  /* These checks are the same as the ones that g_win32_get_system_data_dirs_for_module()
-   * does. Please keep them in sync.
-   */
   G_LOCK (g_utils_global);
 
-  if (!g_system_data_dirs)
-    {
-      gchar *data_dirs = (gchar *) g_getenv ("XDG_DATA_DIRS");
+  if (g_system_data_dirs == NULL)
+    g_system_data_dirs = g_build_system_data_dirs ();
+  system_data_dirs = (const gchar * const *) g_system_data_dirs;
 
-#ifndef G_OS_WIN32
-      if (!data_dirs || !data_dirs[0])
-          data_dirs = "/usr/local/share/:/usr/share/";
+  G_UNLOCK (g_utils_global);
 
-      data_dir_vector = g_strsplit (data_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
-#else
-      if (!data_dirs || !data_dirs[0])
-        data_dir_vector = g_strdupv ((gchar **) g_win32_get_system_data_dirs_for_module_real (NULL));
-      else
-        data_dir_vector = g_strsplit (data_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
-#endif
+  return system_data_dirs;
+}
 
-      g_system_data_dirs = data_dir_vector;
+static gchar **
+g_build_system_config_dirs (void)
+{
+  gchar **conf_dir_vector = NULL;
+  const gchar *conf_dirs = g_getenv ("XDG_CONFIG_DIRS");
+#ifdef G_OS_WIN32
+  if (conf_dirs)
+    {
+      conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
     }
   else
-    data_dir_vector = g_system_data_dirs;
+    {
+      gchar *special_conf_dirs = get_special_folder (CSIDL_COMMON_APPDATA);
 
-  G_UNLOCK (g_utils_global);
+      if (special_conf_dirs)
+        conf_dir_vector = g_strsplit (special_conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
+      else
+        /* Return empty list */
+        conf_dir_vector = g_strsplit ("", G_SEARCHPATH_SEPARATOR_S, 0);
 
-  return (const gchar * const *) data_dir_vector;
+      g_free (special_conf_dirs);
+    }
+#else
+  if (!conf_dirs || !conf_dirs[0])
+    conf_dirs = "/etc/xdg";
+
+  conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
+#endif
+
+  return g_steal_pointer (&conf_dir_vector);
 }
 
 /**
@@ -2093,44 +2257,17 @@ g_get_system_data_dirs (void)
 const gchar * const *
 g_get_system_config_dirs (void)
 {
-  gchar **conf_dir_vector;
+  const gchar * const *system_config_dirs;
 
   G_LOCK (g_utils_global);
 
-  if (!g_system_config_dirs)
-    {
-      const gchar *conf_dirs = g_getenv ("XDG_CONFIG_DIRS");
-#ifdef G_OS_WIN32
-      if (conf_dirs)
-       {
-         conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
-       }
-      else
-       {
-         gchar *special_conf_dirs = get_special_folder (CSIDL_COMMON_APPDATA);
-
-         if (special_conf_dirs)
-           conf_dir_vector = g_strsplit (special_conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
-         else
-           /* Return empty list */
-           conf_dir_vector = g_strsplit ("", G_SEARCHPATH_SEPARATOR_S, 0);
-
-         g_free (special_conf_dirs);
-       }
-#else
-      if (!conf_dirs || !conf_dirs[0])
-          conf_dirs = "/etc/xdg";
+  if (g_system_config_dirs == NULL)
+    g_system_config_dirs = g_build_system_config_dirs ();
+  system_config_dirs = (const gchar * const *) g_system_config_dirs;
 
-      conf_dir_vector = g_strsplit (conf_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
-#endif
-
-      g_system_config_dirs = conf_dir_vector;
-    }
-  else
-    conf_dir_vector = g_system_config_dirs;
   G_UNLOCK (g_utils_global);
 
-  return (const gchar * const *) conf_dir_vector;
+  return system_config_dirs;
 }
 
 /**
@@ -2503,7 +2640,7 @@ const gchar *g_get_tmp_dir_utf8 (void) { return g_get_tmp_dir (); }
 gboolean
 g_check_setuid (void)
 {
-#if defined(HAVE_SYS_AUXV_H)
+#if defined(HAVE_SYS_AUXV_H) && defined(HAVE_GETAUXVAL) && defined(AT_SECURE)
   unsigned long value;
   int errsv;
 
index 84c0f4f..070f9cf 100644 (file)
@@ -78,7 +78,7 @@ GLIB_AVAILABLE_IN_ALL
 const gchar * const * g_get_system_data_dirs   (void);
 
 #ifdef G_OS_WIN32
-/* This functions is not part of the public GLib API */
+/* This function is not part of the public GLib API */
 GLIB_AVAILABLE_IN_ALL
 const gchar * const * g_win32_get_system_data_dirs_for_module (void (*address_of_function)(void));
 #endif
diff --git a/glib/gutilsprivate.h b/glib/gutilsprivate.h
new file mode 100644 (file)
index 0000000..5a06860
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright © 2018 Endless Mobile, Inc.
+ *
+ * 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 <withnall@endlessm.com>
+ */
+
+#ifndef __G_UTILS_PRIVATE_H__
+#define __G_UTILS_PRIVATE_H__
+
+#include "gtypes.h"
+
+G_BEGIN_DECLS
+
+GLIB_AVAILABLE_IN_2_60
+void g_set_user_dirs (const gchar *first_dir_type,
+                      ...) G_GNUC_NULL_TERMINATED;
+
+G_END_DECLS
+
+#endif /* __G_UTILS_PRIVATE_H__ */
index 815bdf9..d6bc209 100644 (file)
@@ -28,6 +28,7 @@
 #include <glib/gbytes.h>
 #include <glib/gslice.h>
 #include <glib/gmem.h>
+#include <glib/grefcount.h>
 #include <string.h>
 
 
@@ -74,7 +75,7 @@ struct _GVariant
   } contents;
 
   gint state;
-  gint ref_count;
+  gatomicrefcount ref_count;
   gsize depth;
 };
 
@@ -488,7 +489,7 @@ g_variant_alloc (const GVariantType *type,
                  (trusted ? STATE_TRUSTED : 0) |
                  STATE_FLOATING;
   value->size = (gssize) -1;
-  value->ref_count = 1;
+  g_atomic_ref_count_init (&value->ref_count);
   value->depth = 0;
 
   return value;
@@ -506,6 +507,10 @@ g_variant_alloc (const GVariantType *type,
  *
  * A reference is taken on @bytes.
  *
+ * The data in @bytes must be aligned appropriately for the @type being loaded.
+ * Otherwise this function will internally create a copy of the memory (since
+ * GLib 2.60) or (in older versions) fail and exit the process.
+ *
  * Returns: (transfer none): a new #GVariant with a floating reference
  *
  * Since: 2.36
@@ -518,14 +523,55 @@ g_variant_new_from_bytes (const GVariantType *type,
   GVariant *value;
   guint alignment;
   gsize size;
+  GBytes *owned_bytes = NULL;
+  GVariantSerialised serialised;
 
   value = g_variant_alloc (type, TRUE, trusted);
 
-  value->contents.serialised.bytes = g_bytes_ref (bytes);
-
   g_variant_type_info_query (value->type_info,
                              &alignment, &size);
 
+  /* Ensure the alignment is correct. This is a huge performance hit if it’s
+   * not correct, but that’s better than aborting if a caller provides data
+   * with the wrong alignment (which is likely to happen very occasionally, and
+   * only cause an abort on some architectures — so is unlikely to be caught
+   * in testing). Callers can always actively ensure they use the correct
+   * alignment to avoid the performance hit. */
+  serialised.type_info = value->type_info;
+  serialised.data = (guchar *) g_bytes_get_data (bytes, &serialised.size);
+  serialised.depth = 0;
+
+  if (!g_variant_serialised_check (serialised))
+    {
+#ifdef HAVE_POSIX_MEMALIGN
+      gpointer aligned_data = NULL;
+      gsize aligned_size = g_bytes_get_size (bytes);
+
+      /* posix_memalign() requires the alignment to be a multiple of
+       * sizeof(void*), and a power of 2. See g_variant_type_info_query() for
+       * details on the alignment format. */
+      if (posix_memalign (&aligned_data, MAX (sizeof (void *), alignment + 1),
+                          aligned_size) != 0)
+        g_error ("posix_memalign failed");
+
+      memcpy (aligned_data, g_bytes_get_data (bytes, NULL), aligned_size);
+
+      bytes = owned_bytes = g_bytes_new_with_free_func (aligned_data,
+                                                        aligned_size,
+                                                        free, aligned_data);
+      aligned_data = NULL;
+#else
+      /* NOTE: there may be platforms that lack posix_memalign() and also
+       * have malloc() that returns non-8-aligned.  if so, we need to try
+       * harder here.
+       */
+      bytes = owned_bytes = g_bytes_new (g_bytes_get_data (bytes, NULL),
+                                         g_bytes_get_size (bytes));
+#endif
+    }
+
+  value->contents.serialised.bytes = g_bytes_ref (bytes);
+
   if (size && g_bytes_get_size (bytes) != size)
     {
       /* Creating a fixed-sized GVariant with a bytes of the wrong
@@ -543,6 +589,8 @@ g_variant_new_from_bytes (const GVariantType *type,
       value->contents.serialised.data = g_bytes_get_data (bytes, &value->size);
     }
 
+  g_clear_pointer (&owned_bytes, g_bytes_unref);
+
   return value;
 }
 
@@ -632,9 +680,8 @@ void
 g_variant_unref (GVariant *value)
 {
   g_return_if_fail (value != NULL);
-  g_return_if_fail (value->ref_count > 0);
 
-  if (g_atomic_int_dec_and_test (&value->ref_count))
+  if (g_atomic_ref_count_dec (&value->ref_count))
     {
       if G_UNLIKELY (value->state & STATE_LOCKED)
         g_critical ("attempting to free a locked GVariant instance.  "
@@ -668,9 +715,8 @@ GVariant *
 g_variant_ref (GVariant *value)
 {
   g_return_val_if_fail (value != NULL, NULL);
-  g_return_val_if_fail (value->ref_count > 0, NULL);
 
-  g_atomic_int_inc (&value->ref_count);
+  g_atomic_ref_count_inc (&value->ref_count);
 
   return value;
 }
@@ -710,7 +756,7 @@ GVariant *
 g_variant_ref_sink (GVariant *value)
 {
   g_return_val_if_fail (value != NULL, NULL);
-  g_return_val_if_fail (value->ref_count > 0, NULL);
+  g_return_val_if_fail (!g_atomic_ref_count_compare (&value->ref_count, 0), NULL);
 
   g_variant_lock (value);
 
@@ -767,7 +813,7 @@ GVariant *
 g_variant_take_ref (GVariant *value)
 {
   g_return_val_if_fail (value != NULL, NULL);
-  g_return_val_if_fail (value->ref_count > 0, NULL);
+  g_return_val_if_fail (!g_atomic_ref_count_compare (&value->ref_count, 0), NULL);
 
   g_atomic_int_and (&value->state, ~STATE_FLOATING);
 
@@ -1043,7 +1089,7 @@ g_variant_get_child_value (GVariant *value,
     child->state = (value->state & STATE_TRUSTED) |
                    STATE_SERIALISED;
     child->size = s_child.size;
-    child->ref_count = 1;
+    g_atomic_ref_count_init (&child->ref_count);
     child->depth = value->depth + 1;
     child->contents.serialised.bytes =
       g_bytes_ref (value->contents.serialised.bytes);
index 335c714..b860d42 100644 (file)
@@ -210,10 +210,7 @@ token_stream_prepare (TokenStream *stream)
           break;
         }
 
-      else
-        {
-          /* ↓↓↓ */
-        }
+      G_GNUC_FALLTHROUGH;
 
     case 'a': /* 'b' */ case 'c': case 'd': case 'e': case 'f':
     case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
@@ -1531,18 +1528,21 @@ string_free (AST *ast)
   g_slice_free (String, string);
 }
 
+/* Accepts exactly @length hexadecimal digits. No leading sign or `0x`/`0X` prefix allowed.
+ * No leading/trailing space allowed. */
 static gboolean
 unicode_unescape (const gchar  *src,
                   gint         *src_ofs,
                   gchar        *dest,
                   gint         *dest_ofs,
-                  gint          length,
+                  gsize         length,
                   SourceRef    *ref,
                   GError      **error)
 {
   gchar buffer[9];
-  guint64 value;
+  guint64 value = 0;
   gchar *end;
+  gsize n_valid_chars;
 
   (*src_ofs)++;
 
@@ -1550,13 +1550,24 @@ unicode_unescape (const gchar  *src,
   strncpy (buffer, src + *src_ofs, length);
   buffer[length] = '\0';
 
-  value = g_ascii_strtoull (buffer, &end, 0x10);
+  for (n_valid_chars = 0; n_valid_chars < length; n_valid_chars++)
+    if (!g_ascii_isxdigit (buffer[n_valid_chars]))
+      break;
+
+  if (n_valid_chars == length)
+    value = g_ascii_strtoull (buffer, &end, 0x10);
 
   if (value == 0 || end != buffer + length)
     {
-      parser_set_error (error, ref, NULL,
+      SourceRef escape_ref;
+
+      escape_ref = *ref;
+      escape_ref.start += *src_ofs;
+      escape_ref.end = escape_ref.start + n_valid_chars;
+
+      parser_set_error (error, &escape_ref, NULL,
                         G_VARIANT_PARSE_ERROR_INVALID_CHARACTER,
-                        "invalid %d-character unicode escape", length);
+                        "invalid %" G_GSIZE_FORMAT "-character unicode escape", length);
       return FALSE;
     }
 
@@ -1646,6 +1657,8 @@ string_parse (TokenStream  *stream,
           case '\n': i++; continue;
           }
 
+        G_GNUC_FALLTHROUGH;
+
       default:
         str[j++] = token[i++];
       }
@@ -1773,6 +1786,8 @@ bytestring_parse (TokenStream  *stream,
           case '\n': i++; continue;
           }
 
+        G_GNUC_FALLTHROUGH;
+
       default:
         str[j++] = token[i++];
       }
index c6e400b..83e9d85 100644 (file)
@@ -22,7 +22,6 @@
 #include "config.h"
 
 #include "gvariant-serialiser.h"
-#include "gunicodeprivate.h"
 
 #include <glib/gvariant-internal.h>
 #include <glib/gtestutils.h>
  *
  * Checks @serialised for validity according to the invariants described
  * above.
+ *
+ * Returns: %TRUE if @serialised is valid; %FALSE otherwise
  */
-static void
+gboolean
 g_variant_serialised_check (GVariantSerialised serialised)
 {
   gsize fixed_size;
   guint alignment;
 
-  g_assert (serialised.type_info != NULL);
+  if (serialised.type_info == NULL)
+    return FALSE;
   g_variant_type_info_query (serialised.type_info, &alignment, &fixed_size);
 
-  if (fixed_size)
-    g_assert_cmpint (serialised.size, ==, fixed_size);
-  else
-    g_assert (serialised.size == 0 || serialised.data != NULL);
+  if (fixed_size != 0 && serialised.size != fixed_size)
+    return FALSE;
+  else if (fixed_size == 0 &&
+           !(serialised.size == 0 || serialised.data != NULL))
+    return FALSE;
 
   /* Depending on the native alignment requirements of the machine, the
    * compiler will insert either 3 or 7 padding bytes after the char.
@@ -168,10 +171,8 @@ g_variant_serialised_check (GVariantSerialised serialised)
    * Check if this is a small allocation and return without enforcing
    * the alignment assertion if this is the case.
    */
-  if (serialised.size <= alignment)
-    return;
-
-  g_assert_cmpint (alignment & (gsize) serialised.data, ==, 0);
+  return (serialised.size <= alignment ||
+          (alignment & (gsize) serialised.data) == 0);
 }
 
 /* < private >
@@ -1356,7 +1357,7 @@ gvs_variant_is_normal (GVariantSerialised value)
 gsize
 g_variant_serialised_n_children (GVariantSerialised serialised)
 {
-  g_variant_serialised_check (serialised);
+  g_assert (g_variant_serialised_check (serialised));
 
   DISPATCH_CASES (serialised.type_info,
 
@@ -1393,7 +1394,7 @@ g_variant_serialised_get_child (GVariantSerialised serialised,
 {
   GVariantSerialised child;
 
-  g_variant_serialised_check (serialised);
+  g_assert (g_variant_serialised_check (serialised));
 
   if G_LIKELY (index_ < g_variant_serialised_n_children (serialised))
     {
@@ -1401,7 +1402,7 @@ g_variant_serialised_get_child (GVariantSerialised serialised,
 
                       child = gvs_/**/,/**/_get_child (serialised, index_);
                       g_assert (child.size || child.data == NULL);
-                      g_variant_serialised_check (child);
+                      g_assert (g_variant_serialised_check (child));
                       return child;
 
                      )
@@ -1442,7 +1443,7 @@ g_variant_serialiser_serialise (GVariantSerialised        serialised,
                                 const gpointer           *children,
                                 gsize                     n_children)
 {
-  g_variant_serialised_check (serialised);
+  g_assert (g_variant_serialised_check (serialised));
 
   DISPATCH_CASES (serialised.type_info,
 
@@ -1497,7 +1498,7 @@ g_variant_serialised_byteswap (GVariantSerialised serialised)
   gsize fixed_size;
   guint alignment;
 
-  g_variant_serialised_check (serialised);
+  g_assert (g_variant_serialised_check (serialised));
 
   if (!serialised.data)
     return;
@@ -1653,7 +1654,7 @@ g_variant_serialiser_is_string (gconstpointer data,
   if (*expected_end != '\0')
     return FALSE;
 
-  _g_utf8_validate_len (data, size, &end);
+  g_utf8_validate_len (data, size, &end);
 
   return end == expected_end;
 }
index fa4252d..81343e9 100644 (file)
@@ -55,6 +55,8 @@ void                            g_variant_serialiser_serialise          (GVarian
                                                                          gsize                     n_children);
 
 /* misc */
+GLIB_AVAILABLE_IN_2_60
+gboolean                        g_variant_serialised_check              (GVariantSerialised        serialised);
 GLIB_AVAILABLE_IN_ALL
 gboolean                        g_variant_serialised_is_normal          (GVariantSerialised        value);
 GLIB_AVAILABLE_IN_ALL
index d45b487..983d470 100644 (file)
  * Constructs a new trusted #GVariant instance from the provided data.
  * This is used to implement g_variant_new_* for all the basic types.
  *
+ * Note: @data must be backed by memory that is aligned appropriately for the
+ * @type being loaded. Otherwise this function will internally create a copy of
+ * the memory (since GLib 2.60) or (in older versions) fail and exit the
+ * process.
+ *
  * Returns: a new floating #GVariant
  */
 static GVariant *
@@ -5986,6 +5991,11 @@ g_variant_byteswap (GVariant *value)
  * needed.  The exact time of this call is unspecified and might even be
  * before this function returns.
  *
+ * Note: @data must be backed by memory that is aligned appropriately for the
+ * @type being loaded. Otherwise this function will internally create a copy of
+ * the memory (since GLib 2.60) or (in older versions) fail and exit the
+ * process.
+ *
  * Returns: (transfer none): a new floating #GVariant of type @type
  *
  * Since: 2.24
index f64be97..b8c6cc1 100644 (file)
@@ -312,7 +312,7 @@ g_variant_type_string_scan (const gchar  *string,
  * If @type_string is not a valid #GVariant type string, 0 will be returned.
  *
  * Returns: depth of @type_string, or 0 on error
- * Since: 2.60 (backported to 2.58)
+ * Since: 2.60
  */
 gsize
 g_variant_type_string_get_depth_ (const gchar *type_string)
index cd30419..fdc3641 100644 (file)
@@ -374,7 +374,7 @@ GVariantType *                  g_variant_type_new_dict_entry           (const G
 /*< private >*/
 GLIB_AVAILABLE_IN_ALL
 const GVariantType *            g_variant_type_checked_                 (const gchar *);
-GLIB_AVAILABLE_IN_2_58
+GLIB_AVAILABLE_IN_2_60
 gsize                           g_variant_type_string_get_depth_        (const gchar *type_string);
 
 G_END_DECLS
index 764da63..bee0571 100644 (file)
@@ -26,6 +26,7 @@
 #include <glib/gthread.h>
 #include <glib/gslice.h>
 #include <glib/ghash.h>
+#include <glib/grefcount.h>
 
 /* < private >
  * GVariantTypeInfo:
@@ -76,7 +77,7 @@ typedef struct
   GVariantTypeInfo info;
 
   gchar *type_string;
-  gint ref_count;
+  gatomicrefcount ref_count;
 } ContainerInfo;
 
 /* For 'array' and 'maybe' types, we store some extra information on the
@@ -167,7 +168,7 @@ g_variant_type_info_check (const GVariantTypeInfo *info,
       ContainerInfo *container = (ContainerInfo *) info;
 
       /* extra checks for containers */
-      g_assert_cmpint (container->ref_count, >, 0);
+      g_assert (!g_atomic_ref_count_compare (&container->ref_count, 0));
       g_assert (container->type_string != NULL);
     }
   else
@@ -220,8 +221,8 @@ g_variant_type_info_get_type_string (GVariantTypeInfo *info)
 /* < private >
  * g_variant_type_info_query:
  * @info: a #GVariantTypeInfo
- * @alignment: (nullable): the location to store the alignment, or %NULL
- * @fixed_size: (nullable): the location to store the fixed size, or %NULL
+ * @alignment: (optional): the location to store the alignment, or %NULL
+ * @fixed_size: (optional): the location to store the fixed size, or %NULL
  *
  * Queries @info to determine the alignment requirements and fixed size
  * (if any) of the type.
@@ -260,7 +261,7 @@ g_variant_type_info_query (GVariantTypeInfo *info,
  * See g_variant_type_string_get_depth_() for more details.
  *
  * Returns: depth of @info
- * Since: 2.60 (backported to 2.58)
+ * Since: 2.60
  */
 gsize
 g_variant_type_info_query_depth (GVariantTypeInfo *info)
@@ -329,8 +330,8 @@ g_variant_type_info_element (GVariantTypeInfo *info)
 /* < private >
  * g_variant_type_query_element:
  * @info: a #GVariantTypeInfo for an array or maybe type
- * @alignment: (nullable): the location to store the alignment, or %NULL
- * @fixed_size: (nullable): the location to store the fixed size, or %NULL
+ * @alignment: (optional): the location to store the alignment, or %NULL
+ * @fixed_size: (optional): the location to store the fixed size, or %NULL
  *
  * Returns the alignment requires and fixed size (if any) for the
  * element type of the array.  This call is a convenience wrapper around
@@ -788,7 +789,7 @@ g_variant_type_info_get (const GVariantType *type)
 
           info = (GVariantTypeInfo *) container;
           container->type_string = type_string;
-          container->ref_count = 1;
+          g_atomic_ref_count_init (&container->ref_count);
 
           g_hash_table_insert (g_variant_type_info_table, type_string, info);
           type_string = NULL;
@@ -834,8 +835,7 @@ g_variant_type_info_ref (GVariantTypeInfo *info)
     {
       ContainerInfo *container = (ContainerInfo *) info;
 
-      g_assert_cmpint (container->ref_count, >, 0);
-      g_atomic_int_inc (&container->ref_count);
+      g_atomic_ref_count_inc (&container->ref_count);
     }
 
   return info;
@@ -858,7 +858,7 @@ g_variant_type_info_unref (GVariantTypeInfo *info)
       ContainerInfo *container = (ContainerInfo *) info;
 
       g_rec_mutex_lock (&g_variant_type_info_lock);
-      if (g_atomic_int_dec_and_test (&container->ref_count))
+      if (g_atomic_ref_count_dec (&container->ref_count))
         {
           g_hash_table_remove (g_variant_type_info_table,
                                container->type_string);
index 66ec0bd..6ecd1d4 100644 (file)
@@ -130,7 +130,7 @@ GLIB_AVAILABLE_IN_ALL
 void                            g_variant_type_info_query               (GVariantTypeInfo   *typeinfo,
                                                                          guint              *alignment,
                                                                          gsize              *size);
-GLIB_AVAILABLE_IN_2_58
+GLIB_AVAILABLE_IN_2_60
 gsize                           g_variant_type_info_query_depth         (GVariantTypeInfo   *typeinfo);
 
 /* array */
index 9d29958..0ba8f63 100644 (file)
  */
 #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))
+
 /* evaluates to the current stable version; for development cycles,
  * this means the next stable target
  */
 # define GLIB_AVAILABLE_IN_2_58                 _GLIB_EXTERN
 #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)
+#else
+# define GLIB_DEPRECATED_IN_2_60                _GLIB_EXTERN
+# define GLIB_DEPRECATED_IN_2_60_FOR(f)         _GLIB_EXTERN
+#endif
+
+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60
+# define GLIB_AVAILABLE_IN_2_60                 GLIB_UNAVAILABLE(2, 60)
+#else
+# define GLIB_AVAILABLE_IN_2_60                 _GLIB_EXTERN
+#endif
+
 #endif /*  __G_VERSION_MACROS_H__ */
index 6fc56da..1fe4a6e 100644 (file)
@@ -199,6 +199,7 @@ glib_sources = files(
   'gunidecomp.c',
   'gurifuncs.c',
   'gutils.c',
+  'gutilsprivate.h',
   'guuid.c',
   'gvariant.c',
   'gvariant-core.c',
@@ -256,6 +257,7 @@ libglib = library('glib-2.0',
   objects : [charset_lib.extract_all_objects()] + gnulib_objects + pcre_objects,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   # intl.lib is not compatible with SAFESEH
   link_args : [noseh_link_args, glib_link_flags, win32_ldflags],
@@ -272,7 +274,8 @@ libglib_dep = declare_dependency(
   # We sadly need to export configinc here because everyone includes <glib/*.h>
   include_directories : [configinc, glibinc])
 
-pkg.generate(libraries : [libglib, libintl],
+pkg.generate(libglib,
+  libraries : [libintl],
   libraries_private : [osx_ldflags, win32_ldflags],
   subdirs : ['glib-2.0'],
   extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
index 5b3bce7..92d4bba 100644 (file)
@@ -329,10 +329,30 @@ test_g_mutex (void)
   g_mutex_init (&val);
 }
 
+/* Thread function to check that a mutex given in @data is locked */
+static gpointer
+mutex_locked_thread (gpointer data)
+{
+  GMutex *mutex = (GMutex *) data;
+  g_assert_false (g_mutex_trylock (mutex));
+  return NULL;
+}
+
+/* Thread function to check that a mutex given in @data is unlocked */
+static gpointer
+mutex_unlocked_thread (gpointer data)
+{
+  GMutex *mutex = (GMutex *) data;
+  g_assert_true (g_mutex_trylock (mutex));
+  g_mutex_unlock (mutex);
+  return NULL;
+}
+
 static void
 test_g_mutex_locker (void)
 {
   GMutex mutex;
+  GThread *thread;
 
   g_mutex_init (&mutex);
 
@@ -340,8 +360,58 @@ test_g_mutex_locker (void)
     {
       g_autoptr(GMutexLocker) val = g_mutex_locker_new (&mutex);
       
-      g_assert (val != NULL);
+      g_assert_nonnull (val);
+
+      /* Verify that the mutex is actually locked */
+      thread = g_thread_new ("mutex locked", mutex_locked_thread, &mutex);
+      g_thread_join (thread);
+    }
+
+    /* Verify that the mutex is unlocked again */
+    thread = g_thread_new ("mutex unlocked", mutex_unlocked_thread, &mutex);
+    g_thread_join (thread);
+}
+
+/* Thread function to check that a recursive mutex given in @data is locked */
+static gpointer
+rec_mutex_locked_thread (gpointer data)
+{
+  GRecMutex *rec_mutex = (GRecMutex *) data;
+  g_assert_false (g_rec_mutex_trylock (rec_mutex));
+  return NULL;
+}
+
+/* Thread function to check that a recursive mutex given in @data is unlocked */
+static gpointer
+rec_mutex_unlocked_thread (gpointer data)
+{
+  GRecMutex *rec_mutex = (GRecMutex *) data;
+  g_assert_true (g_rec_mutex_trylock (rec_mutex));
+  return NULL;
+}
+
+static void
+test_g_rec_mutex_locker (void)
+{
+  GRecMutex rec_mutex;
+  GThread *thread;
+
+  g_rec_mutex_init (&rec_mutex);
+
+  if (TRUE)
+    {
+      g_autoptr(GRecMutexLocker) val = g_rec_mutex_locker_new (&rec_mutex);
+
+      g_assert_nonnull (val);
+
+      /* Verify that the mutex is actually locked */
+      thread = g_thread_new ("rec mutex locked", rec_mutex_locked_thread, &rec_mutex);
+      g_thread_join (thread);
     }
+
+    /* Verify that the mutex is unlocked again */
+    thread = g_thread_new ("rec mutex unlocked", rec_mutex_unlocked_thread, &rec_mutex);
+    g_thread_join (thread);
 }
 
 static void
@@ -536,6 +606,7 @@ main (int argc, gchar *argv[])
   g_test_add_func ("/autoptr/g_thread", test_g_thread);
   g_test_add_func ("/autoptr/g_mutex", test_g_mutex);
   g_test_add_func ("/autoptr/g_mutex_locker", test_g_mutex_locker);
+  g_test_add_func ("/autoptr/g_rec_mutex_locker", test_g_rec_mutex_locker);
   g_test_add_func ("/autoptr/g_cond", test_g_cond);
   g_test_add_func ("/autoptr/g_timer", test_g_timer);
   g_test_add_func ("/autoptr/g_time_zone", test_g_time_zone);
index 0a1c8ce..363eedf 100644 (file)
@@ -59,6 +59,18 @@ test_language_names_with_category (void)
     }
 }
 
+static void
+test_language_names_with_category_async (void)
+{
+  g_thread_join (g_thread_new (
+      NULL, (GThreadFunc)g_get_language_names_with_category, "LC_CTYPE"));
+
+  /* g_get_language_names_with_category returns a pointer to a memory
+     which is owned by a thread it has been called from. The thread is dead now,
+     therefore returned pointer can't be used at this stage.
+  */
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -67,6 +79,7 @@ main (int argc, char *argv[])
   g_test_bug_base ("http://bugs.gnome.org/");
 
   g_test_add_func ("/charset/language_names_with_category", test_language_names_with_category);
+  g_test_add_func ("/charset/language_names_with_category_async", test_language_names_with_category_async);
 
   return g_test_run ();
 }
index 5db9d4c..8eb2871 100644 (file)
@@ -240,6 +240,7 @@ test_month_substring (void)
   setlocale (LC_ALL, "");
 }
 
+
 static void
 test_month_names (void)
 {
index c732ed9..b609f2d 100755 (executable)
@@ -1 +1,2 @@
+#!/bin/sh
 echo "echo"
index 65ee7b0..aba19a7 100644 (file)
@@ -116,6 +116,44 @@ test_environ_null (void)
   g_assert (env == NULL);
 }
 
+static void
+test_environ_case (void)
+{
+  gchar **env;
+  const gchar *value;
+
+  env = NULL;
+
+  env = g_environ_setenv (env, "foo", "bar", TRUE);
+  value = g_environ_getenv (env, "foo");
+  g_assert_cmpstr (value, ==, "bar");
+
+  value = g_environ_getenv (env, "Foo");
+#ifdef G_OS_WIN32
+  g_assert_cmpstr (value, ==, "bar");
+#else
+  g_assert (value == NULL);
+#endif
+
+  env = g_environ_setenv (env, "FOO", "x", TRUE);
+  value = g_environ_getenv (env, "foo");
+#ifdef G_OS_WIN32
+  g_assert_cmpstr (value, ==, "x");
+#else
+  g_assert_cmpstr (value, ==, "bar");
+#endif
+
+  env = g_environ_unsetenv (env, "Foo");
+  value = g_environ_getenv (env, "foo");
+#ifdef G_OS_WIN32
+  g_assert (value == NULL);
+#else
+  g_assert_cmpstr (value, ==, "bar");
+#endif
+
+  g_strfreev (env);
+}
+
 int
 main (int argc, char **argv)
 {
@@ -125,6 +163,7 @@ main (int argc, char **argv)
   g_test_add_func ("/environ/setenv", test_setenv);
   g_test_add_func ("/environ/array", test_environ_array);
   g_test_add_func ("/environ/null", test_environ_null);
+  g_test_add_func ("/environ/case", test_environ_case);
 
   return g_test_run ();
 }
index c2a553b..f90d0c7 100644 (file)
@@ -276,36 +276,36 @@ test_build_filename (void)
 #ifdef G_OS_WIN32
 
   /* Test also using the slash as file name separator */
-#define U "/"
+#define Z "/"
   /* check_string (g_build_filename (NULL), ""); */
-  check_string (g_build_filename (U, NULL), U);
-  check_string (g_build_filename (U"x", NULL), U"x");
-  check_string (g_build_filename ("x"U, NULL), "x"U);
-  check_string (g_build_filename ("", U"x", NULL), U"x");
-  check_string (g_build_filename ("", U"x", NULL), U"x");
-  check_string (g_build_filename (U, "x", NULL), U"x");
-  check_string (g_build_filename (U U, "x", NULL), U U"x");
-  check_string (g_build_filename (U S, "x", NULL), U S"x");
-  check_string (g_build_filename ("x"U, "", NULL), "x"U);
-  check_string (g_build_filename ("x"S"y", "z"U"a", NULL), "x"S"y"S"z"U"a");
-  check_string (g_build_filename ("x", U, NULL), "x"U);
-  check_string (g_build_filename ("x", U U, NULL), "x"U U);
-  check_string (g_build_filename ("x", S U, NULL), "x"S U);
-  check_string (g_build_filename (U"x", "y", NULL), U"x"U"y");
-  check_string (g_build_filename ("x", "y"U, NULL), "x"U"y"U);
-  check_string (g_build_filename (U"x"U, U"y"U, NULL), U"x"U"y"U);
-  check_string (g_build_filename (U"x"U U, U U"y"U, NULL), U"x"U"y"U);
-  check_string (g_build_filename ("x", U, "y",  NULL), "x"U"y");
-  check_string (g_build_filename ("x", U U, "y",  NULL), "x"U"y");
-  check_string (g_build_filename ("x", U S, "y",  NULL), "x"S"y");
-  check_string (g_build_filename ("x", S U, "y",  NULL), "x"U"y");
-  check_string (g_build_filename ("x", U "y", "z", NULL), "x"U"y"U"z");
+  check_string (g_build_filename (Z, NULL), Z);
+  check_string (g_build_filename (Z"x", NULL), Z"x");
+  check_string (g_build_filename ("x"Z, NULL), "x"Z);
+  check_string (g_build_filename ("", Z"x", NULL), Z"x");
+  check_string (g_build_filename ("", Z"x", NULL), Z"x");
+  check_string (g_build_filename (Z, "x", NULL), Z"x");
+  check_string (g_build_filename (Z Z, "x", NULL), Z Z"x");
+  check_string (g_build_filename (Z S, "x", NULL), Z S"x");
+  check_string (g_build_filename ("x"Z, "", NULL), "x"Z);
+  check_string (g_build_filename ("x"S"y", "z"Z"a", NULL), "x"S"y"S"z"Z"a");
+  check_string (g_build_filename ("x", Z, NULL), "x"Z);
+  check_string (g_build_filename ("x", Z Z, NULL), "x"Z Z);
+  check_string (g_build_filename ("x", S Z, NULL), "x"S Z);
+  check_string (g_build_filename (Z"x", "y", NULL), Z"x"Z"y");
+  check_string (g_build_filename ("x", "y"Z, NULL), "x"Z"y"Z);
+  check_string (g_build_filename (Z"x"Z, Z"y"Z, NULL), Z"x"Z"y"Z);
+  check_string (g_build_filename (Z"x"Z Z, Z Z"y"Z, NULL), Z"x"Z"y"Z);
+  check_string (g_build_filename ("x", Z, "y",  NULL), "x"Z"y");
+  check_string (g_build_filename ("x", Z Z, "y",  NULL), "x"Z"y");
+  check_string (g_build_filename ("x", Z S, "y",  NULL), "x"S"y");
+  check_string (g_build_filename ("x", S Z, "y",  NULL), "x"Z"y");
+  check_string (g_build_filename ("x", Z "y", "z", NULL), "x"Z"y"Z"z");
   check_string (g_build_filename ("x", S "y", "z", NULL), "x"S"y"S"z");
-  check_string (g_build_filename ("x", S "y", "z", U, "a", "b", NULL), "x"S"y"S"z"U"a"U"b");
-  check_string (g_build_filename (U"x"U, U"y"U, U"z"U, NULL), U"x"U"y"U"z"U);
-  check_string (g_build_filename (U U"x"U U, U U"y"U U, U U"z"U U, NULL), U U"x"U"y"U"z"U U);
+  check_string (g_build_filename ("x", S "y", "z", Z, "a", "b", NULL), "x"S"y"S"z"Z"a"Z"b");
+  check_string (g_build_filename (Z"x"Z, Z"y"Z, Z"z"Z, NULL), Z"x"Z"y"Z"z"Z);
+  check_string (g_build_filename (Z Z"x"Z Z, Z Z"y"Z Z, Z Z"z"Z Z, NULL), Z Z"x"Z"y"Z"z"Z Z);
 
-#undef U
+#undef Z
 
 #endif /* G_OS_WIN32 */
 
@@ -366,64 +366,64 @@ test_build_filenamev (void)
 #ifdef G_OS_WIN32
 
   /* Test also using the slash as file name separator */
-#define U "/"
+#define Z "/"
   args[0] = NULL;
   check_string (g_build_filenamev (args), "");
-  args[0] = U; args[1] = NULL;
-  check_string (g_build_filenamev (args), U);
-  args[0] = U"x"; args[1] = NULL;
-  check_string (g_build_filenamev (args), U"x");
-  args[0] = "x"U; args[1] = NULL;
-  check_string (g_build_filenamev (args), "x"U);
-  args[0] = ""; args[1] = U"x"; args[2] = NULL;
-  check_string (g_build_filenamev (args), U"x");
-  args[0] = ""; args[1] = U"x"; args[2] = NULL;
-  check_string (g_build_filenamev (args), U"x");
-  args[0] = U; args[1] = "x"; args[2] = NULL;
-  check_string (g_build_filenamev (args), U"x");
-  args[0] = U U; args[1] = "x"; args[2] = NULL;
-  check_string (g_build_filenamev (args), U U"x");
-  args[0] = U S; args[1] = "x"; args[2] = NULL;
-  check_string (g_build_filenamev (args), U S"x");
-  args[0] = "x"U; args[1] = ""; args[2] = NULL;
-  check_string (g_build_filenamev (args), "x"U);
-  args[0] = "x"S"y"; args[1] = "z"U"a"; args[2] = NULL;
-  check_string (g_build_filenamev (args), "x"S"y"S"z"U"a");
-  args[0] = "x"; args[1] = U; args[2] = NULL;
-  check_string (g_build_filenamev (args), "x"U);
-  args[0] = "x"; args[1] = U U; args[2] = NULL;
-  check_string (g_build_filenamev (args), "x"U U);
-  args[0] = "x"; args[1] = S U; args[2] = NULL;
-  check_string (g_build_filenamev (args), "x"S U);
-  args[0] = U"x"; args[1] = "y"; args[2] = NULL;
-  check_string (g_build_filenamev (args), U"x"U"y");
-  args[0] = "x"; args[1] = "y"U; args[2] = NULL;
-  check_string (g_build_filenamev (args), "x"U"y"U);
-  args[0] = U"x"U; args[1] = U"y"U; args[2] = NULL;
-  check_string (g_build_filenamev (args), U"x"U"y"U);
-  args[0] = U"x"U U; args[1] = U U"y"U; args[2] = NULL;
-  check_string (g_build_filenamev (args), U"x"U"y"U);
-  args[0] = "x"; args[1] = U; args[2] = "y", args[3] = NULL;
-  check_string (g_build_filenamev (args), "x"U"y");
-  args[0] = "x"; args[1] = U U; args[2] = "y", args[3] = NULL;
-  check_string (g_build_filenamev (args), "x"U"y");
-  args[0] = "x"; args[1] = U S; args[2] = "y", args[3] = NULL;
+  args[0] = Z; args[1] = NULL;
+  check_string (g_build_filenamev (args), Z);
+  args[0] = Z"x"; args[1] = NULL;
+  check_string (g_build_filenamev (args), Z"x");
+  args[0] = "x"Z; args[1] = NULL;
+  check_string (g_build_filenamev (args), "x"Z);
+  args[0] = ""; args[1] = Z"x"; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z"x");
+  args[0] = ""; args[1] = Z"x"; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z"x");
+  args[0] = Z; args[1] = "x"; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z"x");
+  args[0] = Z Z; args[1] = "x"; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z Z"x");
+  args[0] = Z S; args[1] = "x"; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z S"x");
+  args[0] = "x"Z; args[1] = ""; args[2] = NULL;
+  check_string (g_build_filenamev (args), "x"Z);
+  args[0] = "x"S"y"; args[1] = "z"Z"a"; args[2] = NULL;
+  check_string (g_build_filenamev (args), "x"S"y"S"z"Z"a");
+  args[0] = "x"; args[1] = Z; args[2] = NULL;
+  check_string (g_build_filenamev (args), "x"Z);
+  args[0] = "x"; args[1] = Z Z; args[2] = NULL;
+  check_string (g_build_filenamev (args), "x"Z Z);
+  args[0] = "x"; args[1] = S Z; args[2] = NULL;
+  check_string (g_build_filenamev (args), "x"S Z);
+  args[0] = Z"x"; args[1] = "y"; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z"x"Z"y");
+  args[0] = "x"; args[1] = "y"Z; args[2] = NULL;
+  check_string (g_build_filenamev (args), "x"Z"y"Z);
+  args[0] = Z"x"Z; args[1] = Z"y"Z; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z"x"Z"y"Z);
+  args[0] = Z"x"Z Z; args[1] = Z Z"y"Z; args[2] = NULL;
+  check_string (g_build_filenamev (args), Z"x"Z"y"Z);
+  args[0] = "x"; args[1] = Z; args[2] = "y", args[3] = NULL;
+  check_string (g_build_filenamev (args), "x"Z"y");
+  args[0] = "x"; args[1] = Z Z; args[2] = "y", args[3] = NULL;
+  check_string (g_build_filenamev (args), "x"Z"y");
+  args[0] = "x"; args[1] = Z S; args[2] = "y", args[3] = NULL;
   check_string (g_build_filenamev (args), "x"S"y");
-  args[0] = "x"; args[1] = S U; args[2] = "y", args[3] = NULL;
-  check_string (g_build_filenamev (args), "x"U"y");
-  args[0] = "x"; args[1] = U "y"; args[2] = "z", args[3] = NULL;
-  check_string (g_build_filenamev (args), "x"U"y"U"z");
+  args[0] = "x"; args[1] = S Z; args[2] = "y", args[3] = NULL;
+  check_string (g_build_filenamev (args), "x"Z"y");
+  args[0] = "x"; args[1] = Z "y"; args[2] = "z", args[3] = NULL;
+  check_string (g_build_filenamev (args), "x"Z"y"Z"z");
   args[0] = "x"; args[1] = S "y"; args[2] = "z", args[3] = NULL;
   check_string (g_build_filenamev (args), "x"S"y"S"z");
-  args[0] = "x"; args[1] = S "y"; args[2] = "z", args[3] = U;
+  args[0] = "x"; args[1] = S "y"; args[2] = "z", args[3] = Z;
   args[4] = "a"; args[5] = "b"; args[6] = NULL;
-  check_string (g_build_filenamev (args), "x"S"y"S"z"U"a"U"b");
-  args[0] = U"x"U; args[1] = U"y"U; args[2] = U"z"U, args[3] = NULL;
-  check_string (g_build_filenamev (args), U"x"U"y"U"z"U);
-  args[0] = U U"x"U U; args[1] = U U"y"U U; args[2] = U U"z"U U, args[3] = NULL;
-  check_string (g_build_filenamev (args), U U"x"U"y"U"z"U U);
+  check_string (g_build_filenamev (args), "x"S"y"S"z"Z"a"Z"b");
+  args[0] = Z"x"Z; args[1] = Z"y"Z; args[2] = Z"z"Z, args[3] = NULL;
+  check_string (g_build_filenamev (args), Z"x"Z"y"Z"z"Z);
+  args[0] = Z Z"x"Z Z; args[1] = Z Z"y"Z Z; args[2] = Z Z"z"Z Z, args[3] = NULL;
+  check_string (g_build_filenamev (args), Z Z"x"Z"y"Z"z"Z Z);
 
-#undef U
+#undef Z
 
 #endif /* G_OS_WIN32 */
 }
@@ -913,9 +913,12 @@ test_stdio_wrappers (void)
   cwd = g_get_current_dir ();
   path = g_build_filename (cwd, "mkdir-test", NULL);
   g_free (cwd);
+#ifndef G_OS_WIN32
+  /* 0666 on directories means nothing to Windows, it only obeys ACLs */
   ret = g_chdir (path);
   g_assert_cmpint (errno, ==, EACCES);
   g_assert_cmpint (ret, ==, -1);
+#endif
   ret = g_chmod (path, 0777);
   g_assert_cmpint (ret, ==, 0);
   ret = g_chdir (path);
@@ -945,6 +948,15 @@ test_stdio_wrappers (void)
   g_close (ret, &error);
   g_assert_no_error (error);
 
+#ifdef G_OS_WIN32
+  /* On Windows the 5 permission bit results in a read-only file
+   * that cannot be modified in any way (attribute changes included).
+   * Remove the read-only attribute via chmod().
+   */
+  ret = g_chmod ("test-create", 0666);
+  g_assert_cmpint (ret, ==, 0);
+#endif
+
   ut.actime = ut.modtime = (time_t)0;
   ret = g_utime ("test-create", &ut);
   g_assert_cmpint (ret, ==, 0);
index 8ab4681..00e2218 100644 (file)
@@ -2472,6 +2472,10 @@ gint
 main (gint   argc,
       gchar *argv[])
 {
+  /* In glibc, LANGUAGE is used as highest priority guess for category value.
+   * Unset it to avoid interference with tests using setlocale and translation. */
+  g_unsetenv ("LANGUAGE");
+
   g_test_init (&argc, &argv, NULL);
   g_test_bug_base ("http://bugzilla.gnome.org/");
 
index 18800f9..33caaf0 100644 (file)
@@ -113,7 +113,7 @@ append_type_string (GString  *string,
             g_variant_type_free (element);
           }
 
-          g_assert (g_variant_type_is_array (result));
+          g_assert_true (g_variant_type_is_array (result));
           break;
 
         case 1:
@@ -128,14 +128,14 @@ append_type_string (GString  *string,
             g_variant_type_free (element);
           }
 
-          g_assert (g_variant_type_is_maybe (result));
+          g_assert_true (g_variant_type_is_maybe (result));
           break;
 
         case 2:
           result = append_tuple_type_string (string, description,
                                              definite, depth);
 
-          g_assert (g_variant_type_is_tuple (result));
+          g_assert_true (g_variant_type_is_tuple (result));
           break;
 
         case 3:
@@ -154,28 +154,28 @@ append_type_string (GString  *string,
             g_variant_type_free (value);
           }
 
-          g_assert (g_variant_type_is_dict_entry (result));
+          g_assert_true (g_variant_type_is_dict_entry (result));
           break;
 
         case 4:
           g_string_append_c (string, 'v');
           g_string_append_c (description, 'V');
           result = g_variant_type_copy (G_VARIANT_TYPE_VARIANT);
-          g_assert (g_variant_type_equal (result, G_VARIANT_TYPE_VARIANT));
+          g_assert_true (g_variant_type_equal (result, G_VARIANT_TYPE_VARIANT));
           break;
 
         case 5:
           g_string_append_c (string, '*');
           g_string_append_c (description, 'S');
           result = g_variant_type_copy (G_VARIANT_TYPE_ANY);
-          g_assert (g_variant_type_equal (result, G_VARIANT_TYPE_ANY));
+          g_assert_true (g_variant_type_equal (result, G_VARIANT_TYPE_ANY));
           break;
 
         case 6:
           g_string_append_c (string, 'r');
           g_string_append_c (description, 'R');
           result = g_variant_type_copy (G_VARIANT_TYPE_TUPLE);
-          g_assert (g_variant_type_is_tuple (result));
+          g_assert_true (g_variant_type_is_tuple (result));
           break;
 
         default:
@@ -195,7 +195,7 @@ append_tuple_type_string (GString  *string,
   GVariantType *result, *other_result;
   GVariantType **types;
   gint size;
-  gint i;
+  gsize i;
 
   g_string_append_c (string, '(');
   g_string_append (description, "t of [");
@@ -218,7 +218,7 @@ append_tuple_type_string (GString  *string,
 
   result = g_variant_type_new_tuple ((gpointer) types, size);
   other_result = g_variant_type_new_tuple ((gpointer) types, -1);
-  g_assert (g_variant_type_equal (result, other_result));
+  g_assert_true (g_variant_type_equal (result, other_result));
   g_variant_type_free (other_result);
   for (i = 0; i < size; i++)
     g_variant_type_free (types[i]);
@@ -269,7 +269,7 @@ invalid_mutation (const gchar *type_string)
       while (nb--) bp = strchr (bp + 1, b);
 
       /* swap */
-      g_assert (*bp == b && *pp == p);
+      g_assert_true (*bp == b && *pp == p);
       *bp = p;
       *pp = b;
 
@@ -297,7 +297,7 @@ invalid_mutation (const gchar *type_string)
       np = g_test_rand_int_range (0, np) + 1;
       pp = new - 1;
       while (np--) pp = strchr (pp + 1, p);
-      g_assert (*pp == p);
+      g_assert_cmpint (*pp, ==, p);
 
       while (*pp)
         {
@@ -356,7 +356,7 @@ describe_type (const GVariantType *type)
 
   if (g_variant_type_is_container (type))
     {
-      g_assert (!g_variant_type_is_basic (type));
+      g_assert_false (g_variant_type_is_basic (type));
 
       if (g_variant_type_is_array (type))
         {
@@ -377,7 +377,7 @@ describe_type (const GVariantType *type)
               const GVariantType *sub;
               GString *string;
               gint length;
-              gint i;
+              gsize i;
 
               string = g_string_new ("t of [");
 
@@ -392,7 +392,7 @@ describe_type (const GVariantType *type)
                   if ((sub = g_variant_type_next (sub)))
                     g_string_append (string, ", ");
                 }
-              g_assert (sub == NULL);
+              g_assert_null (sub);
               g_string_append_c (string, ']');
 
               result = g_string_free (string, FALSE);
@@ -409,8 +409,8 @@ describe_type (const GVariantType *type)
           key2 = describe_type (g_variant_type_first (type));
           value2 = describe_type (
             g_variant_type_next (g_variant_type_first (type)));
-          g_assert (g_variant_type_next (g_variant_type_next (
-            g_variant_type_first (type))) == NULL);
+          g_assert_null (g_variant_type_next (g_variant_type_next (
+            g_variant_type_first (type))));
           g_assert_cmpstr (key, ==, key2);
           g_assert_cmpstr (value, ==, value2);
           result = g_strjoin ("", "e of [", key, ", ", value, "]", NULL);
@@ -430,7 +430,7 @@ describe_type (const GVariantType *type)
     {
       if (g_variant_type_is_definite (type))
         {
-          g_assert (g_variant_type_is_basic (type));
+          g_assert_true (g_variant_type_is_basic (type));
 
           if (g_variant_type_equal (type, G_VARIANT_TYPE_BOOLEAN))
             result = g_strdup ("b");
@@ -487,7 +487,8 @@ generate_subtype (const gchar *type_string)
 {
   GVariantType *replacement;
   GString *result, *junk;
-  gint length, n = 0, l;
+  gint l;
+  gsize length, n = 0;
 
   result = g_string_new (NULL);
   junk = g_string_new (NULL);
@@ -505,9 +506,9 @@ generate_subtype (const gchar *type_string)
   /* find it */
   l = -1;
   while (n--) l += strcspn (type_string + l + 1, "r?*") + 1;
-  g_assert (type_string[l] == 'r' ||
-            type_string[l] == '?' ||
-            type_string[l] == '*');
+  g_assert_true (type_string[l] == 'r' ||
+                 type_string[l] == '?' ||
+                 type_string[l] == '*');
 
   /* store up to that point in a GString */
   g_string_append_len (result, type_string, l);
@@ -526,8 +527,8 @@ generate_subtype (const gchar *type_string)
     g_assert_not_reached ();
 
   /* ensure the replacement has the proper type */
-  g_assert (g_variant_type_is_subtype_of (replacement,
-                                          (gpointer) &type_string[l]));
+  g_assert_true (g_variant_type_is_subtype_of (replacement,
+                                               (gpointer) &type_string[l]));
 
   /* store the rest from the original type string */
   g_string_append (result, type_string + l + 1);
@@ -564,11 +565,11 @@ subtype_check (const gchar      *type_string,
   for (node = &ts; node; node = node->parent)
     {
       /* this type should be a subtype of each parent type */
-      g_assert (g_variant_type_is_subtype_of (ts.type, node->type));
+      g_assert_true (g_variant_type_is_subtype_of (ts.type, node->type));
 
       /* it should only be a supertype when it is exactly equal */
-      g_assert (g_variant_type_is_subtype_of (node->type, ts.type) ==
-                g_variant_type_equal (ts.type, node->type));
+      g_assert_true (g_variant_type_is_subtype_of (node->type, ts.type) ==
+                     g_variant_type_equal (ts.type, node->type));
 
       depth++;
     }
@@ -588,7 +589,7 @@ subtype_check (const gchar      *type_string,
 static void
 test_gvarianttype (void)
 {
-  gint i;
+  gsize i;
 
   for (i = 0; i < 2000; i++)
     {
@@ -611,10 +612,10 @@ test_gvarianttype (void)
        * to the one produced with the type constructor routines
        */
       ctype = G_VARIANT_TYPE (type_string->str);
-      g_assert (g_variant_type_equal (ctype, type));
-      g_assert (g_variant_type_hash (ctype) == g_variant_type_hash (type));
-      g_assert (g_variant_type_is_subtype_of (ctype, type));
-      g_assert (g_variant_type_is_subtype_of (type, ctype));
+      g_assert_true (g_variant_type_equal (ctype, type));
+      g_assert_cmpuint (g_variant_type_hash (ctype), ==, g_variant_type_hash (type));
+      g_assert_true (g_variant_type_is_subtype_of (ctype, type));
+      g_assert_true (g_variant_type_is_subtype_of (type, ctype));
 
       /* check if the type is indefinite */
       if (!g_variant_type_is_definite (type))
@@ -629,7 +630,7 @@ test_gvarianttype (void)
         }
       else
         /* ensure that no indefinite characters appear */
-        g_assert (strcspn (type_string->str, "r?*") == type_string->len);
+        g_assert_cmpint (strcspn (type_string->str, "r?*"), ==, type_string->len);
 
 
       /* describe the type.
@@ -645,8 +646,8 @@ test_gvarianttype (void)
       /* make an invalid mutation to the type and make sure the type
        * validation routines catch it */
       invalid = invalid_mutation (type_string->str);
-      g_assert (g_variant_type_string_is_valid (type_string->str));
-      g_assert (!g_variant_type_string_is_valid (invalid));
+      g_assert_true (g_variant_type_string_is_valid (type_string->str));
+      g_assert_false (g_variant_type_string_is_valid (invalid));
       g_free (invalid);
 
       /* concatenate another type to the type string and ensure that
@@ -873,7 +874,7 @@ describe_info (GVariantTypeInfo *info)
         const gchar *sep = "";
         GString *string;
         gint length;
-        gint i;
+        gsize i;
 
         string = g_string_new ("t of [");
         length = g_variant_type_info_n_members (info);
@@ -934,7 +935,7 @@ static void
 check_offsets (GVariantTypeInfo   *info,
                const GVariantType *type)
 {
-  gint flavour;
+  gsize flavour;
   gint length;
 
   length = g_variant_type_info_n_members (info);
@@ -950,7 +951,7 @@ check_offsets (GVariantTypeInfo   *info,
       gsize last_offset_index;
       gsize last_offset;
       gsize position;
-      gint i;
+      gsize i;
 
       subtype = g_variant_type_first (type);
       last_offset_index = -1;
@@ -1011,14 +1012,14 @@ check_offsets (GVariantTypeInfo   *info,
         }
 
       /* make sure we used up exactly all the types */
-      g_assert (subtype == NULL);
+      g_assert_null (subtype);
     }
 }
 
 static void
 test_gvarianttypeinfo (void)
 {
-  gint i;
+  gsize i;
 
   for (i = 0; i < 2000; i++)
     {
@@ -1116,7 +1117,7 @@ random_type_string (void)
     {
       char type_string[MAX_FIXED_MULTIPLIER];
       guint multiplier;
-      guint i = 0;
+      gsize i = 0;
 
       multiplier = g_test_rand_int_range (1, sizeof type_string - 1);
 
@@ -1201,7 +1202,7 @@ random_instance_write (RandomInstance *instance,
                        guchar         *buffer)
 {
   GRand *rand;
-  gint i;
+  gsize i;
 
   g_assert_cmpint ((gsize) buffer & ALIGN_BITS & instance->alignment, ==, 0);
 
@@ -1228,7 +1229,7 @@ random_instance_assert (RandomInstance *instance,
                         gsize           size)
 {
   GRand *rand;
-  gint i;
+  gsize i;
 
   g_assert_cmpint ((gsize) buffer & ALIGN_BITS & instance->alignment, ==, 0);
   g_assert_cmpint (size, ==, instance->size);
@@ -1238,7 +1239,7 @@ random_instance_assert (RandomInstance *instance,
     {
       guchar byte = g_rand_int (rand);
 
-      g_assert (buffer[i] == byte);
+      g_assert_cmpuint (buffer[i], ==, byte);
     }
   g_rand_free (rand);
 
@@ -1251,7 +1252,7 @@ random_instance_check (RandomInstance *instance,
                        gsize           size)
 {
   GRand *rand;
-  gint i;
+  gsize i;
 
   g_assert_cmpint ((gsize) buffer & ALIGN_BITS & instance->alignment, ==, 0);
 
@@ -1273,7 +1274,7 @@ random_instance_filler (GVariantSerialised *serialised,
 {
   RandomInstance *instance = data;
 
-  g_assert (instance->magic == INSTANCE_MAGIC);
+  g_assert_cmpuint (instance->magic, ==, INSTANCE_MAGIC);
 
   if (serialised->type_info == NULL)
     serialised->type_info = instance->type_info;
@@ -1283,8 +1284,8 @@ random_instance_filler (GVariantSerialised *serialised,
 
   serialised->depth = 0;
 
-  g_assert (serialised->type_info == instance->type_info);
-  g_assert (serialised->size == instance->size);
+  g_assert_true (serialised->type_info == instance->type_info);
+  g_assert_cmpuint (serialised->size, ==, instance->size);
 
   if (serialised->data)
     random_instance_write (instance, serialised->data);
@@ -1313,7 +1314,7 @@ calculate_offset_size (gsize body_size,
 static gpointer
 flavoured_malloc (gsize size, gsize flavour)
 {
-  g_assert (flavour < 8);
+  g_assert_cmpuint (flavour, <, 8);
 
   if (size == 0)
     return NULL;
@@ -1435,7 +1436,7 @@ test_maybe (void)
 
   {
     guint alignment;
-    guint flavour;
+    gsize flavour;
 
     alignment = (instance->alignment & ALIGN_BITS) + 1;
 
@@ -1453,7 +1454,7 @@ test_maybe (void)
                                         random_instance_filler,
                                         (gpointer *) &instance, 1);
         child = g_variant_serialised_get_child (serialised, 0);
-        g_assert (child.type_info == instance->type_info);
+        g_assert_true (child.type_info == instance->type_info);
         random_instance_assert (instance, child.data, child.size);
         g_variant_type_info_unref (child.type_info);
         flavoured_free (serialised.data, flavour);
@@ -1468,7 +1469,7 @@ test_maybe (void)
 static void
 test_maybes (void)
 {
-  guint i;
+  gsize i;
 
   for (i = 0; i < 1000; i++)
     test_maybe ();
@@ -1495,14 +1496,14 @@ test_array (void)
 
     element_info = g_variant_type_info_get (G_VARIANT_TYPE (element_type));
     array_info = g_variant_type_info_get (G_VARIANT_TYPE (array_type));
-    g_assert (g_variant_type_info_element (array_info) == element_info);
+    g_assert_true (g_variant_type_info_element (array_info) == element_info);
 
     g_free (element_type);
     g_free (array_type);
   }
 
   {
-    guint i;
+    gsize i;
 
     n_children = g_test_rand_int_range (0, MAX_ARRAY_CHILDREN);
     instances = g_new (RandomInstance *, n_children);
@@ -1518,7 +1519,7 @@ test_array (void)
   {
     gsize element_fixed_size;
     gsize body_size = 0;
-    guint i;
+    gsize i;
 
     for (i = 0; i < n_children; i++)
       append_instance_size (instances[i], &body_size);
@@ -1540,7 +1541,7 @@ test_array (void)
 
   {
     guchar *offset_ptr, *body_ptr;
-    guint i;
+    gsize i;
 
     body_ptr = data = align_malloc (needed_size);
     offset_ptr = body_ptr + needed_size - offset_size * n_children;
@@ -1551,14 +1552,14 @@ test_array (void)
         append_offset (&offset_ptr, body_ptr - data, offset_size);
       }
 
-    g_assert (body_ptr == data + needed_size - offset_size * n_children);
-    g_assert (offset_ptr == data + needed_size);
+    g_assert_true (body_ptr == data + needed_size - offset_size * n_children);
+    g_assert_true (offset_ptr == data + needed_size);
   }
 
   {
     guint alignment;
     gsize flavour;
-    guint i;
+    gsize i;
 
     g_variant_type_info_query (array_info, &alignment, NULL);
     alignment = (alignment & ALIGN_BITS) + 1;
@@ -1576,16 +1577,16 @@ test_array (void)
                                         (gpointer *) instances, n_children);
 
         if (serialised.size)
-          g_assert (memcmp (serialised.data, data, serialised.size) == 0);
+          g_assert_cmpint (memcmp (serialised.data, data, serialised.size), ==, 0);
 
-        g_assert (g_variant_serialised_n_children (serialised) == n_children);
+        g_assert_cmpuint (g_variant_serialised_n_children (serialised), ==, n_children);
 
         for (i = 0; i < n_children; i++)
           {
             GVariantSerialised child;
 
             child = g_variant_serialised_get_child (serialised, i);
-            g_assert (child.type_info == instances[i]->type_info);
+            g_assert_true (child.type_info == instances[i]->type_info);
             random_instance_assert (instances[i], child.data, child.size);
             g_variant_type_info_unref (child.type_info);
           }
@@ -1595,7 +1596,7 @@ test_array (void)
   }
 
   {
-    guint i;
+    gsize i;
 
     for (i = 0; i < n_children; i++)
       random_instance_free (instances[i]);
@@ -1610,7 +1611,7 @@ test_array (void)
 static void
 test_arrays (void)
 {
-  guint i;
+  gsize i;
 
   for (i = 0; i < 100; i++)
     test_array ();
@@ -1635,7 +1636,7 @@ test_tuple (void)
 
   {
     GString *type_string;
-    guint i;
+    gsize i;
 
     fixed_size = TRUE;
     alignment = 0;
@@ -1667,7 +1668,7 @@ test_tuple (void)
   {
     gsize body_size = 0;
     gsize offsets = 0;
-    guint i;
+    gsize i;
 
     for (i = 0; i < n_children; i++)
       {
@@ -1681,7 +1682,7 @@ test_tuple (void)
       {
         body_size += (-body_size) & alignment;
 
-        g_assert ((body_size == 0) == (n_children == 0));
+        g_assert_true ((body_size == 0) == (n_children == 0));
         if (n_children == 0)
           body_size = 1;
       }
@@ -1693,7 +1694,7 @@ test_tuple (void)
   {
     guchar *body_ptr;
     guchar *ofs_ptr;
-    guint i;
+    gsize i;
 
     body_ptr = data = align_malloc (needed_size);
     ofs_ptr = body_ptr + needed_size;
@@ -1711,19 +1712,19 @@ test_tuple (void)
         while (((gsize) body_ptr) & alignment)
           *body_ptr++ = '\0';
 
-        g_assert ((body_ptr == data) == (n_children == 0));
+        g_assert_true ((body_ptr == data) == (n_children == 0));
         if (n_children == 0)
           *body_ptr++ = '\0';
 
       }
 
 
-    g_assert (body_ptr == ofs_ptr);
+    g_assert_true (body_ptr == ofs_ptr);
   }
 
   {
     gsize flavour;
-    guint i;
+    gsize i;
 
     alignment = (alignment & ALIGN_BITS) + 1;
 
@@ -1740,16 +1741,16 @@ test_tuple (void)
                                         (gpointer *) instances, n_children);
 
         if (serialised.size)
-          g_assert (memcmp (serialised.data, data, serialised.size) == 0);
+          g_assert_cmpint (memcmp (serialised.data, data, serialised.size), ==, 0);
 
-        g_assert (g_variant_serialised_n_children (serialised) == n_children);
+        g_assert_cmpuint (g_variant_serialised_n_children (serialised), ==, n_children);
 
         for (i = 0; i < n_children; i++)
           {
             GVariantSerialised child;
 
             child = g_variant_serialised_get_child (serialised, i);
-            g_assert (child.type_info == instances[i]->type_info);
+            g_assert_true (child.type_info == instances[i]->type_info);
             random_instance_assert (instances[i], child.data, child.size);
             g_variant_type_info_unref (child.type_info);
           }
@@ -1759,7 +1760,7 @@ test_tuple (void)
   }
 
   {
-    guint i;
+    gsize i;
 
     for (i = 0; i < n_children; i++)
       random_instance_free (instances[i]);
@@ -1773,7 +1774,7 @@ test_tuple (void)
 static void
 test_tuples (void)
 {
-  guint i;
+  gsize i;
 
   for (i = 0; i < 100; i++)
     test_tuple ();
@@ -1812,7 +1813,7 @@ test_variant (void)
     memcpy (ptr, type_string, len);
     ptr += len;
 
-    g_assert (data + needed_size == ptr);
+    g_assert_true (data + needed_size == ptr);
   }
 
   {
@@ -1836,12 +1837,12 @@ test_variant (void)
                                         (gpointer *) &instance, 1);
 
         if (serialised.size)
-          g_assert (memcmp (serialised.data, data, serialised.size) == 0);
+          g_assert_cmpint (memcmp (serialised.data, data, serialised.size), ==, 0);
 
-        g_assert (g_variant_serialised_n_children (serialised) == 1);
+        g_assert_cmpuint (g_variant_serialised_n_children (serialised), ==, 1);
 
         child = g_variant_serialised_get_child (serialised, 0);
-        g_assert (child.type_info == instance->type_info);
+        g_assert_true (child.type_info == instance->type_info);
         random_instance_check (instance, child.data, child.size);
 
         g_variant_type_info_unref (child.type_info);
@@ -1857,7 +1858,7 @@ test_variant (void)
 static void
 test_variants (void)
 {
-  guint i;
+  gsize i;
 
   for (i = 0; i < 100; i++)
     test_variant ();
@@ -1909,7 +1910,7 @@ test_strings (void)
     { is_string,   15, "(yyy{vv}ssiai)" },
     { is_string,   15, "(yyy{sv)ssiai}" }
   };
-  guint i;
+  gsize i;
 
   for (i = 0; i < G_N_ELEMENTS (test_cases); i++)
     {
@@ -1927,7 +1928,7 @@ test_strings (void)
                                                   test_cases[i].size)
         ? 4 : 0;
 
-      g_assert (flags == test_cases[i].flags);
+      g_assert_cmpuint (flags, ==, test_cases[i].flags);
     }
 }
 
@@ -1968,7 +1969,7 @@ make_random_string (gchar              *string,
                     gsize               size,
                     const GVariantType *type)
 {
-  gint i;
+  gsize i;
 
   /* create strings that are valid signature strings */
 #define good_chars "bynqiuxthdsog"
@@ -2069,7 +2070,7 @@ tree_instance_new (const GVariantType *type,
   if (instance->data_size == 0)
     /* no data -> it is a container */
     {
-      guint i;
+      gsize i;
 
       instance->children = g_new (TreeInstance *, instance->n_children);
 
@@ -2081,7 +2082,7 @@ tree_instance_new (const GVariantType *type,
             child_type = g_variant_type_next (child_type);
         }
 
-      g_assert (!is_tuple_type || child_type == NULL);
+      g_assert_true (!is_tuple_type || child_type == NULL);
     }
 
   g_variant_type_free (mytype);
@@ -2092,7 +2093,7 @@ tree_instance_new (const GVariantType *type,
 static void
 tree_instance_free (TreeInstance *instance)
 {
-  gint i;
+  gsize i;
 
   g_variant_type_info_unref (instance->info);
   for (i = 0; i < instance->n_children; i++)
@@ -2195,7 +2196,7 @@ check_tree (TreeInstance       *instance,
   if (instance->data_size == 0)
     /* is a container */
     {
-      gint i;
+      gsize i;
 
       if (g_variant_serialised_n_children (serialised) !=
           instance->n_children)
@@ -2226,22 +2227,22 @@ check_tree (TreeInstance       *instance,
       switch (instance->data_size)
         {
         case 1:
-          g_assert (serialised.size == 1);
+          g_assert_cmpuint (serialised.size, ==, 1);
           return *(guint8 *) serialised.data ==
                   (guint8) instance->data.integer;
 
         case 2:
-          g_assert (serialised.size == 2);
+          g_assert_cmpuint (serialised.size, ==, 2);
           return *(guint16 *) serialised.data ==
                   (guint16) instance->data.integer;
 
         case 4:
-          g_assert (serialised.size == 4);
+          g_assert_cmpuint (serialised.size, ==, 4);
           return *(guint32 *) serialised.data ==
                   (guint32) instance->data.integer;
 
         case 8:
-          g_assert (serialised.size == 8);
+          g_assert_cmpuint (serialised.size, ==, 8);
           return *(guint64 *) serialised.data ==
                   (guint64) instance->data.integer;
 
@@ -2314,8 +2315,8 @@ test_fuzz (gdouble *fuzziness)
   /* serialise it */
   serialise_tree (tree, &serialised);
 
-  g_assert (g_variant_serialised_is_normal (serialised));
-  g_assert (check_tree (tree, serialised));
+  g_assert_true (g_variant_serialised_is_normal (serialised));
+  g_assert_true (check_tree (tree, serialised));
 
   if (serialised.size)
     {
@@ -2324,7 +2325,7 @@ test_fuzz (gdouble *fuzziness)
 
       while (!fuzzed)
         {
-          gint i;
+          gsize i;
 
           for (i = 0; i < serialised.size; i++)
             if (randomly (*fuzziness))
@@ -2350,7 +2351,7 @@ test_fuzz (gdouble *fuzziness)
       a = g_variant_serialised_is_normal (serialised);
       b = check_tree (tree, serialised);
 
-      g_assert (!a || !b);
+      g_assert_true (!a || !b);
     }
 
   tree_instance_free (tree);
@@ -2405,7 +2406,7 @@ tree_instance_get_gvariant (TreeInstance *tree)
       {
         const GVariantType *child_type;
         GVariant **children;
-        gint i;
+        gsize i;
 
         children = g_new (GVariant *, tree->n_children);
         for (i = 0; i < tree->n_children; i++)
@@ -2424,7 +2425,7 @@ tree_instance_get_gvariant (TreeInstance *tree)
     case G_VARIANT_TYPE_INFO_CHAR_TUPLE:
       {
         GVariant **children;
-        gint i;
+        gsize i;
 
         children = g_new (GVariant *, tree->n_children);
         for (i = 0; i < tree->n_children; i++)
@@ -2439,7 +2440,7 @@ tree_instance_get_gvariant (TreeInstance *tree)
       {
         GVariant *key, *val;
 
-        g_assert (tree->n_children == 2);
+        g_assert_cmpuint (tree->n_children, ==, 2);
 
         key = tree_instance_get_gvariant (tree->children[0]);
         val = tree_instance_get_gvariant (tree->children[1]);
@@ -2452,7 +2453,7 @@ tree_instance_get_gvariant (TreeInstance *tree)
       {
         GVariant *value;
 
-        g_assert (tree->n_children == 1);
+        g_assert_cmpuint (tree->n_children, ==, 1);
 
         value = tree_instance_get_gvariant (tree->children[0]);
         result = g_variant_new_variant (value);
@@ -2525,7 +2526,7 @@ tree_instance_check_gvariant (TreeInstance *tree,
   const GVariantType *type;
 
   type = (GVariantType *) g_variant_type_info_get_type_string (tree->info);
-  g_assert (g_variant_is_of_type (value, type));
+  g_assert_true (g_variant_is_of_type (value, type));
 
   switch (g_variant_type_info_get_type_char (tree->info))
     {
@@ -2711,7 +2712,7 @@ tree_instance_check_iter (TreeInstance *tree,
             return FALSE;
           }
 
-      g_assert (g_variant_iter_next_value (iter) == NULL);
+      g_assert_null (g_variant_iter_next_value (iter));
       g_variant_iter_free (iter);
 
       return TRUE;
@@ -2739,12 +2740,12 @@ test_container (void)
   value = g_variant_ref_sink (tree_instance_get_gvariant (tree));
 
   s1 = g_variant_print (value, TRUE);
-  g_assert (tree_instance_check_gvariant (tree, value));
+  g_assert_true (tree_instance_check_gvariant (tree, value));
 
   g_variant_get_data (value);
 
   s2 = g_variant_print (value, TRUE);
-  g_assert (tree_instance_check_gvariant (tree, value));
+  g_assert_true (tree_instance_check_gvariant (tree, value));
 
   g_assert_cmpstr (s1, ==, s2);
 
@@ -2767,8 +2768,8 @@ test_container (void)
       g_assert_cmpstr (s1, ==, s3);
 
       g_variant_iter_init (&iter, built);
-      g_assert (tree_instance_check_iter (tree, &iter));
-      g_assert (g_variant_iter_next_value (&iter) == NULL);
+      g_assert_true (tree_instance_check_iter (tree, &iter));
+      g_assert_null (g_variant_iter_next_value (&iter));
 
       g_variant_unref (built);
       g_variant_unref (val);
@@ -2808,7 +2809,7 @@ test_utf8 (void)
   GVariant *value;
 
   /* ensure that the test data is not valid utf8... */
-  g_assert (!g_utf8_validate (invalid, -1, NULL));
+  g_assert_false (g_utf8_validate (invalid, -1, NULL));
 
   /* load the data untrusted */
   value = g_variant_new_from_data (G_VARIANT_TYPE_STRING,
@@ -2816,7 +2817,7 @@ test_utf8 (void)
                                    FALSE, NULL, NULL);
 
   /* ensure that the problem is caught and we get valid UTF-8 */
-  g_assert (g_utf8_validate (g_variant_get_string (value, NULL), -1, NULL));
+  g_assert_true (g_utf8_validate (g_variant_get_string (value, NULL), -1, NULL));
   g_variant_unref (value);
 
 
@@ -2828,14 +2829,14 @@ test_utf8 (void)
   /* ensure we get the invalid data (ie: make sure that time wasn't
    * wasted on validating data that was marked as trusted)
    */
-  g_assert (g_variant_get_string (value, NULL) == invalid);
+  g_assert_true (g_variant_get_string (value, NULL) == invalid);
   g_variant_unref (value);
 }
 
 static void
 test_containers (void)
 {
-  gint i;
+  gsize i;
 
   for (i = 0; i < 100; i++)
     {
@@ -2851,46 +2852,46 @@ test_format_strings (void)
   GVariantType *type;
   const gchar *end;
 
-  g_assert (g_variant_format_string_scan ("i", NULL, &end) && *end == '\0');
-  g_assert (g_variant_format_string_scan ("@i", NULL, &end) && *end == '\0');
-  g_assert (g_variant_format_string_scan ("@ii", NULL, &end) && *end == 'i');
-  g_assert (g_variant_format_string_scan ("^a&s", NULL, &end) && *end == '\0');
-  g_assert (g_variant_format_string_scan ("(^as)", NULL, &end) &&
-            *end == '\0');
-  g_assert (!g_variant_format_string_scan ("(^s)", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("(^a)", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("(z)", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("az", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("{**}", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("{@**}", NULL, &end));
-  g_assert (g_variant_format_string_scan ("{@y*}", NULL, &end) &&
-            *end == '\0');
-  g_assert (g_variant_format_string_scan ("{yv}", NULL, &end) &&
-            *end == '\0');
-  g_assert (!g_variant_format_string_scan ("{&?v}", NULL, &end));
-  g_assert (g_variant_format_string_scan ("{@?v}", NULL, &end) &&
-            *end == '\0');
-  g_assert (!g_variant_format_string_scan ("{&@sv}", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("{@&sv}", NULL, &end));
-  g_assert (g_variant_format_string_scan ("{&sv}", NULL, &end) &&
-            *end == '\0');
-  g_assert (!g_variant_format_string_scan ("{vv}", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("{y}", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("{yyy}", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("{ya}", NULL, &end));
-  g_assert (g_variant_format_string_scan ("&s", NULL, &end) && *end == '\0');
-  g_assert (!g_variant_format_string_scan ("&as", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("@z", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("az", NULL, &end));
-  g_assert (!g_variant_format_string_scan ("a&s", NULL, &end));
+  g_assert_true (g_variant_format_string_scan ("i", NULL, &end) && *end == '\0');
+  g_assert_true (g_variant_format_string_scan ("@i", NULL, &end) && *end == '\0');
+  g_assert_true (g_variant_format_string_scan ("@ii", NULL, &end) && *end == 'i');
+  g_assert_true (g_variant_format_string_scan ("^a&s", NULL, &end) && *end == '\0');
+  g_assert_true (g_variant_format_string_scan ("(^as)", NULL, &end) &&
+                 *end == '\0');
+  g_assert_false (g_variant_format_string_scan ("(^s)", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("(^a)", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("(z)", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("az", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("{**}", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("{@**}", NULL, &end));
+  g_assert_true (g_variant_format_string_scan ("{@y*}", NULL, &end) &&
+                 *end == '\0');
+  g_assert_true (g_variant_format_string_scan ("{yv}", NULL, &end) &&
+                 *end == '\0');
+  g_assert_false (g_variant_format_string_scan ("{&?v}", NULL, &end));
+  g_assert_true (g_variant_format_string_scan ("{@?v}", NULL, &end) &&
+                 *end == '\0');
+  g_assert_false (g_variant_format_string_scan ("{&@sv}", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("{@&sv}", NULL, &end));
+  g_assert_true (g_variant_format_string_scan ("{&sv}", NULL, &end) &&
+                 *end == '\0');
+  g_assert_false (g_variant_format_string_scan ("{vv}", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("{y}", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("{yyy}", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("{ya}", NULL, &end));
+  g_assert_true (g_variant_format_string_scan ("&s", NULL, &end) && *end == '\0');
+  g_assert_false (g_variant_format_string_scan ("&as", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("@z", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("az", NULL, &end));
+  g_assert_false (g_variant_format_string_scan ("a&s", NULL, &end));
 
   type = g_variant_format_string_scan_type ("mm(@xy^a&s*?@?)", NULL, &end);
-  g_assert (type && *end == '\0');
-  g_assert (g_variant_type_equal (type, G_VARIANT_TYPE ("mm(xyas*?\?)")));
+  g_assert_true (type && *end == '\0');
+  g_assert_true (g_variant_type_equal (type, G_VARIANT_TYPE ("mm(xyas*?\?)")));
   g_variant_type_free (type);
 
   type = g_variant_format_string_scan_type ("mm(@xy^a&*?@?)", NULL, NULL);
-  g_assert (type == NULL);
+  g_assert_null (type);
 }
 
 static void
@@ -2917,7 +2918,7 @@ test_invalid_varargs (void)
                          "*valid_format_string*");
   value = g_variant_new ("z");
   g_test_assert_expected_messages ();
-  g_assert (value == NULL);
+  g_assert_null (value);
 
   g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
                          "*valid GVariant format string as a prefix*");
@@ -2925,7 +2926,7 @@ test_invalid_varargs (void)
                          "*valid_format_string*");
   value = g_variant_new_va ("z", &end, NULL);
   g_test_assert_expected_messages ();
-  g_assert (value == NULL);
+  g_assert_null (value);
 
   value = g_variant_new ("y", 'a');
   g_test_expect_message (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL,
@@ -2956,6 +2957,18 @@ test_varargs_empty_array (void)
 }
 
 static void
+assert_cmpstrv (const gchar **strv1, const gchar **strv2)
+{
+  gsize i;
+
+  for (i = 0; strv1[i] != NULL && strv2[i] != NULL; i++)
+    g_assert_cmpstr (strv1[i], ==, strv2[i]);
+
+  g_assert_null (strv1[i]);
+  g_assert_null (strv2[i]);
+}
+
+static void
 test_varargs (void)
 {
   {
@@ -3004,12 +3017,13 @@ test_varargs (void)
     GVariant *value;
     gchar *number;
     gboolean just;
-    gint i, val;
+    guint i;
+    gint val;
 
     g_variant_builder_init (&array, G_VARIANT_TYPE_ARRAY);
     for (i = 0; i < 100; i++)
       {
-        number = g_strdup_printf ("%d", i);
+        number = g_strdup_printf ("%u", i);
         g_variant_builder_add (&array, "s", number);
         g_free (number);
       }
@@ -3020,12 +3034,12 @@ test_varargs (void)
     i = 0;
     while (g_variant_iter_loop (&iter, "s", &number))
       {
-        gchar *check = g_strdup_printf ("%d", i++);
+        gchar *check = g_strdup_printf ("%u", i++);
         g_assert_cmpstr (number, ==, check);
         g_free (check);
       }
-    g_assert (number == NULL);
-    g_assert (i == 100);
+    g_assert_null (number);
+    g_assert_cmpuint (i, ==, 100);
 
     g_variant_unref (value);
 
@@ -3037,8 +3051,8 @@ test_varargs (void)
     i = 0;
     g_variant_iter_init (&iter, value);
     while (g_variant_iter_loop (&iter, "mi", NULL, &val))
-      g_assert (val == i++ || val == 0);
-    g_assert (i == 100);
+      g_assert_true (val == i++ || val == 0);
+    g_assert_cmpuint (i, ==, 100);
 
     i = 0;
     g_variant_iter_init (&iter, value);
@@ -3048,16 +3062,16 @@ test_varargs (void)
 
         if (this % 2 == 0)
           {
-            g_assert (just);
-            g_assert (val == this);
+            g_assert_true (just);
+            g_assert_cmpint (val, ==, this);
           }
         else
           {
-            g_assert (!just);
-            g_assert (val == 0);
+            g_assert_false (just);
+            g_assert_cmpint (val, ==, 0);
           }
       }
-    g_assert (i == 100);
+    g_assert_cmpuint (i, ==, 100);
 
     g_variant_unref (value);
   }
@@ -3072,20 +3086,20 @@ test_varargs (void)
     gchar **my_strv;
     GVariant *value;
     gchar *str;
-    gint i;
+    gsize i;
 
     g_variant_builder_init (&builder, G_VARIANT_TYPE ("as"));
-    g_variant_builder_add (&builder, "s", "/foo");
-    g_variant_builder_add (&builder, "s", "/bar");
-    g_variant_builder_add (&builder, "s", "/baz");
-    value = g_variant_new("(as^as^a&s)", &builder, strvector, strvector);
+    g_variant_builder_add (&builder, "s", test_strs[0]);
+    g_variant_builder_add (&builder, "s", test_strs[1]);
+    g_variant_builder_add (&builder, "s", test_strs[2]);
+    value = g_variant_new ("(as^as^a&s)", &builder, strvector, strvector);
     g_variant_iter_init (&tuple, value);
     g_variant_iter_next (&tuple, "as", &array);
 
     i = 0;
     while (g_variant_iter_loop (array, "s", &str))
       g_assert_cmpstr (str, ==, test_strs[i++]);
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
 
     g_variant_iter_free (array);
 
@@ -3096,19 +3110,15 @@ test_varargs (void)
     i = 0;
     while (g_variant_iter_loop (array, "&s", &str))
       g_assert_cmpstr (str, ==, test_strs[i++]);
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
 
     g_variant_iter_free (array);
 
     g_variant_iter_next (&tuple, "^a&s", &strv);
     g_variant_iter_next (&tuple, "^as", &my_strv);
 
-    g_assert_cmpstr (strv[0], ==, "/hello");
-    g_assert_cmpstr (strv[1], ==, "/world");
-    g_assert (strv[2] == NULL);
-    g_assert_cmpstr (my_strv[0], ==, "/hello");
-    g_assert_cmpstr (my_strv[1], ==, "/world");
-    g_assert (my_strv[2] == NULL);
+    assert_cmpstrv (strv, strvector);
+    assert_cmpstrv ((const char **)my_strv, strvector);
 
     g_variant_unref (value);
     g_strfreev (my_strv);
@@ -3125,7 +3135,7 @@ test_varargs (void)
     gchar **my_strv;
     GVariant *value;
     gchar *str;
-    gint i;
+    gsize i;
 
     g_variant_builder_init (&builder, G_VARIANT_TYPE ("aaay"));
     g_variant_builder_add (&builder, "^aay", strvector);
@@ -3136,22 +3146,22 @@ test_varargs (void)
     i = 0;
     while (g_variant_iter_loop (array, "^aay", &my_strv))
       i++;
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
 
     /* start over */
     g_variant_iter_init (array, value);
     i = 0;
     while (g_variant_iter_loop (array, "^a&ay", &strv))
       i++;
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
     g_variant_unref (value);
     g_variant_iter_free (array);
 
     /* next test */
     g_variant_builder_init (&builder, G_VARIANT_TYPE ("aay"));
-    g_variant_builder_add (&builder, "^ay", "/foo");
-    g_variant_builder_add (&builder, "^ay", "/bar");
-    g_variant_builder_add (&builder, "^ay", "/baz");
+    g_variant_builder_add (&builder, "^ay", test_strs[0]);
+    g_variant_builder_add (&builder, "^ay", test_strs[1]);
+    g_variant_builder_add (&builder, "^ay", test_strs[2]);
     value = g_variant_new ("(aay^aay^a&ay)", &builder, strvector, strvector);
     g_variant_iter_init (&tuple, value);
     g_variant_iter_next (&tuple, "aay", &array);
@@ -3159,7 +3169,7 @@ test_varargs (void)
     i = 0;
     while (g_variant_iter_loop (array, "^ay", &str))
       g_assert_cmpstr (str, ==, test_strs[i++]);
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
 
     g_variant_iter_free (array);
 
@@ -3170,19 +3180,15 @@ test_varargs (void)
     i = 0;
     while (g_variant_iter_loop (array, "^&ay", &str))
       g_assert_cmpstr (str, ==, test_strs[i++]);
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
 
     g_variant_iter_free (array);
 
     g_variant_iter_next (&tuple, "^a&ay", &strv);
     g_variant_iter_next (&tuple, "^aay", &my_strv);
 
-    g_assert_cmpstr (strv[0], ==, "/hello");
-    g_assert_cmpstr (strv[1], ==, "/world");
-    g_assert (strv[2] == NULL);
-    g_assert_cmpstr (my_strv[0], ==, "/hello");
-    g_assert_cmpstr (my_strv[1], ==, "/world");
-    g_assert (my_strv[2] == NULL);
+    assert_cmpstrv (strv, strvector);
+    assert_cmpstrv ((const char **)my_strv, strvector);
 
     g_variant_unref (value);
     g_strfreev (my_strv);
@@ -3199,20 +3205,20 @@ test_varargs (void)
     gchar **my_strv;
     GVariant *value;
     gchar *str;
-    gint i;
+    gsize i;
 
     g_variant_builder_init (&builder, G_VARIANT_TYPE_OBJECT_PATH_ARRAY);
-    g_variant_builder_add (&builder, "o", "/foo");
-    g_variant_builder_add (&builder, "o", "/bar");
-    g_variant_builder_add (&builder, "o", "/baz");
-    value = g_variant_new("(ao^ao^a&o)", &builder, strvector, strvector);
+    g_variant_builder_add (&builder, "o", test_strs[0]);
+    g_variant_builder_add (&builder, "o", test_strs[1]);
+    g_variant_builder_add (&builder, "o", test_strs[2]);
+    value = g_variant_new ("(ao^ao^a&o)", &builder, strvector, strvector);
     g_variant_iter_init (&tuple, value);
     g_variant_iter_next (&tuple, "ao", &array);
 
     i = 0;
     while (g_variant_iter_loop (array, "o", &str))
       g_assert_cmpstr (str, ==, test_strs[i++]);
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
 
     g_variant_iter_free (array);
 
@@ -3223,19 +3229,15 @@ test_varargs (void)
     i = 0;
     while (g_variant_iter_loop (array, "&o", &str))
       g_assert_cmpstr (str, ==, test_strs[i++]);
-    g_assert (i == 3);
+    g_assert_cmpuint (i, ==, 3);
 
     g_variant_iter_free (array);
 
     g_variant_iter_next (&tuple, "^a&o", &strv);
     g_variant_iter_next (&tuple, "^ao", &my_strv);
 
-    g_assert_cmpstr (strv[0], ==, "/hello");
-    g_assert_cmpstr (strv[1], ==, "/world");
-    g_assert (strv[2] == NULL);
-    g_assert_cmpstr (my_strv[0], ==, "/hello");
-    g_assert_cmpstr (my_strv[1], ==, "/world");
-    g_assert (my_strv[2] == NULL);
+    assert_cmpstrv (strv, strvector);
+    assert_cmpstrv ((const char **)my_strv, strvector);
 
     g_variant_unref (value);
     g_strfreev (my_strv);
@@ -3251,7 +3253,7 @@ test_varargs (void)
     GVariant *value;
     GVariant *sub;
     gchar **strv;
-    gint i;
+    gsize i;
 
     g_variant_builder_init (&builder, G_VARIANT_TYPE ("aas"));
     g_variant_builder_open (&builder, G_VARIANT_TYPE ("as"));
@@ -3283,7 +3285,7 @@ test_varargs (void)
         i = 0;
         while (g_variant_iter_loop (i2, "s", &str))
           g_assert_cmpstr (str, ==, strvector[i++]);
-        g_assert (i == 6);
+        g_assert_cmpuint (i, ==, 6);
       }
 
     g_variant_iter_init (&iter, value);
@@ -3313,7 +3315,7 @@ test_varargs (void)
 
     for (i = 0; i < g_variant_n_children (value); i++)
       {
-        gint j;
+        gsize j;
 
         g_variant_get_child (value, i, "*", &sub);
 
@@ -3395,8 +3397,8 @@ test_varargs (void)
                    &justs[8], NULL,
                    &justs[9], NULL,
                    NULL);
-    g_assert (!(justs[0] || justs[1] || justs[2] || justs[3] || justs[4] ||
-                justs[5] || justs[6] || justs[7] || justs[8] || justs[9]));
+    g_assert_true (!(justs[0] || justs[1] || justs[2] || justs[3] || justs[4] ||
+                     justs[5] || justs[6] || justs[7] || justs[8] || justs[9]));
 
     /* both non-NULL */
     memset (justs, 1, sizeof justs);
@@ -3416,13 +3418,13 @@ test_varargs (void)
                    &justs[8], &hval,
                    &justs[9], &dval,
                    &vval);
-    g_assert (!(justs[0] || justs[1] || justs[2] || justs[3] || justs[4] ||
-                justs[5] || justs[6] || justs[7] || justs[8] || justs[9]));
-    g_assert (byteval == '\0' && bval == FALSE);
-    g_assert (i16val == 0 && u16val == 0 && i32val == 0 &&
-              u32val == 0 && i64val == 0 && u64val == 0 &&
-              hval == 0 && dval == 0.0);
-    g_assert (vval == NULL);
+    g_assert_true (!(justs[0] || justs[1] || justs[2] || justs[3] || justs[4] ||
+                     justs[5] || justs[6] || justs[7] || justs[8] || justs[9]));
+    g_assert_true (byteval == '\0' && bval == FALSE);
+    g_assert_true (i16val == 0 && u16val == 0 && i32val == 0 &&
+                   u32val == 0 && i64val == 0 && u64val == 0 &&
+                   hval == 0 && dval == 0.0);
+    g_assert_null (vval);
 
     /* NULL justs */
     byteval = i16val = u16val = i32val = u32val = i64val = u64val = hval = 88;
@@ -3441,11 +3443,11 @@ test_varargs (void)
                    NULL, &hval,
                    NULL, &dval,
                    &vval);
-    g_assert (byteval == '\0' && bval == FALSE);
-    g_assert (i16val == 0 && u16val == 0 && i32val == 0 &&
-              u32val == 0 && i64val == 0 && u64val == 0 &&
-              hval == 0 && dval == 0.0);
-    g_assert (vval == NULL);
+    g_assert_true (byteval == '\0' && bval == FALSE);
+    g_assert_true (i16val == 0 && u16val == 0 && i32val == 0 &&
+                   u32val == 0 && i64val == 0 && u64val == 0 &&
+                   hval == 0 && dval == 0.0);
+    g_assert_null (vval);
 
     g_variant_unref (value);
 
@@ -3492,8 +3494,8 @@ test_varargs (void)
                    &justs[8], NULL,
                    &justs[9], NULL,
                    NULL);
-    g_assert (justs[0] && justs[1] && justs[2] && justs[3] && justs[4] &&
-              justs[5] && justs[6] && justs[7] && justs[8] && justs[9]);
+    g_assert_true (justs[0] && justs[1] && justs[2] && justs[3] && justs[4] &&
+                   justs[5] && justs[6] && justs[7] && justs[8] && justs[9]);
 
     /* both non-NULL */
     memset (justs, 0, sizeof justs);
@@ -3513,13 +3515,13 @@ test_varargs (void)
                    &justs[8], &hval,
                    &justs[9], &dval,
                    &vval);
-    g_assert (justs[0] && justs[1] && justs[2] && justs[3] && justs[4] &&
-              justs[5] && justs[6] && justs[7] && justs[8] && justs[9]);
-    g_assert (byteval == 'a' && bval == TRUE);
-    g_assert (i16val == 123 && u16val == 123 && i32val == 123 &&
-              u32val == 123 && i64val == 123 && u64val == 123 &&
-              hval == -1 && dval == 37.5);
-    g_assert (g_variant_is_of_type (vval, G_VARIANT_TYPE_UNIT));
+    g_assert_true (justs[0] && justs[1] && justs[2] && justs[3] && justs[4] &&
+                   justs[5] && justs[6] && justs[7] && justs[8] && justs[9]);
+    g_assert_true (byteval == 'a' && bval == TRUE);
+    g_assert_true (i16val == 123 && u16val == 123 && i32val == 123 &&
+                   u32val == 123 && i64val == 123 && u64val == 123 &&
+                   hval == -1 && dval == 37.5);
+    g_assert_true (g_variant_is_of_type (vval, G_VARIANT_TYPE_UNIT));
     g_variant_unref (vval);
 
     /* NULL justs */
@@ -3539,11 +3541,11 @@ test_varargs (void)
                    NULL, &hval,
                    NULL, &dval,
                    &vval);
-    g_assert (byteval == 'a' && bval == TRUE);
-    g_assert (i16val == 123 && u16val == 123 && i32val == 123 &&
-              u32val == 123 && i64val == 123 && u64val == 123 &&
-              hval == -1 && dval == 37.5);
-    g_assert (g_variant_is_of_type (vval, G_VARIANT_TYPE_UNIT));
+    g_assert_true (byteval == 'a' && bval == TRUE);
+    g_assert_true (i16val == 123 && u16val == 123 && i32val == 123 &&
+                   u32val == 123 && i64val == 123 && u64val == 123 &&
+                   hval == -1 && dval == 37.5);
+    g_assert_true (g_variant_is_of_type (vval, G_VARIANT_TYPE_UNIT));
     g_variant_unref (vval);
 
     g_variant_unref (value);
@@ -3584,7 +3586,7 @@ hash_get (GVariant    *value,
   va_end (ap);
 
   if (hash)
-    g_assert (*endptr == '#');
+    g_assert_cmpint (*endptr, ==, '#');
 }
 
 static GVariant *
@@ -3603,7 +3605,7 @@ hash_new (const gchar *format,
   va_end (ap);
 
   if (hash)
-    g_assert (*endptr == '#');
+    g_assert_cmpint (*endptr, ==, '#');
 
   return value;
 }
@@ -3617,13 +3619,13 @@ test_valist (void)
   x = 0;
   value = hash_new ("i", 234);
   hash_get (value, "i", &x);
-  g_assert (x == 234);
+  g_assert_cmpint (x, ==, 234);
   g_variant_unref (value);
 
   x = 0;
   value = hash_new ("i#", 234);
   hash_get (value, "i#", &x);
-  g_assert (x == 234);
+  g_assert_cmpint (x, ==, 234);
   g_variant_unref (value);
 
   g_variant_type_info_assert_no_infos ();
@@ -3665,7 +3667,7 @@ test_hashing (void)
 {
   GVariant *items[4096];
   GHashTable *table;
-  gint i;
+  gsize i;
 
   table = g_hash_table_new_full (g_variant_hash, g_variant_equal,
                                  (GDestroyNotify ) g_variant_unref,
@@ -3674,7 +3676,7 @@ test_hashing (void)
   for (i = 0; i < G_N_ELEMENTS (items); i++)
     {
       TreeInstance *tree;
-      gint j;
+      gsize j;
 
  again:
       tree = tree_instance_new (NULL, 0);
@@ -3744,7 +3746,7 @@ test_gv_byteswap (void)
                                    NULL, NULL);
   swapped = g_variant_byteswap (value);
   g_variant_unref (value);
-  g_assert (g_variant_get_size (swapped) == 13);
+  g_assert_cmpuint (g_variant_get_size (swapped), ==, 13);
   string = g_variant_print (swapped, FALSE);
   g_variant_unref (swapped);
   g_assert_cmpstr (string, ==, "[('a', 66), ('b', 77)]");
@@ -3756,7 +3758,7 @@ test_gv_byteswap (void)
                                    NULL, NULL);
   swapped = g_variant_byteswap (value);
   g_variant_unref (value);
-  g_assert (g_variant_get_size (swapped) == 13);
+  g_assert_cmpuint (g_variant_get_size (swapped), ==, 13);
   string = g_variant_print (swapped, FALSE);
   g_variant_unref (swapped);
   g_assert_cmpstr (string, ==, "[('a', 66), ('b', 77)]");
@@ -3769,11 +3771,11 @@ test_gv_byteswap (void)
   string = g_variant_print (value, FALSE);
   swapped = g_variant_byteswap (value);
   g_variant_unref (value);
-  g_assert (g_variant_get_size (swapped) == 13);
+  g_assert_cmpuint (g_variant_get_size (swapped), ==, 13);
   value = g_variant_byteswap (swapped);
   g_variant_unref (swapped);
   string2 = g_variant_print (value, FALSE);
-  g_assert (g_variant_get_size (value) == 13);
+  g_assert_cmpuint (g_variant_get_size (value), ==, 13);
   g_variant_unref (value);
   g_assert_cmpstr (string, ==, string2);
   g_free (string2);
@@ -3817,7 +3819,7 @@ test_parser (void)
 static void
 test_parses (void)
 {
-  gint i;
+  gsize i;
 
   for (i = 0; i < 100; i++)
     {
@@ -3905,7 +3907,7 @@ test_parses (void)
     GVariant *value;
     gchar *printed;
     gchar *printed_down;
-    gint i;
+    gsize i;
 
     for (i = 0; i < G_N_ELEMENTS (tests); i++)
       {
@@ -3914,7 +3916,7 @@ test_parses (void)
         printed = g_variant_print (value, FALSE);
         /* Canonicalize to lowercase; https://bugzilla.gnome.org/show_bug.cgi?id=704585 */
         printed_down = g_ascii_strdown (printed, -1);
-        g_assert (g_str_has_prefix (printed_down, tests[i]));
+        g_assert_true (g_str_has_prefix (printed_down, tests[i]));
         g_free (printed);
         g_free (printed_down);
         g_variant_unref (value);
@@ -4037,8 +4039,24 @@ test_parse_failures (void)
     "b\"\\\"",                  "0-4:",            "unterminated string constant",
     "b'\\'a",                   "0-5:",            "unterminated string constant",
     "b\"\\\"a",                 "0-5:",            "unterminated string constant",
+    "'\\u-ff4'",                "3:",              "invalid 4-character unicode escape",
+    "'\\u+ff4'",                "3:",              "invalid 4-character unicode escape",
+    "'\\u'",                    "3:",              "invalid 4-character unicode escape",
+    "'\\u0'",                   "3-4:",            "invalid 4-character unicode escape",
+    "'\\uHELLO'",               "3:",              "invalid 4-character unicode escape",
+    "'\\u ff4'",                "3:",              "invalid 4-character unicode escape",
+    "'\\u012'",                 "3-6:",            "invalid 4-character unicode escape",
+    "'\\u0xff4'",               "3-4:",            "invalid 4-character unicode escape",
+    "'\\U-ff4'",                "3:",              "invalid 8-character unicode escape",
+    "'\\U+ff4'",                "3:",              "invalid 8-character unicode escape",
+    "'\\U'",                    "3:",              "invalid 8-character unicode escape",
+    "'\\U0'",                   "3-4:",            "invalid 8-character unicode escape",
+    "'\\UHELLO'",               "3:",              "invalid 8-character unicode escape",
+    "'\\U ff4'",                "3:",              "invalid 8-character unicode escape",
+    "'\\U0123456'",             "3-10:",           "invalid 8-character unicode escape",
+    "'\\U0xff4'",               "3-4:",            "invalid 8-character unicode escape",
   };
-  gint i;
+  guint i;
 
   for (i = 0; i < G_N_ELEMENTS (test); i += 3)
     {
@@ -4058,11 +4076,11 @@ test_parse_failures (void)
       g_free (test_blob);
 
       if (!strstr (error1->message, test[i+2]))
-        g_error ("test %d: Can't find '%s' in '%s'", i / 3,
+        g_error ("test %u: Can't find '%s' in '%s'", i / 3,
                  test[i+2], error1->message);
 
       if (!g_str_has_prefix (error1->message, test[i+1]))
-        g_error ("test %d: Expected location '%s' in '%s'", i / 3,
+        g_error ("test %u: Expected location '%s' in '%s'", i / 3,
                  test[i+1], error1->message);
 
       /* Test again with the nul terminator this time. The behaviour should be
@@ -4112,7 +4130,7 @@ test_parse_positional (void)
                   "[('one', 1), ('two', 2), ('three', 3)]");
   value = g_variant_new_parsed ("[('one', 1), (%s, 2),"
                                 " ('three', %u)]", "two", 3);
-  g_assert (g_variant_is_of_type (value, G_VARIANT_TYPE ("a(su)")));
+  g_assert_true (g_variant_is_of_type (value, G_VARIANT_TYPE ("a(su)")));
   check_and_free (value, "[('one', 1), ('two', 2), ('three', 3)]");
   check_and_free (g_variant_new_parsed ("{%s:%i}", "one", 1), "{'one': 1}");
 
@@ -4135,9 +4153,9 @@ test_floating (void)
   GVariant *value;
 
   value = g_variant_new_int32 (42);
-  g_assert (g_variant_is_floating (value));
+  g_assert_true (g_variant_is_floating (value));
   g_variant_ref_sink (value);
-  g_assert (!g_variant_is_floating (value));
+  g_assert_true (!g_variant_is_floating (value));
   g_variant_unref (value);
 }
 
@@ -4154,7 +4172,7 @@ test_bytestring (void)
   strv = g_strsplit (test_string, ",", 0);
 
   value = g_variant_new_bytestring_array ((const gchar **) strv, -1);
-  g_assert (g_variant_is_floating (value));
+  g_assert_true (g_variant_is_floating (value));
   g_strfreev (strv);
 
   str = g_variant_print (value, FALSE);
@@ -4238,7 +4256,7 @@ test_lookup_value (void)
     { "@a{sv} {'x':  <5>}",   "x",  "5"   },
     { "@a{sv} {'x':  <'y'>}", "y"         }
   };
-  gint i;
+  gsize i;
 
   for (i = 0; i < G_N_ELEMENTS (cases); i++)
     {
@@ -4253,7 +4271,7 @@ test_lookup_value (void)
       if (value == NULL && cases[i].value == NULL)
         continue;
 
-      g_assert (value && cases[i].value);
+      g_assert_true (value && cases[i].value);
       p = g_variant_print (value, FALSE);
       g_assert_cmpstr (cases[i].value, ==, p);
       g_variant_unref (value);
@@ -4274,24 +4292,24 @@ test_lookup (void)
                           NULL, NULL, NULL);
 
   ok = g_variant_lookup (dict, "a", "i", &num);
-  g_assert (ok);
+  g_assert_true (ok);
   g_assert_cmpint (num, ==, 5);
 
   ok = g_variant_lookup (dict, "a", "&s", &str);
-  g_assert (!ok);
+  g_assert_false (ok);
 
   ok = g_variant_lookup (dict, "q", "&s", &str);
-  g_assert (!ok);
+  g_assert_false (ok);
 
   ok = g_variant_lookup (dict, "b", "i", &num);
-  g_assert (!ok);
+  g_assert_false (ok);
 
   ok = g_variant_lookup (dict, "b", "&s", &str);
-  g_assert (ok);
+  g_assert_true (ok);
   g_assert_cmpstr (str, ==, "c");
 
   ok = g_variant_lookup (dict, "q", "&s", &str);
-  g_assert (!ok);
+  g_assert_false (ok);
 
   g_variant_unref (dict);
 }
@@ -4320,62 +4338,62 @@ test_compare (void)
 
   a = untrusted (g_variant_new_byte (5));
   b = g_variant_new_byte (6);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_int16 (G_MININT16));
   b = g_variant_new_int16 (G_MAXINT16);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_uint16 (0));
   b = g_variant_new_uint16 (G_MAXUINT16);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_int32 (G_MININT32));
   b = g_variant_new_int32 (G_MAXINT32);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_uint32 (0));
   b = g_variant_new_uint32 (G_MAXUINT32);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_int64 (G_MININT64));
   b = g_variant_new_int64 (G_MAXINT64);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_uint64 (0));
   b = g_variant_new_uint64 (G_MAXUINT64);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_double (G_MINDOUBLE));
   b = g_variant_new_double (G_MAXDOUBLE);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_string ("abc"));
   b = g_variant_new_string ("abd");
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_object_path ("/abc"));
   b = g_variant_new_object_path ("/abd");
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_signature ("g"));
   b = g_variant_new_signature ("o");
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_boolean (FALSE));
   b = g_variant_new_boolean (TRUE);
-  g_assert (g_variant_compare (a, b) < 0);
+  g_assert_cmpint (g_variant_compare (a, b), <, 0);
   g_variant_unref (a);
   g_variant_unref (b);
 }
@@ -4388,67 +4406,67 @@ test_equal (void)
 
   a = untrusted (g_variant_new_byte (5));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_int16 (G_MININT16));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_uint16 (0));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_int32 (G_MININT32));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_uint32 (0));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_int64 (G_MININT64));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_uint64 (0));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_double (G_MINDOUBLE));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_string ("abc"));
-  g_assert (g_variant_equal (a, a));
+  g_assert_cmpvariant (a, a);
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_object_path ("/abc"));
-  g_assert (g_variant_equal (a, a));
+  g_assert_cmpvariant (a, a);
   b = g_variant_get_normal_form (a);
   a = untrusted (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_signature ("g"));
-  g_assert (g_variant_equal (a, a));
+  g_assert_cmpvariant (a, a);
   b = g_variant_get_normal_form (a);
   a = untrusted (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
   a = untrusted (g_variant_new_boolean (FALSE));
   b = g_variant_get_normal_form (a);
-  g_assert (g_variant_equal (a, b));
+  g_assert_cmpvariant (a, b);
   g_variant_unref (a);
   g_variant_unref (b);
 }
@@ -4460,12 +4478,12 @@ test_fixed_array (void)
   gint32 values[5];
   const gint32 *elts;
   gsize n_elts;
-  gint i;
+  gsize i;
 
   n_elts = 0;
   a = g_variant_new_parsed ("[1,2,3,4,5]");
   elts = g_variant_get_fixed_array (a, &n_elts, sizeof (gint32));
-  g_assert (n_elts == 5);
+  g_assert_cmpuint (n_elts, ==, 5);
   for (i = 0; i < 5; i++)
     g_assert_cmpint (elts[i], ==, i + 1);
   g_variant_unref (a);
@@ -4477,7 +4495,7 @@ test_fixed_array (void)
                                  G_N_ELEMENTS (values), sizeof (values[0]));
   g_assert_cmpstr (g_variant_get_type_string (a), ==, "ai");
   elts = g_variant_get_fixed_array (a, &n_elts, sizeof (gint32));
-  g_assert (n_elts == 5);
+  g_assert_cmpuint (n_elts, ==, 5);
   for (i = 0; i < 5; i++)
     g_assert_cmpint (elts[i], ==, i + 1);
   g_variant_unref (a);
@@ -4491,23 +4509,23 @@ test_check_format_string (void)
   value = g_variant_new ("(sas)", "foo", NULL);
   g_variant_ref_sink (value);
 
-  g_assert (g_variant_check_format_string (value, "(s*)", TRUE));
-  g_assert (g_variant_check_format_string (value, "(s*)", FALSE));
-  g_assert (!g_variant_check_format_string (value, "(u*)", TRUE));
-  g_assert (!g_variant_check_format_string (value, "(u*)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(s*)", TRUE));
+  g_assert_true (g_variant_check_format_string (value, "(s*)", FALSE));
+  g_assert_false (g_variant_check_format_string (value, "(u*)", TRUE));
+  g_assert_false (g_variant_check_format_string (value, "(u*)", FALSE));
 
-  g_assert (g_variant_check_format_string (value, "(&s*)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(&s*)", FALSE));
   g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "*contains a '&' character*");
-  g_assert (!g_variant_check_format_string (value, "(&s*)", TRUE));
+  g_assert_false (g_variant_check_format_string (value, "(&s*)", TRUE));
   g_test_assert_expected_messages ();
 
-  g_assert (g_variant_check_format_string (value, "(s^as)", TRUE));
-  g_assert (g_variant_check_format_string (value, "(s^as)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(s^as)", TRUE));
+  g_assert_true (g_variant_check_format_string (value, "(s^as)", FALSE));
 
   g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "*contains a '&' character*");
-  g_assert (!g_variant_check_format_string (value, "(s^a&s)", TRUE));
+  g_assert_false (g_variant_check_format_string (value, "(s^a&s)", TRUE));
   g_test_assert_expected_messages ();
-  g_assert (g_variant_check_format_string (value, "(s^a&s)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(s^a&s)", FALSE));
 
   g_variant_unref (value);
 
@@ -4515,26 +4533,26 @@ test_check_format_string (void)
   value = g_variant_new ("(say)", "foo", NULL);
   g_variant_ref_sink (value);
 
-  g_assert (g_variant_check_format_string (value, "(s*)", TRUE));
-  g_assert (g_variant_check_format_string (value, "(s*)", FALSE));
-  g_assert (!g_variant_check_format_string (value, "(u*)", TRUE));
-  g_assert (!g_variant_check_format_string (value, "(u*)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(s*)", TRUE));
+  g_assert_true (g_variant_check_format_string (value, "(s*)", FALSE));
+  g_assert_false (g_variant_check_format_string (value, "(u*)", TRUE));
+  g_assert_false (g_variant_check_format_string (value, "(u*)", FALSE));
 
-  g_assert (g_variant_check_format_string (value, "(&s*)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(&s*)", FALSE));
   g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "*contains a '&' character*");
-  g_assert (!g_variant_check_format_string (value, "(&s*)", TRUE));
+  g_assert_false (g_variant_check_format_string (value, "(&s*)", TRUE));
   g_test_assert_expected_messages ();
 
-  g_assert (g_variant_check_format_string (value, "(s^ay)", TRUE));
-  g_assert (g_variant_check_format_string (value, "(s^ay)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(s^ay)", TRUE));
+  g_assert_true (g_variant_check_format_string (value, "(s^ay)", FALSE));
 
   g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "*contains a '&' character*");
-  g_assert (!g_variant_check_format_string (value, "(s^&ay)", TRUE));
+  g_assert_false (g_variant_check_format_string (value, "(s^&ay)", TRUE));
   g_test_assert_expected_messages ();
-  g_assert (g_variant_check_format_string (value, "(s^&ay)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(s^&ay)", FALSE));
 
-  g_assert (g_variant_check_format_string (value, "r", FALSE));
-  g_assert (g_variant_check_format_string (value, "(?a?)", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "r", FALSE));
+  g_assert_true (g_variant_check_format_string (value, "(?a?)", FALSE));
 
   g_variant_unref (value);
 }
@@ -4627,22 +4645,22 @@ test_gbytes (void)
   const guint8 values[5] = { 1, 2, 3, 4, 5 };
   const guint8 *elts;
   gsize n_elts;
-  gint i;
+  gsize i;
 
   bytes = g_bytes_new (&values, 5);
   a = g_variant_new_from_bytes (G_VARIANT_TYPE_BYTESTRING, bytes, TRUE);
   g_bytes_unref (bytes);
   n_elts = 0;
   elts = g_variant_get_fixed_array (a, &n_elts, sizeof (guint8));
-  g_assert (n_elts == 5);
+  g_assert_cmpuint (n_elts, ==, 5);
   for (i = 0; i < 5; i++)
-    g_assert_cmpint (elts[i], ==, i + 1);
+    g_assert_cmpuint (elts[i], ==, i + 1);
 
   bytes2 = g_variant_get_data_as_bytes (a);
   g_variant_unref (a);
 
   bytes = g_bytes_new (&values, 5);
-  g_assert (g_bytes_equal (bytes, bytes2));
+  g_assert_true (g_bytes_equal (bytes, bytes2));
   g_bytes_unref (bytes);
   g_bytes_unref (bytes2);
 
@@ -4650,7 +4668,7 @@ test_gbytes (void)
   bytes = g_variant_get_data_as_bytes (tuple); /* force serialisation */
   a = g_variant_get_child_value (tuple, 1);
   bytes2 = g_variant_get_data_as_bytes (a);
-  g_assert (!g_bytes_equal (bytes, bytes2));
+  g_assert_false (g_bytes_equal (bytes, bytes2));
 
   g_bytes_unref (bytes);
   g_bytes_unref (bytes2);
@@ -4672,12 +4690,12 @@ test_print_context (void)
     { NULL, "[1, 2, 3, 'str']", " ^        ^^^^^" },
     { G_VARIANT_TYPE_UINT16, "{ 'abc':'def' }", "  ^^^^^^^^^^^^^^^" },
     { NULL, "<5", "    ^" },
-    { NULL, "'ab\\ux'", "  ^^^^^^^" },
-    { NULL, "'ab\\U00efx'", "  ^^^^^^^^^^^" }
+    { NULL, "'ab\\ux'", "       ^ " },
+    { NULL, "'ab\\U00efx'", "       ^^^^  " }
   };
   GVariant *v;
   gchar *s;
-  gint i;
+  gsize i;
   GError *error = NULL;
 
   for (i = 0; i < G_N_ELEMENTS (tests); i++)
@@ -4685,7 +4703,7 @@ test_print_context (void)
       v = g_variant_parse (tests[i].type, tests[i].in, NULL, NULL, &error);
       g_assert_null (v);
       s = g_variant_parse_error_print_context (error, tests[i].in);
-      g_assert (strstr (s, tests[i].out) != NULL);
+      g_assert_nonnull (strstr (s, tests[i].out));
       g_free (s);
       g_clear_error (&error);
     }
@@ -4695,7 +4713,7 @@ static void
 test_error_quark (void)
 {
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  g_assert (g_variant_parser_get_error_quark () == g_variant_parse_error_quark ());
+  g_assert_cmpuint (g_variant_parser_get_error_quark (), ==, g_variant_parse_error_quark ());
 G_GNUC_END_IGNORE_DEPRECATIONS
 }
 
@@ -4713,8 +4731,8 @@ test_stack_builder_init (void)
 
   variant = g_variant_ref_sink (g_variant_builder_end (&builder));
   g_assert_nonnull (variant);
-  g_assert (g_variant_type_equal (g_variant_get_type (variant),
-                                  G_VARIANT_TYPE_BYTESTRING));
+  g_assert_true (g_variant_type_equal (g_variant_get_type (variant),
+                                       G_VARIANT_TYPE_BYTESTRING));
   g_assert_cmpuint (g_variant_n_children (variant), ==, 5);
   g_assert_cmpstr (g_variant_get_bytestring (variant), ==, "glib");
   g_variant_unref (variant);
@@ -4746,8 +4764,8 @@ test_stack_dict_init (void)
 
   variant = g_variant_ref_sink (g_variant_dict_end (&dict));
   g_assert_nonnull (variant);
-  g_assert (g_variant_type_equal (g_variant_get_type (variant),
-                                  G_VARIANT_TYPE_VARDICT));
+  g_assert_true (g_variant_type_equal (g_variant_get_type (variant),
+                                       G_VARIANT_TYPE_VARDICT));
   g_assert_cmpuint (g_variant_n_children (variant), ==, 4);
 
   g_variant_iter_init (&iter, variant);
@@ -4770,7 +4788,6 @@ test_stack_dict_init (void)
 static void
 test_normal_checking_tuples (void)
 {
-  gpointer aligned_data;
   const guint8 data[] = {
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
     'a', '(', 'a', 'o', 'a', 'o', 'a', 'a', 'o', 'a', 'a', 'o', ')'
@@ -4779,15 +4796,13 @@ test_normal_checking_tuples (void)
   GVariant *variant = NULL;
   GVariant *normal_variant = NULL;
 
-  aligned_data = g_memdup (data, size); /* guarantee alignment */
-  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
+  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size,
                                      FALSE, NULL, NULL);
   g_assert_nonnull (variant);
 
   normal_variant = g_variant_get_normal_form (variant);
   g_assert_nonnull (normal_variant);
 
-  g_free (aligned_data);
   g_variant_unref (normal_variant);
   g_variant_unref (variant);
 }
@@ -4899,7 +4914,6 @@ test_recursion_limits_array_in_variant (void)
 static void
 test_normal_checking_array_offsets (void)
 {
-  gpointer aligned_data;
   const guint8 data[] = {
     0x07, 0xe5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
     'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'g',
@@ -4908,15 +4922,13 @@ test_normal_checking_array_offsets (void)
   GVariant *variant = NULL;
   GVariant *normal_variant = NULL;
 
-  aligned_data = g_memdup (data, size); /* guarantee alignment */
-  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
+  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size,
                                      FALSE, NULL, NULL);
   g_assert_nonnull (variant);
 
   normal_variant = g_variant_get_normal_form (variant);
   g_assert_nonnull (normal_variant);
 
-  g_free (aligned_data);
   g_variant_unref (normal_variant);
   g_variant_unref (variant);
 }
@@ -4926,7 +4938,6 @@ test_normal_checking_array_offsets (void)
 static void
 test_normal_checking_tuple_offsets (void)
 {
-  gpointer aligned_data;
   const guint8 data[] = {
     0x07, 0xe5, 0x00, 0x07, 0x00, 0x07,
     '(', 'a', 's', 'a', 's', 'a', 's', 'a', 's', 'a', 's', 'a', 's', ')',
@@ -4935,15 +4946,13 @@ test_normal_checking_tuple_offsets (void)
   GVariant *variant = NULL;
   GVariant *normal_variant = NULL;
 
-  aligned_data = g_memdup (data, size); /* guarantee alignment */
-  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data,
-                                     size, FALSE, NULL, NULL);
+  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size,
+                                     FALSE, NULL, NULL);
   g_assert_nonnull (variant);
 
   normal_variant = g_variant_get_normal_form (variant);
   g_assert_nonnull (normal_variant);
 
-  g_free (aligned_data);
   g_variant_unref (normal_variant);
   g_variant_unref (variant);
 }
@@ -4953,7 +4962,6 @@ test_normal_checking_tuple_offsets (void)
 static void
 test_normal_checking_empty_object_path (void)
 {
-  gpointer aligned_data;
   const guint8 data[] = {
     0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
     '(', 'h', '(', 'a', 'i', 'a', 'b', 'i', 'o', ')', ')',
@@ -4962,23 +4970,66 @@ test_normal_checking_empty_object_path (void)
   GVariant *variant = NULL;
   GVariant *normal_variant = NULL;
 
-  aligned_data = g_memdup (data, size); /* guarantee alignment */
-  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
+  variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size,
                                      FALSE, NULL, NULL);
   g_assert_nonnull (variant);
 
   normal_variant = g_variant_get_normal_form (variant);
   g_assert_nonnull (normal_variant);
 
-  g_free (aligned_data);
   g_variant_unref (normal_variant);
   g_variant_unref (variant);
 }
 
+/* Test that constructing a #GVariant from data which is not correctly aligned
+ * for the variant type is OK, by loading a variant from data at various offsets
+ * which are aligned and unaligned. When unaligned, a slow construction path
+ * should be taken. */
+static void
+test_unaligned_construction (void)
+{
+  const guint8 data[] = {
+    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+    0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+  };
+  GVariant *variant = NULL;
+  GVariant *normal_variant = NULL;
+  gsize i, offset;
+  const struct {
+    const GVariantType *type;
+    gsize size;
+    gsize max_offset;
+  } vectors[] = {
+    { G_VARIANT_TYPE_UINT64, sizeof (guint64), sizeof (guint64) },
+    { G_VARIANT_TYPE_UINT32, sizeof (guint32), sizeof (guint32) },
+    { G_VARIANT_TYPE_UINT16, sizeof (guint16), sizeof (guint16) },
+    { G_VARIANT_TYPE_BYTE, sizeof (guint8), 3 },
+  };
+
+  G_STATIC_ASSERT (sizeof (guint64) * 2 <= sizeof (data));
+
+  for (i = 0; i < G_N_ELEMENTS (vectors); i++)
+    {
+      for (offset = 0; offset < vectors[i].max_offset; offset++)
+        {
+          variant = g_variant_new_from_data (vectors[i].type, data + offset,
+                                             vectors[i].size,
+                                             FALSE, NULL, NULL);
+          g_assert_nonnull (variant);
+
+          normal_variant = g_variant_get_normal_form (variant);
+          g_assert_nonnull (normal_variant);
+
+          g_variant_unref (normal_variant);
+          g_variant_unref (variant);
+        }
+    }
+}
+
 int
 main (int argc, char **argv)
 {
-  gint i;
+  guint i;
 
   g_test_init (&argc, &argv, NULL);
 
@@ -4999,7 +5050,7 @@ main (int argc, char **argv)
     {
       char *testname;
 
-      testname = g_strdup_printf ("/gvariant/serialiser/fuzz/%d%%", i);
+      testname = g_strdup_printf ("/gvariant/serialiser/fuzz/%u%%", i);
       g_test_add_data_func (testname, GINT_TO_POINTER (i),
                             (gpointer) test_fuzzes);
       g_free (testname);
@@ -5055,5 +5106,8 @@ main (int argc, char **argv)
   g_test_add_func ("/gvariant/recursion-limits/array-in-variant",
                    test_recursion_limits_array_in_variant);
 
+  g_test_add_func ("/gvariant/unaligned-construction",
+                   test_unaligned_construction);
+
   return g_test_run ();
 }
index 2ec29bd..461a7d3 100644 (file)
@@ -116,19 +116,22 @@ context_clear (struct context *ctx)
 static void
 context_quit (struct context *ctx)
 {
-  ctx->quit = TRUE;
+  g_atomic_int_set (&ctx->quit, TRUE);
   g_wakeup_signal (ctx->wakeup);
 }
 
 static struct token *
-context_pop_token (struct context *ctx)
+context_try_pop_token (struct context *ctx)
 {
-  struct token *token;
+  struct token *token = NULL;
 
   g_mutex_lock (&ctx->lock);
-  token = ctx->pending_tokens->data;
-  ctx->pending_tokens = g_slist_delete_link (ctx->pending_tokens,
-                                             ctx->pending_tokens);
+  if (ctx->pending_tokens != NULL)
+    {
+      token = ctx->pending_tokens->data;
+      ctx->pending_tokens = g_slist_delete_link (ctx->pending_tokens,
+                                                 ctx->pending_tokens);
+    }
   g_mutex_unlock (&ctx->lock);
 
   return token;
@@ -188,17 +191,15 @@ static gpointer
 thread_func (gpointer data)
 {
   struct context *ctx = data;
+  struct token *token;
 
-  while (!ctx->quit)
+  while (!g_atomic_int_get (&ctx->quit))
     {
       wait_for_signaled (ctx->wakeup);
       g_wakeup_acknowledge (ctx->wakeup);
 
-      while (ctx->pending_tokens)
+      while ((token = context_try_pop_token (ctx)) != NULL)
         {
-          struct token *token;
-
-          token = context_pop_token (ctx);
           g_assert (token->owner == ctx);
           dispatch_token (token);
         }
index 963cef8..16acbbf 100644 (file)
@@ -803,6 +803,11 @@ test_remove_all (void)
   g_assert_cmpint (destroy_counter, ==, 0);
   g_assert_cmpint (destroy_key_counter, ==, 0);
 
+  /* Test stealing on an empty hash table. */
+  g_hash_table_steal_all (h);
+  g_assert_cmpint (destroy_counter, ==, 0);
+  g_assert_cmpint (destroy_key_counter, ==, 0);
+
   g_hash_table_insert (h, "abc", "ABC");
   g_hash_table_insert (h, "cde", "CDE");
   g_hash_table_insert (h, "xyz", "XYZ");
@@ -1233,6 +1238,113 @@ test_steal_extended (void)
   g_hash_table_unref (hash);
 }
 
+/* Test that passing %NULL to the optional g_hash_table_steal_extended()
+ * arguments works. */
+static void
+test_steal_extended_optional (void)
+{
+  GHashTable *hash;
+  const gchar *stolen_key = NULL, *stolen_value = NULL;
+
+  hash = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL);
+
+  g_hash_table_insert (hash, "b", "B");
+  g_hash_table_insert (hash, "c", "C");
+  g_hash_table_insert (hash, "d", "D");
+  g_hash_table_insert (hash, "e", "E");
+  g_hash_table_insert (hash, "f", "F");
+
+  g_assert_true (g_hash_table_steal_extended (hash, "b",
+                                              (gpointer *) &stolen_key,
+                                              NULL));
+  g_assert_cmpstr (stolen_key, ==, "b");
+
+  g_assert_cmpuint (g_hash_table_size (hash), ==, 4);
+
+  g_assert_false (g_hash_table_steal_extended (hash, "b",
+                                               (gpointer *) &stolen_key,
+                                               NULL));
+  g_assert_null (stolen_key);
+
+  g_assert_true (g_hash_table_steal_extended (hash, "c",
+                                              NULL,
+                                              (gpointer *) &stolen_value));
+  g_assert_cmpstr (stolen_value, ==, "C");
+
+  g_assert_cmpuint (g_hash_table_size (hash), ==, 3);
+
+  g_assert_false (g_hash_table_steal_extended (hash, "c",
+                                               NULL,
+                                               (gpointer *) &stolen_value));
+  g_assert_null (stolen_value);
+
+  g_assert_true (g_hash_table_steal_extended (hash, "d", NULL, NULL));
+
+  g_assert_cmpuint (g_hash_table_size (hash), ==, 2);
+
+  g_assert_false (g_hash_table_steal_extended (hash, "d", NULL, NULL));
+
+  g_assert_cmpuint (g_hash_table_size (hash), ==, 2);
+
+  g_hash_table_unref (hash);
+}
+
+/* Test g_hash_table_lookup_extended() works with its optional parameters
+ * sometimes set to %NULL. */
+static void
+test_lookup_extended (void)
+{
+  GHashTable *hash;
+  const gchar *original_key = NULL, *value = NULL;
+
+  hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+
+  g_hash_table_insert (hash, g_strdup ("a"), g_strdup ("A"));
+  g_hash_table_insert (hash, g_strdup ("b"), g_strdup ("B"));
+  g_hash_table_insert (hash, g_strdup ("c"), g_strdup ("C"));
+  g_hash_table_insert (hash, g_strdup ("d"), g_strdup ("D"));
+  g_hash_table_insert (hash, g_strdup ("e"), g_strdup ("E"));
+  g_hash_table_insert (hash, g_strdup ("f"), g_strdup ("F"));
+
+  g_assert_true (g_hash_table_lookup_extended (hash, "a",
+                                               (gpointer *) &original_key,
+                                               (gpointer *) &value));
+  g_assert_cmpstr (original_key, ==, "a");
+  g_assert_cmpstr (value, ==, "A");
+
+  g_assert_true (g_hash_table_lookup_extended (hash, "b",
+                                               NULL,
+                                               (gpointer *) &value));
+  g_assert_cmpstr (value, ==, "B");
+
+  g_assert_true (g_hash_table_lookup_extended (hash, "c",
+                                               (gpointer *) &original_key,
+                                               NULL));
+  g_assert_cmpstr (original_key, ==, "c");
+
+  g_assert_true (g_hash_table_lookup_extended (hash, "d", NULL, NULL));
+
+  g_assert_false (g_hash_table_lookup_extended (hash, "not a key",
+                                                (gpointer *) &original_key,
+                                                (gpointer *) &value));
+  g_assert_null (original_key);
+  g_assert_null (value);
+
+  g_assert_false (g_hash_table_lookup_extended (hash, "not a key",
+                                                NULL,
+                                                (gpointer *) &value));
+  g_assert_null (value);
+
+  g_assert_false (g_hash_table_lookup_extended (hash, "not a key",
+                                                (gpointer *) &original_key,
+                                                NULL));
+  g_assert_null (original_key);
+
+  g_assert_false (g_hash_table_lookup_extended (hash, "not a key", NULL, NULL));
+
+  g_hash_table_unref (hash);
+}
+
 struct _GHashTable
 {
   gint             size;
@@ -1241,6 +1353,9 @@ struct _GHashTable
   gint             nnodes;
   gint             noccupied;  /* nnodes + tombstones */
 
+  guint            have_big_keys : 1;
+  guint            have_big_values : 1;
+
   gpointer        *keys;
   guint           *hashes;
   gpointer        *values;
@@ -1275,6 +1390,23 @@ count_keys (GHashTable *h, gint *unused, gint *occupied, gint *tombstones)
     }
 }
 
+#define BIG_ENTRY_SIZE (SIZEOF_VOID_P)
+#define SMALL_ENTRY_SIZE (SIZEOF_INT)
+
+#if SMALL_ENTRY_SIZE < BIG_ENTRY_SIZE
+# define USE_SMALL_ARRAYS
+#endif
+
+static gpointer
+fetch_key_or_value (gpointer a, guint index, gboolean is_big)
+{
+#ifdef USE_SMALL_ARRAYS
+  return is_big ? *(((gpointer *) a) + index) : GUINT_TO_POINTER (*(((guint *) a) + index));
+#else
+  return *(((gpointer *) a) + index);
+#endif
+}
+
 static void
 check_data (GHashTable *h)
 {
@@ -1282,14 +1414,9 @@ check_data (GHashTable *h)
 
   for (i = 0; i < h->size; i++)
     {
-      if (h->hashes[i] < 2)
-        {
-          g_assert (h->keys[i] == NULL);
-          g_assert (h->values[i] == NULL);
-        }
-      else
+      if (h->hashes[i] >= 2)
         {
-          g_assert_cmpint (h->hashes[i], ==, h->hash_func (h->keys[i]));
+          g_assert_cmpint (h->hashes[i], ==, h->hash_func (fetch_key_or_value (h->keys, i, h->have_big_keys)));
         }
     }
 }
@@ -1558,6 +1685,8 @@ main (int argc, char *argv[])
   g_test_add_func ("/hash/foreach", test_foreach);
   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/lookup-extended", test_lookup_extended);
 
   /* tests for individual bugs */
   g_test_add_func ("/hash/lookup-null-key", test_lookup_null_key);
index 9ee7d02..ccbdadd 100644 (file)
@@ -378,14 +378,16 @@ test_comments (void)
     "key2 = value2\n"
     "# line end check\r\n"
     "key3 = value3\n"
+    "# single line comment\n"
     "key4 = value4\n"
     "# group comment\n"
     "# group comment, continued\n"
     "[group2]\n";
 
-  const gchar *top_comment= " top comment\n top comment, continued\n";
-  const gchar *group_comment= " group comment\n group comment, continued\n";
-  const gchar *key_comment= " key comment\n key comment, continued\n";
+  const gchar *top_comment = " top comment\n top comment, continued";
+  const gchar *group_comment = " group comment\n group comment, continued";
+  const gchar *key_comment = " key comment\n key comment, continued";
+  const gchar *key4_comment = " single line comment";
 
   keyfile = load_data (data, 0);
 
@@ -436,6 +438,11 @@ test_comments (void)
   check_no_error (&error);
   g_assert (comment == NULL);
 
+  comment = g_key_file_get_comment (keyfile, "group1", "key4", &error);
+  check_no_error (&error);
+  check_name ("key comment", comment, key4_comment, 0);
+  g_free (comment);
+
   comment = g_key_file_get_comment (keyfile, "group2", NULL, &error);
   check_no_error (&error);
   check_name ("group comment", comment, group_comment, 0);
index d7b6a7a..1577080 100644 (file)
@@ -4,9 +4,6 @@ glib_tests = {
   'atomic' : {
     'c_args' : cc.get_id() == 'gcc' ? ['-Wstrict-aliasing=2'] : [],
   },
-  'autoptr' : {
-    'skip' : cc.get_id() == 'msvc',
-  },
   'base64' : {},
   'bitlock' : {},
   'bookmarkfile' : {},
@@ -34,19 +31,10 @@ glib_tests = {
     'source' : ['gwakeuptest.c', '../gwakeup.c'],
     'install' : false,
   },
-  'gwakeup-fallback' : {
-    'skip' : not glib_conf.has('HAVE_EVENTFD'),
-    'source' : ['gwakeuptest.c', '../gwakeup.c'],
-    'c_args' : ['-DTEST_EVENTFD_FALLBACK'],
-    'install' : false,
-  },
   'hash' : {},
   'hmac' : {},
   'hook' : {},
   'hostutils' : {},
-  'include' : {
-    'skip' : host_machine.system() == 'windows',
-  },
   'keyfile' : {},
   'list' : {},
   'logging' : {},
@@ -111,9 +99,6 @@ glib_tests = {
   'utf8-misc' : {},
   'utils' : {},
   'unicode' : {},
-  'unix' : {
-    'skip' : host_machine.system() == 'windows',
-  },
   'uri' : {},
   '1bit-mutex' : {},
   '1bit-emufutex' : {
@@ -132,6 +117,27 @@ glib_tests = {
   },
 }
 
+if cc.get_id() != 'msvc'
+  glib_tests += {'autoptr' : {}}
+endif
+
+if glib_conf.has('HAVE_EVENTFD')
+  glib_tests += {
+    'gwakeup-fallback' : {
+      'source' : ['gwakeuptest.c', '../gwakeup.c'],
+      'c_args' : ['-DTEST_EVENTFD_FALLBACK'],
+      'install' : false,
+    },
+  }
+endif
+
+if host_machine.system() != 'windows'
+  glib_tests += {
+    'include' : {},
+    'unix' : {},
+  }
+endif
+
 if installed_tests_enabled
   install_data(
     'keyfiletest.ini',
@@ -161,37 +167,32 @@ test_deps = [libm, thread_dep, libglib_dep]
 test_cargs = ['-DG_LOG_DOMAIN="GLib"']
 
 foreach test_name, extra_args : glib_tests
-  # FIXME: This condition is ugly, meson should either have 'continue'
-  # keyword (https://github.com/mesonbuild/meson/issues/3601), or support
-  # mutable to dictionaries (https://github.com/mesonbuild/meson/pull/3820).
-  if not extra_args.get('skip', false)
-    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)
-      configure_file(
-        input: installed_tests_template_tap,
-        output: test_name + '.test',
-        install_dir: installed_tests_metadir,
-        configuration: test_conf
-      )
-    endif
+  source = extra_args.get('source', test_name + '.c')
+  install = installed_tests_enabled and extra_args.get('install', true)
 
-    exe = executable(test_name, source,
-      c_args : test_cargs + extra_args.get('c_args', []),
-      dependencies : test_deps + extra_args.get('dependencies', []),
-      install_dir: installed_tests_execdir,
-      install: install,
+  if install
+    test_conf = configuration_data()
+    test_conf.set('installed_tests_dir', installed_tests_execdir)
+    test_conf.set('program', test_name)
+    configure_file(
+      input: installed_tests_template_tap,
+      output: test_name + '.test',
+      install_dir: installed_tests_metadir,
+      configuration: test_conf
     )
-
-    suite = ['glib'] + extra_args.get('suite', [])
-    timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
-    test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
-      args : ['--tap'])
   endif
+
+  exe = executable(test_name, source,
+    c_args : test_cargs + extra_args.get('c_args', []),
+    dependencies : test_deps + extra_args.get('dependencies', []),
+    install_dir: installed_tests_execdir,
+    install: install,
+  )
+
+  suite = ['glib'] + extra_args.get('suite', [])
+  timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+  test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
+    args : ['--tap'])
 endforeach
 
 # test-spawn-echo helper binary required by the spawn tests above
index b1a1342..73126c7 100644 (file)
@@ -220,6 +220,64 @@ test_atomic_rcbox_dup (void)
   g_assert_null (global_point_b);
 }
 
+/* The expected alignment of the refcounted data, absent any other
+ * alignment requirement, is `2 * sizeof(void*)`; GLib only really
+ * supports void* sized 8 or 4 (see the comment in gatomic.h)
+ */
+#if GLIB_SIZEOF_VOID_P == 8
+static const gsize rcbox_alignment = 16;
+#else
+static const gsize rcbox_alignment = 8;
+#endif
+
+/* verify that the refcounted allocation is properly aligned */
+static void
+test_rcbox_alignment (void)
+{
+  const gsize block_sizes[] = {
+    1,
+    2,
+    4,
+    sizeof (gint32) * 3,
+  };
+
+  int i;
+
+  for (i = 0; i < G_N_ELEMENTS (block_sizes); i++)
+    {
+      gpointer p = g_rc_box_alloc0 (block_sizes[i]);
+
+      g_assert_nonnull (p);
+      g_assert_true (((guintptr) p & (rcbox_alignment - 1)) == 0);
+
+      g_rc_box_release (p);
+    }
+}
+
+/* verify that the atomically refcounted allocation is properly aligned */
+static void
+test_atomic_rcbox_alignment (void)
+{
+  const gsize block_sizes[] = {
+    1,
+    2,
+    4,
+    sizeof (gint32) * 3,
+  };
+
+  int i;
+
+  for (i = 0; i < G_N_ELEMENTS (block_sizes); i++)
+    {
+      gpointer p = g_atomic_rc_box_alloc0 (block_sizes[i]);
+
+      g_assert_nonnull (p);
+      g_assert_true (((guintptr) p & (rcbox_alignment - 1)) == 0);
+
+      g_atomic_rc_box_release (p);
+    }
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -229,10 +287,12 @@ main (int   argc,
   g_test_add_func ("/rcbox/new", test_rcbox_new);
   g_test_add_func ("/rcbox/release-full", test_rcbox_release_full);
   g_test_add_func ("/rcbox/dup", test_rcbox_dup);
+  g_test_add_func ("/rcbox/alignment", test_rcbox_alignment);
 
   g_test_add_func ("/atomic-rcbox/new", test_atomic_rcbox_new);
   g_test_add_func ("/atomic-rcbox/release-full", test_atomic_rcbox_release_full);
   g_test_add_func ("/atomic-rcbox/dup", test_atomic_rcbox_dup);
+  g_test_add_func ("/atomic-rcbox/alignment", test_atomic_rcbox_alignment);
 
   return g_test_run ();
 }
index c3cab10..1ed356e 100644 (file)
@@ -68,21 +68,6 @@ static CmdlineTest cmdline_tests[] =
   {"foo '/bar/summer'\\''09 tours.pdf'", 2, {"foo", "/bar/summer'09 tours.pdf", NULL}, -1}
 };
 
-static gboolean
-strv_equal (gchar **a, gchar **b)
-{
-  gint i;
-
-  if (g_strv_length (a) != g_strv_length (b))
-    return FALSE;
-
-  for (i = 0; a[i]; i++)
-    if (g_strcmp0 (a[i], b[i]) != 0)
-      return FALSE;
-
-  return TRUE;
-}
-
 static void
 do_cmdline_test (gconstpointer d)
 {
@@ -99,7 +84,7 @@ do_cmdline_test (gconstpointer d)
     {
       g_assert (res);
       g_assert_cmpint (argc, ==, test->argc);
-      g_assert (strv_equal (argv, (gchar **)test->argv));
+      g_assert (g_strv_equal ((const gchar * const *) argv, (const gchar * const *) test->argv));
       g_assert_no_error (err);
     }
   else
index d974ad4..7c74cdc 100644 (file)
@@ -1098,6 +1098,7 @@ test_strtoll (void)
   check_uint64 ("18446744073709551616", "", 10, G_MAXUINT64, ERANGE);
   check_uint64 ("20xyz", "xyz", 10, 20, 0);
   check_uint64 ("-1", "", 10, G_MAXUINT64, 0);
+  check_uint64 ("-FF4", "", 16, -((guint64) 0xFF4), 0);
 
   check_int64 ("0", "", 10, 0, 0);
   check_int64 ("9223372036854775807", "", 10, G_MAXINT64, 0);
@@ -1506,6 +1507,34 @@ test_strv_contains (void)
   g_assert_false (g_strv_contains (strv_empty, ""));
 }
 
+/* Test g_strv_equal() works for various inputs. */
+static void
+test_strv_equal (void)
+{
+  const gchar *strv_empty[] = { NULL };
+  const gchar *strv_empty2[] = { NULL };
+  const gchar *strv_simple[] = { "hello", "you", NULL };
+  const gchar *strv_simple2[] = { "hello", "you", NULL };
+  const gchar *strv_simple_reordered[] = { "you", "hello", NULL };
+  const gchar *strv_simple_superset[] = { "hello", "you", "again", NULL };
+  const gchar *strv_another[] = { "not", "a", "coded", "message", NULL };
+
+  g_assert_true (g_strv_equal (strv_empty, strv_empty));
+  g_assert_true (g_strv_equal (strv_empty, strv_empty2));
+  g_assert_true (g_strv_equal (strv_empty2, strv_empty));
+  g_assert_false (g_strv_equal (strv_empty, strv_simple));
+  g_assert_false (g_strv_equal (strv_simple, strv_empty));
+  g_assert_true (g_strv_equal (strv_simple, strv_simple));
+  g_assert_true (g_strv_equal (strv_simple, strv_simple2));
+  g_assert_true (g_strv_equal (strv_simple2, strv_simple));
+  g_assert_false (g_strv_equal (strv_simple, strv_simple_reordered));
+  g_assert_false (g_strv_equal (strv_simple_reordered, strv_simple));
+  g_assert_false (g_strv_equal (strv_simple, strv_simple_superset));
+  g_assert_false (g_strv_equal (strv_simple_superset, strv_simple));
+  g_assert_false (g_strv_equal (strv_simple, strv_another));
+  g_assert_false (g_strv_equal (strv_another, strv_simple));
+}
+
 typedef enum
   {
     SIGNED,
@@ -1760,6 +1789,7 @@ main (int   argc,
   g_test_add_func ("/strfuncs/strup", test_strup);
   g_test_add_func ("/strfuncs/transliteration", test_transliteration);
   g_test_add_func ("/strfuncs/strv-contains", test_strv_contains);
+  g_test_add_func ("/strfuncs/strv-equal", test_strv_equal);
   g_test_add_func ("/strfuncs/ascii-string-to-num/usual", test_ascii_string_to_number_usual);
   g_test_add_func ("/strfuncs/ascii-string-to-num/pathological", test_ascii_string_to_number_pathological);
 
index 716516e..03b9ca2 100644 (file)
 
 /* test assertion variants */
 static void
+test_assertions_bad_cmpvariant_types (void)
+{
+  GVariant *v1, *v2;
+
+  v1 = g_variant_new_boolean (TRUE);
+  v2 = g_variant_new_string ("hello");
+
+  g_assert_cmpvariant (v1, v2);
+
+  g_variant_unref (v2);
+  g_variant_unref (v1);
+
+  exit (0);
+}
+
+static void
+test_assertions_bad_cmpvariant_values (void)
+{
+  GVariant *v1, *v2;
+
+  v1 = g_variant_new_string ("goodbye");
+  v2 = g_variant_new_string ("hello");
+
+  g_assert_cmpvariant (v1, v2);
+
+  g_variant_unref (v2);
+  g_variant_unref (v1);
+
+  exit (0);
+}
+
+static void
 test_assertions_bad_cmpstr (void)
 {
   g_assert_cmpstr ("fzz", !=, "fzz");
@@ -72,7 +104,9 @@ test_assertions_bad_cmpfloat_epsilon (void)
 static void
 test_assertions (void)
 {
+  GVariant *v1, *v2;
   gchar *fuu;
+
   g_assert_cmpint (1, >, 0);
   g_assert_cmphex (2, ==, 2);
   g_assert_cmpfloat (3.3, !=, 7);
@@ -94,6 +128,23 @@ test_assertions (void)
   g_assert_cmpstr ("fzz", ==, "fzz");
   g_assert_cmpmem ("foo", 3, "foot", 3);
 
+  v1 = g_variant_new_parsed ("['hello', 'there']");
+  v2 = g_variant_new_parsed ("['hello', 'there']");
+
+  g_assert_cmpvariant (v1, v1);
+  g_assert_cmpvariant (v1, v2);
+
+  g_variant_unref (v2);
+  g_variant_unref (v1);
+
+  g_test_trap_subprocess ("/misc/assertions/subprocess/bad_cmpvariant_types", 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*assertion failed*");
+
+  g_test_trap_subprocess ("/misc/assertions/subprocess/bad_cmpvariant_values", 0, 0);
+  g_test_trap_assert_failed ();
+  g_test_trap_assert_stderr ("*assertion failed*");
+
   g_test_trap_subprocess ("/misc/assertions/subprocess/bad_cmpstr", 0, 0);
   g_test_trap_assert_failed ();
   g_test_trap_assert_stderr ("*assertion failed*");
@@ -1026,6 +1077,8 @@ main (int   argc,
   g_test_add_func ("/random-generator/rand-2", test_rand2);
   g_test_add_func ("/random-generator/random-conversions", test_random_conversions);
   g_test_add_func ("/misc/assertions", test_assertions);
+  g_test_add_func ("/misc/assertions/subprocess/bad_cmpvariant_types", test_assertions_bad_cmpvariant_types);
+  g_test_add_func ("/misc/assertions/subprocess/bad_cmpvariant_values", test_assertions_bad_cmpvariant_values);
   g_test_add_func ("/misc/assertions/subprocess/bad_cmpstr", test_assertions_bad_cmpstr);
   g_test_add_func ("/misc/assertions/subprocess/bad_cmpint", test_assertions_bad_cmpint);
   g_test_add_func ("/misc/assertions/subprocess/bad_cmpmem_len", test_assertions_bad_cmpmem_len);
index ce7dd09..8f44e75 100644 (file)
@@ -14,7 +14,7 @@ stop_waiting (gpointer data)
 }
 
 static gboolean
-function (gpointer data)
+unreachable_callback (gpointer data)
 {
   g_assert_not_reached ();
 
@@ -38,13 +38,14 @@ test_seconds (void)
    * then we have trouble (since it ran in less than 2 seconds).
    *
    * We need a timeout of at least 2 seconds because
-   * g_timeout_add_second can add as much as an additional second of
+   * g_timeout_add_seconds() can add as much as an additional second of
    * latency.
    */
+  g_test_bug ("https://bugzilla.gnome.org/show_bug.cgi?id=642052");
   loop = g_main_loop_new (NULL, FALSE);
 
   g_timeout_add (2100, stop_waiting, NULL);
-  id = g_timeout_add_seconds (21475, function, NULL);
+  id = g_timeout_add_seconds (21475, unreachable_callback, NULL);
 
   g_main_loop_run (loop);
   g_main_loop_unref (loop);
@@ -52,6 +53,91 @@ test_seconds (void)
   g_source_remove (id);
 }
 
+static void
+test_weeks_overflow (void)
+{
+  guint id;
+  guint interval_seconds;
+
+  /* Internally, the guint interval (in seconds) was converted to milliseconds
+   * then stored in a guint variable. This meant that any interval larger than
+   * G_MAXUINT / 1000 would overflow.
+   *
+   * On a system with 32-bit guint, the interval (G_MAXUINT / 1000) + 1 seconds
+   * (49.7 days) would end wrapping to 704 milliseconds.
+   *
+   * Test that that isn't true anymore by scheduling two jobs:
+   *   - one, as above
+   *   - another that runs in 2100ms
+   *
+   * If everything is working properly, the 2100ms one should run first
+   * (and exit the mainloop).  If we ever see the other job run
+   * then we have trouble (since it ran in less than 2 seconds).
+   *
+   * We need a timeout of at least 2 seconds because
+   * g_timeout_add_seconds() can add as much as an additional second of
+   * latency.
+   */
+  g_test_bug ("https://gitlab.gnome.org/GNOME/glib/issues/1600");
+  loop = g_main_loop_new (NULL, FALSE);
+
+  g_timeout_add (2100, stop_waiting, NULL);
+  interval_seconds = 1 + G_MAXUINT / 1000;
+  id = g_timeout_add_seconds (interval_seconds, unreachable_callback, NULL);
+
+  g_main_loop_run (loop);
+  g_main_loop_unref (loop);
+
+  g_source_remove (id);
+}
+
+/* The ready_time for a GSource is stored as a gint64, as an absolute monotonic
+ * time in microseconds. To call poll(), this must be converted to a relative
+ * timeout, in milliseconds, as a gint. If the ready_time is sufficiently far
+ * in the future, the timeout will not fit. Previously, it would be narrowed in
+ * an implementation-defined way; if this gave a negative result, poll() would
+ * block forever.
+ *
+ * This test creates a GSource with the largest possible ready_time (a little
+ * over 292 millennia, assuming g_get_monotonic_time() starts from near 0 when
+ * the system boots), adds it to a GMainContext, queries it for the parameters
+ * to pass to poll() -- essentially the first half of
+ * g_main_context_iteration() -- and checks that the timeout is a large
+ * positive number.
+ */
+static void
+test_far_future_ready_time (void)
+{
+  GSourceFuncs source_funcs = { 0 };
+  GMainContext *context = g_main_context_new ();
+  GSource *source = g_source_new (&source_funcs, sizeof (GSource));
+  gboolean acquired, ready;
+  gint priority, timeout_, n_fds;
+
+  g_source_set_ready_time (source, G_MAXINT64);
+  g_source_attach (source, context);
+
+  acquired = g_main_context_acquire (context);
+  g_assert_true (acquired);
+
+  ready = g_main_context_prepare (context, &priority);
+  g_assert_false (ready);
+
+  n_fds = 0;
+  n_fds = g_main_context_query (context, priority, &timeout_, NULL, n_fds);
+
+  /* The true timeout in milliseconds doesn't fit into a gint. We definitely
+   * don't want poll() to block forever:
+   */
+  g_assert_cmpint (timeout_, >=, 0);
+  /* Instead, we want it to block for as long as possible: */
+  g_assert_cmpint (timeout_, ==, G_MAXINT);
+
+  g_main_context_release (context);
+  g_main_context_unref (context);
+  g_source_unref (source);
+}
+
 static gint64 last_time;
 static gint count;
 
@@ -102,8 +188,11 @@ int
 main (int argc, char *argv[])
 {
   g_test_init (&argc, &argv, NULL);
+  g_test_bug_base ("");
 
   g_test_add_func ("/timeout/seconds", test_seconds);
+  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);
 
   return g_test_run ();
index 9d55a6c..82ffd0f 100644 (file)
@@ -245,6 +245,56 @@ test_sighup_nested (void)
   g_main_loop_unref (mainloop);
 }
 
+static gboolean
+on_sigwinch_received (gpointer data)
+{
+  GMainLoop *loop = (GMainLoop *) data;
+
+  sig_counter ++;
+
+  if (sig_counter == 1)
+    kill (getpid (), SIGWINCH);
+  else if (sig_counter == 2)
+    g_main_loop_quit (loop);
+  else if (sig_counter > 2)
+    g_assert_not_reached ();
+
+  /* Increase the time window in which an issue could happen. */
+  g_usleep (G_USEC_PER_SEC);
+
+  return G_SOURCE_CONTINUE;
+}
+
+static void
+test_callback_after_signal (void)
+{
+  /* Checks that user signal callback is invoked *after* receiving a signal.
+   * In other words a new signal is never merged with the one being currently
+   * dispatched or whose dispatch had already finished. */
+
+  GMainLoop *mainloop;
+  GMainContext *context;
+  GSource *source;
+
+  sig_counter = 0;
+
+  context = g_main_context_new ();
+  mainloop = g_main_loop_new (context, FALSE);
+
+  source = g_unix_signal_source_new (SIGWINCH);
+  g_source_set_callback (source, on_sigwinch_received, mainloop, NULL);
+  g_source_attach (source, context);
+  g_source_unref (source);
+
+  g_assert_cmpint (sig_counter, ==, 0);
+  kill (getpid (), SIGWINCH);
+  g_main_loop_run (mainloop);
+  g_assert_cmpint (sig_counter, ==, 2);
+
+  g_main_loop_unref (mainloop);
+  g_main_context_unref (context);
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -259,6 +309,7 @@ main (int   argc,
   g_test_add_func ("/glib-unix/sighup_again", test_sighup);
   g_test_add_func ("/glib-unix/sighup_add_remove", test_sighup_add_remove);
   g_test_add_func ("/glib-unix/sighup_nested", test_sighup_nested);
+  g_test_add_func ("/glib-unix/callback_after_signal", test_callback_after_signal);
 
   return g_test_run();
 }
index 1609bde..5806b29 100644 (file)
@@ -280,15 +280,22 @@ do_test (gconstpointer d)
 
   result = g_utf8_validate (test->text, test->max_len, &end);
 
-  g_assert (result == test->valid);
-  g_assert (end - test->text == test->offset);
+  g_assert_true (result == test->valid);
+  g_assert_cmpint (end - test->text, ==, test->offset);
 
   if (test->max_len < 0)
     {
       result = g_utf8_validate (test->text, strlen (test->text), &end);
 
-      g_assert (result == test->valid);
-      g_assert (end - test->text == test->offset);
+      g_assert_true (result == test->valid);
+      g_assert_cmpint (end - test->text, ==, test->offset);
+    }
+  else
+    {
+      result = g_utf8_validate_len (test->text, test->max_len, &end);
+
+      g_assert_true (result == test->valid);
+      g_assert_cmpint (end - test->text, ==, test->offset);
     }
 }
 
diff --git a/gmodule/ChangeLog b/gmodule/ChangeLog
deleted file mode 100644 (file)
index fff7980..0000000
+++ /dev/null
@@ -1,1042 +0,0 @@
-=== ChangeLog discontinued ===
-
-       With the move to git, GLib is switching from a ChangeLog file
-       to relying on commit messages to provide change history. Please
-       see README.commits for guidance on the expected message format.
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.20.0 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.10 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.9 ===
-
-2009-03-01  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 71704 - Header file include order
-
-       * gmodule.c: Include gmodule.h before io.h.
-       Pointed out by Kazuki Iwamoto
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.8 ===
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.7 ===
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.6 ===
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.5 ===
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.4 ===
-
-2008-12-15  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.3 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.2 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.1 ===
-
-2008-10-16  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.0 ===
-
-2008-09-26  Tor Lillqvist  <tml@novell.com>
-
-       * gmodule-win32.c: Improve error reporting: When g_module_open()
-       fails, include the name of the module passed to LoadLibrary() in
-       what g_module_error() returns.
-
-2008-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.1 ===
-
-2008-09-08  Tor Lillqvist  <tml@novell.com>
-
-       Bug 551408 - gmodule.def generated to builddir, but required in srcdir
-
-       * Makefile.am: Use gmodule.def from builddir, not srcdir.
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.0 ===
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.7 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.6 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.5 ===
-
-2008-08-01  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : adapt to gmodule.symbols usage
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * gmodule.symbols: New file.
-
-       * gmodule.c: Bypass the Windows ABI compatibility symbols on
-       64-bit Windows. Thus no need to keep the file name in system
-       codepage around on 64-bit Windows either.
-       
-       * Makefile.am: Produce gmodule.def from gmodule.symbols. Dist
-       gmodule.symbols instead of gmodule.def.
-
-       * gmodule.def: Drop from SVN.
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (gmodule-2.0.lib): Pass appropriate -machine flag to
-       lib.exe.
-
-2008-07-21  Matthias Clasen  <mclasen2redhat.com>
-
-       * === Released 2.17.4 ===
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.3 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.17.2 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.1 ===
-
-2008-05-28  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am: don't define G_DISABLE_SINGLE_INCLUDES, it's in
-       the global CPPFLAGS now.
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.0 ===
-
-2008-05-05  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent
-       code from being checked in that breaks the build of applications
-       which use G_DISABLE_SINGLE_INCLUDES.
-
-       * gmodule.c: #include "glib.h" instead of "glibconfig.h"
-
-2008-03-16  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Define gmodule_def locally here instead of using an
-       Autoconf variable.
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.16.1 ===
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.0 ===
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.6 ===
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.15.5 ===
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.4 ===
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.3 ===
-
-2008-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.2 ===
-
-008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.1 ===
-
-2007-12-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule.c (g_module_open): Don't fail to load modules
-       with suffix .la.  (#480122, Andrey Tsyvarev)
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.0 ===
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * gmodule.c: Include glibconfig.h before checking G_OS_WIN32.
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * *.c: Make header include order consistent (#71704,
-       Diego Escalante Urrelo)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.14.3 ===
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.2 ===
-
-2007-09-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.1 ===
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.0 ===
-
-2007-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.7 ===
-
-2007-07-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule.c (g_module_open): Include the module file 
-       name to the error message given when module initialization 
-       fails.  (#445813, Gustavo Carneiro)
-
-Fri Jun 29 2007  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.6 ===
-
-2007-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.5 ===
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.4 ===
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.13.3 ===
-
-2007-05-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.2 ===
-
-2007-05-03  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.13.1 ===
-
-2007-03-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.0 ===
-
-2007-01-19  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (gmodule-2.0.lib): Use $(srcdir) for builds outside
-       srcdir.
-
-2006-12-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule.c: Fix include order for win32. (#390943, 
-       Kazuki Iwamoto)
-
-2006-12-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule.c: Clean up includes.
-
-2006-12-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule.c (g_module_open):
-       * gmodule-dl.c (_g_module_symbol): Handle valid symbols
-       that are NULL correctly.  (#385388, Felix Kater)
-
-Mon Sep 11 14:58:56 2006  Tim Janik  <timj@imendio.com>
-
-       * gmodule.c: applied patch from Christian Persch to support
-       G_DEBUG flags resident-modules and bind-now-modules, bug #345099.
-
-2006-08-29  Tor Lillqvist  <tml@novell.com>
-
-       Remove support for Windows 9x/ME. GTK+ hasn't worked on Win9x
-       since 2.6. It's pointless to keep the Win9x code in here as it
-       isn't being maintained anyway. If somebody is interested, it is in
-       older GLib versions, and in CVS.
-
-       * gmodule-win32.c (_g_module_open): Remove the Win9x branch of if
-       statement.
-
-2006-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.2 ===
-
-2006-07-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.1 ===
-
-2006-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.0 ===
-
-2006-06-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.4 ===
-
-2006-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.3 ===
-
-2006-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.2 ===
-
-2006-05-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.1 ===
-
-2006-05-02  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.11.0 ===
-
-2006-03-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule.c (g_module_symbol): Make sure to
-       not return TRUE if symbol is NULL.  (#334440,
-       ITOH Yasufumi)
-
-2006-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * ===  Released 2.10.1 ===
-
-2006-02-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.10.0 ===
-
-2006-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.6 ===
-
-2006-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.5 ===
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.9.4 ===
-
-2006-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.3 ===
-
-2006-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.2 ===
-
-2005-12-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.1 ===
-
-2005-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule.c (parse_libtool_archive): Silence
-       compiler warnings.
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.0 ===
-
-2005-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.1 ===
-
-2005-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.0 ===
-
-2005-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.7 ===
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.6 ===
-
-2005-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.5 ===
-
-2005-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.4 ===
-
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.3 ===
-       
-2005-07-09  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Don't use the scripts in build/win32 to compile
-       gmodule.rc into a resource object file. (This means we lose the
-       build number increment magic, but I doubt it was that useful
-       anyway.) Instead use windres directly. To pass the normal .o file
-       produced by windres through libtool, which wants .lo files, pass
-       it directly to the linker using a -Wl option.
-
-       * gmodule.rc.in: Thus replace BUILDNUMBER with 0.
-
-2005-07-08  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.7.2 ===
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.1 ===
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * gmodule-ar.c: Include stdlib.h
-
-2005-06-26  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: libtool installs/uninstalls the import library, no
-       need to do it ourselves. Do still install/uninstall the .def file,
-       though.
-
-2005-06-24  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (install-libtool-import-lib): Current GNU tools do
-       understand the PRIVATE keyword.
-
-2005-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.0 ===
-
-2005-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.1 ===
-
-2004-12-31  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule.c (g_module_open): It's wrong to call g_file_test() with
-       more than one test (both G_FILE_TEST_EXISTS and _IS_REGULAR). (It
-       would succeed even if the pathname existed as a nonregular file.)
-       Just G_FILE_TEST_IS_REGULAR works fine. (#162594)
-
-2004-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.0 ===
-       
-2004-12-06  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am
-       * gmodule.def
-       * gmodule.[hc]: Win32 DLL ABI stability cruft like in ../glib.
-
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.7 ===
-       
-2004-11-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.6 ===
-       
-2004-11-04  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c (_g_module_open): Argument is in UTF-8. Use wide
-       character Win32 API if present.
-
-       * gmodule.c (parse_libtool_archive, g_module_open): Convert file
-       name to UTF-8 before storing in the error message string.
-
-       * gmodule.c (parse_libtool_archive): Use g_open().
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.5 ===
-
-2004-10-27 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.4 ===
-
-2004-09-18 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.3 ===
-
-2004-08-25 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.2 ===
-
-2004-08-01 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.1 ===
-
-Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * === Released 2.5.0 ===
-
-Mon May 31 00:09:10 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * Makefile.am (EXTRA_DIST): Add gmodule-ar.c. (#85930, Tomas Ögren)
-
-Tue May 11 23:23:21 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gmodule-ar.c (_g_module_open): Make it compile on AIX.  
-       (#141159, Michael Wilson)
-
-2004-03-31  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c (_g_module_build_path): On Cygwin, use the "cyg"
-       prefix, and accept also the normal "lib". (#138403, Roger Leigh)
-
-Tue Feb 24 14:09:21 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.3 ===
-
-Sun Feb 22 02:28:43 2004  Matthias Clasen  <maclas@gmx.de>
-
-       Bug #85930, Laurent Vivier:
-       
-       * gmodule-ar.c: Implementation of native module management for AIX.
-       * gmoduleconf.h.in: 
-       * gmodule.c: Support gmodule-ar.c 
-
-2003-01-01  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c (_g_module_build_path): Use g_ascii_strcasecmp().
-
-Tue Dec  3 20:56:19 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gmodule.c (g_module_open): Properly refcount the
-       main module if it is already open. (#98648)
-
-Sat Mar  2 14:46:17 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gmodule-beos.c (_g_module_build_path) * gmodule-dyld.c (_g_module_build_path) 
-         gmodule-dl.c (_g_module_build_path): Use G_MODULE_SUFFIX rather than
-       a hardcoded ".so". (#72803)
-
-Sun Feb 17 18:15:22 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gmodule.c (g_module_open): Fix typo when checking
-       if file + module_suffix exists. (Miroslaw Dobrzanski-Neumann,
-       #71801)
-
-2001-11-24  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: Remove rule for testgmodule.exp, too.
-
-2001-11-22  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c: Current w32api headers do include tlhelp32.h,
-       so no need to have an extract from it here.
-
-Mon Nov 19 16:12:12 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am makefile.msc.in makefile.mingw.in: Remove
-       testgmodule and associated plugin files; we don't need _both_ this
-       and ../tests/module-test.c
-
-2001-11-16  Michael Meeks  <michael@ximian.com>
-
-       * gmodule.c (parse_libtool_archive): fix leak.
-
-2001-10-30  Dan Winship  <danw@ximian.com>
-
-       * Makefile.am (EXTRA_DIST): Add gmodule-dyld.c
-
-2001-10-23  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: (Win32): If we have built the MSVC import library,
-       install it. Install the gcc import library. Also support
-       uninstall.
-
-2001-10-09  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c (_g_module_build_path): More Unix compatibility:
-       Add "lib" prefix in case the module name doesn't already have it,
-       except if it ends with ".dll" (in which case it probably already
-       is the name of an existing DLL). This is needed for instance for
-       the gdk-pixbuf loaders, which are called "lib*.dll", but
-       gdk-pixbuf-io calls g_module_build_path without the "lib" prefix.
-
-2001-10-03  jacob berkman  <jacob@ximian.com>
-
-       * libgplugin_a.c: (gplugin_a_module_func): 
-       * gmodule.h: s/retrive/retrieve/
-
-2001-09-25  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: Fix missing end @ in @LT_CURRENT@.
-
-       * makefile.msc.in: Use same DLL and import library names as
-       libtool.
-       
-2001-09-19  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule.rc.in: Correct InternalName and OriginalFilename to
-       match what we actually produce.
-
-2001-09-18  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: On Win32, pass a dummy -rpath flag to libtool when
-       building libgplugin_[ab].la, otherwise libtool doesn't create a
-       DLL, but a static archive.
-
-2001-07-20  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : reflect glib move
-
-2001-05-21  Mark Murnane  <Mark.Murnane@ireland.sun.com>
-
-       * gmodule.c (g_str_check_suffix):  Modified type of string_len
-       and suffix_len to be gsize.  Properly accommodates return from
-       strlen().
-
-2001-05-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmodule.c (g_module_set_error_unduped): Do not g_strdup, as
-       promised in the function name.
-
-Tue May 29 12:57:51 2001  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (g_module_symbol): erk, strconcat needs NULL as last arg.
-       make sure we pass module name with suffix into backend open.
-
-Mon May 28 20:19:25 2001  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (g_module_open): as a last resort, if we can't access()
-       the module, leave it up to the platform backends to find it.
-       (fixes implicit search patch loading i broke with my last
-       commit, spotted by Padraig O'Briain).
-
-Thu May 24 03:43:12 2001  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (g_module_open): reordered code so we have a single
-       module loading point (for reliable error messages). do access()
-       tests to figure plausible file names.
-       make error messages more verbose so users canfigure what's going on.
-
-2001-04-20  Dan Winship  <danw@ximian.com>
-
-       * gmodule-dyld.c: gmodule implementation for Darwin/Mac OS X
-
-       * gmodule.c: 
-       * gmoduleconf.h.in: Add gmodule-dyld support
-
-       * testgmodule.c (main): Fix spelling
-
-2001-03-13  Tor Lillqvist  <tml@iki.fi>
-
-       From Edward M. Lee  <tailbert@yahoo.com>:
-
-       * gmodule-win32.c (_g_module_build_path): use (cygwin friendly) dir
-       separator.
-
-2001-03-12  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (libgplugin_a_la_LIBADD, libgplugin_b_la_LIBADD):
-       Link with the libgmodule la only on Win32.
-
-2001-03-10  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: Use the _LIBADD dependency on libglib only on the
-       Win32 platform (including Cygwin).
-
-2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am, makefile.mingw.in, makefile.msc.in: Set
-       G_LOG_DOMAIN to \"GModule\" instead of g_log_domain_gmodule.
-
-       * gmodule.def, gmodule.h, gmodule.c: Removed g_log_domain_gmodule.
-
-2001-02-21  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule.h: Use G_BEGIN_DECLS and G_END_DECLS. Define
-       G_MODULE_EXPORT correctly on Cygwin, too.
-
-       * gmodule-win32.c (_g_module_open): Convert path to Windows format
-       on Cygwin.
-
-       * Makefile.am (libglib): Use libglib-1.3.la from
-       top_builddir. Invoke libtool with -no-undefined for Win32 and
-       Cygwin.
-
-2001-02-17  Havoc Pennington  <hp@pobox.com>
-
-        Applied patch from Soeren Sandmann:
-       
-       * gmodule.c (g_module_error): G_CONST_RETURN
-       (g_module_name): G_CONST_RETURN
-
-Sat Feb 17 07:27:15 2001  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c: work around platforms that have broken RTLD_GLOBAL.
-
-2001-01-27  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule.c: (Win32) Need <io.h> for open() and close().
-
-2000-12-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmodule.c: Make g_module_open more tolerant wrt to the module
-       name. First it tries to open the module as named, if that fails,
-       it checks, whether it is a libtool archive and parses it, if that
-       fails it appends the systems shared library suffix
-       (i.e. ".so") (if not already found) and tries again and if that
-       fails it tries to append the ".la" libtool suffix (if not already
-       found) and parses it.
-
-       * gmodule.c: Lock recursive mutex during most module functions for
-       safety.
-
-       * gmodule-dl.c: Return an error from _g_module_symbol only, if
-       dlerror says so. All other functions return an error as well, if
-       dlerror returns NULL.
-
-       * testgmodule.c: Thanks to the above change the #ifdefs have
-       vanished.
-
-2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * Makefile.am (BUILT_EXTRA_DIST): New variable.
-       (dist-hook): Handle $(BUILT_EXTRA_DIST).
-
-2000-09-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmodule.h: Moved declaration of g_log_domain_gmodule up before
-       the inclusion of glib.h to make it compile on non-gcc compilers.
-
-2000-07-22  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: Remove leftover gmodule-win32res.o stuff. The
-       build-dll script automagically handles resources.
-
-2000-07-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * libgplugin_a.c, testgmodule.c: Use g_path_get_basename instead
-       of the deprecated g_basename.
-
-2000-07-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmodule.h: include glib.h before doing extern "C". Makes some C++
-       compiler happy. Reported by Denis Vakatov
-       <vakatov@peony.nlm.nih.gov>.
-
-2000-07-19  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c: Don't #include <tlhelp32.h> when compiling with
-       gcc, as it isn't provided. Declaration of a needed struct (from
-       www.microsoft.com) inserted instead.
-
-2000-05-13  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: New file, with gmodule stuff
-       moved from ../makefile.mingw.in.
-
-       * Makefile.am: Add to EXTRA_DIST, and add rule to make makefile.mingw.
-
-2000-05-02  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c: No need to include <psapi.h>
-
-2000-03-23  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c (_g_module_symbol): When looking for symbols in
-       the "main" module we must search both the main program and all
-       currently loaded DLLs. Not only the main program, or even just the
-       DLLs loaded as gmodules.  Libglade requires this.
-
-       Thus we need to get a list of all modules in the current
-       process. There are two alternative APIs to do this: PSAPI and
-       Toolhelp. The former is only available on NT (including Win2k),
-       the latter on Win9x and Win2k. Check which one works, and use
-       that.
-
-       First check for the symbol in the main program, and if not found
-       there, in all the modules.
-
-       Code for using PSAPI and Toolhelp was borrowed from the Dr. Mingw
-       tool written by José Fonseca <em96115@fe.up.pt>. Thanks.
-
-2000-03-04  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-win32.c: Call g_win32_error_message() to get the error
-       message strings.
-
-       * libgplugin_a.c
-       * libgplugin_b.c
-       * gmodule.c: Remove LibMain functions that were needed by LCC,
-       which is not a supported compiler.
-
-       * testgmodule.c (main): Test for G_MODULE_IMPL ==
-       G_MODULE_IMPL_WIN32, not G_OS_WIN32.
-
-       * gmoduleconf.h.win32: Remove LCC stuff from here, too. 
-
-Wed Mar  1 05:34:47 2000  Tim Janik  <timj@gtk.org>
-
-       * gmodule-beos.c (_g_module_symbol): do not return NULL symbols.
-
-       * gmodule-os2.c: removed NetBSD specific defines.
-       (_g_module_self): set an error message for unsupported behaviour.
-
-       * gmodule-beos.c: many coding style fixups.
-       (_g_module_open):
-       (_g_module_self):
-       (_g_module_close):
-       (_g_module_symbol): bunch of memory leaks plugged.
-
-       * gmodule-dl.c: make sure the error message returned from dlerror()
-       is always != NULL, by using a wrapper function fetch_dlerror(). based
-       on a patch to fix _g_module_symbol() for NetBSD from Scott Presnell
-       <srp@zgi.com>.
-
-       * gmodule-dld.c: minor indentation.
-
-       * gmodule-win32.c: minor cleanups.
-
-       * merges from glib-1-2.
-
-Sat Feb 19 19:43:29 2000  Tim Janik  <timj@gtk.org>
-
-       * testgmodule.c (main): added test to check that not yet bound symbols
-       in shared libraries of the main module are retrievable, from David Gero.
-
-2000-01-13  Martin Baulig  <martin@home-of-linux.org>
-
-       * gmodule.c (g_module_open): Check whether `check_init' is not NULL
-       before we attempt to call it.
-
-Sun Oct  3 19:30:52 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * gmodule.h
-       * testgmodule.c: use G_OS stuff
-
-Sat Jul 24 20:47:18 1999  Tim Janik  <timj@gtk.org>
-
-       * merged changes from GLib-1-2 branch.
-
-1999-05-06  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule.c: Remove LibMain.
-
-Sat May  1 10:58:57 PDT 1999 Manish Singh <yosh@gimp.org>
-
-       * Makefile.am: use -avoid-version and -module for test plugins
-
-Mon Apr 19 08:43:59 1999  ape@lrdpf.spacetec.no  (Asbjorn Pettersen)
-
-       * Makefile.am (EXTRA_DIST): Add gmodule-os2.c
-
-Wed Apr  7 20:12:58 1999  ape@lrdpf.spacetec.no  (Asbjorn Pettersen)
-
-       * gmodule-os2.c: OS/2 specific file for gmodule.
-       * gmodule.c (_g_module_open): Add gmodule-os2.c if G_MODULE_IMPL_OS2.
-       * gmoduleconf.h.in: Add G_MODULE_IMPL_OS2.
-
-Fri Apr 23 09:03:48 1999  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (g_module_symbol): removed inline variable assignment.
-       s/CHECK_ERROR/SUPPORT_OR_RETURN/ to make the code more self descriptive.
-
-Wed Feb 10 12:06:30 1999  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (CHECK_ERROR): be more descriptive on unsupported systems.
-
-Wed Feb 10 07:56:33 1999  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (g_module_error): fixed errernerous code wrt to thread
-       specific error string allocation handling.
-
-Thu Jan 21 12:40:11 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
-
-       * gmodule-dl.c (_g_module_build_path):
-       Add braces to eliminate an ambiguous else warning.
-
-1999-01-16  Tor Lillqvist  <tml@iki.fi>
-
-       * gmodule-dl.c gmodule-dld.c: In
-       _g_module_build_path, don't add the "lib" prefix and
-       ".so" or ".sl" suffix if already there.
-
-       * gmodule-win32.c: Likewise for the ".dll" suffix.
-
-1998-12-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gmodule.c: Made it MT safe, the g_module_error() is now thread
-       specific.
-
-Fri Nov 20 14:43:44 1998  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (_g_module_build_path): added empty default imlementation
-       so gmodule.so compiles on systems that are not yet supported, fix from
-       Erik Bagfors <bagfors@hpc2n.umu.se>.
-
-1998-11-13  Nuno Ferreira  <nmrf@rnl.ist.utl.pt>
-
-       * Makefile.am (INCLUDES): The previous commit message is wrong
-       about the -I$(top_srcdir) being redundant. I put it back.
-
-Wed Nov 11 23:23:22 EST 1998 Jeff Garzik <jgarzik@pobox.com>
-
-       * Makefile.am : INCLUDES is the right way to add to CFLAGS, not 
-       DEFS.  Also there are bugs with '+=' in makefiles.
-       Got rid of DEFS line by moving G_LOG_DOMAIN setting into INCLUDES.
-       Removed redundant -I from INCLUDES.
-
-Tue Oct 27 04:00:11 1998  Tim Janik  <timj@gtk.org>
-
-       * testgmodule.c (main): changed the #ifdef WIN32 test to NATIVE_WIN32,
-       this needs to be more constistent throughout the code, do we go for
-       NATIVE_WIN32 or WIN32?
-
-       * gmodule.c (LibMain): special cased the #ifdef __LCC__ case for
-       NATIVE_WIN32, since lcc maybe used on other platforms as well.
-       * libgplugin_a.c (LibMain): 
-       * libgplugin_b.c (LibMain): 
-       likewise. not sure i like this special requirement for lcc in here.
-
-       * gmodule-dl.c (_g_module_build_path): 
-       feature empty "" directories and prepend the module name with "lib".
-
-       * gmodule-dld.c (_g_module_build_path): 
-       * gmodule-win32.c (_g_module_build_path): 
-       feature empty "" directories.
-
-       * we need some more magic in the _g_module_build_path variants
-       so we don't append/prepend lib and .so, .sl or .dll for those names
-       that already contain it.
-
-       * applied patch from Tor Lillqvist for g_module_build_path() and
-       windows support.
-
-1998-10-20: Tor Lillqvist <tml@iki.fi>
-
-       * gmodule/gmodule-win32.c:
-       New file.
-
-       * gmodule/gmodule.c gmodule/gmodule.h:
-       Added the funcion g_module_build_path that builds the path to
-       a module file, decorating the name according to the system's
-       conventions.  Added the Windows implementation.
-
-       * gmodule/libgplugin_a.c gmodule/libgplugin_b.c:
-       Added LibMain for LCC-Win32.
-
-       * gmodule/testgmodule.c:
-       Handle Windows dll names.
-
-1998-10-25  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * gmodule.h: Remove `#pragma }'.
-       * gmoduleconf.h.in: Likewise.
-
-Wed Oct 21 19:58:27 1998  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c (g_module_symbol): fixed a string pointer bug that could
-       cause garbage error messages from g_module_symbol() for systems that
-       NEED_USCORE.
-
-Mon Sep 21 01:54:48 1998  Tim Janik  <timj@gtk.org>
-
-       * gmodule.h: 
-       * gmodule.c: renamed old _de_init functionality to _unload.
-       modules are now expected to export:
-       G_MODULE_EXPORT const gchar* g_module_check_init (GModule *module);
-       and
-       G_MODULE_EXPORT void g_module_unload (GModule *module);
-       returning a string other than NULL from g_module_check_init() will
-       prevent the module from being loaded. a call to g_module_make_resident()
-       from g_module_unload() will prevent the module from being unloaded and
-       still make it resident.
-
-Thu Sep 17 06:34:22 1998  Tim Janik  <timj@gtk.org>
-
-       * gmodule.h: 
-       * gmodule.c: implemented g_module_make_resident() which can be
-       used to make modules resident.
-       fixed a buglet about the optional "g_module_de_init" function in
-       modules, which could get invoked twice on very obscure occasions.
-
-Tue Sep 15 14:57:30 1998  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am: Update to libtool-1.2b,
-       change library versioning scheme to drop LT_RELEASE
-       from the -l line, while keeping it in the soname.
-
-Thu Aug 20 07:08:16 1998  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c: provide no operation implementation for the underlying
-       _g_module_* functions, so we at least compile on systems that have
-       neither of G_MODULE_IMPL_DL or G_MODULE_IMPL_DLD.
-
-Mon Aug 17 03:41:52 1998  Tim Janik  <timj@gtk.org>
-
-       * gmodule.h:
-       * gmodule.c (g_module_open): changed the return type for the
-       GModuleCheckInit function to be a string, describing the error
-       condition.
-       (g_module_symbol): show the failing symbol on error messages.
-
-Fri Aug 14 02:24:39 1998  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain
-       to "GModule" upon compilation. we currently have to add this definition
-       to the DEFS variable.
-       * testgmodule.c: we need an ugly #undef G_LOG_DOMAIN at the start
-       of this file currently, since automake doesn't support per target
-       _CFLAGS yet.
-
-Mon Aug 10 03:35:57 1998  Tim Janik  <timj@gtk.org>
-
-       * gmodule.c: minor changes to internal interface.
-       * gmodule-dl.c: 
-       * gmodule-dld.c: put some comments into the files, and provided
-       better error checking for shl_findsym(). whish i had a system to
-       test this stuff on.
-
-Mon Aug 10 02:18:31 1998  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am (lib_LTLIBRARIES): for now, skip the dependency on
-       -lglib for libgmodule-1.1.la, libgplugin_a.la and libgplugin_b.la
-       since this clashes with inter-library-dependencies for not installed
-       libraries. glib-config takes care of this for the usuall case, but
-       there needs to be a better way...
-
-Sun Aug  9 15:57:38 1998  Tim Janik  <timj@gtk.org>
-
-       * testgmodule.c: test program for GModule.
-       * libgplugin_a.c: 
-       * libgplugin_b.c: test plugins for testgmodule.c.
-
-       * gmodule.h: 
-       * gmodule.c: GModule library implementation, which is basically
-       a wrapper about system specifc dynamic loading facilities.
-
-Sun Aug  9 10:31:05 1998  Tim Janik  <timj@gtk.org>
-
-       * ChangeLog start for gmodule.
index 8bb6189..e4a6a1c 100644 (file)
@@ -99,6 +99,7 @@ libgmodule = library('gmodule-2.0',
   sources : gmodule_sources,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   include_directories : [configinc, gmoduleinc],
   dependencies : [libdl_dep, libglib_dep],
@@ -108,7 +109,8 @@ libgmodule = library('gmodule-2.0',
 
 supported_var = 'gmodule_supported=@0@'.format(g_module_impl != '0')
 
-pkg.generate(libraries : [libgmodule, thread_dep],
+pkg.generate(libgmodule,
+  libraries : [thread_dep],
   requires : ['glib-2.0'],
   version : glib_version,
   variables : [supported_var],
@@ -139,4 +141,5 @@ pkg.generate(libraries : [libgmodule, export_dynamic_ldflags],
 )
 
 libgmodule_dep = declare_dependency(link_with : libgmodule,
-  include_directories : gmoduleinc)
+  include_directories : [gmoduleinc],
+  dependencies : [libglib_dep])
diff --git a/gobject/ChangeLog b/gobject/ChangeLog
deleted file mode 100644 (file)
index 61b8c53..0000000
+++ /dev/null
@@ -1,3973 +0,0 @@
-=== ChangeLog discontinued ===
-
-       With the move to git, GLib is switching from a ChangeLog file
-       to relying on commit messages to provide change history. Please
-       see README.commits for guidance on the expected message format.
-
-2009-03-13  Kristian Rietveld  <kris@imendio.com>
-
-       * gsignal.c (signal_lookup_closure): when defaulting to the only
-       item in the array, check if this is indeed the default closure.
-       (patch by Tim Janik).
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.20.0 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.10 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.9 ===
-
-2009-03-01  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 556706 – Inconsistent help arguments -h, -?
-
-       * glib-genmarshal.c:
-       * glib-mkenums.in: Adjust help output, accept -?, capitalize.
-       Patch by Christian Dywan
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.8 ===
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.c: Remove (now) unnecessary cases from g_atomic_int_get 
-       calls.
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.7 ===
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.6 ===
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.5 ===
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.4 ===
-
-2009-01-02  Behdad Esfahbod  <behdad@gnome.org>
-
-       Bug 565136 – Gobject's "notify" signal parameters are wrong in gtk-doc
-       Patch from  Andrzej Zaborowski
-
-       * gobject.c (g_object_do_class_init): Fix param order in docs.
-
-2008-12-15  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.3 ===
-
-2008-12-12  Dan Winship  <danw@gnome.org>
-
-       * pltcheck.sh: make this work on x86_64
-
-2008-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 473150 – g_type_module_use inconsistently increases the use
-       counter in case of error
-
-       * gtypemodule.c (g_type_module_use): Always reset the use count
-       to its previous value before returning FALSE. Pointed out by
-       Johan Billien.
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.2 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.1 ===
-
-2008-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 559456 – GObject Reference Manual (typo)
-
-       * gsignal.c (g_signal_newv): Fix a typo in the docs, pointed out
-       by Andrew Feren
-
-2008-11-03  Matthias Clasen <mclasen@redhat.com>
-
-       Bug 555935 – Clear the mechanism of overwriting properties
-
-       * gobject.c: Expand the docs of g_object_class_install_property.
-       Proposed by Maciej Piechotka
-
-2008-10-16  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.0 ===
-
-2008-09-26  Dan Winship  <danw@gnome.org>
-
-       * gobject.c (g_object_ref, g_object_unref)
-       (g_object_freeze_notify, g_object_notify, g_object_thaw_notify):
-       * gparam.c (g_param_spec_ref, g_param_spec_unref):
-       * gsignal.c (handler_ref, handler_unref_R): add uint* -> int*
-       casts in g_atomic_int calls to avoid gcc warnings
-
-2008-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.1 ===
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.0 ===
-
-2008-08-21  Johan Dahlin  <johan@gnome.org>
-
-       * gobject.h:
-       Mark g_object_get_type function as const, it's
-       a fundamental type and can safely marked as const,
-       as opposed to traditionally *_get_type functions.
-
-2008-08-21  Johan Dahlin  <johan@gnome.org>
-
-       Bug 548800 – Missing a g_object_get_type function
-
-       * gobject.c (g_object_get_type):
-       * gobject.h:
-       * gobject.symbols:
-       Add g_object_get_type
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.7 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.6 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.5 ===
-
-2008-08-01  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 545395 – Language tweak for g_value_set_string* docs
-
-       * gvaluetypes.c: Clarify the docs of some GValue setters.
-       Proposed by Erik Walthinsen
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * gtype.h
-       * gtype.c: Revert my change from 2008-07-24. No G_TYPE_FORMAT is
-       needed. Just use G_GSIZE_FORMAT always when printing GType values.
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (gobject-2.0.lib): Pass appropriate -machine flag to lib.exe.
-
-2008-07-24  Tor Lillqvist  <tml@novell.com>
-
-       * gtype.h: Define G_TYPE_FORMAT as the printf format for a GType
-       value. Either G_GSIZE_FORMAT or "lu".
-
-       * gtype.c: Use it instead of the C99 zu.
-
-2008-07-23  Matthias Clasen  <mclasen2redhat.com>
-
-       544177 - Fix trivial cut and paste error in documentation
-
-       * gtype.h: Fix a typo. Pointed out by Paul Bolle.
-
-2008-07-21  Matthias Clasen  <mclasen2redhat.com>
-
-       * === Released 2.17.4 ===
-
-2008-07-21  Michael Natterer  <mitch@imendio.com>
-
-       Reviewed by Tim Janik:
-
-       * gsignal.c (g_signal_chain_from_overridden_handler): allocate
-       the temp GValue array with GSLice.
-
-       (g_signal_emit_valist): dito. Remove optimization/obfuscation of
-       allocating up to 16 GValues on the stack and always use GSLice.
-
-2008-07-05  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 539229 – gobject-query calls itself query
-
-       * gobject-query.c: Use the right binary name in help output.
-       Patch by Hiroyuki Ikezoe.
-
-2008-07-04  Michael Natterer  <mitch@imendio.com>
-
-       * gobject.c: remove unused #define PREALLOC_CPARAMS.
-
-2008-07-04  Michael Natterer  <mitch@imendio.com>
-
-       Bug 541208 – Functions to easily install and use signals without
-       class struct slot
-
-       * gobject.symbols
-       * gsignal.[ch] (g_signal_new_class_handler): the same as
-       _gtk_binding_signal_new(), to install signals with a callback
-       instead of a class struct slot as class closure.
-
-       The next two functions are C convenience and much easier to use
-       than the generic overriding and chaining APIs which are intended
-       primarily for language bindings:
-
-       (g_signal_override_class_handler): to override a signal with a
-       callback instead of a class struct slot.
-
-       (g_signal_chain_from_overridden_handler): to chain up from a
-       signal without class struct slot. The API is similar to
-       g_signal_emit().
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.3 ===
-
-2008-07-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * *.c: Fix up section comments far enough to avoid regressions.
-
-2008-06-27  Hans Breuer  <hans@breuer.org>
-
-       * glib-genmarshal.c : move G_OS_WIN32 inclusion of <io.h> down to
-       where G_OS_WIN32 will be defined (#540047, Kazuki IWAMOTO)
-
-2008-06-22  Michael Natterer  <mitch@imendio.com>
-
-       * *.c: remove trailing whitespace from newly added gtk-doc
-       comments and reformatted some where they contained overly long or
-       ill-formatted lines.
-
-2008-06-22  Michael Natterer  <mitch@imendio.com>
-
-       * *.c: moved includes back to the top of the files (before gtk-doc
-       SECTION comments). Add "config.h" in all files and move system
-       included before glib includes. Remove trailing whitespace from
-       SECTION comments and did some reformatting where lines were overly
-       long, no documentation content was changed.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/gobject-unused.sgml:
-       * gobject/gobject.h:
-       * gobject/gtype.c:
-       * gobject/gtype.h:
-         Move some content for gobject-unused.sgml and cleared empty entries.
-         The remaining 4 ones should be checked by some else. If they are not
-         needed. The file can be removed.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/value_collection.sgml:
-       * gobject/gvaluecollector.h:
-         Migrating docs.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/value_arrays.sgml:
-       * gobject/gvaluearray.c:
-       * gobject/gvaluearray.h:
-         Migrating docs.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/gsignal.c:
-         Fix compiler warning in format string check.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/signals.sgml:
-       * gobject/gclosure.c:
-       * gobject/gobject.c:
-       * gobject/gsignal.c:
-       * gobject/gsignal.h:
-         Migrating docs.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/Makefile.am:
-         Help poor little gtkdoc a bit and tell that it can ignore
-         G_GNUC_INTERNAL. Also disable including the unit-test header as this
-         causes warnings and we don't need it here.
-
-2008-06-22  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/param_value_types.sgml:
-       * gobject/gboxed.c:
-       * gobject/gboxed.h:
-       * gobject/genums.c:
-       * gobject/genums.h:
-       * gobject/gobject.c:
-       * gobject/gobject.h:
-       * gobject/gparam.c:
-       * gobject/gparam.h:
-       * gobject/gparamspecs.c:
-       * gobject/gparamspecs.h:
-       * gobject/gvaluetypes.c:
-       * gobject/gvaluetypes.h:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/objects.sgml:
-       * gobject/gobject.c:
-       * gobject/gobject.h:
-       * gobject/gparam.h:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/gtypeplugin.sgml:
-       * gobject/gtypeplugin.c:
-       * gobject/gtypeplugin.h:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/Makefile.am:
-         Add --sgml-mode to allow sgml in doc-fragments (which somehow works
-         before already).
-
-       * gobject/gboxed.h:
-       * gobject/gclosure.c:
-       * gobject/gparam.c:
-       * gobject/gparam.h:
-       * gobject/gtype.h:
-         Convert character entities back. Fix some broken sgml.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/gtypemodule.sgml:
-       * gobject/gtypemodule.c:
-       * gobject/gtypemodule.h:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/gboxed.c:
-       * gobject/gclosure.c:
-       * gobject/genums.c:
-       * gobject/gparam.c:
-       * gobject/gvalue.c:
-         Add titles back from tmpl.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/gtype.sgml:
-       * gobject/gtype.c:
-       * gobject/gtype.h:
-       * gobject/gvaluetypes.h:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/gclosure.h:
-       * gobject/gparam.h:
-         Add one missing ':' and reformate GParamFlags docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/gparamspec.sgml:
-       * gobject/gparam.c:
-       * gobject/gparam.h:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/gboxed.c:
-       * gobject/gclosure.c:
-       * gobject/genums.c:
-       * gobject/gvalue.c:
-         Use file-names from the section file for SECTION: comments.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/generic_values.sgml:
-       * gobject/gboxed.h:
-       * gobject/gtype.h:
-       * gobject/gvalue.c:
-       * gobject/gvalue.h:
-       * gobject/gvaluetypes.c:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * gobject/genums.h:
-         Fix documentation for return values.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/gclosure.sgml:
-       * gobject/gboxed.h:
-       * gobject/gclosure.c:
-       * gobject/gclosure.h:
-       * gobject/gobject.c:
-       * gobject/gsourceclosure.c:
-       * gobject/gsourceclosure.h:
-         Migrating docs.
-
-2008-06-21  Tor Lillqvist  <tml@novell.com>
-
-       * glib/gstdio.c: Improve Windows-specific parts of
-       documentation. Mention the different C library issue in more
-       places.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/gobject-sections.txt:
-         Remove duplicated entries. They are documented and should be shown.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/enumerations_flags.sgml:
-       * gobject/genums.c:
-       * gobject/genums.h:
-         Migrating docs.
-
-2008-06-21  Stefan Kost  <ensonic@users.sf.net>
-
-       * docs/reference/gobject/tmpl/gboxed.sgml:
-       * gobject/gboxed.c:
-       * gobject/gboxed.h:
-       * gobject/gvaluetypes.c:
-         Migrating docs.
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.17.2 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.1 ===
-
-2008-06-10 13:34:01  Tim Janik  <timj@imendio.com>
-
-       * tests/threadtests.c: added race condition tester from Michael Meeks
-       with a couple fixes so it's not triggering development warnings. From:
-       Bug 537555 - GObject instantiation not thread safe ...
-
-2008-06-10 13:15:29  Tim Janik  <timj@imendio.com>
-
-       * gtype.c (g_type_class_ref): fixed race condition where references to
-       partially initialized classes could be handed out.
-
-2008-05-28  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am: don't define G_DISABLE_SINGLE_INCLUDES, it's in
-       the global CPPFLAGS now.
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.0 ===
-
-2008-05-05  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent
-       code from being checked in that breaks the build of applications
-       which use G_DISABLE_SINGLE_INCLUDES.
-
-2008-03-16  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Define gobject_def locally here instead of using an
-       Autoconf variable.
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.16.1 ===
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.0 ===
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.6 ===
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.15.5 ===
-
-2008-02-06  Benjamin Otte  <otte@gnome.org>
-
-       * gparamspecs.c: (param_gtype_set_default), (param_gtype_validate):
-       make GParamGType require the set type during construction instead of
-       using G_TYPE_NONE, which causes issues when setting.
-       Bug 513073 - g_param_spec_gtype breaks with G_PARAM_CONSTRUCT
-
-2008-02-05 18:52:07  Tim Janik  <timj@imendio.com>
-
-       * gtype.c: added recursive mutex to protect class initialization,
-       default interface initialization and per-class interface construction.
-       a lock to this recursive mutex is held during user callback invocations
-       such as initializers or finalizers, effectively allowing only one thread
-       to run class/interface initializers/finalizers at a time.
-       also made misc fixups. this fixes:
-       Bug 64764 - Class initialization isn't thread safe.
-
-2008-02-05 18:41:22  Tim Janik  <timj@imendio.com>
-
-       * Makefile.am: integrate tests/.
-
-       * tests/: new directory for libgobject tests.
-
-       * tests/Makefile.am: build and run threadtests.
-
-       * tests/threadtests.c: test multi-threaded initializers for
-       object classes and interfaces.
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.4 ===
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.3 ===
-
-2008-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.2 ===
-
-008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.1 ===
-
-2007-12-26  Behdad Esfahbod  <behdad@gnome.org>
-
-       * gclosure.h (G_CCLOSURE_SWAP_DATA): Fix macro argument.
-       (#505674, Areg Beketovski)
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.0 ===
-
-2007-11-11  Mathias Hasselmann  <mathias@openismus.com>
-
-       Always exit with non-zero error code when printing warnings.
-
-       * gobject/glib-genmarshal.c: Add global exit_status variable, and use
-       it in pad() and process_signature() to return with non-zero error code
-       when printing warnings. (#495294)
-
-2007-11-08  Matthias Clasen <mclasen@redhat.com>
-
-       * glib-mkenums.in: Don't shift ARGV[0] to undefined. 
-       (#466557, Aidan Delaney)
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.14.3 ===
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.2 ===
-
-2007-09-20  Carlos Garnacho  <carlos@imendio.com>
-
-       * gtypemodule.h: make sure we define GType g_define_type_id in
-       G_G_DEFINE_DYNAMIC_TYPE_EXTENDED so it works together with
-       G_IMPLEMENT_INTERFACE. (#478459)
-
-2007-09-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.1 ===
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.0 ===
-
-2007-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.7 ===
-
-Tue Jul 10 12:31:50 2007  Tim Janik  <timj@imendio.com>
-
-       * gtype.h: use g_once_init_enter/g_once_init_leave to guard critical
-       initialization section of *_get_type implementations in G_DEFINE_TYPE,
-       bug #65041.
-
-Fri Jun 29 2007  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.6 ===
-
-Fri Jun 22 11:31:27 2007  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: reintroduce typedef gulong GType; for C++, to avoid
-       C++ specific ABI breakage.
-
-2007-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.5 ===
-
-Thu Jun 14 23:32:00 2007  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: always define GType unconditionally in terms of gsize,
-       there's no need to jump through a glong hoop ever and this fixes
-       the printf modifier to %zu.
-
-Thu Jun 14 22:33:11 2007  Tim Janik  <timj@imendio.com>
-
-       * gparamspecs.c (g_param_spec_types_init): work around SGI IDO cc,
-       fixes #363986.
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.4 ===
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.13.3 ===
-
-2007-05-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.2 ===
-
-2007-05-17  Matthias Clasen <mclasen@redhat.com>
-
-       * gtype.h: Move G_GNUC_INTERNAL before function
-       declarations to fix compilation with sun studio.  (#438873,
-       Damien Carbery)
-
-2007-05-03  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.13.1 ===
-
-2007-04-25  Michael Natterer  <mitch@imendio.com>
-
-       * gparamspecs.c (param_string_validate): also clear the
-       NOCOPY_CONTENTS flag when replacing NULL with the empty string.
-
-2007-04-24  Michael Natterer  <mitch@imendio.com>
-
-        * gparamspecs.c (param_string_validate): don't free or modify
-       static strings, dup them when needed and clear the
-       G_VALUE_NOCOPY_CONTENTS flag. Fixes bug #432895.
-
-Tue Apr  3 12:34:14 2007  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]: invoke GObjectClass.constructed() only for newly
-       constructed objects, and invoke it while the notify queue is
-       still being frozen, after all CONSTRUCT* properties have been
-       set and before random other properties are being set.
-
-       * applied modified patch from Ryan Lortie to implement
-       GObjectClass.constructed() to fix #425324.
-
-2007-04-02  Ryan Lortie  <desrt@desrt.ca>
-
-       * gobject/gobject.h: Add 'constructed' vcall to GObjectClass.
-       * gobject/gobject.c (g_object_newv): call ->constructed() as last
-       step of object construction.
-
-2007-03-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.0 ===
-
-2007-03-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * gvaluearray.c: Use  g_slice.  (#404430, Chris Wilson)
-
-2007-03-14  Stefan Kost  <ensonic@users.sf.net>
-
-       * gparam.h:
-         Add G_PARAM_STATIC_STRINGS define (fixes #418021).
-
-Mon Mar 12 13:30:20 2007  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: marked purely functional g_type accessors as PURE or CONST,
-       closes #305100.
-
-2007-01-02  Tor Lillqvist  <tml@novell.com>
-
-       * glib-genmarshal.c (main): Handle "/dev/stdin" by dup()ing fd 0
-       so that it works on Win32 and other systems without
-       /dev/stdin. (#407431)
-
-2006-12-29 Matthias Clasen  <mclasen@redhat.com>
-
-       * gtypemodule.h: Define G_DEFINE_DYNAMIC_TYPE and
-       and _EXTENDED variant.  (#334437)
-
-Fri Dec 15 2006  Matthias Clasen  <mclasen@redhat.com>
-
-       * gtype.c (instance_real_class_get): Dereference the pointer 
-       before dropping the lock.  (#378078, Jonathan Matthew)
-
-Tue Oct 10 12:06:08 2006  Tim Janik  <timj@gtk.org>
-
-       * glib-mkenums.in: 
-       * glib-mkenums.1: applied patch from David Necas which introduces
-       an underscore_name option and fixes #358734.
-
-Mon Oct  2 15:50:16 2006  Tim Janik  <timj@gtk.org>
-
-       * gvalue.c (g_value_peek_pointer): reverted a change to have an
-       assert instead of a g_return_val_if_fail() here. libraries (and
-       programs) should only ever g_assert or g_error if there is no way
-       to carry on with the current program state. that's clearly not 
-       the case here.
-
-       * ChangeLog: added missing changelog entry for 2003-12-30.
-
-Sat Sep 30 2006  Matthias Clasen  <mclasen@redhat.com>
-
-       * pltcheck.sh: Script to check PLT entries.
-
-       * Makefile.am (TESTS): Run pltcheck.sh
-
-       * gtype.c:
-       * gsignal.c:
-       * gobject.c:
-       * gvaluetypes.c: Move all includes before gobjectalias.h.
-       (#3545422, Behdad Esfahbod)
-
-Fri Sep 22 13:41:02 2006  Tim Janik  <timj@imendio.com>
-
-       * gtype.h: applied patch from Behdad with slight optimization, 
-       fixes #356175.
-
-       * gobjectnotifyqueue.c: fixed include-guard macro name.
-
-Mon Sep 11 12:12:45 2006  Tim Janik  <timj@imendio.com>
-
-       * gparam.c (g_param_spec_sink): reimplemented floating flag handling by
-       atomically accessing a reserved GData bit, fixes #330556.
-
-Tue Aug 29 13:27:33 2006  Tim Janik  <timj@gtk.org>
-
-       * glib-mkenums.in: fixed to print usage and version info on STDOUT
-       (#322502).
-
-       * gobject.c (g_initially_unowned_init): restore ; after G_DEFINE_TYPE.
-
-2006-08-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.c: Remove ; after G_DEFINE_TYPE.  (#351741, Kjartan Maraas)
-
-Wed Aug 23 10:35:32 2006  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]: changed return value of g_value_dup_object(), fixes #343292.
-
-2006-08-23  Sven Neumann  <sven@gimp.org>
-
-       * gobject/glib-genmarshal.[c1]: added new command-line option
-       "--internal" that can be used to let glib-genmarshal generate
-       internal functions using the G_GNUC_INTERNAL attribute (bug #346647).
-
-Wed Aug 16 13:55:08 2006  Tim Janik  <timj@imendio.com>
-
-       * gobject.c: conditionally thaw the notify queue after construction,
-       so we don't trigger warnings when trying to thaw an unfrozen singleton.
-
-2006-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.2 ===
-
-2006-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gparamspecs.c (g_param_spec_types_init): Don't initialize
-       struct members with function calls.  (#349952)
-
-2006-07-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.1 ===
-
-2006-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * gtypemodule.c (g_type_module_register_type): Copy the complete
-       value table, not just the first 4 bytes.  (#348136, Coverity)
-
-2006-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.0 ===
-
-2006-06-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.4 ===
-
-2006-06-15  Federico Mena Quintero  <federico@novell.com>
-
-       * gtype.c (g_type_instance_get_private): Fix the error message so
-       that it mentions the right functions:
-       "g_type_instance_get_private() requires a prior call to
-       g_type_class_add_private()".
-
-2006-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.3 ===
-
-2006-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.2 ===
-
-2006-06-02  Behdad Esfahbod  <behdad@gnome.org>
-
-       * gobject/genum.h: Make value_name and value_nick const in structs
-       _GEnumValue and _GFlagValue.  (#317793)
-
-Tue May 16 14:01:43 2006  Tim Janik  <timj@imendio.com>
-
-       * gtype.h (G_IMPLEMENT_INTERFACE): turn off compiler warnings, #337129.
-
-2006-05-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.1 ===
-
-2006-05-02  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.11.0 ===
-
-Tue May  2 14:51:03 2006  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: split up G_DEFINE_*TYPE macro definitions so C CODE arguments
-       are not passed on to nested macro calls. patch mostly courtesy of Behdad
-       Esfahbod, fixes #337128.
-
-2006-04-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.symbols: Fix a typo.
-
-       * gtype.c: (g_type_register_static_simple): Add a 
-       missing return.
-
-       * gtype.h: Silence warnings from G_DEFINE_TYPE.
-       
-2006-04-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.symbols:
-       * gtype.[hc]: Add a g_type_register_static_simple
-       variant of g_type_register_static that does not take 
-       a relocation-causing GTypeInfo struct, and use it 
-       in G_DEFINE_TYPE.
-
-2006-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * ===  Released 2.10.1 ===
-
-Tue Mar  7 17:09:07 2006  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_object_compat_control): added case3 to hand out the
-       original floating flag handler. required by gtk+ >= 2.10.
-
-2006-02-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.10.0 ===
-
-2006-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.6 ===
-
-2006-01-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * gclosure.c: Remove C++ comment.
-
-2006-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.5 ===
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.9.4 ===
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.h: Make g_object_compat_control() visible
-       for GTK+ compilation, to avoid segfaults on 64bit
-       platforms.
-
-2006-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.3 ===
-
-2006-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.2 ===
-
-2006-01-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.symbols: Add g_initially_unowned_get_type.
-
-2005-12-30  Matthias Clasen  <mclasen@redhat.com>
-       
-       * gsignal.c: Remove the handler trash stack, which
-       is now unused.
-       (g_signal_init): Remove the restriction that HandlerMatch
-       must be the same size as GList, and obsolete comments 
-       referring to mem chunks.
-
-2005-12-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.symbols: Add new functions.
-
-Thu Dec 22 18:53:14 2005  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]: renamed GUnowned to GInitiallyUnowned.
-
-Thu Dec 22 14:59:24 2005  Tim Janik  <timj@imendio.com>
-
-       * gvaluetypes.[hc]: implemented G_TYPE_GTPYE. applied patch
-       from matthias which implements GType accessors for GValue.
-
-       * gparamspecs.[hc]: applied patch from matthias which 
-       implements G_TYPE_PARAM_GTYPE.
-
-       * gobject.[hc]:
-       GUnowned: introduced a new object type that has an initially
-       floating reference.
-       g_object_compat_control(): allow setting of a floating flag handler.
-
-2005-12-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.1 ===
-
-2005-12-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * genums.h (G_FLAGS_CLASS_TYPE_NAME): Use G_FLAGS_CLASS_TYPE.
-       (#323273, Kalle Vahlman)
-       
-Thu Dec  1 12:53:26 2005  Tim Janik  <timj@imendio.com>
-
-       * gtype.c: use g_slic_* for all object allocations.
-
-2005-11-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobjectnotifyqueue.c (g_object_notify_queue_thaw): 
-       * gobject-query.c (main): Silence compiler warnings.
-
-       * glib-genmarshal.c (main): Use G_N_ELEMENTS.
-
-2005-11-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gboxed.h: Declare g_hash_table_get_type.
-
-Wed Nov 23 18:01:46 2005  Tim Janik  <timj@imendio.com>
-
-       * gobject.[hc]: added floating reference count.
-       g_object_is_floating():
-       g_object_ref_sink(): new functions to deal with floating references.
-       g_object_force_floating(): new funciton for object implementations
-       to set the floating flag.
-
-       * gobject.c (g_object_init): make objects initially floating.
-
-Wed Nov 23 17:58:13 2005  Tim Janik  <timj@gtk.org>
-
-       * gparam.[hc]: added g_param_spec_ref_sink().
-
-Wed Nov 23 13:36:02 2005  Tim Janik  <timj@gtk.org>
-
-       * gboxed.[hc]: minor cleanups, implemented G_TYPE_HASH_TABLE.
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.0 ===
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-genmarshal.c: const correctness fixes, found
-       by Arjan van de Ven and gcc.
-       
-Tue Nov  1 17:07:43 2005  Tim Janik  <timj@imendio.com>
-
-       * gsignal.c: allocate signal handlers and handler match structures
-       via the new g_slice_*() API (get's rid of GList allocation hack).
-
-       * gtype.c: got rid of per-type memchunks. if GTypeInfo.n_preallocs
-       is > 0, objects are allocated via g_slice_*() instead of g_malloc().
-
-2005-10-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-mkenums.in: Really fix #314890.
-
-2005-09-28  Michael Natterer  <mitch@gimp.org>
-
-       * gtype.h (G_IMPLEMENT_INTERFACE): revert last change, it breaks
-       all users of G_IMPLEMENT_INTERFACE() inside
-       G_DEFINE_TYPE_WITH_CODE(), since apparently GCC doesn't like
-       commas enclosed in {}, not (), in nested macro calls.
-
-2005-09-26  DindinX  <dindinx@gimp.org>
-
-       * gobject/gtype.h: initialize all the fields of GInterfaceInfo in the
-       G_IMPLEMENT_INTERFACE macro, to shut up a warning when compiling at -W
-
-2005-09-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-mkenums.in: Don't hang on '{' following a trigraph comment
-       in the same line.  (#314890, Mathias Hasselmann)
-
-Thu Sep 22 12:42:12 2005  Tim Janik  <timj@gtk.org>
-
-       * gparam.c (g_param_spec_internal): fix pspec->name assignment which
-       needs to be strdup()ed for non G_PARAM_STATIC_NAME pspecs. this fixes
-       recently introduced crashes during plugin unloading.
-       also, ensure that static pspec names are canonicalized.
-
-       * gsignal.h: reverted last change from matthias, we don't guarantee
-       that type ids aren't mangled with G_SIGNAL_TYPE_STATIC_SCOPE anywhere.
-
-2005-09-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gsignal.h (struct _GSignalQuery): Remove the misleading comment
-       about G_SIGNAL_TYPE_STATIC_SCOPE, since we don't allow that 
-       on return types.
-
-2005-09-08  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * gclosure.c: (g_closure_set_meta_marshal): Remove some unused
-       code.
-       * gsignal.c: (g_signal_emitv): Same here
-       * gtype.c: (g_type_register_fundamental): And here
-       * testgobject.c: Mark some functions static.
-
-2005-09-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * gsignal.c (struct _SignalNode): Make the name field const.
-       (g_signal_newv): Don't keep an unnecessary extra copy of the 
-       signal name around, and don't forget to free the name if
-       an existing node is reused.     
-
-2005-08-31  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.c (g_object_do_class_init): Intern the signal name.
-
-       * gparam.c (g_param_spec_internal): Intern the name here,
-       since we need the quark anyway when sending change notification.
-
-       * gboxed.c: 
-       * gparamspecs.c: 
-       * gtype.c (g_type_init_with_debug_flags): Intern type name
-       before registering the types.
-
-       * gtype.h (G_DEFINE_TYPE_EXTENDED): Intern type name
-       before registering the type.
-
-       * gvaluetypes.c (g_value_types_init): 
-       * gtypeplugin.c (g_type_plugin_get_type): 
-       * gtypemodule.c (g_type_module_get_type): 
-       * gparam.c (g_param_type_init): 
-       * gobject.c (g_object_type_init): 
-       * genums.c (g_enum_types_init): 
-       * gboxed.c (g_boxed_type_init): Intern type names
-       before registering the type to avoid unnecessary
-       copies.
-
-2005-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.1 ===
-
-2005-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.0 ===
-
-2005-08-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * gvaluetransform.c: Access enum and flags
-       values as v_long/v_ulong, not v_int/v_uint,
-       to make value transformation of such types
-       work on bigendian 64bit machines.  (#312485,
-       Michael Lorenz)
-
-2005-08-05  Matthias Clasen  <mclasen@redhat.com>
-       
-       * abicheck.sh: Also check exported variables
-
-       * === Released 2.7.7 ===
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.6 ===
-
-2005-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * gclosure.c (union ClosureInt): Mark the vint member as
-       volatile, which seems to be necessary to make atomic operations
-       work on s390.
-
-       * === Released 2.7.5 ===
-
-Mon Aug  1 23:00:42 2005  Tim Janik  <timj@imendio.com>
-
-       * gclosure.c: turned all modifications to the first 32 integer bits in a 
-       closure into atomic accesses. wrapped write accesses into special macros
-       to keep the atomic modification logic in a single place. comment cleanups.
-
-       * gclosure.h: made all atomicly accessed closure fields volatile.
-
-       * gobject.h: made ref_count field volatile.
-
-Sun Jul 31 02:04:23 2005  Tim Janik  <timj@gtk.org>
-
-       * gobject.c: use g_datalist_set_flags() and g_datalist_unset_flags() to
-       allow proper locking around &qdata modifications.
-
-Sat Jul 30 21:10:26 2005  Tim Janik  <timj@gtk.org>
-
-       * gobject.c: reverted notify_mutex introduction, since this prevents
-       parallelized setting of object properties on different objects, and
-       serves no apparent purpose (to me at least).
-       g_object_real_dispose(): removed non-atomic reference count 
-       modifications.
-       g_object_unref(): make sure the closures array is destroyed when
-       destroying signal handlers.
-
-       * gparam.c: cosmetic changes.
-
-       * gsignal.c: comment fixup. allow 16bit blocking count.
-
-       * gsignal.c: reverted GClosure related changes.
-
-       * gclosure.c: reverted premature commit of atomic reference
-       counting attempt.
-
-2005-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.4 ===
-
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.3 ===
-       
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       Make refcounting threadsafe by using atomic 
-       operations.  (#166020, Wim Taymans)
-       
-       * gobject.c: Use a recursive lock to protect the 
-       notify queue.
-       (g_object_unref): Get rid of g_object_last_unref and
-       do the last unref handling in g_object_unref.
-       (g_object_ref, g_object_unref): Use atomic operations.
-
-       * gsignal.c (struct _HandlerMatch): Use a full integer
-       for the ref_count field.
-       (handler_ref, handler_unref_R): Use atomic operations.
-
-       * gparam.c (g_param_spec_ref, g_param_spec_unref): 
-       Use atomic operations instead of a lock to make the
-       refcounting threadsafe.
-
-       * gclosure.c (g_closure_ref, g_closure_unref): Use atomic
-       operations. This is more complicated here, since the
-       refcount is stored in a bitfield, so we also have
-       to access all other bitfield members atomically.
-
-       * gsignal.c (handlers_find): Read the meta_marshal flag
-       of the closure atomically.
-
-2005-07-11  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.h: 
-       * gobject.symbols: Remove G_GNUC_NULL_TERMINATED from
-       g_object_new again, since that makes gcc warn on calls of 
-       the form g_object_new (some_type, NULL)
-
-2005-07-09  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Don't use the scripts in build/win32 to compile
-       gobject.rc into a resource object file. (This means we lose the
-       build number increment magic, but I doubt it was that useful
-       anyway.) Instead use windres directly. To pass the normal .o file
-       produced by windres through libtool, which wants .lo files, pass
-       it directly to the linker using a -Wl option.
-
-       * gobject.rc.in: Thus replace BUILDNUMBER with 0.
-
-2005-07-08  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.7.2 ===
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.1 ===
-
-2005-06-26  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: libtool installs/uninstalls the import library, no
-       need to do it ourselves. Do still install/uninstall the .def file,
-       though.
-
-2005-06-24  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (install-libtool-import-lib): Current GNU tools do
-       understand the PRIVATE keyword.
-
-2005-06-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * gparam.h (GParamFlags): Avoid a warning.  (#308295,
-       Murray Cumming).
-
-2005-06-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * gparam.h (GParamFlags): Re-add G_PARAM_PRIVATE as a 
-       deprecated name for bit 5, since some language bindings
-       have it bound.
-
-2005-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.0 ===
-
-2005-05-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gvaluetypes.c (g_value_set_string): dup the new value
-       before freeing the old, just in case.  (#172142, Morten
-       Welinder)
-
-2005-05-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-genmarshal.1: Mention 64bit integer types.
-
-2005-05-05  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject.[ch] gobject.symbols: Add
-       g_object_add/remove_toggle_ref() functions to get notification
-       when a reference count is the last remaining reference; this
-       enables better memory management for language bindings.
-       (http://mail.gnome.org/archives/gtk-devel-list/2005-April/msg00095.html)
-
-2005-04-29  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.symbols: 
-       * gboxed.h (G_TYPE_DATE): 
-       * gboxed.c: Add a boxed type for GDate. (#301787, Tim-Philipp 
-       Müller)
-
-2005-03-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * gparam.c (param_spec_ht_lookup): Don't do the second
-       lookup if the name was already canonical.  (#171502, Morten
-       Welinder)
-
-Tue Mar 22 14:15:23 2005  Manish Singh <yosh@gimp.org>
-
-       * gparam.c (g_param_spec_internal): cast away any constness on
-       assignment.
-
-2005-03-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-mkenums.in: Avoid forcing extra newlines when using
-       template files.  (#171005)
-
-2005-03-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * gparam.c (g_param_spec_internal): Don't copy strings
-       which are marked as static. Don't allow non-canonical static 
-       names.
-
-       * gparam.h (GParamFlags): Add G_PARAM_STATIC_{NAME,NICK,BLURB}
-       flags.  (#160655, Ben Maurer)
-       
-2005-03-18  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : handle gobjectaliasdef.c
-
-2005-03-14  Matthias Clasen  <mclasen@redhat.com>
-
-       Make PLT-reduction work with gcc4, and don't include
-       everything in gobjectalias.h:
-       
-       * gobject.symbols: Group symbols by header and source 
-       file.
-       * makegobjectalias.pl: Protect definitions by the same 
-       preprocessor symbols used to guard the headers. Move
-       the alias declarations to a separate file which is 
-       produced when calling makegalias.pl -def
-       * Makefile.am (gobjectaliasdef.c): Add a rule to 
-       build this file.
-       * *.c: Include gobjectalias.h after the other i
-       GLib headers, include gobjectaliasdef.c at the bottom.
-
-2005-03-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.symbols: Add the new attributes here, too.
-
-       * gobject.h: Use G_GNUC_NULL_TERMINATED where
-       appropriate.  (#164706, Marc Meissner)
-
-       * gvaluearray.h: Small cleanup (use G_BEGIN/END_DECLS).
-       (#168474, Fabricio Barros Cabral)
-
-2005-02-24  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (EXTRA_DIST): Don't distribute
-       gobject.def. (#167496, J. Ali Harlow)
-
-Sun Feb  6 22:00:46 2005  Manish Singh  <yosh@gimp.org>
-
-       * abicheck.sh: feed the contents of config.h and glibconfig.h
-       into the preprocessor, since glib.symbols could need #defines
-       from them.
-
-2005-01-12  Matthias Clasen  <mclasen@redhat.com>
-
-       Cosmetic fixes (#163792, Benoît Carpentier):
-       
-       * gobject-query.c (main): Remove duplicate lines.
-
-       * gvaluetransform.c: Remove duplicate definitions of
-       value_transform_[u]int64_[u]int64.
-
-2005-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.1 ===
-
-2004-12-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.am: Only check the ABI on linux, since
-       the shell script is not portable.  (#161734, Adrian Bunk)
-
-2004-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.0 ===
-       
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.7 ===
-       
-2004-11-30  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (gobject.def): gcc -E complains "linker input file
-       unused because linking not done" if told to preprocess the
-       gobject.symbols file. Use '-' and redirection to pass it as
-       standard input instead.
-
-Sun Nov 28 13:21:12 2004  Manish Singh  <yosh@gimp.org>
-
-       * abicheck.sh: filter G_GNUC before PRIVATE so $ is still true.
-
-Sun Nov 28 01:37:54 2004    <timj@birnet.org>
-
-       * gsignal.c: applied patch by sven@gimp.org (#153727) to reduce
-       signal connection complexity from O(n_handlers) to O(1).
-
-Thu Nov 25 14:09:41 2004  Manish Singh  <yosh@gimp.org>
-
-       * abicheck.sh: filter out G_GNUC stuff when doing the compare.
-
-2004-11-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gobject.symbols: Typo fix.
-
-       Fix a problem with the PLT reduction changes which caused the
-       internal aliases to lose all attributes.
-       
-       * gobject.symbols: Add attribute annotations.
-       * makegobjectalias.pl: Keep attribute annotations, but strip PRIVATE.
-       * Makefile.am (gobject.def): Strip attribute annotations, but keep 
-       PRIVATE.
-
-       * gtypemodule.h (g_type_module_get_type): Mark as const,
-       like all other get_type() functions.
-
-2004-11-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.6 ===
-       
-Mon Nov  8 10:47:41 2004  Manish Singh  <yosh@gimp.org>
-
-       * gobject/gsourceclosure.c: removed wrap_g_io_channel_ref() hack,
-       since g_io_channel_ref() has a compatible API now.
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.5 ===
-
-2004-10-27 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.4 ===
-
-2004-10-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * abicheck.sh: Strip Win32 specific defs file syntax.
-
-       * Makefile.am (gobjectalias.h): Fix srcdir != builddir 
-       builds.  (#156447, Thomas Fitzsimmons)
-
-2004-10-26  Matthias Clasen  <mclasen@redhat.com>
-
-       * abicheck.sh: Don't include symbols which are just in the 
-       symbols list for .defs file compatibility.
-
-2004-10-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * gtype.h (GTypeInterfaceCheckFunc): Rename first parameter to 
-       check_data, since apparently the system headers on AIX leak a
-       macro named func_data.  (#155178, Andrea Campi)
-
-Wed Oct  6 02:12:44 2004    <timj@birnet.org>
-
-       * gtype.c (g_type_instance_get_private): applied patch from Jean-Yves 
-       Lefort <jylefort@brutele.be> to not access the instance_real_class_bsa
-       pointer without holding the instance_real_class lock.
-
-2004-10-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * gsignal.c (g_signal_add_emission_hook): Improve the warning 
-       if G_SIGNAL_NO_HOOKS is set.  (#154299, Nickolay V. Shmyrev)
-
-2004-09-22  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (install-libtool-import-lib): [Win32] Add code to
-       remove the bug-compatibility entries (see #134813, and related
-       comments below) from the import library. The PRIVATE keyword in
-       the .def file is supposed to mean that, but it isn't implemented
-       yet by GNU ld.
-
-       * makegobjectalias.pl: In case the symbol is followed by some
-       stuff ("PRIVATE") that's intended for the .def file, use just the
-       actual symbol.
-
-       * gobject.symbols: For binary bug compatibility on Win32, add the
-       g_slist_remove_all and g_unichar_validate symbols inside #ifdef
-       INCLUDE_INTERNAL_SYMBOLS. (See #134813 and log entries from March
-       below.)
-
-2004-09-18 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.3 ===
-
-Thu Sep 16 18:42:46 2004  Manish Singh  <yosh@gimp.org>
-
-       * abicheck.sh: don't hardcode lengths for cut, instead split on
-       the third field.
-
-2004-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Implement the same PLT reduction technique used in GTK+:
-
-       * Makefile.am: Generate gobjectalias.h from gobject.symbols.
-       (BUILT_SOURCES): Add gobjectalias.h.
-
-       * makegobjectalias.pl: Script to generate gobjectalias.h.
-
-       * *.c: Include gobjectalias.h
-
-2004-09-16  Matthias Clasen  <mclasen@redhat.com>
-
-       Add ABI control using the same technique that is used in GTK+.
-       
-       * gobject.symbols: Master list of symbols.
-
-       * gobject.def: Removed. It is now generated from gobject.symbols.
-
-       * Makefile.am: Generate gobject.def from gobject.symbols.
-       (TESTS): Add abicheck.sh
-       (EXTRA_DIST): Add abicheck.sh
-       (export_symbols): Don't export _-prefixed symbols.
-
-       * gtype.h: 
-       * gtype.c: Move the declarations of the various _init() functions
-       to the header, and mark them as G_GNUC_INTERNAL.
-
-2004-08-25 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.2 ===
-
-2004-08-01 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.1 ===
-
-2004-07-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * gtype.c (g_type_instance_get_private): Catch cases of 
-       forgotten g_type_add_private().  (#148368, Tommi Komulainen) 
-
-2004-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-genmarshal.c (put_marshal_value_getters): Use the 
-       correct fields for enums and flags.  (#145015, Tommi Komulainen) 
-
-Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * === Released 2.5.0 ===
-
-2004-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * gsignal.c (g_signal_handler_is_connected): Don't
-       choke on a zero handler_id.
-
-Tue Jul  6 00:46:43 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gtypemodule.h: 
-       * gtypemodule.c: Fix the declarations of the new 
-       functions to return GType, not void. 
-       Also add missing includes.  (#145508, Morten Welinder)
-
-Tue Jul  6 00:46:43 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gtypemodule.h: 
-       * gtypemodule.c (g_type_module_register_flags): 
-       * gtypemodule.c (g_type_module_register_enum): New 
-       functions to register enum and flags types from a 
-       GTypeModule.  (#145396, Sven Neumann)
-
-Wed Jun 23 12:55:34 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gtype.h (G_DEFINE_TYPE_EXTENDED): Add an initializer for
-       the g_define_type_info.value_table.  (#144678, Mariano 
-       Suárez-Alvarez) 
-
-Tue Jun 22 21:50:47 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gsignal.c: Fix a couple of typos.
-
-Fri Jun 18 22:53:13 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gsourceclosure.h (__G_SOURCECLOSURE_H__): Actually 
-       define the guard after checking for it.  (#108038, 
-       Morten Welinder)
-
-2004-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.4.1 ===
-
-2004-04-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * glib-mkenums.in: Actually convert escape chars in 
-       --vprod.   (#139058, Christophe Saout)
-
-2004-04-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * gparamspecs.c (param_float_init): Correct the initial 
-       minimal value to be -G_MAXFLOAT. The initial values were 
-       inconsistant before, with the initial default being smaller 
-       than the inital minimum.        
-       (param_double_init): Correct the initial minimal value 
-       to be -G_MAXDOUBLE.
-
-Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.4.0 ===
-
-2004-03-10  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Mark the two entries that shouldn't be in the
-       import library (see below) as PRIVATE.
-
-Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.6 ===
-
-2004-03-04  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Another of the glib DLL's functions was erronously
-       present in the stable branch's gobject.def: g_unichar_validate,
-       and nobody noticed until too late. Thus there are applications
-       deployed that expect it to be found in the gobject DLL, and to
-       keep ABI compatibility, we must keep it there forever. Argh.
-
-Mon Mar  1 16:49:51 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.5 ===
-
-2004-03-01  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add g_slist_remove_all back for ABI
-       compatibility. That entry point actually is in the glib DLL, but
-       it was at some time many years ago by mistake added to
-       gobject.def. Thus there presumably are executables out there that
-       expect it to be exported from the gobject DLL. We don't want to
-       break those. (#134813, J. Ali Harlow)
-
-Fri Feb 27 01:49:22 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib-mkenums.in: Support parsing of intializers containing
-       macros with arguments.  (#129717)
-
-2003-02-28  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : added g_strv_get_type
-
-Tue Feb 24 14:09:21 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.3 ===
-
-Fri Feb 20 02:44:54 2004  Tim Janik  <timj@gtk.org>
-
-       * gtype.h (G_DEFINE_TYPE_EXTENDED): added (GTypeFlags) cast needed by C++.
-
-Tue Feb  3 21:24:01 2004  Tim Janik  <timj@gtk.org>
-
-       * gtype.h (_G_TYPE_CVH): provide a short-cut version for
-       this macro in case value->g_type==checked_type for gcc, similar
-       to instance and class check short-cuts. this speeds up code that
-       makes frequent use of G_VALUE_HOLDS_*() (e.g. setters/getters).
-
-       * gtype.c (type_data_last_unref_Wm): don't call class-cache functions
-       for the uncached case, this rendered g_type_class_unref_uncached()
-       useless. pointed out by Stefan Westerfeld.
-
-Sat Jan 24 18:20:13 2004  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: prefixed the parent_class variable defined by G_DEFINE_TYPE()
-       with type_name. removed type_parent_class argument
-       from G_DEFINE_TYPE_EXTENDED().
-
-2004-01-24  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add a missing entry.
-
-Sun Jan 11 15:34:35 2004  Manish Singh  <yosh@gimp.org>
-
-       * gsourceclosure.c: wrap g_io_channel_ref in a function that returns
-       the passed in GIOChannel, so we aren't abusing GBoxedCopyFunc
-       semantics. Fixes bug #131076.
-
-Sat Jan 10 23:55:42 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * glib-mkenums.1: Document the lowercase_name trigraph option.
-
-Sat Jan 10 02:43:20 2004  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: made G_DEFINE_TYPE_INTERNAL() public by renaming it to
-       G_DEFINE_TYPE_EXTENDED() and moving it into the appropriate section.
-
-Fri Jan  9 23:41:00 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * gboxed.h:
-       * gboxed.c (g_strv_get_type): Add a boxed type for nul-terminated
-       string arrays.  (#110528)
-
-Fri Jan  9 15:34:15 2004  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: added convenience macros G_IMPLEMENT_INTERFACE() and
-       G_DEFINE_TYPE() plus variants.
-
-2003-12-30  Murray Cumming  <murrayc@usa.net>
-  
-        * gobject/glib-mkenums.in: Added a lowercase_name option, to be used
-        next to the enum declaration, where the flag option is already used,
-        when it is not possible to guess where to put the underscores in the
-        _get_type() function name, for instance for GNOMEVFSURIHide.
-
-Fri Dec 26 01:34:01 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gtype.c (g_type_class_peek_parent): Don't acquire a read lock 
-       here.  (#106433, Owen Taylor)
-
-Wed Dec 17 23:29:17 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gvalue.c (g_value_peek_pointer): Use g_assert() instead of
-       g_return_val_if_fail(), suggested by Sheldon Simms.
-
-2003-12-13  Hans Breuer  <hans@breuer.org>
-
-       gobject.def : update externals
-
-Sat Nov 29 14:57:20 2003  Tim Janik  <timj@gtk.org>
-
-       * gobject.c: fix g_object_set() within _init() implementations
-       not working for construct-only properties.
-       (g_object_init): make the object enter a construct_objects list.
-       (g_object_newv): remove object from construct_objects after creation.
-       (g_object_set_valist):
-       (g_object_set_property): allow construct-only properties for
-       objects which are in construct_objects.
-
-Thu Nov 27 17:53:52 2003  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]:
-       (g_type_class_peek_static): variant of class_peek() which works for
-       static types only.
-
-       * gobject.c:
-       (g_object_do_class_init): make ::notify a run-action signal.
-       (g_object_newv): use g_type_class_peek_static() by default to
-       speed up common code path (trades two write-locks for one read-lock).
-       (g_object_disconnect):
-       (g_object_connect): allow signal specification words to be
-       seperated by '-'.
-       (g_object_set_valist):
-       (g_object_new_valist): don't leak values.
-       (g_object_get_property): check property for readability.
-       (g_object_set_property): check property for writability and to
-       not be construct-only.
-       (g_object_set_valist): check property to not be construct-only.
-
-Sat Oct 25 01:09:17 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gparam.h (struct _GParamSpecClass): Add /*< private >*/ 
-       marker for documentation purposes.
-
-Tue Oct 21 23:17:06 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * genums.h (struct _GEnumClass): 
-       * genums.h (struct _GFlagsClass): 
-       * gtypemodule.h (struct _GTypeModuleClass):
-       * gtypemodule.h (struct _GTypeModule): Add /*< public >*/ 
-       and /*< private >*/ markers for documentation purposes.
-
-Tue Oct 14 17:40:19 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gparamspecs.[ch]: Add a new GParamSpecOverride type
-       that is a pointer to a different paramspec in a parent
-       class or interface.
-
-       * gparam.[ch]: Add g_paramspec_get_redirect_target()
-       which follows GParamSpecOverride to the real property.
-       Make g_param_spec_pool_list() hand redirections, 
-       properties on interfaces.
-
-       * gobject.[ch] gobjectnotifyqueue.c: Add
-       g_object_interface_install_property,
-       g_object_interface_find_property,
-       g_object_interface_list_properties(). Redirect virtually all
-       publically exposed GParamSpec's to the redirect target if
-       any. (->constructor is the exception.)
-       (#105894)
-
-Mon Oct 20 22:06:12 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject.h (struct  _GObjectClass): Add /*< public >*/
-       and /*< private >*/ markers for documentation purposes.
-
-Sat Oct 18 01:24:14 2003  Matthias Clasen  <maclas@gmx.de>
-
-       * gtypeplugin.h (struct _GTypePluginClass): Add /*< public >*/
-       and /*< private >*/ markers for documentation purposes.
-
-Thu Oct  2 07:37:12 2003  Tim Janik  <timj@gtk.org>
-
-       * gtype.c: fix post class_init interface initialization logic
-       for child types.
-
-Thu Oct  2 01:16:50 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.[ch]: Add g_type_add/remove_interface_check(),
-       which allows inserting a post-interface-initialization
-       check.
-
-       * testgobject.c: Fix a deprecated usage.
-
-Mon Sep 29 10:51:01 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.[ch]: Add g_type_default_interface_ref/peek/unref
-       for accessing the default vtable of an interface.
-
-Fri Sep 26 17:24:53 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.c (g_type_instance_get_private): You can
-       have instance_real_class_bsa be non-NULL, but still 
-       the class not be in the bsa. (Found by Kris Rietveld)
-
-2003-09-15  Matthias Clasen  <maclas@gmx.de>
-
-       * glib-genmarshal.c (complete_out_arg): Don't generate code 
-       using deprecated APIs.  (#122292, Christian Persch)
-
-Fri Sep 12 16:31:40 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gsignal.[ch]: Add g_signal_accumulator_true_handled(), to
-       do TRUE-stops-emit signals. (#80487, Ron Steinke)
-
-       * Makefile.am: Move testoverride.c and testifaceinit.c to
-       tests/gobject.
-
-2003-09-12  Matthias Clasen  <maclas@gmx.de>
-
-       Make the g_value_set_x_take_ownership() functions "official"
-       part of the API (#100948):
-       
-       * gvaluetypes.[hc]: Add g_value_take_string() (synonym to the
-       now deprecated g_value_set_string_take_ownership()).  
-
-       * gparam.[hc]: Add g_value_take_param() (synonym to the
-       now deprecated g_value_set_param_take_ownership()).  
-
-       * gobject.[hc]: Add g_value_take_object() (synonym to the
-       now deprecated g_value_set_object_take_ownership()).  
-
-       * gboxed.[hc]: Add g_value_take_boxed() (synonym to the
-       now deprecated g_value_set_boxed_take_ownership()).  
-
-Tue Sep  2 19:37:21 2003  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: added support for a "default vtable" per interface,
-       that interface vtables are initialized from.
-       the default vtable is initialized and finalized through class_init,
-       class_finalize and class_data from the interfaces GTypeInfo struct.
-       (type_data_last_unref_Wm): unload child plugin before unreffing
-       parent type.
-
-       testifaceinit.c: minor fixups. fixed up base_init() assertions, since
-       with a default vtable, base_init() may be called multiple times.
-       added default initializer to iface1.
-
-Tue Sep  2 14:53:41 2003  Tim Janik  <timj@gtk.org>
-
-       * gobject-query.c (main): fix iterating over fundamental types.
-
-       * gtype.c: applied patch from owen which keeps internal
-       class initialization state to maintain class and interface
-       initialization happen in the order of:
-       1. class' base_init
-       2. interface' base_init
-       =  interfaces added after here are immediately base_init-ialized
-       3. class_init
-       4. Interface_init
-       =  interfaces added here are immediately Interface_init-ialized
-
-Wed Aug 27 19:53:26 2003  Manish Singh  <yosh@gimp.org>
-
-       * gobject.c: removed stray change from previous commit.
-
-Wed Aug 27 01:25:40 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am testifaceinit.c: Add a detailed test case
-       for interface initialization, testing the ability to
-       add interfaces during class initialization and the ordering
-       of interface base_init, class init, and interface_init.
-       (Expected to fail at the moment.)
-
-Mon Aug 25 14:51:46 2003  Manish Singh  <yosh@gimp.org>
-
-       * gtypemodule.c (g_type_module_register_type): fix typo in last
-       commit, cast to GTypeValueTable * to get rid of const warning.
-
-Mon Aug 25 14:16:48 2003  Owen Taylor  <otaylor@redhat.com>
-       * gtypemodule.c (g_type_module_register_type): Clarify
-       docs on the return. Fix a memory leak if a type with a
-       value table is reloaded. (#112439, Daniel Yacob)
-Tue Aug 19 05:21:04 2003  Tim Janik  <timj@gtk.org>
-
-       * testgobject.c (main): check private instance data after
-       initialization.
-
-       * gtype.c: for instances with private data, store the real class
-       pointer in a bsearch array during class initialization.
-       (g_type_instance_get_private): fetch the real class of
-       an instance from the bsearch array if necessary.
-
-Tue Aug 19 04:08:14 2003  Tim Janik  <timj@gtk.org>
-
-       * gvalue.c: adapt to new gbsearcharray.h code.
-       (g_value_register_transform_func): turn transform function
-       replacement into a valid operation.
-
-        * gsignal.c: adapt to new gbsearcharray.h code.
-       
-       * gboxed.c: adapt to new gbsearcharray.h code.
-
-Tue Aug 19 01:31:28 2003  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c: added optimizations to skip NOP signal emissions.
-
-2003-08-08  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject.c (object_set_property): Improve the wording of the warning for invalid 
-       values.  (#117246, Mariano Suarez-Alvarez)
-       
-Wed Aug  6 09:57:14 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * testgobject.c (test_signal_accumulator): Add check
-       for instance private usage within in instance_init.
-       (Currently will fail.)
-
-2003-07-20  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : updated externals
-
-Tue Jul  8 22:29:31 2003  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * gtype.c (type_class_init_Wm): Only access node->data->instance
-       when the node is instantiable.
-
-Tue Jul  8 14:55:27 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.c (type_class_init_Wm): Initialize
-       node->data->instance.private_size here rather than
-       in type_data_make_W() since the class init for the parent
-        class may have changed pnode->data->instance.private_size.
-       (#116921, reported by Soeren Sandmann)
-
-2003-06-18  Matthias Clasen  <maclas@gmx.de>
-
-       * Makefile.am (man_MANS): Removed, these are now installed from
-       docs/reference/gobject.
-
-Fri May 30 14:42:24 2003  Owen Taylor  <otaylor@redhat.com>
-       * gobject.c (g_value_set_object): Order refs/unrefs
-       so setting the same object back is safe. (#112861,
-       Morten Welinder)
-2003-03-24  Sven Neumann  <sven@gimp.org>
-
-       * gtype.c (type_data_finalize_class_ifaces_Wm): removed leftover
-       debugging message (bug #109093).
-
-Thu Feb 27 17:33:19 2003  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.[ch] testgobject.c: Add support for instance-private data. 
-       g_type_class_add_private(), g_type_instance_get_private(),
-       G_TYPE_INSTANCE_GET_PRIVATE(). (#101959, patch partly by
-       Mark McLoughlin, extensive feedback from Tim Janik.)
-
-2003-03-06  Matthias Clasen  <maclas@gmx.de>
-
-       * gsignal.c (g_signal_handlers_block_matched): 
-       (g_signal_handlers_unblock_matched): 
-       (g_signal_handlers_disconnect_matched): Fix 0/FALSE confusion.
-       (#107662, Morten Welinder)
-
-Mon Feb 17 20:59:47 2003  Tim Janik  <timj@gtk.org>
-
-       * gvalue.c (g_value_register_transform_func): don't assert the types
-       passed in to have value tables. this prevents dynamic types from
-       registering transform functions.
-
-Sun Feb  9 13:44:01 2003  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * gboxed.c (boxed_proxy_value_init): remove lookup of unused
-       BoxedNode.
-
-2003-02-07  Matthias Clasen  <maclas@gmx.de>
-
-       * gtypemodule.c: 
-       * gtype.c: 
-       * gsourceclosure.c: 
-       * gparamspecs.c: 
-       * gparam.c: 
-       * gobject.c: 
-       * gsignal.c: Remove all docs from gobject at Tims
-       request. Documentation is only for weenies anyway...    
-
-2003-01-12  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add g_type_interface_prerequisites. Thanks to
-       Kenichi SUTO.
-
-2002-12-18  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject.c: Add docs.
-
-2002-12-18  Michael Natterer  <mitch@gimp.org>
-
-       * gobject/gtype.c (type_data_finalize_class_ifaces_Wm): applied
-       patch I got from Tim Janik for testing which fixes bug #101521.
-       (restart iterating the interface enties each time we finalized one
-       because they might have been modified).
-
-2002-12-17  Matthias Clasen  <maclas@gmx.de>
-
-       * gparam.c (g_param_spec_internal): Remove markup from doc
-       comment, as GObject doesn't use --sgml-mode yet.
-
-2002-12-15  Matthias Clasen  <maclas@gmx.de>
-
-       * gsignal.c (g_signal_new): Typo fix.
-
-       * gparamspecs.c:  
-       * gparam.c (g_param_spec_internal): 
-       * gobject.c (g_object_class_install_property): Add docs.
-
-2002-12-13  Matthias Clasen  <maclas@gmx.de>
-
-       * glib-genmarshal.c, gobject-query.c: Use g_printf() instead of 
-       system printf.  (#99319)
-
-Thu Dec 12 15:00:10 2002  Manish Singh  <yosh@gimp.org>
-
-       * gvaluetransform.c: use G_G[U]INT64_FORMAT unconditionally,
-       since we'll always have it now.
-
-2002-12-07  Matthias Clasen  <maclas@gmx.de>
-
-       * gparam.c (canonalize_key): Rename to canonicalize_key. Adjust
-       all callers.
-
-2002-12-05  Matthias Clasen  <maclas@gmx.de>
-
-       * gsignal.c (g_signal_new): Explain allowed signal names in more
-       detail.
-
-2002-12-04  Matthias Clasen  <maclas@gmx.de>
-
-       * gsignal.h (g_signal_add_emission_hook): 
-       * gtype.h (g_type_interface_get_plugin): Sync parameter names with
-       docs and implementation.
-
-       * gtype.c (g_type_add_interface_dynamic): 
-       (g_type_interface_get_plugin): 
-       (g_type_interface_peek_parent): 
-       (g_type_query): Add docs.
-
-2002-12-03  Matthias Clasen  <maclas@gmx.de>
-
-       * gtype.c (g_type_get_qdata): 
-       (g_type_set_qdata): 
-       (g_type_interface_add_prerequisite): Add docs.
-
-2002-12-02  Matthias Clasen  <maclas@gmx.de>
-
-       * gobject.c (g_signal_connect_object): Add docs.
-
-2002-11-30  Matthias Clasen  <maclas@gmx.de>
-
-       * gsignal.c: More docs.
-
-2002-11-28  Matthias Clasen  <maclas@gmx.de>
-
-       * gtype.c (g_type_interface_prerequisites): Document as 2.2 
-       API addition.
-
-Thu Nov 21 16:05:50 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.c (g_type_check_instance_cast): Allow
-       NULL to be cast to any type. (Frequently requested,
-       most recently #99023, Lars Clausen.)
-
-Mon Nov  4 14:42:36 2002  Owen Taylor  <otaylor@redhat.com>
-       * gtype.c gsignal.c gvaluearray.c: Include config.h
-       so DISABLE_MEMPOOLS actually has an effect.
-       (#96437, Morten Welinder)
-       * gsignal.c: Conditionalize definition of g_handler_ts
-       on DISABLE_MEM_POOLS (#96437)
-       
-2002-10-20  Matthias Clasen  <maclas@gmx.de>
-
-       * gtype.c (g_type_interface_prerequisites): Report only the most
-       specific instantiatable prerequisite, filter out all supertypes of
-       this one (the supertypes are added to the prerequisites array for
-       technical reasons).
-
-2002-10-16  Matthias Clasen  <maclas@gmx.de>
-
-       * glib-mkenums.in: Support for template files.
-       
-       * glib-mkenums.1: Document --template.
-
-2002-10-15  Matthias Clasen  <maclas@gmx.de>
-
-       * gtype.c (g_type_interface_prerequisites): New function to obtain
-       the prerequisites of an interface type.
-
-Sat Oct 12 22:02:32 2002  Tim Janik  <timj@gtk.org>
-
-       * merged up from 2.0:
-
-        * testgobject.c: test creation of new fundamental types.
-
-        * gtype.c (g_type_fundamental_next), (type_node_fundamental_new_W):
-        account for static_fundamental_next storing non-shifted fundamental
-        IDs. this fixes g_type_fundamental_next() not returning a new usable
-        fundamental ID.
-
-Wed Sep 11 16:50:20 2002  Dom Lachowicz <cinamod@hotmail.com>
-
-       * gtype.h: Fix problems with excessive C++ warnings: "ISO C++ forbids nested groups within expressions"
-       
-Fri Jul 26 15:46:36 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gvaluetransform.c: Fix problems with excess ';'
-       by addition of strategic 'extern void glib_dummy_decl (void)'
-       (#83272, David L. Cooper II)
-
-Thu Jul 25 20:34:39 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.c (g_type_interface_add_prerequisite): When
-       adding ancestral prerequisites, add the grandparents,
-       not the siblings. (Problem found by Jon Trowbridge, patch from 
-       Dave Camp, #86879)
-
-2002-07-05  Anders Carlsson  <andersca@gnu.org>
-
-       * gobject.c (g_object_base_class_finalize): Remove debugging
-       message, approved by Tim Janik.
-
-2002-06-11  Anders Carlsson  <andersca@gnu.org>
-
-       * gtypemodule.c: (g_type_module_complete_interface_info):
-       * gtypeplugin.h:
-       Fix argument order. Fixes #82806.
-       
-Mon May 20 15:57:47 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gsignal.c: When printing errors, handle NULL
-       returns from g_type_debug(). (#73559, Laszlo Peter)
-
-       * gtype.c (type_descriptive_name_I): De-inline,
-       since it's only used for debugging.
-
-Tue May  7 15:03:02 2002  Owen Taylor  <otaylor@redhat.com>
-
-        * glib-genmarshal.c: Fix include order for config.h (#71704,
-        Morten Welinder)
-
-2002-05-07  Michael Natterer  <mitch@gimp.org>
-
-       * Makefile.am: use the glib-genmarshal found at configure time
-       if CROSS_COMPILING is set, use the one which was just built
-       otherwise.
-
-Mon May  6 16:06:23 2002  Owen Taylor  <otaylor@redhat.com>
-
-       [ merged from stable ]
-
-       * gobject.c: Remove PROPERTIES_CHANGED enumeration
-       value that wasn't used any more. (#78833, 
-       Matthias Clasen)
-
-       * gboxed.c (g_boxed_copy): Remove check on data[2]
-       that no longer exists. (#80814, Daniel Elstner)
-
-Tue Mar 26 15:21:47 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gsignal.h (g_signal_handlers_*_by_func): Add explicit
-       cast of G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA to
-       GSignalMatchType so that these macros work for C++.
-       (#76454, Damien Sandras)
-
-Mon Mar 25 17:51:05 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-mkenums.in (parse_entries): Fix various bugs and
-       excessive stack usage that crept in the conversion from
-       gtk-mkenums. (#74431)
-
-Mon Mar 25 17:25:57 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.c (g_type_free_instance): Wrap setting freed instance
-       memory to 0xaa in #ifdef G_ENABLE_DEBUG
-
-Thu Mar 21 01:28:14 2002  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc]:
-       * gobject.[hc]: fix extraneous include.
-
-Tue Mar 19 18:57:12 2002  Tim Janik  <timj@gtk.org>
-
-       * gtype.c (check_add_interface_L): applied patch from Matthias Clasen
-       <maclas@gmx.de> to check for prerequisite of interfaces, fixes #74427.
-       fixed mutex recursion in his patch (we can't call g_type_is_a() while
-       holding a read lock).
-
-       * gparam.c (canonalize_key): cleanup.
-
-2002-03-13  Alexander Larsson  <alla@lysator.liu.se>
-
-       * gparam.c (canonalize_key):
-       Function to canonicalize parameter names. Faster than
-       using g_strcanon().
-       (g_param_spec_internal, param_spec_ht_lookup):
-       Use canonalize_key.
-
-2002-03-13  Erwann Chenede  <erwann.chenede@sun.com>
-        * gobject/gclosure.c  
-       * gobject/gobject.c 
-       * gobject/gsignal.c: fixed cast problems with function pointer
-       to avoid warnings (with forte compiler) (#73898)
-       
-2002-03-05  Sven Neumann  <sven@gimp.org>
-
-       * gvaluetransform.c (g_value_transforms_init): don't try to 
-       register undeclared value transform functions if G_GINT64_FORMAT
-       or G_GUINT64_FORMAT are undefined (#73586).
-
-2002-03-03  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.msc.in
-       * makefile.mingw.in: Rename testgruntime to testgobject here, too.
-
-Sun Mar  3 04:11:58 2002  Tim Janik  <timj@gtk.org>
-
-       * gobject.c: placed a comment about not changing CArray until we have
-       g_object_list_watched_closures().
-
-       * gparam.h (struct _GParamSpecClass): added padding.
-
-       * gobjectnotifyqueue.c (struct _GObjectNotifyQueue): abuse
-       g_list_alloc() to allocate GObjectNotifyQueue to et rid
-       of locking issues.
-
-Tue Feb 26 10:51:00 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am (testgobject_LDADD): Rename testgruntime
-       to testgobject.
-
-Sun Feb 24 22:08:29 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gtypemodule.[ch] (g_type_module_add_interface): Make
-       GInterfaceInfo paramter const to correspond to the
-       conventions for the g_type_add_interface() functions.
-       (#72461, Miroslaw Dobrzanski-Neumann)
-
-Sat Feb 23 13:28:56 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gtypeplugin.h (struct _GTypePluginClass): Add some
-       padding to the class.
-
-       * gclosure.h (struct _GClosure): Fix typo in comment.
-
-2002-02-20  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add g_value_set_object_take_ownership and
-       g_value_set_param_take_ownership.
-
-Wed Feb 20 22:55:15 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject.c: Fix implicit conversions between void * and 
-       function pointer (Miroslaw Dobrzanski-Neumann, #71963)
-
-Sun Feb 16 22:08:48 2002  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]:
-       * gparam.[hc]: provide marshaller specific value_set_*_take_ownership()
-       variants.
-
-       * gvalue.h: shrink GValue's data contents to 2 unions.
-
-       * glib-genmarshal.c: fix release and realeas_check hackage by always
-       using _take_ownership() variants. directly access value contents if
-       G_ENABLE_DEBUG is not defined.
-
-       * gobject.h: add padding pointers to the class struct.
-
-Wed Feb 13 17:22:37 2002  Tim Janik  <timj@gtk.org>
-
-       * gtype.c (g_type_value_table_peek): fixed a check for node not being NULL.
-
-Wed Feb 13 06:53:50 2002  Tim Janik  <timj@gtk.org>
-
-       * gparam.c: remove extraneous redefinition of G_PARAM_SPEC_CLASS().
-
-Wed Feb 13 06:29:51 2002  Tim Janik  <timj@gtk.org>
-
-       * gvaluetransform.c: cosmetic cleanups, fixed [u]int64->string
-       conversions.
-
-       * ChangeLog: added entry from owen which went into the wrong
-       file.
-
-Fri Feb  8 23:52:27 2002  Owen Taylor  <otaylor@redhat.com>
-
-        * gobject/gvaluetransform.c: Register transformations for
-        gint64, guint64. (#70780, patch from Andy Wingo)
-
-2002-02-10  Hans Breuer  <hans@breuer.org>
-
-       * gvaluetransform.c : msvc 5.0 can't cast from uint64 to
-       double. Disable respective transform_func than.
-
-       * makefile.msc.in : build test programs
-
-Thu Jan 24 07:39:56 2002  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_signal_connect_object): return gulong instead
-       of guint.
-
-Fri Jan 11 12:26:36 2002  Tim Janik  <timj@gtk.org>
-
-       * gparamspecs.c: fixed param_value_array_values_cmp(),
-       param_value_array_validate() and
-       param_value_array_set_default() to deal with NULL value
-       arrays.
-
-Wed Jan  9 05:23:27 2002  Tim Janik  <timj@gtk.org>
-
-       * gobject.h (G_OBJECT_WARN_INVALID_PROPERTY_ID): cosmetic fix.
-
-2002-01-05  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : use -FImsvc_recommended_pragmas.h
-
-Fri Jan  4 04:36:46 2002  Tim Janik  <timj@gtk.org>
-
-       * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): turn this into a GType,
-       so negating it works on 64bit platforms.
-
-2001-12-21  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add g_signal_get_invocation_hint.
-
-Tue Dec 18 21:39:57 2001  Tim Janik  <timj@gtk.org>
-
-       * testoverride.c: added some assertions to test
-       g_signal_get_invocation_hint().
-
-       * gsignal.[hc]: remove signal_id argument from
-       g_signal_chain_from_overridden(), the parameters are assumed to match
-       the innermost signal currently in emission for this instance.
-       added g_signal_get_invocation_hint() to figure the invocation hint
-       of the innermost signal emission of an instance.
-
-       * gsignal.c (g_signal_list_ids): fix G_BSEARCH_ARRAY_NODES() to
-       access a bsearch array and not a pointer to it (discovered by
-       Sven Neumann).
-
-2001-12-17  Anders Carlsson  <andersca@gnu.org>
-
-       * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): Set the reserved bit
-       to (1 << 0) instead of (1 << 30). 
-
-2001-12-14  James Henstridge  <james@daa.com.au>
-
-       * Makefile.am: add rules to build it.
-
-       * testoverride.c: test program for closure override/chaining.
-
-Thu Dec 13 08:03:17 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c: implemented closure chaining.
-
-2001-12-08  Christopher Blizzard  <blizzard@redhat.com>
-
-       * gsignal.h (g_signal_connect): Explicitly add a cast to the last
-       argument so that the macro will work from C++.
-
-2001-12-06  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in (gobject_OBJECTS): Add gsourceclosure.o.
-
-Mon Nov 26 09:55:12 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: typedef GType to gulong instead of gsize, if possible.
-
-       * gtype.c: fixups for GType being sizeof(long) wide (changed
-       UINT casts).
-       * gsignal.c:
-       * gclosure.c:
-       * gparam.c: likewise.
-
-Sun Nov 25 22:33:32 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: removed enum GTypeFundamentals. use macros
-       to provide the constant fundamental type IDs, so they
-       all return numbers of type GType, and not int.
-       sizeof(GTypeFundamentals) < sizeof(GType) problem reported
-       and fix sugegsted by Havoc.
-
-2001-11-23  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : updated externals
-
-Mon Nov 19 14:35:56 2001  Owen Taylor  <otaylor@redhat.com>
-       * *.h: Improve the detection of invalid includes by moving
-       the test outside the duplicate include guards.
-       * gsourceclosure.c (g_source_set_closure): Doc fix.
-
-Thu Nov 22 03:30:57 2001  Tim Janik  <timj@gtk.org>
-
-       * gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
-       instead of g_type_value_table_peek().
-
-       * gtype.[hc] (type_check_is_value_type_U): speed up check
-       LOCK-less by caching lookups in node->mutatable_has_value_table.
-
-       * gtype.[hc]: removed locks where possible. partly based on
-       patches from owen and alex.
-
-Thu Nov 22 00:26:26 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
-       g_type_fundamental_next() to return next usable fundamental
-       type. use TypeNode pointers as type IDs.
-       
-2001-11-22  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in Makefile.am.
-
-       * gparamspecs.h (GOBJECT_VAR): Can't use GLIB_VAR here, as that
-       makes sense only when building libglib. GOBJECT_VAR is similar for
-       libgobject.
-
-       * gobject.def: Add g_param_spec_types, remove
-       g_type_fundamental_branch_last.
-
-Wed Nov 21 17:23:33 2001  Tim Janik  <timj@gtk.org>
-
-       * gparamspecs.[hc]: put newly created param spec types into a
-       global array.
-
-       * gboxed.[hc]: moved boxed types with _get_type() function here,
-       for: G_TYPE_CLOSURE, G_TYPE_VALUE, G_TYPE_VALUE_ARRAY,
-       G_TYPE_GSTRING.
-
-       * gtype.h: removed fundamental branch APIs and derived enum
-       values. define GType as gsize.
-
-2001-11-19  jacob berkman  <jacob@ximian.com>
-
-       * gobjectnotifyqueue.c: include glib-object.h rather than
-       gobject/gobject.h
-
-2001-11-16  Mark McLoughlin  <mark@skynet.ie>
-
-       * glib-mkenums.in: allow the enums name to not be on the same
-       line as the trailing '}'. (#64714)
-
-2001-11-18  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : remove g_log_domain_gruntime usage
-
-Sat Nov 17 18:14:40 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-genmarshal.c: Exit with non-zero exit status if
-       any errors were encountered.
-
-       * glib-genmarshal.c: Instead of generating gobject/gmarshal.h
-       #include only for the header, generate glib-object.h 
-       #include for both the header and body. (#63834)
-
-       * glib-genmarshal.c: Generate include guards around the 
-       content unless --nostdinc is specified.
-
-2001-11-17  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add g_pointer_type_register_static.
-
-2001-11-15  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Reflect recent changes.
-
-Tue Nov 13 23:18:10 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc]: add API for chaining:
-       g_signal_chain_from_overridden() and g_signal_override_class_closure(),
-       implementation yet to come.
-
-       * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
-       
-       * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
-       get_name and get_blurb, to be consistent with the rest of the
-       g_param_spec_*() functions.
-       
-       * gparamspecs.[hc]: got rid of bogus GClosure paramspec.
-       G_TYPE_CLOSURE is a boxed type already.
-       
-Tue Nov 13 22:16:41 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: API cleanups.
-       remove g_type_check_flags(), provide g_type_test_flags() as
-       a *private* function.
-       s/g_type_check_is_a/g_type_check_class_is_a/, private function.
-       s/g_type_instance_is_a/g_type_check_instance_is_a/, also private.
-
-Tue Nov 13 20:02:47 2001  Tim Janik  <timj@gtk.org>
-
-       * gparam.h: fix standard type macros.
-
-Wed Nov  7 00:56:00 2001  Tim Janik  <timj@gtk.org>
-
-       * gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need
-       to walk the notifier list (puhh, black magic, stay-away-warning ;).
-
-Mon Nov  5 18:59:08 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.h: 
-       * gsignal.h: we need signal.h for G_BREAKPOINT().
-
-Sun Nov  4 14:01:23 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gvaluetypes.[ch]: Add a function g_pointer_type_register_static()
-       to register a type derived from G_TYPE_POINTER.
-
-2001-11-03  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : gobject-query needs gmarshal.[hc,stings]
-       so build it after them. Add gsourceclosure.obj. 
-
-       * gobject.def : removed duplicates, added mising
-
-Mon Oct 29 11:05:15 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-mkenums.in: Generate glib-mkenums from glib-mkenums.in, 
-       substituting in path to perl.  (#63093, Dan Winship)
-
-       * Makefile.am (bin_SCRIPTS): Remove hack to copy glib-mkenums
-       from srcdir.
-
-2001-10-26  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: When running glib-genmarshal, set PATH to
-       include ../glib.
-
-2001-10-23  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: (Win32): If we have built the MSVC import library,
-       install it. Install the gcc import library. Also support
-       uninstall.
-
-2001-10-13  Matthias Clasen  <matthiasc@poet.de>
-
-       * glib-genmarshal.1, glib-mkenums.1: Typo fixes.
-
-Fri Oct 12 18:40:18 2001  Tim Janik  <timj@gtk.org>
-
-       * cosmetic fixups.
-
-Wed Oct 10 17:25:22 2001  Joshua N Pritikin  <vishnu@pobox.com>
-
-       * glib-genmarshal.c gparamspecs.[ch] gtype.[ch] gvalue.h
-       gvaluecollector.h gvaluetypes.[ch]: Fill in missing support for
-       gint64 & guint64 (#59254).
-       
-       * Unconditionalize same (compile with or without G_HAVE_INT64).
-
-Wed Oct 10 15:38:58 2001  Joshua N Pritikin  <vishnu@pobox.com>
-
-       * gparamspecs.h (G_IS_PARAM_SPEC_FLAGS): Fix order of
-       *_PARAM_SPEC_ULONG defines.
-
-Thu Oct  4 01:10:52 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gparamspecs.h: Add missing G_HAVE_GINT64 conditionalization.
-
-Wed Oct  3 16:02:24 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * glib-genmarshal.c gparamspecs.[ch] gvalue.h 
-        gobject/gvaluetypes.[ch]: Add support for G_TYPE_INT64
-       and storing it in GValue (Patch from Mathieu Lacage, #59254.)
-
-2001-10-03  jacob berkman  <jacob@ximian.com>
-
-       * gtype.c (type_iface_retrieve_holder_info_Wm): 
-       (type_iface_vtable_init_Wm): 
-       (type_iface_vtable_finalize_Wm): 
-       (g_type_class_ref): 
-
-       * gobject.c (g_object_get_property): s/retrive/retrieve/
-
-2001-09-25  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: Use new macros for .def file, and check for
-       MS_LIB_AVAILABLE, new rule to build MS import library.
-
-       * makefile.msc.in: Use same DLL and import library names as
-       libtool.
-       
-2001-09-21  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : updated externals
-
-2001-09-19  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.rc.in: Correct InternalName and OriginalFilename to
-       match what we actually produce.
-
-Tue Sep 18 23:09:02 2001  Tim Janik  <timj@gtk.org>
-
-       * gparam.[hc]: rename *nick and *blurb fields to catch
-       direct accesses in third party code.
-       provide g_param_get_nick(), g_param_get_blurb() and
-       g_param_get_name() accessors.
-
-Mon Sep 10 20:31:37 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]: removed extraneous GObject* returns from a
-       couple functions that are very unlikely to be used in nested.
-       changed gpointer->GObject* for a couple return values/arguments.
-       this fixes #50206.
-
-Mon Sep 10 19:27:47 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]:
-       g_type_add_interface*(): implement the ability to add an interface to
-       a type whose parents already conform to this interface.
-       such "overriding" interfaces, when initialized, are not just initialized
-       with 0, but with a copy of the interface they override.
-       g_type_interface_peek_parent(): new function, return the interface
-       that this interface "overrides", if any.
-
-       * testgruntime.c: test new interface stuff.
-
-2001-09-10  Alex Larsson  <alexl@redhat.com>
-
-        * gobject/gboxed.[ch]:
-        * gobject/gsourceclosure.c:
-        Removed is_refcounted and GBoxedInitFunc from
-        g_boxed_type_register_static().
-
-Sat Sep  8 14:13:57 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject/Makefile.am: Move gbsearcharray.[ch] to glib
-       as a private ininstalled header.
-
-Tue Sep  4 22:24:48 2001  Matthias Clasen  <matthiasc@poet.de>
-
-       * gobject.c (g_object_base_class_finalize): typo fix.
-
-Tue Sep  4 01:49:18 2001  Tim Janik  <timj@gtk.org>
-
-       * gsourceclosure.c: make closure_callback_funcs static,
-       added some g_return_if_fail() statements.
-
-Mon Aug 27 14:55:27 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gsourceclosure.[ch] (g_source_set_closure): Implement.
-
-       * gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
-
-2001-08-17  James Henstridge  <james@daa.com.au>
-
-       * gobject.c (WeakRefStack): add an object member to the structure.
-       (weak_refs_notify): pass wstack->object as extra argument to
-       notify functions.
-       (g_object_weak_ref): set wstack->object when initialising
-       WeakRefStack.
-
-       * gobject.h (GWeakNotify): add second argument to prototype which
-       gives the pointer to where the object that is being disposed of
-       was.
-
-Wed Jul 18 19:42:31 2001  Tim Janik  <timj@gtk.org>
-
-        * gtype.h: if __GNUC__ is defined, inline a test for an exact type
-        match for instances and classes in G_TYPE_CHECK_INSTANCE_TYPE() and
-        G_TYPE_CHECK_CLASS_TYPE() before calling g_type_instance_is_a().
-
-Sun Aug 12 02:07:10 2001  Tim Janik  <timj@gtk.org>
-
-       * gvaluearray.[hc]: fix preallocation logic, support DISABLE_MEM_POOLS
-       properly, group value allocations.
-       (g_value_array_new): fix semantic of n_prealloced argument, so it's
-       really just about preallocation space.
-
-2001-07-23  Padraig O'Briain <Padraig.Obriain@Sun.COM>
-       
-       * gobject/gobjectnotifyqueue.c: fix unconditional check of
-       first GParamSpec in g_object_notify_queue_thaw(); to prevent
-       property notification being lost.
-
-2001-08-06  Sven Neumann  <sven@gimp.org>
-
-       * gobject.[ch]: 
-       added new functions g_object_[add|remove]_weak_pointer().
-
-2001-08-01  Sven Neumann  <sven@gimp.org>
-
-       * gsignal.h: added convenience macro g_signal_connect_after().
-
-2001-07-29  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : updated externals
-
-2001-07-20  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : updated externals
-
-       * makefile.msc.in : reflect glib move
-
-Tue Jul 10 18:50:16 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.h (struct _GSignalQuery): fix misplaced comment.
-
-Mon Jul  2 07:17:47 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_object_weak_ref): 
-       (g_object_watch_closure): congrats tim, introducing of-by-one
-       errors like on my very first day of C programming.
-
-Sat Jun 30 11:07:00 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]: provide weak_ref/weak_unref functions,
-       invoked from ->dispose. renamed ->shutdown() to ->dispose(),
-       provide "public" API entry here: g_object_run_dispose(), this
-       fucntion should _only_ be called from object system implementations
-       (e.g. gtkobject.c) if at all.
-
-       * gtypemodule.c (g_type_module_dispose): s/shutdown/dispose/
-
-       * gsignal.h: removed compat aliases.
-
-       * gobject.c (g_object_connect): support data objects.
-       
-Sat Jun 30 13:17:12 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * testgruntime.c (test_object_class_init)
-         gobject.c (g_object_do_class_init): 
-         g_signal_newc() => g_signal_new().
-
-Thu Jun 28 22:49:40 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gtype.[ch] gobject-query.c testgruntime.c: Remove
-       debug flag argument to g_type_init() and add
-       g_type_init_with_debug_flags().
-
-Thu Jun 28 16:42:49 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c (g_signal_lookup): 
-       (g_signal_list_ids): give elaborate warnings about invalid types,
-       non-instantiatable types and unloaded types that we can't operate on.
-
-       * gparam.[hc]: g_param_spec_pool_belongings() ->
-       g_param_spec_pool_list_owned().
-
-       * gsignal.[hc]: renamed:
-       g_signal_newc -> g_signal_new
-       g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
-       g_signal_block_by_func -> g_signal_handlers_block_by_func
-       g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
-       added GConnectType to simplify (..gboolean swapped, gboolean after)
-       args.
-
-       * gobject.[hc]: changed prototypes accordingly.
-
-2001-06-22  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : updated externals
-
-       * gobjectnotifyqueue.c : include <string.h> for memset ()
-
-Thu Jun 21 02:43:10 2001  Tim Janik  <timj@gtk.org>
-
-       * gparamspecs.h: s/long/int/ for default_value in enum and flags
-       pspecs.
-
-Wed Jun 20 03:59:42 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: added debugging variants g_type_name_from_class(),
-       g_type_name_from_instance().
-
-Mon Jun 11 17:07:06 2001  Tim Janik  <timj@gtk.org>
-
-       * gboxed.[hc]: remove left-over usages of an anonymous GBoxed typedef.
-
-       * gobjectnotifyqueue.c: moved property notify queue implementation
-       bits into this function.
-
-       * gparam.[hc]: added g_param_spec_pool_belongings(), completed
-       g_param_spec_pool_list(). added GParameter for _setv() functions.
-
-       * gobject.[hc]: use gobjectnotifyqueue.h implementation now.
-       got rid of properties_changed signal.
-       new functions g_object_newv(), g_object_class_list_properties().
-       removed "properties_changed" signal.
-
-       * gtype.[hc]: added g_type_depth() to figure number of parent
-       types + 1 for a type.
-
-       * gsignal.h: add g_signal_connect() (as per owen's request) and
-       g_signal_connect_swapped().
-
-2001-06-13  Havoc Pennington  <hp@redhat.com>
-
-       * Makefile.am (progs_LDADD): link to ./libgobject-1.3.la
-       since an installed libgobject was somehow being found; think 
-       it's a libtool bug, but this workaround should do for now.
-
-2001-06-12  Havoc Pennington  <hp@redhat.com>
-
-       * Makefile.am (glib-mkenums): don't put $(srcdir)/glib-mkenums in
-       bin_SCRIPTS, that breaks make install. Instead put 'glib-mkenums'
-       in bin_SCRIPTS and cp it into builddir
-
-Thu May 31 17:56:47 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject-query.c: Fix mispelling in help output.
-       (#53952, Skip Montanaro)
-
-2001-05-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am (EXTRA_DIST): Really distribute glib-mkenums, now
-       that bin_SCRIPTS doesn't seem to care about doing so anymore.
-
-Mon May 28 06:51:24 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c (signal_emit_unlocked_R): fixed bad faux-pass, forgot
-       to release signal lock when restarting emissions.
-
-Sun May 27 04:52:28 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc] (g_signal_stop_emission_by_name): added variant
-       to stop signal emissions through a detailed_signal string.
-
-       * gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
-       the fact that g_value_* functions may cause signal emissons by
-       unlocking the global signal system lock around g_value_* functions.
-       (signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
-       that this functions acquires the lock on its own now.
-
-2001-05-24  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : changed depndencies to build glib-genmarshal
-       first and statically linked with glib, which makes it independent
-       from the installed glib version. Added new object files to build.
-
-       * gobject.def : updated
-
-Thu May 24 08:52:02 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject.[ch] (g_value_set_object): gpointer, not
-       gpointer *.
-
-2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am (bin_SCRIPTS): made 'make distcheck' happy.
-
-       * gobject.def: Removed g_param_spec_stringc.
-
-Tue May 22 02:46:13 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_value_set_object): make g_value_set_object()
-       take a gpointer v_object so people don't need to G_OBJECT()
-       cast NULL pointers (C code convenience).
-
-Mon May 14 01:49:01 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc] (g_signal_handler_is_connected): new function
-       to check whether a handler is still connected to an instance
-       (by handler id).
-
-Thu May 10 14:00:48 2001  Tim Janik  <timj@gtk.org>
-
-       * gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
-       evidence of public need.
-
-       * gsignal.h: added g_signal_disconnect_by_func(),
-       g_signal_block_by_func() and g_signal_unblock_by_func() convenience
-       macros as per owen's request.
-
-       * gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
-       to size of longs and pointers.
-
-2001-05-05  James Henstridge  <james@daa.com.au>
-
-       * Makefile.am: glib-mkenums is not a compiled program, so shouldn't
-       be in the bin_PROGRAMS primary.  Put it in bin_SCRIPTS instead, and
-       removed the glib_mkenums_SOURCES var.
-
-Thu May  3 06:10:23 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject.c (g_object_set_[q]data_full): Make types of ternary
-       operator correspond. (Fixes compilation errors with Sun CC,
-       #52230)
-
-Mon Apr 30 20:03:56 2001  Tim Janik  <timj@gtk.org>
-
-       * glib-mkenums (usage): removed \v escaping, newer perl versions don't
-       support this, and it'S probably useless anyways.
-
-Sat Apr 28 23:39:42 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc]: made signal handler and emission hook ids gulongs.
-       (signal_handlers_foreach_matched_R): only invoke callback for handlers
-       that are not disconnected (id>0).
-       (signal_emit_R): prevent invocation of signal handlers during the
-       emission they were connected within.
-       
-       * glib-mkenums: publically installed perl-script to parse C code
-       enums and generate descriptions thereof.
-       * glib-mkenums.1: assorted man page.
-       
-2001-04-19  Havoc Pennington  <hp@redhat.com>
-
-       * gobject.c (g_object_get_valist): We were returning junk memory
-       here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
-       passed to G_VALUE_LCOPY) and then we freed the GValue immediately
-       after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
-       G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
-
-Wed Apr 18 09:46:56 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject.c gsignal.c: Change C++ comments for FIXME's to
-       C comments. (Patch from Andres Salomon)
-
-2001-04-14  Hans Breuer  <hans@breuer.org>
-
-       * gobject.def : updated
-
-Mon Apr  9 18:56:15 2001  Tim Janik  <timj@gtk.org>
-
-       * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
-       we're valid (about to actually do marshalling).
-
-Tue Apr  3 20:23:24 2001  Tim Janik  <timj@gtk.org>
-
-       * NEWS: updates.
-
-Tue Apr  3 14:06:00 2001  Tim Janik  <timj@gtk.org>
-
-       * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
-       owner_type. the pspecs are not referenced, so the caller is
-       supposed to have some idea about owner_type not randomly
-       nuking his pspec's. if this is going to provide problems in
-       the future, we can either auto-ref the pspecs, or add a
-       _foreach variant, though the latter would have to invoke
-       the callback while pspec's mutex is acquired, so i just
-       went for the _list variant for now.
-
-       * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
-
-Sat Mar 31 23:55:58 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.h:
-       * gparamspecs.[hc]: applied patch from owen to implement
-       GParamSpecUnichar.
-
-Fri Mar 30 07:34:02 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.c (type_iface_retrive_holder_info_Wm): 
-       * gtypeplugin.c (g_type_plugin_complete_interface_info): 
-       * gtypemodule.c (g_type_module_complete_interface_info): 
-       change order of instance_type and interface_type so they match
-       the g_type_add_interface_*() API.
-
-       * gsignal.c (g_signal_emit_valist): always assign C return value
-       location, people depending on unaltered return values after emissions
-       that had no handlers to run need to use g_signal_emitv().
-
-       * gtype.[hc] (g_type_query): new function to allow querying of
-       class and object size (semantics like g_signal_query()).
-       currently the implementation is better held conservative so as to
-       only support types that are classed and static.
-
-2001-03-29  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Updates.
-
-Wed Mar 28 17:04:06 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (object_queue_property): only queue readable properties
-       for notification changes.
-
-Thu Mar 22 13:36:50 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
-
-2001-03-21  Martin Baulig  <baulig@suse.de>
-
-       * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
-       argument.
-
-2001-03-18  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Correct some renamed functions.
-
-Sat Mar 17 23:18:36 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_object_get_property): minor bug-fix.
-
-       * gbsearcharray.[hc]: provide a macro for static initialization and
-       functions g_bsearch_array_new() and g_bsearch_array_destroy() for
-       dynamic allocations.
-       
-       * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
-       
-       * gclosure.[hc]: naming corrections.
-
-Fri Mar  9 16:42:08 2001  Tim Janik  <timj@gtk.org>
-
-       * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
-       a public function (was static in gobject.c before). it's a bit odd
-       to have that function here, especially since it requires extra includes,
-       but then it doesn't very well fit somewhere else either.
-
-       * gparamspecs.c: added default/max/min checks to param spec creation
-       functions.
-
-2001-03-10  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add a couple of missing entries.
-
-       * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
-
-Fri Mar  9 14:57:17 2001  Tim Janik  <timj@gtk.org>
-
-       * testgruntime.c: test program. covers run first/last/cleanup signal
-       handlers, return value accumulator, signal string returns, and
-       interface types in signal arguments.
-
-       * gtype.c (g_type_value_table_peek): for interface types without
-       value table, try looking up a value table from an instantiatable
-       prerequisite type (this is safe as an interface may only have
-       one instantiatable prerequisiste).
-       (type_check_is_value_type_U): same here.
-
-       * gsignal.c (g_signal_newv): assert that return types never have
-       G_SIGNAL_TYPE_STATIC_SCOPE set.
-       (g_signal_newc): only create class closure if the class_offset is not
-       0.
-
-Fri Mar  9 10:14:00 2001  Tim Janik  <timj@gtk.org>
-
-       * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
-       for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
-       that wouldn't allow interface types.
-
-       * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
-       with bad implications and an off-by-one error.
-
-Thu Mar  8 16:34:22 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * gvaluetransform.c: Include <string.h> for memcpy.
-
-       * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
-       and ANSI-illegal ## token pasting.
-
-Thu Mar  8 18:11:52 2001  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c: eek, fixed old hook detail storage code.
-
-Thu Mar  8 16:35:48 2001  Tim Janik  <timj@gtk.org>
-
-       * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
-
-       * gsignal.[hc]: fixed accumulator invocation, implemented emission
-       hooks. and no, neither of these callbacks are called via a closure,
-       language bindings can wrap the accumulator and emission hook
-       interface, they already get parameters marshalled into a GValue array.
-       (g_signal_connect): removed this function as its C specific, doesn't
-       cover the swapped argument, is too close to its broken original
-       gtk_signal_connect() and creates demand for _swapped, _after and
-       _swapped_after variants <brrr>.
-       (g_signal_connectc): convenience macro to connect a C handler
-       func with data, like the old g_signal_connect() plus swapped
-       argument.
-
-       * gtype.h:
-       * gboxed.c: added G_TYPE_VALUE boxed type.
-
-Wed Mar  7 19:02:51 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
-       to an ancestor of a child that already conforms to this interface.
-       currently we spew a warning here, should we be silent?
-       (g_type_interface_add_prerequisite): new function to add a prerequisite
-       type to an interface, that must succeed an instance is_a prerequisite
-       type check before the interface can be added to an instance. the
-       prerequisite types are also suuported in is_a checks of the interface.
-       (g_type_instance_is_a):
-       (g_type_check_instance_cast):
-       (g_type_check_instance): cleanups and optimizations.
-       (g_type_class_is_a):
-       (g_type_check_class_cast): same, also prevented these from accepting
-       interface types, as class structures don't nest interfaces.
-
-2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am: Avoid rebuilding everything everytime.
-
-Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
-
-       * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
-       to contain an optional init function and a hint at whether the
-       boxed structure uses ref counting internally.
-       added g_value_set_boxed_take_ownership().
-       made G_TYPE_BOXED an abstract value type.
-
-       * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
-       types.
-
-       * glib-genmarshal.c: argument type changes, preparation for third-party
-       arg specification.
-
-       * gobject.[hc]: cleaned up get/set property code.
-       added g_strdup_value_contents() to improve warnings.
-
-       * gparam.[hc]: added g_param_value_convert(), taking over responsibility
-       of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
-       validation alterations may be valid a part of the property setting
-       process.
-
-       * gparamspecs.[hc]: made value comparisons stable (for sort applications).
-       added GParamSpecValueArray, a param spec for value arrays and
-       GParamSpecClosure. nuked the value exchange functions and
-       GParamSpecCCallback.
-
-       * gtype.[hc]: catch unintialized usages of the type system with
-       g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
-       to flag types that introduce a value table, but can't be used for
-       g_value_init(). cleaned up reserved type ids.
-
-       * gvalue.[hc]: code cleanups and saner checking.
-       nuked the value exchange API. implemented value transformations, we
-       can't really "convert" values, rather transforms are an anylogy to
-       C casts, real conversions need a param spec for validation, which is
-       why g_param_value_convert() does real conversions now.
-
-       * gvaluearray.[hc]: new files that implement a GValueArray, a struct
-       that can hold inhomogeneous arrays of value (to that extend that it
-       also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
-       this is exposed to the type system as a boxed type.
-
-       * gvaluetransform.c: new file implementing most of the former value
-       exchange functions as single-sided transformations.
-
-       * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
-       g_value_set_string_take_ownership().
-
-       * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
-
-       * *.[hc]: many fixes and cleanups.
-
-       * many warning improvements.
-
-Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
-       into G_VALUE_LCOPY(), this needs proper documenting.
-
-       * gparam.c: fixed G_PARAM_USER_MASK.
-
-       * gtype.c (type_data_make_W): 
-       (type_data_last_unref_Wm): fixed invalid memory freeing.
-
-       * gobject.c (g_object_last_unref): destroy signal handlers associated
-       with object, right before finalization.
-
-       * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
-       that don't actually support details.
-
-       * gobject.[hc]: got rid of property trailers. nuked GObject
-       properties "data" and the "signal" variants.
-       (g_object_connect): new convenience function to do multiple
-       signal connections at once.
-       (g_object_disconnect): likewise, for disconnections.
-
-       * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
-
-       * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
-       as private (the latter got renamed from g_value_get_as_pointer()).
-
-2001-02-21  Tor Lillqvist  <tml@iki.fi>
-
-       * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
-
-       * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
-       libtool with -no-undefined for Win32 and Cygwin.
-
-Wed Feb 21 18:31:46 2001  Jonathan Blandford  <jrb@redhat.com>
-
-       * gsignal.h (g_signal_connect): Add g_signal_connect define to
-       make porting from gtk_signal_connect easy.
-
-       * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
-       (instance) instead of node->itype when initting the value.
-
-2001-02-17  Havoc Pennington  <hp@pobox.com>
-
-        Applied patch from Soeren Sandmann:
-       
-       * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
-
-       * gtype.c (g_type_name): G_CONST_RETURN
-
-       * gsignal.c (g_signal_name): G_CONST_RETURN
-
-       * gobject-query.c (main): const fix
-
-Sat Feb 17 07:58:46 2001  Tim Janik  <timj@gtk.org>
-
-       * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
-       G_ENUM_CLASS_TYPE() macro.
-
-Sat Feb 17 04:55:35 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
-       lcopy_value() in the GTypeValueTable. the collect functions are now
-       called only once per value, collect_format/lcopy_format are strings
-       that enlist all necessary GTypeCValues to be varargs-collected.
-
-       * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
-       a value shouldn't copy its contents.
-
-       * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
-       macros to carry an additional argument (flags) that can be used
-       to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
-
-       * *.c: adapted collect_value() and lcopy_value() functions to the new
-       prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
-
-       * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
-       be passed along (ORed) with the parameter types, indicating that the
-       emission arguments are to be considered static for the scope of the
-       emission. should be used with care and only if the caller knows that
-       a parameter cannot be destroyed/freed from signal handlers connected
-       to an emission.
-
-Fri Feb 16 07:10:44 2001  Tim Janik  <timj@gtk.org>
-
-       * gclosure.c:
-       (g_closure_ref):
-       (g_closure_sink): make closure sinking explicit.
-
-       * gsignal.c:
-       (g_signal_connect_data): 
-       (g_signal_connect_closure): 
-       (g_signal_connect_closure_by_id): 
-       (g_signal_newv): perform explicit closure sinking.
-
-Thu Feb  8 00:31:45 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
-
-2001-02-04  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Remove glib_debug_objects.
-
-Sun Feb  4 07:30:53 2001  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: changed g_type_init() to take debugging flags
-       initially, a combination of G_TYPE_DEBUG_OBJECTS and
-       G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
-       here, but basically g_type_int() serves as initialization
-       fucntion for all of GType, GObject, GSignal, so what the heck.
-
-       * gobject.c: special case debugging code properly.
-       changed glib_trap_object_ref to g_trap_object_ref.
-
-       * gsignal.c: add signal emission debugging abilities, along with
-       a new trap object g_trap_instance_signals.
-
-2001-02-04  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (progs_LDADD): Change order of libs to libgobject
-       first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
-
-Wed Jan 31 06:19:49 2001  Tim Janik  <timj@gtk.org>
-
-       * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
-
-       * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
-       number that's supposed to be left untouched (preserved mainly
-       for the signal code).
-
-       * *.c: added thread safety code, based on an old patch from sebastian.
-       the remaining thread safety issues are now datalists on pspecs (to be
-       solved im gdataset.c) and gvalue.c where locking concerns value exchange
-       functionality only, and that's soon to be revised.
-
-2001-01-27  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.msc.in: Don't try to compile gmarshal.c on its own.
-
-2001-01-24    <alexl@redhat.com>
-
-       * gclosure.c (g_closure_unref):
-       Don't leak closure->notifiers.
-
-2001-01-05  Havoc Pennington  <hp@redhat.com>
-
-       * gparamspecs.c (g_param_spec_enum): set the value_type in the
-       param spec; closes bug 40210
-       (g_param_spec_flags): ditto for flags
-
-2001-01-03  Alexander Larsson  <alexl@redhat.com>
-
-       * gobject.c:
-       Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
-
-Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
-
-       * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
-       fucntionality if DISABLE_MEM_POOLS is defined.
-
-       * gtype.c: honour DISABLE_MEM_POOLS.
-
-       * gsignal.c (g_signal_init): flag signal key bsearch array with
-       G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
-       DISABLE_MEM_POOLS.
-
-       * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
-                                                      G_PARAM_WRITABLE).
-
-2000-12-15  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Update.
-
-2000-12-15  Havoc Pennington  <hp@pobox.com>
-
-       * gobject.c (g_object_do_class_init): use g_signal_newc
-
-       * gsignal.c (g_signal_newc): convenience function for signals
-       created from C
-       (g_signal_new_valist): added
-       (g_signal_new): removed
-
-Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
-
-       * gparam.[hc]: add an instance member value_type so the default
-       value of the pspec class can be overridden.
-
-2000-12-14  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: Update, include parts from Makefile.am to
-       build gmarshal.[ch]. Some day, we won't need these separate
-       makefiles for Win32 compilation. I hope.
-
-       * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
-       here, it would require Unixish tools. MSVC users building from CVS
-       sources are out of luck.
-       
-       * gobject.def: Update.
-
-Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
-
-       * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
-
-       * gobject.[hc]: minor fixes.
-
-Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am: _never_ touch oldest-source-stamp.
-       
-       * gobject.[hc]: construct property handling fixes/improvements.
-       fixed trailer handling in get/set property.
-       
-       * gparam.[hc]: implement param spec pool, got rid of param spec
-       hashtable. the most prominent change is that e deal with type
-       prefixes here.
-       
-2000-12-12  Elliot Lee  <sopwith@redhat.com>
-
-       * Makefile.am:
-         . You have to 'touch oldest-source-stamp' if you want to avoid having
-         the Makefile constantly rebuild itself.
-         . Fix marshaller generation rules to work with srcdir != builddir
-           (there were issues with trying to run "./glib-genmarshal", etc.)
-
-Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
-
-       * gboxed.c: fixed dealing with collection/lcopy of NULL values.
-       
-       * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
-       convenience macro.
-       
-       * Makefile.am: cleanups, marshaller generation rules.
-       
-       * gmarshal.[hc]: new files with GRuntime standard marshallers.
-       
-       * glib-genmarshal.c: fix log domain, support gruntime standard 
-       marshallers, suport G_TYPE_PARAM, come with extern "C" and
-       #include gmarshal.h.
-       
-       * glib-genmarshal.1: reflect glib-genmarshal.c updates.
-       
-       * gobject.[hc]: implement object constructor. rework parameter
-       changed notification queueing, we support queue freezes now and
-       don't dispatch from an idle handler anymore.
-       parameter->property rename hassle.
-       implemented ::properties_changed and ::notify::* signals for
-       property change notification (the later supports property names
-       as details). added signal connection and named data properties.
-       (g_signal_connect_object): new function to setup while_alive
-       connections.
-       (g_object_class_install_property): sink properties now, since they
-       are initially floating.
-       (g_object_steal_data):
-       (g_object_set_data_full):
-       (g_object_set_data):
-       (g_object_get_data): set/get data by using g_datalist_*() functions
-       directly.
-       (g_object_queue_param_changed): nuked.
-       (g_object_freeze_notify): start queueing of property changes (freeze/
-       thaw calls stack).
-       (g_object_notify): announce changes of a certain property directly.
-       (g_object_thaw_notify): process queue of property changes, therefore
-       emitting GObject::notify::detail with detail being the changed
-       properties names.
-       (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
-       G_WARN_INVALID_PARAM_ID().
-       
-       * gparam.[hc]: param specs are now initially floating and need to be
-       sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
-       added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
-       required by GObjectClass.constructor().
-       
-       * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
-       GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
-       and G_TYPE_CCALLBACK respectively.
-       
-       * gsignal.[hc]: cleanups.
-       (signal_id_lookup): after walking the anchestry, try interfaces as well.
-       (g_signal_new): new function to create signals from varargs type list.
-       (g_signal_connect_closure): closure connection variant that works from
-       signal name+detail.
-       (g_signal_connect_data): c handler connection variant that works from
-       signal name+detail.
-       (g_signal_emit_valist): emit signal for an instance with paraneters
-       collected from a va_list.
-       (g_signal_emit): emit signal, taking parameters from varargs list.
-       (g_signal_emit_by_name): same as g_signal_emit, working from
-       signal name+detail.
-       (signal_emit_R): return whether return_value needs to be altered.
-       
-       * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
-       the points that need to reflect the upcoming rename.
-       melt g_type_conforms_to() functionality into g_type_is_a(), as that
-       is what we really want (liskov substitution principle).
-       assorted changes to other files due to conforms_to->is_a.
-
-       * gvalue.[hc]: implemented g_value_set_instance() that sets a value
-       from an instantiatable type via the value_table's collect_value()
-       function (based on an idea from James Henstridge <james@daa.com.au>).
-       cleanups/fixes.
-       
-       * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
-
-Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
-       NULL nodes if C handlers are searched for specific signals.
-
-2000-11-28  Elliot Lee  <sopwith@redhat.com>
-
-       * gsignal.c: Fix warnings about possible use of uninitialized
-       variables, and fix logic that would leave 'node' unset in cases
-       that it might be used in.
-
-       * glib-genmarshal.c: Fix warning about printf format.
-
-2000-11-28  Tor Lillqvist  <tml@iki.fi>
-
-       * gboxed.c: Include <string.h> for memset ().
-
-2000-11-22  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Update.
-
-2000-11-20  Havoc Pennington  <hp@redhat.com>
-
-       * gobject.c (g_object_get_data)
-       (g_object_set_data)
-       (g_object_set_data_full)
-       (g_object_steal_data): More convenient data-setting functions
-
-Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gtypemodule.c (g_type_module_use): If loading the
-       module fails, don't increment the use count.
-
-Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
-       s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
-       Zeeman <maas@wanadoo.nl>.
-
-Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
-
-2000-11-11  Tor Lillqvist  <tml@iki.fi>
-
-       * gtypemodule.c: Include stdlib.h for exit().
-
-       * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
-
-       * gobject.def: Add missing functions.
-
-Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am gtypemodule.[ch]: New basic implementation of
-       GTypePlugin interface as a GObject. Dynamically loaded modules can
-       register any number of types and interface on the module.
-
-Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gsignal.c (handlers_find): When appending handlers and
-       not matching on signal_id, use hlist->signal_id instead of 
-       signal_id. Having the correct signal_id when unreffing
-       the handlers makes things work a lot better.
-
-2000-11-05  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
-
-       * gobject.def: Update.
-
-Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c:
-       fixed a bag full of subtle bugs of immensive screw-up potential in
-       handlers_find(), luckily no one found out about them yet ;)
-       fixed signal_handlers_foreach_matched_R() so it operates on an
-       initial handler list snapshot provided by handlers_find() to work
-       around general reentrancy problems and to avoid multiple callback()
-       invocations on the same handlers.
-       this code is now officially 80% bug free (10% remaining for interface
-       types, and 10% remaining for destroyed signals ;)
-       
-Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
-
-       * gtypeplugin.[hc]: new files holding a GTypePlugin interface
-       implementation that provides the API required by GType to deal with
-       dynamically loadable types.
-
-       * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
-
-Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc]: prefix internal functions with '_'. renamed
-       g_signal_connect_closure() to g_signal_connect_closure_by_id().
-       added g_signal_parse_name() to retrive signal_id and detail quark
-       from a signal name (internal).
-
-Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_object_base_class_finalize): destroy all signals that
-       the finalized obejct type introduced.
-
-       * gsignal.c (g_signals_destroy): don't require itype to have
-       signals.
-
-       * gobject.c (g_object_do_finalize): make sure all signal handlers
-       are destroyed.
-
-       * gsignal.[hc]:
-       (g_signal_handler_find): only match on non-0 masks.
-       (g_signal_handlers_block_matched):
-       (g_signal_handlers_unblock_matched):
-       (g_signal_handlers_disconnect_matched): new functions to block/unblock
-       or disconnect handlers in groups.
-
-2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
-       made both functions return gboolean just for the little extra
-       standard conformance now that GEqualFunc is introduced.
-
-Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
-
-       * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
-       added, the doc system would ignore it anyways (for some reason not
-       aparent to me).
-
-Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
-       added required mutex locks.
-
-Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gsignal.c (g_type_signals): Fix problem where signals
-       with "_" in them appeared twice in the result array.
-
-Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gsignal.h: Add g_type_signals() - a function to list
-       all signals for a given type.
-
-Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
-
-       * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
-       for post_marshal guard which was off at 0.
-
-Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]: doh, fix argument order in for
-       g_cclosure_new_object_swap and g_cclosure_new_object.
-
-2000-10-28  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
-
-       * glib-genmarshal.c: Conditionalise include of unistd.h.
-       Include <io.h> on Win32.
-
-       * gobject.def: Add some missing entry points.
-
-Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
-
-       * gsignal.[hc]: publically define GSignalInvocationHint structure
-       that gets passed in to closure invocations. added signal details.
-       renamed GSignalType to GSignalFlags to comply with conventions.
-       quite some cleanups and minor fixes. avoid uneccessary handler list
-       walks upon invocation of after handlers. relookup handler list for
-       restarted emissions. preliminary abort normal handler invocation if
-       after handler is encountered.
-
-       * glib-genmarshal.c:
-       * gclosure.[hc]: moved invocation_hint to the end of the
-       g_closure_invoke() arguments as sugegsted by kenelson.
-       also made it a gpointer to be more generic. the invocation_hint
-       is a caller specific thing that can be used to pass additional
-       data in to closure invocations as documented with the caller
-       invoking the closure.
-
-Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject.c (g_object_watch_closure): fixed realloc bug, reported
-       by havoc.
-
-       * gsignal.c (g_signal_newv): fixed deadlock scenarion where
-       g_signal_lookup() would be called with the signal lock being
-       held. reported by james henstridge.
-
-       * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
-       reported by owen.
-
-2000-10-26  Tor Lillqvist  <tml@iki.fi>
-
-       * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
-       arithmetic on void pointer, label without statement following.
-
-       * gtype.c (type_node_fundamental_info): Don't apply unary minus to
-       result of sizeof operator, it can be unsigned. Cast first to
-       gssize.
-
-       * gobject.def: Add new functions.
-
-       * makefile.{mingw,msc}.in: Add new objects.
-
-2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
-       prevents 'make dist' from working.
-
-Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
-       casts from void * since this will get included from C++ too
-       at times.
-       
-Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
-
-       * gvaluetypes.[hc]: added g_value_set_static_string().
-
-       * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
-
-Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
-
-       * gtype.c (g_type_free_instance): for the moment, freeing object
-       structures will fill their memory portion with 0xAA. there's a
-       FIXME there, remove this line at a later point.
-
-Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
-
-       * glib-genmarshal.1:
-       * glib-genmarshal.c: added publically installed marshaller generator.
-
-       * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
-       interface VTable from instances.
-
-Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
-
-       * gobject.[hc]: new functions for closure maintenance:
-       (g_object_watch_closure): maintain validity of the object and
-       the closure for objects that are used as data part of a closure.
-       (g_cclosure_new_object): convenience function to create C closures
-       that have an object as data argument.
-       (g_closure_new_object): convenience function to create closures
-       that have an object as data argument.
-
-       * gclosure.[hc]: implementation of GClosure mechanism.
-       a closure is basically an encapsulation of a callback function
-       and its environment. ideally, most places supporting callback
-       functions will simply take a GClosure* pointer and thus unify
-       callback environments wrg destroy notification etc.
-       GClosure provides destroy notifiers for arbitrary data pointers,
-       reference counting, invalidation notification (it can be invalidated
-       which is merely a deactivate state) and a marshallinbg abstraction.
-       GCClosure is also provided in these files, they present a specialized
-       GClosure implementation for C language callbacks.
-
-       * genum.c: macro cleanups.
-       
-       * gboxed.[hc]: new files, for boxed type abstraction.
-       (g_boxed_copy): copy a boxed structure
-       (g_boxed_free): free a boxed structure
-       (g_value_set_boxed):
-       (g_value_get_boxed): standard GValue functions for boxed types
-       (g_boxed_type_register_static): convenience function for easy
-       introduction of new G_TYPE_BOXED derivatives.
-
-       * gparam.[hc]: introduced g_param_type_register_static(), a short hand
-       for creation of new GParamSpec derived types.
-
-       * gtype.[hc]: many fixes, introduced ability to flag individual
-       type nodes as ABSTRACT upon registration, added value_peek_pointer()
-       to the value table to peek at GValue contents as a pointer for types
-       that support this. fixed up GValue checks.
-
-       * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
-       to peek at the value contents as pointer.
-
-       * *.[hc]: adaptions to type macro fixes and changes in the type
-       registration API.
-
-       * many const corrections over the place.
-
-Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
-
-       * gtype.c (g_type_conforms_to): this function basically behaves like
-       and is_a check, except that it _additionally_ features interfaces
-       for instantiatable types. enforce this in the second branch as well
-       (`type' conforms_to `type') even if `type' is not an interface type.
-
-Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
-
-       * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
-
-       * gtype.[hc]:
-       * gobject.c:
-       * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
-       suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
-       and G_TYPE_POINTER.
-
-Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
-
-       * gbsearcharray.[hc]: long standing needed generic implementation
-       of a binary searchable, sorted and dynamically sized array.
-
-2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * Makefile.am (BUILT_EXTRA_DIST): New variable.
-       (dist-hook): Handle $(BUILT_EXTRA_DIST).
-       (*): Remove traces of @STRIP_{BEGIN,END}@.
-       
-2000-09-29  Martin Baulig  <baulig@suse.de>
-       
-       Several minor ANSI C fixes.
-
-       Added missing casts:
-       * gtype.c (type_class_init): 
-       `(gpointer) bnode->data->class.class_init_base'
-       in call to g_slist_prepend() and
-       'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
-
-       * gobject.c: Put text following #endif into comments.
-
-2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am: Remove empty SUBDIRS line, as that prevents make
-       dist from working.
-
-Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject.c (g_object_last_unref): Move call to
-       g_type_free_instance() here from g_object_do_finalize,
-       since g_type_free_instance() can unload the object's
-       implementation.
-
-2000-07-27  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.c: No, don't mark glib_debug_objects for export here,
-       it's handled specially in gtktypeutils.c.
-
-       * gobject.def: Export g_type_fundamental_last (the function).
-
-2000-07-26  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def
-       * gobject.c: Mark glib_debug_objects for export/import as it is
-       used by GTK+.
-
-Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
-       that extern variable clutter and avoiding further problems with thread
-       safety.
-
-2000-07-19  Tor Lillqvist  <tml@iki.fi>
-
-       * gparam.h
-       * gvalue.h
-       * gparam.c
-       * gtype.c: Shut up Sun's picky compiler.
-
-2000-07-14  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Add g_type_get_plugin.
-
-Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
-
-       * gparam.c (g_param_value_defaults): default initialize the temporary
-       default value, instead of nuking the caller's value contents.
-
-2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
-
-Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
-
-2000-07-10  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
-       to guard inclusion of <unistd.h>.
-
-       * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
-       variable for export. Call the macro GOBJECT_VAR.
-
-       * gtype.c: Declare _g_type_fundamental_last for export here, too.
-       (type_node_any_new): Use only constant expressions for sizeof
-       operator (for instance MSVC requires this).
-
-       * makefile.mingw.in: Define GOBJECT_COMPILATION.
-
-Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * genums.c: Move string.h include into the .c file
-       instead of where it was in the .h file by mistake.
-
-Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am (EXTRA_DIST): dist fixes.
-
-       * gobject.c: Add a global variable glib_debug_objects
-       (not in header file) to control object tracing.
-
-2000-07-01  Tor Lillqvist  <tml@iki.fi>
-
-       * gobject.def: Update added and renamed entry points.
-
-       * makefile.mingw.in: Add gvaluetypes.o.
-
-Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * gobject.c:include string.h for memset
-       * genums.h: include string.h for strcpy
-       * gvalue.c: include string.h for memset, memcpy.
-
-Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
-
-       * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
-       G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
-       G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
-       added a GTypeValueTable* pointer to GTypeInfo structure for types
-       to implement GValue handling functions.
-       GTypeValueTable contains the following members:
-         value_init(): initialize a GValue structure.
-         value_free(): free GValue structure contents (optional).
-         value_copy(): copy one GValue contents to another GValue structure of
-         collect_type: varargs collection type for the first variable argument
-         to be collected by collect_value().
-         collect_value(): variable arguments collection function (optional).
-         lcopy_type: varargs collection type for the first variable argument
-         to be location copyied by lcopy_value().
-         lcopy_value(): variable arguments location copy function (optional).
-       g_type_value_table_peek(): new function to retrive the GTypeValueTable*
-       for a type node. ValueTables get inherited from parent types, unless
-       overridden through the GTypeInfo structure. internally, GTypeValueTable
-       support means an added overhead of one pointer per static or used
-       dynamic type node.
-       g_type_add_class_cache_func(): provide a cache_func/data pair to be
-       called  prior to a type nodes last_unref() function, this can be used
-       to prevent premature class destruction. multiple installed cache_func()
-       will be chained upon last_unref() untill one of them returns TRUE.
-       the cache_func()s have to check the class id passed in to figure whether
-       they actually want to cache the class of this type (since all classes
-       are routed through the cache_func() chain).
-       g_type_remove_class_cache_func(): remove a previously installed
-       cache_func/data pair. the cache maintained by this function has to be
-       clear when calling g_type_remove_class_cache_func() to avoid leaks.
-       g_type_class_unref_uncached(): class unref function for cache_func()
-       implementations, unreferences a class omitting the cache chain (and
-       therefore unref->cache->unref->... loops).
-
-       * gvaluetypes.[hc]: provide the value setters/getters for the primitive
-       fundamental types boolean, char, uchar, int, uint, long, ulong, float,
-       double and string.
-
-       * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
-       GTypeValueTable is provided for this type.
-       removed g_value_init_default(), g_value_validate(), g_value_defaults(),
-       g_value_set_default() and g_values_cmp() as these are supplied by the
-       GParamSpec API now.
-       moved g_values_exchange() into the "implementation details" section,
-       since it just provides the underlying functionality for
-       g_value_convert().
-
-       * gvaluecollector.h: renamed the varargs value container from
-       GParamCValue to GTypeCValue as the value collection methods are
-       supplied by the type system now.
-       G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
-       G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
-       GParamSpec structure now.
-
-       * genums.h: macros cleanups/fixes.
-
-       * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
-       and assorted g_value_{s|g}et_{enum|flags}() implementations.
-
-       * gobject.[hc]:
-       provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
-       and g_value_{s|g}et_object().
-
-       * gparam.[hc]: reduced class to value_set_default(),
-       value_validate() and values_cmp(). also parameters now need to fill
-       in a GType value_type; field to indicate the GValue type they
-       are handling. provide g_param_value_set_default(),
-       g_param_value_defaults(), g_param_value_validate() and
-       g_param_values_cmp().
-
-       * gparamspecs.[hc]: got rid of the g_value_* functions and
-       the G_IS_VALUE_* macros. adapted param spec implementations
-       according to the GParamSpecClass changes.
-
-Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
-
-       * gtype.c (type_class_init): fetch the nth iface entry of the
-       type node in the nth loop iteration, not alwys the first.
-       bug discovered by Walt Pohl <cher@suitware.com>.
-       (type_data_finalize_class_ifaces): same here, cut and paste
-       rulez.
-
-Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
-       is found properly when build srcdir != builddir. (Patch from
-       Eric Lemings)
-
-2000-05-13  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in
-       * gobject.def
-       * gobject.rc.in: New files, for Win32 (mingw) build.
-
-       * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
-       corresponding non-*.in files.
-
-       * gtype.h: (Win32:) Mark _g_type_fundamental_last for
-       export/import from DLL.
-
-Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
-
-       * gtype.h: add reserved fundamental ids for gtk types (for transition
-       time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
-
-Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
-
-       * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
-       n_params prior to destructing them.
-
-Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
-
-       * fixed a couple of bugs in the initial parameter/object
-       implementations, after getting beast running on GObject and GValue.
-
-Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
-
-       * glib-gobject.[hc]: completed parameter set/get implementations,
-       along with asyncronous parameter changed notification queue.
-
-Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
-
-       * glib-gobject.[hc]: GObject implementation, that is facilities
-       for setting/getting quarked data and reference counting.
-
-       * glib-gparamspecs.[hc]: first actuall parameter implementations
-       for GLib, so far we have: char, uchar, bool, int, uint, long,
-       ulong, enum, flags, float, double, string and object. each of these
-       GParamSpecs is a new instantiatable type in its own respect,
-       so the .c file derives 13 new types from G_TYPE_PARAM and
-       defines over 50 (*2) conversion facilities.
-
-       * glib-gvaluecollector.h: generic varargs handling stubs for
-       GParamSpecs, private header file (does get installed for
-       inclusion into user code though).
-
-       * glib-gvalue.[hc]: GValue functionality implementation.
-
-       * glib-gparam.[hc]: basis GParamSpec implementation for
-       the virtual base type G_TYPE_PARAM.
-
-        * glib-genums.[hc]: enum/flags type implementation, based on
-       bseenum.[hc].
-
-       * glib-gtype.[hc]: GLib Type System implementation, heavily
-       based on BSE's dynamic type system.
index 42dcb36..16942c2 100644 (file)
@@ -799,9 +799,11 @@ g_binding_unbind (GBinding *binding)
  * of bidirectional bindings, otherwise it will be ignored
  *
  * The binding will automatically be removed when either the @source or the
- * @target instances are finalized. To remove the binding without affecting the
- * @source and the @target you can just call g_object_unref() on the returned
- * #GBinding instance.
+ * @target instances are finalized. This will release the reference that is
+ * being held on the #GBinding instance; if you want to hold on to the
+ * #GBinding instance, you will need to hold a reference to it.
+ *
+ * To remove the binding, call g_binding_unbind().
  *
  * A #GObject can have multiple bindings.
  *
index 188c74a..472f037 100644 (file)
@@ -556,7 +556,7 @@ g_closure_ref (GClosure *closure)
 
 /**
  * g_closure_invalidate:
- * @closure: GClosure to invalidate
+ * @closure: #GClosure to invalidate
  *
  * Sets a flag on the closure to indicate that its calling
  * environment has become invalid, and thus causes any future
@@ -936,6 +936,8 @@ _g_closure_set_va_marshal (GClosure       *closure,
  * Creates a new closure which invokes @callback_func with @user_data as
  * the last parameter.
  *
+ * @destroy_data will be called as a finalize notifier on the #GClosure.
+ *
  * Returns: (transfer none): a floating reference to a new #GCClosure
  */
 GClosure*
@@ -964,6 +966,8 @@ g_cclosure_new (GCallback      callback_func,
  * Creates a new closure which invokes @callback_func with @user_data as
  * the first parameter.
  *
+ * @destroy_data will be called as a finalize notifier on the #GClosure.
+ *
  * Returns: (transfer none): a floating reference to a new #GCClosure
  */
 GClosure*
index 985edd2..91ad779 100755 (executable)
@@ -69,6 +69,29 @@ def print_info(msg):
     print_color(msg, color=Color.GREEN, prefix='INFO')
 
 
+def get_rspfile_args(rspfile):
+    '''
+    Response files are useful on Windows where there is a command-line character
+    limit of 8191 because when passing sources as arguments to glib-mkenums this
+    limit can be exceeded in large codebases.
+
+    There is no specification for response files and each tool that supports it
+    generally writes them out in slightly different ways, but some sources are:
+    https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-response-files
+    https://docs.microsoft.com/en-us/windows/desktop/midl/the-response-file-command
+    '''
+    import shlex
+    if not os.path.isfile(rspfile):
+        sys.exit('Response file {!r} does not exist'.format(rspfile))
+    try:
+        with open(rspfile, 'r') as f:
+            cmdline = f.read()
+    except OSError as e:
+        sys.exit('Response file {!r} could not be read: {}'
+                 .format(rspfile, e.strerror))
+    return shlex.split(cmdline)
+
+
 def write_output(output):
     global output_stream
     print(output, file=output_stream)
@@ -326,9 +349,17 @@ parser.add_argument('--output', default=None, dest='output')
 parser.add_argument('--version', '-v', default=False, action='store_true', dest='version',
                     help='Print version information')
 parser.add_argument('args', nargs='*',
-                    help='Input files')
+                    help='One or more input files, or a single argument @rspfile_path '
+                    'pointing to a file that contains the actual arguments')
+
+# Support reading an rspfile of the form @filename which contains the args
+# to be parsed
+if len(sys.argv) == 2 and sys.argv[1].startswith('@'):
+    args = get_rspfile_args(sys.argv[1][1:])
+else:
+    args = sys.argv[1:]
 
-options = parser.parse_args()
+options = parser.parse_args(args)
 
 if options.version:
     print(VERSION_STR)
index 534b4fb..3f8ad92 100644 (file)
@@ -3349,10 +3349,16 @@ g_object_unref (gpointer _object)
 
           GOBJECT_IF_DEBUG (OBJECTS,
            {
-             /* catch objects not chaining finalize handlers */
-             G_LOCK (debug_objects);
-             g_assert (!g_hash_table_contains (debug_objects_ht, object));
-             G_UNLOCK (debug_objects);
+              gboolean was_present;
+
+              /* catch objects not chaining finalize handlers */
+              G_LOCK (debug_objects);
+              was_present = g_hash_table_remove (debug_objects_ht, object);
+              G_UNLOCK (debug_objects);
+
+              if (was_present)
+                g_critical ("Object %p of type %s not finalized correctly.",
+                            object, G_OBJECT_TYPE_NAME (object));
            });
           g_type_free_instance ((GTypeInstance*) object);
        }
@@ -4109,8 +4115,8 @@ destroy_closure_array (gpointer data)
 
 /**
  * g_object_watch_closure:
- * @object: GObject restricting lifetime of @closure
- * @closure: GClosure to watch
+ * @object: #GObject restricting lifetime of @closure
+ * @closure: #GClosure to watch
  *
  * This function essentially limits the life time of the @closure to
  * the life time of the object. That is, when the object is finalized,
index d8d421d..2ad903a 100644 (file)
@@ -66,6 +66,7 @@ libgobject = library('gobject-2.0',
   sources : gobject_sources,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   include_directories : [configinc],
   dependencies : [libffi_dep, libglib_dep],
@@ -73,7 +74,7 @@ libgobject = library('gobject-2.0',
   link_args : glib_link_flags,
 )
 
-pkg.generate(libraries : libgobject,
+pkg.generate(libgobject,
   requires : ['glib-2.0'],
   version : glib_version,
   install_dir : glib_pkgconfigreldir,
@@ -83,7 +84,8 @@ pkg.generate(libraries : libgobject,
 )
 
 libgobject_dep = declare_dependency(link_with : libgobject,
-  include_directories : gobjectinc)
+  include_directories : [gobjectinc],
+  dependencies : [libglib_dep])
 
 python_tools = [
   'glib-genmarshal',
index 84823cc..ae94d50 100644 (file)
@@ -26,6 +26,12 @@ test_programs = \
        signal-handler                  \
        $(NULL)
 
+if HAVE_GCC
+test_programs += \
+       autoptr                         \
+       $(NULL)
+endif
+
 # -----------------------------------------------------------------------------
 
 test_programs += ifaceproperties
diff --git a/gobject/tests/autoptr.c b/gobject/tests/autoptr.c
new file mode 100644 (file)
index 0000000..544938f
--- /dev/null
@@ -0,0 +1,173 @@
+/* GLib testing framework examples and tests
+ * Copyright (C) 2018 Canonical Ltd
+ * Authors: Marco Trevisan <marco@ubuntu.com>
+ *
+ * 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-object.h>
+#include <string.h>
+
+G_DECLARE_DERIVABLE_TYPE (TestAutoCleanupBase, test_base_auto_cleanup, TEST, BASE_AUTO_CLEANUP, GObject)
+
+struct _TestAutoCleanupBaseClass {
+  GObjectClass parent_class;
+};
+
+G_DECLARE_FINAL_TYPE (TestAutoCleanup, test_auto_cleanup, TEST, AUTO_CLEANUP, TestAutoCleanupBase)
+
+struct _TestAutoCleanup
+{
+  TestAutoCleanupBase parent_instance;
+};
+
+G_DEFINE_TYPE (TestAutoCleanup, test_auto_cleanup, G_TYPE_OBJECT)
+
+static void
+test_auto_cleanup_class_init (TestAutoCleanupClass *class)
+{
+}
+
+static void
+test_auto_cleanup_init (TestAutoCleanup *tac)
+{
+}
+
+static TestAutoCleanup *
+test_auto_cleanup_new (void)
+{
+  return g_object_new (test_auto_cleanup_get_type (), NULL);
+}
+
+/* Verify that an object declared with G_DECLARE_FINAL_TYPE provides by default
+ * autocleanup functions, defined using the ones of the base type (defined with
+ * G_DECLARE_DERIVABLE_TYPE) and so that it can be used with g_autoptr */
+static void
+test_autoptr (void)
+{
+  TestAutoCleanup *tac_ptr = test_auto_cleanup_new ();
+  g_object_add_weak_pointer (G_OBJECT (tac_ptr), (gpointer *) &tac_ptr);
+
+  {
+    g_autoptr (TestAutoCleanup) tac = tac_ptr;
+  }
+#ifdef __GNUC__
+  g_assert_null (tac_ptr);
+#endif
+}
+
+/* Verify that an object declared with G_DECLARE_FINAL_TYPE provides by default
+ * autocleanup functions, defined using the ones of the base type (defined with
+ * G_DECLARE_DERIVABLE_TYPE) and that stealing an autopointer works properly */
+static void
+test_autoptr_steal (void)
+{
+  g_autoptr (TestAutoCleanup) tac1 = test_auto_cleanup_new ();
+  TestAutoCleanup *tac_ptr = tac1;
+
+  g_object_add_weak_pointer (G_OBJECT (tac_ptr), (gpointer *) &tac_ptr);
+
+  {
+    g_autoptr (TestAutoCleanup) tac2 = g_steal_pointer (&tac1);
+    g_assert_nonnull (tac_ptr);
+    g_assert_null (tac1);
+    g_assert_true (tac2 == tac_ptr);
+  }
+#ifdef __GNUC__
+  g_assert_null (tac_ptr);
+#endif
+}
+
+/* Verify that an object declared with G_DECLARE_FINAL_TYPE provides by default
+ * autolist cleanup functions defined using the ones of the parent type
+ * and so that can be used with g_autolist, and that freeing the list correctly
+ * unrefs the object too */
+static void
+test_autolist (void)
+{
+  TestAutoCleanup *tac1 = test_auto_cleanup_new ();
+  TestAutoCleanup *tac2 = test_auto_cleanup_new ();
+  g_autoptr (TestAutoCleanup) tac3 = test_auto_cleanup_new ();
+
+  g_object_add_weak_pointer (G_OBJECT (tac1), (gpointer *) &tac1);
+  g_object_add_weak_pointer (G_OBJECT (tac2), (gpointer *) &tac2);
+  g_object_add_weak_pointer (G_OBJECT (tac3), (gpointer *) &tac3);
+
+  {
+    g_autolist (TestAutoCleanup) l = NULL;
+
+    l = g_list_prepend (l, tac1);
+    l = g_list_prepend (l, tac2);
+  }
+
+  /* Only assert if autoptr works */
+#ifdef __GNUC__
+  g_assert_null (tac1);
+  g_assert_null (tac2);
+#endif
+  g_assert_nonnull (tac3);
+
+  g_clear_object (&tac3);
+  g_assert_null (tac3);
+}
+
+/* Verify that an object declared with G_DECLARE_FINAL_TYPE provides by default
+ * autoslist cleanup functions (defined using the ones of the base type declared
+ * with G_DECLARE_DERIVABLE_TYPE) and so that can be used with g_autoslist, and
+ * that freeing the slist correctly unrefs the object too */
+static void
+test_autoslist (void)
+{
+  TestAutoCleanup *tac1 = test_auto_cleanup_new ();
+  TestAutoCleanup *tac2 = test_auto_cleanup_new ();
+  g_autoptr (TestAutoCleanup) tac3 = test_auto_cleanup_new ();
+
+  g_object_add_weak_pointer (G_OBJECT (tac1), (gpointer *) &tac1);
+  g_object_add_weak_pointer (G_OBJECT (tac2), (gpointer *) &tac2);
+  g_object_add_weak_pointer (G_OBJECT (tac3), (gpointer *) &tac3);
+
+  {
+    g_autoslist (TestAutoCleanup) l = NULL;
+
+    l = g_slist_prepend (l, tac1);
+    l = g_slist_prepend (l, tac2);
+  }
+
+  /* Only assert if autoptr works */
+#ifdef __GNUC__
+  g_assert_null (tac1);
+  g_assert_null (tac2);
+#endif
+  g_assert_nonnull (tac3);
+
+  g_clear_object (&tac3);
+  g_assert_null (tac3);
+}
+
+int
+main (int argc, gchar *argv[])
+{
+  g_test_init (&argc, &argv, NULL);
+
+  g_test_add_func ("/autoptr/autoptr", test_autoptr);
+  g_test_add_func ("/autoptr/autoptr_steal", test_autoptr_steal);
+  g_test_add_func ("/autoptr/autolist", test_autolist);
+  g_test_add_func ("/autoptr/autoslist", test_autoslist);
+
+  return g_test_run ();
+}
index 51571c0..44d4588 100644 (file)
@@ -51,6 +51,10 @@ gobject_tests = {
   },
 }
 
+if cc.get_id() != 'msvc'
+  gobject_tests += {'autoptr' : {}}
+endif
+
 # FIXME: put common bits of test environment() in one location
 # Not entirely random of course, but at least it changes over time
 random_number = minor_version + meson.version().split('.').get(1).to_int()
index bb54433..f2a1ad9 100644 (file)
@@ -45,6 +45,7 @@ class TestMkenums(unittest.TestCase):
     parsing and generation code out into a library and unit test that, and
     convert this test to just check command line behaviour.
     """
+    rspfile = False
 
     def setUp(self):
         self.timeout_seconds = 10  # seconds per test
@@ -57,12 +58,25 @@ class TestMkenums(unittest.TestCase):
                              'glib-mkenums')
         else:
             self.__mkenums = os.path.join('/', 'usr', 'bin', 'glib-mkenums')
-        print('mkenums:', self.__mkenums)
+        print('rspfile: {}, mkenums:'.format(self.rspfile), self.__mkenums)
 
     def tearDown(self):
         self.tmpdir.cleanup()
 
+    def _write_rspfile(self, argv):
+        import shlex
+        with tempfile.NamedTemporaryFile(dir=self.tmpdir.name, mode='w',
+                                         delete=False) as f:
+            contents = ' '.join([shlex.quote(arg) for arg in argv])
+            print('Response file contains:', contents)
+            f.write(contents)
+            f.flush()
+        return f.name
+
     def runMkenums(self, *args):
+        if self.rspfile:
+            rspfile = self._write_rspfile(args)
+            args = ['@' + rspfile]
         argv = [self.__mkenums]
         argv.extend(args)
         print('Running:', argv)
@@ -271,7 +285,7 @@ comment: {standard_bottom_comment}
         """Test running with no arguments at all."""
         result = self.runMkenums()
         self.assertEqual('', result.err)
-        self.assertEquals('''/* {standard_top_comment} */
+        self.assertEqual('''/* {standard_top_comment} */
 
 
 /* {standard_bottom_comment} */'''.format(**result.subs),
@@ -281,7 +295,7 @@ comment: {standard_bottom_comment}
         """Test running with an empty template and no header files."""
         result = self.runMkenumsWithTemplate('')
         self.assertEqual('', result.err)
-        self.assertEquals('''/* {standard_top_comment} */
+        self.assertEqual('''/* {standard_top_comment} */
 
 
 /* {standard_bottom_comment} */'''.format(**result.subs),
@@ -291,7 +305,7 @@ comment: {standard_bottom_comment}
         """Test running with a complete template, but no header files."""
         result = self.runMkenumsWithAllSubstitutions()
         self.assertEqual('', result.err)
-        self.assertEquals('''
+        self.assertEqual('''
 comment
 comment: {standard_top_comment}
 
@@ -448,5 +462,10 @@ comment: {standard_bottom_comment}
 '''.format(**result.subs).strip(), result.out)
 
 
+class TestRspMkenums(TestMkenums):
+    '''Run all tests again in @rspfile mode'''
+    rspfile = True
+
+
 if __name__ == '__main__':
     unittest.main(testRunner=taptestrunner.TAPTestRunner())
index efd41dd..2614961 100644 (file)
 import unittest
 import sys
 import base64
-if sys.hexversion >= 0x03000000:
-  from io import StringIO
-else:
-  from StringIO import StringIO
+from io import StringIO
 
 # Log modes
 class LogMode(object) :
@@ -124,6 +121,9 @@ class TAPTestResult(unittest.TestResult):
             self.print_raw("  ...\n")
           else:
             self.print_raw("# " + output.rstrip().replace("\n", "\n# ") + "\n")
+        # Truncate doesn't change the current stream position.
+        # Seek to the beginning to avoid extensions on subsequent writes.
+        log.seek(0)
         log.truncate(0)
 
   def addSuccess(self, test):
diff --git a/gthread/ChangeLog b/gthread/ChangeLog
deleted file mode 100644 (file)
index b833c1e..0000000
+++ /dev/null
@@ -1,837 +0,0 @@
-=== ChangeLog discontinued ===
-
-       With the move to git, GLib is switching from a ChangeLog file
-       to relying on commit messages to provide change history. Please
-       see README.commits for guidance on the expected message format.
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.20.0 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.10 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.9 ===
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.8 ===
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.7 ===
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.6 ===
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.5 ===
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.4 ===
-
-2008-12-15  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.3 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.2 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.1 ===
-
-2008-10-16  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.0 ===
-
-2008-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.1 ===
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.0 ===
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.7 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 460920 – build fix for --disable-threads
-
-       * gthread-impl.c: Implement g_thread_init_with_errorcheck_mutexes
-       in the !G_THREAD_ENABLED case. Pointed out by Jan Nieuwenhuizen
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.6 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.5 ===
-
-2008-07-27  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (gthread-2.0.lib): Pass appropriate -machine flag to lib.exe.
-
-2008-07-21  Matthias Clasen  <mclasen2redhat.com>
-
-       * === Released 2.17.4 ===
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.3 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.17.2 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.1 ===
-
-2008-05-28  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am: don't define G_DISABLE_SINGLE_INCLUDES, it's in
-       the global CPPFLAGS now.
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.0 ===
-
-2008-05-05  Michael Natterer  <mitch@imendio.com>
-
-       * Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent
-       code from being checked in that breaks the build of applications
-       which use G_DISABLE_SINGLE_INCLUDES.
-
-2008-03-16  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Define gthread_def locally here instead of using an
-       Autoconf variable.
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.16.1 ===
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.0 ===
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.6 ===
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.15.5 ===
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.4 ===
-
-2008-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * gthread-posix.c:
-       * gthread-win32.c: Replace uses of G_GNUC_PRETTY_FUNCTION
-       by __FUNCTION__.
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.3 ===
-
-2008-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.2 ===
-
-008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.1 ===
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.0 ===
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.14.3 ===
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.2 ===
-
-2007-09-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.1 ===
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.0 ===
-
-2007-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.7 ===
-
-Fri Jun 29 2007  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.6 ===
-
-2007-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.5 ===
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.4 ===
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.13.3 ===
-
-2007-05-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.2 ===
-
-2007-05-03  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.13.1 ===
-
-2007-03-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.0 ===
-
-2007-01-19  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am (gthread-2.0.lib): Use $(srcdir) for builds outside
-       srcdir.
-
-2007-01-16  Tor Lillqvist  <tml@novell.com>
-
-       * gthread-win32.c (g_gettime_win32_impl):
-       GetSystemTimeAsFileTime() returns 100s of nanoseconds since 1601,
-       so offset to Unix epoch (1970) and multiply by 100 to get
-       nanoseconds which is what we want.
-
-2006-12-28  Tor Lillqvist  <tml@novell.com>
-
-       * gthread-win32.c (g_thread_impl_init): Correct link to discussion
-       about CRITICAL_SECTIONs vs. mutexes. Thanks to Felix Kater for
-       pointing this out.
-
-2006-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.2 ===
-
-2006-07-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.1 ===
-
-2006-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.0 ===
-
-2006-06-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.4 ===
-
-2006-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.3 ===
-
-2006-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.2 ===
-
-2006-05-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.1 ===
-
-2006-05-03  Tor Lillqvist  <tml@novell.com>
-
-       * gthread-win32.c (g_thread_exit_win32_impl): Free with free() and
-       not g_free() what has been allocated with calloc(). (#340530, Jake
-       Goulding)
-
-2006-05-02  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.11.0 ===
-
-2006-03-11  Tor Lillqvist  <tml@novell.com>
-
-       * gthread-win32.c: #define _WIN32_WINDOWS as 0x0401 to get
-       declaration for IsDebuggerPresent() when using MSVC6. (#333879,
-       Kazuki Iwamoto)
-
-2006-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * ===  Released 2.10.1 ===
-
-2006-03-02  Tor Lillqvist  <tml@novell.com>
-
-       * gthread-win32.c (G_PRIVATE_MAX): Increase to 100. 16 was rather
-       low.
-       (g_private_new_win32_impl): Can't use g_error() here as
-       g_private_new() is called a few times by GLib internally before
-       the messaging system that g_error() requires is ready. Thanks to
-       Tim Janik for noticing. Just display a MessageBox() and abort()
-       instead.
-
-2006-02-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.10.0 ===
-
-2006-02-20  Tor Lillqvist  <tml@novell.com>
-
-       * gthread-win32.c (g_thread_exit_win32_impl): Make the
-       implementation of GPrivate behave more closely as in POSIX
-       threads: The value associacted with a GPrivate must be set to NULL
-       before calling the destructor. (The destructor gets the original
-       value as argument.)  A destructor might re-associate a non-NULL
-       value with some GPrivate. To deal with this, if after all
-       destructors have been called, there still are some non-NULL
-       values, the process is repeated. (#331367)
-
-2006-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.6 ===
-
-2006-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.5 ===
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.9.4 ===
-
-2006-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.3 ===
-
-2006-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.2 ===
-
-2005-12-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.1 ===
-
-2005-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.am: Remove gthread-solaris.c
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.0 ===
-
-2005-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.1 ===
-
-2005-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.0 ===
-
-2005-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.7 ===
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.6 ===
-
-2005-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.5 ===
-
-2005-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.4 ===
-
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.3 ===
-       
-2005-07-09  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: Don't use the scripts in build/win32 to compile
-       gthread.rc into a resource object file. (This means we lose the
-       build number increment magic, but I doubt it was that useful
-       anyway.) Instead use windres directly. To pass the normal .o file
-       produced by windres through libtool, which wants .lo files, pass
-       it directly to the linker using a -Wl option.
-
-       * gthread.rc.in: Thus replace BUILDNUMBER with 0.
-
-2005-07-08  Matthias Clasen  <mclasen@redhat.com>
-       
-       * === Released 2.7.2 ===
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.1 ===
-
-2005-06-26  Tor Lillqvist  <tml@novell.com>
-
-       * Makefile.am: libtool installs/uninstalls the import library, no
-       need to do it ourselves. Do still install/uninstall the .def file,
-       though.
-
-2005-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.0 ===
-
-2005-06-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * gthread-posix.c (g_thread_create_posix_impl): Allow
-       setstacksize to fail.  (#304790, Michael Banck)
-
-2005-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.1 ===
-
-2004-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.0 ===
-       
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.7 ===
-       
-2004-11-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.6 ===
-       
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.5 ===
-
-2004-10-27 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.4 ===
-
-2004-09-18 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.3 ===
-
-2004-08-25 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.2 ===
-
-2004-08-01 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.1 ===
-
-Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * === Released 2.5.0 ===
-
-2002-11-23  Tor Lillqvist  <tml@iki.fi>
-
-       * gthread-win32.c (g_cond_timed_wait_win32_impl): Fix two bugs: 1)
-       If abs_time is NULL, should use infinite time. 2) Check for
-       current time already being past abs_time. (#99294, Christopher
-       R. Palmer, fix by Sebastian Wilhelmi)
-
-Mon Nov  4 14:45:24 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * gthread-posix.c gthread-solaris.c: Include <config.h>
-
-2002-03-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c (g_thread_create_posix_impl): Do a comparison,
-       not an assignment, stupid! Spotted by Daniel Elstner
-       <daniel.elstner@gmx.net>.
-
-2002-02-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-impl.c: Only compile most of this file, if
-       G_THREADS_ENABLED is set.
-
-       * Fixed typo in G_THREADS_ENABLED. 
-
-2002-01-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-solaris.c: Use g_free instead of free. Pointed out by
-       Sam O'Connor <sam@panviva.com>.
-
-2001-10-23  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: (Win32): If we have built the MSVC import library,
-       install it. Install the gcc import library. Also support
-       uninstall.
-
-2001-09-28  Tor Lillqvist  <tml@iki.fi>
-
-       * gthread-win32.c: Use an extra level of indirection for GMutex.
-       It is now a pointer either to a pointer to a CRITICAL_SECTION
-       struct, or to a mutex HANDLE. This is needed in case the user
-       defines G_ERRORCHECK_MUTEXES. G_MUTEX_SIZE must correctly reflect
-       the size of *GMutex, but this used to vary depending on whether we
-       at run-time chose to use CRITICAL_SECTIONs or mutexes.
-       (g_mutex_free_win32_cs_impl, g_cond_free_win32_impl): Call
-       DeleteCriticalSection() when done with it.
-
-       * gthread-impl.c (g_thread_init_with_errorcheck_mutexes): Call
-       g_thread_impl_init() before accessing
-       g_thread_functions_for_glib_use_default, as the
-       g_thread_impl_init() function might modify it.
-       
-2001-09-26  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: Fix couple of typos.
-
-       * gthread.def: Add g_thread_init_with_errorcheck_mutexes.
-
-2001-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-impl.c: Corrected the array size (cough, cough). Pointed
-       out by gpablo@intersystems.com.ar. Fixes #61065.
-
-2001-09-25  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: Use new macros for .def file, and check for
-       MS_LIB_AVAILABLE, new rule to build MS import library.
-
-       * makefile.msc.in: Use same DLL and import library names as
-       libtool.
-       
-2001-09-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Add g_thread_equal_posix_impl and add to the
-       function vector g_thread_functions_for_glib_use_default.
-       
-       * gthread-solaris.c, gthread-win32.c: Add NULL as equal function,
-       as on those two platforms you don't need an equal function.
-
-2001-09-19  Tor Lillqvist  <tml@iki.fi>
-
-       * gthread.rc.in: Correct InternalName and OriginalFilename to
-       match what we actually produce.
-
-2001-07-20  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : reflect glib move
-
-2001-06-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-win32.c: Use g_win32_error_message to beautify error
-       messages.
-
-2001-05-24  Hans Breuer  <hans@breuer.org>
-
-       * makefile.msc.in : pthread isn't required anymore
-
-2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-win32.c (g_cond_wait_internal): Also return TRUE for
-       late arrived signals. Thanks to Steven Brooks
-       <umbrook0@cs.umanitoba.ca> for pointing out.
-
-       * gthread-impl.c (g_thread_init): Move the thread implementation
-       initialization to before assigning GThreadFuncs, which now is just
-       struct assigned and not memcpy'ed. Completed check for zero
-       members of GThreadFuncs. 
-
-       * makefile.mingw: Don't link to pthread anymore.
-
-       * gthread-win32.c: New file for native thread support for
-       win32. Thanks to Hans Breuer <hans@breuer.org> to got me
-       kickstarted.
-
-       * Makefile.am: Also distribute gthread-win32.c.
-
-Fri May  4 04:14:45 2001  Tim Janik  <timj@gtk.org>
-
-       * gthread-posix.c (g_cond_timed_wait_posix_impl): don't g_assert()
-       the user specified time, but g_return_val_if_fail() here.
-
-2001-04-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Added special case for priorities on
-         FreeBSD. Thanks to David Reid <dreid@jetnet.co.uk> for the info.
-
-       * gthread-impl.c: Made two macros safe with ().
-
-2001-03-10  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: Use the _LIBADD dependency on libglib only on
-       Win32.
-
-2001-02-21  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
-       libtool with -no-undefined for Win32 and Cygwin.
-
-       * gthread-impl.c (g_thread_init): Win32 code snippet used also on
-       Cygwin.
-
-2001-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Removed the G_THREAD_USE_PID_SURROGATE
-       implementation, which is now in gthread.c.
-
-2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-impl.c (g_thread_init_with_errorcheck_mutexes): Call
-       g_thread_impl_init(), as g_thread_init won't call it.
-
-       * gthread-impl.c (g_mutex_free_errorcheck_impl): Fixed it for
-       real. Sorry for this mess. It looked like a real obvious fix, so I
-       didn't check. Bad boy. Added some casts to quiet the compiler.
-
-2001-01-29  Havoc Pennington  <hp@redhat.com>
-
-       * gthread-impl.c (g_mutex_free_errorcheck_impl): hack this so it
-       compiles, needs fixing for real.
-
-2001-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-impl.c (g_mutex_free_errorcheck_impl): Add new check to
-       errorcheck mutexes to abort, if a locked mutex is freed.
-
-2001-01-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-solaris.c, gthread-posix.c: Made g_thread_min_stack_size
-       static.
-
-2000-11-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-impl.c: Revamped errorcheck mutexes and added errorcheck
-       cond_wait() and cond_timed_wait() funtions. This makes he whole
-       thing work. Now we only show the location of the locking/unlocking
-       for -DG_ERRORCHECK_MUTEXES and not the name of the mutex.
-
-2000-11-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-impl.c, gthread-posix.c, gthread-solaris.c: Removed
-       g_thread_map_priority function in favour of the
-       g_thread_priority_map array.  Initialize the array with
-       PRIORITY_{...}_VALUE, if available and interpolate beetween the
-       bounds if .._NORMAL_.. and .._HIGH_.. are not available.
-
-       * gthread-posix.c: If we should use the PID niceness as a
-       surrogate for thread priorities (G_THREAD_USE_PID_SURROGATE is
-       defined), then disable normal priority handling and use PIDs and
-       setpriority() instead. Depends on the thread to write its PID into
-       the place after the thread id right after thread creation.
-
-2000-11-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Include <sched.h> if available.
-
-2000-11-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-none.c: Add G_MUTEX_SIZE as needed for gthread-impl.c
-
-2000-10-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am : Add @GLIB_DEBUG_FLAGS@ to INCLUDES for accessing
-       -DG_ENABLE_DEBUG as needed in gthread-posix.c.
-
-       * gthread-posix.c: Revamped error handling for native thread
-       function calls. Now EPERM errors are ignored for some commands and
-       only a warning message is output once (at first occurrence).
-
-2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
-
-       * Makefile.am (BUILT_EXTRA_DIST): New variable.
-       (dist-hook): Handle $(BUILT_EXTRA_DIST).
-
-2000-09-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-impl.c: Added errorcheck mutexes. New exported function
-       g_thread_init_with_errorcheck_mutexes, which is called instead of
-       g_thread_init, when compiled with -DG_ERRORCHECK_MUTEXES. New
-       static functions
-       g_mutex_(new|lock|trylock|unlock|free)_errorcheck_impl to
-       implement errorcheck mutexes.
-
-       * gthread-posix.impl.c, gthread-solaris-impl.c: Define the size of
-       a mutex.
-
-2000-09-21  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: Use pthreads macros from ../build.
-
-2000-09-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c, gthread-solaris.c:
-       s/G_MICROSEC/G_USEC_PER_SEC/ and s/G_NANOSEC/G_NSEC_PER_SEC/    
-
-2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c (g_thread_create_posix_impl): Use GError to
-       report errors.
-
-       * gthread-solaris.c (g_thread_create_solaris_impl): Use GError to
-       report errors as well.
-       
-2000-05-13  Tor Lillqvist  <tml@iki.fi>
-
-       * makefile.mingw.in: New file, with gthread stuff moved from
-       ../makefile.mingw.in.
-
-       * Makefile.am: Add to EXTRA_DIST, add rule to build makefile.mingw.
-
-2000-04-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-solaris.c (g_mutex_new_solaris_impl): Changed the scope
-       of the initialized mutex to USYNC_THREAD. Thanks to Soeren
-       Sandmann <sandmann@daimi.au.dk> for pointing that out.
-
-2000-03-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c (posix_check_for_error): Forgot a '}' in a macro
-       for DCE-threads. Thanks to Karl Nelson <kenelson@ece.ucdavis.edu>
-       for pointing that out.
-
-2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Don't use priorities for threads, when the
-       minimal/maximal priorities couldn't be determined at configure
-       time.
-
-       * gthread-posix.c: Don't check for errors, when setting the scope
-       of a tread to system, as some posix implementations can't do that
-       and we don't want the thing to fail because of that.
-
-2000-02-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c, gthread-solaris.c: check for sysconf
-       (_SC_THREAD_STACK_MIN), which returns the minimal stack size for
-       new threads. Patch from Soeren Sandmann <sandmann@daimi.au.dk>.
-
-1999-11-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c, gthread-solaris.c: Changed the prototype of
-       thread_create and thread_self to return the system thread into
-       provided memory instead of a return value. This is necessary, as
-       HPUX has a pthread_t, that is bigger than the biggest integral
-       type there. Made some more functions static.
-
-       * gthread-posix.c: Small fixes for DCE threads: Detaching has to
-       be done after thread creation for DCE.
-
-1999-06-21  Tor Lillqvist  <tml@iki.fi>
-
-       * gthread-posix.c: Guard pthread_attr_setscope call with test
-       for _POSIX_THREAD_PRIORITY_SCHEDULING, which should be defined
-       in a <pthread.h> that supports that feature.
-       
-1999-06-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c, gthread-solaris.c: Added the native
-       implementations for the GLib's extended thread support.
-
-       * gthread-nspr.c: Removed for good. NSPR is nothing we would want
-       to build upon.
-
-       * gthread.c: Renamed to gthread-impl.c to avoid confusion with
-       ../gthread.c (Formerly known as the file called gmutex.c)
-
-       * testgthread.c: Removed. The new and much extended tests are in
-       ../tests/thread-test.c.
-
-       * Makefile.am: Changed to reflect the changes above.
-
-1999-03-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Use the right default arguments for the
-       construction of mutexes and conds for dce threads, these are
-       &pthread_(cond|mutex)attr_default instead of NULL. Hint from
-       D. Emilio Grimaldo Tunon <emilio_tunon@nl.compuware.com>.
-
-1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am (INCLUDES): Added @GTHREAD_COMPILE_IMPL_DEFINES@.
-
-1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c (g_private_get_posix_impl): Fixed typo for DCE
-       implementation.
-
-1999-03-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Now handle both dce and posix threads. They are
-       sufficently equal. Please do not commit my change to
-       glib-1-2/gthread/gthread-posix.c from 1999-03-03, as the current
-       change will take care of that too.
-
-1999-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c: Fixed broken mutex_trylock and slightly broken
-       cond_timed_wait functions.
-
-1999-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * testgthread.c (test_mutexes): Use new signature of
-       g_static_mutex* functions.
-
-1999-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * gthread-posix.c (g_private_get_posix_impl): Use the
-       HAVE_PTHREAD_GETSPECIFIC_POSIX macro to determine, which signature
-       to use for pthread_getspecific.
-
-Tue Jan 19 20:56:02 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * Makefile.am (EXTRA_DIST): Added gthread.def.
-
-Sun Jan 17 10:58:19 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * gthread.def: New file.
-
-1999-01-16 1999  Tor Lillqvist  <tml@iki.fi>
-
-       * gthread-posix.c: Conditionalize <sys/time.h> inclusion.
-
-1999-01-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * testgthread.c: conditionally compile according to the
-       G_THREADS_IMPL_??? macros.
-       (test_private_func): use rand_r instead of rand to make it
-       thread safe.
-
-1998-12-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * testgthread.c (new_thread): As a joinable thread seems to be the
-       default on posix, leave the explicit setting out, as it causes
-       problems on some older platforms.
-
-Wed Dec 16 22:21:33 CST 1998 Shawn T. Amundson <amundson@gtk.org>
-
-       * gthread-posix.c: use g_free in mutex_free (from Tim Janik)
-
-Thu Dec 17 03:38:57 1998  Tim Janik  <timj@gtk.org>
-
-       * Makefile.am: -DG_LOG_DOMAIN="GThread", we don't need an extern
-       variable for that (noticed by Joel Becker <jlbec@ocala.cs.miami.edu>)
-
-Wed Dec 16 03:16:16 1998  Tim Janik  <timj@gtk.org>
-
-       * testgthread.c: s/g_thread_supported/g_thread_supported ()/
-       * gthread.c: s/g_thread_supported/g_threads_got_initialized/
-       (g_thread_init): bail out if G_THREADS_ENABLED is not defined.
-
-1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
-
-       * Makefile.am (EXTRA_DIST): updated.
-
-       * testgthread.c, gthread-*.c: Changed private to private_key to
-       avoid problems when compiling with under C++.
-
-       * gthread-none.c: 
-       s/g_mutex_functions_for_glib_use/g_thread_functions_for_glib_use/
-
-       * ChangeLog: from now on there is an extra ChangeLog for gthread
-       
-
index 515479b..d4fca40 100644 (file)
@@ -16,13 +16,15 @@ libgthread = library('gthread-2.0',
   sources : gthread_sources,
   version : library_version,
   soversion : soversion,
+  darwin_versions : darwin_versions,
   install : true,
   dependencies : [libglib_dep],
   c_args : ['-DG_LOG_DOMAIN="GThread"' ] + glib_hidden_visibility_args,
   link_args : glib_link_flags,
 )
 
-pkg.generate(libraries : [libgthread, thread_dep],
+pkg.generate(libgthread,
+  libraries : [thread_dep],
   requires : ['glib-2.0'],
   version : glib_version,
   install_dir : glib_pkgconfigreldir,
index f7405a2..04ca8c2 100644 (file)
@@ -1,6 +1,6 @@
 project('glib', 'c', 'cpp',
-  version : '2.58.3',
-  meson_version : '>= 0.47.0',
+  version : '2.59.0',
+  meson_version : '>= 0.48.0',
   default_options : [
     'buildtype=debugoptimized',
     'warning_level=1',
@@ -45,7 +45,9 @@ binary_age = 100 * minor_version + micro_version
 soversion = 0
 # Maintain compatibility with previous libtool versioning
 # current = minor * 100 + micro
-library_version = '@0@.@1@.@2@'.format(soversion, binary_age - interface_age, interface_age)
+current = binary_age - interface_age
+library_version = '@0@.@1@.@2@'.format(soversion, current, interface_age)
+darwin_versions = [current + 1, '@0@.@1@'.format(current + 1, interface_age)]
 
 configinc = include_directories('.')
 glibinc = include_directories('glib')
@@ -346,6 +348,7 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
   warning_c_args = [
     '-Wall',
     '-Wduplicated-branches',
+    '-Wimplicit-fallthrough',
     '-Wmisleading-indentation',
     '-Wstrict-prototypes',
     '-Wunused',
@@ -394,6 +397,7 @@ functions = [
   'fchown',
   'fdwalk',
   'fsync',
+  'getauxval',
   'getc_unlocked',
   'getfsstat',
   'getgrgid_r',
@@ -1761,10 +1765,9 @@ if not libz_dep.found()
       libz_dep = cc.find_library('zlib', required : false)
     endif
   endif
-endif
-
-if not libz_dep.found()
-  libz_dep = subproject('zlib').get_variable('zlib_dep')
+  if not libz_dep.found() or not cc.has_header('zlib.h')
+    libz_dep = subproject('zlib').get_variable('zlib_dep')
+  endif
 endif
 
 # First check in libc, fallback to libintl, and as last chance build
@@ -1792,8 +1795,6 @@ glib_conf.set('HAVE_DCGETTEXT', 1)
 glib_conf.set('HAVE_GETTEXT', 1)
 
 glib_conf.set_quoted('GLIB_LOCALE_DIR', join_paths(glib_datadir, 'locale'))
-# xgettext is optional (on Windows for instance)
-xgettext = find_program('xgettext', required : false)
 
 # libmount is only used by gio, but we need to fetch the libs to generate the
 # pkg-config file below
@@ -1808,9 +1809,10 @@ if host_system == 'windows'
 endif
 
 selinux_dep = []
-if host_system == 'linux' and get_option('selinux')
-  selinux_dep = [dependency('libselinux')]
-  glib_conf.set('HAVE_SELINUX', 1)
+if host_system == 'linux'
+  selinux_dep = dependency('libselinux', required: get_option('selinux'))
+
+  glib_conf.set('HAVE_SELINUX', selinux_dep.found())
 endif
 
 xattr_dep = []
@@ -1877,6 +1879,12 @@ python = import('python').find_installation('python3')
 # used for '#!/usr/bin/env <name>'
 python_name = 'python3'
 
+python_version = python.language_version()
+python_version_req = '>=3.4'
+if not python_version.version_compare(python_version_req)
+  error('Requires Python @0@, @1@ found.'.format(python_version_req, python_version))
+endif
+
 # Determine which user environment-dependent files that we want to install
 have_bash = find_program('bash', required : false).found() # For completion scripts
 have_sh = find_program('sh', required : false).found() # For glib-gettextize
@@ -1971,10 +1979,13 @@ subdir('gobject')
 subdir('gthread')
 subdir('gmodule')
 subdir('gio')
-if xgettext.found()
+subdir('fuzzing')
+subdir('tests')
+
+# xgettext is optional (on Windows for instance)
+if find_program('xgettext', required : get_option('nls')).found()
   subdir('po')
 endif
-subdir('tests')
 
 # Install glib-gettextize executable, if a UNIX-style shell is found
 if have_sh
index 64accf6..5c5b4df 100644 (file)
@@ -20,8 +20,8 @@ option('gio_module_dir',
        description : 'load gio modules from this directory (default to \'libdir/gio/modules\' if unset)')
 
 option('selinux',
-       type : 'boolean',
-       value : true,
+       type : 'feature',
+       value : 'auto',
        description : 'build with selinux support')
 
 option('xattr',
@@ -83,3 +83,9 @@ option('installed_tests',
        type : 'boolean',
        value : false,
        description : 'enable installed tests')
+
+option('nls',
+       type : 'feature',
+       value : 'auto',
+       yield: true,
+       description : 'Enable native language support (translations)')
diff --git a/po/ChangeLog b/po/ChangeLog
deleted file mode 100644 (file)
index 62d69d5..0000000
+++ /dev/null
@@ -1,4775 +0,0 @@
-2010-06-09  Funda Wang  <fundawang@gmail.com>
-
-  * zh_CN.po: Updated zh_CN translation from blue dark <arkblue086@yahoo.com.cn>.
-
-=== ChangeLog discontinued ===
-
-       With the move to git, GLib is switching from a ChangeLog file
-       to relying on commit messages to provide change history. Please
-       see README.commits for guidance on the expected message format.
-
-2009-03-30  Manoj Kumar Giri  <mgiri@redhat.com>
-
-       * or.po: Updated Oriya Translation.
-
-2009-03-26  Gintautas Miliauskas  <gintautas@miliauskas.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2009-03-26  Shankar Prasad  <svenkate@redhat.com>
-
-        * kn.po: Updated Kannada translations.
-
-2009-03-21  Nickolay V. Shmyrev <nshmyrev@yandex.ru>
-
-       * ru.po: Updated Russian translation.
-
-2009-03-18  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated Greek Translation by Fotis Tsamis.
-
-2009-03-18  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic translation by Anas Afif Emad.
-
-2009-03-18  Amitakhya Phukan <amitakhya@svn.gnome.org>
-
-       * as.po: Updated Assamese translations.
-
-2009-03-18  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-       
-2009-03-17  Tomasz Dominikowski  <tdominikowski@aviary.pl>
-
-       * pl.po: Updated Polish translation
-
-2009-03-17  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2009-03-17  Ani Peter <apeter@redhat.com>
-
-       * ml.po: Updated Malayalam Translations
-
-2009-03-17  Ignacio Casal Quinteiro  <icq@gnome.org>
-
-        * gl.po: Updated Galician translation
-
-2009-03-17  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2009-03-17  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Update Japanese translation.
-
-2009-03-17  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2009-03-17  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2009-03-17  Claude Paroz  <claude@2xlibre.net>
-
-       * fr.po: Updated French translation.
-
-2009-03-17  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2009-03-16  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2009-03-16  Milo Casagrande  <milo@ubuntu.com>
-
-       * it.po: Updated Italian translation.
-
-2009-03-16 Og Maciel <ogmaciel@gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation by
-       Vladimir Melo.
-
-2009-03-16  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2009-03-16  Philip Withnall  <philip@tecnocode.co.uk>
-
-       * en_GB.po: Updated British English translation.
-
-2009-03-14  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated Greek Translation by Fotis Tsamis.
-
-2009-03-16  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2009-03-16  Shankar Prasad  <svenkate@redhat.com>
-
-        * kn.po: Updated Kannada translations.
-
-2009-03-15  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2009-03-15 felix@redhat.com>
-
-       * ta.po:  Tamil Translation updated
-
-2009-03-14  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
-
-       * ru.po: Updated Russian translation by Yuriy Penkin.
-
-2009-03-14  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated Greek Translation by Jennie Petoumenou.
-
-2009-03-14 Kenneth Nielsen <k.nielsen81@gmail.com>
-
-       * da.po: Updated Danish translation by Ask H. Larsen
-
-2009-03-13  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-        * gl.po: Updated Galician translation
-
-2009-03-13  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.20.0 ===
-
-2009-03-11  Ani Peter <apeter@redhat.com>
-
-       * ml.po: Updated Malayalam Translations
-
-2009-03-10  Amitakhya Phukan  <amitakhya@svn.gnome.org>
-
-       * as.po: Updated Assamese translations.
-
-2009-03-09  Sandeep Shedmake  <sshedmak@redhat.com>
-
-       * mr.po: Updated Marathi Translations.
-
-2009-03-09  Sandeep Shedmake  <sshedmak@redhat.com>
-
-       * mr.po: Updated Marathi Translations.
-
-2009-03-09  Runa Bhattacharjee  <runab@redhat.com>
-
-       * bn_IN.po: Updated Bengali India Translation
-
-2009-03-08  Petr Kovar  <pknbe@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2009-03-05  Gintautas Miliauskas  <gintas@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2009-03-05  Rajesh Ranjan <rrnajan@redhat.com>
-
-       * hi.po: Updated Hindi Translation.
-       
-2009-03-04  Wadim Dziedzic  <wdziedzic@aviary.pl>
-
-       * pl.po: Updated Polish translation
-
-2009-03-04  Mișu Moldovan  <dumol@gnome.org>
-
-       * ro.po: Updated Romanian Translation.
-
-2009-03-04  Manoj Kumar Giri  <mgiri@redhat.com>
-
-       * or.po: Updated Oriya Translation.
-
-2009-03-03  Krishnababu K <kkrothap@redhat.com>
-
-       * te.po: Updated Telugu Translation
-
-2009-03-02  Milo Casagrande <milo@ubuntu.com>
-
-       * it.po: Updated Italian translation by Luca Ferretti
-
-2009-03-03  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.10 ===
-
-2009-03-02  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.9 ===
-
-2009-03-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.in.in: Don't use obsolete calling convention for
-       config.status.
-
-2009-03-01  Matthias Clasen  <mclasen@redhat.com>
-
-       Bug 573527 – Wrong shell to run config.status in Makefile.in.in
-
-       * Makefile.in.in: Don't hardcode /bin/sh as shell.
-       Reported by Loïc Minier
-
-2009-02-28  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-       
-2009-02-28  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2009-02-27  Claude Paroz  <claude@2xlibre.net>
-
-       * fr.po: Updated French translation.
-
-2009-02-27  Rajesh Ranjan  <rranjan@redhat.com>
-
-       * mai.po: updated for maithili Translation.
-       
-2009-02-26  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2009-02-26  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2009-02-25  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-        * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
-        * zh_TW.po: Updated Traditional Chinese translation(Taiwan).
-
-2009-02-25  Sweta Kothari  <swkothar@redhat.com>
-
-       * gu.po: Committed Gujarati Translation.
-
-2009-02-25  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2009-02-24  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2009-02-23  Philip Withnall  <philip@tecnocode.co.uk>
-
-       * en_GB.po: Updated British English translation.
-
-2009-02-23  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2009-02-23  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * nl.po: Updated Dutch translation by Wouter Bolsterlee.
-
-2009-02-20  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2009-02-19  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2009-02-19  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2009-02-19  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2009-02-19  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2009-02-19  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-
-2009-02-19  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2009-02-18  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2009-02-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.8 ===
-
-2009-02-17  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Fixed wrong translations.
-
-2009-02-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.7 ===
-
-2009-02-14  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2009-02-13  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2009-02-10  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2009-02-07   Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2009-02-06  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2009-02-06  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2009-02-05  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2009-02-04  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * nl.po: Dutch translation updated by Wouter Bolsterlee.
-
-2009-02-04  Sweta Kothari  <swkothar@redhat.com>
-
-       * gu.po: Committed Gujarati Translation.
-
-2009-02-03  Sweta Kothari  <swkothar@redhat.com>
-
-       * gu.po: Committed Gujarati Translation.
-
-2009-02-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.6 ===
-
-2009-02-01  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-
-2009-01-30  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2009-01-30  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
-       * zh_TW.po: Updated Traditional Chinese translation(Taiwan).
-
-2009-01-28  Manoj Kumar Giri <mgiri@redhat.com>
-
-       * or.po: Updated Oriya Translation
-
-2009-01-27  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2009-01-26  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2009-01-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.5 ===
-
-2009-01-17  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2009-01-16  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2009-01-14  Luca Ferretti  <elle.uca@libero.it>
-
-       * POTFILES.in: Added missing gio/gemblemedicon.c
-
-2009-01-08  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2009-01-06  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2009-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.4 ===
-
-2009-01-05  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2009-01-04  Leonardo Ferreira Fontenelle  <leonardof@gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation.
-
-2009-01-04  甘露(Gan Lu) <rhythm.gan@gmail.com>
-
-       * zh_CN.po: Updated Chinese Simplified translation by
-       Deng Xiyue <manphiz@gmail.com>.
-
-2008-12-15  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-12-15  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-12-15  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.3 ===
-
-2008-12-10  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-12-09  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-12-08  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-12-06  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.2 ===
-
-2008-12-01  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.19.1 ===
-
-2008-11-13 Maxim Dziumanenko <dziumanenko@gmail.com>
-
-       * uk.po: Update Ukrainian translation.
-
-2008-11-08  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-10-16  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.19.0 ===
-
-2008-10-04 Og Maciel <ogmaciel@gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation by Vladimir Melo.
-
-2008-09-22 Kenneth Nielsen <k.nielsen81@gmail.com>
-
-       * da.po: Updated Danish translation by Kenneth Nielsen
-
-2008-09-22 Kenneth Nielsen <k.nielsen81@gmail.com>
-
-       * da.po: Updated Danish translation by Kenneth Nielsen
-
-2008-09-21  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
-
-       * ru.po: Updated Russian translation.
-
-2008-09-21  Wadim Dziedzic  <wdziedzic@aviary.pl>
-
-       * pl.po: Updated Polish translation
-
-2008-09-19  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation by
-       Mişu Moldovan <dumol@gnome.ro>
-
-2008-09-18  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Anas Afif Emad.
-
-2008-09-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.1 ===
-
-2008-09-17  Krishnababu K  <kkrothap@redhat.com>
-
-       * te.po: Updated Telugu Translation.
-
-2008-09-15  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-09-13  Baris Cicek  <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish Translation.
-
-2008-09-11  Rajesh Ranjan <rajeshkajha@yahoo.com>
-
-       * hi.po: Updated Hindi Translation.
-
-2008-09-09  Manoj Kumar Giri  <mgiri@redhat.com>
-
-       * or.po: Updated Oriya Translation
-
-2008-09-09  Runa Bhattacharjee  <runab@redhat.com>
-
-       * bn_IN.po: Updated Bengali India Translation
-
-2008-09-08  Robert Sedak  <robert.sedak@sk.t-com.hr>
-
-       * hr.po: Updated Croatian translation.
-
-2008-09-04  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2008-09-03  Philip Withnall  <philip@tecnocode.co.uk>
-
-       * en_GB.po: Updated British English translation.
-
-2008-09-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.18.0 ===
-
-2008-09-02  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2008-09-02  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * nl.po: Updated Dutch translation by Tino Meinen.
-
-2008-08-30  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2008-08-28  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-
-2008-08-28  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2008-08-28  Rajesh Ranjan  <rajeshkajha@yahoo.com>
-
-       * mai.po: Added Maithili translation.
-
-2008-08-27  Petr Kovar  <pknbe@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2008-08-25  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2008-08-25  Goran Rakic  <grakic@devbase.net>
-
-       * LINGUAS, sr@latin.po, sr@Latn.po: Conversion from sr@Latn to sr@latin.
-
-2008-08-24  Gintautas Miliauskas  <gintas@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2008-08-24 Maxim Dziumanenko <dziumanenko@gmail.com>
-
-       * uk.po: Update Ukrainian translation.
-
-2008-08-23  Priit Laes  <plaes at svn dot gnome dot org>
-
-       * et.po: Translation updated by Ivar Smolin
-
-2008-08-23  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2008-08-23  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2008-08-22  Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
-
-       * vi.po: Updated Vietnamese translation
-
-2008-08-21  Robert-André Mauchin  <zebob.m@pengzone.org>
-
-       * fr.po: Updated French translation.
-
-2008-08-19  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-08-18  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-08-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.7 ===
-
-=======
-2008-08-18  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian Translation.
-
-2008-08-15  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * POTFILES.in: Add missing file.
-       * nb.po: Update.
-
-2008-08-15  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-08-14  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2008-08-13  Leonardo Ferreira Fontenelle  <leonardof@gnome.org>
-
-       * pt_BR.po: Brazilian Portuguese translation updated by Henrique P.
-       Machado and Leonardo F. Fontenelle.
-
-2008-08-13  Sandeep Shedmake  <sshedmak@redhat.com>
-
-       * mr.po: Updated Marathi translations
-
-2008-08-12  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-08-12  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2008-08-12  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2008-08-10  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-08-10  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2008-08-09  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2008-08-08  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician translation
-
-2008-08-6  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-08-05  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-       * POTFILES.in: Added missing file.
-
-2008-08-05  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-08-05  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2008-08-04  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.6 ===
-
-2008-08-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.5 ===
-
-2008-08-04  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2008-07-31  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2008-07-29  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2008-07-29  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-07-28  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-07-26  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2008-07-23  Gil Forcada  <gforcada@gnome.org>
-
-       * ps.po: Minor update to Pashto by Zabeeh Khan.
-
-2008-07-23  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-wpV862008-07-22  Priit Laes  <plaes at svn dot gnome dot org>
-
-       * et.po: Translation updated by Ivar Smolin
-
-2008-07-21  Matthias Clasen  <mclasen2redhat.com>
-
-       * === Released 2.17.4 ===
-
-2008-07-20  Leonardo Ferreira Fontenelle  <leonardof@gnome.org>
-
-       * pt_BR.po: Brazilian Portuguese translation improvements.
-
-2008-07-20  Andre Klapper  <a9016009@gmx.de>
-
-       * de.po: Updated German translation
-
-2008-07-16  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian Translation.
-
-2008-07-15  Runa Bhattacharjee <runabh@gmail.com>
-
-       * ps.po: Added Pashto (ps) Translations by Zabeeh Khan.
-       * LINGUAS: Added Pashto (ps) to the List of Languages
-
-2008-07-14  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
-       * zh_TW.po: Updated Traditional Chinese translation(Taiwan).
-
-2008-07-13  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
-       * zh_TW.po: Updated Traditional Chinese translation(Taiwan).
-
-2008-07-10  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2008-07-04  Priit Laes  <plaes at svn dot gnome dot org>
-
-       * et.po: Translation updated by Ivar Smolin
-
-2008-07-03  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation, fix #540762.
-
-2008-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.3 ===
-
-2008-07-02  Yannig Marchegay <yannig@marchegay.org>
-
-       * oc.po: Updated Occitan translation.
-
-2008-06-23  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.2 ===
-
-2008-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.1 ===
-
-2008-06-11  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-06-10  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2008-06-07  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-05-31  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-05-31  Philipp Kerling  <k.philipp@gmail.com>
-
-       * de.po: Updated German translation.
-
-2008-05-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.17.0 ===
-
-2008-05-22  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-05-08  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2008-04-23  Yannig Marchegay  <yannig@marchegay.org>
-
-       * oc.po: Updated Occitan translation.
-
-2008-04-22  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2008-04-20  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-04-19  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-04-15  Philip Withnall  <pwithnall@svn.gnome.org>
-
-       * en_GB.po: Fixed British English translation.
-
-2008-04-02  Petr Kovar  <pknbe@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2008-03-23  Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
-
-       * vi.po: Update Vietnamese translation
-
-2008-03-20  Priit Laes  <plaes at svn dot gnome dot org>
-
-       * et.po: Translation updated by Ivar Smolin
-
-2008-03-18  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian Translation.
-
-2008-03-18  Simos Xenitellis  <simos@gnome.org>
-
-       * el.po: Updated Greek translation by Giannis Katsampiris.
-
-2008-03-18  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian Translation.
-
-2008-03-16  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated
-
-2008-03-15  Yuri Kozlov <kozlov.y@gmail.com>
-
-       * ru.po: Updated Russian translation.
-
-2008-03-15  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Updated Slovak translation.
-
-2008-03-12  Wouter Bolsterlee  <wbolster@svn.gnome.org>
-
-       * nl.po: Updated Dutch translation by Wouter Bolsterlee.
-
-2008-03-12  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2008-03-11  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2008-03-11  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2008-03-11  Philip Withnall  <pwithnall@svn.gnome.org>
-
-       * en_GB.po: Updated British English translation.
-
-2008-03-11 Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish translation
-
-2008-03-11  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2008-03-11  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2008-03-11  Gintautas Miliauskas  <gintas@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2008-03-11  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2008-03-11  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.1 ===
-
-2008-03-10  Kenneth Nielsen  <k.nielsen81@gmail.com>
-
-       * da.po: Updated Danish translation
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.16.0 ===
-
-2008-03-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * uk.po: Mark a string as fuzzy to fix the build
-
-2008-03-10  Runa Bhattacharjee <runab@fedoraproject.org>
-
-       * bn_IN.po: Updated Bengali India Translation
-
-2008-03-09  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Updated Slovak translation.
-
-2008-03-09  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-03-09  Yuri Kozlov  <kozlov.y@gmail.com>
-
-       * ru.po: Updated Russian translation.
-
-2008-03-07  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation
-
-2008-03-07  Gintautas Miliauskas  <gintas@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2008-03-05  Rahul Bhalerao <b.rahul.pm@gmail.com>
-
-       * mr.po: Updated Marathi Translations by Sandeep Shedmake.
-
-2008-03-05  Priit Laes  <plaes at svn dot gnome dot org>
-
-       * et.po: Translation updated by Ivar Smolin
-
-2008-03-05  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2008-03-04  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2008-03-04  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-03-03  Petr Kovar  <pknbe@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2008-03-03  Ani Peter <peter.ani@gmail.com>
-
-       * ml.po: Updated Malayalam Translation
-
-2008-03-03  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2008-03-02  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-03-02  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-02-29  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Estonian translation update by Ivar Smolin.
-
-2008-02-28  Stéphane Raimbault  <stephane.raimbault@gmail.com>
-
-       * fr.po: Updated French translation by Claude Paroz.
-
-2008-02-28  Amitakhya Phukan <amitakhya@svn.gnome.org>
-
-       * as.po: Updated Assamese translations.
-
-2008-02-26  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-02-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.6 ===
-
-2008-02-25  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2008-02-25  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2008-02-24  Åsmund Skjæveland  <aasmunds@ulrik.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2008-02-24  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Fix typo reported by Akom C.
-
-2008-02-23  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated
-
-2008-02-23  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Estonian translation update by Ivar Smolin.
-
-2008-02-22  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-02-22  Jonh Wendell  <jwendell@gnome.org>
-
-       * pt_BR.po: Brazilian Portuguese translation updated by Og Maciel.
-
-2008-02-22  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2008-02-19  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2008-02-18  Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
-
-       * vi.po: Updated Vietnamese translation
-
-2008-02-18  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2008-02-17  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-02-17  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-02-17  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2008-02-17  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated British English translation
-
-2008-02-16  Ihar Hrachyshka <booxter@lacinka.org>
-
-       * be@latin.po: Updated Belarusian Latin translation.
-
-2008-02-14  Runa Bhattacharjee <runabh@gmail.com>
-
-       * kn.po: Updated Kannada Translations by Shankar Prasad.
-
-2008-02-14  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2008-02-14  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2008-02-13  Ilkka Tuohela <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2008-02-11  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.15.5 ===
-
-2008-02-08  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2008-02-07  Gil Forcada  <gforcada@gnome.org>
-
-       * ca.po: Updated Catalan translation.
-
-2008-02-07  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2008-02-6  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-02-06  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2008-02-04  Jovan Naumovski  <jovan@lugola.net>
-
-       * mk.po: Updated Macedonian translation.
-
-2008-02-03  Leonardo Ferreira Fontenelle  <leonardof@svn.gnome.org>
-
-       * pt_BR.po: Brazilian Portuguese translation updated by Vladimir Melo
-       and Luiz Armesto.
-
-2008-02-01  Yannig Marchegay <yannig@marchegay.org>
-
-       * oc.po: Updated Occitan translation.
-
-2008-02-01  Runa Bhattacharjee <runabh@gmail.com>
-
-       * kn.po: Updated Kannada Translations by Shankar Prasad.
-
-2008-02-01  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2008-01-31  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Abou Manal.
-
-2008-01-30  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2008-01-30  Yannig Marchegay <yannig@marchegay.org>
-
-       * oc.po: Updated Occitan translation.
-
-2008-01-30  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2008-01-29  Yannig Marchegay <yannig@marchegay.org>
-
-       * oc.po: Updated Occitan translation.
-
-2008-01-29  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Abou Manal.
-
-2008-01-29  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-01-29  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-01-28  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.4 ===
-
-2008-01-28  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2008-01-27  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Khaled Hosny.
-
-2008-01-26  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-01-26  Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
-
-       * be.po: Updated Belarusian translation.
-
-2008-01-25  Petr Kovar <pknbe@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2008-01-25  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2008-01-25  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2008-01-24  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2008-01-24  Vasiliy Faronov <qvvx@yandex.ru>
-
-       * ru.po: Updated Russian translation.
-
-2008-01-23  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2008-01-21  Stéphane Raimbault  <stephane.raimbault@gmail.com>
-
-       * fr.po: Updated French translation by Claude Paroz.
-
-2008-01-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.3 ===
-
-2008-01-21  Tor Lillqvist  <tml@novell.com>
-
-       * el.po: Fix syntax error.
-
-2007-01-21  Kostas Papadimas  <pkst@gnome.org>
-
-       * el.po: Updated Greek translation.
-
-2008-01-17 Maxim Dziumanenko <dziumanenko@gmail.com>
-
-       * uk.po: Update Ukrainian translation.
-
-2008-01-16  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2008-01-16  Rahul Bhalerao <b.rahul.pm@gmail.com>
-
-       * mr.po: Updated Marathi translations given by Sandeep Shedmake.
-
-2008-01-15  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2008-01-14  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.2 ===
-
-2008-01-14  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2008-01-13  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2008-01-12  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Djihed Afifi.
-
-2008-01-12  Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish translation
-
-2008-01-12  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2008-01-09  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-01-09  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-008-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.1 ===
-
-2008-01-07  Luca Ferretti  <elle.uca@libero.it>
-
-       * POTFILES.in: remove deleted file gio/gdirectorymonitor.c
-
-       * it.po: Updated Italian translation.
-
-2008-01-07  Priit Laes  <plaes at svn dot gnome dot org>
-
-       * et.po: Translation updated by Ivar Smolin
-
-2008-01-06  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2008-01-06  Ihar Hrachyshka <booxter@lacinka.org>
-
-       * be@latin.po: Updated Belarusian Latin translation.
-
-2008-01-04  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2008-01-02  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2007-12-31  Yannig Marchegay <yannig@marchegay.org>
-
-       * oc.po: Updated Occitan translation.
-
-2007-12-27  Inaki Larranaga Murgoitio  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2007-12-23  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-23  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Djihed Afifi.
-
-2007-12-20  Seán de Búrca  <sdeburca@svn.gnome.org>
-
-       * ga.po: Updated Irish translation.
-
-2007-12-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.15.0 ===
-
-2007-12-19  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-12-17  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-15  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-15  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * POTFILES.in: Add gio-ls.c
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-12-14  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-14  Stéphane Raimbault  <stephane.raimbault@gmail.com>
-
-       * POTFILES.in: Updated file list (gio).
-       * fr.po: Updated French translation by Robert-André Mauchin and
-       Stéphane Raimbault.
-
-2007-12-13  Matej Urbančič <mateju@svn.gnome.org>
-
-       * sl.po: Updated Slovenian Translation.
-
-2007-12-13  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-11  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-11 Rahul Bhalerao <b.rahul.pm@gmail.com>
-
-       * mr.po: Added Marathi translations
-
-2007-12-09  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-09  Espen Stefansen  <espens@svn.gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-12-08  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-12-08  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * POTFILES.in: Add missing file.
-
-2007-12-08  Jakub Friedl  <jfriedl@suse.cz>
-
-       * cs.po: Czech Translation updated by Petr Kovar.
-
-2007-12-07  Leonardo Ferreira Fontenelle  <leonardof@svn.gnome.org>
-
-       * pt_BR.po: Brazilian Portuguese translation updated by Vladimir Melo.
-
-2007-12-08  Ihar Hrachyshka <booxter@lacinka.org>
-
-       * be@latin.po: Updated Belarusian Latin translation.
-
-2007-12-06  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-12-04  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2007-12-03  Andre Klapper  <a9016009@gmx.de>
-
-       * de.po: Updated German translation
-
-2007-12-01  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-12-01  Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
-
-       * be@latin.po: Updated Belarusian Latin translation.
-
-2007-11-29  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-11-28  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-11-27  Andre Klapper  <a9016009@gmx.de>
-
-       * POTFILES.in: Updated gio sources.
-
-2007-11-26  Alexander Larsson  <alexl@redhat.com>
-
-       * POTFILES.in:
-       Added gio sources
-
-2007-11-24  Claude Paroz  <claude@2xlibre.net>
-
-       * fr.po: Updated French translation.
-
-2007-11-23  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2007-11-19  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2007-11-18  Jorge Gonzalez  <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-11-13  Matej Urbančič <mateju@svn.gnome.org>
-
-       * sl.po: Updated Slovenian Translation.
-
-2007-11-07  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.14.3 ===
-
-2007-10-29  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Translation updated by Priit Laes.
-
-2007-10-21  Matej Urbančič  <mateju@svn.gnome.org>
-
-       * sl.po: Updated Slovenian translation.
-
-2007-10-23  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Djihed Afifi.
-
-2007-10-21  Seán de Búrca  <sdeburca@svn.gnome.org>
-
-       * ga.po: Updated Irish translation.
-
-2007-10-21  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Djihed Afifi.
-
-2007-10-19  Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
-
-       * be@latin.po: Updated Belarusian Latin translation.
-
-2007-10-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.2 ===
-
-2007-10-15  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2007-09-30  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2007-09-29  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2007-09-17  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Djihed Afifi.
-
-2007-09-19  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.1 ===
-
-2007-09-16  Inaki Larranaga Murgoitio  <dooteo@zundan.com>
-
-       * eu.po: Updated Basque translation.
-
-2007-09-16  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2007-09-15  Artur Flinta  <aflinta@svn.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2007-09-14  Vladimer Sichinava  <vsichi@gnome.org>
-
-       * ka.po: Updated Georgian translation.
-
-2007-09-14 Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-
-2007-09-14  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated British English translation
-
-2007-09-13  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation
-       by Mişu Moldovan <dumol@gnome.ro>
-
-2007-09-12  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2007-09-10  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2007-09-07 Maxim Dziumanenko <dziumanenko@gmail.com>
-
-       * Update Ukrainian translation.
-
-2007-09-07  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
-
-       * ru.po: Updated Russian translation
-
-2007-09-06  Goran Rakić  <grakic@devbase.net>
-
-       * sr.po, sr@Latn.po: Updated Serbian translation.
-
-2007-09-05  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2007-09-04  Kenneth Nielsen  <k.nielsen81@gmail.com>
-
-       * da.po: Updated Danish translation
-
-2007-09-03  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2007-09-03  Stéphane Raimbault  <stephane.raimbault@gmail.com>
-
-       * fr.po: Fixed French translation.
-
-2007-08-31  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2007-08-31  Pramod Raghavendra <pramodleo@yahoo.co.uk>
-
-       * kn.po: Updated Kannada translation by Shankar Prasad.
-
-2007-08-30  Stéphane Raimbault  <stephane.raimbault@gmail.com>
-
-       * fr.po: Updated French translation by Stéphane Raimbault and
-       Claude Paroz.
-
-2007-08-26  Josep Puigdemont i Casamajó  <josep.puigdemont@gmail.com>
-
-       * ca.po: Updated Catalan translation.
-
-2007-08-26  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2007-08-26  Raphael Higino  <raphaelh@svn.gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation
-       by Vladimir Melo <vladimirmelo@foresightlinux.org>.
-
-2007-08-20  Claude Paroz  <claude@2xlibre.net>
-
-       * kn.po: Make 2 strings fuzzy to make msgfmt pass (and glib compile again!)
-
-2007-08-20  Pramod Raghavendra <pramodleo@yahoo.co.uk>
-
-       * kn.po: Updated Kannada translation by Shankar Prasad.
-
-2007-08-19  Duarte Loreto <happyguy_pt@hotmail,com>
-
-       * pt.po: Updated Portuguese translation.
-
-2007-08-16  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Estonian translation update by Ivar Smolin.
-
-2007-08-15  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2007-08-14  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2007-08-14  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2007-08-13  Žygimantas Beručka  <zygis@gnome.org>
-
-       * lt.po: Updated Lithuanian translation.
-
-2007-08-13  I. Felix <ifelix@svn.gnome.org>
-
-       * ta.po:  Tamil Translation updated by Tirumurthi Vasudevan
-
-2007-08-12  Jovan Naumovski  <jovan@lugola.net>
-
-       * mk.po: Updated Macedonian translation.
-
-2007-08-11  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2007-08-10  Jorge Gonzalez <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-08-10  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2007-08-10  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2007-08-09  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated translation.
-
-2007-08-09  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2007-08-06  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2007-08-05  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2007-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.14.0 ===
-
-2007-08-03  Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish translation
-
-2007-08-03  Ani Peter  <peter.ani@gmail.com>
-
-       * ml.po: Updated Malayalam Translation
-
-2007-08-02  Wadim Dziedzic  <wadimd@svn.gnome.org>
-
-       * pl.po: Updated polish translation
-
-2007-07-25  Inaki Larranaga Murgoitio
-
-       * eu.po: Updated Basque translation.
-
-2007-07-25  Amitakhya Phukan <amitakhya@svn.gnome.org>
-
-       * as.po:  Updated Assamese Translation.
-
-2007-07-21  Leonardo Ferreira Fontenelle  <leonardof@svn.gnome.org>
-
-       * pt_BR.po: Brazilian Portuguese translation updated.
-
-2007-07-18  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated.
-
-2007-07-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.7 ===
-
-2007-07-11  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation
-
-2007-07-10  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation
-
-2007-07-10 Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-
-2007-07-10  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2007-07-10  Runa Bhattacharjee <runabh@gmail.com>
-
-       * bn _IN.po: Updated Bengali India Translation.
-
-2007-07-06  Amitakhya Phukan <amitakhya@svn.gnome.org>
-
-       * as.po:  Updated Assamese Translation.
-       * LINGUAS: Added Assamese (as) to the list of languages.
-
-2007-07-05  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2007-07-04  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation by Eunju Kim.
-
-2007-07-03  Jovan Naumovski  <jovan@lugola.net>
-
-       * mk.po: Updated Macedonian translation.
-
-2007-06-30  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2007-06-29  Jorge Gonzalez <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-       * Added missing files to POTFILES.in
-
-Fri Jun 29 2007  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.6 ===
-
-2007-06-23  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-06-22  I. Felix <ifelix@svn.gnome.org>
-
-       * si.po:  Sinhala Translation updated by Danishka Navin
-       * LINGUAS: Added Sinhala (si) to The List of Languages.
-
-2007-06-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.5 ===
-
-2007-06-17  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Estonian translation update by Ivar Smolin.
-
-2007-06-15  Jorge Gonzalez <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-06-13  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2007-06-11  Subhransu Behera  <arya_subhransu@yahoo.co.in>
-
-       * or.po: Updated Oriya Translation.
-
-2007-06-10  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2007-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.4 ===
-
-2007-06-04  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.3 ===
-
-2007-06-04  Matthias Clasen <mclasen@redhat.com>
-
-       * nb.po: Comment out one translation that breaks the build
-
-2007-06-04  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-05-24  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Updated Estonian translation by Ivar Smolin <okul@linux.ee>.
-
-2007-05-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.2 ===
-
-2007-05-22  Jorge Gonzalez <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-05-21  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2007-05-19  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2007-05-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * POTFILES.in: Add gregex.c (#436955, Philip Withnall)
-
-2007-05-17  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2007-05-15  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated British English translation
-
-2007-05-15  Subhransu Behera  <arya_subhransu@yahoo.co.in>
-
-       * or.po: Updated Oriya Translation.
-
-2007-05-06  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-05-06  Ihar Hrachyshka <iharh@gnome.org>
-
-       * be@latin.po: Updated Belarusian Latin translation.
-
-2007-05-03  Jorge Gonzalez <jorgegonz@svn.gnome.org>
-
-       * es.po: Updated Spanish translation
-
-2007-05-03  Matthias Clasen <mclasen@redhat.com>
-
-       * === Released 2.13.1 ===
-
-2007-05-2  Djihed Afifi <djihed@gmail.com>
-
-       * ar.po: Updated Arabic Translation by Djihed Afifi.
-
-2007-04-15  Funda Wang  <fundawang@gmail.com>
-
-       * zh_CN.po: Updated Simplified Chinese translation from Yang Zhang.
-
-2007-03-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.13.0 ===
-
-2007-03-11  Goran Rakić  <grakic@devbase.net>
-
-       * sr.po, sr@Latn.po: Updated Serbian translation.
-
-2007-03-11  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation by
-       Mişu Moldovan <dumol@gnome.ro>
-
-2007-03-08  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2007-03-06  Jovan Naumovski  <jovan@lugola.net>
-
-       * mk.po: Updated Macedonian translation.
-
-2007-03-03  Thierry Randrianiriana  <randrianiriana@gmail.com>
-
-       * mg.po: Added Malagasy translation.
-
-2007-03-01  Ihar Hrachyshka <iharh@gnome.org>
-       * be.po: Added new Belarusian Latin translation.
-
-2007-02-27  Abel Cheung  <abelcheung@gmail.com>
-
-       * zh_HK.po, zh_TW.po: Updated traditional Chinese translation by
-       Woodman Tuen <wmtuen@gmail.com>.
-
-2007-02-27  Gintautas Miliauskas  <gintas@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2007-02-22  Gintautas Miliauskas  <gintas@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2007-02-17  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2007-01-19  Maxim Dziumanenko <dziumanenko@gmail.com>
-
-       * uk.po: Updated Ukrainian translation.
-
-2007-01-10  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2007-01-10  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2007-01-09  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated English (British) translation
-
-2007-01-08  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2007-01-07  Priit Laes  <plaes@svn.gnome.org>
-
-       * et.po: Estonian translation update by Ivar Smolin.
-
-2007-01-05  Jakub Friedl  <jfriedl@suse.cz>
-
-       * cs.po: Updated Czech translation.
-
-2007-01-05  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2007-01-04  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2007-01-04  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2006-12-28  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated English (British) translation
-
-2006-12-17 Matthias Clasen <mclasen@redhat.com>
-
-       * Makefile.in.in: Define datarootdir, to silence autoconf 2.60
-
-2006-12-07  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2006-10-31  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po:  Updated Hebrew translation.
-
-2006-10-04  Jakub Friedl  <jfriedl@suse.cz>
-
-       * cs.po: Updated Czech translation.
-
-2006-09-09  David Lodge
-
-       * en_GB.po: Updated British English translation.
-
-2006-09-05  Pawan Chitrakar  <pchitrakar@gmail.com>
-
-       * ne.po: Updated Nepali Translation
-
-2006-09-04  Roozbeh Pournader  <roozbeh@farsiweb.info>
-
-       * fa.po: Updated Persian translation by Meelad Zakaria.
-
-2006-09-04  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation by
-       Mişu Moldovan <dumol@gnome.ro>
-
-2006-09-03  Lucas Rocha  <lucasr@gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation
-       by Leonardo Ferreira Fontenelle <leo.fontenelle@gmail.com>
-
-2006-09-02  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2006-08-31  Khandakar Mujahidul Islam  <suzan@bengalinux.org>
-
-       * bn.po: Updated Bengali translation
-
-2006-08-30  I. Felix  <ifelix25@gmail.com>
-
-       * ta.po: Translation updated.
-
-2006-08-26  Žygimantas Beručka  <zygis@gnome.org>
-
-       * lt.po: Updated Lithuanian translation.
-
-2006-08-26  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation from
-       Robert-André Mauchin <zebob.m@gmail.com>.
-
-2006-08-26  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-
-2006-08-24  Josep Puigdemont i Casamajó  <josep.puigdemont@gmail.com>
-
-       * ca.po: Updated Catalan translation (rebased from 2-12 branch).
-
-2006-08-23  Khandakar Mujahdul Islam <suzan@bengalinux.org>
-
-       * bn.po: Updated Bengali translation
-
-2006-08-20  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2006-08-20  Ani Peter <peter.ani@gmail.com>
-
-       * ml.po: Updated Malayalam translation
-
-2006-08-18  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2006-08-18  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2006-08-17  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2006-08-16  Satoru SATOH <ss@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2006-08-16  Erdal Ronahi  <erdal.ronahi@gmail.com>
-
-       * ku.po: Updated Kurdish translation.
-
-2006-08-16  Daniel Nylander <po@danielnylander.se>
-
-       * sv.po: Updated Swedish translation.
-
-2006-08-16  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Translation updated.
-
-2006-08-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.2 ===
-
-2006-08-16  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2006-08-16  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2006-08-15  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2006-08-11  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2006-08-10  Josep Puigdemont i Casamajó  <josep.puigdemont@gmail.com>
-
-       * ca.po: Updated Catalan translation.
-
-2006-08-10  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * dz.po: Updated Dzongkha translation by
-       Dzongkhalinux team, DIT
-
-2006-08-09  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2006-08-09     Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish Translation from Onur Can Cakmak
-
-2006-08-09  Wouter Bolsterlee  <uws+gnome@xs4all.nl>
-
-       * nl.po: Translation updated by Wouter Bolsterlee.
-
-2006-08-08  Inaki Larranaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2006-08-07  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2006-08-06  Francisco Javier F. Serrador  <serrador@openshine.com>
-
-       * es.po: Updated Spanish translation.
-
-2006-08-06  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2006-08-05  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
-       * zh_TW.po: Updated Traditional Chinese translation(Taiwan).
-
-2006-08-03  Jakub Friedl <jfriedlo@suse.cz>
-
-       * cs.po: Updated Czech translation.
-
-2006-07-31  Maxim Dziumanenko <dziumanenko@gmail.com>
-
-       * uk.po: Updated Ukrainian translation.
-
-2006-07-22  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.1 ===
-
-2006-07-22  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2006-07-21  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2006-07-21  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation from
-       Jonathan Ernst <jonathan@ernstfamily.ch>.
-
-2006-07-21  Josep Puigdemont i Casamajó  <josep.puigdemont@gmail.com>
-
-       * ca.po: Updated Catalan translation.
-
-2006-07-18  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * dz.po: Updated Dzongkha translation by
-       Dzongkhalinux team, DIT
-
-2006-07-17  Runa Bhattacharjee <runabh@gmail.com>
-
-       * bn_IN.po:Updated Bengali India Translation.
-
-2006-07-11  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2006-07-08  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Fixed a typo.
-
-2006-07-07  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2006-07-06  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2006-07-05  Inaki Larranaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2006-07-05  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2006-07-05  Jovan Naumovski  <jovan@lugola.net>
-
-       * mk.po: Updated Macedonian translation.
-
-2006-07-03  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2006-07-03  Subhransu Behera  <arya_subhransu@yahoo.co.in>
-
-       * or.po: Updated Oriya Translation
-
-2006-07-03  Runa Bhattacharjee <runabh@gmail.com>
-
-       * bn_IN.po: Added Bengali India Translation.
-
-2006-07-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.12.0 ===
-
-2006-06-29  Rhys Jones  <rhys@sucs.org>
-
-       * cy.po: Updated Welsh translation.
-
-2006-06-26  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2006-06-25  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2006-06-20  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.4 ===
-
-2006-06-20  Rajesh Ranjan <rajeshkajha@yahoo.com>
-
-       * hi.po: Updated Hindi Translation.
-
-2006-06-19  Hendrik Richter  <hendrikr@gnome.org>
-
-       * de.po: Updated German translation.
-
-2006-06-19  Benoît Dejean  <benoit@placenet.org>
-
-       * fr.po: Updated French translation.
-
-2006-06-19  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2006-06-19  Francisco Javier F. Serrador  <serrador@openshine.com>
-
-       * es.po: Updated Spanish translation.
-
-2006-06-17  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2006-06-17  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2006-06-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.3 ===
-
-2006-06-06  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2006-06-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.2 ===
-
-2006-06-06  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2006-05-28  Pema Geyleg  <pema.geyleg@gmail.com>
-
-       * dz.po: Updated Dzongkha translation.
-
-2006-05-25  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2006-05-25  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2006-05-24  Inaki Larranaga  <doteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2006-05-23  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2006-05-21  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation
-       by Alexander Shopov  <ash@contact.bg>
-
-2006-05-17  Takeshi AIHANA <takeshi.aihana@gmail.com>
-
-       * ja.po: Updated Japanese translation.
-
-2006-05-16  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2006-05-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.1 ===
-
-2006-05-06  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2006-05-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.11.0 ===
-
-2006-05-02  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2006-05-02  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2006-04-30  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * POTFILES.in: Add gbookmarkfile.c
-       * nb.po: Adjust accordingly.
-
-2006-04-30  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-
-2006-04-23  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2006-04-23  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2006-04-21  David Lodge  <dave@cirt.net>
-
-       * en_GB.po: Translation updated by David Lodge.
-
-2006-04-21  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2006-04-21  Rajesh Ranjan <rajeshkajha@yahoo.com>
-
-       * hi.po: Updated Hindi Translation.
-
-2006-04-19  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2006-04-18  Rajesh Ranjan <rajeshkajha@yahoo.com>
-
-       * hi.po: Updated Hindi Translation.
-
-2006-04-18  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2006-04-17  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2006-04-11  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2006-04-10  Vladimer Sichinava  <vlsichinava@gmail.com>
-
-       * ka.po: Updated Georgian translation.
-
-2006-04-07  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2006-04-07  Priit Laes  <amd@store20.com>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2006-04-02  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2006-03-27  Yair Hershkovitz  <yairhr@gmail.com>
-
-       * he.po: Updated Hebrew translation.
-
-2006-03-13  Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish Translation
-
-2006-03-13  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation by
-       Mişu Moldovan <dumol@gnome.ro>
-
-2006-03-10  Guilherme de S. Pastore  <gpastore@gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation from Leandro
-       A. F. Pereira <leandro@linuxmag.com.br>.
-
-2006-03-06  Rajesh Ranjan <rranjan@redhat.com>
-
-       * hi.po: Updated Hindi Translation.
-
-2006-03-06  Rajesh Ranjan <rranjan@redhat.com>
-
-       * hi.po: Updated Hindi Translation.
-
-2006-03-06  Rajesh Ranjan <rranjan@redhat.com>
-
-       * hi.po: Updated Hindi Translation.
-
-2006-03-10  Subhransu Behera <sbehera@redhat.com>
-
-       * or.po: Updated Oriya translation
-
-2006-03-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * ===  Released 2.10.1 ===
-
-2006-03-07  Daniel Nylander  <po@danielnylander.se>
-
-       * sv.po: Swedish translation updated.
-
-2006-03-03  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Hungarian translation updated.
-
-2006-02-25  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2006-02-25  Benoît Dejean  <benoit@placenet.org>
-
-       * fr.po: Updated French translation.
-
-2006-02-25  Žygimantas Beručka  <zygis@gnome.org>
-
-       * lt.po: Updated Lithuanian translation.
-
-2006-02-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.10.0 ===
-
-2006-02-23  Clytie Siddall <clytie@riverland.net.au>
-
-       * ka.po: Added Georgian translation by Gia Shervashidze <giasher@telenet.ge>.
-
-2006-02-21  Inaki Larranaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2006-02-20  Kostas Papadimas  <pkst@gnome.org>
-
-       * el.po: Updated Greek translation.
-
-2006-02-16  Maxim Dziumanenko <mvd@mylinux.ua>
-
-       * uk.po: Updated Ukrainian translation
-
-2006-02-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.6 ===
-
-2006-02-08  Luca Ferretti  <elle.uca@libero.it>
-
-       * it.po: Updated Italian translation.
-
-2006-02-07  Lukas Novotny  <lukasnov@cvs.gnome.org>
-
-       * cs.po: Updated Czech translation.
-
-2006-02-04  Rhys Jones  <rhys@sucs.org>
-
-       * cy.po: Updated Welsh translation.
-
-2006-02-03  Rhys Jones  <rhys@sucs.org>
-
-       * cy.po: Updated Welsh translation.
-
-2006-02-01  Leonid Kanter <leon@asplinux.ru>
-
-       * ru.po: Updated Russian translation
-
-2006-01-31  Slobodan D, Sredojevic  <slobo@akrep.be>
-
-       * sr.po, sr@Latn.po: Updated Serbian translation
-
-2006-01-30  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2006-01-28  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2006-01-28  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2006-01-27  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.5 ===
-
-2006-01-24  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2006-01-21  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2006-01-18  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Updated Danish translation.
-
-2006-01-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.4 ===
-
-2006-01-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.3 ===
-
-2006-01-16  Hendrik Richter  <hendi@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2006-01-16  Hendrik Brandt  <heb@gnome-de.org>
-
-       * de.po: Updated translation, Bugfixes, closed Bug #327196
-
-2006-01-12  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2006-01-09  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2005-01-09  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2006-01-08  Takeshi AIHANA <aihana@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2006-01-07  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2006-01-07  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2006-01-06  Josep Puigdemont i Casamajó  <josep.puigdemont@gmail.com>
-
-       * ca.po: Updated Catalan translation.
-
-2006-01-07  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2006-01-07  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2006-01-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.2 ===
-
-2006-01-04  Abel Cheung  <maddog@linuxhall.org>
-
-       * zh_HK.po: New Chinese (Hong Kong) translation
-       * zh_TW.po: Updated Chinese (Taiwan) translation
-
-2006-01-02  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-       * no.po: Same
-
-2005-12-26  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2005-12-25  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-12-19  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2005-12-18  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2005-12-09  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.1 ===
-
-2005-12-01  Christian Rose  <menthos@menthos.com>
-
-       * tl.po: Updated Tagalog translation by
-       Eric Pareja <xenos@upm.edu.ph>.
-
-2005-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.9.0 ===
-
-2005-11-16  Ales Nyakhaychyk  <nab@mail.by>
-
-       * be.po: Updated Belarusian translation by Vital Khilko
-
-2005-11-10  Simos Xenitellis  <simos@gnome.org>
-
-       * tt.po: Added Tatar translation by Albert Fazlí.
-
-2005-11-02  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2005-11-01  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>
-
-       * ku.po: Added Kurdish translation.
-
-2005-10-26  Takeshi AIHANA <aihana@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation and
-               Fixed typos reported by kano@na.rim.or.jp.
-
-2005-10-25  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2005-10-20  Runa Bhattacharjee  <runa@bengalinux.org>
-
-       * bn.po: Updated Bengali(bn) Translation
-       by Mahay Alam Khan <makl10n@yahoo.com>
-
-2005-10-20  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician Translation.
-
-2005-10-17  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2005-10-17 Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_TW.po: Updated Traditional Chinese translation.
-
-2005-10-16  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Updated Slovak translation.
-
-2005-09-30  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-09-26  Martin Willemoes Hansen  <mwh@sysrq.dk>
-
-       * da.po: Updated Danish translation.
-
-2005-09-25  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2005-09-06  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.in.in: Tell xgettext about all the
-       printf-like functions we use.
-
-2005-09-05  Iñaki Larrañaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2005-09-04  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2005-09-03  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_TW.po: Updated Traditional Chinese translation.
-
-2005-09-02  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2005-09-01  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2005-09-01  Raphael Higino  <raphaelh@cvs.gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation.
-
-2005-09-01  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2005-08-31  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation
-       for Mişu Moldovan <dumol@gnome.ro>
-
-2005-08-30  Mohammad DAMT  <mdamt@gnome.org>
-
-       * id.po: Updated Indonesian translation.
-
-2005-08-29  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2005-08-28  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-08-28  Maxim Dziumanenko <mvd@mylinux.ua>
-
-       * uk.po: Updated Ukrainian translation
-
-2008-08-28  Josep Puigdemont  <josep.puigdemont@gmail.com>
-
-       * ca.po: Updated Catalan translation.
-
-2005-08-28  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2005-08-27  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-08-27  Terance Sola  <terance@lyse.net>
-
-       * nb.po: Updated Norwegian bokmål translation.
-       * no.po: Same.
-
-2005-08-27  Clytie Siddall <clytie@riverland.net.au>
-
-       * vi.po: Updated Vietnamese translation.
-
-2005-08-27  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2005-08-27 Ankit Patel <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2005-08-27  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation by
-       Mişu Moldovan <dumol@gnome.ro>
-
-2005-08-27  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-08-26  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2005-08-26  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Updated Catalan translation.
-
-2005-08-26  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-=======
-2005-09-01  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2005-09-01  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-08-31  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-09-01  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation by
-       Mişu Moldovan <dumol@gnome.ro>
-
-2005-08-31  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2005-08-31  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated the Greek translation>
-
-2005-08-31  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Updated Norwegian bokmål translation.
-       * no.po: Same
-
-2005-08-31  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Hungarian translation updated.
-
-2005-08-30  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2005-08-30  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2005-08-30  Leonid Kanter <leon@asplinux.ru>
-
-       * ru.po: Updated Russian translation
-
-2005-08-30  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2005-08-30  Jordi Mallach  <jordi@sindominio.net>
-
-* ca.po: Updated Catalan translation.
-
-2005-08-30  Ankit Patel  <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2005-08-29  Alessio Frusciante  <algol@firenze.linux.it>
-
-       * it.po: Updated Italian translation by
-       Luca Ferretti <elle.uca@infinito.it>.
-
-2005-08-28  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-08-27  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2005-08-23  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.1 ===
-
-2005-08-22  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2005-08-18  Rhys Jones  <rhys@sucs.org>
-
-       * cy.po: Updated Welsh translation.
-
-2005-08-15  Maxim Dziumanenko <mvd@mylinux.com.ua>
-
-       * uk.po: Updated Ukrainian translation
-
-2005-08-15  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Updated Catalan translation.
-
-2005-08-15  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation
-       by Mişu Moldovan <dumol@gnome.ro>
-
-2005-08-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.8.0 ===
-
-2005-08-12  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated the Greek translation>
-
-2005-08-08  Sunil Mohan Adapa  <sunil@atc.tcs.co.in>
-
-       * te.po: Added Telugu translation done by
-       Vikram Phaneendra <vikramphaneendra@yahoo.co.in>
-       Dandu Prasad <dandu_prasad2000@yahoo.com>
-       Ramana Sai <rmn_sai@yahoo.co.in>
-
-2005-08-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.7 ===
-
-2005-08-03  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.6 ===
-
-2005-08-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.5 ===
-
-2005-07-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * Makefile.in.in: Call msgfmt with -c to catch
-       format errors.
-
-2005-07-28  Ilkka Tuohela  <hile@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2005-07-27  Christian Neumair  <chris@gnome-de.org>
-
-       * de.po: Fixed format specifiers. Thanks to Murray Cumming for
-       pointing this out.
-
-2005-07-26  Hendrik Brandt  <heb@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2005-07-26  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2005-07-25 Ankit Patel <ankit644@yahoo.com>
-
-       * gu.po: Updated Gujarati Translation.
-
-2005-07-24  Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish Translation from Onur Can Cakmak
-
-2005-07-22  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_TW.po Updated Traditional Chinese translation.
-
-2005-07-22  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2005-07-21  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.4 ===
-
-2005-07-18  Matthias Clasen  <mclasen@redhat.com>
-
-       * de.po: Fix some printf formatting in the German
-       translation.  (#310731, Max Horn)
-
-2005-07-18  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2005-07-17  Žygimantas Beručka  <zygis@gnome.org>
-
-       * lt.po: Updated Lithuanian translation.
-
-2005-07-16  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2005-07-15  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.3 ===
-
-2005-07-13  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Update some
-       * no.po: Update
-
-2005-07-12  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Hungarian translation updated.
-
-2005-07-10  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2005-07-09  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2005-07-09  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2005-07-08  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.2 ===
-
-2005-07-08  Danilo Šegan  <danilo@gnome.org>
-
-       * sr.po, sr@Latn.po: Updated Serbian translation.
-
-2005-07-06  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-07-03  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-07-02  Takeshi AIHANA <aihana@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2005-07-02  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated.
-
-2005-07-01  Chao-Hsiung Liao  <j_h_liau@yahoo.com.tw>
-
-       * zh_TW.po: Updated Traditional Chinese translation.
-
-2005-06-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.1 ===
-
-2005-06-28  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Updated Thai translation.
-
-2005-06-25  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Updated Slovak translation.
-
-2005-06-24  Matthias Clasen  <mclasen@redhat.com>
-
-       * POTFILES.in: Add gmappedfile.c
-
-2005-06-22  Abel Cheung  <maddog@linuxhall.org>
-
-       * zh_TW.po: Fix language team reference.
-
-2005-06-21  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated.
-
-2005-06-17  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-06-16  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2005-06-15  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Updated Slovak translation.
-
-2005-06-14  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Added Thai translation.
-
-2005-06-13  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-06-13  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2005-06-13  Terance Sola  <terance@lyse.net>
-
-       * nb.po: Updated Norwegian translation.
-       * no.po: Same as above.
-
-2005-06-12  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2005-06-11  Martin Willemoes Hansen  <mwh@sysrq.dk>
-
-       * da.po: Updated Danish translation.
-
-2005-06-10  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated.
-
-2005-06-10  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.7.0 ===
-
-2005-06-08  Martin Willemoes Hansen  <mwh@sysrq.dk>
-
-       * da.po: Updated Danish translation.
-
-2005-06-06  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2005-06-05  Ignacio Casal Quinteiro  <nacho.resa@gmail.com>
-
-       * gl.po: Updated Galician translation.
-
-2005-05-30  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2005-05-30  Sanlig Badral  <badral@openmn.org>
-
-       * mn.po: Updated Mongolian translation.
-
-2005-05-29  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2005-05-28  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-05-21  Pawan Chitrakar  <pawan@nplinux.org>
-
-       * ne.po: Updated Translation
-
-2005-05-15  Pawan Chitrakar  <pawan@nplinux.org>
-
-       * ne.po: Updated Translation
-
-2005-05-14  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2005-05-14  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2005-05-02  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Ivar Smolin.
-
-2005-04-30  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2005-04-27  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Hungarian translation added.
-
-2005-04-23  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-04-18  David Lodge  <dave@cirt.net>
-
-       * en_GB.po: Updated British English translation.
-
-2005-04-17  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-04-12  Iaki Larraaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2005-04-12  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2005-04-07  Gareth Owen  <gowen72@yahoo.com>
-
-       * en_GB.po: Updated British English translation
-
-2005-03-31  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2005-03-30  Steve Murphy  <murf@e-tools.com>
-
-       * rw.po: Added Kinyarwanda translation.
-
-2005-03-30  Estêvão Samuel Procópio <tevaum@ig.com.br>
-
-       * pt_BR.po: Updated Brazilian Portuguese Translation.
-
-2005-03-15  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-03-13  Roozbeh Pournader  <roozbeh@farsiweb.info>
-
-       * fa.po: Updated Persian translation by
-       Hamed Malek <hamed@farsiweb.info>.
-
-2005-03-09  Ahmad Riza H Nst  <ari@160c.afraid.org>
-
-       * id.po: Updated Indonesian Translation
-
-2005-03-05  Dan Damian  <dand@gnome.ro>
-
-       * ro.po: Updated Romanian translation by
-       Mişu Moldovan <dumol@go.ro>.
-
-2005-02-28  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated the Greek translation>
-
-2005-02-20  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2005-02-16  Adi Attar  <aattar@cvs.gnome.org>
-
-       * xh.po: Added Xhosa translation
-
-2005-02-15  Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish Translation by Onur Can Cakmak
-
-2005-02-13  Benoît Dejean  <TazForEver@dlfp.org>
-
-       * fr.po: Updated French translation.
-
-2005-02-11  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr.po, sr@Latn.po: Updated Serbian translation.
-
-2005-02-09  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2005-02-09  Maxim Dziumanenko <mvd@mylinux.com.ua>
-
-       * uk.po: Updated Ukrainian translation
-
-2005-02-06  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated  Greek translation.
-
-2005-02-01  Raphael Higino  <raphaelh@cvs.gnome.org>
-
-       * pt_BR.po: Updated Brazilian Portuguese translation.
-
-2005-01-31  Žygimantas Beručka  <uid0@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2005-01-30  Alessio Frusciante  <algol@firenze.linux.it>
-
-       * it.po: Updated Italian translation by
-       Luca Ferretti <elle.uca@infinito.it>.
-
-2005-01-28  Christian Rose  <menthos@menthos.com>
-
-       * tl.po: Added Tagalog translation by
-       Eric Pareja <xenos@upm.edu.ph>.
-
-2005-01-14  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Updated Catalan translation.
-
-2005-01-14  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Updated Slovak translation.
-
-2005-01-10  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2005-01-10  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2005-01-09  Alessio Frusciante  <algol@firenze.linux.it>
-
-       * it.po: Updated Italian translation by
-       Luca Ferretti <elle.uca@infinito.it>.
-
-2005-01-07  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.1 ===
-
-2005-01-06  Rhys Jones <rhys@sucs.org>
-
-       * cy.po: Updated Welsh translation.
-
-2004-12-18  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2004-12-18  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2004-12-18  Hendrik Brandt  <heb@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2004-12-17  Leonid Kanter <leon@asplinux.ru>
-
-       * ru.po: Updated Russian translation
-
-2004-12-17  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-12-16  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.6.0 ===
-
-2004-12-13  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated British translation.
-
-2004-12-12  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation
-
-2004-12-07  Martin Willemoes Hansen  <mwh@sysrq.dk>
-
-       * da.po: Updated Danish translation.
-
-2004-12-04  Žygimantas Beručka  <uid0@akl.lt>
-
-       * lt.po: Updated Lithuanian translation.
-
-2004-12-04  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2004-12-04  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2004-12-03  Takeshi AIHANA <aihana@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2004-12-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.7 ===
-
-2004-12-01  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2004-11-30  Martin Willemoes Hansen  <mwh@sysrq.dk>
-
-       * da.po: Updated Danish translation.
-
-2004-11-29  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2004-11-29  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2004-11-24  Martin Willemoes Hansen  <mwh@sysrq.dk>
-
-       * da.po: Updated Danish translation.
-
-2004-11-22  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2004-11-22  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2004-11-21  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated British translation.
-
-2004-11-20  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-11-18  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2004-11-18  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2004-11-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * POTFILES.in: Add gkeyfile.c
-
-2004-11-15  Hendrik Richter  <hendrik@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2004-11-12  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.6 ===
-
-2004-11-09  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2004-11-08  Baris Cicek <baris@teamforce.name.tr>
-
-       * tr.po: Updated Turkish Translation by Onur Can Cakmak
-
-2004-11-04  Martin Willemoes Hansen  <mwh@sysrq.dk>
-
-       * da.po: Updated Danish translation.
-
-2004-11-03  Takeshi AIHANA <aihana@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2004-11-02  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.5 ===
-
-2004-10-27 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.4 ===
-
-2004-10-27  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Update Norwegian bokmål translation.
-
-2004-10-26  Gora Mohanty  <gmohanty@cvs.gnome.org>
-
-       * or.po: Updated Oriya translation.
-
-2004-10-25  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Update.
-
-2004-10-19  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-10-15  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr.po, sr@Latn.po: Updated Serbian translation.
-
-2004-10-04  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2004-10-03  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Updated British English translation.
-
-2004-10-03  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2004-10-03  Ryoichi INAGAKI  <ryo1@bc.wakwak.com>
-
-       * ja.po: Updated Japanese translation.
-
-2004-09-24  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2004-09-18 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.3 ===
-
-2004-09-06  Åsmund Skjæveland <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2004-09-05  Marius Andreiana <marius galuna.ro>
-
-       * ro.po: updated by Misu Moldovan
-
-2004-08-31  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanih translation.
-
-2004-08-25 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.2 ===
-
-2004-08-24  Pawan Chitrakar  <pawan@nplinux.org>
-
-       * ne.po: Update Nepali Translation
-
-2004-08-23  Iñaki Larrañaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-2004-08-16  Christian Rose  <menthos@menthos.com>
-
-       * bs.po: Added Bosnian translation by
-       Kenan Hadžiavdić <kenanh@frisurf.no>.
-
-2004-08-13  Tommi Vainikainen  <thv@iki.fi>
-
-       * fi.po: Unified some fields in po headers for Finnish team.
-
-2004-08-09  Ankit Patel <ankit@redhat.com>
-
-       * gu.po: Updated Gujarati translation.
-
-2004-08-09  Amanpreet Singh Alam  <aalam@redhat.com>
-
-       * pa.po: Updated Panjabi translation.
-
-2004-08-01 Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.5.1 ===
-
-2004-07-29  Iñaki Larrañaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2004-07-21  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * hi.po: Updated Hindi translation.
-
-Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
-
-       * === Released 2.5.0 ===
-
-2004-06-09  Pawan Chitrakar  <pawan@nplinux.org>
-
-       * ne.po: Updated Translation
-
-2004-06-06  Pawan Chitrakar  <pawan@nplinux.org>
-
-       * ne.po: Added "ne.po" Nepali translation.
-
-
-2004-05-04  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian translation.
-
-2004-05-03  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * wa.po: Added Walloon file
-
-2004-05-01  Takeshi AIHANA <aihana@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2004-04-30  Matthias Clasen  <mclasen@redhat.com>
-
-       * === Released 2.4.1 ===
-
-2004-04-30  Telsa Gwynne  <hobbit@aloss.ukuu.org.uk>
-
-       * cy.po: Updated Welsh translation from Rhys Jones.
-
-2004-04-30  Yuriy Syrota  <rasta@cvs.gnome.org>
-
-       * uk.po: Updated Ukrainian translation.
-
-2004-04-29  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * ru.po: Updated Russian translation
-       from Russian team <gnome-cyr@gnome.org>.
-
-2004-04-29  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr.po, sr@Latn.po, sr@ije.po: Updated Serbian translation.
-
-2004-04-27  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Updated Catalan translation.
-
-2004-04-27  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Translation updated by Tino Meinen.
-
-2004-04-26  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2004-04-25  Gareth Owen  <gowen72@yahoo.com>
-
-       * en_GB.po: Updated British English translation
-
-2004-04-25  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated  Greek translation.
-
-2004-04-25  Sami Pesonen  <sampeson@iki.fi>
-
-       * fi.po: Updated Finnish translation.
-
-2004-04-24  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation by GNOME PL Team.
-
-2004-04-24  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2004-04-24  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2004-04-24  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanih translation.
-
-2004-04-24  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2004-04-23  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2004-04-08  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * gu.po: Added Gujurati translation by
-       Gujarati Team <magnet@magnet-i.com>.
-
-2004-04-07  Iñaki Larrañaga  <dooteo@euskalgnu.org>
-
-       * eu.po: Updated Basque translation.
-
-2004-03-31  Mohammad DAMT  <mdamt@bisnisweb.com>
-
-       * id.po: Updated Indonesian translation
-
-2004-03-30  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Added Canadian English translation.
-
-2004-03-25  Gil Osher  <dolfin@rpg.org.il>
-
-       * he.po: Updated Hebrew translation.
-
-2004-03-18  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Updated Slovak translation.
-
-2004-03-16  Gareth Owen  <gowen72@yahoo.com>
-
-       * en_GB.po: Added British translation
-
-Tue Mar 16 11:53:29 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.4.0 ===
-
-2004-03-15  Mugurel Tudor  <mugurelu@go.ro>
-
-       * ro.po: Updated Romanian translation by
-               Mişu Moldovan <dumol@go.ro>
-
-2004-03-14  Robert Sedak  <robert.sedak@sk.htnet.hr>
-
-       * hr.po: Updated Croatian translation.
-
-Tue Mar  9 09:22:02 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.6 ===
-
-2004-03-08 Alastair McKinstry <mckinstry@computer.org>
-
-       * ga.po: Updated Irish translation.
-
-2004-03-08  Ales Nyakhaychyk  <nab@mail.by>
-
-       * be.po: Updated Belarusian translation.
-
-2004-03-07  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr@ije.po: Added Serbian Jekavian translation by Bojan Suzić
-       <bojans@teol.net>.
-
-2004-03-06  Francisco Javier F. Serrador  <serrador@cvs.gnome.org>
-
-       * es.po: Updated Spanish translation.
-
-2004-03-04  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * pa.po: Added Punjabi translation by
-       Amanpreet Singh Alam <amanlinux@netscape.net>.
-
-2004-03-04  Funda Wang  <fundawang@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2004-03-03  Pauli Virtanen  <pauli.virtanen@hut.fi>
-
-       * fi.po: Updated Finnish translation.
-
-Mon Mar  1 16:49:51 2004  Owen Taylor  <otaylor@redhat.com>
-
-       * === Released 2.3.5 ===
-
-2004-03-01  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-02-27  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated by Allan Sims.
-
-2004-02-24 Alastair McKinstry <mckinstry@debian.org>
-
-       * ga.po: Corrections.
-
-2004-02-24  Dafydd Harries  <daf@muse.19inch.net>
-
-       * cy.po: Updated Welsh translation by Rhys Jones and myself.
-
-2004-02-23  Kostas Papadimas <pkst@gnome.org>
-
-       * el.po: Updated  Greek translation.
-
-2004-02-23  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * ta.po: Updated Tamil translation by
-       Dinesh Nadarajah <dinesh_list@sbcglobal.net>
-
-2004-02-20  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Fixed Albanian translation.
-
-2004-02-12  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-02-12  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr.po, sr@Latn.po: Reviewed by myself.
-
-2004-02-09  Maxim Dziumanenko <mvd@mylinux.com.ua>
-
-       * uk.po: Updated Ukrainian translation
-
-2004-02-05  Robert Sedak  <robert.sedak@sk.htnet.hr>
-
-       * hr.po: Updated Croatian translation.
-
-2004-02-05  Mətin Əmirov  <metin@karegen.com>
-
-       * az.po: Translation updated.
-
-2004-02-01  Hasbullah Bin Pit <sebol@my-penguin.org>
-
-       * ms.po: Updated Malay translation.
-
-2004-01-31  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-01-30  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2004-01-29  Alessio Frusciante  <algol@firenze.linux.it>
-
-       * it.po: Updated Italian translation.
-
-2004-01-28  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Fixed Czech translation.
-
-2004-01-27  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2004-01-16 Alastair McKinstry <mckinstry@computer.org>
-
-       * ga.po: Updated Irish translation.
-
-2004-01-16  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-01-13 Alastair McKinstry <mckinstry@computer.org>
-
-       * ga.po: Irish translation.
-
-2004-01-13  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian translation.
-
-2004-01-07  Sanlig Badral  <badral@openmn.org>
-
-       * mn.po; Updated Mongolian translation.
-
-2004-01-06  Christian Neumair  <chris@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2004-01-01  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * fa.po: Updated Persian translation.
-
-2004-01-01  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2003-12-27  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2003-12-20  Arafat Medini  <lumina@silverpen.de>
-
-       * ar.po: Updated Arabic translation.
-
-2003-12-03  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * ru.po: Updated Russian translation
-       from Russian team <gnome-cyr@gnome.org>.
-
-2003-12-03  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated and revised Portuguese translation.
-
-2003-11-22  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2003-11-20  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Updated Danish translation.
-
-2003-11-19  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2003-11-18  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2003-11-13  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Updated Catalan translation.
-
-2003-11-10  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>
-
-       * es.po: Updated Spanish translation by
-       Francisco Javier F. Serrador <serrador@arrakis.es>.
-
-2003-10-31  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian translation.
-
-2003-10-28  KAMAGASAKO Masatoshi  <emerald@gnome.gr.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2003-10-19  Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Dutch translation updated by Tino Meinen.
-
-2003-10-08  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation.
-
-2003-10-04  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2003-09-29  Gustavo Maciel Dias Vieira  <gdvieira@zaz.com.br>
-
-       * pt_BR.po: Applied revision by Augusta Marques da Silva
-       <augusta.marques@gmx.net>.
-
-2003-09-28  Gediminas Paulauskas  <menesis@delfi.lt>
-
-       * lt.po: Added Lithuanian translation by Tomas Kuliavas.
-
-2003-08-20  Richard Allen <ra@ra.is>
-
-       * is.po: Added Icelandic translation.
-
-2003-08-18  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Update Norwegian translation.
-
-2003-08-18  Metin Amiroff <metin@karegen.com>
-
-       * az.po: Updated Azerbaijani translation.
-
-2003-08-16  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr.po, sr@Latn.po: Updated Serbian translation.
-
-2003-07-10  Joel Brich <joel.brich@laposte.net>
-
-       * eo.po: Added Esperanto translation
-       from Charles Voelger <cvoelger@dweasel.com>
-
-2003-06-22  Metin Amiroff <metin@karegen.com>
-
-       * az.po: Updated Azerbaijani translation.
-
-2003-06-04  Abel Cheung  <maddog@linux.org.hk>
-
-       * ta.po: Fix broken encoding.
-
-2003-05-27  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Updated traditional Chinese translation.
-
-2003-05-19 Arafat Medini <lumina@silverpen.de>
-
-       * ar.po: Added Arabic translation from
-       Arabeyes team <doc@arabeyes.org>
-
-
-2003-05-17  Telsa Gwynne  <hobbit@aloss.ukuu.org.uk>
-
-       * cy.po: Added Welsh translation from
-       Dafydd Harries <daf@parnassus.ath.cx>
-
-2003-05-08  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2003-05-05  Christian Rose  <menthos@menthos.com>
-
-       * sr.po, sr@Latn.po: Added Serbian translation by
-       Danilo Šegan <dsegan@gmx.net>.
-
-2003-03-26  Christian Rose  <menthos@menthos.com>
-
-       * yi.po: Added Yiddish translation by
-       Raphael Finkel <raphael@cs.uky.edu>.
-
-2003-02-27  James Henstridge  <james@daa.com.au>
-
-       * Makefile.in.in (uninstall): fix uninstall target so that it
-       correctly removes the installed Makefile.in.in if PACKAGE==glib.
-       (update-po): update to use logic more similar to new gettexts,
-       which should pass readonly srcdir distcheck.
-
-2003-02-24  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * fa.po: Updated Persian translation.
-
-2003-02-21  Metin Amiroff  <metin@karegen.com>
-
-       * az.po: some fixes in Azerbaijani translation.
-
-2003-02-11  Fatih Demir <kabalak@gtranslator.org>
-
-       * tr.po: Take over from stable branch.
-
-2003-02-10  Mohammad DAMT  <mdamt@bisnisweb.com>
-
-       * id.po: Added Indonesian translation
-
-2003-01-29  Tõivo Leedjärv  <toivo@linux.ee>
-
-       * et.po: Fixed a small bug in Estonian translation.
-
-2003-01-22  Paisa Seeluangsawat  <paisa@colorado.edu>
-
-       * th.po: Added Thai file
-
-2003-01-22  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * bn.po: Added Bengali file
-
-2003-01-22  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Updated traditional Chinese translation.
-
-2003-01-21  Christian Rose  <menthos@menthos.com>
-
-       * mn.po: Added Mongolian translation by
-       Sanlig Badral <badral@chinggis.com>.
-
-2003-01-20  Christian Neumair  <chris@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2003-01-20  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * vi.po: Updated Vietnamese file
-
-2003-01-20  Christian Neumair  <chris@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2003-01-16  Daniel Yacob <locales@geez.org>
-
-       * am.po: Added Amharic translation.
-
-2003-01-15  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * ru.po: updated Russian translation
-       from Russian team <gnome-cyr@gnome.org>.
-
-2003-01-14  Yanko Kaneti <yaneti@declera.com>
-
-       * bg.po: Updated Bulgarian translation (style) by
-       Alexander Shopov <al_shopov@yahoo.com>.
-
-2003-01-06  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * ru.po: updated Russian translation
-       from Russian team <gnome-cyr@gnome.org>.
-
-2003-01-05  Pauli Virtanen <pauli.virtanen@hut.fi>
-
-       * fi.po: Updated Finnish translation from Lauri Nurmi.
-
-2003-01-02  Zbigniew Chyla  <cyba@gnome.pl>
-
-       * pl.po: Updated Polish translation by
-       GNOME PL Team <translators@gnome.pl>.
-
-2003-01-02  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Updated traditional Chinese translation.
-
-2002-12-28  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>
-
-       * nl.po: Dutch translation updated by Tino Meinen.
-
-2002-12-28  Tõivo Leedjärv  <toivo@linux.ee>
-
-       * et.po: Added Estonian translation
-       by Allan Sims <allsi@eau.ee>.
-
-2002-12-27  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>
-
-       * nl.po: Dutch translation updated by Tino Meinen.
-
-2002-12-19  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Updated Catalan translation.
-
-2002-12-19  Yanko Kaneti <yaneti@declera.com>
-
-       * bg.po: Updated Bulgarian translation (style) by
-       Alexander Shopov <al_shopov@yahoo.com>.
-
-2002-12-18  Artis Trops  <hornet@navigator.lv>
-
-       * lv.po: Updated Latvian translation.
-
-2002-12-18  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Updated Danish translation.
-
-2002-12-18  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Updated Slovak translation.
-
-2002-12-18  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * ru.po: updated Russian translation
-       * from Russian team <gnome-cyr@gnome.org>.
-
-2002-12-17  German Poo-Caaman~o
-
-       * es.po: Updated Spanish translation
-
-2002-12-16  Tor Lillqvist  <tml@iki.fi>
-
-       * fi.po: In the admittedly strangely worded "Channel set flags
-       unsupported" message, "set" is a verb.
-
-2002-12-15  Christian neumair  <chris@gnome-de.org>
-
-       * de.po: Updated German translation.
-
-2002-12-15  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Updated French translation.
-
-2002-12-12  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2002-12-12  Yanko Kaneti <yaneti@declera.com>
-
-       * bg.po: Updated Bulgarian translation.
-
-2002-12-11  Pauli Virtanen <pauli.virtanen@hut.fi>
-
-       * fi.po: Added Finnish translation from Lauri Nurmi.
-
-Wed Dec 11 14:06:50 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * po/Makefile.in.in: Fix problem from recent commit where
-       non GNU-format message catalogs would be installed in
-       datadir. Remove some leftover setting of PATH=../src:$PATH.
-
-2002-12-11  Gil Osher  <dolfin@rpg.org.il>
-
-       * he.po: Added Hebrew translation.
-
-2002-12-09  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokmal) translation.
-       * nn.po: Updated Norwegian (nynorsk) translation from Gaute
-       Hope <gautikk@c2i.net>
-
-2002-12-09  Artis Trops  <hornet@navigator.lv>
-
-       * lv.po: sync with gnome-2-0 branch.
-
-2002-12-05  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Updated Japanese translation.
-
-Tue Dec  3 20:40:56 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * Makefile.in.in: Use datadir, not $(prefix)/share. (#89339)
-
-2002-12-03  Kostas Papadimas <pkst@gmx.net>
-
-       * el.po: updated Greek translation
-
-2002-12-03  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Merged Czech translation from gnome-2-0.
-
-2002-12-03  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * ru.po: updated Russian translation
-       * from Russian team <gnome-cyr@gnome.org>.
-
-2002-11-30  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Updated Danish translation.
-
-2002-11-26  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2002-11-25  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>
-
-       * nl.po: Massive copy-paste from stable branch.
-
-2002-11-25  Hasbullah Bin Pit <sebol@ikhlas.com>
-
-       * ms.po: Updated Malay Translation.
-
-2002-11-22  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokmal) translation.
-
-2002-11-22  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * be.po: Updated Belarusian translation
-       * from Belarusian team <i18n@infonet.by>.
-
-2002-11-13  Laurent Dhima <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2002-11-04  Hasbullah Bin Pit <sebol@ikhlas.com>
-
-       * ms.po: Updated Malay Translation.
-
-2002-11-03  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * be.po: Added Belarusian translation
-       * from Belarusian team <i18n@infonet.by>.
-
-2002-10-13  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po:  added albanian translation
-
-2002-10-04  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2002-09-22  Christopher R. Gabriel  <cgabriel@cgabriel.org>
-
-       * it.po:  added italian translation
-
-2002-08-24  Fatih Demir <kabalak@gtranslator.org>
-
-       * ta.po: Committed.
-
-2002-08-23  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * fa.po: Updated Persian translation.
-
-2002-08-20  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * fa.po: Update Persian translation.
-
-2002-08-20  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * fa.po: Added Persian translation.
-
-2002-08-10  Gustavo Noronha Silva  <kov@debian.org>
-
-       * pt_BR: new translation
-
-2002-06-26  Yanko Kaneti <yaneti@declera.com>
-
-       * bg.po (added): Bulgarian translation by
-       Borislav Aleksandrov <B.Aleksandrov@cnsys.bg>.
-
-2002-06-05  Christophe Merlet  <christophe@merlet.net>
-
-       * fr.po: Updated French translation.
-
-2002-06-04  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Updated Catalan translation.
-
-Wed May 22 15:24:04 2002  Owen Taylor  <otaylor@redhat.com>
-
-       * README.translators: Add from GTK+.
-
-       * *.po: Convert all po files to UTF-8.
-
-2002-05-18  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2002-05-16  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2002-05-12  Christophe Merlet  <christophe@merlet.net>
-
-       * fr.po: Updated French translation.
-
-2002-05-10  Naba Kumar  <kh_naba@users.sourceforge.net>
-
-       * hi.po: New Hindi translation added.
-
-2002-05-06  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * vi.po: Updated Vietnamese file
-
-2002-04-30  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Converted Portuguese translation to UTF-8.
-
-2002-04-29  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * vi.po: Added Vietnamese file
-       * az.po,cs.po,ko.po,lv.po,nn.po: fixed syntax errors
-
-2002-04-28  Christophe Merlet  <christophe@merlet.net>
-
-       * fr.po: Updated French translation.
-
-2002-04-18  Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>
-
-       * nl.po: Updated Dutch translation by Ronald Hummelink.
-
-2002-04-07  Stanislav Brabec  <utx@penguin.cz>
-
-       * cs.po: Added Czech translation from Petr Pytelka
-       <pyta@lightcomp.cz>.
-
-2002-03-31  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Updated traditional Chinese translation, and removed
-       all positional parameters :(
-
-2002-03-28  Valek Filippov <frob@df.ru>
-
-       * ru.po: Updated russian translation.
-
-2002-03-17  Valek Filippov <frob@df.ru>
-
-       * ru.po: Updated russian translation.
-
-2002-03-17  Wang Jian  <lark@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation.
-
-2002-03-16  Christian Meyer  <chrisime@gnome.org>
-
-       * de.po: Updated German translation.
-
-2002-03-15  Christophe Merlet  <christophe@merlet.net>
-
-       * fr.po: Updated French translation.
-
-2002-03-10  Valek Filippov <frob@df.ru>
-
-       * ru.po: Updated russian translation.
-
-2002-03-06  Germ� Poo-Caamao <gpoo@ubiobio.cl>
-
-       * es.po: Updated spanish translation.
-
-2002-03-04  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Updated Portuguese translation.
-
-2002-03-03  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2002-03-02  Hasbullah Bin Pit <sebol@ikhlas.com>
-
-       * ms.po: Updated Malay Translation.
-
-2002-03-02  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Updated Korean translation.
-
-2002-03-01  Sven Neumann  <sven@gimp.org>
-
-       * de.po: fixed typo in german translation.
-
-2002-02-28  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Updated Danish translation.
-
-2002-02-28  Zbigniew Chyla  <cyba@gnome.pl>
-
-       * pl.po: Updated Polish translation by
-       GNOME PL Team <translators@gnome.pl>.
-
-2002-02-28  Christian Meyer  <chrisime@gnome.org>
-
-       * de.po: Updated German translation.
-
-2002-02-27  Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Updated Slovak translation.
-
-2002-02-26  Christophe Merlet  <christophe@merlet.net>
-
-       * fr.po: Updated French translation and
-       converted to UTF-8.
-
-2002-02-27  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2002-02-26  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2002-02-25  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Fixed Swedish translation.
-
-2002-02-25  Hasbullah Bin Pit <sebol@ikhlas.com>
-
-       * ms.po: Updated Malay Translation.
-
-2002-02-25  Valek Filippov <frob@df.ru>
-
-       * ru.po: Updated russian translation.
-
-2002-02-25  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2002-02-23  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Updated Danish translation.
-
-2002-02-20  Simos Xenitellis  <simos@hellug.gr>
-
-       * el.po: Added Greek translation.
-
-2002-02-19  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2002-02-17  Wang Jian  <lark@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation by
-       Wang Jian.
-
-2002-02-12  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2002-02-10  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2002-02-07  Changwoo Ryu  <cwryu@debian.org>
-
-       * ko.po: Added Korean translation.
-
-2002-02-07  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Updated traditional Chinese translation.
-
-2002-02-05  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Converted to UTF-8.
-
-2002-01-31  jacob berkman  <jacob@ximian.com>
-
-       * Makefile.in.in: remove cat-id-tbl.c references (this really
-       fixes this build)
-
-       * Makefile.in.in (DISTFILES): remove stamp-cat-id
-
-       * Makefile.in.in: remove references to po2tbl.sed.in
-
-2002-01-31  Roy-Magne Mo  <rmo@sunnmore.net>
-
-       * nn.po: Update Norwegian (nynorsk) translation.
-
-2002-01-29  Zbigniew Chyla  <cyba@gnome.pl>
-
-       * pl.po: Updated Polish translation by
-       GNOME PL Team <translators@gnome.pl>.
-
-2002-01-28  Zbigniew Chyla  <cyba@gnome.pl>
-
-       * pl.po: Updated Polish translation by
-       GNOME PL Team <translators@gnome.pl>.
-
-2002-01-28  Roy-Magne Mo <rmo@sunnmore.net>
-
-       * nn.po: Updated Norwegian (nynorsk) translation and
-       switched to UTF-8.
-
-2002-01-28  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated and converted to UTF-8.
-
-2002-01-27  Dirk-Jan Binnema <djcb@djcbsoftware.nl>
-
-       * nl.po: Updated dutch translation
-
-2002-01-25  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Updated Danish translation and switched to UTF-8.
-
-2002-01-23  ERDI Gergo  <cactus@cactus.rulez.org>
-
-       * Makefile.in.in (POTFILES): Remove inlttool [] tags from
-       POTFILE.in
-
-2002-01-21  Zbigniew Chyla  <cyba@gnome.pl>
-
-       * pl.po: Updated Polish translation by
-       GNOME PL Team <translators@gnome.pl>.
-
-2002-01-15  Peteris Krisjanis <peteris.krisjanis@ttc.lv>
-
-       * lv.po: Added Latvian translation.
-
-2002-01-13  Hasbullah Bin Pit  <sebol@ikhlas.com>
-
-       * ms.po: Added Malay (Bahasa Melayu) translation.
-
-2002-01-11  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2002-01-09  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Remove %m$ notation that can't be used with
-       g_set_error().
-
-2002-01-07  Zbigniew Chyla  <cyba@gnome.pl>
-
-       * pl.po: Updated Polish translation by
-       GNOME PL Team <translators@gnome.pl>.
-
-2002-01-04  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Updated Slovak translation.
-
-2001-12-27  Duarte Loreto <happyguy_pt@hotmail.com>
-
-       * pt.po: Added portuguese translation
-
-2001-12-27  Jesus Bravo Alvarez  <jba@pobox.com>
-
-       * gl.po: Updated Galician translation from
-       Manuel A. Fernandez Montecelo <manuel@sindominio.net>
-
-2001-12-24  Vasif Ismailogu MD  <azerb_linux@hotmail.com>
-
-       * az:po updating Azerbaijani translation file
-
-2001-12-21  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2001-12-19  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2001-12-18  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2001-12-15  Valek Filippov <frob@df.ru>
-
-       * ru.po: Updated russian translation.
-
-2001-12-15  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2001-12-13  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2001-12-11  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Updated Slovak translation.
-
-2001-12-11  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Updated traditional Chinese translation.
-
-2001-12-10  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Updated Japanese translation.
-
-2001-12-08  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2001-12-04  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-       * POTFILES.in: Added glib/gdir.c.
-
-2001-12-03  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2001-11-26  Jesus Bravo Alvarez  <jba@pobox.com>
-
-       * gl.po: Added Galician translation from
-       Manuel A. Fern�dez Montecelo <manuel@sindominio.net>
-
-2001-11-23 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
-
-       * nl.po: Added Dutch translation.
-
-2001-11-20  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Updated traditional Chinese translation.
-
-2001-11-15  Takayuki KUSANO  <AE5T-KSN@asahi-net.or.jp>
-
-       * ja.po: Added Japanese translation.
-
-2001-11-14  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2001-11-07  Wang Jian  <lark@linux.net.cn>
-
-       * zh_CN.po: Updated Simplified Chinese translation by
-       Wang Jian.
-
-2001-11-06  Wang Jian  <lark@linux.net.cn>
-
-       * zh_CN.po: Added Simplified Chinese translation by
-       He Qiangqiang <carton@263.net>.
-
-2001-11-01  Marius Andreiana  <mandreiana@yahoo.com>
-
-       * ro.po: added
-
-2001-10-28  jacob berkman  <jacob@ximian.com>
-
-       * Makefile.in.in: install Makefile.in.in and po2tbl.sed.in for use
-       with glib-gettextize by other packages
-
-2001-10-13  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: More updates.
-
-2001-10-13  Valek Filippov <frob@df.ru>
-
-       * ru.po: Added russian translation.
-
-2001-10-12  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Updated Slovak translation.
-
-2001-10-08  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * ca.po: Updated Catalan file
-
-2001-10-05  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * az.po: Updated Azeri file
-       * eu.po: Updated Basque file
-
-2001-09-29  Fatih Demir <kabalak@gtranslator.org>
-
-       * ta.po: Committed updated Tamil translation by Dinesh.
-
-2001-09-28  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Updated Slovak translation.
-
-2001-09-28  Tor Lillqvist  <tml@iki.fi>
-
-       * POTFILES.in: Add iochannel.c and giowin32.c.
-
-       * sv.po: Remove a bogus fuzziness indicator.
-
-2001-09-25  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * ca.po: Updated Catalan file
-
-2001-09-24  Stanislav Visnovsky  <visnovsky@nenya.ms.mff.cuni.cz>
-
-       * sk.po: Added Slovak translation.
-
-2001-09-23  Fatih Demir <kabalak@gtranslator.org>
-
-       * ta.po: Committed updated Tamil translation by Dinesh.
-
-2001-09-23  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * az.po: Updated Azeri file
-
-2001-09-19  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Updated Norwegian (bokm�) translation.
-
-2001-09-11  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2001-09-06  Roy-Magne Mo  <rmo@sunnmore.net>
-
-       * nn.po: Updated Norwegian nynorsk translation
-
-2001-09-05  Ross Golder  <rossg@golder.org>
-
-       * Makefile.in.in (install-data-yes): Take DESTDIR into account
-
-Wed Sep  5 09:27:34 2001  Owen Taylor  <otaylor@redhat.com>
-
-       * Revert last change to Makefile.in.in - no this
-       is not the Makefile.in.in from gettext.
-
-2001-09-05  Ross Golder  <ross@golder.org>
-
-       * Makefile.in.in: Updated from more recent gettext to fix
-       problem with DESTDIR.
-
-2001-09-02  Carlos Perell Mar� <carlos@gnome-db.org>
-
-       * es.po: Added Spanish translation by jos�antonio salgueiro
-       <joseantsa@retemail.es>
-
-2001-08-21  Abel Cheung  <maddog@linux.org.hk>
-
-       * zh_TW.po: Preliminary traditional Chinese translation.
-
-2001-08-19  Fatih Demir <kabalak@gtranslator.org>
-
-       * ta.po: Added Tamil translation by.
-
-2001-07-29  Christian Meyer  <chrisime@gnome.org>
-
-       * de.po: Removed one fuzzy.
-
-2001-07-17  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nn.po: Added Norwegian (nynorsk) translation.
-
-2001-07-06  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Updated Swedish translation.
-
-2001-07-06  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * eu.po: Added Basque file
-
-2001-06-27  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Completed Norwegian translation.
-       * POTFILES.in: Adjusted to fit the move of the .c files.
-
-2001-06-08  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * az.po: Added Azeri file
-
-2001-05-15  Matthias Warkus  <mawarkus@gnome.org>
-
-       * de.po: Brought this up to date.
-
-2001-04-30  Pablo Saratxaga <pablo@mandrakesoft.com>
-
-       * ca.po: Added Catalan file
-
-2001-04-05  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: And other fixes. Thanks to Gran Uddeborg
-       <goeran@uddeborg.pp.se>.
-
-2001-04-05  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Fixed another message in the Swedish translation. Thanks to
-       Jrgen Tegn� <teg@post.utfors.se>.
-
-2001-04-05  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Fixed Swedish translation, thanks to Veronica Loell
-       <info@nakawe.se> and Martin Norb�k <d95mback@dtek.chalmers.se>.
-
-2001-04-05  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Added Swedish translation.
-
-2001-30-03  Christian Meyer  <chrisime@gnome.org>
-
-       * de.po: Updated German translation.
-
-2001-07-03  Christian Meyer  <chrisime@gnome.org>
-
-       * de.po: Added German translation.
-
-2001-03-02  Christophe Merlet  <christophe@merlet.net>
-
-       * fr.po: Added French translation.
-
-2001-02-19  Valek Filippov <frob@df.ru>
-
-       * ru.po: Added russian translation.
-
-2001-02-08  Fatih Demir        <kabalak@kabalak.net>
-
-       * tr.po: Added the Turkish translation by
-       Kemal Yilmaz.
-
-2001-01-18  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Added Norwegian translation.
index 027f656..cb89a4a 100644 (file)
@@ -56,7 +56,7 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
 SOURCES = 
 POFILES = @POFILES@
 GMOFILES = @GMOFILES@
-DISTFILES = LINGUAS ChangeLog Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
+DISTFILES = LINGUAS Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
 $(POFILES) $(GMOFILES) $(SOURCES)
 
 POTFILES = \
index 1d92530..4ea4bf3 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: glib glib-2.58\n"
+"Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-20 15:40+0000\n"
-"PO-Revision-Date: 2018-11-24 10:07+0100\n"
+"POT-Creation-Date: 2018-11-20 18:59+0000\n"
+"PO-Revision-Date: 2018-11-24 10:08+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: čeština <gnome-cs-list@gnome.org>\n"
 "Language: cs\n"
@@ -303,14 +303,14 @@ msgid "Not enough space in destination"
 msgstr "Cíl nemá dostatek místa"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:884
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Neplatná posloupnost bajtů na vstupu převodu"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:798
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Chyba při převodu: %s"
@@ -319,7 +319,7 @@ msgstr "Chyba při převodu: %s"
 msgid "Cancellable initialization not supported"
 msgstr "Zrušitelné spuštění není podporováno"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, 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"
@@ -504,7 +504,7 @@ msgstr "Služba dbus sezení neběží a automatické spuštění selhalo"
 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:1662 gio/gdbusconnection.c:7142
+#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7147
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -513,7 +513,7 @@ msgstr ""
 "Nelze určit adresu sběrnice z proměnné prostředí DBUS_STARTER_BUS_TYPE – "
 "neznámá hodnota „%s“"
 
-#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7151
+#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7156
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -633,81 +633,81 @@ msgid ""
 msgstr ""
 "Nalezeny nepodporované příznaky při vytváření spojení na straně klienta"
 
-#: gio/gdbusconnection.c:4115 gio/gdbusconnection.c:4462
+#: gio/gdbusconnection.c:4120 gio/gdbusconnection.c:4467
 #, 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:4257
+#: gio/gdbusconnection.c:4262
 #, c-format
 msgid "No such property “%s”"
 msgstr "Vlastnost „%s“ neexistuje"
 
-#: gio/gdbusconnection.c:4269
+#: gio/gdbusconnection.c:4274
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "Vlastnost „%s“ není ke čtení"
 
-#: gio/gdbusconnection.c:4280
+#: gio/gdbusconnection.c:4285
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "Vlastnost „%s“ není zapisovatelná"
 
-#: gio/gdbusconnection.c:4300
+#: gio/gdbusconnection.c:4305
 #, 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:4405 gio/gdbusconnection.c:4613
-#: gio/gdbusconnection.c:6582
+#: gio/gdbusconnection.c:4410 gio/gdbusconnection.c:4618
+#: gio/gdbusconnection.c:6587
 #, c-format
 msgid "No such interface “%s”"
 msgstr "Rozhraní „%s“ neexistuje"
 
-#: gio/gdbusconnection.c:4831 gio/gdbusconnection.c:7091
+#: gio/gdbusconnection.c:4836 gio/gdbusconnection.c:7096
 #, c-format
 msgid "No such interface “%s” on object at path %s"
 msgstr "Rozhraní „%s“na objektu na cestě %s neexistuje"
 
-#: gio/gdbusconnection.c:4929
+#: gio/gdbusconnection.c:4934
 #, c-format
 msgid "No such method “%s”"
 msgstr "Metoda „%s“ neexistuje"
 
-#: gio/gdbusconnection.c:4960
+#: gio/gdbusconnection.c:4965
 #, 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:5158
+#: gio/gdbusconnection.c:5163
 #, 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:5384
+#: gio/gdbusconnection.c:5389
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Nelze načíst vlastnost %s.%s"
 
-#: gio/gdbusconnection.c:5440
+#: gio/gdbusconnection.c:5445
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Nelze nastavit vlastnost %s.%s"
 
-#: gio/gdbusconnection.c:5618
+#: gio/gdbusconnection.c:5623
 #, 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:6693
+#: gio/gdbusconnection.c:6698
 #, 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:6814
+#: gio/gdbusconnection.c:6819
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Podstrom je již exportován pro %s"
@@ -910,22 +910,23 @@ msgstr "Nelze získat profil hardwaru: %s"
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Nelze načíst /var/lib/dbus/machine-id nebo /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1612
+#: gio/gdbusproxy.c:1611
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Chyba při volání StartServiceByName pro %s: "
 
-#: gio/gdbusproxy.c:1635
+#: gio/gdbusproxy.c:1634
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Neočekávaná odpověď %d od metody StartServiceByName(„%s“)"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: gio/gdbusproxy.c:2733 gio/gdbusproxy.c:2868
+#, 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"
+"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 ""
-"Metodu nelze vyvolat; proxy je na dobře známý název bez vlastníka a proxy "
+"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:708
@@ -1225,7 +1226,7 @@ msgstr "Chyba: Příliš mnoho argumentů.\n"
 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/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4633
+#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4660
 msgid "Unnamed"
 msgstr "Bez názvu"
 
@@ -1440,7 +1441,7 @@ msgid "Truncate not supported on stream"
 msgstr "Oříznutí není v datovém proudu podporováno"
 
 #: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
+#: glib/gconvert.c:1787
 msgid "Invalid hostname"
 msgstr "Neplatný název počítače"
 
@@ -3046,7 +3047,7 @@ msgstr "Chyba při hledání v souboru: %s"
 msgid "Error closing file: %s"
 msgstr "Chyba při zavírání souboru: %s"
 
-#: gio/glocalfilemonitor.c:854
+#: gio/glocalfilemonitor.c:856
 msgid "Unable to find default local file monitor type"
 msgstr "Nelze nalézt výchozí typ sledování místního souboru"
 
@@ -3198,21 +3199,27 @@ msgstr "Síť není dostupná"
 msgid "Host unreachable"
 msgstr "Počítač není dostupný"
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
+#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
+#: gio/gnetworkmonitornetlink.c:130
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr "Nelze vytvořit sledování sítě: %s"
 
-#: gio/gnetworkmonitornetlink.c:118
+#: gio/gnetworkmonitornetlink.c:120
 msgid "Could not create network monitor: "
 msgstr "Nelze vytvořit sledování sítě: "
 
-#: gio/gnetworkmonitornetlink.c:176
+#: gio/gnetworkmonitornetlink.c:183
 msgid "Could not get network status: "
 msgstr "Nelze zjistit stav sítě: "
 
-#: gio/gnetworkmonitornm.c:322
+#: gio/gnetworkmonitornm.c:313
+#, c-format
+#| msgid "NetworkManager version too old"
+msgid "NetworkManager not running"
+msgstr "NetworkManager neběží"
+
+#: gio/gnetworkmonitornm.c:324
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "NetworkManager je v příliš staré verzi"
@@ -4035,7 +4042,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2651 gio/gunixmounts.c:2704
 msgid "Filesystem root"
 msgstr "Kořen systému souborů"
 
@@ -4155,7 +4162,7 @@ msgstr "Záložka URI „%s“ již existuje"
 #: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
 #: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
 #: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
+#: glib/gbookmarkfile.c:3699
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "Nebyla nalezena záložka URI „%s“"
@@ -4189,8 +4196,8 @@ msgstr "Nelze rozšířit řádek exec „%s“ pomocí URI „%s“"
 msgid "Unrepresentable character in conversion input"
 msgstr "Nereprezentovatelný znak na vstupu převodu"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Částečná posloupnost znaků na konci vstupu"
 
@@ -4199,40 +4206,40 @@ msgstr "Částečná posloupnost znaků na konci vstupu"
 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:941
 msgid "Embedded NUL byte in conversion input"
 msgstr "Vležený nulový bajt na vstupu převodu"
 
-#: glib/gconvert.c:961
+#: glib/gconvert.c:962
 msgid "Embedded NUL byte in conversion output"
 msgstr "Vložený nulový bajt na výstupu převodu"
 
-#: glib/gconvert.c:1649
+#: glib/gconvert.c:1650
 #, 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:1659
+#: glib/gconvert.c:1660
 #, 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:1676
+#: glib/gconvert.c:1677
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr "Adresa URI „%s“ je neplatné"
 
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1689
 #, 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:1704
+#: glib/gconvert.c:1705
 #, c-format
 msgid "The URI “%s” contains invalidly escaped characters"
 msgstr "URI „%s“ obsahuje nesprávně změněné znaky"
 
-#: glib/gconvert.c:1776
+#: glib/gconvert.c:1777
 #, c-format
 msgid "The pathname “%s” is not an absolute path"
 msgstr "Název cesty „%s“ není absolutní cestou"
@@ -4739,36 +4746,36 @@ msgstr "Šablona „%s“ neobsahuje XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Nelze přečíst symbolický odkaz „%s“: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Nelze otevřít převodník z „%s“ do „%s“: %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "Nelze přímo číst v g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Ve vstupní vyrovnávací paměti zbyla nepřevedená data"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Kanál ukončen částí znaku"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 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:788
+#: glib/gkeyfile.c:789
 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:825
+#: glib/gkeyfile.c:826
 msgid "Not a regular file"
 msgstr "Není obyčejným souborem"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1275
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4776,50 +4783,50 @@ msgstr ""
 "Soubor klíče obsahuje „%s“, což není dvojice klíč-hodnota, skupina ani "
 "komentář"
 
-#: glib/gkeyfile.c:1331
+#: glib/gkeyfile.c:1332
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Neplatný název skupiny: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1354
 msgid "Key file does not start with a group"
 msgstr "Soubor klíče nezačíná skupinou"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1380
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Neplatný název klíče: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1407
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Soubor klíče obsahuje nepodporované kódování „%s“"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: 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
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Soubor klíče nemá skupinu „%s“"
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1778
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1940 glib/gkeyfile.c:2056
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1960 glib/gkeyfile.c:2076 glib/gkeyfile.c:2518
 #, 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:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2736 glib/gkeyfile.c:3105
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4828,36 +4835,36 @@ msgstr ""
 "Soubor klíče obsahuje klíč „%s“ ve skupině „%s“, který má "
 "neinterpretovatelnou hodnotu."
 
-#: glib/gkeyfile.c:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2814 glib/gkeyfile.c:2891
 #, 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:4278
+#: glib/gkeyfile.c:4283
 msgid "Key file contains escape character at end of line"
 msgstr "Soubor klíče obsahuje na konci řádku znak změny"
 
-#: glib/gkeyfile.c:4300
+#: glib/gkeyfile.c:4305
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Soubor klíče obsahuje neplatnou únikovou sekvenci „%s“"
 
-#: glib/gkeyfile.c:4444
+#: glib/gkeyfile.c:4449
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Hodnotu „%s“ nelze interpretovat jako číslo."
 
-#: glib/gkeyfile.c:4458
+#: glib/gkeyfile.c:4463
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Celočíselná hodnota „%s“ je mimo rozsah"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4496
 #, 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:4530
+#: glib/gkeyfile.c:4535
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "Hodnotu „%s“ nelze interpretovat jako pravdivostní hodnotu."
@@ -4877,32 +4884,32 @@ msgstr "Nelze mapovat „%s%s%s%s“: mmap() selhalo: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Nelze otevřít soubor „%s“: open() selhalo: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Chyba na řádku %d, znak %d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "„%s“ není platným názvem"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "„%s“ není platným názvem: „%c“"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:612
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Chyba na řádku %d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:689
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4911,7 +4918,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:702
+#: glib/gmarkup.c:701
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -4920,24 +4927,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:728
+#: glib/gmarkup.c:727
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr "Znaková entita „%-.*s“ nekóduje povolený znak"
 
-#: glib/gmarkup.c:766
+#: glib/gmarkup.c:765
 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:774
+#: glib/gmarkup.c:773
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Název entity „%-.*s“ není znám"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:778
 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;"
@@ -4945,18 +4952,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:1187
+#: glib/gmarkup.c:1186
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokument musí začínat prvkem (například: <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1226
 #, 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:1270
+#: glib/gmarkup.c:1269
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -4965,14 +4972,14 @@ msgstr ""
 "Nezapadající znak „%s“, byl očekáván znak „>“ k ukončení značky empty-"
 "element „%s“"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1351
 #, 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:1394
+#: glib/gmarkup.c:1393
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -4983,7 +4990,7 @@ msgstr ""
 "značky prvku „%s“, nebo případně atribut; pravděpodobně jste použili "
 "neplatný znak v názvu atributu"
 
-#: glib/gmarkup.c:1439
+#: glib/gmarkup.c:1438
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -4992,7 +4999,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:1573
+#: glib/gmarkup.c:1572
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5000,7 +5007,7 @@ msgid ""
 msgstr ""
 "„%s“ není platný znak po znacích „</“; znakem „%s“ nesmí začínat název prvku"
 
-#: glib/gmarkup.c:1611
+#: glib/gmarkup.c:1610
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5009,25 +5016,25 @@ msgstr ""
 "„%s“ není povoleným znakem po ukončovacím názvu prvku „%s“; povoleným znakem "
 "je „>“"
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1622
 #, 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:1632
+#: glib/gmarkup.c:1631
 #, 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:1785
+#: glib/gmarkup.c:1784
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokument je prázdný nebo obsahuje pouze mezery"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1798
 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:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1806 glib/gmarkup.c:1851
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5036,7 +5043,7 @@ msgstr ""
 "Dokument neočekávaně skončil s otevřenými prvky – poslední otevřený prvek "
 "byl „%s“"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1814
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5044,19 +5051,19 @@ msgid ""
 msgstr ""
 "Dokument neočekávaně skončil, byla očekávána uzavírací závorka značky <%s/>"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1820
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokument neočekávaně skončil uvnitř názvu prvku"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1826
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokument neočekávaně skončil uvnitř názvu atributu"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1831
 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:1838
+#: glib/gmarkup.c:1837
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5064,22 +5071,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:1845
+#: glib/gmarkup.c:1844
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokument neočekávaně skončil uvnitř hodnoty atributu"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1861
 #, 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:1866
+#: glib/gmarkup.c:1865
 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:1872
+#: glib/gmarkup.c:1871
 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í"
@@ -5501,15 +5508,15 @@ msgstr "očekávána číslice"
 msgid "illegal symbolic reference"
 msgstr "nedovolený symbolický odkaz"
 
-#: glib/gregex.c:2582
+#: glib/gregex.c:2583
 msgid "stray final “\\”"
 msgstr "osamocené koncové „\\“"
 
-#: glib/gregex.c:2586
+#: glib/gregex.c:2587
 msgid "unknown escape sequence"
 msgstr "neznámá úniková sekvence"
 
-#: glib/gregex.c:2596
+#: glib/gregex.c:2597
 #, 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"
@@ -5684,20 +5691,20 @@ msgstr "Číslo „%s“ je mimo meze [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "„%s“ není číslo bez znaménka"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Nelze alokovat paměť"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Znak je mimo rozsah UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Neplatná posloupnost na vstupu převodu"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Znak je mimo rozsah UTF-16"
 
index ad33193..80a14d1 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -16,16 +16,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-06 16:23+0000\n"
-"PO-Revision-Date: 2018-11-06 23:56+0200\n"
-"Last-Translator: Florian Heiser <gnu.l10n.de@gmail.com>\n"
+"POT-Creation-Date: 2018-08-10 13:36+0000\n"
+"PO-Revision-Date: 2018-08-15 11:52+0200\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: Deutsch <gnome-de@gnome.org>\n"
 "Language: de\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 2.2\n"
+"X-Generator: Poedit 2.1\n"
 
 #: gio/gapplication.c:496
 msgid "GApplication options"
@@ -302,13 +302,13 @@ msgstr "Nicht genug Platz im Ziel"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Ungültige Bytefolge in Umwandlungseingabe"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Fehler bei der Umwandlung: %s"
@@ -317,7 +317,7 @@ msgstr "Fehler bei der Umwandlung: %s"
 msgid "Cancellable initialization not supported"
 msgstr "Abbrechbare Initialisierung wird nicht unterstützt"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr "Umwandlung von Zeichensatz »%s« in »%s« wird nicht unterstützt"
@@ -733,27 +733,27 @@ msgstr "Methode »%s« in Schnittstelle »%s« mit Signatur »%s« existiert nic
 msgid "A subtree is already exported for %s"
 msgstr "Ein Unterbaum wurde bereits für %s exportiert"
 
-#: gio/gdbusmessage.c:1251
+#: gio/gdbusmessage.c:1248
 msgid "type is INVALID"
 msgstr "Typ ist UNGÜLTIG"
 
-#: gio/gdbusmessage.c:1262
+#: gio/gdbusmessage.c:1259
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr "METHOD_CALL-Meldung: Kopfzeilenfeld PATH oder MEMBER fehlt"
 
-#: gio/gdbusmessage.c:1273
+#: gio/gdbusmessage.c:1270
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "METHOD_RETURN-Meldung: Kopfzeilenfeld REPLY_SERIAL fehlt"
 
-#: gio/gdbusmessage.c:1285
+#: gio/gdbusmessage.c:1282
 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:1298
+#: gio/gdbusmessage.c:1295
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr "SIGNAL-Meldung: Kopfzeilenfeld PATH, INTERFACE oder MEMBER fehlt"
 
-#: gio/gdbusmessage.c:1306
+#: gio/gdbusmessage.c:1303
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -761,7 +761,7 @@ msgstr ""
 "SIGNAL-Meldung: Das Kopfzeilenfeld PATH verwendet den reservierten Wert /org/"
 "freedesktop/DBus/Local"
 
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1311
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -769,21 +769,21 @@ msgstr ""
 "SIGNAL-Meldung: Das Kopfzeilenfeld INTERFACE verwendet den reservierten Wert "
 "org.freedesktop.DBus.Local"
 
-#: gio/gdbusmessage.c:1362 gio/gdbusmessage.c:1422
+#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
 #, 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:1376
+#: gio/gdbusmessage.c:1373
 #, 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:1395
+#: gio/gdbusmessage.c:1392
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -793,17 +793,17 @@ 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:1598
+#: gio/gdbusmessage.c:1595
 #, 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:1620
+#: gio/gdbusmessage.c:1617
 #, 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:1667
+#: gio/gdbusmessage.c:1664
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -816,7 +816,7 @@ msgstr[1] ""
 "Array der Länge %u Bytes wurde erkannt. Maximale Länge ist 2<<26 Bytes (64 "
 "MiB)."
 
-#: gio/gdbusmessage.c:1687
+#: gio/gdbusmessage.c:1684
 #, c-format
 msgid ""
 "Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -825,12 +825,12 @@ 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:1857
+#: gio/gdbusmessage.c:1851
 #, 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:1881
+#: gio/gdbusmessage.c:1875
 #, c-format
 msgid ""
 "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -838,7 +838,7 @@ msgstr ""
 "Fehler beim Deserialisieren von GVariant mit der Typenzeichenkette »%s« aus "
 "dem D-Bus Wire-Format"
 
-#: gio/gdbusmessage.c:2066
+#: gio/gdbusmessage.c:2057
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -847,29 +847,25 @@ 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:2079
+#: gio/gdbusmessage.c:2070
 #, 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:2132 gio/gdbusmessage.c:2722
-msgid "Signature header found but is not of type signature"
-msgstr "Signatur im Kopfzeilenfeld gefunden, allerdings nicht vom Typ Signatur"
-
-#: gio/gdbusmessage.c:2144
+#: gio/gdbusmessage.c:2126
 #, 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:2158
+#: gio/gdbusmessage.c:2140
 #, 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:2188
+#: gio/gdbusmessage.c:2170
 #, 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"
@@ -880,11 +876,11 @@ msgstr[1] ""
 "Kein Signatur-Kopfzeilenfeld in der Nachricht, aber der Nachrichtenrumpf ist "
 "%u Bytes groß"
 
-#: gio/gdbusmessage.c:2198
+#: gio/gdbusmessage.c:2180
 msgid "Cannot deserialize message: "
 msgstr "Meldung kann nicht deserialisiert werden: "
 
-#: gio/gdbusmessage.c:2539
+#: gio/gdbusmessage.c:2521
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -892,7 +888,7 @@ msgstr ""
 "Fehler beim Deserialisieren von GVariant mit der Typenzeichenkette »%s« in "
 "das D-Bus Wire-Format"
 
-#: gio/gdbusmessage.c:2676
+#: gio/gdbusmessage.c:2658
 #, c-format
 msgid ""
 "Number of file descriptors in message (%d) differs from header field (%d)"
@@ -900,18 +896,18 @@ msgstr ""
 "Anzahl der Dateideskriptoren in Meldung (%d) und Kopfzeilenfeld (%d) ist "
 "unterschiedlich"
 
-#: gio/gdbusmessage.c:2684
+#: gio/gdbusmessage.c:2666
 msgid "Cannot serialize message: "
 msgstr "Meldung kann nicht serialisiert werden: "
 
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2710
 #, 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:2748
+#: gio/gdbusmessage.c:2720
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -920,18 +916,18 @@ msgstr ""
 "Nachrichtenrumpf hat den Signaturtyp »%s«, aber die Signatur im "
 "Kopfzeilenfeld ist »%s«"
 
-#: gio/gdbusmessage.c:2764
+#: gio/gdbusmessage.c:2736
 #, 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:3317
+#: gio/gdbusmessage.c:3289
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Fehlerrückmeldung mit Inhalt des Typs »%s«"
 
-#: gio/gdbusmessage.c:3325
+#: gio/gdbusmessage.c:3297
 msgid "Error return with empty body"
 msgstr "Fehlerrückmeldung mit leerem Inhalt"
 
@@ -1379,7 +1375,7 @@ msgstr "Vorgang wird nicht unterstützt"
 msgid "Containing mount does not exist"
 msgstr "Enthaltender Einhängepunkt existiert nicht"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2441
+#: gio/gfile.c:2622 gio/glocalfile.c:2391
 msgid "Can’t copy over directory"
 msgstr "Es kann nicht über den Ordner kopiert werden"
 
@@ -1513,37 +1509,37 @@ msgstr "Verbindung zum HTTP-Proxy ist fehlgeschlagen: %i"
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "HTTP Proxy-Server hat die Verbindung unerwartet geschlossen."
 
-#: gio/gicon.c:298
+#: gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Ungültige Symbolanzahl (%d)"
 
-#: gio/gicon.c:318
+#: gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Kein Typ für Klassenname %s"
 
-#: gio/gicon.c:328
+#: gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "GIcon-Schnittstelle wird vom Typ %s nicht unterstützt"
 
-#: gio/gicon.c:339
+#: gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "Typ %s ist keine Klasse"
 
-#: gio/gicon.c:353
+#: gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Ungültige Versionsnummer: %s"
 
-#: gio/gicon.c:367
+#: gio/gicon.c:359
 #, 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:469
+#: gio/gicon.c:461
 msgid "Can’t handle the supplied version of the icon encoding"
 msgstr "Übergebene Version der Symbol-Kodierung kann nicht verarbeitet werden"
 
@@ -2318,7 +2314,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:736 gio/glib-compile-schemas.c:2139
+#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2138
 msgid "Show program version and exit"
 msgstr "Programm-Version anzeigen und beenden"
 
@@ -2334,8 +2330,8 @@ msgstr ""
 "Die Ordner, aus denen in FILE referenzierte Dateien gelesen werden sollen "
 "(Vorgabe ist der aktuelle Ordner)"
 
-#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2140
-#: gio/glib-compile-schemas.c:2169
+#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2139
+#: gio/glib-compile-schemas.c:2168
 msgid "DIRECTORY"
 msgstr "ORDNER"
 
@@ -2775,6 +2771,9 @@ msgstr " und --strict wurde angegeben; Abbruch.\n"
 # Das habe ich nicht wirklich verstanden, bitte sorgfältig gegenlesen.
 #: gio/glib-compile-schemas.c:1984
 #, c-format
+#| msgid ""
+#| "error parsing key “%s” in schema “%s” as specified in override file “%s”: "
+#| "%s."
 msgid ""
 "cannot provide per-desktop overrides for localised key “%s” in schema "
 "“%s” (override file “%s”)"
@@ -2813,23 +2812,23 @@ msgstr ""
 "Überschreiben für Schlüssel »%s« in Schema »%s« in überschreibender Datei "
 "»%s« befindet sich nicht in der Liste gültiger Auswahlmöglichkeiten"
 
-#: gio/glib-compile-schemas.c:2140
+#: gio/glib-compile-schemas.c:2139
 msgid "where to store the gschemas.compiled file"
 msgstr "Speicherort der Datei »gschemas.compiled«"
 
-#: gio/glib-compile-schemas.c:2141
+#: gio/glib-compile-schemas.c:2140
 msgid "Abort on any errors in schemas"
 msgstr "Abbruch wegen einiger Fehler in Schemata"
 
-#: gio/glib-compile-schemas.c:2142
+#: gio/glib-compile-schemas.c:2141
 msgid "Do not write the gschema.compiled file"
 msgstr "Die Datei »gschema.compiled« nicht schreiben"
 
-#: gio/glib-compile-schemas.c:2143
+#: gio/glib-compile-schemas.c:2142
 msgid "Do not enforce key name restrictions"
 msgstr "Keine Einschränkungen für Schlüsselnamen erzwingen"
 
-#: gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-schemas.c:2171
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
@@ -2839,22 +2838,22 @@ msgstr ""
 "Schemadateien müssen die Erweiterung .gschema.xml haben,\n"
 "die Zwischenspeicherdatei die Erweiterung gschemas.compiled."
 
-#: gio/glib-compile-schemas.c:2193
+#: gio/glib-compile-schemas.c:2192
 #, c-format
 msgid "You should give exactly one directory name\n"
 msgstr "Sie sollten genau einen Ordnernamen angeben\n"
 
-#: gio/glib-compile-schemas.c:2235
+#: gio/glib-compile-schemas.c:2234
 #, c-format
 msgid "No schema files found: "
 msgstr "Keine Schema-Dateien gefunden: "
 
-#: gio/glib-compile-schemas.c:2238
+#: gio/glib-compile-schemas.c:2237
 #, c-format
 msgid "doing nothing.\n"
 msgstr "Nichts wird getan.\n"
 
-#: gio/glib-compile-schemas.c:2241
+#: gio/glib-compile-schemas.c:2240
 #, c-format
 msgid "removed existing output file.\n"
 msgstr "Vorhandene Ausgabedatei wurde entfernt.\n"
@@ -2864,7 +2863,7 @@ msgstr "Vorhandene Ausgabedatei wurde entfernt.\n"
 msgid "Invalid filename %s"
 msgstr "Ungültiger Dateiname %s"
 
-#: gio/glocalfile.c:1011
+#: gio/glocalfile.c:1006
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr "Fehler beim Einlesen der Dateisystem-Information für %s: %s"
@@ -2873,134 +2872,134 @@ 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:1150
+#: gio/glocalfile.c:1145
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr "Enthaltender Einhängepunkt für Datei %s wurde nicht gefunden"
 
-#: gio/glocalfile.c:1173
+#: gio/glocalfile.c:1168
 msgid "Can’t rename root directory"
 msgstr "Wurzelordner kann nicht umbenannt werden"
 
-#: gio/glocalfile.c:1191 gio/glocalfile.c:1214
+#: gio/glocalfile.c:1186 gio/glocalfile.c:1209
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr "Fehler beim Umbenennen der Datei %s: %s"
 
-#: gio/glocalfile.c:1198
+#: gio/glocalfile.c:1193
 msgid "Can’t rename file, filename already exists"
 msgstr "Datei kann nicht umbenannt werden, da der Dateiname bereits existiert"
 
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2317 gio/glocalfile.c:2345
-#: gio/glocalfile.c:2502 gio/glocalfileoutputstream.c:551
+#: gio/glocalfile.c:1206 gio/glocalfile.c:2267 gio/glocalfile.c:2295
+#: gio/glocalfile.c:2452 gio/glocalfileoutputstream.c:551
 msgid "Invalid filename"
 msgstr "Ungültiger Dateiname"
 
-#: gio/glocalfile.c:1379 gio/glocalfile.c:1394
+#: gio/glocalfile.c:1374 gio/glocalfile.c:1389
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Fehler beim Öffnen der Datei »%s«: %s"
 
-#: gio/glocalfile.c:1519
+#: gio/glocalfile.c:1514
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Fehler beim Entfernen der Datei »%s«: %s"
 
-#: gio/glocalfile.c:1958
+#: gio/glocalfile.c:1925
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Fehler beim Verschieben der Datei %s in den Papierkorb: %s"
 
-#: gio/glocalfile.c:1999
+#: gio/glocalfile.c:1948
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Papierkorb-Ordner %s konnte nicht angelegt werden: %s"
 
-#: gio/glocalfile.c:2020
+#: gio/glocalfile.c:1970
 #, 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:2029
+#: gio/glocalfile.c:1979
 #, c-format
 msgid "Trashing on system internal mounts is not supported"
 msgstr ""
 "Papierkorbaktionen zwischen systeminternen Einhängepunkten werden nicht "
 "unterstützt"
 
-#: gio/glocalfile.c:2113 gio/glocalfile.c:2133
+#: gio/glocalfile.c:2063 gio/glocalfile.c:2083
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Papierkorb-Ordner konnte für %s nicht gefunden oder angelegt werden"
 
-#: gio/glocalfile.c:2168
+#: gio/glocalfile.c:2118
 #, 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:2228
+#: gio/glocalfile.c:2178
 #, 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:2232 gio/glocalfile.c:2288
+#: gio/glocalfile.c:2182 gio/glocalfile.c:2238
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Datei %s kann nicht in den Papierkorb verschoben werden: %s"
 
-#: gio/glocalfile.c:2294
+#: gio/glocalfile.c:2244
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Datei %s kann nicht in den Papierkorb verschoben werden"
 
-#: gio/glocalfile.c:2320
+#: gio/glocalfile.c:2270
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Fehler beim Erstellen des Ordners »%s«: %s"
 
-#: gio/glocalfile.c:2349
+#: gio/glocalfile.c:2299
 #, c-format
 msgid "Filesystem does not support symbolic links"
 msgstr "Das Dateisystem unterstützt keine symbolische Verknüpfungen"
 
-#: gio/glocalfile.c:2352
+#: gio/glocalfile.c:2302
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Fehler beim Erstellen der symbolischen Verknüpfung %s: %s"
 
-#: gio/glocalfile.c:2358 glib/gfileutils.c:2138
+#: gio/glocalfile.c:2308 glib/gfileutils.c:2138
 msgid "Symbolic links not supported"
 msgstr "Symbolische Verknüpfungen nicht unterstützt"
 
-#: gio/glocalfile.c:2413 gio/glocalfile.c:2448 gio/glocalfile.c:2505
+#: gio/glocalfile.c:2363 gio/glocalfile.c:2398 gio/glocalfile.c:2455
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Fehler beim Verschieben der Datei %s: %s"
 
-#: gio/glocalfile.c:2436
+#: gio/glocalfile.c:2386
 msgid "Can’t move directory over directory"
 msgstr "Ordner kann nicht über Ordner verschoben werden"
 
-#: gio/glocalfile.c:2462 gio/glocalfileoutputstream.c:935
+#: gio/glocalfile.c:2412 gio/glocalfileoutputstream.c:935
 #: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
 #: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
 msgid "Backup file creation failed"
 msgstr "Erstellen der Sicherungsdatei gescheitert"
 
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2431
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Fehler beim Entfernen der Zieldatei: %s"
 
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2445
 msgid "Move between mounts not supported"
 msgstr "Verschieben zwischen Einhängepunkten nicht unterstützt"
 
-#: gio/glocalfile.c:2686
+#: gio/glocalfile.c:2636
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Konnte die Festplattenbelegung von %s nicht bestimmen: %s"
@@ -3022,82 +3021,82 @@ msgstr "Ungültiger erweiterter Attributname"
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Fehler beim Setzen des erweiterten Attributs »%s«: %s"
 
-#: gio/glocalfileinfo.c:1625
+#: gio/glocalfileinfo.c:1629
 msgid " (invalid encoding)"
 msgstr " (ungültige Kodierung)"
 
-#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
+#: gio/glocalfileinfo.c:1793 gio/glocalfileoutputstream.c:813
 #, 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:2059
+#: gio/glocalfileinfo.c:2057
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Fehler beim Holen der Informationen für Dateideskriptor: %s"
 
-#: gio/glocalfileinfo.c:2104
+#: gio/glocalfileinfo.c:2102
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Ungültiger Attributtyp (»uint32« erwartet)"
 
-#: gio/glocalfileinfo.c:2122
+#: gio/glocalfileinfo.c:2120
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Ungültiger Attributtyp (»uint64« erwartet)"
 
-#: gio/glocalfileinfo.c:2141 gio/glocalfileinfo.c:2160
+#: gio/glocalfileinfo.c:2139 gio/glocalfileinfo.c:2158
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Ungültiger Attributtyp (»byte string« erwartet)"
 
-#: gio/glocalfileinfo.c:2207
+#: gio/glocalfileinfo.c:2205
 msgid "Cannot set permissions on symlinks"
 msgstr ""
 "Zugriffsrechte für symbolische Verknüpfungen können nicht gesetzt werden"
 
-#: gio/glocalfileinfo.c:2223
+#: gio/glocalfileinfo.c:2221
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Fehler beim Setzen der Zugriffsrechte: %s"
 
-#: gio/glocalfileinfo.c:2274
+#: gio/glocalfileinfo.c:2272
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Fehler beim Setzen des Besitzers: %s"
 
-#: gio/glocalfileinfo.c:2297
+#: gio/glocalfileinfo.c:2295
 msgid "symlink must be non-NULL"
 msgstr "Symbolische Verknüpfung darf nicht NULL sein"
 
-#: gio/glocalfileinfo.c:2307 gio/glocalfileinfo.c:2326
-#: gio/glocalfileinfo.c:2337
+#: gio/glocalfileinfo.c:2305 gio/glocalfileinfo.c:2324
+#: gio/glocalfileinfo.c:2335
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Fehler beim Setzen der symbolischen Verknüpfung: %s"
 
-#: gio/glocalfileinfo.c:2316
+#: gio/glocalfileinfo.c:2314
 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:2442
+#: gio/glocalfileinfo.c:2440
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Fehler beim Setzen der Zugriffsrechte oder der Zugriffszeit: %s"
 
-#: gio/glocalfileinfo.c:2465
+#: gio/glocalfileinfo.c:2463
 msgid "SELinux context must be non-NULL"
 msgstr "SELinux-Kontext darf nicht NULL sein"
 
-#: gio/glocalfileinfo.c:2480
+#: gio/glocalfileinfo.c:2478
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Fehler beim Setzen des SELinux-Kontexts: %s"
 
-#: gio/glocalfileinfo.c:2487
+#: gio/glocalfileinfo.c:2485
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux ist auf diesem System nicht aktiviert"
 
-#: gio/glocalfileinfo.c:2579
+#: gio/glocalfileinfo.c:2577
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Setzen des Attributs %s nicht unterstützt"
@@ -3309,15 +3308,15 @@ msgstr "Fehler beim Auflösen von »%s«: %s"
 msgid "Invalid domain"
 msgstr "Ungültige Domain"
 
-#: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
-#: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
-#: gio/gresource.c:1281 gio/gresourcefile.c:476 gio/gresourcefile.c:599
+#: gio/gresource.c:622 gio/gresource.c:881 gio/gresource.c:920
+#: gio/gresource.c:1044 gio/gresource.c:1116 gio/gresource.c:1189
+#: gio/gresource.c:1259 gio/gresourcefile.c:476 gio/gresourcefile.c:599
 #: gio/gresourcefile.c:736
 #, c-format
 msgid "The resource at “%s” does not exist"
 msgstr "Die Ressource auf »%s« existiert nicht"
 
-#: gio/gresource.c:809
+#: gio/gresource.c:787
 #, c-format
 msgid "The resource at “%s” failed to decompress"
 msgstr "Die Ressource auf »%s« konnte nicht entpackt werden"
@@ -3983,7 +3982,7 @@ msgstr "SOCKSv5-Proxy unterstützt den angegebenen Adresstyp nicht."
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Unbekannter Fehler im SOCKSv5-Proxy."
 
-#: gio/gthemedicon.c:595
+#: gio/gthemedicon.c:518
 #, c-format
 msgid "Can’t handle version %d of GThemedIcon encoding"
 msgstr "Version %d der GThemedIcon-Kodierung kann nicht verarbeitet werden"
@@ -4121,7 +4120,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
 msgid "Filesystem root"
 msgstr "Wurzelordner des Dateisystems"
 
@@ -4283,8 +4282,8 @@ msgstr ""
 msgid "Unrepresentable character in conversion input"
 msgstr "Nicht darstellbares Zeichen in Umwandlungsausgabe"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Bruchstückhafte Zeichenfolge am Eingabeende"
 
@@ -4835,24 +4834,24 @@ msgstr "Vorlage »%s« enthält nicht XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Die symbolische Verknüpfung »%s« konnte nicht gelesen werden: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Konverter von »%s« in »%s« konnte nicht geöffnet werden: %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "Raw-read in g_io_channel_read_line_string nicht möglich"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Nicht konvertierte Daten befinden sich noch im Lesepuffer"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Kanal endet mit einem Teilzeichen"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 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"
 
@@ -4864,7 +4863,7 @@ msgstr "Es wurde keine gültige Schlüsselwertedatei in den Suchordnern gefunden
 msgid "Not a regular file"
 msgstr "Keine reguläre Datei"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1270
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4872,45 +4871,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:1331
+#: glib/gkeyfile.c:1327
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Ungültiger Gruppenname: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1349
 msgid "Key file does not start with a group"
 msgstr "Die Schlüsselwertedatei beginnt nicht mit einer Gruppe"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1375
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Ungültiger Schlüsselname: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1402
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Die Schlüsselwertedatei enthält die nicht unterstützte Kodierung »%s«"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
+#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
+#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Die Schlüsselwertedatei enthält nicht die Gruppe »%s«"
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1773
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1935 glib/gkeyfile.c:2051
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
 #, c-format
 msgid ""
 "Key file contains key “%s” which has a value that cannot be interpreted."
@@ -4918,7 +4917,7 @@ msgstr ""
 "Die Schlüsselwertedatei enthält den Schlüssel »%s« mit einem Wert, der nicht "
 "interpretiert werden konnte."
 
-#: glib/gkeyfile.c:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4927,39 +4926,39 @@ 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:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
 #, 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:4278
+#: glib/gkeyfile.c:4274
 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:4300
+#: glib/gkeyfile.c:4296
 #, 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:4444
+#: glib/gkeyfile.c:4440
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Der Wert »%s« konnte nicht als Zahl interpretiert werden."
 
-#: glib/gkeyfile.c:4458
+#: glib/gkeyfile.c:4454
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Ganzzahliger Wert »%s« ist außerhalb des Wertebereiches"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4487
 #, 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:4530
+#: glib/gkeyfile.c:4526
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr ""
@@ -4982,32 +4981,32 @@ msgstr "»%s%s%s%s« konnte nicht abgebildet werden: mmap() ist gescheitert: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Datei »%s« konnte nicht geöffnet werden: open() ist gescheitert: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Fehler in Zeile %d, Zeichen %d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "»%s« ist kein gültiger Name"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "»%s« ist kein gültiger Name: »%c«"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:610
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Fehler in Zeile %d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:687
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5016,7 +5015,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:702
+#: glib/gmarkup.c:699
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -5026,24 +5025,24 @@ msgstr ""
 "&-Zeichen benutzt, ohne eine Entität beginnen zu wollen – umschreiben Sie "
 "das »&« als &amp;"
 
-#: glib/gmarkup.c:728
+#: glib/gmarkup.c:725
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr "Zeichenreferenz »%-.*s« kodiert kein zulässiges Zeichen"
 
-#: glib/gmarkup.c:766
+#: glib/gmarkup.c:763
 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:774
+#: glib/gmarkup.c:771
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Entitätenname »%-.*s« ist unbekannt"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:776
 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;"
@@ -5052,11 +5051,11 @@ msgstr ""
 "Zeichen benutzt, ohne eine Entität beginnen zu wollen – umschreiben Sie das "
 "»&« als &amp;"
 
-#: glib/gmarkup.c:1187
+#: glib/gmarkup.c:1182
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokument muss mit einem Element beginnen (e.g. <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1222
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5065,7 +5064,7 @@ msgstr ""
 "»%s« ist kein gültiges Zeichen nach einem »<«-Zeichen; es darf keinen "
 "Elementnamen beginnen"
 
-#: glib/gmarkup.c:1270
+#: glib/gmarkup.c:1264
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5074,7 +5073,7 @@ msgstr ""
 "Seltsames Zeichen »%s«, »>« erwartet um Start-Tag des leeren Elements »%s« "
 "abzuschließen"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1345
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5082,7 +5081,7 @@ msgstr ""
 "Seltsames Zeichen »%s«, »=« wird nach dem Attributnamen »%s« des Elements "
 "»%s« erwartet"
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1386
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5093,7 +5092,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:1439
+#: glib/gmarkup.c:1430
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5103,7 +5102,7 @@ msgstr ""
 "Elements »%s« wurde ein Anführungszeichen nach dem Gleichheitszeichen "
 "erwartet"
 
-#: glib/gmarkup.c:1573
+#: glib/gmarkup.c:1563
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5112,7 +5111,7 @@ msgstr ""
 "»%s« ist kein gültiges Zeichen, wenn es auf die Zeichen »</« folgt; »%s« "
 "darf keinen Elementnamen beginnen"
 
-#: glib/gmarkup.c:1611
+#: glib/gmarkup.c:1599
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5121,26 +5120,26 @@ msgstr ""
 "»%s« ist kein gültiges Zeichen, wenn es auf den schließenden Elementnamen "
 "»%s« folgt; das erlaubte Zeichen ist »>«"
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1610
 #, 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:1632
+#: glib/gmarkup.c:1619
 #, 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:1785
+#: glib/gmarkup.c:1772
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokument ist leer oder enthält nur Leerraum"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1786
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr "Dokument endete unerwartet nach einer offenen spitzen Klammer »<«"
 
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5149,7 +5148,7 @@ msgstr ""
 "Dokument endete unerwartet mit noch offenen Elementen – »%s« war das letzte "
 "offene Element"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1802
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5158,19 +5157,19 @@ msgstr ""
 "Dokument endete unerwartet, es wurde eine spitze Klammer »>«, die das Tag <"
 "%s/> schließt, erwartet"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1808
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokument endete unerwartet innerhalb eines Elementnamens"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1814
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokument endete unerwartet innerhalb eines Attributnamens"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1819
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr "Dokument endete unerwartet innerhalb eines Element-öffnenden Tags."
 
-#: glib/gmarkup.c:1838
+#: glib/gmarkup.c:1825
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5178,25 +5177,25 @@ msgstr ""
 "Dokument endete unerwartet nach dem Gleichheitszeichen, das einem "
 "Attributnamen folgt; kein Attributwert"
 
-#: glib/gmarkup.c:1845
+#: glib/gmarkup.c:1832
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokument endete unerwartet innerhalb eines Attributwertes"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1849
 #, 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:1866
+#: glib/gmarkup.c:1853
 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:1872
+#: glib/gmarkup.c:1859
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Dokument endete unerwartet innerhalb eines Kommentars oder "
@@ -5668,83 +5667,83 @@ msgstr ""
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Text war leer (oder enthielt nur Leerraum)"
 
-#: glib/gspawn.c:311
+#: glib/gspawn.c:302
 #, c-format
 msgid "Failed to read data from child process (%s)"
 msgstr "Daten vom Kindprozess konnten nicht gelesen werden (%s)"
 
-#: glib/gspawn.c:459
+#: glib/gspawn.c:450
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr ""
 "Unerwarteter Fehler in select() beim Lesen von Daten eines Kindprozesses (%s)"
 
-#: glib/gspawn.c:544
+#: glib/gspawn.c:535
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Unerwarteter Fehler in waitpid() (%s)"
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: glib/gspawn.c:1043 glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Der Kindprozess wurde mit Status %ld beendet"
 
-#: glib/gspawn.c:1060
+#: glib/gspawn.c:1051
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Der Kindprozess wurde mit Signal %ld beendet"
 
-#: glib/gspawn.c:1067
+#: glib/gspawn.c:1058
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Der Kindprozess wurde mit Signal %ld beendet"
 
-#: glib/gspawn.c:1074
+#: glib/gspawn.c:1065
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "Der Kindprozess wurde gewaltsam beendet"
 
-#: glib/gspawn.c:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: glib/gspawn.c:1360 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Lesen aus Weiterleitung zum Kind (%s) gescheitert"
 
-#: glib/gspawn.c:1617
+#: glib/gspawn.c:1596
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr "Abspalten des Kindprozesses »%s« gescheitert (%s)"
 
-#: glib/gspawn.c:1656
+#: glib/gspawn.c:1635
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Abspalten gescheitert (%s)"
 
-#: glib/gspawn.c:1805 glib/gspawn-win32.c:370
+#: glib/gspawn.c:1784 glib/gspawn-win32.c:370
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "In Ordner »%s« (%s) konnte nicht gewechselt werden"
 
-#: glib/gspawn.c:1815
+#: glib/gspawn.c:1794
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Kindprozess »%s« konnte nicht ausgeführt werden (%s)"
 
-#: glib/gspawn.c:1825
+#: glib/gspawn.c:1804
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Umleiten der Ausgabe oder Eingabe des Kindprozesses (%s) gescheitert"
 
-#: glib/gspawn.c:1834
+#: glib/gspawn.c:1813
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Abspalten des Kindprozesses gescheitert (%s)"
 
-#: glib/gspawn.c:1842
+#: glib/gspawn.c:1821
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Unbekannter Fehler beim Ausführen des Kindprozesses »%s«"
 
-#: glib/gspawn.c:1866
+#: glib/gspawn.c:1845
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr ""
@@ -5819,20 +5818,20 @@ msgstr "Zahl »%s« ist außerhalb des zulässigen Bereichs [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "»%s« ist keine vorzeichenlose Zahl"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Fehler beim Anfordern von Speicher"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Zeichen außerhalb des Bereiches für UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Ungültige Folge in Umwandlungseingabe"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Zeichen außerhalb des Bereiches für UTF-16"
 
index 62b9635..e00301c 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -15,7 +15,7 @@ msgstr ""
 "Project-Id-Version: glib.HEAD\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
 "POT-Creation-Date: 2018-08-30 18:47+0000\n"
-"PO-Revision-Date: 2018-09-06 01:08+0300\n"
+"PO-Revision-Date: 2018-09-03 12:03+0300\n"
 "Last-Translator: Efstathios Iosifidis <iosifidis@opensuse.org>\n"
 "Language-Team: www.gnome.gr\n"
 "Language: el\n"
@@ -179,12 +179,15 @@ msgstr "Εντολές:\n"
 
 #. Translators: do not translate 'help', but please translate 'COMMAND'.
 #: gio/gapplication-tool.c:146
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "Use '%s help COMMAND' to get detailed help.\n"
+#| "\n"
 msgid ""
 "Use “%s help COMMAND” to get detailed help.\n"
 "\n"
 msgstr ""
-"Χρησιμοποιήστε το «%s help COMMAND» για να πάρετε λεπτομερή βοήθεια.\n"
+"Χρησιμοποιήστε το '%s help COMMAND' για να πάρετε λεπτομερή βοήθεια.\n"
 "\n"
 
 #: gio/gapplication-tool.c:165
@@ -197,18 +200,22 @@ msgstr ""
 "\n"
 
 #: gio/gapplication-tool.c:171
-#, c-format
+#, fuzzy, c-format
+#| msgid "invalid application id: '%s'\n"
 msgid "invalid application id: “%s”\n"
-msgstr "μη Î­Î³ÎºÏ\85Ï\81ο Î±Î½Î±Î³Î½Ï\89Ï\81ιÏ\83Ï\84ικÏ\8c ÎµÏ\86αÏ\81μογήÏ\82: Â«%s»\n"
+msgstr "άκÏ\85Ï\81ο Î±Î½Î±Î³Î½Ï\89Ï\81ιÏ\83Ï\84ικÏ\8c ÎµÏ\86αÏ\81μογήÏ\82: '%s'\n"
 
 #. Translators: %s is replaced with a command name like 'list-actions'
 #: gio/gapplication-tool.c:182
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "'%s' takes no arguments\n"
+#| "\n"
 msgid ""
 "“%s” takes no arguments\n"
 "\n"
 msgstr ""
-"Το «%s» δεν παίρνει ορίσματα\n"
+"Το '%s' δεν παίρνει ορίσματα\n"
 "\n"
 
 #: gio/gapplication-tool.c:266
@@ -227,14 +234,17 @@ msgstr ""
 "το όνομα της ενέργειας πρέπει να δοθεί μετά το αναγνωριστικό της εφαρμογής\n"
 
 #: gio/gapplication-tool.c:325
-#, c-format
+#, fuzzy, 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"
 msgstr ""
-"μη Î­Î³ÎºÏ\85Ï\81ο Ï\8cνομα ÎµÎ½Î­Ï\81γειαÏ\82: Â«%s»\n"
-"τα ονόματα ενεργειών πρέπει να αποτελούνται μόνο από αλφαριθμητικά, «-» και "
-"«.»\n"
+"άκÏ\85Ï\81ο Ï\8cνομα ÎµÎ½Î­Ï\81γειαÏ\82: '%s'\n"
+"τα ονόματα ενεργειών πρέπει να αποτελούνται μόνο από αλφαριθμητικά, '-' και "
+"'.'\n"
 
 # gconf/gconftool.c:1181
 #: gio/gapplication-tool.c:344
@@ -328,14 +338,16 @@ msgid "Cancellable initialization not supported"
 msgstr "Δεν υποστηρίζεται η ακυρώσιμη αρχικοποίηση"
 
 #: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
-#, c-format
+#, 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 "Î\94εν Ï\85Ï\80οÏ\83Ï\84ηÏ\81ίζεÏ\84αι Î· Î¼ÎµÏ\84αÏ\84Ï\81οÏ\80ή Î±Ï\80Ï\8c Ï\84ην Î¿Î¼Î¬Î´Î± Ï\87αÏ\81ακÏ\84ήÏ\81Ï\89ν Â«%s» Ï\83ε Â«%s»"
+msgstr "Î\97 Î¼ÎµÏ\84αÏ\84Ï\81οÏ\80ή Î±Ï\80Ï\8c Ï\84ην Î¿Î¼Î¬Î´Î± Ï\87αÏ\81ακÏ\84ήÏ\81Ï\89ν '%s' Ï\83ε '%s' Î´ÎµÎ½ Ï\85Ï\80οÏ\83Ï\84ηÏ\81ίζεÏ\84αι"
 
 #: gio/gcharsetconverter.c:460 glib/gconvert.c:331
-#, c-format
+#, fuzzy, c-format
+#| msgid "Could not open converter from '%s' to '%s'"
 msgid "Could not open converter from “%s” to “%s”"
-msgstr "Αδυναμία ανοίγματος μετατροπέα από «%s» σε «%s»"
+msgstr "Αδυναμία ανοίγματος μετατροπέα από '%s' σε '%s'"
 
 #: gio/gcontenttype.c:358
 #, c-format
@@ -375,53 +387,65 @@ msgid "Unexpected early end-of-stream"
 msgstr "Αναπάντεχο πρόωρο τέλος ροής"
 
 #: gio/gdbusaddress.c:158 gio/gdbusaddress.c:246 gio/gdbusaddress.c:327
-#, c-format
+#, fuzzy, c-format
+#| msgid "Unsupported key '%s' in address entry '%s'"
 msgid "Unsupported key “%s” in address entry “%s”"
-msgstr "Î\9cη Ï\85Ï\80οÏ\83Ï\84ηÏ\81ιζÏ\8cμενο ÎºÎ»ÎµÎ¹Î´Î¯ Â«%s» Ï\83Ï\84ην ÎµÎ¹Ï\83αγÏ\89γή Î´Î¹ÎµÏ\8dθÏ\85νÏ\83ηÏ\82 Â«%s»"
+msgstr "Î\91νÏ\85Ï\80οÏ\83Ï\84ήÏ\81ικÏ\84ο ÎºÎ»ÎµÎ¹Î´Î¯ '%s' Ï\83Ï\84ην ÎµÎ¹Ï\83αγÏ\89γή Î´Î¹ÎµÏ\8dθÏ\85νÏ\83ηÏ\82'%s'"
 
 #: gio/gdbusaddress.c:185
-#, c-format
+#, 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 ""
-"Η διεύθυνση «%s» δεν είναι έγκυρη (χρειάζεται ακριβώς μια διαδρομή, tmpdir ή "
+"Η διεύθυνση '%s' είναι άκυρη (χρειάζεται ακριβώς μια διαδρομή, tmpdir ή "
 "αφηρημένα κλειδιά)"
 
 #: gio/gdbusaddress.c:198
-#, c-format
+#, fuzzy, c-format
+#| msgid "Meaningless key/value pair combination in address entry '%s'"
 msgid "Meaningless key/value pair combination in address entry “%s”"
 msgstr ""
 "Συνδυασμός χωρίς νόημα ζευγαριού κλειδιού/τιμής στην εισαγόμενη διεύθυνση "
-"«%s»"
+"'%s'"
 
 #: gio/gdbusaddress.c:261 gio/gdbusaddress.c:342
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error in address '%s' - the port attribute is malformed"
 msgid "Error in address “%s” — the port attribute is malformed"
-msgstr "Σφάλμα στη διεύθυνση «%s» — η ιδιότητα θύρας είναι κακοδιατυπωμένη"
+msgstr "Σφάλμα στη διεύθυνση '%s' - η ιδιότητα θύρας είναι κακοδιατυπωμένη"
 
 #: gio/gdbusaddress.c:272 gio/gdbusaddress.c:353
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error in address '%s' - the family attribute is malformed"
 msgid "Error in address “%s” — the family attribute is malformed"
-msgstr "Σφάλμα στη διεύθυνση «%s» — η ιδιότητα ομάδας είναι κακοδιατυπωμένη"
+msgstr "Σφάλμα στη διεύθυνση '%s' - η ιδιότητα ομάδας είναι κακοδιατυπωμένη"
 
 #: gio/gdbusaddress.c:423 gio/gdbusaddress.c:673
-#, c-format
+#, fuzzy, c-format
+#| msgid "Unknown or unsupported transport '%s' for address '%s'"
 msgid "Unknown or unsupported transport “%s” for address “%s”"
-msgstr "Άγνωστη ή ανυποστήρικτη μεταφορά «%s» για τη διεύθυνση «%s»"
+msgstr "Άγνωστη ή ανυποστήρικτη μεταφορά '%s' για τη διεύθυνση '%s'"
 
 #: gio/gdbusaddress.c:467
-#, c-format
+#, fuzzy, c-format
+#| msgid "Address element '%s' does not contain a colon (:)"
 msgid "Address element “%s” does not contain a colon (:)"
-msgstr "Το στοιχείο διευθύνσεως «%s» δεν περιέχει διπλή στιγμή (:)"
+msgstr "Το στοιχείο διευθύνσεως '%s' δεν περιέχει διπλή στιγμή (:)"
 
 #: gio/gdbusaddress.c:488
-#, c-format
+#, 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"
 msgstr ""
-"Το δίδυμο κλειδί/τιμή %d, «%s», στο στοιχείο διεύθυνσης «%s» δεν περιέχει "
-"Ï\84ον Ï\84ελεÏ\83Ï\84ή Î¯Ï\83ον"
+"Το δίδυμο κλειδί/τιμή %d, '%s', στο στοιχείο διεύθυνσης'%s' δεν περιέχει τον "
+"τελεστή ίσον"
 
 #: gio/gdbusaddress.c:502
 #, fuzzy, c-format
@@ -436,32 +460,39 @@ msgstr ""
 "'%s', στο στοιχείο διεύθυνσης '%s'"
 
 #: gio/gdbusaddress.c:580
-#, c-format
+#, 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 ""
-"Σφάλμα στη διεύθυνση «%s» — ο μεταφορέας unix απαιτεί ακριβώς να οριστεί ένα "
-"αÏ\80Ï\8c Ï\84α ÎºÎ»ÎµÎ¹Î´Î¹Î¬ Â«path» Î® Â«abstract»"
+"Σφάλμα στη διεύθυνση '%s' – ο μεταφορέας unix απαιτεί ακριβώς ένα από τα "
+"κλειδιά 'path' Î® 'abstract' Î½Î± Î¿Ï\81ιÏ\83Ï\84οÏ\8dν"
 
 #: gio/gdbusaddress.c:616
-#, c-format
+#, 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 ""
-"Σφάλμα στη διεύθυνση «%s» — η ιδιότητα κεντρικού υπολογιστή λείπει ή είναι "
+"Σφάλμα στη διεύθυνση '%s' - η ιδιότητα κεντρικού υπολογιστή λείπει ή είναι "
 "κακοδιατυπωμένη"
 
 #: gio/gdbusaddress.c:630
-#, c-format
+#, 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 ""
-"Σφάλμα στη διεύθυνση «%s» — η ιδιότητα θύρας λείπει ή είναι κακοδιατυπωμένη"
+"Σφάλμα στη διεύθυνση '%s' - η ιδιότητα θύρας λείπει ή είναι κακοδιατυπωμένη"
 
 #: gio/gdbusaddress.c:644
-#, c-format
+#, 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"
 msgstr ""
-"Σφάλμα στη διεύθυνση «%s» — η ιδιότητα του παρόντος αρχείου λείπει ή είναι "
+"Σφάλμα στη διεύθυνση '%s' - η ιδιότητα του παρόντος αρχείου λείπει ή είναι "
 "κακοδιατυπωμένη"
 
 #
@@ -471,28 +502,32 @@ msgstr "Σφάλμα αυτόματης εκκίνησης: "
 
 #
 #: gio/gdbusaddress.c:718
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error opening nonce file '%s': %s"
 msgid "Error opening nonce file “%s”: %s"
-msgstr "Σφάλμα ανοίγματος παρόντος αρχείου «%s»: %s"
+msgstr "Σφάλμα ανοίγματος παρόντος αρχείου '%s': %s"
 
 #
 #: gio/gdbusaddress.c:737
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error reading from nonce file '%s': %s"
 msgid "Error reading from nonce file “%s”: %s"
-msgstr "Σφάλμα ανάγνωσης από το παρόν αρχείο «%s»: %s"
+msgstr "Σφάλμα ανάγνωσης από το παρόν αρχείο '%s': %s"
 
 #
 #: gio/gdbusaddress.c:746
-#, c-format
+#, 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 ""
-"Σφάλμα ανάγνωσης από το παρόν αρχείο «%s», αναμενόμενες 16 bytes, "
+"Σφάλμα ανάγνωσης από το παρόν αρχείο '%s', αναμενόμενες 16 bytes, "
 "παραλήφθηκαν %d"
 
 #: gio/gdbusaddress.c:764
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error writing contents of nonce file '%s' to stream:"
 msgid "Error writing contents of nonce file “%s” to stream:"
-msgstr "Σφάλμα εγγραφής περιεχομένου του παρόντος αρχείου «%s» στην ροή:"
+msgstr "Σφάλμα εγγραφής περιεχομένου του παρόντος αρχείου '%s' στην ροή:"
 
 #: gio/gdbusaddress.c:973
 msgid "The given address is empty"
@@ -514,9 +549,10 @@ msgstr ""
 
 #
 #: gio/gdbusaddress.c:1142
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error spawning command line '%s': "
 msgid "Error spawning command line “%s”: "
-msgstr "Σφάλμα δημιουργίας στη γραμμή εντολών «%s»: "
+msgstr "Σφάλμα δημιουργίας στη γραμμή εντολών '%s': "
 
 #: gio/gdbusaddress.c:1359
 #, c-format
@@ -608,66 +644,80 @@ msgstr "Σφάλμα δημιουργίας καταλόγου «%s»: %s"
 
 #
 #: gio/gdbusauthmechanismsha1.c:346
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error opening keyring '%s' for reading: "
 msgid "Error opening keyring “%s” for reading: "
-msgstr "Σφάλμα ανοίγματος της κλειδοθήκης «%s» για ανάγνωση: "
+msgstr "Σφάλμα ανοίγματος της κλειδοθήκης '%s' για ανάγνωση: "
 
 #: gio/gdbusauthmechanismsha1.c:369 gio/gdbusauthmechanismsha1.c:687
-#, c-format
+#, 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 ""
-"Η γραμμή %d από την κλειδοθήκη στο «%s» με το περιεχόμενο «%s» είναι "
+"Η γραμμή %d από την κλειδοθήκη στο '%s' με το περιεχόμενο '%s' είναι "
 "κακοδιατυπωμένη"
 
 #: gio/gdbusauthmechanismsha1.c:383 gio/gdbusauthmechanismsha1.c:701
-#, c-format
+#, 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 ""
-"Το πρώτο σημείο της γραμμής %d της κλειδοθήκης στο «%s» με περιεχόμενο «%s» "
+"Το πρώτο σημείο της γραμμής %d της κλειδοθήκης στο '%s' με περιεχόμενο '%s' "
 "είναι κακοδιατυπωμένο"
 
 #: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
-#, c-format
+#, 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 ""
-"Το δεύτερο διακριτικό της γραμμής %d της κλειδοθήκης στο «%s» με περιεχόμενο "
-"«%s» είναι κακοδιατυπωμένο"
+"Το δεύτερο διακριτικό της γραμμής %d της κλειδοθήκης στο '%s' με περιεχόμενο "
+"'%s' είναι κακοδιατυπωμένο"
 
 #: gio/gdbusauthmechanismsha1.c:421
-#, c-format
+#, 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 "Δεν βρήκε το cookie με ταυτότητα %d στη κλειδοθήκη στο «%s»"
+msgstr "Δεν βρήκε το cookie με ταυτότητα %d στη κλειδοθήκη στο '%s'"
 
 #
 #: gio/gdbusauthmechanismsha1.c:503
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error deleting stale lock file '%s': %s"
 msgid "Error deleting stale lock file “%s”: %s"
-msgstr "Σφάλμα διαγραφής ξεπερασμένου αρχείου κλειδαριών «%s»: %s"
+msgstr "Σφάλμα διαγραφής ξεπερασμένου αρχείου κλειδαριών '%s': %s"
 
 #
 #: gio/gdbusauthmechanismsha1.c:535
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error creating lock file '%s': %s"
 msgid "Error creating lock file “%s”: %s"
-msgstr "Σφάλμα δημιουργίας αρχείου κλειδαριών «%s»: %s"
+msgstr "Σφάλμα δημιουργίας αρχείου κλειδαριών '%s': %s"
 
 #: gio/gdbusauthmechanismsha1.c:566
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error closing (unlinked) lock file '%s': %s"
 msgid "Error closing (unlinked) lock file “%s”: %s"
-msgstr "Σφάλμα στο κλείσιμο (αποσυνδεμένου) αρχείου κλειδαριών «%s»: %s"
+msgstr "Σφάλμα στο κλείσιμο (αποσυνδεμένου) αρχείου κλειδαριών '%s': %s"
 
 #
 #: gio/gdbusauthmechanismsha1.c:577
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error unlinking lock file '%s': %s"
 msgid "Error unlinking lock file “%s”: %s"
-msgstr "Σφάλμα αποσύνδεσης αρχείου κλειδαριών «%s»: %s"
+msgstr "Σφάλμα αποσύνδεσης αρχείου κλειδαριών '%s': %s"
 
 #
 #: gio/gdbusauthmechanismsha1.c:654
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error opening keyring '%s' for writing: "
 msgid "Error opening keyring “%s” for writing: "
-msgstr "Σφάλμα στο άνοιγμα της κλειδοθήκης «%s» για εγγραφή: "
+msgstr "Σφάλμα στο άνοιγμα της κλειδοθήκης '%s' για εγγραφή: "
 
 #: gio/gdbusauthmechanismsha1.c:850
 #, fuzzy, c-format
@@ -841,14 +891,16 @@ msgstr ""
 "μέχρι εκείνο το σημείο ήταν '%s'"
 
 #: gio/gdbusmessage.c:1595
-#, c-format
+#, 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 "Η αναλυμένη τιμή «%s» δεν είναι αποδεκτή διαδρομή αντικειμένου D-Bus"
+msgstr "Η αναλυμένη τιμή '%s' δεν είναι αποδεκτή διαδρομή αντικειμένου D-Bus"
 
 #: gio/gdbusmessage.c:1617
-#, c-format
+#, 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 "Η αναλυμένη τιμή «%s» δεν είναι έγκυρη υπογραφή D-Bus"
+msgstr "Η αναλυμένη τιμή '%s' δεν είναι έγκυρη υπογραφή D-Bus"
 
 #: gio/gdbusmessage.c:1664
 #, c-format
@@ -985,9 +1037,10 @@ msgstr ""
 "'(%s)'"
 
 #: gio/gdbusmessage.c:3289
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error return with body of type '%s'"
 msgid "Error return with body of type “%s”"
-msgstr "Σφάλμα επιστροφής με σώμα τύπου «%s»"
+msgstr "Σφάλμα επιστροφής με σώμα τύπου'%s'"
 
 #: gio/gdbusmessage.c:3297
 msgid "Error return with empty body"
@@ -1032,19 +1085,22 @@ msgstr ""
 "Αδυναμία διευκρίνισης του τρέχοντος αρχείου κατά τη δημιουργία διακομιστή"
 
 #: gio/gdbusserver.c:876
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error writing nonce file at '%s': %s"
 msgid "Error writing nonce file at “%s”: %s"
-msgstr "Σφάλμα εγγραφής στο παρόν αρχείο στο «%s»: %s"
+msgstr "Σφάλμα εγγραφής στο παρόν αρχείο στο '%s': %s"
 
 #: gio/gdbusserver.c:1047
-#, c-format
+#, 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 "Η συμβολοσειρά «%s» δεν είναι αποδεκτό D-Bus GUID"
+msgstr "Η συμβολοσειρά '%s' δεν είναι αποδεκτό D-Bus GUID"
 
 #: gio/gdbusserver.c:1087
-#, c-format
+#, fuzzy, c-format
+#| msgid "Cannot listen on unsupported transport '%s'"
 msgid "Cannot listen on unsupported transport “%s”"
-msgstr "Αδυναμία ακρόασης στην ανυποστήρικτη μεταφορά «%s»"
+msgstr "Αδυναμία ακρόασης στην ανυποστήρικτη μεταφορά '%s'"
 
 #: gio/gdbus-tool.c:95
 #, fuzzy, c-format
@@ -1193,8 +1249,9 @@ msgstr "Σφάλμα: αδιευκρίνιστο όνομα μεθόδου\n"
 
 #: gio/gdbus-tool.c:754
 #, fuzzy, c-format
+#| msgid "Error: Method name '%s' is invalid\n"
 msgid "Error: Signal name “%s” is invalid\n"
-msgstr "Σφάλμα: Το όνομα μεθόδου «%s» δεν είναι έγκυρο\n"
+msgstr "Σφάλμα: Το όνομα μεθόδου '%s' είναι άκυρο\n"
 
 #: gio/gdbus-tool.c:766
 #, c-format
@@ -1253,15 +1310,17 @@ msgid "Error: Method name is not specified\n"
 msgstr "Σφάλμα: αδιευκρίνιστο όνομα μεθόδου\n"
 
 #: gio/gdbus-tool.c:1054
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error: Method name '%s' is invalid\n"
 msgid "Error: Method name “%s” is invalid\n"
-msgstr "Σφάλμα: Το όνομα μεθόδου «%s» δεν είναι έγκυρο\n"
+msgstr "Σφάλμα: Το όνομα μεθόδου '%s' είναι άκυρο\n"
 
 #
 #: gio/gdbus-tool.c:1132
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error parsing parameter %d of type '%s': %s\n"
 msgid "Error parsing parameter %d of type “%s”: %s\n"
-msgstr "Σφάλμα στην ανάλυσης παραμέτρου %d του τύπου «%s»: %s\n"
+msgstr "Σφάλμα στην ανάλυσης παραμέτρου %d του τύπου '%s': %s\n"
 
 #: gio/gdbus-tool.c:1576
 msgid "Destination name to introspect"
@@ -1478,6 +1537,8 @@ msgid "Can’t copy over directory"
 msgstr "Αδυναμία αντιγραφής σε κατάλογο"
 
 #: gio/gfile.c:2682
+#, fuzzy
+#| msgid "Can't copy directory over directory"
 msgid "Can’t copy directory over directory"
 msgstr "Αδυναμία αντιγραφής καταλόγου σε κατάλογο"
 
@@ -1486,6 +1547,8 @@ msgid "Target file exists"
 msgstr "Το αρχείο προορισμού υπάρχει"
 
 #: gio/gfile.c:2709
+#, fuzzy
+#| msgid "Can't recursively copy directory"
 msgid "Can’t recursively copy directory"
 msgstr "Αδυναμία αναδρομικής αντιγραφής καταλόγου"
 
@@ -1516,6 +1579,8 @@ msgstr ""
 "Η αντιγραφή (συνδέσμου αναφοράς/κλώνου) δεν υποστηρίζεται ή δεν δούλεψε"
 
 #: gio/gfile.c:3221
+#, fuzzy
+#| msgid "Can't copy special file"
 msgid "Can’t copy special file"
 msgstr "Αδυναμία αντιγραφής του ειδικού αρχείου"
 
@@ -1528,9 +1593,10 @@ msgid "Trash not supported"
 msgstr "Δεν υποστηρίζονται απορρίμματα"
 
 #: gio/gfile.c:4292
-#, c-format
+#, fuzzy, c-format
+#| msgid "File names cannot contain '%c'"
 msgid "File names cannot contain “%c”"
-msgstr "Τα ονόματα των αρχείων δεν μπορούν να περιέχουν «%c»"
+msgstr "Τα ονόματα των αρχείων δεν μπορούν να περιέχουν '%c'"
 
 #: gio/gfile.c:6773 gio/gvolume.c:364
 #, fuzzy
@@ -1556,7 +1622,8 @@ msgid "File enumerator is already closed"
 msgstr "Ο μετρητής αρχείων έχει ήδη κλείσει"
 
 #: gio/gfileicon.c:236
-#, c-format
+#, fuzzy, c-format
+#| msgid "Can't handle version %d of GFileIcon encoding"
 msgid "Can’t handle version %d of GFileIcon encoding"
 msgstr "Αδυναμία χειρισμού της έκδοσης %d της κωδικοποίησης GFileIcon"
 
@@ -1666,9 +1733,10 @@ msgid "Address has bits set beyond prefix length"
 msgstr "Η διεύθυνση έχει σύνολα δυαδικών πέρα από το μήκος προθέματος"
 
 #: gio/ginetaddressmask.c:300
-#, c-format
+#, fuzzy, c-format
+#| msgid "Could not parse '%s' as IP address mask"
 msgid "Could not parse “%s” as IP address mask"
-msgstr "Αδυναμία ανάλυσης του «%s» ως μάσκα διεύθυνσης IP"
+msgstr "Αδυναμία ανάλυσης του '%s' ως μάσκα διεύθυνσης IP"
 
 #: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
 #: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:220
@@ -1908,8 +1976,10 @@ msgid "List writable attributes"
 msgstr "Κατάλογος διαθέσιμων ενεργειών"
 
 #: gio/gio-tool-info.c:35
+#, fuzzy
+#| msgid "Error getting filesystem info: %s"
 msgid "Get file system info"
-msgstr "Î\9bήÏ\88η Ï\80ληÏ\81οÏ\86οÏ\81ιÏ\8eν Ï\83Ï\85Ï\83Ï\84ήμαÏ\84οÏ\82 Î±Ï\81Ï\87είÏ\89ν"
+msgstr "ΣÏ\86άλμα Î»Î®Ï\88ηÏ\82 Ï\80ληÏ\81οÏ\86οÏ\81ιÏ\8eν Ï\83Ï\85Ï\83Ï\84ήμαÏ\84οÏ\82 Î±Ï\81Ï\87είÏ\89ν: %s"
 
 #: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
 msgid "The attributes to get"
@@ -2175,8 +2245,10 @@ msgid "Monitor events"
 msgstr ""
 
 #: gio/gio-tool-mount.c:74
+#, fuzzy
+#| msgid "Show help options"
 msgid "Show extra information"
-msgstr "Εμφάνιση πρόσθετων πληροφοριών"
+msgstr "Εμφάνιση επιλογών βοήθειας"
 
 #: gio/gio-tool-mount.c:75
 msgid "The numeric PIM when unlocking a VeraCrypt volume"
@@ -2216,7 +2288,7 @@ msgstr ""
 
 #: gio/gio-tool-mount.c:1216
 msgid "Mount or unmount the locations."
-msgstr "Προσάρτηση ή αποπροσάρτηση τοποθεσιών."
+msgstr ""
 
 #: gio/gio-tool-move.c:42
 msgid "Don’t use copy and delete fallback"
@@ -2234,9 +2306,10 @@ msgid ""
 msgstr ""
 
 #: gio/gio-tool-move.c:143
-#, c-format
+#, fuzzy, c-format
+#| msgid "Target file is a directory"
 msgid "Target %s is not a directory"
-msgstr "Î\9f Ï\80Ï\81οοÏ\81ιÏ\83μÏ\8cÏ\82 %s Î´ÎµÎ½ είναι κατάλογος"
+msgstr "Το Î±Ï\81Ï\87είο Ï\80Ï\81οοÏ\81ιÏ\83μοÏ\8d είναι κατάλογος"
 
 #: gio/gio-tool-open.c:118
 msgid ""
@@ -2258,11 +2331,13 @@ msgstr ""
 
 #: gio/gio-tool-rename.c:50
 msgid "Rename a file."
-msgstr "Μετονομασία αρχείου."
+msgstr ""
 
 #: gio/gio-tool-rename.c:70
+#, fuzzy
+#| msgid "Missing argument for %s"
 msgid "Missing argument"
-msgstr "Λείπει όρισμα"
+msgstr "Λείπει όρισμα για %s"
 
 #: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
 msgid "Too many arguments"
@@ -2344,8 +2419,10 @@ msgid "Set a file attribute of LOCATION."
 msgstr ""
 
 #: gio/gio-tool-set.c:113
+#, fuzzy
+#| msgid "No connection endpoint specified"
 msgid "Location not specified"
-msgstr "Î\94εν ÎºÎ±Î¸Î¿Ï\81ίÏ\83Ï\84ηκε Î· Ï\84οÏ\80οθεÏ\83ία"
+msgstr "Î\94εν Î´Î¹ÎµÏ\85κÏ\81ινίζεÏ\84αι Ï\83ημείο Ï\84έλοÏ\85Ï\82 Ï\83Ï\8dνδεÏ\83ηÏ\82"
 
 #: gio/gio-tool-set.c:120
 msgid "Attribute not specified"
@@ -2438,7 +2515,7 @@ msgstr "το κείμενο μπορεί να μην εμφανιστεί μέσ
 
 #: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2139
 msgid "Show program version and exit"
-msgstr "Εμφάνιση της έκδοσης του προγράμματος και έξοδος"
+msgstr ""
 
 #: gio/glib-compile-resources.c:737
 msgid "Name of the output file"
@@ -2528,19 +2605,22 @@ msgid "nick must be a minimum of 2 characters"
 msgstr ""
 
 #: gio/glib-compile-schemas.c:106
-#, c-format
+#, fuzzy, c-format
+#| msgid "Invalid symlink value given"
 msgid "Invalid numeric value"
-msgstr "Î\9cη Î­Î³ÎºÏ\85Ï\81η Î±Ï\81ιθμηÏ\84ική Ï\84ιμή"
+msgstr "Î\86κÏ\85Ï\81η Ï\84ιμή Ï\83Ï\85μβολικοÏ\8d Ï\83Ï\85νδέÏ\83μοÏ\85"
 
 #: gio/glib-compile-schemas.c:114
-#, c-format
+#, fuzzy, c-format
+#| msgid "<%s id='%s'> already specified"
 msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'/> έχει ήδη οριστεί"
+msgstr "<%s id='%s'> είναι ήδη ορισμένο"
 
 #: gio/glib-compile-schemas.c:122
-#, c-format
+#, fuzzy, c-format
+#| msgid "<key name='%s'> already specified"
 msgid "value='%s' already specified"
-msgstr "value='%s' έχει ήδη οριστεί"
+msgstr "<key name='%s'> έχει ήδη οριστεί"
 
 #: gio/glib-compile-schemas.c:136
 #, c-format
@@ -2574,8 +2654,10 @@ msgid "<%s> contains a string not in <choices>"
 msgstr ""
 
 #: gio/glib-compile-schemas.c:375
+#, fuzzy
+#| msgid "<key name='%s'> already specified"
 msgid "<range/> already specified for this key"
-msgstr "<range/> έχει ήδη οριστεί γι' αυτό το κλειδί"
+msgstr "<key name='%s'> έχει ήδη οριστεί"
 
 #: gio/glib-compile-schemas.c:393
 #, c-format
@@ -2611,8 +2693,10 @@ msgid ""
 msgstr ""
 
 #: gio/glib-compile-schemas.c:503
+#, fuzzy
+#| msgid "<child name='%s'> already specified"
 msgid "<choices> already specified for this key"
-msgstr "<choices> έχει ήδη οριστεί γι' αυτό το κλειδί"
+msgstr "<child name='%s'> έχει ήδη οριστεί"
 
 #: gio/glib-compile-schemas.c:515
 #, c-format
@@ -2631,8 +2715,10 @@ msgid "<choices> must contain at least one <choice>"
 msgstr ""
 
 #: gio/glib-compile-schemas.c:560
+#, fuzzy
+#| msgid "<child name='%s'> already specified"
 msgid "<aliases> already specified for this key"
-msgstr "<aliases> έχει ήδη οριστεί γι' αυτό το κλειδί"
+msgstr "<child name='%s'> έχει ήδη οριστεί"
 
 #: gio/glib-compile-schemas.c:564
 msgid ""
@@ -2653,9 +2739,10 @@ msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
 msgstr ""
 
 #: gio/glib-compile-schemas.c:597
-#, c-format
+#, fuzzy, c-format
+#| msgid "<%s id='%s'> already specified"
 msgid "<alias value='%s'/> already specified"
-msgstr "<alias value='%s'/> έχει ήδη οριστεί"
+msgstr "<%s id='%s'> είναι ήδη ορισμένο"
 
 #: gio/glib-compile-schemas.c:607
 #, c-format
@@ -2750,9 +2837,10 @@ msgid "<%s id='%s'> not (yet) defined."
 msgstr "<%s id='%s'> αδιευκρίνιστη (ακόμα)."
 
 #: gio/glib-compile-schemas.c:1018
-#, c-format
+#, fuzzy, c-format
+#| msgid "invalid GVariant type string '%s'"
 msgid "Invalid GVariant type string “%s”"
-msgstr "Î\9cη Î­Î³ÎºÏ\85Ï\81οÏ\82 Ï\84Ï\8dÏ\80οÏ\82 Ï\83Ï\85μβολοÏ\83ειÏ\81άÏ\82 GVariant Â«%s»"
+msgstr "Î\86κÏ\85Ï\81οÏ\82 Ï\84Ï\8dÏ\80οÏ\82 Ï\83Ï\85μβολοÏ\83ειÏ\81άÏ\82 GVariant '%s'"
 
 #: gio/glib-compile-schemas.c:1048
 #, fuzzy
@@ -3005,9 +3093,10 @@ msgid "Invalid filename %s"
 msgstr "Άκυρο όνομα αρχείου: %s"
 
 #: gio/glocalfile.c:1011
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error getting filesystem info: %s"
 msgid "Error getting filesystem info for %s: %s"
-msgstr "Σφάλμα λήψης πληροφοριών συστήματος αρχείων για %s: %s"
+msgstr "Σφάλμα λήψης πληροφοριών συστήματος αρχείων: %s"
 
 #. Translators: This is an error message when trying to find
 #. * the enclosing (user visible) mount of a file, but none
@@ -3020,16 +3109,21 @@ msgid "Containing mount for file %s not found"
 msgstr "Δεν υπάρχει η περιέχουσα προσάρτηση"
 
 #: gio/glocalfile.c:1173
+#, fuzzy
+#| msgid "Can't rename root directory"
 msgid "Can’t rename root directory"
 msgstr "Αδυναμία μετονομασίας του καταλόγου root"
 
 #
 #: gio/glocalfile.c:1191 gio/glocalfile.c:1214
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error reading file %s: %s"
 msgid "Error renaming file %s: %s"
-msgstr "ΣÏ\86άλμα Î¼ÎµÏ\84ονομαÏ\83ίας αρχείου %s: %s"
+msgstr "ΣÏ\86άλμα Î±Î½Î¬Î³Î½Ï\89Ï\83ης αρχείου %s: %s"
 
 #: gio/glocalfile.c:1198
+#, fuzzy
+#| msgid "Can't rename file, filename already exists"
 msgid "Can’t rename file, filename already exists"
 msgstr "Αδυναμία μετονομασίας του αρχείου, το όνομα αρχείου υπάρχει ήδη"
 
@@ -3040,19 +3134,22 @@ msgstr "Άκυρο όνομα αρχείου"
 
 #
 #: gio/glocalfile.c:1379 gio/glocalfile.c:1394
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error opening file '%s': %s"
 msgid "Error opening file %s: %s"
-msgstr "Σφάλμα ανοίγματος αρχείου %s: %s"
+msgstr "Σφάλμα ανοίγματος αρχείου '%s': %s"
 
 #: gio/glocalfile.c:1519
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error removing file: %s"
 msgid "Error removing file %s: %s"
-msgstr "Σφάλμα αφαίρεσης αρχείου %s: %s"
+msgstr "Σφάλμα αφαίρεσης αρχείου: %s"
 
 #: gio/glocalfile.c:1916
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error trashing file: %s"
 msgid "Error trashing file %s: %s"
-msgstr "Σφάλμα μεταφοράς αρχείου στα απορρίμματα %s: %s"
+msgstr "Σφάλμα μεταφοράς αρχείου στα απορρίμματα: %s"
 
 # gconf/gconf-internals.c:2416
 #: gio/glocalfile.c:1957
@@ -3074,38 +3171,44 @@ msgstr ""
 "Δεν υποστηρίζεται η αντιγραφή (συνδέσμου αναφοράς/κλώνου) μεταξύ προσαρτήσεων"
 
 #: gio/glocalfile.c:2071 gio/glocalfile.c:2091
-#, c-format
+#, fuzzy, c-format
+#| msgid "Unable to find or create trash directory"
 msgid "Unable to find or create trash directory for %s"
-msgstr "Î\91δÏ\85ναμία ÎµÏ\8dÏ\81εÏ\83ηÏ\82 Î® Î´Î·Î¼Î¹Î¿Ï\85Ï\81γίαÏ\82 Ï\84οÏ\85 ÎºÎ±Ï\84αλÏ\8cγοÏ\85 Î±Ï\80οÏ\81Ï\81ιμμάÏ\84Ï\89ν Î³Î¹Î± %s"
+msgstr "Î\91δÏ\8dναÏ\84η Î· ÎµÏ\8dÏ\81εÏ\83η Î® Î´Î·Î¼Î¹Î¿Ï\85Ï\81γία Ï\84οÏ\85 ÎºÎ±Ï\84αλÏ\8cγοÏ\85 Î±Ï\80οÏ\81Ï\81ιμμάÏ\84Ï\89ν"
 
 # gconf/gconf-internals.c:2416
 #: gio/glocalfile.c:2126
-#, c-format
+#, fuzzy, c-format
+#| msgid "Unable to create trashing info file: %s"
 msgid "Unable to create trashing info file for %s: %s"
-msgstr "Αδυναμία δημιουργίας αρχείου πληροφοριών απορριμμάτων για %s: %s"
+msgstr "Αποτυχία δημιουργίας αρχείου πληροφοριών απορριμμάτων: %s"
 
 # gconf/gconf-internals.c:2416
 #: gio/glocalfile.c:2186
 #, fuzzy, c-format
+#| msgid "Unable to trash file: %s"
 msgid "Unable to trash file %s across filesystem boundaries"
-msgstr "Î\91δÏ\85ναμία Î¼ÎµÏ\84αÏ\86οÏ\81άÏ\82 του αρχείου στα απορρίμματα: %s"
+msgstr "Î\91δÏ\8dναÏ\84η Î· Î¼ÎµÏ\84αÏ\86οÏ\81ά του αρχείου στα απορρίμματα: %s"
 
 # gconf/gconf-internals.c:2416
 #: gio/glocalfile.c:2190 gio/glocalfile.c:2246
-#, c-format
+#, fuzzy, c-format
+#| msgid "Unable to trash file: %s"
 msgid "Unable to trash file %s: %s"
-msgstr "Î\91δÏ\85ναμία Î¼ÎµÏ\84αÏ\86οÏ\81άÏ\82 Ï\84οÏ\85 Î±Ï\81Ï\87είοÏ\85 Ï\83Ï\84α Î±Ï\80οÏ\81Ï\81ίμμαÏ\84α %s: %s"
+msgstr "Î\91δÏ\8dναÏ\84η Î· Î¼ÎµÏ\84αÏ\86οÏ\81ά Ï\84οÏ\85 Î±Ï\81Ï\87είοÏ\85 Ï\83Ï\84α Î±Ï\80οÏ\81Ï\81ίμμαÏ\84α: %s"
 
 # gconf/gconf-internals.c:2416
 #: gio/glocalfile.c:2252
-#, c-format
+#, fuzzy, c-format
+#| msgid "Unable to trash file: %s"
 msgid "Unable to trash file %s"
-msgstr "Î\91δÏ\85ναμία Î¼ÎµÏ\84αÏ\86οÏ\81άÏ\82 Ï\84οÏ\85 Î±Ï\81Ï\87είοÏ\85 Ï\83Ï\84α Î±Ï\80οÏ\81Ï\81ίμμαÏ\84α %s"
+msgstr "Î\91δÏ\8dναÏ\84η Î· Î¼ÎµÏ\84αÏ\86οÏ\81ά Ï\84οÏ\85 Î±Ï\81Ï\87είοÏ\85 Ï\83Ï\84α Î±Ï\80οÏ\81Ï\81ίμμαÏ\84α: %s"
 
 #: gio/glocalfile.c:2278
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error creating directory '%s': %s"
 msgid "Error creating directory %s: %s"
-msgstr "Σφάλμα δημιουργίας καταλόγου %s: %s"
+msgstr "Σφάλμα δημιουργίας καταλόγου '%s': %s"
 
 # gconf/gconf-internals.c:2416
 #: gio/glocalfile.c:2307
@@ -3115,20 +3218,24 @@ msgstr "Το σύστημα αρχείων δεν υποστηρίζει συμ
 
 # gconf/gconftool.c:1181
 #: gio/glocalfile.c:2310
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error making symbolic link: %s"
 msgid "Error making symbolic link %s: %s"
-msgstr "Σφάλμα δημιουργίας συμβολικού συνδέσμου %s: %s"
+msgstr "Σφάλμα δημιουργίας συμβολικού συνδέσμου: %s"
 
 #: gio/glocalfile.c:2316 glib/gfileutils.c:2138
 msgid "Symbolic links not supported"
 msgstr "Οι συμβολικοί σύνδεσμοι δεν υποστηρίζονται"
 
 #: gio/glocalfile.c:2371 gio/glocalfile.c:2406 gio/glocalfile.c:2463
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error moving file: %s"
 msgid "Error moving file %s: %s"
-msgstr "Σφάλμα μετακίνησης αρχείου %s: %s"
+msgstr "Σφάλμα μετακίνησης αρχείου: %s"
 
 #: gio/glocalfile.c:2394
+#, fuzzy
+#| msgid "Can't move directory over directory"
 msgid "Can’t move directory over directory"
 msgstr "Αδυναμία μετακίνησης καταλόγου σε άλλον"
 
@@ -3176,9 +3283,10 @@ msgstr " (άκυρη κωδικοποίηση)"
 
 #
 #: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error when getting information for file '%s': %s"
 msgid "Error when getting information for file “%s”: %s"
-msgstr "Σφάλμα λήψης πληροφοριών αρχείου «%s»: %s"
+msgstr "Σφάλμα λήψης πληροφοριών αρχείου '%s': %s"
 
 #: gio/glocalfileinfo.c:2053
 #, c-format
@@ -3309,9 +3417,10 @@ msgstr "Σφάλμα περικοπής αρχείου: %s"
 #
 #: gio/glocalfileoutputstream.c:557 gio/glocalfileoutputstream.c:795
 #: gio/glocalfileoutputstream.c:1045 gio/gsubprocess.c:380
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error opening file '%s': %s"
 msgid "Error opening file “%s”: %s"
-msgstr "Σφάλμα ανοίγματος αρχείου «%s»: %s"
+msgstr "Σφάλμα ανοίγματος αρχείου '%s': %s"
 
 #: gio/glocalfileoutputstream.c:826
 msgid "Target file is a directory"
@@ -3476,13 +3585,16 @@ msgstr "Η ροή πηγής έχει ήδη κλείσει"
 
 #
 #: gio/gresolver.c:342 gio/gthreadedresolver.c:116 gio/gthreadedresolver.c:126
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error resolving '%s': %s"
 msgid "Error resolving “%s”: %s"
-msgstr "Σφάλμα επίλυσης του «%s»: %s"
+msgstr "Σφάλμα επίλυσης του '%s': %s"
 
 #: gio/gresolver.c:729 gio/gresolver.c:781
+#, fuzzy
+#| msgid "Invalid filename"
 msgid "Invalid domain"
-msgstr "Î\9cη Î­Î³ÎºÏ\85Ï\81οÏ\82 Ï\84ομέαÏ\82"
+msgstr "Î\86κÏ\85Ï\81ο Ï\8cνομα Î±Ï\81Ï\87είοÏ\85"
 
 #: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
 #: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
@@ -4110,9 +4222,10 @@ msgid "Proxying over a non-TCP connection is not supported."
 msgstr "Η προσπάθεια διαμεσολάβησης σε σύνδεση εκτός TCP δεν υποστηρίζεται."
 
 #: gio/gsocketclient.c:1110 gio/gsocketclient.c:1561
-#, c-format
+#, fuzzy, c-format
+#| msgid "Proxy protocol '%s' is not supported."
 msgid "Proxy protocol “%s” is not supported."
-msgstr "Το πρωτόκολλο διαμεσολαβητή «%s» δεν υποστηρίζεται."
+msgstr "Το πρωτόκολλο διαμεσολαβητή '%s' δεν υποστηρίζεται."
 
 #: gio/gsocketlistener.c:225
 msgid "Listener is already closed"
@@ -4123,19 +4236,21 @@ msgid "Added socket is closed"
 msgstr "Ο πρόσθετος υποδοχέας είναι κλειστός"
 
 #: gio/gsocks4aproxy.c:118
-#, c-format
+#, fuzzy, c-format
+#| msgid "SOCKSv4 does not support IPv6 address '%s'"
 msgid "SOCKSv4 does not support IPv6 address “%s”"
-msgstr "Το SOCKSv4 δεν υποστηρίζει τη διεύθυνση IPv6 «%s»"
+msgstr "Το SOCKSv4 δεν υποστηρίζει τη διεύθυνση IPv6 '%s'"
 
 #: gio/gsocks4aproxy.c:136
 msgid "Username is too long for SOCKSv4 protocol"
 msgstr "Το όνομα χρήστη είναι πολύ μεγάλο για το πρωτόκολλο SOCKSv4"
 
 #: gio/gsocks4aproxy.c:153
-#, c-format
+#, fuzzy, c-format
+#| msgid "Hostname '%s' is too long for SOCKSv4 protocol"
 msgid "Hostname “%s” is too long for SOCKSv4 protocol"
 msgstr ""
-"Το όνομα του κεντρικού υπολογιστή «%s» είναι πολύ μεγάλο για το πρωτόκολλο "
+"Το όνομα του κεντρικού υπολογιστή '%s' είναι πολύ μεγάλο για το πρωτόκολλο "
 "SOCKSv4"
 
 #: gio/gsocks4aproxy.c:179
@@ -4173,10 +4288,11 @@ msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr "Αποτυχία επικύρωσης SOCKSv5 οφειλόμενη σε λάθος όνομα χρήστη ή κωδικό."
 
 #: gio/gsocks5proxy.c:286
-#, c-format
+#, fuzzy, c-format
+#| msgid "Hostname '%s' is too long for SOCKSv5 protocol"
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr ""
-"Το όνομα κεντρικού υπολογιστή «%s» είναι πολύ μεγάλο για το πρωτόκολλο "
+"Το όνομα κεντρικού υπολογιστή '%s' είναι πολύ μεγάλο για το πρωτόκολλο "
 "SOCKSv5"
 
 #: gio/gsocks5proxy.c:348
@@ -4231,26 +4347,30 @@ msgstr "Δεν βρέθηκαν έγκυρες διευθύνσεις"
 
 #
 #: gio/gthreadedresolver.c:213
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error reverse-resolving '%s': %s"
 msgid "Error reverse-resolving “%s”: %s"
-msgstr "Σφάλμα ανάστροφης επίλυσης του «%s»: %s"
+msgstr "Σφάλμα ανάστροφης επίλυσης του '%s': %s"
 
 #: gio/gthreadedresolver.c:549 gio/gthreadedresolver.c:628
 #: gio/gthreadedresolver.c:726 gio/gthreadedresolver.c:776
-#, c-format
+#, fuzzy, c-format
+#| msgid "No DNS record of the requested type for '%s'"
 msgid "No DNS record of the requested type for “%s”"
-msgstr "Χωρίς εγγραφή DNS του αιτούμενου τύπου για «%s»"
+msgstr "Χωρίς εγγραφή DNS του αιτούμενου τύπου για '%s'"
 
 #: gio/gthreadedresolver.c:554 gio/gthreadedresolver.c:731
-#, c-format
+#, fuzzy, c-format
+#| msgid "Temporarily unable to resolve '%s'"
 msgid "Temporarily unable to resolve “%s”"
-msgstr "Προσωρινή αδυναμία επίλυσης του «%s»"
+msgstr "Προσωρινή αδυναμία επίλυσης του '%s'"
 
 #: gio/gthreadedresolver.c:559 gio/gthreadedresolver.c:736
 #: gio/gthreadedresolver.c:844
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error resolving '%s'"
 msgid "Error resolving “%s”"
-msgstr "Σφάλμα επίλυσης του «%s»"
+msgstr "Σφάλμα επίλυσης του '%s'"
 
 #: gio/gtlscertificate.c:250
 msgid "Cannot decrypt PEM-encoded private key"
@@ -5011,9 +5131,10 @@ msgstr "ΜΜ"
 
 #
 #: glib/gdir.c:155
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error opening directory '%s': %s"
 msgid "Error opening directory “%s”: %s"
-msgstr "Σφάλμα ανοίγματος καταλόγου «%s»: %s"
+msgstr "Σφάλμα ανοίγματος καταλόγου '%s': %s"
 
 #
 #: glib/gfileutils.c:716 glib/gfileutils.c:808
@@ -5027,56 +5148,65 @@ msgstr[1] "Αδυναμία διάθεσης %lu bytes για ανάγνωση 
 
 #
 #: glib/gfileutils.c:733
-#, c-format
+#, fuzzy, c-format
+#| msgid "Error reading file %s: %s"
 msgid "Error reading file “%s”: %s"
-msgstr "Σφάλμα ανάγνωσης αρχείου «%s»: %s"
+msgstr "Σφάλμα ανάγνωσης αρχείου %s: %s"
 
 #: glib/gfileutils.c:769
-#, c-format
+#, fuzzy, c-format
+#| msgid "File \"%s\" is too large"
 msgid "File “%s” is too large"
-msgstr "Το αρχείο «%s» είναι υπερβολικά μεγάλο"
+msgstr "Το αρχείο \"%s\" είναι υπερβολικά μεγάλο"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:833
-#, c-format
+#, fuzzy, c-format
+#| msgid "Failed to read from file '%s': %s"
 msgid "Failed to read from file “%s”: %s"
-msgstr "Αποτυχία ανάγνωσης από το αρχείο «%s»: %s"
+msgstr "Αποτυχία ανάγνωσης από το αρχείο '%s': %s"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:881 glib/gfileutils.c:953
-#, c-format
+#, fuzzy, c-format
+#| msgid "Failed to open file '%s': %s"
 msgid "Failed to open file “%s”: %s"
-msgstr "Αποτυχία ανοίγματος αρχείου «%s»: %s"
+msgstr "Αποτυχία ανοίγματος αρχείου '%s': %s"
 
 # gconf/gconfd.c:1701
 #: glib/gfileutils.c:893
-#, c-format
+#, 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 "Αποτυχία λήψης γνωρισμάτων αρχείου «%s»: fstat() απέτυχε: %s"
+msgstr "Αποτυχία λήψης γνωρισμάτων αρχείου '%s': fstat() απέτυχε: %s"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:923
-#, c-format
+#, fuzzy, 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"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:1022
-#, c-format
+#, 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 "Αποτυχία μετονομασίας αρχείου «%s» σε '%s': g_rename() απέτυχε: %s"
+msgstr "Αποτυχία μετονομασίας αρχείου '%s' σε '%s': g_rename() απέτυχε: %s"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:1057 glib/gfileutils.c:1575
-#, c-format
+#, fuzzy, c-format
+#| msgid "Failed to create file '%s': %s"
 msgid "Failed to create file “%s”: %s"
-msgstr "Αποτυχία δημιουργίας αρχείου «%s»: %s"
+msgstr "Αποτυχία δημιουργίας αρχείου '%s': %s"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:1084
-#, c-format
+#, fuzzy, 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"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:1127
@@ -5099,20 +5229,23 @@ msgid "Template “%s” invalid, should not contain a “%s”"
 msgstr "Άκυρο πρότυπο '%s', δεν πρέπει να περιέχει '%s'"
 
 #: glib/gfileutils.c:1554
-#, c-format
+#, fuzzy, c-format
+#| msgid "Template '%s' doesn't contain XXXXXX"
 msgid "Template “%s” doesn’t contain XXXXXX"
-msgstr "Το πρότυπο «%s» δεν περιέχει XXXXXX"
+msgstr "Το πρότυπο '%s' δεν περιέχει XXXXXX"
 
 # gconf/gconf-internals.c:2416
 #: glib/gfileutils.c:2116
-#, c-format
+#, fuzzy, 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:1389
-#, c-format
+#, fuzzy, 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:1734
 #, fuzzy
@@ -5176,9 +5309,10 @@ msgstr "Το αρχείο κλειδιού περιέχει ανυποστήρι
 #: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
 #: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
 #: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
-#, c-format
+#, fuzzy, 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:1773
 #, fuzzy, c-format
@@ -5232,30 +5366,35 @@ msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Το αρχείο κλειδιού περιέχει άκυρη σειρά διαφυγής '%s'"
 
 #: glib/gkeyfile.c:4440
-#, c-format
+#, fuzzy, 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:4454
-#, c-format
+#, fuzzy, c-format
+#| msgid "Integer value '%s' out of range"
 msgid "Integer value “%s” out of range"
-msgstr "Η ακέραιη τιμή «%s» είναι εκτός εύρους"
+msgstr "Η ακέραιη τιμή '%s' είναι εκτός εύρους"
 
 #: glib/gkeyfile.c:4487
-#, c-format
+#, fuzzy, 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:4526
-#, c-format
+#, fuzzy, c-format
+#| msgid "Value '%s' cannot be interpreted as a boolean."
 msgid "Value “%s” cannot be interpreted as a boolean."
-msgstr "Η τιμή «%s» δεν μπορεί να ερμηνευθεί ως Μπουλ."
+msgstr "Η τιμή '%s' δεν μπορεί να ερμηνευθεί ως Μπουλ."
 
 # gconf/gconfd.c:1701
 #: glib/gmappedfile.c:129
-#, c-format
+#, 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 "Αποτυχία λήψης γνωρισμάτων του αρχείου «%s%s%s%s»: fstat() απέτυχε: %s"
+msgstr "Αποτυχία λήψης γνωρισμάτων του αρχείου '%s%s%s%s': fstat() απέτυχε: %s"
 
 # gconf/gconf-internals.c:2416
 #: glib/gmappedfile.c:195
@@ -5265,9 +5404,10 @@ msgstr "Αποτυχία χαρτογράφησης %s%s%s%s: mmap() απέτυ
 
 # gconf/gconf-internals.c:2416
 #: glib/gmappedfile.c:262
-#, c-format
+#, fuzzy, c-format
+#| msgid "Failed to open file '%s': open() failed: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
-msgstr "Αποτυχία ανοίγματος αρχείου «%s»: open() απέτυχε: %s"
+msgstr "Αποτυχία ανοίγματος αρχείου '%s': open() απέτυχε: %s"
 
 # gconf/gconfd.c:1676
 #: glib/gmarkup.c:397 glib/gmarkup.c:439
@@ -5276,19 +5416,22 @@ msgid "Error on line %d char %d: "
 msgstr "Σφάλμα στη γραμμή %d χαρακτήρας %d: "
 
 #: glib/gmarkup.c:461 glib/gmarkup.c:544
-#, c-format
+#, 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 "Î\9cη Î­Î³ÎºÏ\85Ï\81ο ÎºÏ\89δικοÏ\80οιημένο ÎºÎµÎ¯Î¼ÎµÎ½Î¿ UTF-8 Ï\83Ï\84ο Ï\8cνομα â\80\94 Î¼Î· Î­Î³ÎºÏ\85Ï\81ο Â«%s»"
+msgstr "Î\86κÏ\85Ï\81ο ÎºÏ\89δικοÏ\80οιημένο ÎºÎµÎ¯Î¼ÎµÎ½Î¿ UTF-8 Ï\83Ï\84ο Ï\8cνομα - Î¼Î· Î­Î³ÎºÏ\85Ï\81ο '%s'"
 
 #: glib/gmarkup.c:472
-#, c-format
+#, fuzzy, c-format
+#| msgid "'%s' is not a valid name"
 msgid "“%s” is not a valid name"
-msgstr "«%s» δεν είναι έγκυρο όνομα"
+msgstr "'%s' δεν είναι έγκυρο όνομα"
 
 #: glib/gmarkup.c:488
-#, c-format
+#, fuzzy, 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:610
@@ -5325,22 +5468,27 @@ msgstr ""
 "οντότητα - διαφυγή συμπλεκτικού ως &amp;"
 
 #: glib/gmarkup.c:725
-#, c-format
+#, fuzzy, c-format
+#| msgid "Character reference '%-.*s' does not encode a permitted character"
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr ""
-"Η αναφορά χαρακτήρα «%-.*s» δεν κωδικοποιεί έναν επιτρεπόμενο χαρακτήρα"
+"Η αναφορά χαρακτήρα '%-.*s' δεν κωδικοποιεί έναν επιτρεπόμενο χαρακτήρα"
 
 #: glib/gmarkup.c:763
+#, 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; "
+"Κενή οντότητα '&;' παρατηρήθηκε· έγκυρες οντότητες είναι: &amp; &quot; &lt; "
 "&gt; &apos;"
 
 #: glib/gmarkup.c:771
-#, c-format
+#, fuzzy, c-format
+#| msgid "Entity name '%-.*s' is not known"
 msgid "Entity name “%-.*s” is not known"
-msgstr "Το όνομα οντότητας «%-.*s» δεν είναι γνωστό"
+msgstr "Το όνομα οντότητας '%-.*s' δεν είναι γνωστό"
 
 #: glib/gmarkup.c:776
 #, fuzzy
@@ -5446,14 +5594,16 @@ msgstr ""
 "κλεισίματος '%s'· ο επιτρεπόμενος χαρακτήρας είναι '>'"
 
 #: glib/gmarkup.c:1610
-#, c-format
+#, fuzzy, 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:1619
-#, c-format
+#, 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 "Το στοιχείο «%s» έκλεισε, αλλά το τρέχον ανοικτό στοιχείο είναι «%s»"
+msgstr "Το στοιχείο '%s' έκλεισε, αλλά το τρέχον ανοικτό στοιχείο είναι '%s'"
 
 #: glib/gmarkup.c:1772
 msgid "Document was empty or contained only whitespace"
@@ -5514,10 +5664,11 @@ msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Το έγγραφο τερματίστηκε απρόσμενα σε τιμή γνωρίσματος"
 
 #: glib/gmarkup.c:1849
-#, c-format
+#, 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 ""
-"Το έγγραφο τερματίστηκε απρόσμενα σε ετικέτα κλεισίματος για στοιχείο «%s»"
+"Το έγγραφο τερματίστηκε απρόσμενα σε ετικέτα κλεισίματος για στοιχείο '%s'"
 
 #: glib/gmarkup.c:1853
 #, fuzzy
@@ -5558,24 +5709,28 @@ msgid "Options:"
 msgstr "Επιλογές:"
 
 #: glib/goption.c:1113 glib/goption.c:1183
-#, c-format
+#, fuzzy, 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:1123 glib/goption.c:1191
-#, c-format
+#, fuzzy, 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:1148
-#, c-format
+#, fuzzy, c-format
+#| msgid "Cannot parse double value '%s' for %s"
 msgid "Cannot parse double value “%s” for %s"
-msgstr "Αδυναμία ανάλυσης διπλής τιμής «%s» για %s"
+msgstr "Αδυναμία ανάλυσης διπλής τιμής '%s' για %s"
 
 #: glib/goption.c:1156
-#, c-format
+#, fuzzy, c-format
+#| msgid "Double value '%s' for %s out of range"
 msgid "Double value “%s” for %s out of range"
-msgstr "Η διπλή τιμή «%s» για %s είναι εκτός περιοχής"
+msgstr "Η διπλή τιμή '%s' για %s είναι εκτός περιοχής"
 
 # gconf/gconftool.c:1181
 #: glib/goption.c:1448 glib/goption.c:1527
@@ -5936,8 +6091,10 @@ msgid "hexadecimal digit expected"
 msgstr "αναμένεται δεκαεξαδικό ψηφίο"
 
 #: glib/gregex.c:2475
+#, fuzzy
+#| msgid "missing '<' in symbolic reference"
 msgid "missing “<” in symbolic reference"
-msgstr "λείπει το «<» από τη συμβολική αναφορά"
+msgstr "λείπει το '<' από τη συμβολική αναφορά"
 
 #: glib/gregex.c:2484
 msgid "unfinished symbolic reference"
index 90e4d99..b4eb937 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -14,8 +14,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib.master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-24 09:12+0000\n"
-"PO-Revision-Date: 2018-11-28 12:09+0100\n"
+"POT-Creation-Date: 2018-12-02 17:03+0000\n"
+"PO-Revision-Date: 2018-12-04 15:38+0100\n"
 "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
 "Language-Team: es <gnome-es-list@gnome.org>\n"
 "Language: es\n"
@@ -25,24 +25,28 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Gtranslator 2.91.7\n"
 
-#: gio/gapplication.c:496
+#: gio/gapplication.c:499
 msgid "GApplication options"
 msgstr "Opciones de GApplication"
 
-#: gio/gapplication.c:496
+#: gio/gapplication.c:499
 msgid "Show GApplication options"
 msgstr "Mostrar las opciones de GApplication"
 
-#: gio/gapplication.c:541
+#: gio/gapplication.c:544
 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:553
+#: gio/gapplication.c:556
 msgid "Override the application’s ID"
 msgstr "Omitir el ID de la aplicación"
 
+#: gio/gapplication.c:568
+msgid "Replace the running instance"
+msgstr "Reemplazar la instancia actual en ejecución"
+
 #: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
 #: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
 msgid "Print help"
@@ -305,14 +309,14 @@ msgid "Not enough space in destination"
 msgstr "No hay suficiente espacio en el destino"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:884
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 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:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:798
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Falló durante la conversión: %s"
@@ -321,7 +325,7 @@ msgstr "Falló durante la conversión: %s"
 msgid "Cancellable initialization not supported"
 msgstr "La inicialización cancelable no eestá soportada"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr ""
@@ -522,7 +526,7 @@ msgstr ""
 "No se puede determinar la dirección del bus de sesión (no implementado para "
 "este SO)"
 
-#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7142
+#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7147
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -531,7 +535,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:1671 gio/gdbusconnection.c:7151
+#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7156
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -662,7 +666,7 @@ msgstr ""
 "Se encontraron opciones no soportadas al construir la conexión del lado del "
 "cliente"
 
-#: gio/gdbusconnection.c:4115 gio/gdbusconnection.c:4462
+#: gio/gdbusconnection.c:4120 gio/gdbusconnection.c:4467
 #, c-format
 msgid ""
 "No such interface “org.freedesktop.DBus.Properties” on object at path %s"
@@ -670,75 +674,75 @@ msgstr ""
 "No existe la interfaz «org.freedesktop.DBus.Properties» en el objeto en la "
 "ruta %s"
 
-#: gio/gdbusconnection.c:4257
+#: gio/gdbusconnection.c:4262
 #, c-format
 msgid "No such property “%s”"
 msgstr "No existe la propiedad «%s»"
 
-#: gio/gdbusconnection.c:4269
+#: gio/gdbusconnection.c:4274
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "No se puede leer la propiedad «%s»"
 
-#: gio/gdbusconnection.c:4280
+#: gio/gdbusconnection.c:4285
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "No se puede escribir la propiedad «%s»"
 
-#: gio/gdbusconnection.c:4300
+#: gio/gdbusconnection.c:4305
 #, 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:4405 gio/gdbusconnection.c:4613
-#: gio/gdbusconnection.c:6582
+#: gio/gdbusconnection.c:4410 gio/gdbusconnection.c:4618
+#: gio/gdbusconnection.c:6587
 #, c-format
 msgid "No such interface “%s”"
 msgstr "La interfaz «%s» no existe"
 
-#: gio/gdbusconnection.c:4831 gio/gdbusconnection.c:7091
+#: gio/gdbusconnection.c:4836 gio/gdbusconnection.c:7096
 #, 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:4929
+#: gio/gdbusconnection.c:4934
 #, c-format
 msgid "No such method “%s”"
 msgstr "No existe el método «%s»"
 
-#: gio/gdbusconnection.c:4960
+#: gio/gdbusconnection.c:4965
 #, 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:5158
+#: gio/gdbusconnection.c:5163
 #, 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:5384
+#: gio/gdbusconnection.c:5389
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "No se pudo obtener la propiedad %s.%s"
 
-#: gio/gdbusconnection.c:5440
+#: gio/gdbusconnection.c:5445
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "No se pudo establecer la propiedad %s.%s"
 
-#: gio/gdbusconnection.c:5618
+#: gio/gdbusconnection.c:5623
 #, 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:6693
+#: gio/gdbusconnection.c:6698
 #, 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:6814
+#: gio/gdbusconnection.c:6819
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Ya se ha exportado un subárbol para %s"
@@ -866,7 +870,7 @@ msgstr ""
 "La versión principal del protocolo no es válida. Se esperaba 1 pero se "
 "encontró %d."
 
-#: gio/gdbusmessage.c:2132 gio/gdbusmessage.c:2722
+#: gio/gdbusmessage.c:2132 gio/gdbusmessage.c:2724
 msgid "Signature header found but is not of type signature"
 msgstr "Cabecera de firma encontrada pero no es del tipo firma"
 
@@ -877,13 +881,13 @@ msgstr ""
 "Se encontró la cabecera de firma con firma «%s» pero el cuerpo del mensaje "
 "está vacío"
 
-#: gio/gdbusmessage.c:2158
+#: gio/gdbusmessage.c:2159
 #, 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:2188
+#: gio/gdbusmessage.c:2190
 #, 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"
@@ -894,11 +898,11 @@ msgstr[1] ""
 "No existe la cabecera de firma en el mensaje pero el cuerpo del mensaje "
 "tiene %u bytes"
 
-#: gio/gdbusmessage.c:2198
+#: gio/gdbusmessage.c:2200
 msgid "Cannot deserialize message: "
 msgstr "No se puede deserializar el mensaje: "
 
-#: gio/gdbusmessage.c:2539
+#: gio/gdbusmessage.c:2541
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -906,7 +910,7 @@ msgstr ""
 "Error al serializar GVariant con el tipo de cadena «%s» al formato de "
 "mensaje de D-Bus"
 
-#: gio/gdbusmessage.c:2676
+#: gio/gdbusmessage.c:2678
 #, c-format
 msgid ""
 "Number of file descriptors in message (%d) differs from header field (%d)"
@@ -914,17 +918,17 @@ msgstr ""
 "El número de descriptores de archivos en el mensaje (%d) es distinto del "
 "campo de cabecera (%d)"
 
-#: gio/gdbusmessage.c:2684
+#: gio/gdbusmessage.c:2686
 msgid "Cannot serialize message: "
 msgstr "No se puede serializar el mensaje: "
 
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2740
 #, 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:2748
+#: gio/gdbusmessage.c:2750
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -933,19 +937,19 @@ msgstr ""
 "El cuerpo del mensaje tiene un tipo de firma «%s» pero la firma en el campo "
 "de cabecera es «%s»"
 
-#: gio/gdbusmessage.c:2764
+#: gio/gdbusmessage.c:2766
 #, 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:3317
+#: gio/gdbusmessage.c:3319
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Error al devolver el cuerpo de tipo «%s»"
 
-#: gio/gdbusmessage.c:3325
+#: gio/gdbusmessage.c:3327
 msgid "Error return with empty body"
 msgstr "Error al devolver un cuepro vacío"
 
@@ -958,22 +962,26 @@ msgstr "No se pudo obtener el perfil de hardware: %s"
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "No se puede cargar /var/lib/dbus/machine-id o /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1612
+#: gio/gdbusproxy.c:1611
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Error al llamar StartSereviceByName para %s: "
 
-#: gio/gdbusproxy.c:1635
+#: gio/gdbusproxy.c:1634
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Respuesta %d no esperada del método StartServiceByName(«%s»)"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: gio/gdbusproxy.c:2733 gio/gdbusproxy.c:2868
+#, 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 a well-known name without an owner and "
-"proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+"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 ""
-"No se puede invocar al método; el proxy no tiene dueño para un nombre "
+"No se puede invocar al método; el proxy no tiene dueño para un nombre %s"
 "conocido y el proxy se construyó con la opción "
 "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
 
@@ -1277,7 +1285,7 @@ msgstr "Demasiados argumentos.\n"
 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/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4633
+#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4660
 msgid "Unnamed"
 msgstr "Sin nombre"
 
@@ -1493,7 +1501,7 @@ msgid "Truncate not supported on stream"
 msgstr "No se soporta el truncamiento en el flujo"
 
 #: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
+#: glib/gconvert.c:1787
 msgid "Invalid hostname"
 msgstr "El nombre del host no es válido"
 
@@ -3114,7 +3122,7 @@ msgstr "Error al buscar en el archivo: %s"
 msgid "Error closing file: %s"
 msgstr "Error al cerrar el archivo: %s"
 
-#: gio/glocalfilemonitor.c:854
+#: gio/glocalfilemonitor.c:856
 msgid "Unable to find default local file monitor type"
 msgstr ""
 "No se pudo encontrar el tipo de monitorización del archivo local "
@@ -3272,21 +3280,27 @@ msgstr "Red no alcanzable"
 msgid "Host unreachable"
 msgstr "Equipo no alcanzable"
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
+#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
+#: gio/gnetworkmonitornetlink.c:130
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr "No se pudo crear el monitor de red: %s"
 
-#: gio/gnetworkmonitornetlink.c:118
+#: gio/gnetworkmonitornetlink.c:120
 msgid "Could not create network monitor: "
 msgstr "No se pudo crear el monitor de red: "
 
-#: gio/gnetworkmonitornetlink.c:176
+#: gio/gnetworkmonitornetlink.c:183
 msgid "Could not get network status: "
 msgstr "No se pudo obtener el estado de la red: "
 
-#: gio/gnetworkmonitornm.c:322
+#: gio/gnetworkmonitornm.c:313
+#, c-format
+#| msgid "NetworkManager version too old"
+msgid "NetworkManager not running"
+msgstr "NetworkManager no está en ejecución"
+
+#: gio/gnetworkmonitornm.c:324
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "Versión de NetworkManager demasiado antigua"
@@ -4117,7 +4131,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2651 gio/gunixmounts.c:2704
 msgid "Filesystem root"
 msgstr "Sistema de archivos raíz"
 
@@ -4274,8 +4288,8 @@ msgstr "Falló la expansión de lalinea ejecutable «%s» con el URI «%s»"
 msgid "Unrepresentable character in conversion input"
 msgstr "Carácter no representable en entrada de conversión"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Hay una secuencia parcial de caracteres en el final de la entrada"
 
@@ -4284,40 +4298,40 @@ msgstr "Hay una secuencia parcial de caracteres en el final de la entrada"
 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:941
 msgid "Embedded NUL byte in conversion input"
 msgstr "Tipo NUL empotrado en la entrada de conversión"
 
-#: glib/gconvert.c:961
+#: glib/gconvert.c:962
 msgid "Embedded NUL byte in conversion output"
 msgstr "Tipo NUL empotrado en la salida de conversión"
 
-#: glib/gconvert.c:1649
+#: glib/gconvert.c:1650
 #, 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:1659
+#: glib/gconvert.c:1660
 #, 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:1676
+#: glib/gconvert.c:1677
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr "El URI «%s» no es válido"
 
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1689
 #, 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:1704
+#: glib/gconvert.c:1705
 #, c-format
 msgid "The URI “%s” contains invalidly escaped characters"
 msgstr "El URI «%s» contiene caracteres de escape no válidos"
 
-#: glib/gconvert.c:1776
+#: glib/gconvert.c:1777
 #, c-format
 msgid "The pathname “%s” is not an absolute path"
 msgstr "El nombre de la ruta «%s» no es una ruta absoluta"
@@ -4817,39 +4831,39 @@ msgstr "La plantilla «%s» no contiene XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Falló al leer el enlace simbólico «%s»: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "No se pudo abrir el conversor de «%s» a «%s»: %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr ""
 "No se puede hacer una lectura en bruto (raw) en g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Se han dejado datos no convertidos en el búfer de lectura"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "El canal termina en un carácter parcial"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 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:788
+#: glib/gkeyfile.c:789
 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:825
+#: glib/gkeyfile.c:826
 msgid "Not a regular file"
 msgstr "No es un archivo regular"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1275
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4857,45 +4871,45 @@ msgstr ""
 "El archivo de claves contiene la línea «%s» que no es un par valor-clave, "
 "grupo o comentario"
 
-#: glib/gkeyfile.c:1331
+#: glib/gkeyfile.c:1332
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Nombre de grupo no válido: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1354
 msgid "Key file does not start with a group"
 msgstr "El archivo de claves no empieza por un grupo"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1380
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Nombre de clave no válida: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1407
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "El archivo de claves contiene una codificación «%s» no soportada"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: 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
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "El archivo de claves no tiene el grupo «%s»"
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1778
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1940 glib/gkeyfile.c:2056
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1960 glib/gkeyfile.c:2076 glib/gkeyfile.c:2518
 #, c-format
 msgid ""
 "Key file contains key “%s” which has a value that cannot be interpreted."
@@ -4903,7 +4917,7 @@ msgstr ""
 "El archivo de claves contiene la clave «%s» que tiene un valor que no se "
 "puede interpretar."
 
-#: glib/gkeyfile.c:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2736 glib/gkeyfile.c:3105
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4912,38 +4926,38 @@ msgstr ""
 "El archivo de claves contiene la clave «%s» en el grupo «%s» que tiene un "
 "valor que no puede interpretarse."
 
-#: glib/gkeyfile.c:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2814 glib/gkeyfile.c:2891
 #, 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:4278
+#: glib/gkeyfile.c:4283
 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:4300
+#: glib/gkeyfile.c:4305
 #, 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:4444
+#: glib/gkeyfile.c:4449
 #, 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:4458
+#: glib/gkeyfile.c:4463
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "El valor entero «%s» está fuera de rango"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4496
 #, 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:4530
+#: glib/gkeyfile.c:4535
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "El valor «%s» no puede interpretarse como un booleano."
@@ -4964,32 +4978,32 @@ msgstr "Falló al mapear el archivo «%s%s%s%s»: mmap() falló: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Falló al abrir el archivo «%s»: open() falló: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Error en la línea %d, carácter %d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "«%s» no es un nombre válido"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "«%s» no es un nombre válido: «%c»"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:612
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Error en la línea %d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:689
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4999,7 +5013,7 @@ msgstr ""
 "carácter de referencia( por ejemplo &#234;) - tal vez el dígito es demasiado "
 "grande"
 
-#: glib/gmarkup.c:702
+#: glib/gmarkup.c:701
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -5009,24 +5023,24 @@ msgstr ""
 "un carácter «&» sin pretender iniciar una entidad; escape el carácter \"&\" "
 "como &amp;"
 
-#: glib/gmarkup.c:728
+#: glib/gmarkup.c:727
 #, 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:766
+#: glib/gmarkup.c:765
 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:774
+#: glib/gmarkup.c:773
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "El nombre de la entidad «%-.*s» es desconocido"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:778
 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;"
@@ -5035,11 +5049,11 @@ msgstr ""
 "\"&\" sin la intención de indicar una entidad, escape el signo \"&\" como "
 "&amp;"
 
-#: glib/gmarkup.c:1187
+#: glib/gmarkup.c:1186
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "El documento debe comenzar con un elemento (por ejemplo: <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1226
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5048,7 +5062,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:1270
+#: glib/gmarkup.c:1269
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5057,7 +5071,7 @@ msgstr ""
 "Carácter «%s» impropio, se esperaba un carácter «>» para terminar la "
 "etiqueta vacía del elemento «%s»"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1351
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5065,7 +5079,7 @@ msgstr ""
 "Carácter «%s» impropio, se esperaba el carácter '=' después del nombre de "
 "atributo «%s» del elemento «%s»"
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1393
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5076,7 +5090,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:1439
+#: glib/gmarkup.c:1438
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5085,7 +5099,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:1573
+#: glib/gmarkup.c:1572
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5094,7 +5108,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:1611
+#: glib/gmarkup.c:1610
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5103,27 +5117,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:1623
+#: glib/gmarkup.c:1622
 #, 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:1632
+#: glib/gmarkup.c:1631
 #, 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:1785
+#: glib/gmarkup.c:1784
 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:1799
+#: glib/gmarkup.c:1798
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr "El documento termina inesperadamente justo después de un '<'"
 
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1806 glib/gmarkup.c:1851
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5132,7 +5146,7 @@ msgstr ""
 "El documento termina inesperadamente con elementos todavía abiertos - «%s» "
 "fue el último elemento abierto"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1814
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5141,21 +5155,21 @@ msgstr ""
 "El documento termina inesperadamente, se esperaba un carácter '>' "
 "finalizando la etiqueta <%s/>"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1820
 msgid "Document ended unexpectedly inside an element name"
 msgstr "El documento termina inesperadamente dentro de un nombre de elemento"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1826
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "El documento termina inesperadamente dentro de un nombre de atributo"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1831
 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:1838
+#: glib/gmarkup.c:1837
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5163,25 +5177,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:1845
+#: glib/gmarkup.c:1844
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "El documento termina inesperadamente dentro del valor de un atributo"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1861
 #, 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:1866
+#: glib/gmarkup.c:1865
 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:1872
+#: glib/gmarkup.c:1871
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "El documento termina inesperadamente dentro de un comentario o instrucción "
@@ -5610,15 +5624,15 @@ msgstr "se esperaba un dígito"
 msgid "illegal symbolic reference"
 msgstr "referencia simbólica ilegal"
 
-#: glib/gregex.c:2582
+#: glib/gregex.c:2583
 msgid "stray final “\\”"
 msgstr "«\\» al final de la cadena"
 
-#: glib/gregex.c:2586
+#: glib/gregex.c:2587
 msgid "unknown escape sequence"
 msgstr "secuencia de escape desconocida"
 
-#: glib/gregex.c:2596
+#: glib/gregex.c:2597
 #, 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"
@@ -5650,82 +5664,82 @@ 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:311
+#: glib/gspawn.c:315
 #, 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:459
+#: glib/gspawn.c:463
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr "Falló inesperado en select() leyendo datos desde el proceso hijo (%s)"
 
-#: glib/gspawn.c:544
+#: glib/gspawn.c:548
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Falló inesperado en waitpid() (%s)"
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: glib/gspawn.c:1056 glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "El proceso hijo terminó con el código %ld"
 
-#: glib/gspawn.c:1060
+#: glib/gspawn.c:1064
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "El proceso hijo terminado por la señal %ld"
 
-#: glib/gspawn.c:1067
+#: glib/gspawn.c:1071
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "El proceso hijo se detuvo por la señal %ld"
 
-#: glib/gspawn.c:1074
+#: glib/gspawn.c:1078
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "El proceso hijo terminó de forma anormal"
 
-#: glib/gspawn.c:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: glib/gspawn.c:1405 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Falló al leer desde el conducto hijo (%s)"
 
-#: glib/gspawn.c:1617
+#: glib/gspawn.c:1653
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr "Falló al ejecutar el proceso hijo «%s» (%s)"
 
-#: glib/gspawn.c:1656
+#: glib/gspawn.c:1692
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Falló al bifurcar (fork) (%s)"
 
-#: glib/gspawn.c:1805 glib/gspawn-win32.c:370
+#: glib/gspawn.c:1841 glib/gspawn-win32.c:370
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Falló al cambiar a la carpeta «%s» (%s)"
 
-#: glib/gspawn.c:1815
+#: glib/gspawn.c:1851
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Falló al ejecutar el proceso hijo «%s» (%s)"
 
-#: glib/gspawn.c:1825
+#: glib/gspawn.c:1861
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Falló al redirigir la salida o la entrada del proceso hijo (%s)"
 
-#: glib/gspawn.c:1834
+#: glib/gspawn.c:1870
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Falló al bifurcar el proceso hijo (%s)"
 
-#: glib/gspawn.c:1842
+#: glib/gspawn.c:1878
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Error desconocido al ejecutar el proceso hijo «%s»"
 
-#: glib/gspawn.c:1866
+#: glib/gspawn.c:1902
 #, 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)"
@@ -5798,20 +5812,20 @@ msgstr "El número «%s» está fuera de los límites [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "«%s» no es un número sin signo"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Falló al obtener memoria"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "El carácter se sale del rango para UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Secuencia no válida en la entrada de conversión"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "El carácter se sale del rango para UTF-16"
 
index c61bf4a..3812057 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
 # Joseba Bidaurrazaga van Dierdonck <jepibi-san@ej-gv.es>, 2001.
 # 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, 2018.
+# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2012, 2013, 2014, 2015, 2016, 2017.
 msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
-"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-08-30 18:47+0000\n"
-"PO-Revision-Date: 2018-12-06 12:11+0100\n"
+"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?"
+"product=glib&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2017-08-07 06:44+0000\n"
+"PO-Revision-Date: 2017-08-27 13:30+0200\n"
 "Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n"
 "Language-Team: Basque <librezale@librezale.eus>\n"
 "Language: eu\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 2.0\n"
+"X-Generator: Lokalize 1.5\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:490
 msgid "GApplication options"
 msgstr "GApplication-en aukerak"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:490
 msgid "Show GApplication options"
 msgstr "Erakutsi GApplication-en aukerak"
 
-#: gio/gapplication.c:541
+#: ../gio/gapplication.c:535
 msgid "Enter GApplication service mode (use from D-Bus service files)"
 msgstr ""
 "Sartu GApplication zerbitzu moduan (erabili D-Bus zerbitzuaren "
 "fitxategietatik)"
 
-#: gio/gapplication.c:553
+#: ../gio/gapplication.c:547
 msgid "Override the application’s ID"
 msgstr "Gainidatzi aplikazioaren IDa"
 
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
+#: ../gio/gapplication-tool.c:45 ../gio/gapplication-tool.c:46
+#: ../gio/gio-tool.c:227 ../gio/gresource-tool.c:488
+#: ../gio/gsettings-tool.c:522
 msgid "Print help"
 msgstr "Erakutsi laguntza"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:496 gio/gresource-tool.c:564
+#: ../gio/gapplication-tool.c:47 ../gio/gresource-tool.c:489
+#: ../gio/gresource-tool.c:557
 msgid "[COMMAND]"
 msgstr "[KOMANDOA]"
 
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: ../gio/gapplication-tool.c:49 ../gio/gio-tool.c:228
 msgid "Print version"
 msgstr "Erakutsi bertsioa"
 
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:575
+#: ../gio/gapplication-tool.c:50 ../gio/gsettings-tool.c:528
 msgid "Print version information and exit"
 msgstr "Erakutsi bertsioaren informazioa eta irten"
 
-#: gio/gapplication-tool.c:52
+#: ../gio/gapplication-tool.c:52
 msgid "List applications"
 msgstr "Zerrendatu aplikazioak"
 
-#: gio/gapplication-tool.c:53
+#: ../gio/gapplication-tool.c:53
 msgid "List the installed D-Bus activatable applications (by .desktop files)"
 msgstr ""
 "Zerrendatu instalatutako aplikazioak D-Bus-agatik aktibagarriak (.desktop "
 "fitxategien arabera)"
 
-#: gio/gapplication-tool.c:55
+#: ../gio/gapplication-tool.c:55
 msgid "Launch an application"
 msgstr "Abiarazi aplikazioa"
 
-#: gio/gapplication-tool.c:56
+#: ../gio/gapplication-tool.c:56
 msgid "Launch the application (with optional files to open)"
 msgstr "Abiarazi aplikazioa (aukerako fitxategiekin irekitzeko)"
 
-#: gio/gapplication-tool.c:57
+#: ../gio/gapplication-tool.c:57
 msgid "APPID [FILE…]"
 msgstr "APPID [FITXATEGIA…]"
 
-#: gio/gapplication-tool.c:59
+#: ../gio/gapplication-tool.c:59
 msgid "Activate an action"
 msgstr "Aktibatu ekintza bat"
 
-#: gio/gapplication-tool.c:60
+#: ../gio/gapplication-tool.c:60
 msgid "Invoke an action on the application"
 msgstr "Deitu aplikazioaren ekintza bati"
 
-#: gio/gapplication-tool.c:61
+#: ../gio/gapplication-tool.c:61
 msgid "APPID ACTION [PARAMETER]"
 msgstr "APP_ID EKINTZA [PARAMETROA]"
 
-#: gio/gapplication-tool.c:63
+#: ../gio/gapplication-tool.c:63
 msgid "List available actions"
 msgstr "Zerrendatu ekintza erabilgarriak"
 
-#: gio/gapplication-tool.c:64
+#: ../gio/gapplication-tool.c:64
 msgid "List static actions for an application (from .desktop file)"
 msgstr "Zerrendatu aplikazioaren ekintza estatikoak (.desktop fitxategitik)"
 
-#: gio/gapplication-tool.c:65 gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:65 ../gio/gapplication-tool.c:71
 msgid "APPID"
 msgstr "APP_ID"
 
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:90
-#: gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:70 ../gio/gapplication-tool.c:133
+#: ../gio/gdbus-tool.c:90 ../gio/gio-tool.c:224
 msgid "COMMAND"
 msgstr "KOMANDOA"
 
-#: gio/gapplication-tool.c:70
+#: ../gio/gapplication-tool.c:70
 msgid "The command to print detailed help for"
 msgstr "Erakutsi komandoaren laguntza xehea"
 
-#: gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:71
 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:72 gio/glib-compile-resources.c:737
-#: gio/glib-compile-resources.c:743 gio/glib-compile-resources.c:770
-#: gio/gresource-tool.c:502 gio/gresource-tool.c:568
+#: ../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
 msgid "FILE"
 msgstr "FITXATEGIA"
 
-#: gio/gapplication-tool.c:72
+#: ../gio/gapplication-tool.c:72
 msgid "Optional relative or absolute filenames, or URIs to open"
 msgstr "Aukerako fitxategi-izen erlatibo edo absolutuak, edo URIak irekitzeko"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "ACTION"
 msgstr "EKINTZA"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "The action name to invoke"
 msgstr "Ekintzaren izena deitzeko"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "PARAMETER"
 msgstr "PARAMETROA"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "Optional parameter to the action invocation, in GVariant format"
 msgstr "Ekintza deitzean emango zaion parametroa, GVariant formatuan"
 
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:533 gio/gsettings-tool.c:661
+#: ../gio/gapplication-tool.c:96 ../gio/gresource-tool.c:526
+#: ../gio/gsettings-tool.c:614
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -150,26 +154,26 @@ msgstr ""
 "'%s' komando ezezaguna\n"
 "\n"
 
-#: gio/gapplication-tool.c:101
+#: ../gio/gapplication-tool.c:101
 msgid "Usage:\n"
 msgstr "Erabilera:\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:558
-#: gio/gsettings-tool.c:696
+#: ../gio/gapplication-tool.c:114 ../gio/gresource-tool.c:551
+#: ../gio/gsettings-tool.c:649
 msgid "Arguments:\n"
 msgstr "Argumentuak:\n"
 
-#: gio/gapplication-tool.c:133 gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:133
 msgid "[ARGS…]"
 msgstr "[ARGUMENTUAK…]"
 
-#: gio/gapplication-tool.c:134
+#: ../gio/gapplication-tool.c:134
 #, c-format
 msgid "Commands:\n"
 msgstr "Komandoak:\n"
 
 #. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:146
+#: ../gio/gapplication-tool.c:146
 #, c-format
 msgid ""
 "Use “%s help COMMAND” to get detailed help.\n"
@@ -178,7 +182,7 @@ msgstr ""
 "Erabili “%s help KOMANDOA“  laguntza xehea lortzeko.\n"
 "\n"
 
-#: gio/gapplication-tool.c:165
+#: ../gio/gapplication-tool.c:165
 #, c-format
 msgid ""
 "%s command requires an application id to directly follow\n"
@@ -187,13 +191,13 @@ msgstr ""
 "'%s' komandoak aplikazioaren IDa behar du zuzenean jarraitzeko\n"
 "\n"
 
-#: gio/gapplication-tool.c:171
+#: ../gio/gapplication-tool.c:171
 #, c-format
 msgid "invalid application id: “%s”\n"
 msgstr "aplikazioaren IDa baliogabea: “%s“\n"
 
 #. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:182
+#: ../gio/gapplication-tool.c:182
 #, c-format
 msgid ""
 "“%s” takes no arguments\n"
@@ -202,21 +206,22 @@ msgstr ""
 "“%s“ ez du argumenturik hartzen\n"
 "\n"
 
-#: gio/gapplication-tool.c:266
+#: ../gio/gapplication-tool.c:266
 #, c-format
 msgid "unable to connect to D-Bus: %s\n"
 msgstr "ezin da D-Bus-arekin konektatu: %s\n"
 
-#: gio/gapplication-tool.c:286
+#: ../gio/gapplication-tool.c:286
 #, c-format
 msgid "error sending %s message to application: %s\n"
 msgstr "errorea '%s' mezua aplikazioari bidaltzean: %s\n"
 
-#: gio/gapplication-tool.c:317
+#: ../gio/gapplication-tool.c:317
+#, c-format
 msgid "action name must be given after application id\n"
 msgstr "ekintzaren izena eman behar da aplikazioaren IDaren ondoren\n"
 
-#: gio/gapplication-tool.c:325
+#: ../gio/gapplication-tool.c:325
 #, c-format
 msgid ""
 "invalid action name: “%s”\n"
@@ -226,25 +231,27 @@ msgstr ""
 "ekintzaren izenak soilik alfazenbakizko, “-“ eta “.“ karaktereak\n"
 "eduki ditzake\n"
 
-#: gio/gapplication-tool.c:344
+#: ../gio/gapplication-tool.c:344
 #, c-format
 msgid "error parsing action parameter: %s\n"
 msgstr "errorea ekintzaren parametroa analizatzean: %s\n"
 
-#: gio/gapplication-tool.c:356
+#: ../gio/gapplication-tool.c:356
+#, c-format
 msgid "actions accept a maximum of one parameter\n"
 msgstr "ekintzak gehienez parametro bat onartzen du\n"
 
-#: gio/gapplication-tool.c:411
+#: ../gio/gapplication-tool.c:411
+#, c-format
 msgid "list-actions command takes only the application id"
 msgstr "'list-actions' komandoak soilik aplikazioaren IDa hartzen du"
 
-#: gio/gapplication-tool.c:421
+#: ../gio/gapplication-tool.c:421
 #, c-format
 msgid "unable to find desktop file for application %s\n"
 msgstr "ezin da '%s' aplikazioaren '.desktop' fitxtaegia aurkitu\n"
 
-#: gio/gapplication-tool.c:466
+#: ../gio/gapplication-tool.c:466
 #, c-format
 msgid ""
 "unrecognised command: %s\n"
@@ -253,117 +260,121 @@ msgstr ""
 "komando ezezaguna: %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:209
+#: ../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
 #, c-format
 msgid "Too large count value passed to %s"
 msgstr "Zenbaketaren balio handiegia honi pasatuta: %s"
 
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: ../gio/gbufferedinputstream.c:891 ../gio/gbufferedoutputstream.c:575
+#: ../gio/gdataoutputstream.c:562
 msgid "Seek not supported on base stream"
 msgstr "Ez da bilaketarik onartzen oinarrizko korrontean"
 
-#: gio/gbufferedinputstream.c:937
+#: ../gio/gbufferedinputstream.c:937
 msgid "Cannot truncate GBufferedInputStream"
 msgstr "Ezin da GBufferedInputStream trunkatu"
 
-#: gio/gbufferedinputstream.c:982 gio/ginputstream.c:1208 gio/giostream.c:300
-#: gio/goutputstream.c:1661
+#: ../gio/gbufferedinputstream.c:982 ../gio/ginputstream.c:1208
+#: ../gio/giostream.c:300 ../gio/goutputstream.c:1660
 msgid "Stream is already closed"
 msgstr "Korrontea jadanik itxita dago"
 
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: ../gio/gbufferedoutputstream.c:612 ../gio/gdataoutputstream.c:592
 msgid "Truncate not supported on base stream"
 msgstr "Trunkatzea ez da onartzen oinarrizko korrontean"
 
-#: gio/gcancellable.c:317 gio/gdbusconnection.c:1840 gio/gdbusprivate.c:1402
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: ../gio/gcancellable.c:317 ../gio/gdbusconnection.c:1849
+#: ../gio/gdbusprivate.c:1402 ../gio/gsimpleasyncresult.c:870
+#: ../gio/gsimpleasyncresult.c:896
 #, c-format
 msgid "Operation was cancelled"
 msgstr "Eragiketa bertan behera utzi da"
 
-#: gio/gcharsetconverter.c:260
+#: ../gio/gcharsetconverter.c:260
 msgid "Invalid object, not initialized"
 msgstr "Baliogabeko objektua, hasieratu gabe dago"
 
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: ../gio/gcharsetconverter.c:281 ../gio/gcharsetconverter.c:309
 msgid "Incomplete multibyte sequence in input"
 msgstr "Byteen sekuentzia baliogabea sarreran"
 
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: ../gio/gcharsetconverter.c:315 ../gio/gcharsetconverter.c:324
 msgid "Not enough space in destination"
 msgstr "Ez dago nahikoa lekurik helburuan"
 
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
-#: glib/gutf8.c:869 glib/gutf8.c:1322
+#: ../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:866 ../glib/gutf8.c:1319
 msgid "Invalid byte sequence in conversion input"
 msgstr "Byteen sekuentzia baliogabea bihurketa-sarreran"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1564 glib/giochannel.c:2455
+#: ../gio/gcharsetconverter.c:347 ../glib/gconvert.c:446 ../glib/gconvert.c:770
+#: ../glib/giochannel.c:1563 ../glib/giochannel.c:2454
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Errorea bihurtzean: %s"
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1104
+#: ../gio/gcharsetconverter.c:445 ../gio/gsocket.c:1096
 msgid "Cancellable initialization not supported"
 msgstr "Hasieratzea bertan behera uztea ez dago onartuta"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
+#: ../gio/gcharsetconverter.c:456 ../glib/gconvert.c:321
+#: ../glib/giochannel.c:1384
 #, 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:460 glib/gconvert.c:331
+#: ../gio/gcharsetconverter.c:460 ../glib/gconvert.c:325
 #, c-format
 msgid "Could not open converter from “%s” to “%s”"
 msgstr "Ezin izan da “%s“(e)tik %s(e)rako bihurtzailea ireki"
 
-#: gio/gcontenttype.c:358
+#: ../gio/gcontenttype.c:358
 #, c-format
 msgid "%s type"
 msgstr "%s mota"
 
-#: gio/gcontenttype-win32.c:177
+#: ../gio/gcontenttype-win32.c:177
 msgid "Unknown type"
 msgstr "Mota ezezaguna"
 
-#: gio/gcontenttype-win32.c:179
+#: ../gio/gcontenttype-win32.c:179
 #, c-format
 msgid "%s filetype"
 msgstr "%s fitxategi mota"
 
-#: gio/gcredentials.c:315 gio/gcredentials.c:574
+#: ../gio/gcredentials.c:312 ../gio/gcredentials.c:571
 msgid "GCredentials is not implemented on this OS"
 msgstr "GCredentials ez dago inplementatuta S.E. honetan"
 
-#: gio/gcredentials.c:470
+#: ../gio/gcredentials.c:467
 msgid "There is no GCredentials support for your platform"
 msgstr "Ez dago GCredentials euskarririk plataforma honetan"
 
-#: gio/gcredentials.c:516
+#: ../gio/gcredentials.c:513
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "GCredentials-ek ez dauka prozesuaren IDrik S.E. honetan"
 
-#: gio/gcredentials.c:568
+#: ../gio/gcredentials.c:565
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "Kredentzialak usurpatzea ezinezkoa da S.E. honetan"
 
-#: gio/gdatainputstream.c:304
+#: ../gio/gdatainputstream.c:304
 msgid "Unexpected early end-of-stream"
 msgstr "Ustekabeko korronte-amaiera azkarregia"
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:246 gio/gdbusaddress.c:327
+#: ../gio/gdbusaddress.c:155 ../gio/gdbusaddress.c:243
+#: ../gio/gdbusaddress.c:324
 #, c-format
 msgid "Unsupported key “%s” in address entry “%s”"
 msgstr "Onartu gabeko “%s“ gakoa helbidearen “%s“ sarreran"
 
-#: gio/gdbusaddress.c:185
+#: ../gio/gdbusaddress.c:182
 #, c-format
 msgid ""
 "Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
@@ -371,34 +382,29 @@ msgstr ""
 "“%s“ helbidea baliogabea da (gako hauetariko bat behar du: “path“ (bide-"
 "izena), “tmpdir“ (aldi baterako direktorioa) edo “abstract“ (abstraktua))"
 
-#: gio/gdbusaddress.c:198
+#: ../gio/gdbusaddress.c:195
 #, 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:261 gio/gdbusaddress.c:342
+#: ../gio/gdbusaddress.c:258 ../gio/gdbusaddress.c:339
 #, c-format
 msgid "Error in address “%s” — the port attribute is malformed"
 msgstr "Errorea “%s“ helbidean — atakaren atributua gaizki osatuta dago"
 
-#: gio/gdbusaddress.c:272 gio/gdbusaddress.c:353
+#: ../gio/gdbusaddress.c:269 ../gio/gdbusaddress.c:350
 #, c-format
 msgid "Error in address “%s” — the family attribute is malformed"
 msgstr "Errorea “%s“ helbidean — familiaren atributua gaizki osatuta dago"
 
-#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:673
-#, c-format
-msgid "Unknown or unsupported transport “%s” for address “%s”"
-msgstr "“%2$s“ helbidearen “%1$s“ garraioa ezezaguna edo onartu gabea"
-
-#: gio/gdbusaddress.c:467
+#: ../gio/gdbusaddress.c:460
 #, c-format
 msgid "Address element “%s” does not contain a colon (:)"
 msgstr "“%s“ helbidearen elementuak ez dauka bi punturik (:)"
 
-#: gio/gdbusaddress.c:488
+#: ../gio/gdbusaddress.c:481
 #, c-format
 msgid ""
 "Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -407,7 +413,7 @@ msgstr ""
 "%d. gakoa/balioa bikoteak, “%s“, “%s“ helbidearen elementuan, ez dauka "
 "berdina (=) ikurrik"
 
-#: gio/gdbusaddress.c:502
+#: ../gio/gdbusaddress.c:495
 #, c-format
 msgid ""
 "Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -416,7 +422,7 @@ msgstr ""
 "Errorea gakoa edo balioa iheseko modutik kentzean %d. gakoa/balioa bikotean, "
 "“%s“, “%s“ helbidearen elementuan"
 
-#: gio/gdbusaddress.c:580
+#: ../gio/gdbusaddress.c:573
 #, c-format
 msgid ""
 "Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -425,93 +431,98 @@ msgstr ""
 "Errorea “%s“ helbidean - unix-eko garraioak “path“ edo “abstract“ "
 "gakoetariko bat behar du hain zuzen."
 
-#: gio/gdbusaddress.c:616
+#: ../gio/gdbusaddress.c:609
 #, c-format
 msgid "Error in address “%s” — the host attribute is missing or malformed"
 msgstr ""
 "Errorea “%s“ helbidean — ostalariaren atributua falta da edo gaizki osatuta "
 "dago"
 
-#: gio/gdbusaddress.c:630
+#: ../gio/gdbusaddress.c:623
 #, c-format
 msgid "Error in address “%s” — the port attribute is missing or malformed"
 msgstr ""
 "Errorea “%s“ helbidean — atakaren atributua falta da edo gaizki osatuta dago"
 
-#: gio/gdbusaddress.c:644
+#: ../gio/gdbusaddress.c:637
 #, c-format
 msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
 msgstr ""
 "Errorea “%s“ helbidean — izendapenaren fitxategiaren atributua falta da edo "
 "gaizki osatuta dago"
 
-#: gio/gdbusaddress.c:665
+#: ../gio/gdbusaddress.c:658
 msgid "Error auto-launching: "
 msgstr "Errorea automatikoki abiaraztean: "
 
-#: gio/gdbusaddress.c:718
+#: ../gio/gdbusaddress.c:666
+#, c-format
+msgid "Unknown or unsupported transport “%s” for address “%s”"
+msgstr "“%2$s“ helbidearen “%1$s“ garraioa ezezaguna edo onartu gabea"
+
+#: ../gio/gdbusaddress.c:704
 #, c-format
 msgid "Error opening nonce file “%s”: %s"
 msgstr "Errorea “%s“ izendapeneko fitxategia irekitzean: %s"
 
-#: gio/gdbusaddress.c:737
+#: ../gio/gdbusaddress.c:723
 #, c-format
 msgid "Error reading from nonce file “%s”: %s"
 msgstr "Errorea '%s“ izendapeneko fitxategitik irakurtzean: %s"
 
-#: gio/gdbusaddress.c:746
+#: ../gio/gdbusaddress.c:732
 #, c-format
 msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
 msgstr ""
 "Errorea “%s“ izendapeneko fitxategitik irakurtzean: 16 byte espero ziren, "
 "baina %d lortu dira"
 
-#: gio/gdbusaddress.c:764
+#: ../gio/gdbusaddress.c:750
 #, c-format
 msgid "Error writing contents of nonce file “%s” to stream:"
 msgstr "Errorea “%s“ izendapeneko fitxategiko edukia korrontean idaztean:"
 
-#: gio/gdbusaddress.c:973
+#: ../gio/gdbusaddress.c:959
 msgid "The given address is empty"
 msgstr "Emandako helbidea hutsik dago"
 
-#: gio/gdbusaddress.c:1086
+#: ../gio/gdbusaddress.c:1072
 #, c-format
 msgid "Cannot spawn a message bus when setuid"
 msgstr "Ezin da mezuaren deia abiarazi 'setuid' duenean"
 
-#: gio/gdbusaddress.c:1093
+#: ../gio/gdbusaddress.c:1079
 msgid "Cannot spawn a message bus without a machine-id: "
 msgstr "Ezin da mezuaren deia abiarazi makinaren IDrik gabe: "
 
-#: gio/gdbusaddress.c:1100
+#: ../gio/gdbusaddress.c:1086
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
 msgstr "Ezin da D-Bus automatikoki abiarazi X11 $DISPLAY gabe"
 
-#: gio/gdbusaddress.c:1142
+#: ../gio/gdbusaddress.c:1128
 #, c-format
 msgid "Error spawning command line “%s”: "
 msgstr "Errorea “%s“ komando-lerroa abiaraztean: "
 
-#: gio/gdbusaddress.c:1359
+#: ../gio/gdbusaddress.c:1345
 #, c-format
 msgid "(Type any character to close this window)\n"
 msgstr "(Sakatu edozer tekla leihoa ixteko)\n"
 
-#: gio/gdbusaddress.c:1513
+#: ../gio/gdbusaddress.c:1499
 #, c-format
 msgid "Session dbus not running, and autolaunch failed"
 msgstr ""
 "Saioaren dbus ez da exekutatzen ari, eta abiarazte automatikoak huts egin du"
 
-#: gio/gdbusaddress.c:1524
+#: ../gio/gdbusaddress.c:1510
 #, c-format
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 "Ezin da saioaren bus-eko helbidea zehaztu (ez dago S.E. honetan garatuta)"
 
-#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7142
+#: ../gio/gdbusaddress.c:1648
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -520,7 +531,7 @@ msgstr ""
 "Ezin da bus-aren helbidea zehaztua inguruneko DBUS_STARTER_BUS_TYPE "
 "aldagaitik. “%s“ balio ezezaguna"
 
-#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7151
+#: ../gio/gdbusaddress.c:1657 ../gio/gdbusconnection.c:7155
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -528,37 +539,37 @@ msgstr ""
 "Ezin da bus-aren helbidea zehaztua, inguruneko DBUS_STARTER_BUS_TYPE "
 "aldagaia ezarri gabe dagoelako"
 
-#: gio/gdbusaddress.c:1681
+#: ../gio/gdbusaddress.c:1667
 #, c-format
 msgid "Unknown bus type %d"
 msgstr "%d bus mota ezezaguna"
 
-#: gio/gdbusauth.c:293
+#: ../gio/gdbusauth.c:293
 msgid "Unexpected lack of content trying to read a line"
 msgstr "Edukiaren zati bat falta da lerro bat irakurtzean"
 
-#: gio/gdbusauth.c:337
+#: ../gio/gdbusauth.c:337
 msgid "Unexpected lack of content trying to (safely) read a line"
 msgstr "Edukiaren zati bat falta da lerro bat modu seguruan irakurtzean"
 
-#: gio/gdbusauth.c:481
+#: ../gio/gdbusauth.c:508
 #, c-format
 msgid ""
 "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
 msgstr ""
 "Autentifikazioko metodo guztiak agortuta (saiatuta: %s) (erabilgarri: %s)"
 
-#: gio/gdbusauth.c:1144
+#: ../gio/gdbusauth.c:1174
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr ""
 "Bertan behera utzita GDBusAuthObserver::authorize-authenticated-peer erabiliz"
 
-#: gio/gdbusauthmechanismsha1.c:262
+#: ../gio/gdbusauthmechanismsha1.c:262
 #, c-format
 msgid "Error when getting information for directory “%s”: %s"
 msgstr "Errorea “%s“ direktorioaren informazioa eskuratzean: %s"
 
-#: gio/gdbusauthmechanismsha1.c:274
+#: ../gio/gdbusauthmechanismsha1.c:274
 #, c-format
 msgid ""
 "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -566,24 +577,24 @@ msgstr ""
 "“%s“ direktorioko baimenak gaizki osatuta. 0700 modua espero zen, baina 0%o "
 "lortuta"
 
-#: gio/gdbusauthmechanismsha1.c:299
+#: ../gio/gdbusauthmechanismsha1.c:296
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "Errorea “%s“ direktorioa sortzean: %s"
 
-#: gio/gdbusauthmechanismsha1.c:346
+#: ../gio/gdbusauthmechanismsha1.c:379
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr "Errorea “%s“ gako sorta irakurtzeko irekitzean: "
 
-#: gio/gdbusauthmechanismsha1.c:369 gio/gdbusauthmechanismsha1.c:687
+#: ../gio/gdbusauthmechanismsha1.c:403 ../gio/gdbusauthmechanismsha1.c:721
 #, 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:383 gio/gdbusauthmechanismsha1.c:701
+#: ../gio/gdbusauthmechanismsha1.c:417 ../gio/gdbusauthmechanismsha1.c:735
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -591,7 +602,7 @@ msgstr ""
 "“%2$s“(e)ngo gako sortako %1$d. lerroko aurreneko tokena (“%3$s“ "
 "edukiarekin) gaizki osatuta dago"
 
-#: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
+#: ../gio/gdbusauthmechanismsha1.c:432 ../gio/gdbusauthmechanismsha1.c:749
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -599,169 +610,166 @@ msgstr ""
 "“%2$s“(e)ngo gako sortako %1$d. lerroko bigarren tokena (“%3$s“ edukiarekin) "
 "gaizki osatuta dago"
 
-#: gio/gdbusauthmechanismsha1.c:421
+#: ../gio/gdbusauthmechanismsha1.c:456
 #, 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:503
+#: ../gio/gdbusauthmechanismsha1.c:536
 #, c-format
 msgid "Error deleting stale lock file “%s”: %s"
 msgstr "Errorea blokeoaren “%s“ fitxategi zaharkitua ezabatzean: %s"
 
-#: gio/gdbusauthmechanismsha1.c:535
+#: ../gio/gdbusauthmechanismsha1.c:569
 #, c-format
 msgid "Error creating lock file “%s”: %s"
 msgstr "Errorea blokeoko “%s“ fitxategia sortzean: %s"
 
-#: gio/gdbusauthmechanismsha1.c:566
+#: ../gio/gdbusauthmechanismsha1.c:600
 #, c-format
 msgid "Error closing (unlinked) lock file “%s”: %s"
 msgstr "Errorea blokeoko (estekatu gabeko) “%s“ fitxategia ixtean: %s"
 
-#: gio/gdbusauthmechanismsha1.c:577
+#: ../gio/gdbusauthmechanismsha1.c:611
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr "Errorea blokeoko “%s“ fitxategia desestekatzean: %s"
 
-#: gio/gdbusauthmechanismsha1.c:654
+#: ../gio/gdbusauthmechanismsha1.c:688
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr "Errorea “%s“ gako sorta idazteko irekitzean: "
 
-#: gio/gdbusauthmechanismsha1.c:850
+#: ../gio/gdbusauthmechanismsha1.c:885
 #, 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:603 gio/gdbusconnection.c:2369
+#: ../gio/gdbusconnection.c:612 ../gio/gdbusconnection.c:2378
 msgid "The connection is closed"
 msgstr "Konexioa itxi egin da"
 
-#: gio/gdbusconnection.c:1870
+#: ../gio/gdbusconnection.c:1879
 msgid "Timeout was reached"
 msgstr "Denbora-mugara iritsi da"
 
-#: gio/gdbusconnection.c:2491
+#: ../gio/gdbusconnection.c:2500
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 "Onartu gabeko banderak aurkitu dira bezeroaren aldeko konexioa eraikitzean"
 
-#: gio/gdbusconnection.c:4115 gio/gdbusconnection.c:4462
+#: ../gio/gdbusconnection.c:4124 ../gio/gdbusconnection.c:4471
 #, 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"
+"No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
 msgstr ""
-"Ez dago “org.freedesktop.DBus.Properties“ bezalako interfazerik “%s“ bide-"
+"Ez dago 'org.freedesktop.DBus.Properties' bezalako interfazerik '%s' bide-"
 "izeneko objektuan"
 
-#: gio/gdbusconnection.c:4257
+#: ../gio/gdbusconnection.c:4266
 #, c-format
-#| msgid "No such property '%s'"
-msgid "No such property “%s”"
-msgstr "Ez dago “%s“ bezalako propietaterik"
+msgid "No such property '%s'"
+msgstr "Ez dago '%s' bezalako propietaterik"
 
-#: gio/gdbusconnection.c:4269
+#: ../gio/gdbusconnection.c:4278
 #, c-format
-#| msgid "Property '%s' is not readable"
-msgid "Property “%s” is not readable"
-msgstr "“%s“ propietatea ez da irakurgarria"
+msgid "Property '%s' is not readable"
+msgstr "%s propietatea ez da irakurgarria"
 
-#: gio/gdbusconnection.c:4280
+#: ../gio/gdbusconnection.c:4289
 #, c-format
-#| msgid "Property '%s' is not writable"
-msgid "Property “%s” is not writable"
-msgstr "“%s“ propietatea ez da idazgarria"
+msgid "Property '%s' is not writable"
+msgstr "%s propietatea ez da idazgarria"
 
-#: gio/gdbusconnection.c:4300
+#: ../gio/gdbusconnection.c:4309
 #, c-format
-#| msgid "Error setting property '%s': Expected type '%s' but got '%s'"
-msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
+msgid "Error setting property '%s': Expected type '%s' but got '%s'"
 msgstr ""
-"Errorea “%s“ propietatea ezartzean: “%s“ mota espero zen, baina “%s“ lortu da"
+"Errorea '%s' propietatea ezartzean: '%s' mota espero zen, baina '%s' lortu da"
 
-#: gio/gdbusconnection.c:4405 gio/gdbusconnection.c:4613
-#: gio/gdbusconnection.c:6582
+#: ../gio/gdbusconnection.c:4414 ../gio/gdbusconnection.c:4622
+#: ../gio/gdbusconnection.c:6586
 #, c-format
-#| msgid "No such interface '%s'"
-msgid "No such interface “%s”"
-msgstr "Ez dago “%s“ bezalako interfazerik"
+msgid "No such interface '%s'"
+msgstr "Ez dago '%s' bezalako interfazerik"
 
-#: gio/gdbusconnection.c:4831 gio/gdbusconnection.c:7091
+#: ../gio/gdbusconnection.c:4840 ../gio/gdbusconnection.c:7095
 #, c-format
-#| msgid "No such interface '%s' on object at path %s"
-msgid "No such interface “%s” on object at path %s"
-msgstr "Ez dago “%s“ bezalako interfazerik “%s“ bide-izeneko objektuan"
+msgid "No such interface '%s' on object at path %s"
+msgstr "Ez dago '%s' bezalako interfazerik '%s' bide-izeneko objektuan"
 
-#: gio/gdbusconnection.c:4929
+#: ../gio/gdbusconnection.c:4938
 #, c-format
-#| msgid "No such key “%s”\n"
-msgid "No such method “%s”"
-msgstr "Ez dago “%s“ bezalako metodorik"
+msgid "No such method '%s'"
+msgstr "Ez dago '%s' bezalako metodorik"
 
-#: gio/gdbusconnection.c:4960
+#: ../gio/gdbusconnection.c:4969
 #, 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“ mezu mota ez dator bat espero zen “%s“ motarekin"
+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:5158
+#: ../gio/gdbusconnection.c:5167
 #, 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:5384
+#: ../gio/gdbusconnection.c:5393
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Ezin da %s.%s propietatea eskuratu"
 
-#: gio/gdbusconnection.c:5440
+#: ../gio/gdbusconnection.c:5449
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Ezin da %s.%s propietatea ezarri"
 
-#: gio/gdbusconnection.c:5618
+#: ../gio/gdbusconnection.c:5625
 #, c-format
-#| msgid "Method '%s' returned type '%s', but expected '%s'"
-msgid "Method “%s” returned type “%s”, but expected “%s”"
-msgstr "“%s“ metodoak “%s“ mota itzuli du, baina “%s“ espero zen"
+msgid "Method '%s' returned type '%s', but expected '%s'"
+msgstr "'%s' metodoak '%s' mota itzuli du, baina '%s' espero zen"
 
-#: gio/gdbusconnection.c:6693
+#: ../gio/gdbusconnection.c:6697
 #, 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"
+msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
 msgstr ""
-"“%2$s“ interfazeko “%1$s“ metodoa “%3$s“ sinadurarekin ez da existitzen"
+"'%2$s' interfazeko '%1$s' metodoa '%3$s' sinadurarekin ez da existitzen"
 
-#: gio/gdbusconnection.c:6814
+#: ../gio/gdbusconnection.c:6818
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Azpizuhaitza jadanik %s(e)ra esportatuta"
 
-#: gio/gdbusmessage.c:1248
+#: ../gio/gdbusconnection.c:7146
+#, 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/gdbusmessage.c:1246
 msgid "type is INVALID"
 msgstr "mota baliogabea da"
 
-#: gio/gdbusmessage.c:1259
+#: ../gio/gdbusmessage.c:1257
 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:1270
+#: ../gio/gdbusmessage.c:1268
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "METHOD_RETURN-en mezua: goiburuko REPLY_SERIAL eremua falta da"
 
-#: gio/gdbusmessage.c:1282
+#: ../gio/gdbusmessage.c:1280
 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:1295
+#: ../gio/gdbusmessage.c:1293
 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:1303
+#: ../gio/gdbusmessage.c:1301
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -769,7 +777,7 @@ msgstr ""
 "SIGNAL-en mezua: goiburuko PATH eremua '/org/freedesktop/DBus/Local' balio "
 "erreserbatua erabiltzen ari da"
 
-#: gio/gdbusmessage.c:1311
+#: ../gio/gdbusmessage.c:1309
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -777,20 +785,20 @@ msgstr ""
 "SIGNAL-en mezua: goiburuko INTERFACE eremua '/org/freedesktop/DBus/Local' "
 "balio erreserbatua erabiltzen ari da"
 
-#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
+#: ../gio/gdbusmessage.c:1357 ../gio/gdbusmessage.c:1417
 #, 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:1373
+#: ../gio/gdbusmessage.c:1371
 #, 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:1392
+#: ../gio/gdbusmessage.c:1390
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -800,18 +808,18 @@ msgstr ""
 "byteen %d desplazamenduan (katearen luzera: %d). Ordurarteko baliozko UTF-8 "
 "katea honakoa zen: “%s“"
 
-#: gio/gdbusmessage.c:1595
+#: ../gio/gdbusmessage.c:1589
 #, 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:1617
+#: ../gio/gdbusmessage.c:1611
 #, 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:1664
+#: ../gio/gdbusmessage.c:1658
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -824,7 +832,7 @@ msgstr[1] ""
 "%u byte luzerako matrizea aurkituta. Gehienezko luzera 2<<26 byte da (64 "
 "MiB)."
 
-#: gio/gdbusmessage.c:1684
+#: ../gio/gdbusmessage.c:1678
 #, c-format
 msgid ""
 "Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -833,13 +841,13 @@ 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:1851
+#: ../gio/gdbusmessage.c:1845
 #, 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:1875
+#: ../gio/gdbusmessage.c:1869
 #, c-format
 msgid ""
 "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -847,7 +855,7 @@ msgstr ""
 "Errorea GVariant deserializatzean “%s“ kate motarekin D-Bus konexioko "
 "formatutik"
 
-#: gio/gdbusmessage.c:2057
+#: ../gio/gdbusmessage.c:2053
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -856,26 +864,26 @@ msgstr ""
 "Baliogabeko endian balioa. 0x6c (“l“) edo 0x42 (“B“) espero zen, baina 0x"
 "%02x balioa aurkitu da."
 
-#: gio/gdbusmessage.c:2070
+#: ../gio/gdbusmessage.c:2066
 #, 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:2126
+#: ../gio/gdbusmessage.c:2122
 #, 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:2140
+#: ../gio/gdbusmessage.c:2136
 #, 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:2170
+#: ../gio/gdbusmessage.c:2166
 #, 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"
@@ -884,11 +892,11 @@ msgstr[0] ""
 msgstr[1] ""
 "Ez dago sinaduraren goibururik mezuan, baina mezuaren gorputzak %u byte ditu"
 
-#: gio/gdbusmessage.c:2180
+#: ../gio/gdbusmessage.c:2176
 msgid "Cannot deserialize message: "
 msgstr "Ezin da mezua deserializatu: "
 
-#: gio/gdbusmessage.c:2521
+#: ../gio/gdbusmessage.c:2517
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -896,25 +904,26 @@ msgstr ""
 "Errorea GVariant serializatzean “%s“ kate motarekin D-Bus konexioaren "
 "formatura"
 
-#: gio/gdbusmessage.c:2658
+#: ../gio/gdbusmessage.c:2654
 #, c-format
 msgid ""
-"Number of file descriptors in message (%d) differs from header field (%d)"
+"Message has %d file descriptors but the header field indicates %d file "
+"descriptors"
 msgstr ""
-"Mezuko fitxategi-deskriptore kopurua (%d) ez dator bat goiburuko eremuarekin"
-" (%d)"
+"Mezuak fitxategi-deskriptore %d du baina goiburuko eremuak %d fitxategi-"
+"deskriptore adierazten ditu"
 
-#: gio/gdbusmessage.c:2666
+#: ../gio/gdbusmessage.c:2662
 msgid "Cannot serialize message: "
 msgstr "Ezin da mezua serializatu: "
 
-#: gio/gdbusmessage.c:2710
+#: ../gio/gdbusmessage.c:2706
 #, 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:2720
+#: ../gio/gdbusmessage.c:2716
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -923,41 +932,41 @@ msgstr ""
 "Mezuaren gorputzak “%s“ sinadura mota du, baina goiburuaren eremuko sinadura "
 "“%s“ da"
 
-#: gio/gdbusmessage.c:2736
+#: ../gio/gdbusmessage.c:2732
 #, 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:3289
+#: ../gio/gdbusmessage.c:3285
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Errorearen itzulera “'%s“ motako gorputzarekin "
 
-#: gio/gdbusmessage.c:3297
+#: ../gio/gdbusmessage.c:3293
 msgid "Error return with empty body"
 msgstr "Errorearen itzulera gorputz hutsarekin"
 
-#: gio/gdbusprivate.c:2066
+#: ../gio/gdbusprivate.c:2066
 #, c-format
 msgid "Unable to get Hardware profile: %s"
 msgstr "Ezin da hardwarearen profila eskuratu: %s"
 
-#: gio/gdbusprivate.c:2111
+#: ../gio/gdbusprivate.c:2111
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Ezin da /var/lib/dbus/machine-id edo /etc/machine-id kargatu: "
 
-#: gio/gdbusproxy.c:1612
+#: ../gio/gdbusproxy.c:1611
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Errorea %s(r)en StartServiceByName deia egitean: "
 
-#: gio/gdbusproxy.c:1635
+#: ../gio/gdbusproxy.c:1634
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Ustekabeko %d erantzuna StartServiceByName(\"%s\") metodotik"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: ../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"
@@ -965,31 +974,40 @@ msgstr ""
 "Ezin da metodoari deitu: proxy-ak jaberik gabeko izen ezaguna du eta "
 "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START banderarekin eraiki zen"
 
-#: gio/gdbusserver.c:708
+#: ../gio/gdbusserver.c:708
 msgid "Abstract name space not supported"
 msgstr "Izen abstraktuen lekua ez dago onartuta"
 
-#: gio/gdbusserver.c:795
+#: ../gio/gdbusserver.c:795
 msgid "Cannot specify nonce file when creating a server"
 msgstr "Ezin da izendapeneko fitxategia zehaztu zerbitzari bat sortzean"
 
-#: gio/gdbusserver.c:876
+#: ../gio/gdbusserver.c:876
 #, c-format
 msgid "Error writing nonce file at “%s”: %s"
 msgstr "Errorea “%s“ izendapeneko fitxategian idaztean: %s"
 
-#: gio/gdbusserver.c:1047
+#: ../gio/gdbusserver.c:1047
 #, 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:1087
+#: ../gio/gdbusserver.c:1087
 #, c-format
 msgid "Cannot listen on unsupported transport “%s”"
 msgstr "Ezin da onartu gabeko “%s“ garraioa entzun"
 
-#: gio/gdbus-tool.c:95
+#: ../gio/gdbus-tool.c:95
 #, 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"
@@ -1011,61 +1029,61 @@ msgstr ""
 "\n"
 "Erabili “%s KOMANDOA --help“ komando bakoitzari dagokion laguntza lortzeko.\n"
 
-#: gio/gdbus-tool.c:185 gio/gdbus-tool.c:252 gio/gdbus-tool.c:324
-#: gio/gdbus-tool.c:348 gio/gdbus-tool.c:834 gio/gdbus-tool.c:1171
-#: gio/gdbus-tool.c:1613
+#: ../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
 #, c-format
 msgid "Error: %s\n"
 msgstr "Errorea: %s\n"
 
-#: gio/gdbus-tool.c:196 gio/gdbus-tool.c:265 gio/gdbus-tool.c:1629
+#: ../gio/gdbus-tool.c:176 ../gio/gdbus-tool.c:240 ../gio/gdbus-tool.c:1526
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "Errorea introspekzioko XMLa analizatzean: %s\n"
 
-#: gio/gdbus-tool.c:234
+#: ../gio/gdbus-tool.c:209
 #, c-format
 msgid "Error: %s is not a valid name\n"
 msgstr "Errorea: '%s' ez da baliozko izena\n"
 
-#: gio/gdbus-tool.c:382
+#: ../gio/gdbus-tool.c:357
 msgid "Connect to the system bus"
 msgstr "Konektatu sistemako bus-arekin"
 
-#: gio/gdbus-tool.c:383
+#: ../gio/gdbus-tool.c:358
 msgid "Connect to the session bus"
 msgstr "Konektatu saioko bus-arekin"
 
-#: gio/gdbus-tool.c:384
+#: ../gio/gdbus-tool.c:359
 msgid "Connect to given D-Bus address"
 msgstr "Konektatu emandako D-Bus helbidera"
 
-#: gio/gdbus-tool.c:394
+#: ../gio/gdbus-tool.c:369
 msgid "Connection Endpoint Options:"
 msgstr "Konexioaren amaierako puntuaren aukerak:"
 
-#: gio/gdbus-tool.c:395
+#: ../gio/gdbus-tool.c:370
 msgid "Options specifying the connection endpoint"
 msgstr "Aukerak konexioaren amaierako puntua zehaztuz"
 
-#: gio/gdbus-tool.c:417
+#: ../gio/gdbus-tool.c:392
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "Ez da konexioaren amaierako punturik zehaztu"
 
-#: gio/gdbus-tool.c:427
+#: ../gio/gdbus-tool.c:402
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Konexioaren hainbat amaierako puntu zehaztu dira"
 
-#: gio/gdbus-tool.c:497
+#: ../gio/gdbus-tool.c:472
 #, 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:506
+#: ../gio/gdbus-tool.c:481
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
@@ -1074,296 +1092,309 @@ msgstr ""
 "Abisua: introspekzioko datuen arabera, “%s“ metodoa ez da existitzen “%s“ "
 "interfazean\n"
 
-#: gio/gdbus-tool.c:568
+#: ../gio/gdbus-tool.c:543
 msgid "Optional destination for signal (unique name)"
 msgstr "Seinalearen aukerazko helburua (izen esklusiboa)"
 
-#: gio/gdbus-tool.c:569
+#: ../gio/gdbus-tool.c:544
 msgid "Object path to emit signal on"
 msgstr "Objektuaren bide-izena bere gainera seinalea igortzeko"
 
-#: gio/gdbus-tool.c:570
+#: ../gio/gdbus-tool.c:545
 msgid "Signal and interface name"
 msgstr "Seinale eta interfazearen izena"
 
-#: gio/gdbus-tool.c:603
+#: ../gio/gdbus-tool.c:579
 msgid "Emit a signal."
 msgstr "Igorri seinale bat."
 
-#: gio/gdbus-tool.c:658 gio/gdbus-tool.c:965 gio/gdbus-tool.c:1715
-#: gio/gdbus-tool.c:1944 gio/gdbus-tool.c:2164
+#: ../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
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Errorea konektatzean: %s\n"
 
-#: gio/gdbus-tool.c:678
+#: ../gio/gdbus-tool.c:625
 #, 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:697 gio/gdbus-tool.c:1008 gio/gdbus-tool.c:1758
-msgid "Error: Object path is not specified\n"
-msgstr "Errorea: objektuaren bide-izena ez dago zehaztuta\n"
+msgid "Error: object path not specified.\n"
+msgstr "Errorea: objektuaren bide-izena ez da zehaztu.\n"
 
-#: gio/gdbus-tool.c:720 gio/gdbus-tool.c:1028 gio/gdbus-tool.c:1778
-#: gio/gdbus-tool.c:2015
+#: ../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 "Errorea: '%s' ez da objektuaren baliozko bide-izena\n"
 
-#: gio/gdbus-tool.c:740
-#| msgid "Error: Method name is not specified\n"
-msgid "Error: Signal name is not specified\n"
-msgstr "Errorea: seinalearen izena ez dago zehaztuta\n"
+#: ../gio/gdbus-tool.c:636
+#, c-format
+msgid "Error: signal not specified.\n"
+msgstr "Errorea: seinalea ez da zehaztu.\n"
 
-#: gio/gdbus-tool.c:754
+#: ../gio/gdbus-tool.c:643
 #, c-format
-#| msgid "Error: Method name “%s” is invalid\n"
-msgid "Error: Signal name “%s” is invalid\n"
-msgstr "Errorea: “%s“ seinalearen izena baliogabea da\n"
+msgid "Error: signal must be the fully-qualified name.\n"
+msgstr "Errorea: seinaleak erabat kualifikatutako izena eduki behar du.\n"
 
-#: gio/gdbus-tool.c:766
+#: ../gio/gdbus-tool.c:651
 #, 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:772
+#: ../gio/gdbus-tool.c:657
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "Errorea: '%s' ez da kidearen baliozko izena\n"
 
+#: ../gio/gdbus-tool.c:663
+#, c-format
+msgid "Error: %s is not a valid unique bus name.\n"
+msgstr "Errorea: '%s' ez da bus-aren baliozko izen esklusiboa\n"
+
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:809 gio/gdbus-tool.c:1140
+#: ../gio/gdbus-tool.c:700 ../gio/gdbus-tool.c:1037
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Errorea %d parametroa analizatzean: %s\n"
 
-#: gio/gdbus-tool.c:841
+#: ../gio/gdbus-tool.c:732
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "Errorea konexioa garbitzean: %s\n"
 
-#: gio/gdbus-tool.c:868
+#: ../gio/gdbus-tool.c:759
 msgid "Destination name to invoke method on"
 msgstr "Helburuaren izena metodoari deitzeko"
 
-#: gio/gdbus-tool.c:869
+#: ../gio/gdbus-tool.c:760
 msgid "Object path to invoke method on"
 msgstr "Objektuaren bide-izena metodoari deitzeko"
 
-#: gio/gdbus-tool.c:870
+#: ../gio/gdbus-tool.c:761
 msgid "Method and interface name"
 msgstr "Metodo eta interfazearen izena"
 
-#: gio/gdbus-tool.c:871
+#: ../gio/gdbus-tool.c:762
 msgid "Timeout in seconds"
 msgstr "Denbora-muga (segundotan)"
 
-#: gio/gdbus-tool.c:910
+#: ../gio/gdbus-tool.c:803
 msgid "Invoke a method on a remote object."
 msgstr "Deitu metodo bati urruneko objektu batean."
 
-#: gio/gdbus-tool.c:982 gio/gdbus-tool.c:1732 gio/gdbus-tool.c:1969
+#: ../gio/gdbus-tool.c:878 ../gio/gdbus-tool.c:1635 ../gio/gdbus-tool.c:1870
+#, c-format
 msgid "Error: Destination is not specified\n"
 msgstr "Errorea: helburua ez dago zehaztuta\n"
 
-#: gio/gdbus-tool.c:993 gio/gdbus-tool.c:1749 gio/gdbus-tool.c:1980
+#: ../gio/gdbus-tool.c:890 ../gio/gdbus-tool.c:1652 ../gio/gdbus-tool.c:1882
 #, 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:1043
+#: ../gio/gdbus-tool.c:905 ../gio/gdbus-tool.c:1661
+#, c-format
+msgid "Error: Object path is not specified\n"
+msgstr "Errorea: objektuaren bide-izena ez dago zehaztuta\n"
+
+#: ../gio/gdbus-tool.c:940
+#, c-format
 msgid "Error: Method name is not specified\n"
 msgstr "Errorea: metodoaren izena ez dago zehaztuta\n"
 
-#: gio/gdbus-tool.c:1054
+#: ../gio/gdbus-tool.c:951
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "Errorea: “%s“ metodoaren izena baliogabea da\n"
 
-#: gio/gdbus-tool.c:1132
+#: ../gio/gdbus-tool.c:1029
 #, 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:1576
+#: ../gio/gdbus-tool.c:1473
 msgid "Destination name to introspect"
 msgstr "Helburuko izena introspekzioa egiteko"
 
-#: gio/gdbus-tool.c:1577
+#: ../gio/gdbus-tool.c:1474
 msgid "Object path to introspect"
 msgstr "Objektuaren bide-izena introspekzioa egiteko"
 
-#: gio/gdbus-tool.c:1578
+#: ../gio/gdbus-tool.c:1475
 msgid "Print XML"
 msgstr "Inprimatu XML"
 
-#: gio/gdbus-tool.c:1579
+#: ../gio/gdbus-tool.c:1476
 msgid "Introspect children"
 msgstr "Aztertu umeen barnean"
 
-#: gio/gdbus-tool.c:1580
+#: ../gio/gdbus-tool.c:1477
 msgid "Only print properties"
 msgstr "Soilik inprimatzeko propietateak"
 
-#: gio/gdbus-tool.c:1667
+#: ../gio/gdbus-tool.c:1568
 msgid "Introspect a remote object."
 msgstr "Urruneko objektu baten introspekzioa egin."
 
-#: gio/gdbus-tool.c:1870
+#: ../gio/gdbus-tool.c:1773
 msgid "Destination name to monitor"
 msgstr "Helburuko izena monitorizatzeko"
 
-#: gio/gdbus-tool.c:1871
+#: ../gio/gdbus-tool.c:1774
 msgid "Object path to monitor"
 msgstr "Objektuaren bide-izena monitorizatzeko"
 
-#: gio/gdbus-tool.c:1896
+#: ../gio/gdbus-tool.c:1803
 msgid "Monitor a remote object."
 msgstr "Monitorizatu urruneko objektu bat."
 
-#: gio/gdbus-tool.c:1954
-msgid "Error: can’t monitor a non-message-bus connection\n"
-msgstr "Errorea: ezin da non-message-bus konexioa monitorizatu\n"
-
-#: gio/gdbus-tool.c:2078
+#: ../gio/gdbus-tool.c:1980
 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:2081
+#: ../gio/gdbus-tool.c:1983
 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); "
-"denbora-mugarik ez (lehenetsia)"
+"Denbora-muga errore batekin irten aurretik zain egoteko (segundotan); "
+"denbora-mugarik ez (lehenetsia)"
 
-#: gio/gdbus-tool.c:2129
+#: ../gio/gdbus-tool.c:2031
+#| msgid "[OPTION…]"
 msgid "[OPTION…] BUS-NAME"
 msgstr "[AUKERA…] BUS-IZENA"
 
-#: gio/gdbus-tool.c:2130
+#: ../gio/gdbus-tool.c:2033
 msgid "Wait for a bus name to appear."
 msgstr "Bus-izen bat agertzeko zain egon."
 
-#: gio/gdbus-tool.c:2206
+#: ../gio/gdbus-tool.c:2109
+#, c-format
+#| msgid "Error: object path not specified.\n"
 msgid "Error: A service to activate for must be specified.\n"
 msgstr "Errorea: zerbitzua zehaztu behar da aktibatzeko.\n"
 
-#: gio/gdbus-tool.c:2211
+#: ../gio/gdbus-tool.c:2114
+#, c-format
+#| msgid "Error: object path not specified.\n"
 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:2216
+#: ../gio/gdbus-tool.c:2119
+#, c-format
+#| msgid "Too many arguments"
 msgid "Error: Too many arguments.\n"
 msgstr "Errorea: argumentu gehiegi.\n"
 
-#: gio/gdbus-tool.c:2224 gio/gdbus-tool.c:2231
+#: ../gio/gdbus-tool.c:2127 ../gio/gdbus-tool.c:2134
 #, c-format
+#| msgid "Error: %s is not a valid bus name\n"
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Errorea: '%s' ez da busaren izen ezagun bat\n"
 
-#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4633
+#: ../gio/gdesktopappinfo.c:2001 ../gio/gdesktopappinfo.c:4533
 msgid "Unnamed"
 msgstr "Izengabea"
 
-#: gio/gdesktopappinfo.c:2433
+#: ../gio/gdesktopappinfo.c:2411
 msgid "Desktop file didn’t specify Exec field"
 msgstr "Mahaigaineko fitxategiak ez du Exec eremua zehaztu"
 
-#: gio/gdesktopappinfo.c:2692
+#: ../gio/gdesktopappinfo.c:2696
 msgid "Unable to find terminal required for application"
 msgstr "Ezin izan da aplikazioak eskatzen duen terminala aurkitu"
 
-#: gio/gdesktopappinfo.c:3202
+#: ../gio/gdesktopappinfo.c:3129
 #, 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:3206
+#: ../gio/gdesktopappinfo.c:3133
 #, 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:3446 gio/gdesktopappinfo.c:3470
+#: ../gio/gdesktopappinfo.c:3373 ../gio/gdesktopappinfo.c:3397
 msgid "Application information lacks an identifier"
 msgstr "Aplikazioaren informazioari identifikatzaile bat falta zaio"
 
-#: gio/gdesktopappinfo.c:3704
+#: ../gio/gdesktopappinfo.c:3631
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "Ezin da erabiltzailearen mahaigaineko %s fitxategia sortu"
 
-#: gio/gdesktopappinfo.c:3838
+#: ../gio/gdesktopappinfo.c:3765
 #, c-format
 msgid "Custom definition for %s"
 msgstr "%s(r)en definizio pertsonalizatua"
 
-#: gio/gdrive.c:417
+#: ../gio/gdrive.c:417
 msgid "drive doesn’t implement eject"
 msgstr "gailuak ez dauka “egotzi“ inplementatuta"
 
 #. 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:495
 msgid "drive doesn’t implement eject or eject_with_operation"
 msgstr "gailuak ez dauka “egotzi“ edo “egotzi eragiketarekin“ inplementatuta"
 
-#: gio/gdrive.c:571
+#: ../gio/gdrive.c:571
 msgid "drive doesn’t implement polling for media"
 msgstr "gailuak ez dauka euskarria eskaneatzeko inplementaziorik"
 
-#: gio/gdrive.c:778
+#: ../gio/gdrive.c:776
 msgid "drive doesn’t implement start"
 msgstr "gailuak ez dauka “abiatu“ inplementatuta"
 
-#: gio/gdrive.c:880
+#: ../gio/gdrive.c:878
 msgid "drive doesn’t implement stop"
 msgstr "gailuak ez dauka “gelditu“ inplementatuta"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: ../gio/gdummytlsbackend.c:195 ../gio/gdummytlsbackend.c:317
+#: ../gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "TLS euskarria ez dago erabilgarri"
 
-#: gio/gdummytlsbackend.c:419
+#: ../gio/gdummytlsbackend.c:419
 msgid "DTLS support is not available"
 msgstr "DTLS euskarria ez dago erabilgarri"
 
-#: gio/gemblem.c:323
+#: ../gio/gemblem.c:323
 #, c-format
 msgid "Can’t handle version %d of GEmblem encoding"
 msgstr "Ezin da GEmblem kodeketaren %d bertsioa kudeatu"
 
-#: gio/gemblem.c:333
+#: ../gio/gemblem.c:333
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblem encoding"
 msgstr "Gaizki osatutako token kopurua (%d) GEmblem kodeketan"
 
-#: gio/gemblemedicon.c:362
+#: ../gio/gemblemedicon.c:362
 #, c-format
 msgid "Can’t handle version %d of GEmblemedIcon encoding"
 msgstr "Ezin da GEmblemedIcon kodeketaren %d bertsioa kudeatu"
 
-#: gio/gemblemedicon.c:372
+#: ../gio/gemblemedicon.c:372
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
 msgstr "Gaizki osatutako token kopurua (%d) GEmblemedIcon kodeketan"
 
-#: gio/gemblemedicon.c:395
+#: ../gio/gemblemedicon.c:395
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr "GEmblen espero zen GEmblemedIcon-entzako"
 
-#: 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:3738 gio/gfile.c:3793
-#: gio/gfile.c:4029 gio/gfile.c:4071 gio/gfile.c:4539 gio/gfile.c:4950
-#: gio/gfile.c:5035 gio/gfile.c:5125 gio/gfile.c:5222 gio/gfile.c:5309
-#: gio/gfile.c:5410 gio/gfile.c:7988 gio/gfile.c:8078 gio/gfile.c:8162
-#: gio/win32/gwinhttpfile.c:437
+#: ../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:3614 ../gio/gfile.c:3669
+#: ../gio/gfile.c:3905 ../gio/gfile.c:3947 ../gio/gfile.c:4415
+#: ../gio/gfile.c:4826 ../gio/gfile.c:4911 ../gio/gfile.c:5001
+#: ../gio/gfile.c:5098 ../gio/gfile.c:5185 ../gio/gfile.c:5286
+#: ../gio/gfile.c:7827 ../gio/gfile.c:7917 ../gio/gfile.c:8001
+#: ../gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Eragiketa ez dago onartuta"
 
@@ -1371,206 +1402,206 @@ msgstr "Eragiketa ez dago onartuta"
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
 #.
-#: gio/gfile.c:1575
+#: ../gio/gfile.c:1468
 msgid "Containing mount does not exist"
 msgstr "Ontziaren muntaia ez da existitzen"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2399
+#: ../gio/gfile.c:2515 ../gio/glocalfile.c:2377
 msgid "Can’t copy over directory"
 msgstr "Ezin da direktorioaren gainean kopiatu"
 
-#: gio/gfile.c:2682
+#: ../gio/gfile.c:2575
 msgid "Can’t copy directory over directory"
 msgstr "Ezin da direktorioa kopiatu direktorio gainean"
 
-#: gio/gfile.c:2690
+#: ../gio/gfile.c:2583
 msgid "Target file exists"
 msgstr "Helburuko fitxategia existitzen da"
 
-#: gio/gfile.c:2709
+#: ../gio/gfile.c:2602
 msgid "Can’t recursively copy directory"
 msgstr "Ezin da direktorioa errekurtsiboki kopiatu"
 
-#: gio/gfile.c:2984
+#: ../gio/gfile.c:2889
 msgid "Splice not supported"
 msgstr "Lotura ez da onartzen"
 
-#: gio/gfile.c:2988 gio/gfile.c:3033
+#: ../gio/gfile.c:2893
 #, c-format
 msgid "Error splicing file: %s"
 msgstr "Errorea fitxategia batzean: %s"
 
-#: gio/gfile.c:3149
+#: ../gio/gfile.c:3025
 msgid "Copy (reflink/clone) between mounts is not supported"
 msgstr "Muntaien artean kopiatzea (reflink/clone) ez dago onartuta"
 
-#: gio/gfile.c:3153
+#: ../gio/gfile.c:3029
 msgid "Copy (reflink/clone) is not supported or invalid"
 msgstr "Kopiatzea (reflink/clone) ez dago onartuta edo baliogabea da"
 
-#: gio/gfile.c:3158
+#: ../gio/gfile.c:3034
 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:3221
+#: ../gio/gfile.c:3097
 msgid "Can’t copy special file"
 msgstr "Ezin da fitxategi berezia kopiatu"
 
-#: gio/gfile.c:4019
+#: ../gio/gfile.c:3895
 msgid "Invalid symlink value given"
 msgstr "Esteka sinbolikoaren baliogabeko balioa eman da"
 
-#: gio/gfile.c:4180
+#: ../gio/gfile.c:4056
 msgid "Trash not supported"
 msgstr "Zakarrontzira botatzea ez dago onartuta"
 
-#: gio/gfile.c:4292
+#: ../gio/gfile.c:4168
 #, c-format
 msgid "File names cannot contain “%c”"
 msgstr "Fitxategi-izenek ezin dute “%c“ eduki"
 
-#: gio/gfile.c:6773 gio/gvolume.c:364
+#: ../gio/gfile.c:6614 ../gio/gvolume.c:363
 msgid "volume doesn’t implement mount"
 msgstr "bolumenak ez dauka muntatzea inplementatuta"
 
-#: gio/gfile.c:6882
+#: ../gio/gfile.c:6723
 msgid "No application is registered as handling this file"
 msgstr "Ez da aplikaziorik erregistratu fitxategi hau kudeatzeko"
 
-#: gio/gfileenumerator.c:212
+#: ../gio/gfileenumerator.c:212
 msgid "Enumerator is closed"
 msgstr "Enumeratzailea itxi da"
 
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: ../gio/gfileenumerator.c:219 ../gio/gfileenumerator.c:278
+#: ../gio/gfileenumerator.c:377 ../gio/gfileenumerator.c:476
 msgid "File enumerator has outstanding operation"
 msgstr "Fitxategiaren enumeratzaileak eragiketa bat du lanean"
 
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: ../gio/gfileenumerator.c:368 ../gio/gfileenumerator.c:467
 msgid "File enumerator is already closed"
 msgstr "Fitxategiaren enumeratzailea itxita dago jadanik"
 
-#: gio/gfileicon.c:236
+#: ../gio/gfileicon.c:236
 #, c-format
 msgid "Can’t handle version %d of GFileIcon encoding"
 msgstr "Ezin da GFileIcon kodeketaren %d bertsioa kudeatu"
 
-#: gio/gfileicon.c:246
+#: ../gio/gfileicon.c:246
 msgid "Malformed input data for GFileIcon"
 msgstr "Gaizki osatutako sarrerako datuak GFileIcon-entzako"
 
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
+#: ../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"
 msgstr "Korronteak ez du query_info onartzen"
 
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: ../gio/gfileinputstream.c:325 ../gio/gfileiostream.c:379
+#: ../gio/gfileoutputstream.c:371
 msgid "Seek not supported on stream"
 msgstr "Ez da bilaketarik onartzen korrontean"
 
-#: gio/gfileinputstream.c:369
+#: ../gio/gfileinputstream.c:369
 msgid "Truncate not allowed on input stream"
 msgstr "Trunkatzea ez da baimentzen sarrerako korrontean"
 
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: ../gio/gfileiostream.c:455 ../gio/gfileoutputstream.c:447
 msgid "Truncate not supported on stream"
 msgstr "Trunkatzea ez da onartzen korrontean"
 
 #
-#: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
+#: ../gio/ghttpproxy.c:91 ../gio/gresolver.c:410 ../gio/gresolver.c:476
+#: ../glib/gconvert.c:1650
 msgid "Invalid hostname"
 msgstr "Ostalari-izen baliogabea"
 
-#: gio/ghttpproxy.c:143
+#: ../gio/ghttpproxy.c:143
 msgid "Bad HTTP proxy reply"
 msgstr "HTTP proxy-aren okerreko erantzuna"
 
-#: gio/ghttpproxy.c:159
+#: ../gio/ghttpproxy.c:159
 msgid "HTTP proxy connection not allowed"
 msgstr "HTTP proxy-aren konexioa ez dago baimenduta"
 
-#: gio/ghttpproxy.c:164
+#: ../gio/ghttpproxy.c:164
 msgid "HTTP proxy authentication failed"
 msgstr "HTTP proxy-aren autentifikazioak huts egin du"
 
-#: gio/ghttpproxy.c:167
+#: ../gio/ghttpproxy.c:167
 msgid "HTTP proxy authentication required"
 msgstr "HTTP proxy-aren autentifikazioa behar da"
 
-#: gio/ghttpproxy.c:171
+#: ../gio/ghttpproxy.c:171
 #, c-format
 msgid "HTTP proxy connection failed: %i"
 msgstr "HTTP proxy-aren konexioak huts egin du: %i"
 
-#: gio/ghttpproxy.c:269
+#: ../gio/ghttpproxy.c:269
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "HTTP proxy zerbitzariak konexioa ustekabean itxi du."
 
-#: gio/gicon.c:290
+#: ../gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Okerreko token kopurua (%d)"
 
-#: gio/gicon.c:310
+#: ../gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Ez dago %s klasearen izen motarik"
 
-#: gio/gicon.c:320
+#: ../gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "%s motak ez du GIcon interfazea inplementatzen"
 
-#: gio/gicon.c:331
+#: ../gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "%s mota ez du klaserik"
 
-#: gio/gicon.c:345
+#: ../gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Gaizko osatutako bertsio zenbakia: %s"
 
-#: gio/gicon.c:359
+#: ../gio/gicon.c:359
 #, 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:461
+#: ../gio/gicon.c:461
 msgid "Can’t handle the supplied version of the icon encoding"
 msgstr "Ezin da ikonoaren kodeketaren emandako bertsioa kudeatu"
 
-#: gio/ginetaddressmask.c:182
+#: ../gio/ginetaddressmask.c:182
 msgid "No address specified"
 msgstr "Ez da helbiderik zehaztu"
 
-#: gio/ginetaddressmask.c:190
+#: ../gio/ginetaddressmask.c:190
 #, c-format
 msgid "Length %u is too long for address"
 msgstr "%u luzera luzeegia da helbidearentzako"
 
-#: gio/ginetaddressmask.c:223
+#: ../gio/ginetaddressmask.c:223
 msgid "Address has bits set beyond prefix length"
 msgstr "Helbideak aurrizkiaren luzera baino harago bitak ditu ezarrita"
 
-#: gio/ginetaddressmask.c:300
+#: ../gio/ginetaddressmask.c:300
 #, c-format
 msgid "Could not parse “%s” as IP address mask"
 msgstr "Ezin izan da “%s“ analizatu IP helbide-maskara gisa"
 
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:220
+#: ../gio/ginetsocketaddress.c:203 ../gio/ginetsocketaddress.c:220
+#: ../gio/gnativesocketaddress.c:106 ../gio/gunixsocketaddress.c:218
 msgid "Not enough space for socket address"
 msgstr "Ez dago nahikoa lekurik socket helbideentzako"
 
-#: gio/ginetsocketaddress.c:235
+#: ../gio/ginetsocketaddress.c:235
 msgid "Unsupported socket address"
 msgstr "Onartu gabeko socket helbidea"
 
-#: gio/ginputstream.c:188
+#: ../gio/ginputstream.c:188
 msgid "Input stream doesn’t implement read"
 msgstr "Sarrerako korronteak ez dauka irakurtzea inplementatuta"
 
@@ -1580,122 +1611,130 @@ 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:1218 gio/giostream.c:310 gio/goutputstream.c:1671
+#: ../gio/ginputstream.c:1218 ../gio/giostream.c:310
+#: ../gio/goutputstream.c:1670
 msgid "Stream has outstanding operation"
 msgstr "Korronteak eragiketa bat du lanean"
 
-#: gio/gio-tool.c:160
+#: ../gio/gio-tool.c:160
 msgid "Copy with file"
 msgstr "Kopiatu fitxategiarekin"
 
-#: gio/gio-tool.c:164
+#: ../gio/gio-tool.c:164
 msgid "Keep with file when moved"
 msgstr "Mantendu fitxategiarekin lekuz aldatzean"
 
-#: gio/gio-tool.c:205
+#: ../gio/gio-tool.c:205
 msgid "“version” takes no arguments"
 msgstr "“version“ ez du argumenturik hartzen"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:857
+#: ../gio/gio-tool.c:207 ../gio/gio-tool.c:223 ../glib/goption.c:857
 msgid "Usage:"
 msgstr "Erabilera:"
 
-#: gio/gio-tool.c:210
+#: ../gio/gio-tool.c:210
 msgid "Print version information and exit."
 msgstr "Erakutsi bertsioaren informazioa eta irten"
 
-#: gio/gio-tool.c:226
+#: ../gio/gio-tool.c:224
+msgid "[ARGS...]"
+msgstr "[ARGUMENTUAK...]"
+
+#: ../gio/gio-tool.c:226
 msgid "Commands:"
 msgstr "Komandoak:"
 
-#: gio/gio-tool.c:229
+#: ../gio/gio-tool.c:229
 msgid "Concatenate files to standard output"
 msgstr "Kateatu fitxategiak irteera estandarrera"
 
-#: gio/gio-tool.c:230
+#: ../gio/gio-tool.c:230
 msgid "Copy one or more files"
 msgstr "Kopiatu fitxategi bat edo gehiago"
 
-#: gio/gio-tool.c:231
+#: ../gio/gio-tool.c:231
 msgid "Show information about locations"
 msgstr "Erakutsi kokalekuei buruzko informazioa"
 
-#: gio/gio-tool.c:232
+#: ../gio/gio-tool.c:232
 msgid "List the contents of locations"
 msgstr "Zerrendatu kokalekuen edukia"
 
-#: gio/gio-tool.c:233
+#: ../gio/gio-tool.c:233
 msgid "Get or set the handler for a mimetype"
 msgstr "lortu edo ezarri MIME mota baten kudeatzailea"
 
-#: gio/gio-tool.c:234
+#: ../gio/gio-tool.c:234
 msgid "Create directories"
 msgstr "Sortu direktorioak"
 
-#: gio/gio-tool.c:235
+#: ../gio/gio-tool.c:235
 msgid "Monitor files and directories for changes"
 msgstr "Monitorizatu fitxategi eta direktorioen aldaketak"
 
-#: gio/gio-tool.c:236
+#: ../gio/gio-tool.c:236
 msgid "Mount or unmount the locations"
 msgstr "Muntatu edo desmuntatu kokalekuak"
 
-#: gio/gio-tool.c:237
+#: ../gio/gio-tool.c:237
 msgid "Move one or more files"
 msgstr "Aldatu fitxategi bat edo gehiago lekuz"
 
-#: gio/gio-tool.c:238
+#: ../gio/gio-tool.c:238
 msgid "Open files with the default application"
 msgstr "Ireki fitxategiak aplikazio lehenetsiarekin"
 
-#: gio/gio-tool.c:239
+#: ../gio/gio-tool.c:239
 msgid "Rename a file"
 msgstr "Aldatu fitxategi-izena"
 
-#: gio/gio-tool.c:240
+#: ../gio/gio-tool.c:240
 msgid "Delete one or more files"
 msgstr "Ezabatu fitxategi bat edo gehiago"
 
-#: gio/gio-tool.c:241
+#: ../gio/gio-tool.c:241
 msgid "Read from standard input and save"
 msgstr "Irakurri sarrera estandarretik eta gorde"
 
-#: gio/gio-tool.c:242
+#: ../gio/gio-tool.c:242
 msgid "Set a file attribute"
 msgstr "Ezarri fitxategiaren atributua"
 
-#: gio/gio-tool.c:243
+#: ../gio/gio-tool.c:243
 msgid "Move files or directories to the trash"
 msgstr "Bota fitxategi edo direktorioak zakarrontzira"
 
-#: gio/gio-tool.c:244
+#: ../gio/gio-tool.c:244
 msgid "Lists the contents of locations in a tree"
 msgstr "Zerrendatu kokalekuen edukia zuhaitz batean"
 
-#: gio/gio-tool.c:246
+#: ../gio/gio-tool.c:246
 #, c-format
 msgid "Use %s to get detailed help.\n"
 msgstr "Erabili %s laguntza xehea lortzeko.\n"
 
-#: gio/gio-tool-cat.c:87
+#: ../gio/gio-tool-cat.c:83
+#| msgid "Error writing to file: %s"
 msgid "Error writing to stdout"
 msgstr "Errorea irteera arruntean (stdout) idaztean"
 
 #. 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:113
-#: 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
+#: ../gio/gio-tool-cat.c:127 ../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
 msgid "LOCATION"
 msgstr "KOKALEKUA"
 
-#: gio/gio-tool-cat.c:138
+#: ../gio/gio-tool-cat.c:132
 msgid "Concatenate files and print to standard output."
 msgstr "Kateatu fitxategiak eta erakutsi irteera estandarrean"
 
-#: gio/gio-tool-cat.c:140
+#: ../gio/gio-tool-cat.c:134
 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"
@@ -1705,56 +1744,58 @@ msgstr ""
 "erabiliz lokaleko fitxategien ordez. Adibidez, honelako zerbait erabil "
 "dezakezu kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.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:139
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
+#: ../gio/gio-tool-cat.c:156 ../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
 msgid "No locations given"
 msgstr "Ez da kokalekurik eman"
 
-#: gio/gio-tool-copy.c:42 gio/gio-tool-move.c:38
+#: ../gio/gio-tool-copy.c:42 ../gio/gio-tool-move.c:38
 msgid "No target directory"
 msgstr "Ez dago helburuko direktorioa"
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:39
+#: ../gio/gio-tool-copy.c:43 ../gio/gio-tool-move.c:39
 msgid "Show progress"
 msgstr "Erakutsi jarraipena"
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:40
+#: ../gio/gio-tool-copy.c:44 ../gio/gio-tool-move.c:40
 msgid "Prompt before overwrite"
 msgstr "Galdetu gainidatzi aurretik"
 
-#: gio/gio-tool-copy.c:45
+#: ../gio/gio-tool-copy.c:45
 msgid "Preserve all attributes"
 msgstr "Mantendu atributu guztiak"
 
-#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: ../gio/gio-tool-copy.c:46 ../gio/gio-tool-move.c:41
+#: ../gio/gio-tool-save.c:49
 msgid "Backup existing destination files"
 msgstr "Egin existitzen diren helburuko fitxategien babeskopia"
 
-#: gio/gio-tool-copy.c:47
+#: ../gio/gio-tool-copy.c:47
 msgid "Never follow symbolic links"
 msgstr "Inoiz ez jarraitu esteka sinbolikoak"
 
-#: gio/gio-tool-copy.c:72 gio/gio-tool-move.c:67
+#: ../gio/gio-tool-copy.c:72 ../gio/gio-tool-move.c:67
 #, c-format
 msgid "Transferred %s out of %s (%s/s)"
 msgstr "Transferituta: %s / %s (%s/s)"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94
+#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
 msgid "SOURCE"
 msgstr "ITURBURUA"
 
 #. 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:98 ../gio/gio-tool-move.c:94
+#: ../gio/gio-tool-save.c:165
 msgid "DESTINATION"
 msgstr "HELBURUA"
 
-#: gio/gio-tool-copy.c:103
+#: ../gio/gio-tool-copy.c:103
 msgid "Copy one or more files from SOURCE to DESTINATION."
 msgstr "Kopiatu fitxategi bat edo gehiago ITURBURUtik HELBURUra."
 
-#: gio/gio-tool-copy.c:105
+#: ../gio/gio-tool-copy.c:105
 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"
@@ -1764,88 +1805,93 @@ msgstr ""
 "erabiliz lokaleko fitxategien ordez. Adibidez, honelako zerbait erabil "
 "dezakezu kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt"
 
-#: gio/gio-tool-copy.c:147
+#: ../gio/gio-tool-copy.c:147
 #, c-format
 msgid "Destination %s is not a directory"
 msgstr "'%s' helburua ez da direktorio bat"
 
-#: gio/gio-tool-copy.c:192 gio/gio-tool-move.c:186
+#: ../gio/gio-tool-copy.c:192 ../gio/gio-tool-move.c:185
 #, c-format
 msgid "%s: overwrite “%s”? "
 msgstr "%s: gainidatzi “%s“? "
 
-#: gio/gio-tool-info.c:34
+#: ../gio/gio-tool-info.c:34
 msgid "List writable attributes"
 msgstr "Zerrendatu atributu idazgarriak"
 
-#: gio/gio-tool-info.c:35
+#: ../gio/gio-tool-info.c:35
 msgid "Get file system info"
 msgstr "Lortu fitxategi-sistemako informazioa"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "The attributes to get"
 msgstr "Atributuak lortzeko"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "ATTRIBUTES"
 msgstr "ATRIBUTUAK"
 
-#: gio/gio-tool-info.c:37 gio/gio-tool-list.c:38 gio/gio-tool-set.c:34
+#: ../gio/gio-tool-info.c:37 ../gio/gio-tool-list.c:38 ../gio/gio-tool-set.c:34
 msgid "Don’t follow symbolic links"
 msgstr "Ez jarraitu esteka sinbolikoak"
 
-#: gio/gio-tool-info.c:75
+#: ../gio/gio-tool-info.c:75
+#, c-format
 msgid "attributes:\n"
 msgstr "atributuak:\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:127
+#: ../gio/gio-tool-info.c:127
 #, c-format
 msgid "display name: %s\n"
 msgstr "bistaratu izena: %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:132
 #, c-format
 msgid "edit name: %s\n"
 msgstr "editatu izena: %s\n"
 
-#: gio/gio-tool-info.c:138
+#: ../gio/gio-tool-info.c:138
 #, c-format
 msgid "name: %s\n"
 msgstr "izena: %s\n"
 
-#: gio/gio-tool-info.c:145
+#: ../gio/gio-tool-info.c:145
 #, c-format
 msgid "type: %s\n"
 msgstr "mota: %s\n"
 
-#: gio/gio-tool-info.c:151
+#: ../gio/gio-tool-info.c:151
+#, c-format
 msgid "size: "
 msgstr "tamaina: "
 
-#: gio/gio-tool-info.c:156
+#: ../gio/gio-tool-info.c:156
+#, c-format
 msgid "hidden\n"
 msgstr "ezkutukoa\n"
 
-#: gio/gio-tool-info.c:159
+#: ../gio/gio-tool-info.c:159
 #, c-format
 msgid "uri: %s\n"
 msgstr "URIa: %s\n"
 
-#: gio/gio-tool-info.c:228
+#: ../gio/gio-tool-info.c:228
+#, c-format
 msgid "Settable attributes:\n"
 msgstr "Atributu ezargarriak:\n"
 
-#: gio/gio-tool-info.c:252
+#: ../gio/gio-tool-info.c:252
+#, c-format
 msgid "Writable attribute namespaces:\n"
 msgstr "Atributu idazgarrien izen-espazioak:\n"
 
-#: gio/gio-tool-info.c:287
+#: ../gio/gio-tool-info.c:287
 msgid "Show information about locations."
 msgstr "Erakutsi kokalekuei buruzko informazioa."
 
-#: gio/gio-tool-info.c:289
+#: ../gio/gio-tool-info.c:289
 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"
@@ -1860,23 +1906,23 @@ msgstr ""
 "atributuak haien GIO izenekin zehatz daiteke, adibidez, standard::icon edo\n"
 "izen-espazioarekin, adib. unix edo “*“ (atributu guztiekin bat datorrelarik)."
 
-#: gio/gio-tool-list.c:36 gio/gio-tool-tree.c:32
+#: ../gio/gio-tool-list.c:36 ../gio/gio-tool-tree.c:32
 msgid "Show hidden files"
 msgstr "Erakutsi ezkutuko fitxategiak"
 
-#: gio/gio-tool-list.c:37
+#: ../gio/gio-tool-list.c:37
 msgid "Use a long listing format"
 msgstr "Erabili zerrenda luzeen formatua"
 
-#: gio/gio-tool-list.c:39
+#: ../gio/gio-tool-list.c:39
 msgid "Print full URIs"
 msgstr "Erakutsi URI osoak"
 
-#: gio/gio-tool-list.c:170
+#: ../gio/gio-tool-list.c:170
 msgid "List the contents of the locations."
 msgstr "Zerrendatu kokalekuen edukia."
 
-#: gio/gio-tool-list.c:172
+#: ../gio/gio-tool-list.c:172
 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"
@@ -1890,19 +1936,19 @@ msgstr ""
 "atributuak haien GIO izenekin zehatz daiteke, adibidez, standard::icon"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "MIMETYPE"
 msgstr "MIMEMOTA"
 
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "HANDLER"
 msgstr "KUDEATZAILEA"
 
-#: gio/gio-tool-mime.c:76
+#: ../gio/gio-tool-mime.c:76
 msgid "Get or set the handler for a mimetype."
 msgstr "Lortu edo ezarri MIME mota baten kudeatzailea."
 
-#: gio/gio-tool-mime.c:78
+#: ../gio/gio-tool-mime.c:78
 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"
@@ -1912,56 +1958,61 @@ msgstr ""
 "eta gomendatutako aplikazio guztiak zerrendatzen ditu. Kudeatzaile\n"
 "bat ematen bada, MIME motaren kudeatzaile lehenetsi gisa ezarriko da."
 
-#: gio/gio-tool-mime.c:100
+#: ../gio/gio-tool-mime.c:100
 msgid "Must specify a single mimetype, and maybe a handler"
 msgstr "MIME mota bakarra zehaztu behar da, eta agian kudeatzaile bat"
 
-#: gio/gio-tool-mime.c:116
+#: ../gio/gio-tool-mime.c:116
 #, c-format
 msgid "No default applications for “%s”\n"
 msgstr "Ez dago “%s“(r)en aplikazio lehenetsirik\n"
 
-#: gio/gio-tool-mime.c:122
+#: ../gio/gio-tool-mime.c:122
 #, c-format
 msgid "Default application for “%s”: %s\n"
 msgstr "“%s“(r)en aplikazio lehenetsia: %s\n"
 
-#: gio/gio-tool-mime.c:127
+#: ../gio/gio-tool-mime.c:127
+#, c-format
 msgid "Registered applications:\n"
 msgstr "Erregistratutako aplikazioak:\n"
 
-#: gio/gio-tool-mime.c:129
+#: ../gio/gio-tool-mime.c:129
+#, c-format
 msgid "No registered applications\n"
 msgstr "Ez dago erregistratutako aplikaziorik\n"
 
-#: gio/gio-tool-mime.c:140
+#: ../gio/gio-tool-mime.c:140
+#, c-format
 msgid "Recommended applications:\n"
 msgstr "Gomendatutako aplikazioak:\n"
 
-#: gio/gio-tool-mime.c:142
+#: ../gio/gio-tool-mime.c:142
+#, c-format
 msgid "No recommended applications\n"
 msgstr "Ez dago gomendatutako aplikaziorik\n"
 
-#: gio/gio-tool-mime.c:162
+#: ../gio/gio-tool-mime.c:162
 #, c-format
+#| msgid "Failed to load info for handler “%s”\n"
 msgid "Failed to load info for handler “%s”"
 msgstr "Huts egin du ”%s” kudeatzailearen informazioa kargatzean"
 
-#: gio/gio-tool-mime.c:168
+#: ../gio/gio-tool-mime.c:168
 #, c-format
 msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
 msgstr ""
 "Huts egin du “%s“ kudeatzaile lehenetsi gisa ezartzean “%s“(r)entzako: %s\n"
 
-#: gio/gio-tool-mkdir.c:31
+#: ../gio/gio-tool-mkdir.c:31
 msgid "Create parent directories"
 msgstr "Sortu direktorio gurasoak"
 
-#: gio/gio-tool-mkdir.c:52
+#: ../gio/gio-tool-mkdir.c:52
 msgid "Create directories."
 msgstr "Sortu direktorioak."
 
-#: gio/gio-tool-mkdir.c:54
+#: ../gio/gio-tool-mkdir.c:54
 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"
@@ -1972,141 +2023,115 @@ msgstr ""
 "dezakezu\n"
 "kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt"
 
-#: gio/gio-tool-monitor.c:37
+#: ../gio/gio-tool-monitor.c:37
 msgid "Monitor a directory (default: depends on type)"
 msgstr "Monitorizatu direktorio bat (lehenetsia: motaren arabera)"
 
-#: gio/gio-tool-monitor.c:39
+#: ../gio/gio-tool-monitor.c:39
 msgid "Monitor a file (default: depends on type)"
 msgstr "Monitorizatu direktorio bat (lehenetsia: motaren arabera)"
 
-#: gio/gio-tool-monitor.c:41
+#: ../gio/gio-tool-monitor.c:41
 msgid "Monitor a file directly (notices changes made via hardlinks)"
 msgstr ""
 "Monitorizatu fitxategi bat (esteka gogorren bidez egindako aldaketaz "
 "ohartzen du)"
 
-#: gio/gio-tool-monitor.c:43
+#: ../gio/gio-tool-monitor.c:43
 msgid "Monitors a file directly, but doesn’t report changes"
 msgstr "Monitorizatu fitxategi bat zuzenean, baina ez eman aldaketen berri"
 
-#: gio/gio-tool-monitor.c:45
+#: ../gio/gio-tool-monitor.c:45
 msgid "Report moves and renames as simple deleted/created events"
 msgstr "Eman leku eta izen aldaketen berri ezabatutako/sortutako gertaera gisa"
 
-#: gio/gio-tool-monitor.c:47
+#: ../gio/gio-tool-monitor.c:47
 msgid "Watch for mount events"
 msgstr "Zaindu muntaketen gertaerak"
 
-#: gio/gio-tool-monitor.c:208
+#: ../gio/gio-tool-monitor.c:208
 msgid "Monitor files or directories for changes."
 msgstr "Monitorizatu fitxategi edo direktorioen aldaketak"
 
-#: gio/gio-tool-mount.c:63
+#: ../gio/gio-tool-mount.c:58
 msgid "Mount as mountable"
 msgstr "Muntatu muntagarri gisa"
 
-#: gio/gio-tool-mount.c:64
+#: ../gio/gio-tool-mount.c:59
 msgid "Mount volume with device file"
 msgstr "Muntatu bolumena gailu-fitxategiarekin"
 
-#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+#: ../gio/gio-tool-mount.c:59
 msgid "DEVICE"
 msgstr "GAILUA"
 
-#: gio/gio-tool-mount.c:65
+#: ../gio/gio-tool-mount.c:60
 msgid "Unmount"
 msgstr "Desmuntatu"
 
-#: gio/gio-tool-mount.c:66
+#: ../gio/gio-tool-mount.c:61
 msgid "Eject"
 msgstr "Egotzi"
 
-#: gio/gio-tool-mount.c:67
-#| msgid "Mount volume with device file"
-msgid "Stop drive with device file"
-msgstr "Gelditu unitatea gailu-fitxategiarekin"
-
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:62
 msgid "Unmount all mounts with the given scheme"
 msgstr "Desmuntatu muntatze-puntu guztiak emandako eskemarekin"
 
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:62
 msgid "SCHEME"
 msgstr "ESKEMA"
 
-#: gio/gio-tool-mount.c:69
+#: ../gio/gio-tool-mount.c:63
 msgid "Ignore outstanding file operations when unmounting or ejecting"
 msgstr ""
 "Ez ikusi egin amaitu gabeko fitxategien eragiketei desmuntatzean edo "
 "egozketan"
 
-#: gio/gio-tool-mount.c:70
+#: ../gio/gio-tool-mount.c:64
 msgid "Use an anonymous user when authenticating"
 msgstr "Erabili erabiltzaile anonimoa autentifikatzean"
 
 #. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: ../gio/gio-tool-mount.c:66
 msgid "List"
 msgstr "Zerrenda"
 
-#: gio/gio-tool-mount.c:73
+#: ../gio/gio-tool-mount.c:67
 msgid "Monitor events"
 msgstr "Monitorearen gertaerak"
 
-#: gio/gio-tool-mount.c:74
+#: ../gio/gio-tool-mount.c:68
 msgid "Show extra information"
 msgstr "Erakutsi informazio gehigarria"
 
-#: gio/gio-tool-mount.c:75
-msgid "The numeric PIM when unlocking a VeraCrypt volume"
-msgstr "Zenbakizko PIMa VeraCrypt bolumen bat desblokeatzean"
-
-#: gio/gio-tool-mount.c:75
-#| msgctxt "GDateTime"
-#| msgid "PM"
-msgid "PIM"
-msgstr "PIM"
-
-#: gio/gio-tool-mount.c:76
-msgid "Mount a TCRYPT hidden volume"
-msgstr "Muntatu ezkutuko TCRYPT bolumen bat"
-
-#: gio/gio-tool-mount.c:77
-msgid "Mount a TCRYPT system volume"
-msgstr "Muntatu sistemako TCRYPT bolumen bat"
-
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: ../gio/gio-tool-mount.c:246 ../gio/gio-tool-mount.c:276
+#| msgid "Error mounting location: Anonymous access denied\n"
 msgid "Anonymous access denied"
 msgstr "Anonimoki atzitzea debekatua"
 
-#: gio/gio-tool-mount.c:522
-#| msgid "No volume for device file"
-msgid "No drive for device file"
-msgstr "Ez dago unitaterik gailu-fitxategiarentzako"
-
-#: gio/gio-tool-mount.c:975
+#: ../gio/gio-tool-mount.c:897
 #, c-format
 msgid "Mounted %s at %s\n"
 msgstr "%s hemen muntatuta: %s\n"
 
-#: gio/gio-tool-mount.c:1027
+#: ../gio/gio-tool-mount.c:950
+#| msgid "No volume for device file %s\n"
 msgid "No volume for device file"
 msgstr "Ez dago bolumenik gailu-fitxategiarentzako"
 
-#: gio/gio-tool-mount.c:1216
+#: ../gio/gio-tool-mount.c:1145
 msgid "Mount or unmount the locations."
 msgstr "Muntatu edo desmuntatu kokalekuak."
 
-#: gio/gio-tool-move.c:42
+#: ../gio/gio-tool-move.c:42
 msgid "Don’t use copy and delete fallback"
 msgstr "Ez erabili ordezkoaren kopia eta ezabatzea"
 
-#: gio/gio-tool-move.c:99
+#: ../gio/gio-tool-move.c:99
 msgid "Move one or more files from SOURCE to DEST."
 msgstr "Aldatu fitxategi bat edo gehiago lekuz ITURBURUtik HELBURUra."
 
-#: gio/gio-tool-move.c:101
+#: ../gio/gio-tool-move.c:101
 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"
@@ -2116,12 +2141,12 @@ msgstr ""
 "erabiliz lokaleko fitxategien ordez Adibidez, honelako zerbait erabil\n"
 "dezakezu kokaleku gisa: smb://zerbitzaria/baliabidea/fitxategia.txt"
 
-#: gio/gio-tool-move.c:143
+#: ../gio/gio-tool-move.c:142
 #, c-format
 msgid "Target %s is not a directory"
 msgstr "%s helburua ez da direktorioa"
 
-#: gio/gio-tool-open.c:118
+#: ../gio/gio-tool-open.c:50
 msgid ""
 "Open files with the default application that\n"
 "is registered to handle files of this type."
@@ -2129,261 +2154,252 @@ msgstr ""
 "Ireki fitxategiak mota honetako fitxategiak kudeatzeko\n"
 "erregistratuta dagoen aplikazio lehenetsiarekin."
 
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:31
+#: ../gio/gio-tool-remove.c:31 ../gio/gio-tool-trash.c:31
 msgid "Ignore nonexistent files, never prompt"
 msgstr "Ez ikusi egin existitzen ez diren fitxategiei, inoiz ere ez galdetu"
 
-#: gio/gio-tool-remove.c:52
+#: ../gio/gio-tool-remove.c:52
 msgid "Delete the given files."
 msgstr "Ezabatu emandako fitxategiak"
 
-#: gio/gio-tool-rename.c:45
+#: ../gio/gio-tool-rename.c:45
 msgid "NAME"
 msgstr "IZENA"
 
-#: gio/gio-tool-rename.c:50
+#: ../gio/gio-tool-rename.c:50
 msgid "Rename a file."
 msgstr "Aldatu fitxategi-izena."
 
-#: gio/gio-tool-rename.c:70
+#: ../gio/gio-tool-rename.c:70
 msgid "Missing argument"
 msgstr "Argumentua falta da"
 
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: ../gio/gio-tool-rename.c:76 ../gio/gio-tool-save.c:195
+#: ../gio/gio-tool-set.c:137
 msgid "Too many arguments"
 msgstr "Argumentu gehiegi"
 
-#: gio/gio-tool-rename.c:95
+#: ../gio/gio-tool-rename.c:95
 #, c-format
 msgid "Rename successful. New uri: %s\n"
 msgstr "Izenez ongi aldatu da. URI berria: %s\n"
 
-#: gio/gio-tool-save.c:50
+#: ../gio/gio-tool-save.c:50
 msgid "Only create if not existing"
 msgstr "Sortu soilik ez bada existitzen"
 
-#: gio/gio-tool-save.c:51
+#: ../gio/gio-tool-save.c:51
 msgid "Append to end of file"
 msgstr "Erantsi fitxategiaren amaieran"
 
-#: gio/gio-tool-save.c:52
+#: ../gio/gio-tool-save.c:52
 msgid "When creating, restrict access to the current user"
 msgstr "Sortzean, murriztu uneko erabiltzailearen atzipena"
 
-#: gio/gio-tool-save.c:53
+#: ../gio/gio-tool-save.c:53
 msgid "When replacing, replace as if the destination did not exist"
 msgstr "Ordeztean, ordeztu helburukoa existituko ez balitz bezala"
 
 #. 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:55
 msgid "Print new etag at end"
 msgstr "Inprimatu entitate-etiketa (etag) berria amaieran"
 
 #. 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:57
 msgid "The etag of the file being overwritten"
 msgstr "Fitxategiaren entitate-etiketa (etag) gainidazten ari da"
 
-#: gio/gio-tool-save.c:57
+#: ../gio/gio-tool-save.c:57
 msgid "ETAG"
 msgstr "ENTITATE-ETIKETA (ETAG)"
 
-#: gio/gio-tool-save.c:113
+#: ../gio/gio-tool-save.c:119
+#| msgid "Error reading from handle: %s"
 msgid "Error reading from standard input"
 msgstr "Errorea sarrera arruntetik (stdin) irakurtzean"
 
 #. 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:145
+#, c-format
 msgid "Etag not available\n"
 msgstr "Entitate-etiketa ez dago eskuragarri\n"
 
-#: gio/gio-tool-save.c:163
+#: ../gio/gio-tool-save.c:168
 msgid "Read from standard input and save to DEST."
 msgstr "Irakurri sarrera estandarretik eta gorde HELBIDEAN."
 
-#: gio/gio-tool-save.c:183
+#: ../gio/gio-tool-save.c:188
 msgid "No destination given"
 msgstr "Ez da helbururik eman"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "Type of the attribute"
 msgstr "Atributu mota"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "TYPE"
 msgstr "MOTA"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "ATTRIBUTE"
 msgstr "ATRIBUTUA"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "VALUE"
 msgstr "BALIOA"
 
-#: gio/gio-tool-set.c:93
+#: ../gio/gio-tool-set.c:93
 msgid "Set a file attribute of LOCATION."
 msgstr "Ezarri fitxategiaren KOKALEKUA atributua"
 
-#: gio/gio-tool-set.c:113
+#: ../gio/gio-tool-set.c:113
 msgid "Location not specified"
 msgstr "Ez da kokalekurik zehaztu"
 
-#: gio/gio-tool-set.c:120
+#: ../gio/gio-tool-set.c:120
 msgid "Attribute not specified"
 msgstr "Ez da atributurik zehaztu"
 
-#: gio/gio-tool-set.c:130
+#: ../gio/gio-tool-set.c:130
 msgid "Value not specified"
 msgstr "Ez da baliorik zehaztu"
 
-#: gio/gio-tool-set.c:180
+#: ../gio/gio-tool-set.c:180
 #, c-format
+#| msgid "Invalid attribute type %s\n"
 msgid "Invalid attribute type “%s”"
 msgstr "Baliogabeko ”%s” atributu mota"
 
-#: gio/gio-tool-trash.c:32
+#: ../gio/gio-tool-trash.c:32
 msgid "Empty the trash"
 msgstr "Hustu zakarrontzia"
 
-#: gio/gio-tool-trash.c:86
+#: ../gio/gio-tool-trash.c:86
 msgid "Move files or directories to the trash."
 msgstr "Bota fitxategi edo direktorioak zakarrontzira."
 
-#: gio/gio-tool-tree.c:33
+#: ../gio/gio-tool-tree.c:33
 msgid "Follow symbolic links, mounts and shortcuts"
 msgstr "Jarraitu esteka sinbolikoak, muntatze-puntuak eta lasterbideak"
 
-#: gio/gio-tool-tree.c:244
+#: ../gio/gio-tool-tree.c:244
 msgid "List contents of directories in a tree-like format."
 msgstr "Zerrendatu direktorioen edukia zuhaitz baten bezalako formatuan."
 
-#: gio/glib-compile-resources.c:143 gio/glib-compile-schemas.c:1515
+#: ../gio/glib-compile-resources.c:142 ../gio/glib-compile-schemas.c:1501
 #, c-format
 msgid "Element <%s> not allowed inside <%s>"
 msgstr "<%s> elementua ez da <%s>(r)en barruan onartzen"
 
-#: gio/glib-compile-resources.c:147
+#: ../gio/glib-compile-resources.c:146
 #, c-format
 msgid "Element <%s> not allowed at toplevel"
 msgstr "<%s> elementua ez da maila gorenean onartzen"
 
-#: gio/glib-compile-resources.c:237
+#: ../gio/glib-compile-resources.c:237
 #, c-format
 msgid "File %s appears multiple times in the resource"
 msgstr "%s fitxategia hainbat aldiz agertzen da baliabidean"
 
-#: gio/glib-compile-resources.c:248
+#: ../gio/glib-compile-resources.c:248
 #, c-format
 msgid "Failed to locate “%s” in any source directory"
 msgstr "Huts egin du “%s“ bilatzean edozein iturburuko direktoriotan"
 
-#: gio/glib-compile-resources.c:259
+#: ../gio/glib-compile-resources.c:259
 #, c-format
 msgid "Failed to locate “%s” in current directory"
 msgstr "Huts egin du “%s“ bilatzean uneko direktorioan"
 
-#: gio/glib-compile-resources.c:293
+#: ../gio/glib-compile-resources.c:290
 #, c-format
 msgid "Unknown processing option “%s”"
 msgstr "Prozesuaren “%s“ aukera ezezaguna"
 
-#. 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:313 gio/glib-compile-resources.c:370
-#: gio/glib-compile-resources.c:427
+#: ../gio/glib-compile-resources.c:308 ../gio/glib-compile-resources.c:354
 #, c-format
-msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
-msgstr ""
-"“%s“ aurre-prozesaketa eskatuta, baina “%s“ ez da ezarri, eta “%s“ ez dago"
-" PATH-ean"
+msgid "Failed to create temp file: %s"
+msgstr "Huts egin du aldi baterako fitxategia sortu: %s"
 
-#: gio/glib-compile-resources.c:460
+#: ../gio/glib-compile-resources.c:382
 #, c-format
 msgid "Error reading file %s: %s"
 msgstr "Errorea '%s' fitxategia irakurtzean: %s"
 
-#: gio/glib-compile-resources.c:480
+#: ../gio/glib-compile-resources.c:402
 #, c-format
 msgid "Error compressing file %s"
 msgstr "Errorea %s fitxategia konprimitzean"
 
-#: gio/glib-compile-resources.c:541
+#: ../gio/glib-compile-resources.c:469
 #, c-format
 msgid "text may not appear inside <%s>"
 msgstr "testua ezin da <%s>(r)en barruan egon"
 
-#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2139
+#: ../gio/glib-compile-resources.c:664 ../gio/glib-compile-schemas.c:2067
 msgid "Show program version and exit"
 msgstr "Erakutsi programaren bertsioa eta irten"
 
-#: gio/glib-compile-resources.c:737
-#| msgid "name of the output file"
-msgid "Name of the output file"
-msgstr "Irteerako fitxategiaren izena"
+#: ../gio/glib-compile-resources.c:665
+msgid "name of the output file"
+msgstr "irteerako fitxategiaren izena"
 
-#: gio/glib-compile-resources.c:738
-#| msgid ""
-#| "The directories where files are to be read from (default to current "
-#| "directory)"
+#: ../gio/glib-compile-resources.c:666
 msgid ""
-"The directories to load files referenced in FILE from (default: current "
+"The directories where files are to be read from (default to current "
 "directory)"
 msgstr ""
-"FILE-n erreferentziatutako fitxategiak kargatzeko direktorioak "
-"(lehenetsia uneko direktorioa)"
+"Direktorioak, horietarik fitxategiak irakurtzeko (lehenetsia uneko "
+"direktorioa)"
 
-#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2140
-#: gio/glib-compile-schemas.c:2169
+#: ../gio/glib-compile-resources.c:666 ../gio/glib-compile-schemas.c:2068
+#: ../gio/glib-compile-schemas.c:2096
 msgid "DIRECTORY"
 msgstr "DIREKTORIOA"
 
-#: gio/glib-compile-resources.c:739
+#: ../gio/glib-compile-resources.c:667
 msgid ""
 "Generate output in the format selected for by the target filename extension"
 msgstr ""
 "Sortu irteera hautatutako formatuan helburuko fitxategiaren luzapenaren "
 "arabera"
 
-#: gio/glib-compile-resources.c:740
+#: ../gio/glib-compile-resources.c:668
 msgid "Generate source header"
 msgstr "Sortu iturburuaren goiburua"
 
-#: gio/glib-compile-resources.c:741
-#| 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"
+#: ../gio/glib-compile-resources.c:669
+msgid "Generate sourcecode used to link in the resource file into your code"
 msgstr ""
 "Sortu iturburuaren kodea (baliabidearen fitxategia zure kodean estekatzeko "
 "erabilita)"
 
-#: gio/glib-compile-resources.c:742
+#: ../gio/glib-compile-resources.c:670
 msgid "Generate dependency list"
 msgstr "Sortu mendekotasunen zerrenda"
 
-#: gio/glib-compile-resources.c:743
-#| msgid "name of the dependency file to generate"
-msgid "Name of the dependency file to generate"
-msgstr "Mendekotasunen fitxategiaren izena sortzeko"
+#: ../gio/glib-compile-resources.c:671
+msgid "name of the dependency file to generate"
+msgstr "mendekotasunen fitxategiaren izena sortzeko"
 
-#: gio/glib-compile-resources.c:744
+#: ../gio/glib-compile-resources.c:672
 msgid "Include phony targets in the generated dependency file"
 msgstr "Sartu helburu faltsuak sortutako mendekotasun-fitxategian"
 
-#: gio/glib-compile-resources.c:745
+#: ../gio/glib-compile-resources.c:673
 msgid "Don’t automatically create and register resource"
 msgstr "Ez sortu eta erregistratu baliabidea automatikoki "
 
-#: gio/glib-compile-resources.c:746
+#: ../gio/glib-compile-resources.c:674
 msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
 msgstr "Ez esportatu funtzioak: deklaratu haiek G_GNUC_INTERNAL gisa"
 
-#: gio/glib-compile-resources.c:747
+#: ../gio/glib-compile-resources.c:675
 msgid "C identifier name used for the generated source code"
 msgstr "C identifikatzailearen izena (sortutako iturburuaren kodean erabilita)"
 
-#: gio/glib-compile-resources.c:773
+#: ../gio/glib-compile-resources.c:701
 msgid ""
 "Compile a resource specification into a resource file.\n"
 "Resource specification files have the extension .gresource.xml,\n"
@@ -2393,131 +2409,142 @@ msgstr ""
 "Baliabideen zehaztapenen fitxategiak .gresource.xml luzapena dute,\n"
 "eta baliabideen fitxategiek berriz .gresource luzapena."
 
-#: gio/glib-compile-resources.c:795
+#: ../gio/glib-compile-resources.c:723
+#, c-format
 msgid "You should give exactly one file name\n"
 msgstr "Fitxategi baten izena bakarrik eman behar duzu\n"
 
-#: gio/glib-compile-schemas.c:95
+#: ../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:106
+#: ../gio/glib-compile-schemas.c:106
 #, c-format
+#| msgid "Invalid symlink value given"
 msgid "Invalid numeric value"
 msgstr "Baliogabeko zenbakizko balioa"
 
-#: gio/glib-compile-schemas.c:114
+#: ../gio/glib-compile-schemas.c:114
 #, c-format
+#| msgid "<%s id='%s'> already specified"
 msgid "<value nick='%s'/> already specified"
 msgstr "<value nick='%s'/> jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:122
+#: ../gio/glib-compile-schemas.c:122
 #, c-format
+#| msgid "<key name='%s'> already specified"
 msgid "value='%s' already specified"
 msgstr "\"value='%s'\"  jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:136
+#: ../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:161
+#: ../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:317
+#: ../gio/glib-compile-schemas.c:315
 #, c-format
+#| msgid "No connection endpoint specified"
 msgid "<%s> is not contained in the specified range"
 msgstr "<%s> ez dago zehaztutako barrutian"
 
-#: gio/glib-compile-schemas.c:329
+#: ../gio/glib-compile-schemas.c:327
 #, 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:335
+#: ../gio/glib-compile-schemas.c:333
 #, 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:341
+#: ../gio/glib-compile-schemas.c:339
 #, 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:375
+#: ../gio/glib-compile-schemas.c:373
+#| msgid "<key name='%s'> already specified"
 msgid "<range/> already specified for this key"
 msgstr "<range/> jadanik zehaztuta gako honentzat"
 
-#: gio/glib-compile-schemas.c:393
+#: ../gio/glib-compile-schemas.c:391
 #, c-format
 msgid "<range> not allowed for keys of type “%s”"
 msgstr "<range> ez dago baimenduta \"%s\" motako gakoentzako"
 
-#: gio/glib-compile-schemas.c:410
+#: ../gio/glib-compile-schemas.c:408
 #, c-format
 msgid "<range> specified minimum is greater than maximum"
 msgstr "<range> zehaztutako gutxienekoa gehienezkoa baino handiagoa da"
 
-#: gio/glib-compile-schemas.c:435
+#: ../gio/glib-compile-schemas.c:433
 #, c-format
 msgid "unsupported l10n category: %s"
 msgstr "onartu gabeko l10n kategoria: %s"
 
-#: gio/glib-compile-schemas.c:443
+#: ../gio/glib-compile-schemas.c:441
 msgid "l10n requested, but no gettext domain given"
 msgstr "l10n eskatuta, baina ez da gettext-en domeinurik eman"
 
-#: gio/glib-compile-schemas.c:455
+#: ../gio/glib-compile-schemas.c:453
 msgid "translation context given for value without l10n enabled"
 msgstr "balioaren emandako itzulpenaren testuingurua l10n gaitu gabe"
 
-#: gio/glib-compile-schemas.c:477
+#: ../gio/glib-compile-schemas.c:475
 #, c-format
+#| msgid "Failed to create file “%s”: %s"
 msgid "Failed to parse <default> value of type “%s”: "
 msgstr "Huts egin du \"%s\" motaren <default> balioa analizatzean"
 
-#: gio/glib-compile-schemas.c:494
+#: ../gio/glib-compile-schemas.c:492
 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"
+"Ezin da <choices> zehaztu zenbatutako mota bat baluten bezalako etiketatutako "
+"gakoentzako"
 
-#: gio/glib-compile-schemas.c:503
+#: ../gio/glib-compile-schemas.c:501
+#| msgid "<child name='%s'> already specified"
 msgid "<choices> already specified for this key"
 msgstr "<choices> jadanik zehaztuta gakoarentzako"
 
-#: gio/glib-compile-schemas.c:515
+#: ../gio/glib-compile-schemas.c:513
 #, c-format
 msgid "<choices> not allowed for keys of type “%s”"
 msgstr "<choices> ez dago baimenduta \"%s\" motako gakoentzako"
 
-#: gio/glib-compile-schemas.c:531
+#: ../gio/glib-compile-schemas.c:529
 #, c-format
+#| msgid "<child name='%s'> already specified"
 msgid "<choice value='%s'/> already given"
 msgstr "<choice value='%s'/>  jadanik emanda"
 
-#: gio/glib-compile-schemas.c:546
+#: ../gio/glib-compile-schemas.c:544
 #, c-format
 msgid "<choices> must contain at least one <choice>"
 msgstr "<choices>-ek gutxienez <choice> bat eduki behar du"
 
-#: gio/glib-compile-schemas.c:560
+#: ../gio/glib-compile-schemas.c:558
+#| msgid "<child name='%s'> already specified"
 msgid "<aliases> already specified for this key"
 msgstr "<aliases> jadanik zehaztuta gako honentzako"
 
-#: gio/glib-compile-schemas.c:564
+#: ../gio/glib-compile-schemas.c:562
 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"
+"edo "
+"<choices> ondoren"
 
-#: gio/glib-compile-schemas.c:583
+#: ../gio/glib-compile-schemas.c:581
 #, c-format
 msgid ""
 "<alias value='%s'/> given when “%s” is already a member of the enumerated "
@@ -2525,43 +2552,50 @@ msgid ""
 msgstr ""
 "<alias value='%s'/> eman da \"%s\" jadanik zenbatuta motako kide denean"
 
-#: gio/glib-compile-schemas.c:589
+#: ../gio/glib-compile-schemas.c:587
 #, 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:597
+#: ../gio/glib-compile-schemas.c:595
 #, c-format
+#| msgid "<%s id='%s'> already specified"
 msgid "<alias value='%s'/> already specified"
 msgstr "<alias value='%s'/> jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:607
+#: ../gio/glib-compile-schemas.c:605
 #, c-format
+#| msgid "The pathname “%s” is not an absolute path"
 msgid "alias target “%s” is not in enumerated type"
 msgstr "helburuko “%s” aliasa ez da zenbatuta motakoa"
 
-#: gio/glib-compile-schemas.c:608
+#: ../gio/glib-compile-schemas.c:606
 #, c-format
 msgid "alias target “%s” is not in <choices>"
 msgstr "helburuko “%s” aliasa ez dagon <choices>-en"
 
-#: gio/glib-compile-schemas.c:623
+#: ../gio/glib-compile-schemas.c:621
 #, c-format
 msgid "<aliases> must contain at least one <alias>"
 msgstr "<aliases>-ek gutxienez <alias> bat eduki behar du"
 
-#: gio/glib-compile-schemas.c:798
+#: ../gio/glib-compile-schemas.c:786
+#| msgid "empty names are not permitted"
 msgid "Empty names are not permitted"
 msgstr "Izen hutsak ez daude baimenduta"
 
-#: gio/glib-compile-schemas.c:808
+#: ../gio/glib-compile-schemas.c:796
 #, 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“ izena baliogabea: izenak letra minuskula batekin hasi behar dira"
 
-#: gio/glib-compile-schemas.c:820
+#: ../gio/glib-compile-schemas.c:808
 #, 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"
@@ -2569,36 +2603,40 @@ msgstr ""
 "“%s“ izena baliogabea: “%c“ karakterea baliogabea. soilik letra minuskulak, "
 "zenbakiak eta hipenazioa (“-“) onartzen dira."
 
-#: gio/glib-compile-schemas.c:829
+#: ../gio/glib-compile-schemas.c:817
 #, c-format
+#| msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
 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:838
+#: ../gio/glib-compile-schemas.c:826
 #, 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“ izena baliogabea: azken karakterea ezin da hipenazioa (“-“) izan."
 
-#: gio/glib-compile-schemas.c:846
+#: ../gio/glib-compile-schemas.c:834
 #, c-format
+#| msgid "invalid name '%s': maximum length is 1024"
 msgid "Invalid name “%s”: maximum length is 1024"
 msgstr "“%s“ izena baliogabea: gehienezko luzera 1024 da"
 
-#: gio/glib-compile-schemas.c:918
+#: ../gio/glib-compile-schemas.c:904
 #, c-format
 msgid "<child name='%s'> already specified"
 msgstr "<child name='%s'> jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:944
+#: ../gio/glib-compile-schemas.c:930
+#| msgid "cannot add keys to a 'list-of' schema"
 msgid "Cannot add keys to a “list-of” schema"
 msgstr "Ezin zaio gakorik gehitu “list-of“ eskema bati"
 
-#: gio/glib-compile-schemas.c:955
+#: ../gio/glib-compile-schemas.c:941
 #, c-format
 msgid "<key name='%s'> already specified"
 msgstr "<key name='%s'> jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:973
+#: ../gio/glib-compile-schemas.c:959
 #, c-format
 msgid ""
 "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2607,65 +2645,75 @@ msgstr ""
 "<key name='%s'>-ek <key name='%s'> iluntzen du <schema id='%s'>-en; erabili "
 "<override> balioa aldatzeko"
 
-#: gio/glib-compile-schemas.c:984
+#: ../gio/glib-compile-schemas.c:970
 #, 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 ""
-"<key>-rentzako hauetariko bat zehaztu behar da atributu gisa: “type“, "
-"“enum“edo “flags“"
+"<key>-rentzako hauetariko bat zehaztu behar da atributu gisa: “type“, “enum“"
+"edo “flags“"
 
-#: gio/glib-compile-schemas.c:1003
+#: ../gio/glib-compile-schemas.c:989
 #, c-format
 msgid "<%s id='%s'> not (yet) defined."
 msgstr "<%s id='%s'> ez dago (oraindik) definituta."
 
-#: gio/glib-compile-schemas.c:1018
+#: ../gio/glib-compile-schemas.c:1004
 #, c-format
+#| msgid "invalid GVariant type string '%s'"
 msgid "Invalid GVariant type string “%s”"
 msgstr "Baliogabeko GVariant motako “%s“ katea"
 
-#: gio/glib-compile-schemas.c:1048
+#: ../gio/glib-compile-schemas.c:1034
+#| msgid "<override> given but schema isn't extending anything"
 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:1061
+#: ../gio/glib-compile-schemas.c:1047
 #, c-format
+#| msgid "no <key name='%s'> to override"
 msgid "No <key name='%s'> to override"
 msgstr "Ez dago <key name='%s'>(e)rik gainidazteko"
 
-#: gio/glib-compile-schemas.c:1069
+#: ../gio/glib-compile-schemas.c:1055
 #, c-format
 msgid "<override name='%s'> already specified"
 msgstr "<override name='%s'> jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:1142
+#: ../gio/glib-compile-schemas.c:1128
 #, c-format
 msgid "<schema id='%s'> already specified"
 msgstr "<schema id='%s'> jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:1154
+#: ../gio/glib-compile-schemas.c:1140
 #, 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'>  oraindik existitzen ez den “%s“ eskema hedatzen du"
 
-#: gio/glib-compile-schemas.c:1170
+#: ../gio/glib-compile-schemas.c:1156
 #, 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'> oraindik existitzen ez den “%s“ eskemaren zerrenda da"
 
-#: gio/glib-compile-schemas.c:1178
+#: ../gio/glib-compile-schemas.c:1164
 #, 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 "Ezin da bide-izena duen eskema baten zerrenda izan"
 
-#: gio/glib-compile-schemas.c:1188
+#: ../gio/glib-compile-schemas.c:1174
 #, c-format
+#| msgid "Can not extend a schema with a path"
 msgid "Cannot extend a schema with a path"
 msgstr "Ezin da eskema bat bide-izen batekin hedatu"
 
-#: gio/glib-compile-schemas.c:1198
+#: ../gio/glib-compile-schemas.c:1184
 #, c-format
 msgid ""
 "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
@@ -2673,8 +2721,11 @@ msgstr ""
 "<schema id='%s'> zerrenda bat da, zerrenda ez den <schema id='%s'> hedatzen "
 "duena"
 
-#: gio/glib-compile-schemas.c:1208
+#: ../gio/glib-compile-schemas.c:1194
 #, 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”"
@@ -2682,157 +2733,142 @@ 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:1225
+#: ../gio/glib-compile-schemas.c:1211
 #, 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 "Bide-izen bat ematen bada, barra batekin (/) hasi eta amaitu behar da"
 
-#: gio/glib-compile-schemas.c:1232
+#: ../gio/glib-compile-schemas.c:1218
 #, c-format
+#| msgid "the path of a list must end with ':/'"
 msgid "The path of a list must end with “:/”"
 msgstr "Zerrenda bateko bide-izena “:/“-rekin amaitu behar da"
 
-#: gio/glib-compile-schemas.c:1241
+#: ../gio/glib-compile-schemas.c:1227
 #, 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."
+"\"/system/\"-ekin "
+"hasten diren bide-izenak zaharkituta daude."
 
-#: gio/glib-compile-schemas.c:1271
+#: ../gio/glib-compile-schemas.c:1257
 #, c-format
 msgid "<%s id='%s'> already specified"
 msgstr "<%s id='%s'> jadanik zehaztuta"
 
-#: gio/glib-compile-schemas.c:1421 gio/glib-compile-schemas.c:1437
+#: ../gio/glib-compile-schemas.c:1407 ../gio/glib-compile-schemas.c:1423
 #, 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:1519
+#: ../gio/glib-compile-schemas.c:1505
 #, c-format
 msgid "Element <%s> not allowed at the top level"
 msgstr "<%s> elementua ez da maila gorenean onartzen"
 
-#: gio/glib-compile-schemas.c:1537
+#: ../gio/glib-compile-schemas.c:1523
 msgid "Element <default> is required in <key>"
 msgstr "<default> elementua behar da <key>-en"
 
-#: gio/glib-compile-schemas.c:1627
+#: ../gio/glib-compile-schemas.c:1613
 #, c-format
+#| msgid "text may not appear inside <%s>"
 msgid "Text may not appear inside <%s>"
 msgstr "Testua ezin da <%s>(r)en barruan egon"
 
-#: gio/glib-compile-schemas.c:1695
+#: ../gio/glib-compile-schemas.c:1681
 #, 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:1834 gio/glib-compile-schemas.c:1910
-#: gio/glib-compile-schemas.c:2025
+#: ../gio/glib-compile-schemas.c:1820 ../gio/glib-compile-schemas.c:1894
+#: ../gio/glib-compile-schemas.c:1970
 #, c-format
 msgid "--strict was specified; exiting.\n"
 msgstr "--strict zehaztu da; irtetzen.\n"
 
-#: gio/glib-compile-schemas.c:1844
+#: ../gio/glib-compile-schemas.c:1830
 #, c-format
 msgid "This entire file has been ignored.\n"
 msgstr "Fitxategi oso honi ezikusi egin zaio.\n"
 
-#: gio/glib-compile-schemas.c:1906
+#: ../gio/glib-compile-schemas.c:1890
 #, c-format
 msgid "Ignoring this file.\n"
 msgstr "Fitxategi honi ezikusi egiten.\n"
 
-#: gio/glib-compile-schemas.c:1959
+#: ../gio/glib-compile-schemas.c:1930
 #, 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”"
+msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
 msgstr ""
-"Ez dago “%s“ bezalako gakorik “%s“ eskeman gainidazteko “%s“ fitxategian "
+"Ez dago '%s' bezalako gakorik '%s' eskeman gainidazteko '%s' fitxategian "
 "ageri den bezala"
 
-#: gio/glib-compile-schemas.c:1965 gio/glib-compile-schemas.c:1990
-#: gio/glib-compile-schemas.c:2050 gio/glib-compile-schemas.c:2079
+#: ../gio/glib-compile-schemas.c:1936 ../gio/glib-compile-schemas.c:1994
+#: ../gio/glib-compile-schemas.c:2022
 #, c-format
 msgid "; ignoring override for this key.\n"
 msgstr "; gainidazketari ezikusi egiten gako honentzako.\n"
 
-#: gio/glib-compile-schemas.c:1969 gio/glib-compile-schemas.c:1994
-#: gio/glib-compile-schemas.c:2054 gio/glib-compile-schemas.c:2083
+#: ../gio/glib-compile-schemas.c:1940 ../gio/glib-compile-schemas.c:1998
+#: ../gio/glib-compile-schemas.c:2026
 #, c-format
 msgid " and --strict was specified; exiting.\n"
 msgstr " eta --strict zehaztu da; irtetzen.\n"
 
-#: gio/glib-compile-schemas.c:1984
+#: ../gio/glib-compile-schemas.c:1956
 #, c-format
 msgid ""
-"cannot provide per-desktop overrides for localised key “%s” in schema "
-"“%s” (override file “%s”)"
+"error parsing key '%s' in schema '%s' as specified in override file '%s': %s."
 msgstr ""
-"ezin da mahaigaineko gainidazketarik eman lokalizatutako “%s“ gakoarentzako "
-"“%s“ eskeman (gainidatzi “%s“ fitxategia)"
-
-#: gio/glib-compile-schemas.c:2011
-#, 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 ""
-"errorea “%2$s“ eskemako “%1$s“ gakoa analizatzean gainidazteko “%3$s“ "
+"errorea '%2$s' eskemako '%1$s' gakoa analizatzean gainidazteko '%3$s' "
 "fitxategian ageri den bezala: %4$s."
 
-#: gio/glib-compile-schemas.c:2021
+#: ../gio/glib-compile-schemas.c:1966
 #, c-format
 msgid "Ignoring override for this key.\n"
 msgstr "Gainidazketari ezikusi egiten gako honentzako.\n"
 
-#: gio/glib-compile-schemas.c:2040
+#: ../gio/glib-compile-schemas.c:1984
 #, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is outside the "
-#| "range given in the schema"
 msgid ""
-"override for key “%s” in schema “%s” in override file “%s” is outside the "
+"override for key '%s' in schema '%s' in override file '%s' is outside the "
 "range given in the schema"
 msgstr ""
-"gainidazteko “%3$s“ fitxategiko “%2$s“ eskemako “%1$s“ gakoa gainidaztea "
+"gainidazteko '%3$s' fitxategiko '%2$s' eskemako '%1$s' gakoa gainidaztea "
 "barrutitik kanpo dago emandako eskeman"
 
-#: gio/glib-compile-schemas.c:2069
+#: ../gio/glib-compile-schemas.c:2012
 #, 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 "
+"override for key '%s' in schema '%s' in override file '%s' is not in the "
 "list of valid choices"
 msgstr ""
-"gainidazteko “%3$s“ fitxategiko “%2$s“ eskemako “%1$s“ gakoa gainidaztea ez "
+"gainidazteko '%3$s' fitxategiko '%2$s' eskemako '%1$s' gakoa gainidaztea ez "
 "dago baliozko aukeren zerrendan"
 
-#: gio/glib-compile-schemas.c:2140
+#: ../gio/glib-compile-schemas.c:2068
 msgid "where to store the gschemas.compiled file"
 msgstr "non gorde gschemas.compiled fitxategia"
 
-#: gio/glib-compile-schemas.c:2141
+#: ../gio/glib-compile-schemas.c:2069
 msgid "Abort on any errors in schemas"
 msgstr "Abortatu eskemetan edozer motako erroreak agertzean"
 
-#: gio/glib-compile-schemas.c:2142
+#: ../gio/glib-compile-schemas.c:2070
 msgid "Do not write the gschema.compiled file"
 msgstr "Ez idatzi gschema.compiled fitxategia"
 
-#: gio/glib-compile-schemas.c:2143
+#: ../gio/glib-compile-schemas.c:2071
 msgid "Do not enforce key name restrictions"
 msgstr "Ez derrigortu gako-izenen murriztapenik"
 
-#: gio/glib-compile-schemas.c:2172
+#: ../gio/glib-compile-schemas.c:2099
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
@@ -2842,33 +2878,33 @@ msgstr ""
 "Eskemen fitxategiek .gschema.xml luzapena eduki behar dute,\n"
 "eta cache-ko fitxategia gschemas.compiled deitzen da."
 
-#: gio/glib-compile-schemas.c:2193
+#: ../gio/glib-compile-schemas.c:2120
 #, c-format
 msgid "You should give exactly one directory name\n"
 msgstr "Direktorio baten izena bakarrik eman behar duzu\n"
 
-#: gio/glib-compile-schemas.c:2235
+#: ../gio/glib-compile-schemas.c:2162
 #, c-format
 msgid "No schema files found: "
 msgstr "Ez da eskemen fitxategirik aurkitu: "
 
-#: gio/glib-compile-schemas.c:2238
+#: ../gio/glib-compile-schemas.c:2165
 #, c-format
 msgid "doing nothing.\n"
 msgstr "ezer ez da egiten ari.\n"
 
-#: gio/glib-compile-schemas.c:2241
+#: ../gio/glib-compile-schemas.c:2168
 #, c-format
 msgid "removed existing output file.\n"
 msgstr "existitzen den irteerako fitxategia kenduta.\n"
 
 #
-#: gio/glocalfile.c:544 gio/win32/gwinhttpfile.c:420
+#: ../gio/glocalfile.c:643 ../gio/win32/gwinhttpfile.c:420
 #, c-format
 msgid "Invalid filename %s"
 msgstr "%s fitxategi-izen baliogabea"
 
-#: gio/glocalfile.c:1011
+#: ../gio/glocalfile.c:1037
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr "Errorea %s(r)en fitxategi-sistemako informazioa lortzean: %s"
@@ -2877,324 +2913,316 @@ msgstr "Errorea %s(r)en fitxategi-sistemako informazioa lortzean: %s"
 #. * the enclosing (user visible) mount of a file, but none
 #. * exists.
 #.
-#: gio/glocalfile.c:1150
+#: ../gio/glocalfile.c:1176
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr "Ez da %s fitxategiaren muntai-puntua aurkitzen"
 
-#: gio/glocalfile.c:1173
+#: ../gio/glocalfile.c:1199
 msgid "Can’t rename root directory"
 msgstr "Ezin da erroko direktorioa izenez aldatu"
 
-#: gio/glocalfile.c:1191 gio/glocalfile.c:1214
+#: ../gio/glocalfile.c:1217 ../gio/glocalfile.c:1240
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr "Errorea '%s' fitxategia izenez aldatzean: %s"
 
-#: gio/glocalfile.c:1198
+#: ../gio/glocalfile.c:1224
 msgid "Can’t rename file, filename already exists"
 msgstr "Ezin da fitxategia izenez aldatu, fitxategi-izena badago lehendik ere"
 
 #
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2275 gio/glocalfile.c:2303
-#: gio/glocalfile.c:2460 gio/glocalfileoutputstream.c:551
+#: ../gio/glocalfile.c:1237 ../gio/glocalfile.c:2253 ../gio/glocalfile.c:2281
+#: ../gio/glocalfile.c:2438 ../gio/glocalfileoutputstream.c:549
 msgid "Invalid filename"
 msgstr "Fitxategi-izen baliogabea"
 
-#: gio/glocalfile.c:1379 gio/glocalfile.c:1394
+#: ../gio/glocalfile.c:1404 ../gio/glocalfile.c:1419
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Errorea '%s' fitxategia irekitzean: %s"
 
-#: gio/glocalfile.c:1519
+#: ../gio/glocalfile.c:1544
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Errorea '%s' fitxategia kentzean: %s"
 
-#: gio/glocalfile.c:1916
+#: ../gio/glocalfile.c:1928
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Errorea '%s' fitxategia zakarrontzira botatzean: %s"
 
-#: gio/glocalfile.c:1957
+#: ../gio/glocalfile.c:1951
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Ezin izan da zakarrontziaren '%s' direktorioa sortu: %s"
 
-#: gio/glocalfile.c:1978
+#: ../gio/glocalfile.c:1971
 #, c-format
 msgid "Unable to find toplevel directory to trash %s"
 msgstr "Ezin da '%s' zakarrontziaren goi-mailako direktorioa aurkitu"
 
-#: gio/glocalfile.c:1987
-#, c-format
-#| msgid "Copy (reflink/clone) between mounts is not supported"
-msgid "Trashing on system internal mounts is not supported"
-msgstr ""
-"Sistemaren barneko muntaietan zakarrontzira botatzea "
-"ez dago onartuta"
-
-#: gio/glocalfile.c:2071 gio/glocalfile.c:2091
+#: ../gio/glocalfile.c:2050 ../gio/glocalfile.c:2070
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Ezin da '%s' zakarrontziaren direktorioa aurkitu edo sortu"
 
-#: gio/glocalfile.c:2126
+#: ../gio/glocalfile.c:2105
 #, c-format
 msgid "Unable to create trashing info file for %s: %s"
 msgstr "Ezin da '%s' fitxategiaren zakarrontzi-informazioa sortu: %s"
 
-#: gio/glocalfile.c:2186
+#: ../gio/glocalfile.c:2164
 #, c-format
 msgid "Unable to trash file %s across filesystem boundaries"
 msgstr "Ezin da '%s' fitxategia fitxategi-sistemen arteko zakarrontzira bota"
 
-#: gio/glocalfile.c:2190 gio/glocalfile.c:2246
+#: ../gio/glocalfile.c:2168 ../gio/glocalfile.c:2224
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Ezin da '%s' fitxategia zakarrontzira bota: %s"
 
-#: gio/glocalfile.c:2252
+#: ../gio/glocalfile.c:2230
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Ezin da '%s' fitxategia zakarrontzira bota"
 
-#: gio/glocalfile.c:2278
+#: ../gio/glocalfile.c:2256
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Errorea '%s' direktorioa sortzean: %s"
 
-#: gio/glocalfile.c:2307
+#: ../gio/glocalfile.c:2285
 #, c-format
 msgid "Filesystem does not support symbolic links"
 msgstr "Fitxategi-sistemak ez ditu esteka sinbolikorik onartzen"
 
-#: gio/glocalfile.c:2310
+#: ../gio/glocalfile.c:2288
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Errorea '%s' esteka sinbolikoa sortzean: %s"
 
-#: gio/glocalfile.c:2316 glib/gfileutils.c:2138
+#: ../gio/glocalfile.c:2294 ../glib/gfileutils.c:2077
 msgid "Symbolic links not supported"
 msgstr "Esteka sinbolikoak ez dira onartzen"
 
-#: gio/glocalfile.c:2371 gio/glocalfile.c:2406 gio/glocalfile.c:2463
+#: ../gio/glocalfile.c:2349 ../gio/glocalfile.c:2384 ../gio/glocalfile.c:2441
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Errorea '%s' fitxategia lekuz aldatzean: %s"
 
-#: gio/glocalfile.c:2394
+#: ../gio/glocalfile.c:2372
 msgid "Can’t move directory over directory"
 msgstr "Ezin da direktorioa lekuz aldatu direktorioaren gainera"
 
-#: gio/glocalfile.c:2420 gio/glocalfileoutputstream.c:935
-#: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
-#: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
+#: ../gio/glocalfile.c:2398 ../gio/glocalfileoutputstream.c:933
+#: ../gio/glocalfileoutputstream.c:947 ../gio/glocalfileoutputstream.c:962
+#: ../gio/glocalfileoutputstream.c:979 ../gio/glocalfileoutputstream.c:993
 msgid "Backup file creation failed"
 msgstr "Huts egin du babeskopia sortzean"
 
-#: gio/glocalfile.c:2439
+#: ../gio/glocalfile.c:2417
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Errorea helburuko fitxategia kentzean: %s"
 
-#: gio/glocalfile.c:2453
+#: ../gio/glocalfile.c:2431
 msgid "Move between mounts not supported"
 msgstr "Muntaien artean lekuz aldatzea ez dago onartuta"
 
-#: gio/glocalfile.c:2644
+#: ../gio/glocalfile.c:2622
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Ezin izan da '%s' diskoaren erabilpena zehaztu: %s"
 
-#: gio/glocalfileinfo.c:745
+#: ../gio/glocalfileinfo.c:731
 msgid "Attribute value must be non-NULL"
 msgstr "Atributuaren balioa NULL ezin da izan"
 
-#: gio/glocalfileinfo.c:752
+#: ../gio/glocalfileinfo.c:738
 msgid "Invalid attribute type (string expected)"
 msgstr "Atributu mota baliogabea (katea espero zen)"
 
-#: gio/glocalfileinfo.c:759
+#: ../gio/glocalfileinfo.c:745
 msgid "Invalid extended attribute name"
 msgstr "Atributu hedatuaren izen baliogabea"
 
-#: gio/glocalfileinfo.c:799
+#: ../gio/glocalfileinfo.c:785
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Errorea “%s“ atributu hedatua ezartzean: %s"
 
-#: gio/glocalfileinfo.c:1625
+#: ../gio/glocalfileinfo.c:1586
 msgid " (invalid encoding)"
 msgstr " (baliogabeko kodeketa)"
 
-#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
+#: ../gio/glocalfileinfo.c:1777 ../gio/glocalfileoutputstream.c:811
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Errorea “'%s“ fitxategiaren informazioa eskuratzean: %s"
 
-#: gio/glocalfileinfo.c:2053
+#: ../gio/glocalfileinfo.c:2028
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Errorea fitxategiaren deskriptorearen informazioa irakurtzean: %s "
 
-#: gio/glocalfileinfo.c:2098
+#: ../gio/glocalfileinfo.c:2073
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Baliogabeko atributu mota (uint32 espero zen)"
 
-#: gio/glocalfileinfo.c:2116
+#: ../gio/glocalfileinfo.c:2091
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Baliogabeko atributu mota (uint64 espero zen)"
 
-#: gio/glocalfileinfo.c:2135 gio/glocalfileinfo.c:2154
+#: ../gio/glocalfileinfo.c:2110 ../gio/glocalfileinfo.c:2129
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Baliogabeko atributu mota (byte katea espero zen)"
 
-#: gio/glocalfileinfo.c:2201
+#: ../gio/glocalfileinfo.c:2164
 msgid "Cannot set permissions on symlinks"
 msgstr "Ezin da baimenik ezarri esteka sinbolikoetan"
 
-#: gio/glocalfileinfo.c:2217
+#: ../gio/glocalfileinfo.c:2180
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Errorea baimenak ezartzean: %s"
 
-#: gio/glocalfileinfo.c:2268
+#: ../gio/glocalfileinfo.c:2231
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Errorea jabea ezartzean: %s"
 
-#: gio/glocalfileinfo.c:2291
+#: ../gio/glocalfileinfo.c:2254
 msgid "symlink must be non-NULL"
 msgstr "esteka sinbolikoak NULL-en desberdina izan behar du"
 
-#: gio/glocalfileinfo.c:2301 gio/glocalfileinfo.c:2320
-#: gio/glocalfileinfo.c:2331
+#: ../gio/glocalfileinfo.c:2264 ../gio/glocalfileinfo.c:2283
+#: ../gio/glocalfileinfo.c:2294
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Errorea esteka sinbolikoa ezartzean: %s"
 
-#: gio/glocalfileinfo.c:2310
+#: ../gio/glocalfileinfo.c:2273
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Errorea esteka sinbolikoa ezartzean: fitxategia ez da esteka sinboliko bat"
 
-#: gio/glocalfileinfo.c:2436
+#: ../gio/glocalfileinfo.c:2399
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Errorea eraldaketa edo atzipen ordua ezartzean: %s"
 
-#: gio/glocalfileinfo.c:2459
+#: ../gio/glocalfileinfo.c:2422
 msgid "SELinux context must be non-NULL"
 msgstr "SELinux testuinguruak NULL-en desberdina izan behar du"
 
-#: gio/glocalfileinfo.c:2474
+#: ../gio/glocalfileinfo.c:2437
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Errorea SELinux testuingurua ezartzean: %s"
 
-#: gio/glocalfileinfo.c:2481
+#: ../gio/glocalfileinfo.c:2444
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux ez dago gaituta sistema honetan"
 
-#: gio/glocalfileinfo.c:2573
+#: ../gio/glocalfileinfo.c:2536
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "%s atributuaren ezarpena ez dago onartuta"
 
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:696
+#: ../gio/glocalfileinputstream.c:168 ../gio/glocalfileoutputstream.c:694
 #, c-format
 msgid "Error reading from file: %s"
 msgstr "Errorea fitxategitik irakurtzean: %s "
 
-#: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
-#: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:458 gio/glocalfileoutputstream.c:1013
+#: ../gio/glocalfileinputstream.c:199 ../gio/glocalfileinputstream.c:211
+#: ../gio/glocalfileinputstream.c:225 ../gio/glocalfileinputstream.c:333
+#: ../gio/glocalfileoutputstream.c:456 ../gio/glocalfileoutputstream.c:1011
 #, c-format
 msgid "Error seeking in file: %s"
 msgstr "Errorea fitxategian bilatzean: %s"
 
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:248
-#: gio/glocalfileoutputstream.c:342
+#: ../gio/glocalfileinputstream.c:255 ../gio/glocalfileoutputstream.c:246
+#: ../gio/glocalfileoutputstream.c:340
 #, c-format
 msgid "Error closing file: %s"
 msgstr "Errorea fitxategia ixtean: %s"
 
-#: gio/glocalfilemonitor.c:854
+#: ../gio/glocalfilemonitor.c:840
 msgid "Unable to find default local file monitor type"
 msgstr "Ezin da lokaleko fitxategi lehenetsiaren monitorizazio mota aurkitu"
 
-#: gio/glocalfileoutputstream.c:196 gio/glocalfileoutputstream.c:228
-#: gio/glocalfileoutputstream.c:717
+#: ../gio/glocalfileoutputstream.c:194 ../gio/glocalfileoutputstream.c:226
+#: ../gio/glocalfileoutputstream.c:715
 #, c-format
 msgid "Error writing to file: %s"
 msgstr "Errorea fitxategian idaztean: %s"
 
-#: gio/glocalfileoutputstream.c:275
+#: ../gio/glocalfileoutputstream.c:273
 #, c-format
 msgid "Error removing old backup link: %s"
 msgstr "Errorea babeskopiaren esteka zaharra kentzean: %s"
 
-#: gio/glocalfileoutputstream.c:289 gio/glocalfileoutputstream.c:302
+#: ../gio/glocalfileoutputstream.c:287 ../gio/glocalfileoutputstream.c:300
 #, c-format
 msgid "Error creating backup copy: %s"
 msgstr "Errorea babeskopiaren kopia sortzean: %s"
 
-#: gio/glocalfileoutputstream.c:320
+#: ../gio/glocalfileoutputstream.c:318
 #, c-format
 msgid "Error renaming temporary file: %s"
 msgstr "Errorea aldi baterako fitxategia izenez aldatzean: %s"
 
-#: gio/glocalfileoutputstream.c:504 gio/glocalfileoutputstream.c:1064
+#: ../gio/glocalfileoutputstream.c:502 ../gio/glocalfileoutputstream.c:1062
 #, c-format
 msgid "Error truncating file: %s"
 msgstr "Errorea fitxategia trunkatzean: %s"
 
-#: gio/glocalfileoutputstream.c:557 gio/glocalfileoutputstream.c:795
-#: gio/glocalfileoutputstream.c:1045 gio/gsubprocess.c:380
+#: ../gio/glocalfileoutputstream.c:555 ../gio/glocalfileoutputstream.c:793
+#: ../gio/glocalfileoutputstream.c:1043 ../gio/gsubprocess.c:380
 #, c-format
 msgid "Error opening file “%s”: %s"
 msgstr "Errorea “%s“ fitxategia irekitzean: %s"
 
-#: gio/glocalfileoutputstream.c:826
+#: ../gio/glocalfileoutputstream.c:824
 msgid "Target file is a directory"
 msgstr "Helburuko fitxategia direktorio bat da"
 
-#: gio/glocalfileoutputstream.c:831
+#: ../gio/glocalfileoutputstream.c:829
 msgid "Target file is not a regular file"
 msgstr "Helburuko fitxategia ez da fitxategi arrunta"
 
-#: gio/glocalfileoutputstream.c:843
+#: ../gio/glocalfileoutputstream.c:841
 msgid "The file was externally modified"
 msgstr "Fitxategia kanpotik aldatu da"
 
-#: gio/glocalfileoutputstream.c:1029
+#: ../gio/glocalfileoutputstream.c:1027
 #, c-format
 msgid "Error removing old file: %s"
 msgstr "Errorea fitxategi zaharra kentzean: %s"
 
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
+#: ../gio/gmemoryinputstream.c:474 ../gio/gmemoryoutputstream.c:772
 msgid "Invalid GSeekType supplied"
 msgstr "Baliogabeko GSeekType eman da"
 
 #
-#: gio/gmemoryinputstream.c:484
+#: ../gio/gmemoryinputstream.c:484
 msgid "Invalid seek request"
 msgstr "Bilaketa-eskaera baliogabea"
 
-#: gio/gmemoryinputstream.c:508
+#: ../gio/gmemoryinputstream.c:508
 msgid "Cannot truncate GMemoryInputStream"
 msgstr "Ezin da GMemoryInputStream trunkatu"
 
-#: gio/gmemoryoutputstream.c:567
+#: ../gio/gmemoryoutputstream.c:567
 msgid "Memory output stream not resizable"
 msgstr "Ezin da memoriaren irteeraren korrontea tamainaz aldatu"
 
-#: gio/gmemoryoutputstream.c:583
+#: ../gio/gmemoryoutputstream.c:583
 msgid "Failed to resize memory output stream"
 msgstr "Huts egin du memoriaren irteeraren korrontea tamainaz aldatzean"
 
-#: gio/gmemoryoutputstream.c:673
+#: ../gio/gmemoryoutputstream.c:673
 msgid ""
 "Amount of memory required to process the write is larger than available "
 "address space"
@@ -3202,32 +3230,32 @@ msgstr ""
 "Idazketa lantzeko behar den memoria kopurua erabilgarri dagoen helbide-"
 "espazioa baino handiagoa da"
 
-#: gio/gmemoryoutputstream.c:782
+#: ../gio/gmemoryoutputstream.c:782
 msgid "Requested seek before the beginning of the stream"
 msgstr "Bilaketa eskatu da korrontearen hasieraren aurretik"
 
-#: gio/gmemoryoutputstream.c:797
+#: ../gio/gmemoryoutputstream.c:797
 msgid "Requested seek beyond the end of the stream"
 msgstr "Bilaketa eskatu da korrontearen amaieraren ondoren"
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement unmount.
-#: gio/gmount.c:399
+#: ../gio/gmount.c:393
 msgid "mount doesn’t implement “unmount”"
 msgstr "muntaiak ez dauka “unmount“ (desmuntatu) inplementatuta"
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement eject.
-#: gio/gmount.c:475
+#: ../gio/gmount.c:469
 msgid "mount doesn’t implement “eject”"
 msgstr "muntaiak ez dauka “eject“ (egotzi) inplementatuta"
 
 #. 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:547
 msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
 msgstr ""
 "muntaiak ez dauka “unmount“ (desmuntatzea) edo "
@@ -3236,7 +3264,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:632
 msgid "mount doesn’t implement “eject” or “eject_with_operation”"
 msgstr ""
 "muntaiak ez dauka “eject“ (egotzi) edo “eject_with_operation“ (egotzi "
@@ -3245,101 +3273,97 @@ msgstr ""
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement remount.
-#: gio/gmount.c:726
+#: ../gio/gmount.c:720
 msgid "mount doesn’t implement “remount”"
 msgstr "muntaiak ez dauka “remount“ (birmuntaketa) inplementatuta"
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement content type guessing.
-#: gio/gmount.c:808
+#: ../gio/gmount.c:802
 msgid "mount doesn’t implement content type guessing"
 msgstr "muntaiak ez dauka eduki mota sinkronoa asmatzea inplementatuta"
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement content type guessing.
-#: gio/gmount.c:895
+#: ../gio/gmount.c:889
 msgid "mount doesn’t implement synchronous content type guessing"
 msgstr "muntaiak ez dauka eduki mota sinkronoa asmatzea inplementatuta"
 
-#: gio/gnetworkaddress.c:378
+#: ../gio/gnetworkaddress.c:378
 #, c-format
 msgid "Hostname “%s” contains “[” but not “]”"
 msgstr "“%s“ ostalariak “[“dauka, baina ez “]“"
 
-#: gio/gnetworkmonitorbase.c:211 gio/gnetworkmonitorbase.c:315
+#: ../gio/gnetworkmonitorbase.c:206 ../gio/gnetworkmonitorbase.c:310
 msgid "Network unreachable"
 msgstr "Sarea atziezina"
 
-#: gio/gnetworkmonitorbase.c:249 gio/gnetworkmonitorbase.c:279
+#: ../gio/gnetworkmonitorbase.c:244 ../gio/gnetworkmonitorbase.c:274
 msgid "Host unreachable"
 msgstr "Ostalaria atziezina"
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
+#: ../gio/gnetworkmonitornetlink.c:96 ../gio/gnetworkmonitornetlink.c:108
+#: ../gio/gnetworkmonitornetlink.c:127
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr "Ezin izan da sareko monitorea sortu: %s"
 
-#: gio/gnetworkmonitornetlink.c:118
+#: ../gio/gnetworkmonitornetlink.c:117
 msgid "Could not create network monitor: "
 msgstr "Ezin izan da sareko monitorea sortu: "
 
-#: gio/gnetworkmonitornetlink.c:176
+#: ../gio/gnetworkmonitornetlink.c:175
 msgid "Could not get network status: "
 msgstr "Ezin izan da sarearen egoera eskuratu: "
 
-#: gio/gnetworkmonitornm.c:322
+#: ../gio/gnetworkmonitornm.c:329
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "NetworkManager-en bertsioa zaharregia"
 
-#: gio/goutputstream.c:212 gio/goutputstream.c:560
+#: ../gio/goutputstream.c:212 ../gio/goutputstream.c:560
 msgid "Output stream doesn’t implement write"
 msgstr "Irteerako korronteak ez dauka idaztea inplementatuta"
 
-#: gio/goutputstream.c:521 gio/goutputstream.c:1224
+#: ../gio/goutputstream.c:521 ../gio/goutputstream.c:1224
 msgid "Source stream is already closed"
 msgstr "Iturburuko korrontea jadanik itxi da"
 
-#: gio/gresolver.c:342 gio/gthreadedresolver.c:116 gio/gthreadedresolver.c:126
+#: ../gio/gresolver.c:342 ../gio/gthreadedresolver.c:116
+#: ../gio/gthreadedresolver.c:126
 #, c-format
 msgid "Error resolving “%s”: %s"
 msgstr "Errorea “%s“ ebaztean: %s"
 
-#: gio/gresolver.c:729 gio/gresolver.c:781
-#| msgid "Invalid hostname"
-msgid "Invalid domain"
-msgstr "Domeinu baliogabea"
-
-#: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
-#: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
-#: gio/gresource.c:1281 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: ../gio/gresource.c:606 ../gio/gresource.c:857 ../gio/gresource.c:874
+#: ../gio/gresource.c:998 ../gio/gresource.c:1070 ../gio/gresource.c:1143
+#: ../gio/gresource.c:1213 ../gio/gresourcefile.c:453
+#: ../gio/gresourcefile.c:576 ../gio/gresourcefile.c:713
 #, c-format
 msgid "The resource at “%s” does not exist"
 msgstr "“%s“(e)ko baliabidea ez da existitzen"
 
-#: gio/gresource.c:809
+#: ../gio/gresource.c:771
 #, c-format
 msgid "The resource at “%s” failed to decompress"
 msgstr "Huts egin du “%s“(e)ko baliabidea deskonprimitzean"
 
-#: gio/gresourcefile.c:732
+#: ../gio/gresourcefile.c:709
 #, c-format
 msgid "The resource at “%s” is not a directory"
 msgstr "“%s“(e)ko baliabidea ez da direktorio bat"
 
-#: gio/gresourcefile.c:940
+#: ../gio/gresourcefile.c:917
 msgid "Input stream doesn’t implement seek"
 msgstr "Sarrerako korronteak ez dauka bilaketa inplementatuta"
 
-#: gio/gresource-tool.c:501
+#: ../gio/gresource-tool.c:494
 msgid "List sections containing resources in an elf FILE"
 msgstr "Zerrendatu baliabideak dituzten atalak elf fitxategi batean"
 
-#: gio/gresource-tool.c:507
+#: ../gio/gresource-tool.c:500
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3349,15 +3373,16 @@ msgstr ""
 "ATALA ematen bada, soilik atal honetako baliabideak zerrendatu\n"
 "BIDE-IZENA ematen bada, bat datozen baliabideak soilik zerrendatu"
 
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520
+#: ../gio/gresource-tool.c:503 ../gio/gresource-tool.c:513
 msgid "FILE [PATH]"
 msgstr "FITXATEGIA [BIDE-IZENA]"
 
-#: gio/gresource-tool.c:511 gio/gresource-tool.c:521 gio/gresource-tool.c:528
+#: ../gio/gresource-tool.c:504 ../gio/gresource-tool.c:514
+#: ../gio/gresource-tool.c:521
 msgid "SECTION"
 msgstr "ATALA"
 
-#: gio/gresource-tool.c:516
+#: ../gio/gresource-tool.c:509
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3369,15 +3394,15 @@ msgstr ""
 "BIDE-IZENA ematen bada, bat datozen baliabideak soilik zerrendatu\n"
 "Xehetasunek atala, tamaina eta konpresioa daukate"
 
-#: gio/gresource-tool.c:526
+#: ../gio/gresource-tool.c:519
 msgid "Extract a resource file to stdout"
 msgstr "Erauzi baliabidearen fitxategia irteera estandarrean (stdout)"
 
-#: gio/gresource-tool.c:527
+#: ../gio/gresource-tool.c:520
 msgid "FILE PATH"
 msgstr "FITXATEGIA BIDE-IZENA"
 
-#: gio/gresource-tool.c:541
+#: ../gio/gresource-tool.c:534
 msgid ""
 "Usage:\n"
 "  gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3405,7 +3430,7 @@ msgstr ""
 "Erabili “gresource help KOMANDOA“ laguntza xehea eskuratzeko.\n"
 "\n"
 
-#: gio/gresource-tool.c:555
+#: ../gio/gresource-tool.c:548
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3420,20 +3445,20 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gresource-tool.c:562
+#: ../gio/gresource-tool.c:555
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr "  ATALA   elf atalaren izena (aukerakoa)\n"
 
-#: gio/gresource-tool.c:566 gio/gsettings-tool.c:703
+#: ../gio/gresource-tool.c:559 ../gio/gsettings-tool.c:656
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr "  KOMANDOA   (aukerako) komandoa deskribatzeko\n"
 
-#: gio/gresource-tool.c:572
+#: ../gio/gresource-tool.c:565
 msgid "  FILE      An elf file (a binary or a shared library)\n"
 msgstr ""
 "  FITXATEGIA      Elf fitxategia (bitarra edo partekatutako liburutegia)\n"
 
-#: gio/gresource-tool.c:575
+#: ../gio/gresource-tool.c:568
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
@@ -3441,84 +3466,92 @@ msgstr ""
 "  FITXATEGIA      Elf fitxategia (bitarra edo partekatutako liburutegia)\n"
 "                        edo konpilatutako baliabidearen fitxategi bat\n"
 
-#: gio/gresource-tool.c:579
+#: ../gio/gresource-tool.c:572
 msgid "[PATH]"
 msgstr "[BIDE-IZENA]"
 
-#: gio/gresource-tool.c:581
+#: ../gio/gresource-tool.c:574
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr ""
 "  BIDE-IZENA      (aukerakoa) baliabidearen bide-izena (partziala izan "
 "daiteke)\n"
 
-#: gio/gresource-tool.c:582
+#: ../gio/gresource-tool.c:575
 msgid "PATH"
 msgstr "BIDE-IZENA"
 
-#: gio/gresource-tool.c:584
+#: ../gio/gresource-tool.c:577
 msgid "  PATH      A resource path\n"
 msgstr "  BIDE-IZENA      Baliabidearen bide-izena\n"
 
-#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:908
+#: ../gio/gsettings-tool.c:51 ../gio/gsettings-tool.c:72
+#: ../gio/gsettings-tool.c:853
 #, c-format
 msgid "No such schema “%s”\n"
 msgstr "Ez dago “%s“ bezalako eskemarik\n"
 
-#: gio/gsettings-tool.c:57
+#: ../gio/gsettings-tool.c:57
 #, c-format
 msgid "Schema “%s” is not relocatable (path must not be specified)\n"
 msgstr "“%s“ eskema ezin da lekuz aldatu (bide-izena ez da zehaztu behar)\n"
 
-#: gio/gsettings-tool.c:78
+#: ../gio/gsettings-tool.c:78
 #, c-format
 msgid "Schema “%s” is relocatable (path must be specified)\n"
 msgstr "“%s“ eskema lekuz alda daiteke (bide-izena zehaztu behar da)\n"
 
-#: gio/gsettings-tool.c:92
+#: ../gio/gsettings-tool.c:92
+#, c-format
 msgid "Empty path given.\n"
 msgstr "Bide-izen hutsa eman da.\n"
 
-#: gio/gsettings-tool.c:98
+#: ../gio/gsettings-tool.c:98
+#, c-format
 msgid "Path must begin with a slash (/)\n"
 msgstr "Bide-izena barra batekin (/) hasi behar da\n"
 
-#: gio/gsettings-tool.c:104
+#: ../gio/gsettings-tool.c:104
+#, c-format
 msgid "Path must end with a slash (/)\n"
 msgstr "Bide-izena barra batekin (/) amaitu behar da\n"
 
-#: gio/gsettings-tool.c:110
+#: ../gio/gsettings-tool.c:110
+#, c-format
 msgid "Path must not contain two adjacent slashes (//)\n"
 msgstr "Bide-izenak ezin ditu bi barra jarraian eduki (//)\n"
 
-#: gio/gsettings-tool.c:538
+#: ../gio/gsettings-tool.c:491
+#, c-format
 msgid "The provided value is outside of the valid range\n"
 msgstr "Emandako balioa baliozko barrutitik kanpo dago\n"
 
-#: gio/gsettings-tool.c:545
+#: ../gio/gsettings-tool.c:498
+#, c-format
 msgid "The key is not writable\n"
 msgstr "Gakoa ez da idazgarria\n"
 
-#: gio/gsettings-tool.c:581
+#: ../gio/gsettings-tool.c:534
 msgid "List the installed (non-relocatable) schemas"
 msgstr "Zerrendatu instalatutako eskemak (lekuz ezin direnak aldatu)"
 
-#: gio/gsettings-tool.c:587
+#: ../gio/gsettings-tool.c:540
 msgid "List the installed relocatable schemas"
 msgstr "Zerrendatu instalatutako eskemak (lekuz alda daitezkeenak)"
 
-#: gio/gsettings-tool.c:593
+#: ../gio/gsettings-tool.c:546
 msgid "List the keys in SCHEMA"
 msgstr "Zerrendatu ESKEMAko gakoak"
 
-#: gio/gsettings-tool.c:594 gio/gsettings-tool.c:600 gio/gsettings-tool.c:643
+#: ../gio/gsettings-tool.c:547 ../gio/gsettings-tool.c:553
+#: ../gio/gsettings-tool.c:596
 msgid "SCHEMA[:PATH]"
 msgstr "ESKEMA[:bide-izena]"
 
-#: gio/gsettings-tool.c:599
+#: ../gio/gsettings-tool.c:552
 msgid "List the children of SCHEMA"
 msgstr "Zerrendatu ESKEMAren umeak"
 
-#: gio/gsettings-tool.c:605
+#: ../gio/gsettings-tool.c:558
 msgid ""
 "List keys and values, recursively\n"
 "If no SCHEMA is given, list all keys\n"
@@ -3526,48 +3559,49 @@ msgstr ""
 "Zerrendatu gako eta balioak, errekurtsiboki\n"
 "Ez bada ESKEMArik ematen, zerrendatu gako guztiak\n"
 
-#: gio/gsettings-tool.c:607
+#: ../gio/gsettings-tool.c:560
 msgid "[SCHEMA[:PATH]]"
 msgstr "[ESKEMA[:BIDE-IZENA]]"
 
-#: gio/gsettings-tool.c:612
+#: ../gio/gsettings-tool.c:565
 msgid "Get the value of KEY"
 msgstr "Lortu GAKOAren balioa"
 
-#: gio/gsettings-tool.c:613 gio/gsettings-tool.c:619 gio/gsettings-tool.c:625
-#: gio/gsettings-tool.c:637 gio/gsettings-tool.c:649
+#: ../gio/gsettings-tool.c:566 ../gio/gsettings-tool.c:572
+#: ../gio/gsettings-tool.c:578 ../gio/gsettings-tool.c:590
+#: ../gio/gsettings-tool.c:602
 msgid "SCHEMA[:PATH] KEY"
 msgstr "ESKEMA[:BIDE-IZENA] GAKOA"
 
-#: gio/gsettings-tool.c:618
+#: ../gio/gsettings-tool.c:571
 msgid "Query the range of valid values for KEY"
 msgstr "Kontsultatu GAKOAren baliozko balioen barrutiari buruz"
 
-#: gio/gsettings-tool.c:624
+#: ../gio/gsettings-tool.c:577
 msgid "Query the description for KEY"
 msgstr "Kontsultatu GAKOAren azalpena"
 
-#: gio/gsettings-tool.c:630
+#: ../gio/gsettings-tool.c:583
 msgid "Set the value of KEY to VALUE"
 msgstr "Ezarri GAKOAren balioa BALIOArekin"
 
-#: gio/gsettings-tool.c:631
+#: ../gio/gsettings-tool.c:584
 msgid "SCHEMA[:PATH] KEY VALUE"
 msgstr "ESKEMA[:BIDE-IZENA] GAKOA BALIOA"
 
-#: gio/gsettings-tool.c:636
+#: ../gio/gsettings-tool.c:589
 msgid "Reset KEY to its default value"
 msgstr "Berrezarri GAKOA bere balio lehenetsira"
 
-#: gio/gsettings-tool.c:642
+#: ../gio/gsettings-tool.c:595
 msgid "Reset all keys in SCHEMA to their defaults"
 msgstr "Berrezarri ESKEMAko gako guztiak beraien balio lehenetsietara"
 
-#: gio/gsettings-tool.c:648
+#: ../gio/gsettings-tool.c:601
 msgid "Check if KEY is writable"
 msgstr "Begiratu GAKOA idazgarria den edo ez"
 
-#: gio/gsettings-tool.c:654
+#: ../gio/gsettings-tool.c:607
 msgid ""
 "Monitor KEY for changes.\n"
 "If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3577,11 +3611,11 @@ msgstr ""
 "Ez bada GAKOA zehazten, ESKEMAko gako guztiak monitorizatuko ditu.\n"
 "Erabili ^C monitorizazioa gelditzeko.\n"
 
-#: gio/gsettings-tool.c:657
+#: ../gio/gsettings-tool.c:610
 msgid "SCHEMA[:PATH] [KEY]"
 msgstr "ESKEMA[:BIDE-IZENA] GAKOA"
 
-#: gio/gsettings-tool.c:669
+#: ../gio/gsettings-tool.c:622
 msgid ""
 "Usage:\n"
 "  gsettings --version\n"
@@ -3631,7 +3665,7 @@ msgstr ""
 "Erabili “gsettings help KOMANDOA“ laguntza xehea lortzeko.\n"
 "\n"
 
-#: gio/gsettings-tool.c:693
+#: ../gio/gsettings-tool.c:646
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3646,11 +3680,11 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gsettings-tool.c:699
+#: ../gio/gsettings-tool.c:652
 msgid "  SCHEMADIR A directory to search for additional schemas\n"
 msgstr "  ESKEMA-DIREKTORIOA    Eskema gehigarriak bilatzeko direkotrioa\n"
 
-#: gio/gsettings-tool.c:707
+#: ../gio/gsettings-tool.c:660
 msgid ""
 "  SCHEMA    The name of the schema\n"
 "  PATH      The path, for relocatable schemas\n"
@@ -3658,277 +3692,250 @@ msgstr ""
 "  ESKEMA            Eskemaren izena\n"
 "  BIDE-IZENA       Bide-izena, lekuz alda daitezkeen eskementzako\n"
 
-#: gio/gsettings-tool.c:712
+#: ../gio/gsettings-tool.c:665
 msgid "  KEY       The (optional) key within the schema\n"
 msgstr "  GAKOA       Eskema barruko (aukerako) gakoa\n"
 
-#: gio/gsettings-tool.c:716
+#: ../gio/gsettings-tool.c:669
 msgid "  KEY       The key within the schema\n"
 msgstr "  GAKOA       Eskema barruko gakoa\n"
 
-#: gio/gsettings-tool.c:720
+#: ../gio/gsettings-tool.c:673
 msgid "  VALUE     The value to set\n"
 msgstr "  BALIOA     Ezarriko den balioa\n"
 
-#: gio/gsettings-tool.c:775
+#: ../gio/gsettings-tool.c:728
 #, c-format
 msgid "Could not load schemas from %s: %s\n"
 msgstr "Ezin izan dira eskemarik '%s'(e)ndik kargatu : %s\n"
 
-#: gio/gsettings-tool.c:787
+#: ../gio/gsettings-tool.c:740
+#, c-format
 msgid "No schemas installed\n"
 msgstr "Ez dago eskemarik instalatuta\n"
 
-#: gio/gsettings-tool.c:866
+#: ../gio/gsettings-tool.c:811
+#, c-format
 msgid "Empty schema name given\n"
 msgstr "Eskemaren izen hutsa eman da\n"
 
-#: gio/gsettings-tool.c:921
+#: ../gio/gsettings-tool.c:866
 #, c-format
 msgid "No such key “%s”\n"
 msgstr "Ez dago “%s“ bezalako gakorik\n"
 
-#: gio/gsocket.c:384
+#: ../gio/gsocket.c:379
 msgid "Invalid socket, not initialized"
 msgstr "Baliogabeko socket-a, hasieratu gabe dago"
 
-#: gio/gsocket.c:391
+#: ../gio/gsocket.c:386
 #, c-format
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr "Baliogabeko socket-a, hasieratzeak huts egin du: %s"
 
-#: gio/gsocket.c:399
+#: ../gio/gsocket.c:394
 msgid "Socket is already closed"
 msgstr "Socket-a jadanik itxita dago"
 
-#: gio/gsocket.c:414 gio/gsocket.c:3034 gio/gsocket.c:4244 gio/gsocket.c:4302
+#: ../gio/gsocket.c:409 ../gio/gsocket.c:2765 ../gio/gsocket.c:3950
+#: ../gio/gsocket.c:4008
 msgid "Socket I/O timed out"
 msgstr "S/Iko socket-aren denbora-muga gaindituta"
 
-#: gio/gsocket.c:549
+#: ../gio/gsocket.c:541
 #, c-format
 msgid "creating GSocket from fd: %s"
 msgstr "GSocket sortzen fd-tik: %s"
 
-#: gio/gsocket.c:578 gio/gsocket.c:632 gio/gsocket.c:639
+#: ../gio/gsocket.c:570 ../gio/gsocket.c:624 ../gio/gsocket.c:631
 #, c-format
 msgid "Unable to create socket: %s"
 msgstr "Ezin da socket-a sortu: %s"
 
-#: gio/gsocket.c:632
+#: ../gio/gsocket.c:624
 msgid "Unknown family was specified"
 msgstr "Familia ezezaguna zehaztu da"
 
-#: gio/gsocket.c:639
+#: ../gio/gsocket.c:631
 msgid "Unknown protocol was specified"
 msgstr "Protokolo ezezaguna zehaztu da"
 
-#: gio/gsocket.c:1130
+#: ../gio/gsocket.c:1122
 #, 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:1147
+#: ../gio/gsocket.c:1139
 #, 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:1954
+#: ../gio/gsocket.c:1943
 #, c-format
 msgid "could not get local address: %s"
 msgstr "ezin izan da lokaleko helbidea lortu: %s"
 
-#: gio/gsocket.c:2000
+#: ../gio/gsocket.c:1986
 #, c-format
 msgid "could not get remote address: %s"
 msgstr "ezin izan da urruneko helbidea lortu: %s"
 
-#: gio/gsocket.c:2066
+#: ../gio/gsocket.c:2052
 #, c-format
 msgid "could not listen: %s"
 msgstr "ezin izan da entzun: %s"
 
-#: gio/gsocket.c:2168
+#: ../gio/gsocket.c:2151
 #, c-format
 msgid "Error binding to address: %s"
 msgstr "Errorea helbidea lotzean: %s"
 
-#: gio/gsocket.c:2226 gio/gsocket.c:2263 gio/gsocket.c:2373 gio/gsocket.c:2398
-#: gio/gsocket.c:2471 gio/gsocket.c:2529 gio/gsocket.c:2547
+#: ../gio/gsocket.c:2266 ../gio/gsocket.c:2303
 #, c-format
 msgid "Error joining multicast group: %s"
 msgstr "Errorea multidifusioko taldean elkartzean: %s"
 
-#: gio/gsocket.c:2227 gio/gsocket.c:2264 gio/gsocket.c:2374 gio/gsocket.c:2399
-#: gio/gsocket.c:2472 gio/gsocket.c:2530 gio/gsocket.c:2548
+#: ../gio/gsocket.c:2267 ../gio/gsocket.c:2304
 #, c-format
 msgid "Error leaving multicast group: %s"
 msgstr "Errorea multidifusioko taldea uztean: %s"
 
-#: gio/gsocket.c:2228
+#: ../gio/gsocket.c:2268
 msgid "No support for source-specific multicast"
 msgstr "Iturburu zehatzeko multidifusiorik ez da onartzen"
 
-#: gio/gsocket.c:2375
-#| msgid "Unsupported socket address"
-msgid "Unsupported socket family"
-msgstr "Onartu gabeko socket familia"
-
-#: gio/gsocket.c:2400
-msgid "source-specific not an IPv4 address"
-msgstr "iturburu zehatza ez da IPv4 helbide bat"
-
-#: gio/gsocket.c:2418 gio/gsocket.c:2447 gio/gsocket.c:2497
-#, c-format
-msgid "Interface not found: %s"
-msgstr "Ez da interfazerik aurkitu: %s"
-
-#: gio/gsocket.c:2434
-#, c-format
-msgid "Interface name too long"
-msgstr "Interfaze-izena luzeegia da"
-
-#: gio/gsocket.c:2473
-#| msgid "No support for source-specific multicast"
-msgid "No support for IPv4 source-specific multicast"
-msgstr "IPv4 iturburu zehatzeko multidifusiorik ez da onartzen"
-
-#: gio/gsocket.c:2531
-#| msgid "No support for source-specific multicast"
-msgid "No support for IPv6 source-specific multicast"
-msgstr "IPv6 iturburu zehatzeko multidifusiorik ez da onartzen"
-
-#: gio/gsocket.c:2740
+#: ../gio/gsocket.c:2488
 #, c-format
 msgid "Error accepting connection: %s"
 msgstr "Errorea konexioa onartzean: %s"
 
-#: gio/gsocket.c:2864
+#: ../gio/gsocket.c:2609
 msgid "Connection in progress"
 msgstr "Konexioa lantzen"
 
-#: gio/gsocket.c:2913
+#: ../gio/gsocket.c:2658
 msgid "Unable to get pending error: "
 msgstr "Ezin da falta diren erroreak lortu: "
 
-#: gio/gsocket.c:3097
+#: ../gio/gsocket.c:2828
 #, c-format
 msgid "Error receiving data: %s"
 msgstr "Errorea datuak jasotzean: %s"
 
-#: gio/gsocket.c:3292
+#: ../gio/gsocket.c:3023
 #, c-format
 msgid "Error sending data: %s"
 msgstr "Errorea datuak bidaltzean: %s"
 
-#: gio/gsocket.c:3479
+#: ../gio/gsocket.c:3210
 #, c-format
 msgid "Unable to shutdown socket: %s"
 msgstr "Ezin da socket-a itzali: %s"
 
-#: gio/gsocket.c:3560
+#: ../gio/gsocket.c:3291
 #, c-format
 msgid "Error closing socket: %s"
 msgstr "Errorea socket-a ixtean: %s"
 
-#: gio/gsocket.c:4237
+#: ../gio/gsocket.c:3943
 #, c-format
 msgid "Waiting for socket condition: %s"
 msgstr "Socket-aren baldintzen zai: %s"
 
-#: gio/gsocket.c:4711 gio/gsocket.c:4791 gio/gsocket.c:4969
+#: ../gio/gsocket.c:4417 ../gio/gsocket.c:4497 ../gio/gsocket.c:4675
 #, c-format
 msgid "Error sending message: %s"
 msgstr "Errorea mezua bidaltzean: %s"
 
-#: gio/gsocket.c:4735
+#: ../gio/gsocket.c:4441
 msgid "GSocketControlMessage not supported on Windows"
 msgstr "GSocketControlMessage ez da Windows sisteman onartzen"
 
-#: gio/gsocket.c:5188 gio/gsocket.c:5261 gio/gsocket.c:5487
+#: ../gio/gsocket.c:4894 ../gio/gsocket.c:4967 ../gio/gsocket.c:5193
 #, c-format
 msgid "Error receiving message: %s"
 msgstr "Errorea mezua jasotzean: %s"
 
-#: gio/gsocket.c:5759
+#: ../gio/gsocket.c:5465
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr "Ezin da socket-aren kredentzialik irakurri: %s"
 
-#: gio/gsocket.c:5768
+#: ../gio/gsocket.c:5474
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "g_socket_get_credentials ez dago S.E. honetan inplementatuta"
 
-#: gio/gsocketclient.c:176
+#: ../gio/gsocketclient.c:176
 #, c-format
 msgid "Could not connect to proxy server %s: "
 msgstr "Ezin izan da %s proxy zerbitzariarekin konektatu: "
 
-#: gio/gsocketclient.c:190
+#: ../gio/gsocketclient.c:190
 #, c-format
 msgid "Could not connect to %s: "
 msgstr "Ezin izan da %s(r)ekin konektatu: "
 
-#: gio/gsocketclient.c:192
+#: ../gio/gsocketclient.c:192
 msgid "Could not connect: "
 msgstr "Ezin izan da konektatu: "
 
-#: gio/gsocketclient.c:1027 gio/gsocketclient.c:1599
+#: ../gio/gsocketclient.c:1027 ../gio/gsocketclient.c:1599
 msgid "Unknown error on connect"
 msgstr "Errore ezezaguna konexioan"
 
-#: gio/gsocketclient.c:1081 gio/gsocketclient.c:1535
+#: ../gio/gsocketclient.c:1081 ../gio/gsocketclient.c:1535
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr ""
 "TCP motakoak ez diren konexioen gainean proxy-a egitea ez dago onartuta."
 
-#: gio/gsocketclient.c:1110 gio/gsocketclient.c:1561
+#: ../gio/gsocketclient.c:1110 ../gio/gsocketclient.c:1561
 #, c-format
 msgid "Proxy protocol “%s” is not supported."
 msgstr "Proxy-aren “%s“ protokoloa ez dago onartuta."
 
-#: gio/gsocketlistener.c:225
+#: ../gio/gsocketlistener.c:218
 msgid "Listener is already closed"
 msgstr "Entzulea jadanik itxita dago"
 
-#: gio/gsocketlistener.c:271
+#: ../gio/gsocketlistener.c:264
 msgid "Added socket is closed"
 msgstr "Gehitutako socket-a itxi da"
 
-#: gio/gsocks4aproxy.c:118
+#: ../gio/gsocks4aproxy.c:118
 #, c-format
 msgid "SOCKSv4 does not support IPv6 address “%s”"
 msgstr "SOCKSv4-ek ez du “%s“ IPv6 helbidea onartzen"
 
-#: gio/gsocks4aproxy.c:136
+#: ../gio/gsocks4aproxy.c:136
 msgid "Username is too long for SOCKSv4 protocol"
 msgstr "Erabiltzaile-izena luzeegia da SOCKSv4 protokoloarentzako"
 
-#: gio/gsocks4aproxy.c:153
+#: ../gio/gsocks4aproxy.c:153
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv4 protocol"
 msgstr "“%s“ ostalari-izena luzeegia da SOCKSv4 protokoloarentzako"
 
-#: gio/gsocks4aproxy.c:179
+#: ../gio/gsocks4aproxy.c:179
 msgid "The server is not a SOCKSv4 proxy server."
 msgstr "Zerbitzaria ez da SOCKSv4 proxy zerbitzari bat."
 
-#: gio/gsocks4aproxy.c:186
+#: ../gio/gsocks4aproxy.c:186
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "SOCKSv4 zerbitzariaren bidezko konexioa ukatu da"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: ../gio/gsocks5proxy.c:153 ../gio/gsocks5proxy.c:324
+#: ../gio/gsocks5proxy.c:334
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "Zerbitzaria ez da SOCKSv5 proxy zerbitzari bat."
 
-#: gio/gsocks5proxy.c:167
+#: ../gio/gsocks5proxy.c:167
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "SOCKSv5 proxy-ak autentifikazioa eskatzen du."
 
-#: gio/gsocks5proxy.c:177
+#: ../gio/gsocks5proxy.c:177
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
@@ -3936,110 +3943,109 @@ msgstr ""
 "SOCKSv5-ek autentifikatzeko metodo bat eskatzen du (Glib-ek onartzen ez "
 "duena)."
 
-#: gio/gsocks5proxy.c:206
+#: ../gio/gsocks5proxy.c:206
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr ""
 "Erabiltzaile-izena edo pasahitza luzeegia da SOCKSv5 protokoloarentzako."
 
-#: gio/gsocks5proxy.c:236
+#: ../gio/gsocks5proxy.c:236
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 "SOCKSv5 autentifikazioak huts egin du erabiltzaile-izena edo pasahitza "
 "okerra delako."
 
-#: gio/gsocks5proxy.c:286
+#: ../gio/gsocks5proxy.c:286
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr "“%s“ ostalari-izena luzeegia da SOCKSv5 protokoloarentzako"
 
-#: gio/gsocks5proxy.c:348
+#: ../gio/gsocks5proxy.c:348
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "SOCKSv5 proxy zerbitzariak helbide mota ezezagunak erabiltzen ditu."
 
-#: gio/gsocks5proxy.c:355
+#: ../gio/gsocks5proxy.c:355
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "SOCKSv5 proxy-aren zerbitzariaren barneko errorea."
 
-#: gio/gsocks5proxy.c:361
+#: ../gio/gsocks5proxy.c:361
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "Arauen multzoak ez du SOCKSv5 konexioa baimentzen."
 
-#: gio/gsocks5proxy.c:368
+#: ../gio/gsocks5proxy.c:368
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "Ostalaria atziezina SOCKSv5 zerbitzariaren bidez."
 
-#: gio/gsocks5proxy.c:374
+#: ../gio/gsocks5proxy.c:374
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "Sarea atziezina SOCKSv5 proxy-aren bidez."
 
-#: gio/gsocks5proxy.c:380
+#: ../gio/gsocks5proxy.c:380
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "Konexioa ukatuta SOCKSv5 proxy-aren bidez."
 
-#: gio/gsocks5proxy.c:386
+#: ../gio/gsocks5proxy.c:386
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr "SOCKSv5 proxy-ak ez du “connect“ komandoa onartzen."
 
-#: gio/gsocks5proxy.c:392
+#: ../gio/gsocks5proxy.c:392
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "SOCKSv5 proxy-ak ez du emandako helbide mota onartzen."
 
-#: gio/gsocks5proxy.c:398
+#: ../gio/gsocks5proxy.c:398
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "SOCKSv5 proxy-aren errore ezezaguna."
 
-#: gio/gthemedicon.c:595
+#: ../gio/gthemedicon.c:518
 #, c-format
 msgid "Can’t handle version %d of GThemedIcon encoding"
 msgstr "Ezin da GThemedIcon kodeketaren %d bertsioa kudeatu"
 
-#: gio/gthreadedresolver.c:118
+#: ../gio/gthreadedresolver.c:118
 msgid "No valid addresses were found"
 msgstr "Ez da baliozko helbiderik aurkitu"
 
-#: gio/gthreadedresolver.c:213
+#: ../gio/gthreadedresolver.c:213
 #, c-format
 msgid "Error reverse-resolving “%s”: %s"
 msgstr "Errorea “%s“ alderantziz ebaztean: %s"
 
-#: gio/gthreadedresolver.c:549 gio/gthreadedresolver.c:628
-#: gio/gthreadedresolver.c:726 gio/gthreadedresolver.c:776
+#: ../gio/gthreadedresolver.c:550 ../gio/gthreadedresolver.c:630
+#: ../gio/gthreadedresolver.c:728 ../gio/gthreadedresolver.c:778
 #, 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:554 gio/gthreadedresolver.c:731
+#: ../gio/gthreadedresolver.c:555 ../gio/gthreadedresolver.c:733
 #, c-format
 msgid "Temporarily unable to resolve “%s”"
 msgstr "Ezin da “%s“ ebatzi aldi batean"
 
-#: gio/gthreadedresolver.c:559 gio/gthreadedresolver.c:736
-#: gio/gthreadedresolver.c:844
+#: ../gio/gthreadedresolver.c:560 ../gio/gthreadedresolver.c:738
 #, c-format
 msgid "Error resolving “%s”"
 msgstr "Errorea “%s“ ebaztean"
 
-#: gio/gtlscertificate.c:250
+#: ../gio/gtlscertificate.c:250
 msgid "Cannot decrypt PEM-encoded private key"
 msgstr "Ezin da PEMekin kodetutako gako pribatua desenkriptatu"
 
-#: gio/gtlscertificate.c:255
+#: ../gio/gtlscertificate.c:255
 msgid "No PEM-encoded private key found"
 msgstr "Ez da PEMekin kodetutako ziurtagirik aurkitu"
 
-#: gio/gtlscertificate.c:265
+#: ../gio/gtlscertificate.c:265
 msgid "Could not parse PEM-encoded private key"
 msgstr "Ezin izan da PEMekin kodetutako gako pribatua analizatu"
 
-#: gio/gtlscertificate.c:290
+#: ../gio/gtlscertificate.c:290
 msgid "No PEM-encoded certificate found"
 msgstr "Ez da PEMekin kodetutako ziurtagirik aurkitu"
 
-#: gio/gtlscertificate.c:299
+#: ../gio/gtlscertificate.c:299
 msgid "Could not parse PEM-encoded certificate"
 msgstr "Ezin izan da PEMekin kodetutako ziurtagiririk analizatu"
 
-#: gio/gtlspassword.c:111
+#: ../gio/gtlspassword.c:111
 msgid ""
 "This is the last chance to enter the password correctly before your access "
 "is locked out."
@@ -4049,7 +4055,10 @@ 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:115
+#| 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."
@@ -4057,816 +4066,616 @@ msgstr ""
 "Sartu diren hainbat pasahitz ez dira zuzenak, eta zure sarbidetza blokeatu "
 "egingo da hutsegite gehiagoren ondoren."
 
-#: gio/gtlspassword.c:117
+#: ../gio/gtlspassword.c:117
 msgid "The password entered is incorrect."
 msgstr "Sartutako pasahitza okerrekoa da."
 
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:563
+#: ../gio/gunixconnection.c:166 ../gio/gunixconnection.c:563
 #, 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 dira"
 
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:575
+#: ../gio/gunixconnection.c:182 ../gio/gunixconnection.c:575
 msgid "Unexpected type of ancillary data"
 msgstr "Ustekabeko datu-laguntzaile mota"
 
-#: gio/gunixconnection.c:200
+#: ../gio/gunixconnection.c:200
 #, 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 dira\n"
 
-#: gio/gunixconnection.c:219
+#: ../gio/gunixconnection.c:219
 msgid "Received invalid fd"
 msgstr "Baliogabeko fd jasota"
 
-#: gio/gunixconnection.c:355
+#: ../gio/gunixconnection.c:355
 msgid "Error sending credentials: "
 msgstr "Errorea kredentzialak bidaltzean: "
 
-#: gio/gunixconnection.c:504
+#: ../gio/gunixconnection.c:504
 #, 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:520
+#: ../gio/gunixconnection.c:520
 #, c-format
 msgid "Error enabling SO_PASSCRED: %s"
 msgstr "Errorea SO_PASSCRED gaitzean: %s"
 
-#: gio/gunixconnection.c:549
+#: ../gio/gunixconnection.c:549
 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:589
+#: ../gio/gunixconnection.c:589
 #, c-format
 msgid "Not expecting control message, but got %d"
 msgstr "Ez zen kontroleko mezurik espero, baina %d lortu dira"
 
-#: gio/gunixconnection.c:614
+#: ../gio/gunixconnection.c:614
 #, c-format
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Errorea SO_PASSCRED desgaitzean: %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: ../gio/gunixinputstream.c:372 ../gio/gunixinputstream.c:393
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Errorea fitxategiaren deskriptoretik irakurtzean: %s "
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:411
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: ../gio/gunixinputstream.c:426 ../gio/gunixoutputstream.c:411
+#: ../gio/gwin32inputstream.c:217 ../gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr "Errorea fitxategiaren deskriptorea ixtean: %s "
 
-#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
+#: ../gio/gunixmounts.c:2430 ../gio/gunixmounts.c:2483
 msgid "Filesystem root"
 msgstr "Fitxategi-sistemaren erroa"
 
-#: gio/gunixoutputstream.c:358 gio/gunixoutputstream.c:378
+#: ../gio/gunixoutputstream.c:358 ../gio/gunixoutputstream.c:378
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Errorea fitxategiaren deskriptorean idaztean: %s"
 
-#: gio/gunixsocketaddress.c:243
+#: ../gio/gunixsocketaddress.c:241
 msgid "Abstract UNIX domain socket addresses not supported on this system"
 msgstr ""
 "UNIX-eko domeinuen socket helbide abstraktuak ez daude sistema honetan "
 "onartuta"
 
-#: gio/gvolume.c:438
+#: ../gio/gvolume.c:437
 msgid "volume doesn’t implement eject"
 msgstr "bolumenak ez dauka “egotzi“ inplementatuta"
 
 #. 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:514
 msgid "volume doesn’t implement eject or eject_with_operation"
 msgstr "bolumenak ez dauka “egotzi“ edo “egotzi eragiketarekin“ inplementatuta"
 
-#: gio/gwin32inputstream.c:185
+#: ../gio/gwin32inputstream.c:185
 #, c-format
 msgid "Error reading from handle: %s"
 msgstr "Errorea heldulekutik irakurtzean: %s"
 
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: ../gio/gwin32inputstream.c:232 ../gio/gwin32outputstream.c:219
 #, c-format
 msgid "Error closing handle: %s"
 msgstr "Errorea heldulekua ixtean: %s"
 
-#: gio/gwin32outputstream.c:172
+#: ../gio/gwin32outputstream.c:172
 #, c-format
 msgid "Error writing to handle: %s"
 msgstr "Errorea heldulekuan idaztean: %s"
 
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: ../gio/gzlibcompressor.c:394 ../gio/gzlibdecompressor.c:347
 msgid "Not enough memory"
 msgstr "Ez dago nahikoa memoriarik"
 
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: ../gio/gzlibcompressor.c:401 ../gio/gzlibdecompressor.c:354
 #, c-format
 msgid "Internal error: %s"
 msgstr "Barneko errorea: %s"
 
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: ../gio/gzlibcompressor.c:414 ../gio/gzlibdecompressor.c:368
 msgid "Need more input"
 msgstr "Sarrera gehiago behar dira"
 
 #
-#: gio/gzlibdecompressor.c:340
+#: ../gio/gzlibdecompressor.c:340
 msgid "Invalid compressed data"
 msgstr "Konprimitutako datu baliogabeak"
 
-#: gio/tests/gdbus-daemon.c:18
+#: ../gio/tests/gdbus-daemon.c:18
 msgid "Address to listen on"
 msgstr "Helbidea entzuteko"
 
-#: gio/tests/gdbus-daemon.c:19
+#: ../gio/tests/gdbus-daemon.c:19
 msgid "Ignored, for compat with GTestDbus"
 msgstr "Ez ikusi egin GTestDBus-ekin bateragarria izateko"
 
-#: gio/tests/gdbus-daemon.c:20
+#: ../gio/tests/gdbus-daemon.c:20
 msgid "Print address"
 msgstr "Erakutsi helbidea"
 
-#: gio/tests/gdbus-daemon.c:21
+#: ../gio/tests/gdbus-daemon.c:21
 msgid "Print address in shell mode"
 msgstr "Erakutsi helbidea shell moduan"
 
-#: gio/tests/gdbus-daemon.c:28
+#: ../gio/tests/gdbus-daemon.c:28
 msgid "Run a dbus service"
 msgstr "Exekutatu dbus zerbitzua"
 
-#: gio/tests/gdbus-daemon.c:42
+#: ../gio/tests/gdbus-daemon.c:42
+#, c-format
 msgid "Wrong args\n"
 msgstr "Okerreko argumentuak\n"
 
-#: glib/gbookmarkfile.c:754
+#: ../glib/gbookmarkfile.c:754
 #, c-format
 msgid "Unexpected attribute “%s” for element “%s”"
 msgstr "“%2$s“ elementuaren ustekabeko “%1$s“ atributua"
 
-#: glib/gbookmarkfile.c:765 glib/gbookmarkfile.c:836 glib/gbookmarkfile.c:846
-#: glib/gbookmarkfile.c:955
+#: ../glib/gbookmarkfile.c:765 ../glib/gbookmarkfile.c:836
+#: ../glib/gbookmarkfile.c:846 ../glib/gbookmarkfile.c:953
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr "“%2$s“ elementuaren “%1$s“ atributua ez da aurkitu"
 
-#: glib/gbookmarkfile.c:1164 glib/gbookmarkfile.c:1229
-#: glib/gbookmarkfile.c:1293 glib/gbookmarkfile.c:1303
+#: ../glib/gbookmarkfile.c:1123 ../glib/gbookmarkfile.c:1188
+#: ../glib/gbookmarkfile.c:1252 ../glib/gbookmarkfile.c:1262
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr "Ustekabeko “%s“ etiketa, “%s“ espero zen"
 
-#: glib/gbookmarkfile.c:1189 glib/gbookmarkfile.c:1203
-#: glib/gbookmarkfile.c:1271 glib/gbookmarkfile.c:1317
+#: ../glib/gbookmarkfile.c:1148 ../glib/gbookmarkfile.c:1162
+#: ../glib/gbookmarkfile.c:1230
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr "“%2$s“ barruan ustekabeko “%1$s“ etiketa"
 
-#: glib/gbookmarkfile.c:1813
+#: ../glib/gbookmarkfile.c:1756
 msgid "No valid bookmark file found in data dirs"
 msgstr ""
 "Ezin izan da baliozko laster-marken fitxategia aurkitu datuen direktorioan"
 
-#: glib/gbookmarkfile.c:2014
+#: ../glib/gbookmarkfile.c:1957
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
 msgstr "“%s“ URIaren laster-marka badago lehendik ere"
 
-#: glib/gbookmarkfile.c:2060 glib/gbookmarkfile.c:2218
-#: glib/gbookmarkfile.c:2303 glib/gbookmarkfile.c:2383
-#: glib/gbookmarkfile.c:2468 glib/gbookmarkfile.c:2551
-#: glib/gbookmarkfile.c:2629 glib/gbookmarkfile.c:2708
-#: glib/gbookmarkfile.c:2750 glib/gbookmarkfile.c:2847
-#: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
-#: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
+#: ../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
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "Ez da “%s“ URIaren laster-markarik aurkitu"
 
-#: glib/gbookmarkfile.c:2392
+#: ../glib/gbookmarkfile.c:2335
 #, 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:2477
+#: ../glib/gbookmarkfile.c:2420
 #, 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:2856
+#: ../glib/gbookmarkfile.c:2799
 #, c-format
 msgid "No groups set in bookmark for URI “%s”"
 msgstr "“%s“ URIaren laster-markan ez dago talderik ezarrita"
 
-#: glib/gbookmarkfile.c:3255 glib/gbookmarkfile.c:3412
+#: ../glib/gbookmarkfile.c:3197 ../glib/gbookmarkfile.c:3354
 #, 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:3435
+#: ../glib/gbookmarkfile.c:3377
 #, 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:473
-#| msgid "Invalid sequence in conversion input"
-msgid "Unrepresentable character in conversion input"
-msgstr "Ezin adieraz daitekeen karakterea bihurketa-sarreran"
-
-#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
-#: glib/gutf8.c:1318
+#: ../glib/gconvert.c:477 ../glib/gutf8.c:862 ../glib/gutf8.c:1074
+#: ../glib/gutf8.c:1211 ../glib/gutf8.c:1315
 msgid "Partial character sequence at end of input"
 msgstr "Karaktere-sekuentzia partziala sarreraren amaieran"
 
-#: glib/gconvert.c:769
+#: ../glib/gconvert.c:742
 #, c-format
 msgid "Cannot convert fallback “%s” to codeset “%s”"
 msgstr "Ezin da “%s“ atzerapena “%s“ kode-multzo bihurtu"
 
-#: glib/gconvert.c:940
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion input"
-msgstr "Kapsulatutako NUL bytea bihurketa-sarreran"
-
-#: glib/gconvert.c:961
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion output"
-msgstr "Kapsulatutako NUL bytea bihurketa-irteeran"
-
-#: glib/gconvert.c:1649
+#: ../glib/gconvert.c:1513
 #, 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:1659
+#: ../glib/gconvert.c:1523
 #, c-format
 msgid "The local file URI “%s” may not include a “#”"
 msgstr "Baliteke “%s“ URI fitxategi lokalak “#“ ez edukitzea"
 
-#: glib/gconvert.c:1676
+#: ../glib/gconvert.c:1540
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr "“%s“ URI baliogabea da"
 
-#: glib/gconvert.c:1688
+#: ../glib/gconvert.c:1552
 #, c-format
 msgid "The hostname of the URI “%s” is invalid"
 msgstr "“%s“ URIaren ostalari-izena baliogabea da"
 
-#: glib/gconvert.c:1704
+#: ../glib/gconvert.c:1568
 #, c-format
 msgid "The URI “%s” contains invalidly escaped characters"
 msgstr "“%s“ URIak ihes-karaktere baliogabeak ditu"
 
-#: glib/gconvert.c:1776
+#: ../glib/gconvert.c:1640
 #, c-format
 msgid "The pathname “%s” is not an absolute path"
 msgstr "“%s“ bide-izena ez da bide-izen absolutua"
 
 #. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:213
+#: ../glib/gdatetime.c:202
 msgctxt "GDateTime"
 msgid "%a %b %e %H:%M:%S %Y"
 msgstr "%y-%m-%d %T %Z"
 
 #. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:216
+#: ../glib/gdatetime.c:205
 msgctxt "GDateTime"
 msgid "%m/%d/%y"
 msgstr "%y/%m/%d"
 
 #. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:219
+#: ../glib/gdatetime.c:208
 msgctxt "GDateTime"
 msgid "%H:%M:%S"
 msgstr "%H:%M:%S"
 
 #. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:222
+#: ../glib/gdatetime.c:211
 msgctxt "GDateTime"
 msgid "%I:%M:%S %p"
 msgstr "%I:%M:%S %p"
 
-#. 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:261
+#: ../glib/gdatetime.c:224
 msgctxt "full month name"
 msgid "January"
 msgstr "Urtarrila"
 
-#: glib/gdatetime.c:263
+#: ../glib/gdatetime.c:226
 msgctxt "full month name"
 msgid "February"
 msgstr "Otsaila"
 
-#: glib/gdatetime.c:265
+#: ../glib/gdatetime.c:228
 msgctxt "full month name"
 msgid "March"
 msgstr "Martxoa"
 
-#: glib/gdatetime.c:267
+#: ../glib/gdatetime.c:230
 msgctxt "full month name"
 msgid "April"
 msgstr "Apirila"
 
-#: glib/gdatetime.c:269
+#: ../glib/gdatetime.c:232
 msgctxt "full month name"
 msgid "May"
 msgstr "Maiatza"
 
-#: glib/gdatetime.c:271
+#: ../glib/gdatetime.c:234
 msgctxt "full month name"
 msgid "June"
 msgstr "Ekaina"
 
-#: glib/gdatetime.c:273
+#: ../glib/gdatetime.c:236
 msgctxt "full month name"
 msgid "July"
 msgstr "Uztaila"
 
-#: glib/gdatetime.c:275
+#: ../glib/gdatetime.c:238
 msgctxt "full month name"
 msgid "August"
 msgstr "Abuztua"
 
-#: glib/gdatetime.c:277
+#: ../glib/gdatetime.c:240
 msgctxt "full month name"
 msgid "September"
 msgstr "Iraila"
 
-#: glib/gdatetime.c:279
+#: ../glib/gdatetime.c:242
 msgctxt "full month name"
 msgid "October"
 msgstr "Urria"
 
-#: glib/gdatetime.c:281
+#: ../glib/gdatetime.c:244
 msgctxt "full month name"
 msgid "November"
 msgstr "Azaroa"
 
-#: glib/gdatetime.c:283
+#: ../glib/gdatetime.c:246
 msgctxt "full month name"
 msgid "December"
 msgstr "Abendua"
 
-#. 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:315
+#: ../glib/gdatetime.c:261
 msgctxt "abbreviated month name"
 msgid "Jan"
 msgstr "Urt."
 
-#: glib/gdatetime.c:317
+#: ../glib/gdatetime.c:263
 msgctxt "abbreviated month name"
 msgid "Feb"
 msgstr "Ots."
 
-#: glib/gdatetime.c:319
+#: ../glib/gdatetime.c:265
 msgctxt "abbreviated month name"
 msgid "Mar"
 msgstr "Mar."
 
-#: glib/gdatetime.c:321
+#: ../glib/gdatetime.c:267
 msgctxt "abbreviated month name"
 msgid "Apr"
 msgstr "Apr."
 
-#: glib/gdatetime.c:323
+#: ../glib/gdatetime.c:269
 msgctxt "abbreviated month name"
 msgid "May"
 msgstr "Mai"
 
-#: glib/gdatetime.c:325
+#: ../glib/gdatetime.c:271
 msgctxt "abbreviated month name"
 msgid "Jun"
 msgstr "Eka."
 
-#: glib/gdatetime.c:327
+#: ../glib/gdatetime.c:273
 msgctxt "abbreviated month name"
 msgid "Jul"
 msgstr "Uzt."
 
-#: glib/gdatetime.c:329
+#: ../glib/gdatetime.c:275
 msgctxt "abbreviated month name"
 msgid "Aug"
 msgstr "Abu."
 
-#: glib/gdatetime.c:331
+#: ../glib/gdatetime.c:277
 msgctxt "abbreviated month name"
 msgid "Sep"
 msgstr "Ira."
 
-#: glib/gdatetime.c:333
+#: ../glib/gdatetime.c:279
 msgctxt "abbreviated month name"
 msgid "Oct"
 msgstr "Urr."
 
-#: glib/gdatetime.c:335
+#: ../glib/gdatetime.c:281
 msgctxt "abbreviated month name"
 msgid "Nov"
 msgstr "Aza."
 
-#: glib/gdatetime.c:337
+#: ../glib/gdatetime.c:283
 msgctxt "abbreviated month name"
 msgid "Dec"
 msgstr "Abe."
 
-#: glib/gdatetime.c:352
+#: ../glib/gdatetime.c:298
 msgctxt "full weekday name"
 msgid "Monday"
 msgstr "Astelehena"
 
-#: glib/gdatetime.c:354
+#: ../glib/gdatetime.c:300
 msgctxt "full weekday name"
 msgid "Tuesday"
 msgstr "Asteartea"
 
-#: glib/gdatetime.c:356
+#: ../glib/gdatetime.c:302
 msgctxt "full weekday name"
 msgid "Wednesday"
 msgstr "Asteazkena"
 
-#: glib/gdatetime.c:358
+#: ../glib/gdatetime.c:304
 msgctxt "full weekday name"
 msgid "Thursday"
 msgstr "Osteguna"
 
-#: glib/gdatetime.c:360
+#: ../glib/gdatetime.c:306
 msgctxt "full weekday name"
 msgid "Friday"
 msgstr "Ostirala"
 
-#: glib/gdatetime.c:362
+#: ../glib/gdatetime.c:308
 msgctxt "full weekday name"
 msgid "Saturday"
 msgstr "Larunbata"
 
-#: glib/gdatetime.c:364
+#: ../glib/gdatetime.c:310
 msgctxt "full weekday name"
 msgid "Sunday"
 msgstr "Igandea"
 
-#: glib/gdatetime.c:379
+#: ../glib/gdatetime.c:325
 msgctxt "abbreviated weekday name"
 msgid "Mon"
 msgstr "Al."
 
-#: glib/gdatetime.c:381
+#: ../glib/gdatetime.c:327
 msgctxt "abbreviated weekday name"
 msgid "Tue"
 msgstr "Ar."
 
-#: glib/gdatetime.c:383
+#: ../glib/gdatetime.c:329
 msgctxt "abbreviated weekday name"
 msgid "Wed"
 msgstr "Az."
 
-#: glib/gdatetime.c:385
+#: ../glib/gdatetime.c:331
 msgctxt "abbreviated weekday name"
 msgid "Thu"
 msgstr "Og."
 
-#: glib/gdatetime.c:387
+#: ../glib/gdatetime.c:333
 msgctxt "abbreviated weekday name"
 msgid "Fri"
 msgstr "Or."
 
-#: glib/gdatetime.c:389
+#: ../glib/gdatetime.c:335
 msgctxt "abbreviated weekday name"
 msgid "Sat"
 msgstr "Lr."
 
-#: glib/gdatetime.c:391
+#: ../glib/gdatetime.c:337
 msgctxt "abbreviated weekday name"
 msgid "Sun"
 msgstr "Ig."
 
-#. 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:455
-msgctxt "full month name with day"
-msgid "January"
-msgstr "Urtarrila"
-
-#: glib/gdatetime.c:457
-msgctxt "full month name with day"
-msgid "February"
-msgstr "Otsaila"
-
-#: glib/gdatetime.c:459
-msgctxt "full month name with day"
-msgid "March"
-msgstr "Martxoa"
-
-#: glib/gdatetime.c:461
-msgctxt "full month name with day"
-msgid "April"
-msgstr "Apirila"
-
-#: glib/gdatetime.c:463
-msgctxt "full month name with day"
-msgid "May"
-msgstr "Maiatza"
-
-#: glib/gdatetime.c:465
-msgctxt "full month name with day"
-msgid "June"
-msgstr "Ekaina"
-
-#: glib/gdatetime.c:467
-msgctxt "full month name with day"
-msgid "July"
-msgstr "Uztaila"
-
-#: glib/gdatetime.c:469
-msgctxt "full month name with day"
-msgid "August"
-msgstr "Abuztua"
-
-#: glib/gdatetime.c:471
-msgctxt "full month name with day"
-msgid "September"
-msgstr "Iraila"
-
-#: glib/gdatetime.c:473
-msgctxt "full month name with day"
-msgid "October"
-msgstr "Urria"
-
-#: glib/gdatetime.c:475
-msgctxt "full month name with day"
-msgid "November"
-msgstr "Azaroa"
-
-#: glib/gdatetime.c:477
-msgctxt "full month name with day"
-msgid "December"
-msgstr "Abendua"
-
-#. 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:542
-msgctxt "abbreviated month name with day"
-msgid "Jan"
-msgstr "Urt."
-
-#: glib/gdatetime.c:544
-msgctxt "abbreviated month name with day"
-msgid "Feb"
-msgstr "Ots."
-
-#: glib/gdatetime.c:546
-msgctxt "abbreviated month name with day"
-msgid "Mar"
-msgstr "Mar."
-
-#: glib/gdatetime.c:548
-msgctxt "abbreviated month name with day"
-msgid "Apr"
-msgstr "Apr."
-
-#: glib/gdatetime.c:550
-msgctxt "abbreviated month name with day"
-msgid "May"
-msgstr "Mai"
-
-#: glib/gdatetime.c:552
-msgctxt "abbreviated month name with day"
-msgid "Jun"
-msgstr "Eka."
-
-#: glib/gdatetime.c:554
-msgctxt "abbreviated month name with day"
-msgid "Jul"
-msgstr "Uzt."
-
-#: glib/gdatetime.c:556
-msgctxt "abbreviated month name with day"
-msgid "Aug"
-msgstr "Abu."
-
-#: glib/gdatetime.c:558
-msgctxt "abbreviated month name with day"
-msgid "Sep"
-msgstr "Ira."
-
-#: glib/gdatetime.c:560
-msgctxt "abbreviated month name with day"
-msgid "Oct"
-msgstr "Urr."
-
-#: glib/gdatetime.c:562
-msgctxt "abbreviated month name with day"
-msgid "Nov"
-msgstr "Aza."
-
-#: glib/gdatetime.c:564
-msgctxt "abbreviated month name with day"
-msgid "Dec"
-msgstr "Abe."
-
 #. Translators: 'before midday' indicator
-#: glib/gdatetime.c:581
+#: ../glib/gdatetime.c:354
 msgctxt "GDateTime"
 msgid "AM"
 msgstr "AM"
 
 #. Translators: 'after midday' indicator
-#: glib/gdatetime.c:584
+#: ../glib/gdatetime.c:357
 msgctxt "GDateTime"
 msgid "PM"
 msgstr "PM"
 
-#: glib/gdir.c:155
+#: ../glib/gdir.c:155
 #, c-format
 msgid "Error opening directory “%s”: %s"
 msgstr "Errorea “%s“ direktorioa irekitzean: %s "
 
-#: glib/gfileutils.c:716 glib/gfileutils.c:808
+#: ../glib/gfileutils.c:706 ../glib/gfileutils.c:798
 #, 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:733
+#: ../glib/gfileutils.c:723
 #, c-format
 msgid "Error reading file “%s”: %s"
 msgstr "Errorea “%s“ fitxategia irakurtzean: %s"
 
-#: glib/gfileutils.c:769
+#: ../glib/gfileutils.c:759
 #, c-format
 msgid "File “%s” is too large"
 msgstr "“%s“ fitxategia handiegia da"
 
-#: glib/gfileutils.c:833
+#: ../glib/gfileutils.c:823
 #, c-format
 msgid "Failed to read from file “%s”: %s"
 msgstr "Ezin izan da “%s“ fitxategitik irakurri: %s"
 
-#: glib/gfileutils.c:881 glib/gfileutils.c:953
+#: ../glib/gfileutils.c:871 ../glib/gfileutils.c:943
 #, c-format
 msgid "Failed to open file “%s”: %s"
 msgstr "Ezin izan da “%s“ fitxategia ireki: %s "
 
-#: glib/gfileutils.c:893
+#: ../glib/gfileutils.c:883
 #, 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:923
+#: ../glib/gfileutils.c:913
 #, 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:1022
+#: ../glib/gfileutils.c:1012
 #, 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:1057 glib/gfileutils.c:1575
+#: ../glib/gfileutils.c:1047 ../glib/gfileutils.c:1554
 #, c-format
 msgid "Failed to create file “%s”: %s"
 msgstr "Ezin izan da “%s“ fitxategia sortu: %s"
 
-#: glib/gfileutils.c:1084
+#: ../glib/gfileutils.c:1074
 #, 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:1127
+#: ../glib/gfileutils.c:1117
 #, 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:1262
+#: ../glib/gfileutils.c:1241
 #, 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:1541
+#: ../glib/gfileutils.c:1520
 #, c-format
 msgid "Template “%s” invalid, should not contain a “%s”"
 msgstr "“%s“ txantiloia baliogabea da, ez luke “%s“ eduki behar"
 
-#: glib/gfileutils.c:1554
+#: ../glib/gfileutils.c:1533
 #, c-format
 msgid "Template “%s” doesn’t contain XXXXXX"
 msgstr "“%s“ txantiloiak ez dauka: XXXXXX"
 
-#: glib/gfileutils.c:2116
+#: ../glib/gfileutils.c:2058
 #, c-format
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Ezin izan da “%s“ esteka sinbolikorik irakurri: %s"
 
-#: glib/giochannel.c:1389
+#: ../glib/giochannel.c:1388
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Ezin izan da “%s“(e)tik “%s“(e)rako bihurtzailea ireki: %s"
 
-#: glib/giochannel.c:1734
+#: ../glib/giochannel.c:1733
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "Ezin dira datu gordinak irakurri “g_io_channel_read_line_string“-en"
 
-#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
+#: ../glib/giochannel.c:1780 ../glib/giochannel.c:2038
+#: ../glib/giochannel.c:2125
 msgid "Leftover unconverted data in read buffer"
 msgstr "Irakurketa-bufferrean geratu diren bihurtu gabeko datuak"
 
-#: glib/giochannel.c:1862 glib/giochannel.c:1939
+#: ../glib/giochannel.c:1861 ../glib/giochannel.c:1938
 msgid "Channel terminates in a partial character"
 msgstr "Kanala karaktere partzial batean bukatzen da"
 
-#: glib/giochannel.c:1925
+#: ../glib/giochannel.c:1924
 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:788
+#: ../glib/gkeyfile.c:736
 msgid "Valid key file could not be found in search dirs"
 msgstr "Ezin izan da baliozko gakoa datuen direktorioan aurkitu"
 
-#: glib/gkeyfile.c:825
+#: ../glib/gkeyfile.c:773
 msgid "Not a regular file"
 msgstr "Ez da fitxategi arrunta"
 
-#: glib/gkeyfile.c:1270
+#: ../glib/gkeyfile.c:1218
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4875,44 +4684,44 @@ msgstr ""
 "ez daukalarik"
 
 #
-#: glib/gkeyfile.c:1327
+#: ../glib/gkeyfile.c:1275
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Taldearen izen baliogabea: %s"
 
-#: glib/gkeyfile.c:1349
+#: ../glib/gkeyfile.c:1297
 msgid "Key file does not start with a group"
 msgstr "Gako-fitxategiak ez da talde batekin hasten"
 
 #
-#: glib/gkeyfile.c:1375
+#: ../glib/gkeyfile.c:1323
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Gakoaren izen baliogabea: %s"
 
-#: glib/gkeyfile.c:1402
+#: ../glib/gkeyfile.c:1350
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Gako-fitxategiak onartzen ez den “%s“ kodeketa du"
 
-#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
-#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
-#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
+#: ../glib/gkeyfile.c:1593 ../glib/gkeyfile.c:1766 ../glib/gkeyfile.c:3146
+#: ../glib/gkeyfile.c:3209 ../glib/gkeyfile.c:3339 ../glib/gkeyfile.c:3469
+#: ../glib/gkeyfile.c:3613 ../glib/gkeyfile.c:3842 ../glib/gkeyfile.c:3909
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Gako-fitxategiak ez dauka “%s“ taldea"
 
-#: glib/gkeyfile.c:1773
+#: ../glib/gkeyfile.c:1721
 #, 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:1935 glib/gkeyfile.c:2051
+#: ../glib/gkeyfile.c:1883 ../glib/gkeyfile.c:1999
 #, 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:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
+#: ../glib/gkeyfile.c:1903 ../glib/gkeyfile.c:2019 ../glib/gkeyfile.c:2388
 #, c-format
 msgid ""
 "Key file contains key “%s” which has a value that cannot be interpreted."
@@ -4920,7 +4729,7 @@ msgstr ""
 "Gako-fitxategiak “%s“ gakoa dauka, baina ezin den interpretatu balio bat "
 "dauka."
 
-#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
+#: ../glib/gkeyfile.c:2606 ../glib/gkeyfile.c:2975
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4929,268 +4738,223 @@ msgstr ""
 "Gako-fitxategiak “%s“ gakoa dauka ('%s taldean), baina dagokion balioa ezin "
 "da interpretatu."
 
-#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
+#: ../glib/gkeyfile.c:2684 ../glib/gkeyfile.c:2761
 #, 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:4274
+#: ../glib/gkeyfile.c:4149
 msgid "Key file contains escape character at end of line"
 msgstr "Gako-fitxategiak ihes-karakterea dauka lerro amaieran"
 
-#: glib/gkeyfile.c:4296
+#: ../glib/gkeyfile.c:4171
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Gako-fitxategiak “%s“ ihes-sekuentzia baliogabea dauka"
 
-#: glib/gkeyfile.c:4440
+#: ../glib/gkeyfile.c:4315
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "“%s“ balioa ezin da zenbaki gisa interpretatu"
 
-#: glib/gkeyfile.c:4454
+#: ../glib/gkeyfile.c:4329
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "“%s“ osoko balioa barrutitik kanpo"
 
-#: glib/gkeyfile.c:4487
+#: ../glib/gkeyfile.c:4362
 #, c-format
 msgid "Value “%s” cannot be interpreted as a float number."
 msgstr "“%s“ balioa ezin da zenbaki mugikor gisa interpretatu."
 
-#: glib/gkeyfile.c:4526
+#: ../glib/gkeyfile.c:4401
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "“%s“ balioa ezin da boolear gisa interpretatu"
 
-#: glib/gmappedfile.c:129
+#: ../glib/gmappedfile.c:129
 #, 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:195
+#: ../glib/gmappedfile.c:195
 #, 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:262
+#: ../glib/gmappedfile.c:262
 #, 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:397 glib/gmarkup.c:439
+#: ../glib/gmarkup.c:397 ../glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Errorea %d lerroko %d karakterean: "
 
-#: glib/gmarkup.c:461 glib/gmarkup.c:544
+#: ../glib/gmarkup.c:461 ../glib/gmarkup.c:544
 #, 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 gisa kodetutako testu baliogabea izenean — “%s“ ez da baliozkoa"
+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:472
+#: ../glib/gmarkup.c:472
 #, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not a valid name"
-msgstr "“%s“ ez da baliozko izena"
+msgid "'%s' is not a valid name"
+msgstr "'%s' ez da baliozko izena "
 
-#: glib/gmarkup.c:488
+#: ../glib/gmarkup.c:488
 #, c-format
-#| msgid "'%s' is not a valid name: '%c'"
-msgid "“%s” is not a valid name: “%c”"
-msgstr "“%s“ ez da baliozko izena: “%c“"
+msgid "'%s' is not a valid name: '%c'"
+msgstr "'%s' ez da baliozko izena: '%c' "
 
-#: glib/gmarkup.c:610
+#: ../glib/gmarkup.c:598
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Errorea %d lerroan: %s"
 
-#: glib/gmarkup.c:687
+#: ../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"
 msgid ""
-"Failed to parse “%-.*s”, which should have been a digit inside a character "
-"reference (&#234; for example)  perhaps the digit is too large"
+"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-"
+"Ezin izan da '%-.*s' analizatu, digitu bat izan behar zuen karaktere-"
 "erreferentzia baten barruan (&#234; adibidez); agian digitua handiegia da"
 
-#: glib/gmarkup.c:699
-#| 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;"
+#: ../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 "
+"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:725
+#: ../glib/gmarkup.c:713
 #, c-format
-#| msgid "Character reference '%-.*s' does not encode a permitted character"
-msgid "Character reference “%-.*s” does not encode a permitted character"
+msgid "Character reference '%-.*s' does not encode a permitted character"
 msgstr ""
-"“%-.*s“ karaktere-erreferentziak ez du baimendutako karaktere bat kodetzen"
+"'%-.*s' karaktere-erreferentziak ez du baimendutako karaktere bat kodetzen"
 
-#: glib/gmarkup.c:763
-#| msgid ""
-#| "Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+#: ../glib/gmarkup.c:751
 msgid ""
-"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+"Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
 msgstr ""
-"“&;“ entitatea hutsik dago; baliozko entitateak hauek dira: &amp; &quot; "
+"'&;' entitatea hutsik dago; baliozko entitateak hauek dira: &amp; &quot; "
 "&lt; &gt; &apos;"
 
-#: glib/gmarkup.c:771
+#: ../glib/gmarkup.c:759
 #, c-format
-#| msgid "Entity name '%-.*s' is not known"
-msgid "Entity name “%-.*s” is not known"
-msgstr "“%-.*s“ entitate-izena ezezaguna da"
+msgid "Entity name '%-.*s' is not known"
+msgstr "'%-.*s' entitate-izena ezezaguna da"
 
-#: glib/gmarkup.c:776
-#| 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;"
+#: ../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;"
+"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:1182
+#: ../glib/gmarkup.c:1170
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokumentuak elementu batez hasi behar du (adibidez, <book>)"
 
-#: glib/gmarkup.c:1222
+#: ../glib/gmarkup.c:1210
 #, 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 "
+"'%s' is not a valid character following a '<' character; it may not begin an "
 "element name"
 msgstr ""
-"“%s“ ez da karaktere balioduna “<“ karakterearen atzetik; baliteke elementu "
+"'%s' ez da karaktere balioduna '<' karakterearen atzetik; baliteke elementu "
 "baten izena ez hastea"
 
-#: glib/gmarkup.c:1264
+#: ../glib/gmarkup.c:1252
 #, 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”"
+"Odd character '%s', expected a '>' character to end the empty-element tag "
+"'%s'"
 msgstr ""
-"“%s“ karaktere bitxia, “>“ karakterea espero zen “%s“ elementuaren etiketa "
+"'%s' karaktere bitxia, '>' karakterea espero zen '%s' elementuaren etiketa "
 "hutsa amaitzeko"
 
-#: glib/gmarkup.c:1345
+#: ../glib/gmarkup.c:1333
 #, 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”"
+"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
 msgstr ""
-"“%1$s“ karaktere bitxia, “=“ espero zen “%3$s“ elementuaren “%2$s“ "
+"'%s' karaktere bitxia, '=' espero zen '$2%s' elementuaren '$1%s' "
 "atributuaren ondoren"
 
-#: glib/gmarkup.c:1386
+#: ../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"
 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 "
+"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 ""
-"“%s“ karaktere bitxia, “>“ edo “/“ karakterea espero zen “%s“ elementuaren "
+"'%s' karaktere bitxia, '>' edo '/' karakterea espero zen '%s' elementuaren "
 "hasiera-etiketa bukatzeko, edo bestela atributu bat. Agian karaktere "
 "baliogabea erabili duzu atributu-izen batean"
 
-#: glib/gmarkup.c:1430
+#: ../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'"
 msgid ""
-"Odd character “%s”, expected an open quote mark after the equals sign when "
-"giving value for attribute “%s” of element “%s”"
+"Odd character '%s', expected an open quote mark after the equals sign when "
+"giving value for attribute '%s' of element '%s'"
 msgstr ""
-"“%1$s“ karaktere bitxia, komatxo irekia espero zen berdin ikurraren ondoren "
-"“%3$s“ elementuaren “%2$s“ atributuari balioa ematean"
+"'%s' karaktere bitxia, komatxo irekia espero zen berdin ikurraren ondoren "
+"'$2%s' elementuaren '$1%s' atributuari balioa ematean"
 
-#: glib/gmarkup.c:1563
+#: ../glib/gmarkup.c:1551
 #, 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 "
+"'%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“e(k) "
+"'%s' ez da karaktere balioduna '</'; karaktereen atzetik; baliteke '%s'e(k) "
 "elementu baten izena ez hastea"
 
-#: glib/gmarkup.c:1599
+#: ../glib/gmarkup.c:1587
 #, 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 “>”"
+"'%s' is not a valid character following the close element name '%s'; the "
+"allowed character is '>'"
 msgstr ""
-"“%s“ karaktere baliogabea da “%s“ itxiera-elementuaren izenaren atzetik; "
-"baimendutako karakterea “>“ da"
+"'%s' karaktere baliogabea da '%s' itxiera-elementuaren izenaren atzetik; "
+"baimendutako karakterea '>' da"
 
-#: glib/gmarkup.c:1610
+#: ../glib/gmarkup.c:1598
 #, c-format
-#| msgid "Element '%s' was closed, no element is currently open"
-msgid "Element “%s” was closed, no element is currently open"
-msgstr "“%s“ elementua itxi egin da, unean ez dago elementurik irekita"
+msgid "Element '%s' was closed, no element is currently open"
+msgstr "'%s' elementua itxi egin da, unean ez dago elementurik irekita"
 
-#: glib/gmarkup.c:1619
+#: ../glib/gmarkup.c:1607
 #, 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“ elementua itxi egin da, baina unean “%s“ elementua dago irekita"
+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:1772
+#: ../glib/gmarkup.c:1760
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokumentua hutsik dago edo zuriuneak bakarrik ditu"
 
-#: glib/gmarkup.c:1786
-#| msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgid "Document ended unexpectedly just after an open angle bracket “<”"
-msgstr "Dokumentua ustekabean itxi da angelu-parentesi ireki baten ondoren “<“"
+#: ../glib/gmarkup.c:1774
+msgid "Document ended unexpectedly just after an open angle bracket '<'"
+msgstr "Dokumentua ustekabean itxi da angelu-parentesi ireki baten ondoren '<'"
 
-#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
+#: ../glib/gmarkup.c:1782 ../glib/gmarkup.c:1827
 #, 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 "
+"Document ended unexpectedly with elements still open - '%s' was the last "
 "element opened"
 msgstr ""
-"Dokumentua ustekabean amaitu da oraindik irekita zeuden elementuekin. “%s“ "
+"Dokumentua ustekabean amaitu da oraindik irekita zeuden elementuekin. '%s' "
 "irekitako azken elementua da"
 
-#: glib/gmarkup.c:1802
+#: ../glib/gmarkup.c:1790
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5199,20 +4963,20 @@ msgstr ""
 "Dokumentua ustekabean amaitu da, angelu-parentesi itxia ikustea espero nuen <"
 "%s/> etiketa amaitzen"
 
-#: glib/gmarkup.c:1808
+#: ../glib/gmarkup.c:1796
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokumentua ustekabean amaitu da elementu-izen baten barruan"
 
-#: glib/gmarkup.c:1814
+#: ../glib/gmarkup.c:1802
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokumentua ustekabean amaitu da atributu-izen baten barruan"
 
-#: glib/gmarkup.c:1819
+#: ../glib/gmarkup.c:1807
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr ""
 "Dokumentua ustekabean amaitu da elementua irekitzeko etiketa baten barruan."
 
-#: glib/gmarkup.c:1825
+#: ../glib/gmarkup.c:1813
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5220,325 +4984,316 @@ msgstr ""
 "Dokumentua ustekabean amaitu da atributu-izen baten ondorengo berdin "
 "ikurraren atzetik; ez dago atributu-baliorik"
 
-#: glib/gmarkup.c:1832
+#: ../glib/gmarkup.c:1820
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokumentua ustekabean amaitu da atributu-balio baten barruan"
 
-#: glib/gmarkup.c:1849
+#: ../glib/gmarkup.c:1836
 #, c-format
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid "Document ended unexpectedly inside the close tag for element “%s”"
+msgid "Document ended unexpectedly inside the close tag for element '%s'"
 msgstr ""
-"Dokumentua ustekabean amaitu da “%s“ elementuaren itxiera-etiketaren barruan"
+"Dokumentua ustekabean amaitu da '%s' elementuaren itxiera-etiketaren barruan"
 
-#: glib/gmarkup.c:1853
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid ""
-"Document ended unexpectedly inside the close tag for an unopened element"
-msgstr ""
-"Dokumentua ustekabean amaitu da ireki gabeko elementuaren itxiera-etiketaren"
-" barruan"
-
-#: glib/gmarkup.c:1859
+#: ../glib/gmarkup.c:1842
 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"
 
-#: glib/goption.c:861
+#: ../glib/goption.c:861
 msgid "[OPTION…]"
 msgstr "[AUKERA…]"
 
-#: glib/goption.c:977
+#: ../glib/goption.c:977
 msgid "Help Options:"
 msgstr "Laguntzako aukerak:"
 
-#: glib/goption.c:978
+#: ../glib/goption.c:978
 msgid "Show help options"
 msgstr "Erakutsi laguntzako aukerak"
 
-#: glib/goption.c:984
+#: ../glib/goption.c:984
 msgid "Show all help options"
 msgstr "Erakutsi laguntzako aukera guztiak"
 
-#: glib/goption.c:1047
+#: ../glib/goption.c:1047
 msgid "Application Options:"
 msgstr "Aplikazio-aukerak:"
 
-#: glib/goption.c:1049
+#: ../glib/goption.c:1049
 msgid "Options:"
 msgstr "Aukerak:"
 
-#: glib/goption.c:1113 glib/goption.c:1183
+#: ../glib/goption.c:1113 ../glib/goption.c:1183
 #, c-format
 msgid "Cannot parse integer value “%s” for %s"
 msgstr "Ezin da “%2$s“(r)en “%1$s“ osoko balioa analizatu"
 
-#: glib/goption.c:1123 glib/goption.c:1191
+#: ../glib/goption.c:1123 ../glib/goption.c:1191
 #, c-format
 msgid "Integer value “%s” for %s out of range"
 msgstr "%2$s(r)en “%1$s“ osoko balioa barrutitik kanpo"
 
-#: glib/goption.c:1148
+#: ../glib/goption.c:1148
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
 msgstr "Ezin da “%2$s“(r)en “%1$s“ balio bikoitza analizatu"
 
-#: glib/goption.c:1156
+#: ../glib/goption.c:1156
 #, c-format
 msgid "Double value “%s” for %s out of range"
 msgstr "%2$s(r)en “%1$s“ balio bikoitza barrutitik kanpo"
 
-#: glib/goption.c:1448 glib/goption.c:1527
+#: ../glib/goption.c:1448 ../glib/goption.c:1527
 #, c-format
 msgid "Error parsing option %s"
 msgstr "Errorea %s aukera analizatzean"
 
-#: glib/goption.c:1558 glib/goption.c:1671
+#: ../glib/goption.c:1558 ../glib/goption.c:1671
 #, c-format
 msgid "Missing argument for %s"
 msgstr "%s(e)ko argumentua falta da"
 
-#: glib/goption.c:2132
+#: ../glib/goption.c:2132
 #, c-format
 msgid "Unknown option %s"
 msgstr "%s aukera ezezaguna"
 
-#: glib/gregex.c:257
+#: ../glib/gregex.c:257
 msgid "corrupted object"
 msgstr "hondatutako objektua"
 
-#: glib/gregex.c:259
+#: ../glib/gregex.c:259
 msgid "internal error or corrupted object"
 msgstr "barneko errorea edo hondatutako objektua"
 
-#: glib/gregex.c:261
+#: ../glib/gregex.c:261
 msgid "out of memory"
 msgstr "Memoriarik ez"
 
-#: glib/gregex.c:266
+#: ../glib/gregex.c:266
 msgid "backtracking limit reached"
 msgstr "atzera-jotzearen mugara gainditua"
 
-#: glib/gregex.c:278 glib/gregex.c:286
+#: ../glib/gregex.c:278 ../glib/gregex.c:286
 msgid "the pattern contains items not supported for partial matching"
 msgstr ""
 "ereduak zenbait elementu ditu bat etortze partzialetan onartzen ez direnak"
 
-#: glib/gregex.c:280
+#: ../glib/gregex.c:280
 msgid "internal error"
 msgstr "barneko errorea"
 
-#: glib/gregex.c:288
+#: ../glib/gregex.c:288
 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:297
+#: ../glib/gregex.c:297
 msgid "recursion limit reached"
 msgstr "errekurtsioaren muga gainditua"
 
-#: glib/gregex.c:299
+#: ../glib/gregex.c:299
 msgid "invalid combination of newline flags"
 msgstr "lerro-jauzien banderen baliogabeko konbinazioa"
 
-#: glib/gregex.c:301
+#: ../glib/gregex.c:301
 msgid "bad offset"
 msgstr "okerreko desplazamendua"
 
-#: glib/gregex.c:303
+#: ../glib/gregex.c:303
 msgid "short utf8"
 msgstr "utf8 laburra"
 
-#: glib/gregex.c:305
+#: ../glib/gregex.c:305
 msgid "recursion loop"
 msgstr "errekurtsioaren begizta"
 
-#: glib/gregex.c:309
+#: ../glib/gregex.c:309
 msgid "unknown error"
 msgstr "errore ezezaguna"
 
-#: glib/gregex.c:329
+#: ../glib/gregex.c:329
 msgid "\\ at end of pattern"
 msgstr "\\ ereduaren amaieran"
 
-#: glib/gregex.c:332
+#: ../glib/gregex.c:332
 msgid "\\c at end of pattern"
 msgstr "\\c ereduaren amaieran"
 
-#: glib/gregex.c:335
+#: ../glib/gregex.c:335
 msgid "unrecognized character following \\"
 msgstr "karaktere ezezagunak jarraitzen dio \\ karaktereari"
 
-#: glib/gregex.c:338
+#: ../glib/gregex.c:338
 msgid "numbers out of order in {} quantifier"
 msgstr "zenbakiak barrutitik kanpo {} kuantifikatzailean"
 
-#: glib/gregex.c:341
+#: ../glib/gregex.c:341
 msgid "number too big in {} quantifier"
 msgstr "zenbaki handiegiak {} kuantifikatzaileak"
 
-#: glib/gregex.c:344
+#: ../glib/gregex.c:344
 msgid "missing terminating ] for character class"
 msgstr "karaktere-klasearen amaierako ] falta da"
 
-#: glib/gregex.c:347
+#: ../glib/gregex.c:347
 msgid "invalid escape sequence in character class"
 msgstr "karaktere-klasean baliogabeko ihes sekuentzia"
 
-#: glib/gregex.c:350
+#: ../glib/gregex.c:350
 msgid "range out of order in character class"
 msgstr "karaktere-klaseko barrutia barrutitik kanpo"
 
-#: glib/gregex.c:353
+#: ../glib/gregex.c:353
 msgid "nothing to repeat"
 msgstr "ezer ez errepikatzeko"
 
-#: glib/gregex.c:357
+#: ../glib/gregex.c:357
 msgid "unexpected repeat"
 msgstr "ustekabeko begizta"
 
-#: glib/gregex.c:360
+#: ../glib/gregex.c:360
 msgid "unrecognized character after (? or (?-"
 msgstr "karaktere ezezaguna (? edo (?- karaktereen atzetik"
 
-#: glib/gregex.c:363
+#: ../glib/gregex.c:363
 msgid "POSIX named classes are supported only within a class"
 msgstr "POSIX izeneko klaseak soilik onartzen dira klase baten barruan"
 
-#: glib/gregex.c:366
+#: ../glib/gregex.c:366
 msgid "missing terminating )"
 msgstr "amaierako ) falta da"
 
-#: glib/gregex.c:369
+#: ../glib/gregex.c:369
 msgid "reference to non-existent subpattern"
 msgstr "existitzen ez den azpieredu baten erreferentzia"
 
-#: glib/gregex.c:372
+#: ../glib/gregex.c:372
 msgid "missing ) after comment"
 msgstr "iruzkinaren ondoren ) falta da"
 
-#: glib/gregex.c:375
+#: ../glib/gregex.c:375
 msgid "regular expression is too large"
 msgstr "adierazpen erregularra luzeegia da"
 
-#: glib/gregex.c:378
+#: ../glib/gregex.c:378
 msgid "failed to get memory"
 msgstr "huts egin du memoria lortzean"
 
-#: glib/gregex.c:382
+#: ../glib/gregex.c:382
 msgid ") without opening ("
 msgstr ") dago irekierako ( gabe"
 
-#: glib/gregex.c:386
+#: ../glib/gregex.c:386
 msgid "code overflow"
 msgstr "kodea gainezkatua"
 
-#: glib/gregex.c:390
+#: ../glib/gregex.c:390
 msgid "unrecognized character after (?<"
 msgstr "karaktere ezezaguna (?< karaktereen atzetik"
 
-#: glib/gregex.c:393
+#: ../glib/gregex.c:393
 msgid "lookbehind assertion is not fixed length"
 msgstr "'lookbehind' baieztapenak ez du luzera finkorik"
 
-#: glib/gregex.c:396
+#: ../glib/gregex.c:396
 msgid "malformed number or name after (?("
 msgstr "gaizki osatutako zenbakia edo izena (?(-ren atzetik"
 
-#: glib/gregex.c:399
+#: ../glib/gregex.c:399
 msgid "conditional group contains more than two branches"
 msgstr "baldintza taldeak bi adar baino gehiago ditu"
 
-#: glib/gregex.c:402
+#: ../glib/gregex.c:402
 msgid "assertion expected after (?("
 msgstr "baieztapena espero zen (?)-ren atzetik"
 
 #. 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
+#: ../glib/gregex.c:409
 msgid "(?R or (?[+-]digits must be followed by )"
 msgstr "(?R edo (?[+-] digituak )-rekin jarraitu behar dira"
 
-#: glib/gregex.c:412
+#: ../glib/gregex.c:412
 msgid "unknown POSIX class name"
 msgstr "POSIX klasearen izen ezezaguna"
 
-#: glib/gregex.c:415
+#: ../glib/gregex.c:415
 msgid "POSIX collating elements are not supported"
 msgstr "Tartekatutako POSIX elementuak ez daude onartuta"
 
-#: glib/gregex.c:418
+#: ../glib/gregex.c:418
 msgid "character value in \\x{...} sequence is too large"
 msgstr "\\x{...} sekuentziako karaktere-balioa luzeegia da"
 
-#: glib/gregex.c:421
+#: ../glib/gregex.c:421
 msgid "invalid condition (?(0)"
 msgstr "baliogabeko (?(0) baldintza"
 
-#: glib/gregex.c:424
+#: ../glib/gregex.c:424
 msgid "\\C not allowed in lookbehind assertion"
 msgstr "\\C ez dago baimenduta 'lookbehind' baieztapenean"
 
-#: glib/gregex.c:431
+#: ../glib/gregex.c:431
 msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
 msgstr "\\L, \\l, \\N{izena}, \\U, eta \\u ihes-karaktereak ez daude onartuta"
 
-#: glib/gregex.c:434
+#: ../glib/gregex.c:434
 msgid "recursive call could loop indefinitely"
 msgstr "dei errekurtsiboa amaierarik gabeko begiztan sar daiteke"
 
-#: glib/gregex.c:438
+#: ../glib/gregex.c:438
 msgid "unrecognized character after (?P"
 msgstr "karaktere ezezaguna (?P karaktereen atzetik"
 
-#: glib/gregex.c:441
+#: ../glib/gregex.c:441
 msgid "missing terminator in subpattern name"
 msgstr "amaierako karakterea falta da azpiereduko izenean"
 
-#: glib/gregex.c:444
+#: ../glib/gregex.c:444
 msgid "two named subpatterns have the same name"
 msgstr "bi azpiereduk izen berdina dute"
 
-#: glib/gregex.c:447
+#: ../glib/gregex.c:447
 msgid "malformed \\P or \\p sequence"
 msgstr "gaizki osatutako \\P edo \\p sekuentzia"
 
-#: glib/gregex.c:450
+#: ../glib/gregex.c:450
 msgid "unknown property name after \\P or \\p"
 msgstr "propietate-izen ezezaguna \\P edo \\p atzetik"
 
-#: glib/gregex.c:453
+#: ../glib/gregex.c:453
 msgid "subpattern name is too long (maximum 32 characters)"
 msgstr "azpiereduaren izena luzeegia (32 karaktere gehienez)"
 
-#: glib/gregex.c:456
+#: ../glib/gregex.c:456
 msgid "too many named subpatterns (maximum 10,000)"
 msgstr "izendun azpieredu gehiegi (10.000 gehienez)"
 
-#: glib/gregex.c:459
+#: ../glib/gregex.c:459
 msgid "octal value is greater than \\377"
 msgstr "balio zortzitarra \\377 baino handiagoa"
 
-#: glib/gregex.c:463
+#: ../glib/gregex.c:463
 msgid "overran compiling workspace"
 msgstr "konpilazioaren laneko area gainezkatua"
 
-#: glib/gregex.c:467
+#: ../glib/gregex.c:467
 msgid "previously-checked referenced subpattern not found"
 msgstr "ez da aurrez egiaztatutako erreferentziatutako azpieredua aurkitu"
 
-#: glib/gregex.c:470
+#: ../glib/gregex.c:470
 msgid "DEFINE group contains more than one branch"
 msgstr "DEFINE taldeak adar bat baino gehiago ditu"
 
-#: glib/gregex.c:473
+#: ../glib/gregex.c:473
 msgid "inconsistent NEWLINE options"
 msgstr "NEWLINE aukera kontraesankorra"
 
-#: glib/gregex.c:476
+#: ../glib/gregex.c:476
 msgid ""
 "\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
 "or by a plain number"
@@ -5546,284 +5301,278 @@ msgstr ""
 "\\g ez da parentesi, kortxete edo aipu motako izena edo zenbaki, edo zenbaki "
 "soil batekin jarraitzen"
 
-#: glib/gregex.c:480
+#: ../glib/gregex.c:480
 msgid "a numbered reference must not be zero"
 msgstr "zenbatutako erreferentzia bat ezin du zero izan"
 
-#: glib/gregex.c:483
+#: ../glib/gregex.c:483
 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:486
+#: ../glib/gregex.c:486
 msgid "(*VERB) not recognized"
 msgstr "(*VERB) ez da ezagutzen "
 
-#: glib/gregex.c:489
+#: ../glib/gregex.c:489
 msgid "number is too big"
 msgstr "zenbakia handiegia da"
 
-#: glib/gregex.c:492
+#: ../glib/gregex.c:492
 msgid "missing subpattern name after (?&"
 msgstr "azpiereduaren izena falta da (?& ondoren"
 
-#: glib/gregex.c:495
+#: ../glib/gregex.c:495
 msgid "digit expected after (?+"
 msgstr "digitua espero zen (?+ ondoren"
 
-#: glib/gregex.c:498
+#: ../glib/gregex.c:498
 msgid "] is an invalid data character in JavaScript compatibility mode"
 msgstr ""
 "] datuen baliogabeko karaktere bat da JavaScript-en bateragarritasun moduan "
 
-#: glib/gregex.c:501
+#: ../glib/gregex.c:501
 msgid "different names for subpatterns of the same number are not allowed"
 msgstr "zenbaki berdinaren azpiereduen izen desberdinak ez daude onartuta"
 
-#: glib/gregex.c:504
+#: ../glib/gregex.c:504
 msgid "(*MARK) must have an argument"
 msgstr "(*MARK) argumentu bat eduki behar du"
 
-#: glib/gregex.c:507
+#: ../glib/gregex.c:507
 msgid "\\c must be followed by an ASCII character"
 msgstr "\\c ondoren ASCII karaktere bat behar da"
 
-#: glib/gregex.c:510
+#: ../glib/gregex.c:510
 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:513
+#: ../glib/gregex.c:513
 msgid "\\N is not supported in a class"
 msgstr "\\N ez dago klase batean onartuta"
 
-#: glib/gregex.c:516
+#: ../glib/gregex.c:516
 msgid "too many forward references"
 msgstr "aurreranzko erreferentzia gehiegi"
 
-#: glib/gregex.c:519
+#: ../glib/gregex.c:519
 msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
 msgstr "izena luzeegia da  (*MARK), (*PRUNE), (*SKIP), edo (*THEN)-en"
 
-#: glib/gregex.c:522
+#: ../glib/gregex.c:522
 msgid "character value in \\u.... sequence is too large"
 msgstr "\\u sekuentziako karaktere-balioa luzeegia da"
 
-#: glib/gregex.c:745 glib/gregex.c:1983
+#: ../glib/gregex.c:745 ../glib/gregex.c:1977
 #, c-format
 msgid "Error while matching regular expression %s: %s"
 msgstr "Errorea %s adierazpen erregularra bilatzean: %s"
 
-#: glib/gregex.c:1316
+#: ../glib/gregex.c:1316
 msgid "PCRE library is compiled without UTF8 support"
 msgstr "PCRE liburutegia UTF8 euskarri gabe konpilatua"
 
-#: glib/gregex.c:1320
+#: ../glib/gregex.c:1320
 msgid "PCRE library is compiled without UTF8 properties support"
 msgstr "PCRE liburutegia UTF8 propietateen euskarri gabe konpilatua"
 
-#: glib/gregex.c:1328
+#: ../glib/gregex.c:1328
 msgid "PCRE library is compiled with incompatible options"
 msgstr "PCRE liburutegia aukera bateragarririk gabe konpilatua"
 
-#: glib/gregex.c:1357
+#: ../glib/gregex.c:1357
 #, c-format
 msgid "Error while optimizing regular expression %s: %s"
 msgstr "Errorea %s adierazpen erregularra optimizatzean: %s"
 
-#: glib/gregex.c:1437
+#: ../glib/gregex.c:1437
 #, c-format
 msgid "Error while compiling regular expression %s at char %d: %s"
 msgstr "Errorea %s adierazpen erregularra %d karakterean konpilatzean: %s"
 
-#: glib/gregex.c:2419
+#: ../glib/gregex.c:2413
 msgid "hexadecimal digit or “}” expected"
 msgstr "digitu hamaseitarra edo “}“ espero zen"
 
-#: glib/gregex.c:2435
+#: ../glib/gregex.c:2429
 msgid "hexadecimal digit expected"
 msgstr "digitu hamaseitarra espero zen"
 
-#: glib/gregex.c:2475
+#: ../glib/gregex.c:2469
 msgid "missing “<” in symbolic reference"
 msgstr "“<“ falta da erreferentzia sinbolikoan"
 
-#: glib/gregex.c:2484
+#: ../glib/gregex.c:2478
 msgid "unfinished symbolic reference"
 msgstr "amaitu gabeko erreferentzia sinbolikoa"
 
-#: glib/gregex.c:2491
+#: ../glib/gregex.c:2485
 msgid "zero-length symbolic reference"
 msgstr "zero luzerako erreferentzia sinbolikoa"
 
-#: glib/gregex.c:2502
+#: ../glib/gregex.c:2496
 msgid "digit expected"
 msgstr "digitua espero zen"
 
-#: glib/gregex.c:2520
+#: ../glib/gregex.c:2514
 msgid "illegal symbolic reference"
 msgstr "erreferentzia sinboliko ilegala"
 
-#: glib/gregex.c:2582
+#: ../glib/gregex.c:2576
 msgid "stray final “\\”"
 msgstr "“\\“ katearen amaieran"
 
-#: glib/gregex.c:2586
+#: ../glib/gregex.c:2580
 msgid "unknown escape sequence"
 msgstr "ihes-sekuentzi ezezaguna"
 
-#: glib/gregex.c:2596
+#: ../glib/gregex.c:2590
 #, c-format
 msgid "Error while parsing replacement text “%s” at char %lu: %s"
 msgstr "Errorea ordezko “%s“ testua analizatzean %lu karakterean: %s"
 
-#: glib/gshell.c:94
+#: ../glib/gshell.c:94
 msgid "Quoted text doesn’t begin with a quotation mark"
 msgstr "Komatxo arteko testua ez da komatxoekin hasten"
 
-#: glib/gshell.c:184
+#: ../glib/gshell.c:184
 msgid "Unmatched quotation mark in command line or other shell-quoted text"
 msgstr ""
 "Bat ez datozen komatxoak daude komando-lerroan edo shell-ak aipatutako beste "
 "testu batean"
 
-#: glib/gshell.c:580
+#: ../glib/gshell.c:580
 #, c-format
 msgid "Text ended just after a “\\” character. (The text was “%s”)"
 msgstr "Testua “\\“ karakterearen atzetik amaitu da (testua “%s“ zen)"
 
-#: glib/gshell.c:587
+#: ../glib/gshell.c:587
 #, 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)"
 
-#: glib/gshell.c:599
+#: ../glib/gshell.c:599
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Testua hutsik dago (edo zuriuneak bakarrik ditu)"
 
-#: glib/gspawn.c:308
+#: ../glib/gspawn.c:250
 #, c-format
 msgid "Failed to read data from child process (%s)"
 msgstr "Ezin izan da daturik irakurri prozesu umetik (%s)"
 
-#: glib/gspawn.c:456
+#: ../glib/gspawn.c:394
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr "Ustekabeko errorea select()-en, datuak prozesu umetik irakurtzen (%s)"
 
-#: glib/gspawn.c:541
+#: ../glib/gspawn.c:479
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Ustekabeko errorea waitpid()-en (%s)"
 
-#: glib/gspawn.c:1049 glib/gspawn-win32.c:1318
+#: ../glib/gspawn.c:886 ../glib/gspawn-win32.c:1231
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Prozesu umea amaitu da %ld kodearekin"
 
-#: glib/gspawn.c:1057
+#: ../glib/gspawn.c:894
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Prozesu umea %ld seinaleak hilda"
 
-#: glib/gspawn.c:1064
+#: ../glib/gspawn.c:901
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Prozesu umea %ld seinaleak geldituta"
 
-#: glib/gspawn.c:1071
+#: ../glib/gspawn.c:908
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "Prozesu umea ustekabean amaituta"
 
-#: glib/gspawn.c:1366 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: ../glib/gspawn.c:1313 ../glib/gspawn-win32.c:337 ../glib/gspawn-win32.c:345
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Ezin izan da kanalizazio umetik irakurri (%s) "
 
-#: glib/gspawn.c:1614
-#, c-format
-#| msgid "Failed to execute child process “%s” (%s)"
-msgid "Failed to spawn child process “%s” (%s)"
-msgstr "Huts egin du “%s“ prozesu umea abiaraztean (%s)"
-
-#: glib/gspawn.c:1653
+#: ../glib/gspawn.c:1383
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Ezin da sardetu (%s)"
 
-#: glib/gspawn.c:1802 glib/gspawn-win32.c:370
+#: ../glib/gspawn.c:1532 ../glib/gspawn-win32.c:368
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Ezin izan da “%s“ direktoriora aldatu (%s)"
 
-#: glib/gspawn.c:1812
+#: ../glib/gspawn.c:1542
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Ezin izan da “%s“ prozesu umea exekutatu (%s)"
 
-#: glib/gspawn.c:1822
+#: ../glib/gspawn.c:1552
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Ezin izan da prozesu umearen irteera edo sarrera birbideratu (%s)"
 
-#: glib/gspawn.c:1831
+#: ../glib/gspawn.c:1561
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Ezin izan da prozesu umea sardetu (%s)"
 
-#: glib/gspawn.c:1839
+#: ../glib/gspawn.c:1569
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Errore ezezaguna “%s“ prozesu umea exekutatzean"
 
-#: glib/gspawn.c:1863
+#: ../glib/gspawn.c:1593
 #, 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:283
+#: ../glib/gspawn-win32.c:281
 msgid "Failed to read data from child process"
 msgstr "Ezin izan da daturik irakurri prozesu umetik"
 
-#: glib/gspawn-win32.c:300
+#: ../glib/gspawn-win32.c:298
 #, c-format
 msgid "Failed to create pipe for communicating with child process (%s)"
 msgstr "Ezin izan da kanalizazioa sortu prozesu umearekin komunikatzeko (%s) "
 
-#: glib/gspawn-win32.c:376 glib/gspawn-win32.c:381 glib/gspawn-win32.c:500
+#: ../glib/gspawn-win32.c:374 ../glib/gspawn-win32.c:493
 #, c-format
 msgid "Failed to execute child process (%s)"
 msgstr "Ezin izan da prozesu umea exekutatu (%s)"
 
 #
-#: glib/gspawn-win32.c:450
+#: ../glib/gspawn-win32.c:443
 #, c-format
 msgid "Invalid program name: %s"
 msgstr "Programaren izen baliogabea: %s"
 
-#: glib/gspawn-win32.c:460 glib/gspawn-win32.c:714
+#: ../glib/gspawn-win32.c:453 ../glib/gspawn-win32.c:720
 #, c-format
 msgid "Invalid string in argument vector at %d: %s"
 msgstr "Kate baliogabea %d(e)ko bektorearen argumentuan: %s"
 
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:729
+#: ../glib/gspawn-win32.c:464 ../glib/gspawn-win32.c:735
 #, c-format
 msgid "Invalid string in environment: %s"
 msgstr "Kate baliogabea ingurunean: %s"
 
-#: glib/gspawn-win32.c:710
+#: ../glib/gspawn-win32.c:716
 #, c-format
 msgid "Invalid working directory: %s"
 msgstr "Laneko direktorio baliogabea: %s"
 
 #
-#: glib/gspawn-win32.c:772
+#: ../glib/gspawn-win32.c:781
 #, c-format
 msgid "Failed to execute helper program (%s)"
 msgstr "Ezin izan da laguntza-programa exekutatu (%s)"
 
-#: glib/gspawn-win32.c:1045
+#: ../glib/gspawn-win32.c:995
 msgid ""
 "Unexpected error in g_io_channel_win32_poll() reading data from a child "
 "process"
@@ -5831,249 +5580,224 @@ msgstr ""
 "Ustekabeko errorea gertatu da 'g_io_channel_win32_poll()'-en prozesu umetik "
 "datuak irakurtzean"
 
-#: glib/gstrfuncs.c:3247 glib/gstrfuncs.c:3348
+#: ../glib/gstrfuncs.c:3247 ../glib/gstrfuncs.c:3348
 msgid "Empty string is not a number"
 msgstr "Kate hutsa ez da zenbaki bat"
 
-#: glib/gstrfuncs.c:3271
+#: ../glib/gstrfuncs.c:3271
 #, c-format
+#| msgid "'%s' is not a valid name"
 msgid "“%s” is not a signed number"
 msgstr "“%s” ez da zeinudun zenbaki bat"
 
-#: glib/gstrfuncs.c:3281 glib/gstrfuncs.c:3384
+#: ../glib/gstrfuncs.c:3281 ../glib/gstrfuncs.c:3384
 #, c-format
 msgid "Number “%s” is out of bounds [%s, %s]"
 msgstr "“%s” zenbakia barrutitik kanpo [%s, %s]"
 
-#: glib/gstrfuncs.c:3374
+#: ../glib/gstrfuncs.c:3374
 #, c-format
+#| msgid "'%s' is not a valid name"
 msgid "“%s” is not an unsigned number"
 msgstr "“%s” ez da zeinurik gabeko zenbaki bat"
 
-#: glib/gutf8.c:811
+#: ../glib/gutf8.c:808
 msgid "Failed to allocate memory"
 msgstr "Huts egin du memoria esleitzean"
 
-#: glib/gutf8.c:944
+#: ../glib/gutf8.c:941
 msgid "Character out of range for UTF-8"
 msgstr "Karakterea UTF-8 barrutitik kanpo"
 
-#: 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:1042 ../glib/gutf8.c:1051 ../glib/gutf8.c:1181
+#: ../glib/gutf8.c:1190 ../glib/gutf8.c:1329 ../glib/gutf8.c:1426
 msgid "Invalid sequence in conversion input"
 msgstr "Sekuentzia baliogabea bihurketa-sarreran"
 
-#: glib/gutf8.c:1343 glib/gutf8.c:1440
+#: ../glib/gutf8.c:1340 ../glib/gutf8.c:1437
 msgid "Character out of range for UTF-16"
 msgstr "Karakterea UTF-16 barrutitik kanpo"
 
-#: glib/gutils.c:2244
-#, c-format
-msgid "%.1f kB"
-msgstr "%.1f kB"
-
-#: glib/gutils.c:2245 glib/gutils.c:2451
-#, c-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#: glib/gutils.c:2246 glib/gutils.c:2456
-#, c-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#: glib/gutils.c:2247 glib/gutils.c:2461
-#, c-format
-msgid "%.1f TB"
-msgstr "%.1f TB"
-
-#: glib/gutils.c:2248 glib/gutils.c:2466
+#: ../glib/gutils.c:2149 ../glib/gutils.c:2176 ../glib/gutils.c:2282
 #, c-format
-msgid "%.1f PB"
-msgstr "%.1f PB"
-
-#: glib/gutils.c:2249 glib/gutils.c:2471
-#, c-format
-msgid "%.1f EB"
-msgstr "%.1f EB"
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "byte %u"
+msgstr[1] "%u byte"
 
-#: glib/gutils.c:2252
+#: ../glib/gutils.c:2155
 #, c-format
 msgid "%.1f KiB"
 msgstr "%.1f KiB"
 
-#: glib/gutils.c:2253
+#: ../glib/gutils.c:2157
 #, c-format
 msgid "%.1f MiB"
 msgstr "%.1f MiB"
 
-#: glib/gutils.c:2254
+#: ../glib/gutils.c:2160
 #, c-format
 msgid "%.1f GiB"
 msgstr "%.1f GiB"
 
-#: glib/gutils.c:2255
+#: ../glib/gutils.c:2163
 #, c-format
 msgid "%.1f TiB"
 msgstr "%.1f TiB"
 
-#: glib/gutils.c:2256
+#: ../glib/gutils.c:2166
 #, c-format
 msgid "%.1f PiB"
 msgstr "%.1f PiB"
 
-#: glib/gutils.c:2257
+#: ../glib/gutils.c:2169
 #, c-format
 msgid "%.1f EiB"
 msgstr "%.1f EiB"
 
-#: glib/gutils.c:2260
-#, c-format
-#| msgid "%.1f kB"
-msgid "%.1f kb"
-msgstr "%.1f kb"
-
-#: glib/gutils.c:2261
-#, c-format
-#| msgid "%.1f MB"
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
-
-#: glib/gutils.c:2262
-#, c-format
-#| msgid "%.1f GB"
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
-
-#: glib/gutils.c:2263
-#, c-format
-#| msgid "%.1f TB"
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
-
-#: glib/gutils.c:2264
-#, c-format
-#| msgid "%.1f PB"
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
-
-#: glib/gutils.c:2265
-#, c-format
-#| msgid "%.1f EB"
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
-
-#: glib/gutils.c:2268
-#, c-format
-#| msgid "%.1f KiB"
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
-
-#: glib/gutils.c:2269
-#, c-format
-#| msgid "%.1f MiB"
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
-
-#: glib/gutils.c:2270
+#: ../glib/gutils.c:2182
 #, c-format
-#| msgid "%.1f GiB"
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
+msgid "%.1f kB"
+msgstr "%.1f kB"
 
-#: glib/gutils.c:2271
+#: ../glib/gutils.c:2185 ../glib/gutils.c:2300
 #, c-format
-#| msgid "%.1f TiB"
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
+msgid "%.1f MB"
+msgstr "%.1f MB"
 
-#: glib/gutils.c:2272
+#: ../glib/gutils.c:2188 ../glib/gutils.c:2305
 #, c-format
-#| msgid "%.1f PiB"
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
+msgid "%.1f GB"
+msgstr "%.1f GB"
 
-#: glib/gutils.c:2273
+#: ../glib/gutils.c:2190 ../glib/gutils.c:2310
 #, c-format
-#| msgid "%.1f EiB"
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
+msgid "%.1f TB"
+msgstr "%.1f TB"
 
-#: glib/gutils.c:2307 glib/gutils.c:2433
+#: ../glib/gutils.c:2193 ../glib/gutils.c:2315
 #, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "byte %u"
-msgstr[1] "%u byte"
+msgid "%.1f PB"
+msgstr "%.1f PB"
 
-#: glib/gutils.c:2311
+#: ../glib/gutils.c:2196 ../glib/gutils.c:2320
 #, c-format
-#| msgid "%u byte"
-#| msgid_plural "%u bytes"
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "byte %u"
-msgstr[1] "%u byte"
+msgid "%.1f EB"
+msgstr "%.1f EB"
 
 #. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2378
+#: ../glib/gutils.c:2233
 #, c-format
 msgid "%s byte"
 msgid_plural "%s bytes"
 msgstr[0] "byte %s"
 msgstr[1] "%s byte"
 
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2383
-#, c-format
-#| msgid "%s byte"
-#| msgid_plural "%s bytes"
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "bit %s"
-msgstr[1] "%s bit"
-
 #. 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:2446
+#: ../glib/gutils.c:2295
 #, c-format
 msgid "%.1f KB"
 msgstr "%.1f KB"
 
-#~ msgid "No such method '%s'"
-#~ msgstr "Ez dago '%s' bezalako metodorik"
+msgctxt "full month name with day"
+msgid "January"
+msgstr "Urtarrila"
 
-#~ 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"
+msgctxt "full month name with day"
+msgid "February"
+msgstr "Otsaila"
 
-#~ msgid ""
-#~ "Message has %d file descriptors but the header field indicates %d file "
-#~ "descriptors"
-#~ msgstr ""
-#~ "Mezuak fitxategi-deskriptore %d du baina goiburuko eremuak %d fitxategi-"
-#~ "deskriptore adierazten ditu"
+msgctxt "full month name with day"
+msgid "March"
+msgstr "Martxoa"
+
+msgctxt "full month name with day"
+msgid "April"
+msgstr "Apirila"
+
+msgctxt "full month name with day"
+msgid "May"
+msgstr "Maiatza"
+
+msgctxt "full month name with day"
+msgid "June"
+msgstr "Ekaina"
+
+msgctxt "full month name with day"
+msgid "July"
+msgstr "Uztaila"
+
+msgctxt "full month name with day"
+msgid "August"
+msgstr "Abuztua"
+
+msgctxt "full month name with day"
+msgid "September"
+msgstr "Iraila"
+
+msgctxt "full month name with day"
+msgid "October"
+msgstr "Urria"
+
+msgctxt "full month name with day"
+msgid "November"
+msgstr "Azaroa"
+
+msgctxt "full month name with day"
+msgid "December"
+msgstr "Abendua"
+
+msgctxt "abbreviated month name with day"
+msgid "Jan"
+msgstr "Urt."
+
+msgctxt "abbreviated month name with day"
+msgid "Feb"
+msgstr "Ots."
+
+msgctxt "abbreviated month name with day"
+msgid "Mar"
+msgstr "Mar."
+
+msgctxt "abbreviated month name with day"
+msgid "Apr"
+msgstr "Apr."
+
+msgctxt "abbreviated month name with day"
+msgid "May"
+msgstr "Mai"
 
-#~ msgid "Error: object path not specified.\n"
-#~ msgstr "Errorea: objektuaren bide-izena ez da zehaztu.\n"
+msgctxt "abbreviated month name with day"
+msgid "Jun"
+msgstr "Eka."
 
-#~ msgid "Error: signal not specified.\n"
-#~ msgstr "Errorea: seinalea ez da zehaztu.\n"
+msgctxt "abbreviated month name with day"
+msgid "Jul"
+msgstr "Uzt."
 
-#~ msgid "Error: signal must be the fully-qualified name.\n"
-#~ msgstr "Errorea: seinaleak erabat kualifikatutako izena eduki behar du.\n"
+msgctxt "abbreviated month name with day"
+msgid "Aug"
+msgstr "Abu."
 
-#~ msgid "[ARGS...]"
-#~ msgstr "[ARGUMENTUAK...]"
+msgctxt "abbreviated month name with day"
+msgid "Sep"
+msgstr "Ira."
 
-#~ msgid "Failed to create temp file: %s"
-#~ msgstr "Huts egin du aldi baterako fitxategia sortu: %s"
+msgctxt "abbreviated month name with day"
+msgid "Oct"
+msgstr "Urr."
+
+msgctxt "abbreviated month name with day"
+msgid "Nov"
+msgstr "Aza."
+
+msgctxt "abbreviated month name with day"
+msgid "Dec"
+msgstr "Abe."
 
 #~ msgid "No such interface"
 #~ msgstr "Ez dago halako interfazerik"
index 27d2730..68c080f 100644 (file)
--- a/po/fur.po
+++ b/po/fur.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-10-25 12:32+0000\n"
-"PO-Revision-Date: 2018-10-27 13:03+0200\n"
+"POT-Creation-Date: 2018-06-25 15:14+0000\n"
+"PO-Revision-Date: 2018-06-28 12:19+0200\n"
 "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
 "Language-Team: Friulian <fur@li.org>\n"
 "Language: fur\n"
@@ -16,129 +16,132 @@ 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.1.1\n"
+"X-Generator: Poedit 2.0.8\n"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:496
 msgid "GApplication options"
 msgstr "Opzions GApplication"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:496
 msgid "Show GApplication options"
 msgstr "Mostre lis opzions di GApplication"
 
-#: gio/gapplication.c:541
+#: ../gio/gapplication.c:541
 msgid "Enter GApplication service mode (use from D-Bus service files)"
 msgstr ""
 "Jentre in modalitât servizi GApplication (doprâ dai file di servizi D-Bus)"
 
-#: gio/gapplication.c:553
+#: ../gio/gapplication.c:553
 msgid "Override the application’s ID"
 msgstr "Passe sore al ID de aplicazion"
 
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
+#: ../gio/gapplication-tool.c:45 ../gio/gapplication-tool.c:46
+#: ../gio/gio-tool.c:227 ../gio/gresource-tool.c:488
+#: ../gio/gsettings-tool.c:569
 msgid "Print help"
 msgstr "Stampe jutori"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:496 gio/gresource-tool.c:564
+#: ../gio/gapplication-tool.c:47 ../gio/gresource-tool.c:489
+#: ../gio/gresource-tool.c:557
 msgid "[COMMAND]"
 msgstr "[COMANT]"
 
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: ../gio/gapplication-tool.c:49 ../gio/gio-tool.c:228
 msgid "Print version"
 msgstr "Stampe version"
 
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:575
+#: ../gio/gapplication-tool.c:50 ../gio/gsettings-tool.c:575
 msgid "Print version information and exit"
 msgstr "Stampe informazions su la version e jes"
 
-#: gio/gapplication-tool.c:52
+#: ../gio/gapplication-tool.c:52
 msgid "List applications"
 msgstr "Liste aplicazions"
 
-#: gio/gapplication-tool.c:53
+#: ../gio/gapplication-tool.c:53
 msgid "List the installed D-Bus activatable applications (by .desktop files)"
 msgstr ""
 "Liste lis aplicazion instaladis che si puedin ativâ di D-Bus (par file ."
 "desktop)"
 
-#: gio/gapplication-tool.c:55
+#: ../gio/gapplication-tool.c:55
 msgid "Launch an application"
 msgstr "Invie une aplicazion"
 
-#: gio/gapplication-tool.c:56
+#: ../gio/gapplication-tool.c:56
 msgid "Launch the application (with optional files to open)"
 msgstr "Invie la aplicazion (cun file opzionâi di vierzi)"
 
-#: gio/gapplication-tool.c:57
+#: ../gio/gapplication-tool.c:57
 msgid "APPID [FILE…]"
 msgstr "APPID [FILE…]"
 
-#: gio/gapplication-tool.c:59
+#: ../gio/gapplication-tool.c:59
 msgid "Activate an action"
 msgstr "Ative une azion"
 
-#: gio/gapplication-tool.c:60
+#: ../gio/gapplication-tool.c:60
 msgid "Invoke an action on the application"
 msgstr "Invoche une azion su la aplicazion"
 
-#: gio/gapplication-tool.c:61
+#: ../gio/gapplication-tool.c:61
 msgid "APPID ACTION [PARAMETER]"
 msgstr "APPID AZION [PARAMETRI]"
 
-#: gio/gapplication-tool.c:63
+#: ../gio/gapplication-tool.c:63
 msgid "List available actions"
 msgstr "Liste azions disponibilis"
 
-#: gio/gapplication-tool.c:64
+#: ../gio/gapplication-tool.c:64
 msgid "List static actions for an application (from .desktop file)"
 msgstr "Liste lis azions statichis par une aplicazion (dal file .desktop)"
 
-#: gio/gapplication-tool.c:65 gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:65 ../gio/gapplication-tool.c:71
 msgid "APPID"
 msgstr "APPID"
 
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:90
-#: gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:70 ../gio/gapplication-tool.c:133
+#: ../gio/gdbus-tool.c:90 ../gio/gio-tool.c:224
 msgid "COMMAND"
 msgstr "COMANT"
 
-#: gio/gapplication-tool.c:70
+#: ../gio/gapplication-tool.c:70
 msgid "The command to print detailed help for"
 msgstr "Il comant che di chel stampâ il jutori detaiât"
 
-#: gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:71
 msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
 msgstr ""
 "Identificadôr aplicazion tal formât D-Bus (p.e. org.esempli.visualizadôr)"
 
-#: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:737
-#: gio/glib-compile-resources.c:743 gio/glib-compile-resources.c:770
-#: gio/gresource-tool.c:502 gio/gresource-tool.c:568
+#: ../gio/gapplication-tool.c:72 ../gio/glib-compile-resources.c:737
+#: ../gio/glib-compile-resources.c:743 ../gio/glib-compile-resources.c:770
+#: ../gio/gresource-tool.c:495 ../gio/gresource-tool.c:561
 msgid "FILE"
 msgstr "FILE"
 
-#: gio/gapplication-tool.c:72
+#: ../gio/gapplication-tool.c:72
 msgid "Optional relative or absolute filenames, or URIs to open"
 msgstr "Nons di file assolûts o relatîfs opzionâi opûr URI di vierzi"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "ACTION"
 msgstr "AZION"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "The action name to invoke"
 msgstr "La azion di invocâ"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "PARAMETER"
 msgstr "PARAMETRI"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "Optional parameter to the action invocation, in GVariant format"
 msgstr "Parametri opzionâl pe invocazion de azion, in formât GVariant"
 
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:533 gio/gsettings-tool.c:661
+#: ../gio/gapplication-tool.c:96 ../gio/gresource-tool.c:526
+#: ../gio/gsettings-tool.c:661
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -147,26 +150,26 @@ msgstr ""
 "Comant no cognossût %s\n"
 "\n"
 
-#: gio/gapplication-tool.c:101
+#: ../gio/gapplication-tool.c:101
 msgid "Usage:\n"
 msgstr "Ûs:\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:558
-#: gio/gsettings-tool.c:696
+#: ../gio/gapplication-tool.c:114 ../gio/gresource-tool.c:551
+#: ../gio/gsettings-tool.c:696
 msgid "Arguments:\n"
 msgstr "Argoments:\n"
 
-#: gio/gapplication-tool.c:133 gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:133 ../gio/gio-tool.c:224
 msgid "[ARGS…]"
 msgstr "[ARGS…]"
 
-#: gio/gapplication-tool.c:134
+#: ../gio/gapplication-tool.c:134
 #, c-format
 msgid "Commands:\n"
 msgstr "Comants:\n"
 
 #. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:146
+#: ../gio/gapplication-tool.c:146
 #, c-format
 msgid ""
 "Use “%s help COMMAND” to get detailed help.\n"
@@ -175,7 +178,7 @@ msgstr ""
 "Dopre “%s help COMANT” par vê un jutori detaiât.\n"
 "\n"
 
-#: gio/gapplication-tool.c:165
+#: ../gio/gapplication-tool.c:165
 #, c-format
 msgid ""
 "%s command requires an application id to directly follow\n"
@@ -184,13 +187,13 @@ msgstr ""
 "Il comant %s al domande un id di aplicazion di seguî in maniere direte\n"
 "\n"
 
-#: gio/gapplication-tool.c:171
+#: ../gio/gapplication-tool.c:171
 #, c-format
 msgid "invalid application id: “%s”\n"
 msgstr "id aplicazion no valit: “%s”\n"
 
 #. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:182
+#: ../gio/gapplication-tool.c:182
 #, c-format
 msgid ""
 "“%s” takes no arguments\n"
@@ -199,21 +202,22 @@ msgstr ""
 "“%s” no si spiete nissun argoment\n"
 "\n"
 
-#: gio/gapplication-tool.c:266
+#: ../gio/gapplication-tool.c:266
 #, c-format
 msgid "unable to connect to D-Bus: %s\n"
 msgstr "impussibil conetisi al D-Bus: %s\n"
 
-#: gio/gapplication-tool.c:286
+#: ../gio/gapplication-tool.c:286
 #, c-format
 msgid "error sending %s message to application: %s\n"
 msgstr "erôr tal inviâ il messaç %s ae aplicazion: %s\n"
 
-#: gio/gapplication-tool.c:317
+#: ../gio/gapplication-tool.c:317
+#, c-format
 msgid "action name must be given after application id\n"
 msgstr "si scugne furnî il non de azion dopo il id de aplicazion\n"
 
-#: gio/gapplication-tool.c:325
+#: ../gio/gapplication-tool.c:325
 #, c-format
 msgid ""
 "invalid action name: “%s”\n"
@@ -222,25 +226,27 @@ msgstr ""
 "non azion no valit: “%s”\n"
 "i nons des azions a scugnin consisti nome di alfanumerics, “-” e “.”\n"
 
-#: gio/gapplication-tool.c:344
+#: ../gio/gapplication-tool.c:344
 #, c-format
 msgid "error parsing action parameter: %s\n"
 msgstr "erôr tal analizâ il parametri de azion: %s\n"
 
-#: gio/gapplication-tool.c:356
+#: ../gio/gapplication-tool.c:356
+#, c-format
 msgid "actions accept a maximum of one parameter\n"
 msgstr "lis azions a acetin un massim di un parametri\n"
 
-#: gio/gapplication-tool.c:411
+#: ../gio/gapplication-tool.c:411
+#, c-format
 msgid "list-actions command takes only the application id"
 msgstr "il comant list-actions al vûl dome il id de aplicazion"
 
-#: gio/gapplication-tool.c:421
+#: ../gio/gapplication-tool.c:421
 #, c-format
 msgid "unable to find desktop file for application %s\n"
 msgstr "impussibil cjatâ il file scritori pe aplicazion %s\n"
 
-#: gio/gapplication-tool.c:466
+#: ../gio/gapplication-tool.c:466
 #, c-format
 msgid ""
 "unrecognised command: %s\n"
@@ -249,117 +255,121 @@ msgstr ""
 "comant no ricognossût: %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:209
+#: ../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:209
 #, c-format
 msgid "Too large count value passed to %s"
 msgstr "Valôr di conte passât a %s masse grant"
 
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: ../gio/gbufferedinputstream.c:891 ../gio/gbufferedoutputstream.c:575
+#: ../gio/gdataoutputstream.c:562
 msgid "Seek not supported on base stream"
 msgstr "Ricercje no supuartade sul flus di base"
 
-#: gio/gbufferedinputstream.c:937
+#: ../gio/gbufferedinputstream.c:937
 msgid "Cannot truncate GBufferedInputStream"
 msgstr "Impussibil cjonçâ GBufferedInputStream"
 
-#: gio/gbufferedinputstream.c:982 gio/ginputstream.c:1208 gio/giostream.c:300
-#: gio/goutputstream.c:1661
+#: ../gio/gbufferedinputstream.c:982 ../gio/ginputstream.c:1208
+#: ../gio/giostream.c:300 ../gio/goutputstream.c:1661
 msgid "Stream is already closed"
 msgstr "Il flus al è za sierât"
 
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: ../gio/gbufferedoutputstream.c:612 ../gio/gdataoutputstream.c:592
 msgid "Truncate not supported on base stream"
 msgstr "Cjonçâ no supuartât sul flus di base"
 
-#: gio/gcancellable.c:317 gio/gdbusconnection.c:1840 gio/gdbusprivate.c:1402
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: ../gio/gcancellable.c:317 ../gio/gdbusconnection.c:1849
+#: ../gio/gdbusprivate.c:1402 ../gio/gsimpleasyncresult.c:871
+#: ../gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
 msgstr "La operazion e jere anulade"
 
-#: gio/gcharsetconverter.c:260
+#: ../gio/gcharsetconverter.c:260
 msgid "Invalid object, not initialized"
 msgstr "Ogjet no valit, no inizializât"
 
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: ../gio/gcharsetconverter.c:281 ../gio/gcharsetconverter.c:309
 msgid "Incomplete multibyte sequence in input"
 msgstr "Secuence multibyte incomplete tal input"
 
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: ../gio/gcharsetconverter.c:315 ../gio/gcharsetconverter.c:324
 msgid "Not enough space in destination"
 msgstr "No vonde spazi te destinazion"
 
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
-#: glib/gutf8.c:869 glib/gutf8.c:1322
+#: ../gio/gcharsetconverter.c:342 ../gio/gdatainputstream.c:848
+#: ../gio/gdatainputstream.c:1261 ../glib/gconvert.c:454 ../glib/gconvert.c:883
+#: ../glib/giochannel.c:1557 ../glib/giochannel.c:1599
+#: ../glib/giochannel.c:2443 ../glib/gutf8.c:869 ../glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Secuence byte no valide tal input di conversion"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1564 glib/giochannel.c:2455
+#: ../gio/gcharsetconverter.c:347 ../glib/gconvert.c:462 ../glib/gconvert.c:797
+#: ../glib/giochannel.c:1564 ../glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Erôr dilunc la conversion: %s"
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1104
+#: ../gio/gcharsetconverter.c:445 ../gio/gsocket.c:1104
 msgid "Cancellable initialization not supported"
 msgstr "Inizializazion anulabile no supuartade"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
+#: ../gio/gcharsetconverter.c:456 ../glib/gconvert.c:327
+#: ../glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr "Conversion de cumbinazion di caratars “%s” a “%s” no je supuartade"
 
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:331
+#: ../gio/gcharsetconverter.c:460 ../glib/gconvert.c:331
 #, c-format
 msgid "Could not open converter from “%s” to “%s”"
 msgstr "Impussibil vierzi il convertidôr di “%s” a “%s”"
 
-#: gio/gcontenttype.c:358
+#: ../gio/gcontenttype.c:358
 #, c-format
 msgid "%s type"
 msgstr "gjenar %s"
 
-#: gio/gcontenttype-win32.c:177
+#: ../gio/gcontenttype-win32.c:177
 msgid "Unknown type"
 msgstr "Gjenar no cognossût"
 
-#: gio/gcontenttype-win32.c:179
+#: ../gio/gcontenttype-win32.c:179
 #, c-format
 msgid "%s filetype"
 msgstr "gjenar di file %s"
 
-#: gio/gcredentials.c:315 gio/gcredentials.c:574
+#: ../gio/gcredentials.c:315 ../gio/gcredentials.c:574
 msgid "GCredentials is not implemented on this OS"
 msgstr "GCredentials nol è implementât in chest SO"
 
-#: gio/gcredentials.c:470
+#: ../gio/gcredentials.c:470
 msgid "There is no GCredentials support for your platform"
 msgstr "Nol esist il supuart par GCredentials pe tô plateforme"
 
-#: gio/gcredentials.c:516
+#: ../gio/gcredentials.c:516
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "GCredentials nol conten un ID  di procès su chest SO"
 
-#: gio/gcredentials.c:568
+#: ../gio/gcredentials.c:568
 msgid "Credentials spoofing is not possible on this OS"
 msgstr ""
 
-#: gio/gdatainputstream.c:304
+#: ../gio/gdatainputstream.c:304
 msgid "Unexpected early end-of-stream"
 msgstr "Fin-dal-flus premadûr inspietât"
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:246 gio/gdbusaddress.c:327
+#: ../gio/gdbusaddress.c:158 ../gio/gdbusaddress.c:246
+#: ../gio/gdbusaddress.c:327
 #, c-format
 msgid "Unsupported key “%s” in address entry “%s”"
 msgstr "Clâf “%s” no supuartade inte vôs di direzion “%s”"
 
-#: gio/gdbusaddress.c:185
+#: ../gio/gdbusaddress.c:185
 #, c-format
 msgid ""
 "Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
@@ -367,33 +377,33 @@ msgstr ""
 "Direzion “%s” no valide (e covente juste une clâf astrate, tmpdir o di "
 "percors)"
 
-#: gio/gdbusaddress.c:198
+#: ../gio/gdbusaddress.c:198
 #, c-format
 msgid "Meaningless key/value pair combination in address entry “%s”"
 msgstr ""
 "Cumbinazion de cubie clâf/valôr cence significât inte vôs di direzion “%s”"
 
-#: gio/gdbusaddress.c:261 gio/gdbusaddress.c:342
+#: ../gio/gdbusaddress.c:261 ../gio/gdbusaddress.c:342
 #, c-format
 msgid "Error in address “%s” — the port attribute is malformed"
 msgstr "Erôr inte direzion “%s” — l'atribût puarte al è malformât"
 
-#: gio/gdbusaddress.c:272 gio/gdbusaddress.c:353
+#: ../gio/gdbusaddress.c:272 ../gio/gdbusaddress.c:353
 #, c-format
 msgid "Error in address “%s” — the family attribute is malformed"
 msgstr "Erôr inte direzion “%s” — l'atribût famee al è malformât"
 
-#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:673
+#: ../gio/gdbusaddress.c:423 ../gio/gdbusaddress.c:673
 #, c-format
 msgid "Unknown or unsupported transport “%s” for address “%s”"
 msgstr "Traspuart “%s” no cognossût o no supuartât pe direzion “%s”"
 
-#: gio/gdbusaddress.c:467
+#: ../gio/gdbusaddress.c:467
 #, c-format
 msgid "Address element “%s” does not contain a colon (:)"
 msgstr "L'element direzion “%s” nol conten un doi ponts (:)"
 
-#: gio/gdbusaddress.c:488
+#: ../gio/gdbusaddress.c:488
 #, c-format
 msgid ""
 "Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -402,14 +412,14 @@ msgstr ""
 "Cubie clâf/valôr %d, “%s”, intal element direzion “%s” no conten un segn "
 "uguâl"
 
-#: gio/gdbusaddress.c:502
+#: ../gio/gdbusaddress.c:502
 #, c-format
 msgid ""
 "Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
 "“%s”"
 msgstr ""
 
-#: gio/gdbusaddress.c:580
+#: ../gio/gdbusaddress.c:580
 #, c-format
 msgid ""
 "Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -418,86 +428,86 @@ msgstr ""
 "Erôr inte direzion “%s” — il traspuart unix al domande di stabilî juste une "
 "des clâfs tra “path” o “abstract”"
 
-#: gio/gdbusaddress.c:616
+#: ../gio/gdbusaddress.c:616
 #, c-format
 msgid "Error in address “%s” — the host attribute is missing or malformed"
 msgstr "Erôr inte direzion “%s” — l'atribût host al mancje o al è malformât"
 
-#: gio/gdbusaddress.c:630
+#: ../gio/gdbusaddress.c:630
 #, c-format
 msgid "Error in address “%s” — the port attribute is missing or malformed"
 msgstr "Erôr inte direzion “%s” — l'atribût puarte al mancje o al è malformât"
 
-#: gio/gdbusaddress.c:644
+#: ../gio/gdbusaddress.c:644
 #, c-format
 msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
 msgstr ""
 
-#: gio/gdbusaddress.c:665
+#: ../gio/gdbusaddress.c:665
 msgid "Error auto-launching: "
 msgstr "Erôr tal inviâ in automatic: "
 
-#: gio/gdbusaddress.c:718
+#: ../gio/gdbusaddress.c:718
 #, c-format
 msgid "Error opening nonce file “%s”: %s"
 msgstr ""
 
-#: gio/gdbusaddress.c:737
+#: ../gio/gdbusaddress.c:737
 #, c-format
 msgid "Error reading from nonce file “%s”: %s"
 msgstr ""
 
-#: gio/gdbusaddress.c:746
+#: ../gio/gdbusaddress.c:746
 #, c-format
 msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
 msgstr ""
 
-#: gio/gdbusaddress.c:764
+#: ../gio/gdbusaddress.c:764
 #, c-format
 msgid "Error writing contents of nonce file “%s” to stream:"
 msgstr ""
 
-#: gio/gdbusaddress.c:973
+#: ../gio/gdbusaddress.c:973
 msgid "The given address is empty"
 msgstr "La direzion furnide e je vueide"
 
-#: gio/gdbusaddress.c:1086
+#: ../gio/gdbusaddress.c:1086
 #, c-format
 msgid "Cannot spawn a message bus when setuid"
 msgstr ""
 
-#: gio/gdbusaddress.c:1093
+#: ../gio/gdbusaddress.c:1093
 msgid "Cannot spawn a message bus without a machine-id: "
 msgstr ""
 
-#: gio/gdbusaddress.c:1100
+#: ../gio/gdbusaddress.c:1100
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
 msgstr "Impussibil inviâ in automatic D-Bus cence $DISPLAY X11"
 
-#: gio/gdbusaddress.c:1142
+#: ../gio/gdbusaddress.c:1142
 #, c-format
 msgid "Error spawning command line “%s”: "
 msgstr ""
 
-#: gio/gdbusaddress.c:1359
+#: ../gio/gdbusaddress.c:1359
 #, c-format
 msgid "(Type any character to close this window)\n"
 msgstr "(Scrîf cualsisei caratar par sierâ chest barcon)\n"
 
-#: gio/gdbusaddress.c:1513
+#: ../gio/gdbusaddress.c:1513
 #, c-format
 msgid "Session dbus not running, and autolaunch failed"
 msgstr "Session dbus no je in esecuzion e l'inviament automatic al è falît"
 
-#: gio/gdbusaddress.c:1524
+#: ../gio/gdbusaddress.c:1524
 #, c-format
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 "Impussibil determinâ la direzion dal bus di session (no implementade par "
 "chest SO)"
 
-#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7142
+#: ../gio/gdbusaddress.c:1662 ../gio/gdbusconnection.c:7151
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -506,7 +516,7 @@ msgstr ""
 "Impussibil determinâ la direzion dal bus de variabile di ambient "
 "DBUS_STARTER_BUS_TYPE — valôr “%s” no cognossût"
 
-#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7151
+#: ../gio/gdbusaddress.c:1671 ../gio/gdbusconnection.c:7160
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -514,20 +524,20 @@ msgstr ""
 "Impussibil determinâ la direzion dal bus parcè che la variabile di ambient "
 "DBUS_STARTER_BUS_TYPE no je stabilide"
 
-#: gio/gdbusaddress.c:1681
+#: ../gio/gdbusaddress.c:1681
 #, c-format
 msgid "Unknown bus type %d"
 msgstr "Gjenar di bus %d no cognossût"
 
-#: gio/gdbusauth.c:293
+#: ../gio/gdbusauth.c:293
 msgid "Unexpected lack of content trying to read a line"
 msgstr "Mancjance di contignût inspietade cirint di lei une rie"
 
-#: gio/gdbusauth.c:337
+#: ../gio/gdbusauth.c:337
 msgid "Unexpected lack of content trying to (safely) read a line"
 msgstr "Mancjance di contignût inspietade cirint di lei (in sigurece) une rie"
 
-#: gio/gdbusauth.c:481
+#: ../gio/gdbusauth.c:481
 #, c-format
 msgid ""
 "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
@@ -535,16 +545,16 @@ msgstr ""
 "Esaurîts ducj i mecanisims di autenticazion disponibii (provâts: %s) "
 "(disponibii: %s)"
 
-#: gio/gdbusauth.c:1144
+#: ../gio/gdbusauth.c:1144
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr "Anulât vie GDBusAuthObserver::authorize-authenticated-peer"
 
-#: gio/gdbusauthmechanismsha1.c:262
+#: ../gio/gdbusauthmechanismsha1.c:262
 #, c-format
 msgid "Error when getting information for directory “%s”: %s"
 msgstr "Erôr tal vê informazions pe cartele “%s”: %s"
 
-#: gio/gdbusauthmechanismsha1.c:274
+#: ../gio/gdbusauthmechanismsha1.c:274
 #, c-format
 msgid ""
 "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
@@ -552,22 +562,22 @@ msgstr ""
 "I permès su pe cartele “%s” no son valits. Si spietave modalitât 0700, vût "
 "0%o"
 
-#: gio/gdbusauthmechanismsha1.c:299
+#: ../gio/gdbusauthmechanismsha1.c:299
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "Erôr tal creâ la cartele “%s”: %s"
 
-#: gio/gdbusauthmechanismsha1.c:346
+#: ../gio/gdbusauthmechanismsha1.c:346
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr "Erôr tal lei il puarteclâfs “%s” pe leture: "
 
-#: gio/gdbusauthmechanismsha1.c:369 gio/gdbusauthmechanismsha1.c:687
+#: ../gio/gdbusauthmechanismsha1.c:369 ../gio/gdbusauthmechanismsha1.c:687
 #, c-format
 msgid "Line %d of the keyring at “%s” with content “%s” is malformed"
 msgstr "Rie %d dal puarteclâfs su “%s” cun contignût “%s” e je malformade "
 
-#: gio/gdbusauthmechanismsha1.c:383 gio/gdbusauthmechanismsha1.c:701
+#: ../gio/gdbusauthmechanismsha1.c:383 ../gio/gdbusauthmechanismsha1.c:701
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -575,7 +585,7 @@ msgstr ""
 "Il prin token de rie %d dal puarteclâfs su “%s” cul contignût “%s” al è "
 "malformât"
 
-#: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
+#: ../gio/gdbusauthmechanismsha1.c:397 ../gio/gdbusauthmechanismsha1.c:715
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -583,158 +593,170 @@ msgstr ""
 "Il secont token de rie %d dal puarteclâfs su “%s” cul contignût “%s” al è "
 "malformât"
 
-#: gio/gdbusauthmechanismsha1.c:421
+#: ../gio/gdbusauthmechanismsha1.c:421
 #, c-format
 msgid "Didn’t find cookie with id %d in the keyring at “%s”"
 msgstr "No si à cjatât il cookie cul id %d intal puarteclâfs su “%s”"
 
-#: gio/gdbusauthmechanismsha1.c:503
+#: ../gio/gdbusauthmechanismsha1.c:503
 #, c-format
 msgid "Error deleting stale lock file “%s”: %s"
 msgstr "Erôr tal eliminâ il file di bloc passât “%s”: %s"
 
-#: gio/gdbusauthmechanismsha1.c:535
+#: ../gio/gdbusauthmechanismsha1.c:535
 #, c-format
 msgid "Error creating lock file “%s”: %s"
 msgstr "Erôr tal creâ il file di bloc “%s”: %s"
 
-#: gio/gdbusauthmechanismsha1.c:566
+#: ../gio/gdbusauthmechanismsha1.c:566
 #, c-format
 msgid "Error closing (unlinked) lock file “%s”: %s"
 msgstr "Erôr tal sierâ il file di bloc (cence colegament) “%s”: %s"
 
-#: gio/gdbusauthmechanismsha1.c:577
+#: ../gio/gdbusauthmechanismsha1.c:577
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr "Erôr tal discolegâ il file di bloc “%s”: %s"
 
-#: gio/gdbusauthmechanismsha1.c:654
+#: ../gio/gdbusauthmechanismsha1.c:654
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr "Erôr tal vierzi il puarteclâfs “%s” pe scriture:"
 
-#: gio/gdbusauthmechanismsha1.c:850
+#: ../gio/gdbusauthmechanismsha1.c:850
 #, c-format
 msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
 msgstr "(In plui no si è rivâts ancje a molâ il bloc par “%s”: %s) "
 
-#: gio/gdbusconnection.c:603 gio/gdbusconnection.c:2369
+#: ../gio/gdbusconnection.c:612 ../gio/gdbusconnection.c:2378
 msgid "The connection is closed"
 msgstr "La conession e je sierade"
 
-#: gio/gdbusconnection.c:1870
+#: ../gio/gdbusconnection.c:1879
 msgid "Timeout was reached"
 msgstr "Si à passât il timp massim"
 
-#: gio/gdbusconnection.c:2491
+#: ../gio/gdbusconnection.c:2500
 msgid ""
 "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 
-#: gio/gdbusconnection.c:4115 gio/gdbusconnection.c:4462
-#, c-format
+#: ../gio/gdbusconnection.c:4124 ../gio/gdbusconnection.c:4471
+#, 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 ""
-"Interface “org.freedesktop.DBus.Properties” inesistente sul ogjet tal "
+"Interface 'org.freedesktop.DBus.Properties' inesistente sul ogjet tal "
 "percors %s"
 
-#: gio/gdbusconnection.c:4257
-#, c-format
+#: ../gio/gdbusconnection.c:4266
+#, fuzzy, c-format
+#| msgid "No such property '%s'"
 msgid "No such property “%s”"
-msgstr "Proprietât “%s” inesistente"
+msgstr "Proprietât '%s' inesistente"
 
-#: gio/gdbusconnection.c:4269
-#, c-format
+#: ../gio/gdbusconnection.c:4278
+#, fuzzy, c-format
+#| msgid "Property '%s' is not readable"
 msgid "Property “%s” is not readable"
-msgstr "No si pues lei la proprietât “%s”"
+msgstr "La proprietât '%s' no je leibile"
 
-#: gio/gdbusconnection.c:4280
-#, c-format
+#: ../gio/gdbusconnection.c:4289
+#, fuzzy, c-format
+#| msgid "Property '%s' is not writable"
 msgid "Property “%s” is not writable"
-msgstr "No si pues scrivi la proprietât “%s”"
+msgstr "La proprietât '%s' no je scrivibile"
 
-#: gio/gdbusconnection.c:4300
-#, c-format
+#: ../gio/gdbusconnection.c:4309
+#, 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 ""
-"Erôr tal configurâ la proprietât “%s”: si spietave il gjenar “%s” ma si à "
-"vût “%s”"
+"Erôr tal configurâ la proprietât '%s': si spietave gjenar '%s' ma si à vût "
+"'%s'"
 
-#: gio/gdbusconnection.c:4405 gio/gdbusconnection.c:4613
-#: gio/gdbusconnection.c:6582
-#, c-format
+#: ../gio/gdbusconnection.c:4414 ../gio/gdbusconnection.c:4622
+#: ../gio/gdbusconnection.c:6591
+#, fuzzy, c-format
+#| msgid "No such interface '%s'"
 msgid "No such interface “%s”"
-msgstr "Interface “%s” inesistente"
+msgstr "Interface '%s' inesistente"
 
-#: gio/gdbusconnection.c:4831 gio/gdbusconnection.c:7091
-#, c-format
+#: ../gio/gdbusconnection.c:4840 ../gio/gdbusconnection.c:7100
+#, fuzzy, c-format
+#| msgid "No such interface '%s' on object at path %s"
 msgid "No such interface “%s” on object at path %s"
-msgstr "Interface “%s” inesistente sul ogjet tal percors %s"
+msgstr "Interface '%s' inesistente sul ogjet tal percors %s"
 
-#: gio/gdbusconnection.c:4929
-#, c-format
+#: ../gio/gdbusconnection.c:4938
+#, fuzzy, c-format
+#| msgid "No such method '%s'"
 msgid "No such method “%s”"
-msgstr "Metodi “%s” inesistent"
+msgstr "Metodi '%s' inesistent"
 
-#: gio/gdbusconnection.c:4960
-#, c-format
+#: ../gio/gdbusconnection.c:4969
+#, 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 "Il gjenar di messaç, “%s”, nol corispuint al gjenar spietât “%s”"
+msgstr "Il gjenar di messaç, '%s', nol corispuint il gjenar spietât '%s'"
 
-#: gio/gdbusconnection.c:5158
+#: ../gio/gdbusconnection.c:5167
 #, c-format
 msgid "An object is already exported for the interface %s at %s"
 msgstr "Un ogjet al è za espuartât pe interface %s su %s"
 
-#: gio/gdbusconnection.c:5384
+#: ../gio/gdbusconnection.c:5393
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Impussibil recuperâ la proprietât %s.%s"
 
-#: gio/gdbusconnection.c:5440
+#: ../gio/gdbusconnection.c:5449
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Impussibil stabilî la proprietât %s.%s"
 
-#: gio/gdbusconnection.c:5618
-#, c-format
+#: ../gio/gdbusconnection.c:5627
+#, fuzzy, c-format
+#| msgid "Method '%s' returned type '%s', but expected '%s'"
 msgid "Method “%s” returned type “%s”, but expected “%s”"
-msgstr "Il metodi “%s” al à tornât il gjenar “%s”, ma si spietave “%s”"
+msgstr "Il metodi '%s' al à tornât il gjenar '%s', ma si spietave '%s'"
 
-#: gio/gdbusconnection.c:6693
-#, c-format
+#: ../gio/gdbusconnection.c:6702
+#, 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 "Il metodi “%s” su la interface “%s” cun firme “%s” nol esist"
+msgstr "Il metodi '%s' su la interface '%s' cun firme '%s' nol esist"
 
-#: gio/gdbusconnection.c:6814
+#: ../gio/gdbusconnection.c:6823
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Un sot-arbul al è za espuartât par %s"
 
-#: gio/gdbusmessage.c:1248
+#: ../gio/gdbusmessage.c:1248
 msgid "type is INVALID"
 msgstr "il gjenar al è NO VALIT"
 
-#: gio/gdbusmessage.c:1259
+#: ../gio/gdbusmessage.c:1259
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr "Messaç METHOD_CALL: il cjamp di intestazion PATH o MEMBER al mancje"
 
-#: gio/gdbusmessage.c:1270
+#: ../gio/gdbusmessage.c:1270
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "Messaç METHOD_RETURN: il cjamp di intestazion REPLY_SERIAL al mancje"
 
-#: gio/gdbusmessage.c:1282
+#: ../gio/gdbusmessage.c:1282
 msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
 msgstr ""
 "Messaç di ERÔR: il cjamp di intestazion REPLY_SERIAL o ERROR_NAME al mancje"
 
-#: gio/gdbusmessage.c:1295
+#: ../gio/gdbusmessage.c:1295
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr ""
 "Messaç SIGNAL: il cjamp di intestazion PATH, INTERFACE o MEMBER al mancje"
 
-#: gio/gdbusmessage.c:1303
+#: ../gio/gdbusmessage.c:1303
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -742,7 +764,7 @@ msgstr ""
 "Messaç SIGNAL: il cjamp di intestazion PATH al sta doprant il valôr "
 "riservât /org/freedesktop/DBus/Local"
 
-#: gio/gdbusmessage.c:1311
+#: ../gio/gdbusmessage.c:1311
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -750,20 +772,20 @@ msgstr ""
 "Messaç SIGNAL: il cjamp di intestazion INTERFACE al sta doprant il valôr "
 "riservât org.freedesktop.DBus.Local"
 
-#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
+#: ../gio/gdbusmessage.c:1359 ../gio/gdbusmessage.c:1419
 #, 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] "Si voleve lei %lu byte, ma si à vût dome %lu"
 msgstr[1] "Si voleve lei %lu byte, ma si à vût dome %lu"
 
-#: gio/gdbusmessage.c:1373
+#: ../gio/gdbusmessage.c:1373
 #, c-format
 msgid "Expected NUL byte after the string “%s” but found byte %d"
 msgstr ""
 "Si spietave un byte NUL dopo de stringhe “%s” ma si à cjatât il byte %d"
 
-#: gio/gdbusmessage.c:1392
+#: ../gio/gdbusmessage.c:1392
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -773,17 +795,17 @@ msgstr ""
 "offset %d (la lungjece de stringhe e je %d). La stringhe UTF-8 valide fin "
 "chel pont e jere “%s”"
 
-#: gio/gdbusmessage.c:1595
+#: ../gio/gdbusmessage.c:1595
 #, c-format
 msgid "Parsed value “%s” is not a valid D-Bus object path"
 msgstr "Il valôr “%s” analizât nol è un percors di ogjet D-Bus valit"
 
-#: gio/gdbusmessage.c:1617
+#: ../gio/gdbusmessage.c:1617
 #, c-format
 msgid "Parsed value “%s” is not a valid D-Bus signature"
 msgstr "Il valôr “%s” analizât no je une firme D-Bus valide"
 
-#: gio/gdbusmessage.c:1664
+#: ../gio/gdbusmessage.c:1664
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -792,25 +814,25 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: gio/gdbusmessage.c:1684
+#: ../gio/gdbusmessage.c:1684
 #, 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:1851
+#: ../gio/gdbusmessage.c:1851
 #, c-format
 msgid "Parsed value “%s” for variant is not a valid D-Bus signature"
 msgstr "Il valôr “%s” analizât pal variant no je une firme D-Bus valide"
 
-#: gio/gdbusmessage.c:1875
+#: ../gio/gdbusmessage.c:1875
 #, c-format
 msgid ""
 "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
 msgstr ""
 
-#: gio/gdbusmessage.c:2057
+#: ../gio/gdbusmessage.c:2057
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -819,23 +841,23 @@ msgstr ""
 "Valôr di endian no valit. Si spietave 0x6c (“l”) o 0x42 (“B”) ma si à cjatât "
 "il valôr 0x%02x"
 
-#: gio/gdbusmessage.c:2070
+#: ../gio/gdbusmessage.c:2070
 #, c-format
 msgid "Invalid major protocol version. Expected 1 but found %d"
 msgstr "Version maiôr dal protocol no valide. Si spietave 1 ma si à cjatât %d"
 
-#: gio/gdbusmessage.c:2126
+#: ../gio/gdbusmessage.c:2126
 #, c-format
 msgid "Signature header with signature “%s” found but message body is empty"
 msgstr ""
 "Cjatade intestazion di firme cun firme “%s” ma il cuarp dal messaç al è vueit"
 
-#: gio/gdbusmessage.c:2140
+#: ../gio/gdbusmessage.c:2140
 #, c-format
 msgid "Parsed value “%s” is not a valid D-Bus signature (for body)"
 msgstr "Il valôr “%s” analizât no je une firme D-Bus valide (pal cuarp)"
 
-#: gio/gdbusmessage.c:2170
+#: ../gio/gdbusmessage.c:2170
 #, 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"
@@ -846,17 +868,17 @@ msgstr[1] ""
 "Nissune intestazion di firme tal messaç, ma il cuarp dal messaç al è di %u "
 "byte"
 
-#: gio/gdbusmessage.c:2180
+#: ../gio/gdbusmessage.c:2180
 msgid "Cannot deserialize message: "
 msgstr "Impussibil deserializâ il messaç: "
 
-#: gio/gdbusmessage.c:2521
+#: ../gio/gdbusmessage.c:2521
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
 msgstr ""
 
-#: gio/gdbusmessage.c:2658
+#: ../gio/gdbusmessage.c:2658
 #, c-format
 msgid ""
 "Number of file descriptors in message (%d) differs from header field (%d)"
@@ -864,16 +886,16 @@ msgstr ""
 "Il numar dai descritôrs di file tal messaç (%d) al è diviers dal cjamp di "
 "intestazion (%d)"
 
-#: gio/gdbusmessage.c:2666
+#: ../gio/gdbusmessage.c:2666
 msgid "Cannot serialize message: "
 msgstr "Impussibil serializâ il messaç: "
 
-#: gio/gdbusmessage.c:2710
+#: ../gio/gdbusmessage.c:2710
 #, c-format
 msgid "Message body has signature “%s” but there is no signature header"
 msgstr "Il cuarp dal messaç al à firme “%s” ma no je la intestazion de firme"
 
-#: gio/gdbusmessage.c:2720
+#: ../gio/gdbusmessage.c:2720
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -882,71 +904,71 @@ msgstr ""
 "Il cuarp dal messaç al à une firme di gjenar “%s”, ma la firme tal cjamp de "
 "intestazion e je “%s”"
 
-#: gio/gdbusmessage.c:2736
+#: ../gio/gdbusmessage.c:2736
 #, c-format
 msgid "Message body is empty but signature in the header field is “(%s)”"
 msgstr ""
 "Il cuarp dal messaç al è vueit ma la firme tal cjamp de intestazion e je "
 "“(%s)”"
 
-#: gio/gdbusmessage.c:3289
+#: ../gio/gdbusmessage.c:3289
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr ""
 
-#: gio/gdbusmessage.c:3297
+#: ../gio/gdbusmessage.c:3297
 msgid "Error return with empty body"
 msgstr ""
 
-#: gio/gdbusprivate.c:2066
+#: ../gio/gdbusprivate.c:2066
 #, c-format
 msgid "Unable to get Hardware profile: %s"
 msgstr "Impussibil otignî il profîl Hardware: %s"
 
-#: gio/gdbusprivate.c:2111
+#: ../gio/gdbusprivate.c:2111
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Impussibil cjariâ /var/lib/dbus/machine-id o /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1612
+#: ../gio/gdbusproxy.c:1612
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Erôr tal clamâ StartServiceByName par %s: "
 
-#: gio/gdbusproxy.c:1635
+#: ../gio/gdbusproxy.c:1635
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Rispueste %d inspietade dal metodi StartServiceByName(\"%s\")"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: ../gio/gdbusproxy.c:2726 ../gio/gdbusproxy.c:2860
 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 ""
 
-#: gio/gdbusserver.c:708
+#: ../gio/gdbusserver.c:708
 msgid "Abstract name space not supported"
 msgstr "Spazi di non astrat no supuartât"
 
-#: gio/gdbusserver.c:795
+#: ../gio/gdbusserver.c:795
 msgid "Cannot specify nonce file when creating a server"
 msgstr ""
 
-#: gio/gdbusserver.c:876
+#: ../gio/gdbusserver.c:876
 #, c-format
 msgid "Error writing nonce file at “%s”: %s"
 msgstr ""
 
-#: gio/gdbusserver.c:1047
+#: ../gio/gdbusserver.c:1047
 #, c-format
 msgid "The string “%s” is not a valid D-Bus GUID"
 msgstr "La stringhe “%s” no je un valit GUID D-Bus"
 
-#: gio/gdbusserver.c:1087
+#: ../gio/gdbusserver.c:1087
 #, c-format
 msgid "Cannot listen on unsupported transport “%s”"
 msgstr "Impussibil scoltâ o traspuart “%s” no supuartât"
 
-#: gio/gdbus-tool.c:95
+#: ../gio/gdbus-tool.c:95
 #, c-format
 msgid ""
 "Commands:\n"
@@ -969,61 +991,61 @@ msgstr ""
 "\n"
 "Dopre “%s COMANT --help” par vê jutori su ogni comant.\n"
 
-#: gio/gdbus-tool.c:185 gio/gdbus-tool.c:252 gio/gdbus-tool.c:324
-#: gio/gdbus-tool.c:348 gio/gdbus-tool.c:834 gio/gdbus-tool.c:1171
-#: gio/gdbus-tool.c:1613
+#: ../gio/gdbus-tool.c:185 ../gio/gdbus-tool.c:252 ../gio/gdbus-tool.c:324
+#: ../gio/gdbus-tool.c:348 ../gio/gdbus-tool.c:834 ../gio/gdbus-tool.c:1171
+#: ../gio/gdbus-tool.c:1613
 #, c-format
 msgid "Error: %s\n"
 msgstr "Erôr: %s\n"
 
-#: gio/gdbus-tool.c:196 gio/gdbus-tool.c:265 gio/gdbus-tool.c:1629
+#: ../gio/gdbus-tool.c:196 ../gio/gdbus-tool.c:265 ../gio/gdbus-tool.c:1629
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:234
+#: ../gio/gdbus-tool.c:234
 #, c-format
 msgid "Error: %s is not a valid name\n"
 msgstr "Erôr: %s nol è un non valit\n"
 
-#: gio/gdbus-tool.c:382
+#: ../gio/gdbus-tool.c:382
 msgid "Connect to the system bus"
 msgstr "Conet al bus di sisteme"
 
-#: gio/gdbus-tool.c:383
+#: ../gio/gdbus-tool.c:383
 msgid "Connect to the session bus"
 msgstr "Conet al bus di session"
 
-#: gio/gdbus-tool.c:384
+#: ../gio/gdbus-tool.c:384
 msgid "Connect to given D-Bus address"
 msgstr "Conet ae direzion D-Bus furnide"
 
-#: gio/gdbus-tool.c:394
+#: ../gio/gdbus-tool.c:394
 msgid "Connection Endpoint Options:"
 msgstr ""
 
-#: gio/gdbus-tool.c:395
+#: ../gio/gdbus-tool.c:395
 msgid "Options specifying the connection endpoint"
 msgstr "Opzions che a specifichin il pont finâl (endpoint) de conession"
 
-#: gio/gdbus-tool.c:417
+#: ../gio/gdbus-tool.c:417
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "Nissun pont finâl (endpoint) di conession specificât"
 
-#: gio/gdbus-tool.c:427
+#: ../gio/gdbus-tool.c:427
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Plui ponts finâi (endpoint) di conession specificâts"
 
-#: gio/gdbus-tool.c:497
+#: ../gio/gdbus-tool.c:497
 #, c-format
 msgid ""
 "Warning: According to introspection data, interface “%s” does not exist\n"
 msgstr ""
 "Avertiment: In acuardi cui dâts di introspezion, la interface “%s” no esist\n"
 
-#: gio/gdbus-tool.c:506
+#: ../gio/gdbus-tool.c:506
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
@@ -1032,161 +1054,166 @@ msgstr ""
 "Avertiment: In acuardi cui dâts di introspezion, il metodi “%s” nol esist su "
 "pe interface “%s”\n"
 
-#: gio/gdbus-tool.c:568
+#: ../gio/gdbus-tool.c:568
 msgid "Optional destination for signal (unique name)"
 msgstr "Destinazion opzionâl pal segnâl (non univoc)"
 
-#: gio/gdbus-tool.c:569
+#: ../gio/gdbus-tool.c:569
 msgid "Object path to emit signal on"
 msgstr "Percors ogjet dulà emeti il segnâl"
 
-#: gio/gdbus-tool.c:570
+#: ../gio/gdbus-tool.c:570
 msgid "Signal and interface name"
 msgstr "Segnâl e non interface"
 
-#: gio/gdbus-tool.c:603
+#: ../gio/gdbus-tool.c:603
 msgid "Emit a signal."
 msgstr "Emet un segnâl."
 
-#: gio/gdbus-tool.c:658 gio/gdbus-tool.c:965 gio/gdbus-tool.c:1715
-#: gio/gdbus-tool.c:1944 gio/gdbus-tool.c:2164
+#: ../gio/gdbus-tool.c:658 ../gio/gdbus-tool.c:965 ../gio/gdbus-tool.c:1715
+#: ../gio/gdbus-tool.c:1944 ../gio/gdbus-tool.c:2164
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Erôr tal coneti: %s\n"
 
-#: gio/gdbus-tool.c:678
+#: ../gio/gdbus-tool.c:678
 #, c-format
 msgid "Error: %s is not a valid unique bus name.\n"
 msgstr "Erôr: %s nol è un non bus univoc valit.\n"
 
-#: gio/gdbus-tool.c:697 gio/gdbus-tool.c:1008 gio/gdbus-tool.c:1758
+#: ../gio/gdbus-tool.c:697 ../gio/gdbus-tool.c:1008 ../gio/gdbus-tool.c:1758
+#, c-format
 msgid "Error: Object path is not specified\n"
 msgstr "Erôr: il percors ogjet nol è specificât\n"
 
-#: gio/gdbus-tool.c:720 gio/gdbus-tool.c:1028 gio/gdbus-tool.c:1778
-#: gio/gdbus-tool.c:2015
+#: ../gio/gdbus-tool.c:720 ../gio/gdbus-tool.c:1028 ../gio/gdbus-tool.c:1778
+#: ../gio/gdbus-tool.c:2015
 #, c-format
 msgid "Error: %s is not a valid object path\n"
 msgstr "Erôr: %s nol è un percors ogjet valit\n"
 
-#: gio/gdbus-tool.c:740
+#: ../gio/gdbus-tool.c:740
+#, c-format
 msgid "Error: Signal name is not specified\n"
 msgstr "Erôr: il non dal segnâl nol è specificât\n"
 
-#: gio/gdbus-tool.c:754
+#: ../gio/gdbus-tool.c:754
 #, c-format
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr "Erôr: il non segnâl “%s” nol è valit\n"
 
-#: gio/gdbus-tool.c:766
+#: ../gio/gdbus-tool.c:766
 #, c-format
 msgid "Error: %s is not a valid interface name\n"
 msgstr "Erôr: %s nol è un non interface valit\n"
 
-#: gio/gdbus-tool.c:772
+#: ../gio/gdbus-tool.c:772
 #, c-format
 msgid "Error: %s is not a valid member name\n"
 msgstr "Erôr: %s nol è un non membri valit\n"
 
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:809 gio/gdbus-tool.c:1140
+#: ../gio/gdbus-tool.c:809 ../gio/gdbus-tool.c:1140
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Erôr tal analizâ il parametri %d: %s\n"
 
-#: gio/gdbus-tool.c:841
+#: ../gio/gdbus-tool.c:841
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr ""
 
-#: gio/gdbus-tool.c:868
+#: ../gio/gdbus-tool.c:868
 msgid "Destination name to invoke method on"
 msgstr ""
 
-#: gio/gdbus-tool.c:869
+#: ../gio/gdbus-tool.c:869
 msgid "Object path to invoke method on"
 msgstr ""
 
-#: gio/gdbus-tool.c:870
+#: ../gio/gdbus-tool.c:870
 msgid "Method and interface name"
 msgstr "Metodi e non interface"
 
-#: gio/gdbus-tool.c:871
+#: ../gio/gdbus-tool.c:871
 msgid "Timeout in seconds"
 msgstr "Timp massim in seconts"
 
-#: gio/gdbus-tool.c:910
+#: ../gio/gdbus-tool.c:910
 msgid "Invoke a method on a remote object."
 msgstr "Invoche un metodi suntun ogjet rimot."
 
-#: gio/gdbus-tool.c:982 gio/gdbus-tool.c:1732 gio/gdbus-tool.c:1969
+#: ../gio/gdbus-tool.c:982 ../gio/gdbus-tool.c:1732 ../gio/gdbus-tool.c:1969
+#, c-format
 msgid "Error: Destination is not specified\n"
 msgstr "Erôr: Destinazion no specificade\n"
 
-#: gio/gdbus-tool.c:993 gio/gdbus-tool.c:1749 gio/gdbus-tool.c:1980
+#: ../gio/gdbus-tool.c:993 ../gio/gdbus-tool.c:1749 ../gio/gdbus-tool.c:1980
 #, c-format
 msgid "Error: %s is not a valid bus name\n"
 msgstr "Erôr: %s nol è un non bus valit\n"
 
-#: gio/gdbus-tool.c:1043
+#: ../gio/gdbus-tool.c:1043
+#, c-format
 msgid "Error: Method name is not specified\n"
 msgstr "Erôr: il non dal metodi nol è specificât\n"
 
-#: gio/gdbus-tool.c:1054
+#: ../gio/gdbus-tool.c:1054
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "Erôr: il non dal metodi “%s” nol è valit\n"
 
-#: gio/gdbus-tool.c:1132
+#: ../gio/gdbus-tool.c:1132
 #, c-format
 msgid "Error parsing parameter %d of type “%s”: %s\n"
 msgstr "Erôr tal analizâ il parametri %d di gjenar “%s”: %s\n"
 
-#: gio/gdbus-tool.c:1576
+#: ../gio/gdbus-tool.c:1576
 msgid "Destination name to introspect"
 msgstr ""
 
-#: gio/gdbus-tool.c:1577
+#: ../gio/gdbus-tool.c:1577
 msgid "Object path to introspect"
 msgstr ""
 
-#: gio/gdbus-tool.c:1578
+#: ../gio/gdbus-tool.c:1578
 msgid "Print XML"
 msgstr "Stampe XML"
 
-#: gio/gdbus-tool.c:1579
+#: ../gio/gdbus-tool.c:1579
 msgid "Introspect children"
 msgstr ""
 
-#: gio/gdbus-tool.c:1580
+#: ../gio/gdbus-tool.c:1580
 msgid "Only print properties"
 msgstr "Dome stampe proprietâts"
 
-#: gio/gdbus-tool.c:1667
+#: ../gio/gdbus-tool.c:1667
 msgid "Introspect a remote object."
 msgstr ""
 
-#: gio/gdbus-tool.c:1870
+#: ../gio/gdbus-tool.c:1870
 msgid "Destination name to monitor"
 msgstr "Non di destinazion di monitorâ"
 
-#: gio/gdbus-tool.c:1871
+#: ../gio/gdbus-tool.c:1871
 msgid "Object path to monitor"
 msgstr "Percors dal ogjet di monitorâ"
 
-#: gio/gdbus-tool.c:1896
+#: ../gio/gdbus-tool.c:1896
 msgid "Monitor a remote object."
 msgstr "Monitore un ogjet rimot."
 
-#: gio/gdbus-tool.c:1954
+#: ../gio/gdbus-tool.c:1954
+#, c-format
 msgid "Error: can’t monitor a non-message-bus connection\n"
 msgstr "Erôr: impussibil monitorâ une conession non-message-bus\n"
 
-#: gio/gdbus-tool.c:2078
+#: ../gio/gdbus-tool.c:2078
 msgid "Service to activate before waiting for the other one (well-known name)"
 msgstr "Servizi di ativâ prime di spietâ par chel altri (non ben-cognossût)"
 
-#: gio/gdbus-tool.c:2081
+#: ../gio/gdbus-tool.c:2081
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
@@ -1194,135 +1221,138 @@ msgstr ""
 "Timp di spietâ prime di jessi cuntun erôr (seconts); 0 par no vê scjadince "
 "(predefinît)"
 
-#: gio/gdbus-tool.c:2129
+#: ../gio/gdbus-tool.c:2129
 msgid "[OPTION…] BUS-NAME"
 msgstr "[OPZION…] NON-BUS"
 
-#: gio/gdbus-tool.c:2130
+#: ../gio/gdbus-tool.c:2130
 msgid "Wait for a bus name to appear."
 msgstr "Spiete che al vegni fûr un non di bus."
 
-#: gio/gdbus-tool.c:2206
-#, fuzzy
+#: ../gio/gdbus-tool.c:2206
+#, fuzzy, c-format
 #| msgid "Error: object path not specified.\n"
 msgid "Error: A service to activate for must be specified.\n"
 msgstr "Erôr: percors ogjet no specificât.\n"
 
-#: gio/gdbus-tool.c:2211
-#, fuzzy
+#: ../gio/gdbus-tool.c:2211
+#, fuzzy, c-format
 #| msgid "Error: object path not specified.\n"
 msgid "Error: A service to wait for must be specified.\n"
 msgstr "Erôr: percors ogjet no specificât.\n"
 
-#: gio/gdbus-tool.c:2216
+#: ../gio/gdbus-tool.c:2216
+#, c-format
 msgid "Error: Too many arguments.\n"
 msgstr "Erôr: masse argoments.\n"
 
-#: gio/gdbus-tool.c:2224 gio/gdbus-tool.c:2231
+#: ../gio/gdbus-tool.c:2224 ../gio/gdbus-tool.c:2231
 #, c-format
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Erôr: %s nol è un non di bus ben-cognossût valit\n"
 
-#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4633
+#: ../gio/gdesktopappinfo.c:2023 ../gio/gdesktopappinfo.c:4633
 msgid "Unnamed"
 msgstr "Cence non"
 
-#: gio/gdesktopappinfo.c:2433
+#: ../gio/gdesktopappinfo.c:2433
 msgid "Desktop file didn’t specify Exec field"
 msgstr "Il file .desktop nol specifiche il cjamp Exec"
 
-#: gio/gdesktopappinfo.c:2692
+#: ../gio/gdesktopappinfo.c:2692
 msgid "Unable to find terminal required for application"
 msgstr "Impussibil cjatâ il terminâl necessari pe aplicazion"
 
-#: gio/gdesktopappinfo.c:3202
+#: ../gio/gdesktopappinfo.c:3202
 #, c-format
 msgid "Can’t create user application configuration folder %s: %s"
 msgstr ""
 "Impussibil creâ la cartele dal utent pe configurazion de aplicazion %s: %s"
 
-#: gio/gdesktopappinfo.c:3206
+#: ../gio/gdesktopappinfo.c:3206
 #, c-format
 msgid "Can’t create user MIME configuration folder %s: %s"
 msgstr "Impussibil creâ la cartele dal utent pe configurazion MIME %s: %s"
 
-#: gio/gdesktopappinfo.c:3446 gio/gdesktopappinfo.c:3470
+#: ../gio/gdesktopappinfo.c:3446 ../gio/gdesktopappinfo.c:3470
 msgid "Application information lacks an identifier"
 msgstr "La informazion de aplicazion e mancje di un identificadôr"
 
-#: gio/gdesktopappinfo.c:3704
+#: ../gio/gdesktopappinfo.c:3704
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "Impussibil creâ il file .desktop %s dal utent"
 
-#: gio/gdesktopappinfo.c:3838
+#: ../gio/gdesktopappinfo.c:3838
 #, c-format
 msgid "Custom definition for %s"
 msgstr "Definizion personalizade par %s"
 
-#: gio/gdrive.c:417
+#: ../gio/gdrive.c:417
 msgid "drive doesn’t implement eject"
 msgstr "la unitât no implemente 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:495
 msgid "drive doesn’t implement eject or eject_with_operation"
 msgstr "la unitât no implemente eject o eject_with_operation"
 
-#: gio/gdrive.c:571
+#: ../gio/gdrive.c:571
 msgid "drive doesn’t implement polling for media"
 msgstr "la unitât no implemente il control sistematic dai supuarts"
 
-#: gio/gdrive.c:778
+#: ../gio/gdrive.c:778
 msgid "drive doesn’t implement start"
 msgstr "la unitât no implemente la azion start"
 
-#: gio/gdrive.c:880
+#: ../gio/gdrive.c:880
 msgid "drive doesn’t implement stop"
 msgstr "la unitât no implemente la azion stop"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: ../gio/gdummytlsbackend.c:195 ../gio/gdummytlsbackend.c:317
+#: ../gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "Il supuart TLS nol è disponibil"
 
-#: gio/gdummytlsbackend.c:419
+#: ../gio/gdummytlsbackend.c:419
 msgid "DTLS support is not available"
 msgstr "Il supuart DTLS nol è disponibil"
 
-#: gio/gemblem.c:323
+#: ../gio/gemblem.c:323
 #, c-format
 msgid "Can’t handle version %d of GEmblem encoding"
 msgstr "Impussibil gjestî la version %d de codifiche GEmblem"
 
-#: gio/gemblem.c:333
+#: ../gio/gemblem.c:333
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblem encoding"
 msgstr "Numar di token malformât (%d) inte codifiche GEmblem"
 
-#: gio/gemblemedicon.c:362
+#: ../gio/gemblemedicon.c:362
 #, c-format
 msgid "Can’t handle version %d of GEmblemedIcon encoding"
 msgstr "Impussibil gjestî la version %d de codifiche GEmblemedIcon"
 
-#: gio/gemblemedicon.c:372
+#: ../gio/gemblemedicon.c:372
 #, c-format
 msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
 msgstr "Numar di token malformât (%d) inte codifiche GEmblemedIcon"
 
-#: gio/gemblemedicon.c:395
+#: ../gio/gemblemedicon.c:395
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr "Si spietave un GEmblem par GEmblemedIcon"
 
-#: 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:3738 gio/gfile.c:3793
-#: gio/gfile.c:4029 gio/gfile.c:4071 gio/gfile.c:4539 gio/gfile.c:4950
-#: gio/gfile.c:5035 gio/gfile.c:5125 gio/gfile.c:5222 gio/gfile.c:5309
-#: gio/gfile.c:5410 gio/gfile.c:7988 gio/gfile.c:8078 gio/gfile.c:8162
-#: gio/win32/gwinhttpfile.c:437
+#: ../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:3738 ../gio/gfile.c:3793
+#: ../gio/gfile.c:4029 ../gio/gfile.c:4071 ../gio/gfile.c:4539
+#: ../gio/gfile.c:4950 ../gio/gfile.c:5035 ../gio/gfile.c:5125
+#: ../gio/gfile.c:5222 ../gio/gfile.c:5309 ../gio/gfile.c:5410
+#: ../gio/gfile.c:7988 ../gio/gfile.c:8078 ../gio/gfile.c:8162
+#: ../gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Operazion no supuartade"
 
@@ -1330,205 +1360,205 @@ msgstr "Operazion no supuartade"
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
 #.
-#: gio/gfile.c:1575
+#: ../gio/gfile.c:1575
 msgid "Containing mount does not exist"
 msgstr "Il montaç contignût nol esist"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2399
+#: ../gio/gfile.c:2622 ../gio/glocalfile.c:2389
 msgid "Can’t copy over directory"
 msgstr "Impussibil copiâ sore de cartele"
 
-#: gio/gfile.c:2682
+#: ../gio/gfile.c:2682
 msgid "Can’t copy directory over directory"
 msgstr "Impussibil copiâ la cartele sore de cartele"
 
-#: gio/gfile.c:2690
+#: ../gio/gfile.c:2690
 msgid "Target file exists"
 msgstr "Il file di destinazion al esist"
 
-#: gio/gfile.c:2709
+#: ../gio/gfile.c:2709
 msgid "Can’t recursively copy directory"
 msgstr "Impussibil copiâ in maniere ricorsive la cartele"
 
-#: gio/gfile.c:2984
+#: ../gio/gfile.c:2984
 msgid "Splice not supported"
 msgstr ""
 
-#: gio/gfile.c:2988 gio/gfile.c:3033
+#: ../gio/gfile.c:2988 ../gio/gfile.c:3033
 #, c-format
 msgid "Error splicing file: %s"
 msgstr ""
 
-#: gio/gfile.c:3149
+#: ../gio/gfile.c:3149
 msgid "Copy (reflink/clone) between mounts is not supported"
 msgstr "La copie (reflink/clone) tra i montaçs no je supuartade"
 
-#: gio/gfile.c:3153
+#: ../gio/gfile.c:3153
 msgid "Copy (reflink/clone) is not supported or invalid"
 msgstr "La copie (reflink/clone) no je supuartade o no je valide"
 
-#: gio/gfile.c:3158
+#: ../gio/gfile.c:3158
 msgid "Copy (reflink/clone) is not supported or didn’t work"
 msgstr "La copie (reflink/clone) no je supuartade o no à funzionât"
 
-#: gio/gfile.c:3221
+#: ../gio/gfile.c:3221
 msgid "Can’t copy special file"
 msgstr "Impussibil copiâ il file speciâl"
 
-#: gio/gfile.c:4019
+#: ../gio/gfile.c:4019
 msgid "Invalid symlink value given"
 msgstr "Furnît valôr di colegament simbolic no valit"
 
-#: gio/gfile.c:4180
+#: ../gio/gfile.c:4180
 msgid "Trash not supported"
 msgstr "Scovacere no supuartade"
 
-#: gio/gfile.c:4292
+#: ../gio/gfile.c:4292
 #, c-format
 msgid "File names cannot contain “%c”"
 msgstr "I nons dai file no puedin contignî “%c”"
 
-#: gio/gfile.c:6773 gio/gvolume.c:364
+#: ../gio/gfile.c:6773 ../gio/gvolume.c:364
 msgid "volume doesn’t implement mount"
 msgstr "il volum nol implemente la azion mount"
 
-#: gio/gfile.c:6882
+#: ../gio/gfile.c:6882
 msgid "No application is registered as handling this file"
 msgstr "No je regjistrade nissune aplicazion par gjestî chest file"
 
-#: gio/gfileenumerator.c:212
+#: ../gio/gfileenumerator.c:212
 msgid "Enumerator is closed"
 msgstr "L'enumeradôr al è sierât"
 
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: ../gio/gfileenumerator.c:219 ../gio/gfileenumerator.c:278
+#: ../gio/gfileenumerator.c:377 ../gio/gfileenumerator.c:476
 msgid "File enumerator has outstanding operation"
 msgstr ""
 
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: ../gio/gfileenumerator.c:368 ../gio/gfileenumerator.c:467
 msgid "File enumerator is already closed"
 msgstr "L'enumeradôr dal file al è za sierât"
 
-#: gio/gfileicon.c:236
+#: ../gio/gfileicon.c:236
 #, c-format
 msgid "Can’t handle version %d of GFileIcon encoding"
 msgstr "Impussibil gjestî la version %d de codifiche GFileIcon"
 
-#: gio/gfileicon.c:246
+#: ../gio/gfileicon.c:246
 msgid "Malformed input data for GFileIcon"
 msgstr "Dâts di input malformâts par GFileIcon"
 
-#: gio/gfileinputstream.c:149 gio/gfileinputstream.c:394
-#: gio/gfileiostream.c:167 gio/gfileoutputstream.c:164
-#: gio/gfileoutputstream.c:497
+#: ../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"
 msgstr "Il flus nol supuarte la azion query_info"
 
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: ../gio/gfileinputstream.c:325 ../gio/gfileiostream.c:379
+#: ../gio/gfileoutputstream.c:371
 msgid "Seek not supported on stream"
 msgstr "Ricercje no supuartade sul flus"
 
-#: gio/gfileinputstream.c:369
+#: ../gio/gfileinputstream.c:369
 msgid "Truncate not allowed on input stream"
 msgstr "Cjonçâ no permetût sul flus di jentrade"
 
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: ../gio/gfileiostream.c:455 ../gio/gfileoutputstream.c:447
 msgid "Truncate not supported on stream"
 msgstr "Cjonçâ no supuartât sul flus"
 
-#: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
+#: ../gio/ghttpproxy.c:91 ../gio/gresolver.c:410 ../gio/gresolver.c:476
+#: ../glib/gconvert.c:1786
 msgid "Invalid hostname"
 msgstr "Non dal host no valit"
 
-#: gio/ghttpproxy.c:143
+#: ../gio/ghttpproxy.c:143
 msgid "Bad HTTP proxy reply"
 msgstr "Rispueste dal proxy HTTP sbaliade"
 
-#: gio/ghttpproxy.c:159
+#: ../gio/ghttpproxy.c:159
 msgid "HTTP proxy connection not allowed"
 msgstr "Conession proxy HTTP no permetude"
 
-#: gio/ghttpproxy.c:164
+#: ../gio/ghttpproxy.c:164
 msgid "HTTP proxy authentication failed"
 msgstr "Autenticazion proxy HTTP falide"
 
-#: gio/ghttpproxy.c:167
+#: ../gio/ghttpproxy.c:167
 msgid "HTTP proxy authentication required"
 msgstr "Domandade autenticazion proxy HTTP"
 
-#: gio/ghttpproxy.c:171
+#: ../gio/ghttpproxy.c:171
 #, c-format
 msgid "HTTP proxy connection failed: %i"
 msgstr "Conession proxy HTTP falide: %i"
 
-#: gio/ghttpproxy.c:269
+#: ../gio/ghttpproxy.c:269
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "Il servidôr proxy HTTP al à sierât la conession in maniere inspietade."
 
-#: gio/gicon.c:298
+#: ../gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Numar di token sbaliât (%d)"
 
-#: gio/gicon.c:318
+#: ../gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Nissun gjenar pal non de classe %s"
 
-#: gio/gicon.c:328
+#: ../gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "Il gjenar %s nol implemente la interface GIcon"
 
-#: gio/gicon.c:339
+#: ../gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "Il Gjenar %s nol à classe"
 
-#: gio/gicon.c:353
+#: ../gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Numar di version malformât: %s"
 
-#: gio/gicon.c:367
+#: ../gio/gicon.c:359
 #, c-format
 msgid "Type %s does not implement from_tokens() on the GIcon interface"
 msgstr "Il gjenar %s nol implemente from_tokens() su la interface GIcon"
 
-#: gio/gicon.c:469
+#: ../gio/gicon.c:461
 msgid "Can’t handle the supplied version of the icon encoding"
 msgstr "Impussibil gjestî la version furnide de codifiche de icone"
 
-#: gio/ginetaddressmask.c:182
+#: ../gio/ginetaddressmask.c:182
 msgid "No address specified"
 msgstr "Nissune direzion specificade"
 
-#: gio/ginetaddressmask.c:190
+#: ../gio/ginetaddressmask.c:190
 #, c-format
 msgid "Length %u is too long for address"
 msgstr "La lungjece %u e je masse lungje pe direzion"
 
-#: gio/ginetaddressmask.c:223
+#: ../gio/ginetaddressmask.c:223
 msgid "Address has bits set beyond prefix length"
 msgstr "La direzion e presente cualchi bit plui in là de lungjece dal prefìs"
 
-#: gio/ginetaddressmask.c:300
+#: ../gio/ginetaddressmask.c:300
 #, c-format
 msgid "Could not parse “%s” as IP address mask"
 msgstr "Impussibil analizâ “%s” come mascare de direzion IP"
 
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:220
+#: ../gio/ginetsocketaddress.c:203 ../gio/ginetsocketaddress.c:220
+#: ../gio/gnativesocketaddress.c:109 ../gio/gunixsocketaddress.c:220
 msgid "Not enough space for socket address"
 msgstr "No vonde spazi pe direzion dal socket"
 
-#: gio/ginetsocketaddress.c:235
+#: ../gio/ginetsocketaddress.c:235
 msgid "Unsupported socket address"
 msgstr "Direzion dal socket no supuartade"
 
-#: gio/ginputstream.c:188
+#: ../gio/ginputstream.c:188
 msgid "Input stream doesn’t implement read"
 msgstr "Il flus di jentrade nol implemente la leture"
 
@@ -1538,266 +1568,277 @@ msgstr "Il flus di jentrade nol implemente la leture"
 #. 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:1671
+#: ../gio/ginputstream.c:1218 ../gio/giostream.c:310
+#: ../gio/goutputstream.c:1671
 msgid "Stream has outstanding operation"
 msgstr ""
 
-#: gio/gio-tool.c:160
+#: ../gio/gio-tool.c:160
 msgid "Copy with file"
 msgstr "Copie cul file"
 
-#: gio/gio-tool.c:164
+#: ../gio/gio-tool.c:164
 msgid "Keep with file when moved"
 msgstr "Ten adun cul file cuant che si sposte"
 
-#: gio/gio-tool.c:205
+#: ../gio/gio-tool.c:205
 msgid "“version” takes no arguments"
 msgstr "“version” no vûl nissun argoment"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:857
+#: ../gio/gio-tool.c:207 ../gio/gio-tool.c:223 ../glib/goption.c:857
 msgid "Usage:"
 msgstr "Ûs:"
 
-#: gio/gio-tool.c:210
+#: ../gio/gio-tool.c:210
 msgid "Print version information and exit."
 msgstr "Stampe informazions su la version e jes."
 
-#: gio/gio-tool.c:226
+#: ../gio/gio-tool.c:226
 msgid "Commands:"
 msgstr "Comants:"
 
-#: gio/gio-tool.c:229
+#: ../gio/gio-tool.c:229
 msgid "Concatenate files to standard output"
 msgstr "Met dongje i file su la jessude standard (standard output)"
 
-#: gio/gio-tool.c:230
+#: ../gio/gio-tool.c:230
 msgid "Copy one or more files"
 msgstr "Copie un o plui file"
 
-#: gio/gio-tool.c:231
+#: ../gio/gio-tool.c:231
 msgid "Show information about locations"
 msgstr "Mostre informazions su lis posizions"
 
-#: gio/gio-tool.c:232
+#: ../gio/gio-tool.c:232
 msgid "List the contents of locations"
 msgstr "Liste i contignûts des posizions"
 
-#: gio/gio-tool.c:233
+#: ../gio/gio-tool.c:233
 msgid "Get or set the handler for a mimetype"
 msgstr ""
 
-#: gio/gio-tool.c:234
+#: ../gio/gio-tool.c:234
 msgid "Create directories"
 msgstr "Cree cartelis"
 
-#: gio/gio-tool.c:235
+#: ../gio/gio-tool.c:235
 msgid "Monitor files and directories for changes"
 msgstr "Ten di voli lis modifichis a file e cartelis"
 
-#: gio/gio-tool.c:236
+#: ../gio/gio-tool.c:236
 msgid "Mount or unmount the locations"
 msgstr "Monte o dismonte lis posizions"
 
-#: gio/gio-tool.c:237
+#: ../gio/gio-tool.c:237
 msgid "Move one or more files"
 msgstr "Sposte un o plui file"
 
-#: gio/gio-tool.c:238
+#: ../gio/gio-tool.c:238
 msgid "Open files with the default application"
 msgstr "Vierç i file cun la aplicazion predefinide"
 
-#: gio/gio-tool.c:239
+#: ../gio/gio-tool.c:239
 msgid "Rename a file"
 msgstr "Cambie non a un file"
 
-#: gio/gio-tool.c:240
+#: ../gio/gio-tool.c:240
 msgid "Delete one or more files"
 msgstr "Elimine un o plui file"
 
-#: gio/gio-tool.c:241
+#: ../gio/gio-tool.c:241
 msgid "Read from standard input and save"
 msgstr "Lei de jentrade standard (standard input) e salve"
 
-#: gio/gio-tool.c:242
+#: ../gio/gio-tool.c:242
 msgid "Set a file attribute"
 msgstr "Stabilìs un atribût di file"
 
-#: gio/gio-tool.c:243
+#: ../gio/gio-tool.c:243
 msgid "Move files or directories to the trash"
 msgstr "Sposte te scovacere file o cartelis"
 
-#: gio/gio-tool.c:244
+#: ../gio/gio-tool.c:244
 msgid "Lists the contents of locations in a tree"
 msgstr "Al liste intun arbul i contignûts des posizions"
 
-#: gio/gio-tool.c:246
+#: ../gio/gio-tool.c:246
 #, c-format
 msgid "Use %s to get detailed help.\n"
 msgstr "Dopre %s par vê un jutori detaiât.\n"
 
-#: gio/gio-tool-cat.c:87
+#: ../gio/gio-tool-cat.c:87
 msgid "Error writing to stdout"
 msgstr "Erôr tal scrivi su 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:113
-#: 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
+#: ../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:1235
+#: ../gio/gio-tool-open.c:113 ../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 "LOCATION"
 msgstr "POSIZION"
 
-#: gio/gio-tool-cat.c:138
+#: ../gio/gio-tool-cat.c:138
 msgid "Concatenate files and print to standard output."
 msgstr ""
 
-#: gio/gio-tool-cat.c:140
+#: ../gio/gio-tool-cat.c:140
 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:313 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1263 gio/gio-tool-open.c:139
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
+#: ../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:1285 ../gio/gio-tool-open.c:139
+#: ../gio/gio-tool-remove.c:72 ../gio/gio-tool-trash.c:136
 msgid "No locations given"
 msgstr "Nissune posizion furnide"
 
-#: gio/gio-tool-copy.c:42 gio/gio-tool-move.c:38
+#: ../gio/gio-tool-copy.c:42 ../gio/gio-tool-move.c:38
 msgid "No target directory"
 msgstr "Nissune cartele di destinazion"
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:39
+#: ../gio/gio-tool-copy.c:43 ../gio/gio-tool-move.c:39
 msgid "Show progress"
 msgstr "Mostre avanzament"
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:40
+#: ../gio/gio-tool-copy.c:44 ../gio/gio-tool-move.c:40
 msgid "Prompt before overwrite"
 msgstr "Domande prime di sorescrivi"
 
-#: gio/gio-tool-copy.c:45
+#: ../gio/gio-tool-copy.c:45
 msgid "Preserve all attributes"
 msgstr "Preserve ducj i atribûts"
 
-#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: ../gio/gio-tool-copy.c:46 ../gio/gio-tool-move.c:41
+#: ../gio/gio-tool-save.c:49
 msgid "Backup existing destination files"
 msgstr ""
 
-#: gio/gio-tool-copy.c:47
+#: ../gio/gio-tool-copy.c:47
 msgid "Never follow symbolic links"
 msgstr "No sta mai lâ daûr ai colegaments simbolics"
 
-#: gio/gio-tool-copy.c:72 gio/gio-tool-move.c:67
+#: ../gio/gio-tool-copy.c:72 ../gio/gio-tool-move.c:67
 #, c-format
 msgid "Transferred %s out of %s (%s/s)"
 msgstr "Trasferîts %s di %s (%s/s)"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94
+#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
 msgid "SOURCE"
 msgstr "SORZINT"
 
 #. 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:98 ../gio/gio-tool-move.c:94
+#: ../gio/gio-tool-save.c:160
 msgid "DESTINATION"
 msgstr "DESTINAZION"
 
-#: gio/gio-tool-copy.c:103
+#: ../gio/gio-tool-copy.c:103
 msgid "Copy one or more files from SOURCE to DESTINATION."
 msgstr "Copie un o plui file de SORZINT ae DESTINAZION."
 
-#: gio/gio-tool-copy.c:105
+#: ../gio/gio-tool-copy.c:105
 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:147
 #, c-format
 msgid "Destination %s is not a directory"
 msgstr "La destinazion %s no je une cartele"
 
-#: gio/gio-tool-copy.c:192 gio/gio-tool-move.c:186
+#: ../gio/gio-tool-copy.c:192 ../gio/gio-tool-move.c:185
 #, c-format
 msgid "%s: overwrite “%s”? "
 msgstr "%s: sorescrivi “%s”? "
 
-#: gio/gio-tool-info.c:34
+#: ../gio/gio-tool-info.c:34
 msgid "List writable attributes"
 msgstr "Liste i atribûts scrivibii"
 
-#: gio/gio-tool-info.c:35
+#: ../gio/gio-tool-info.c:35
 msgid "Get file system info"
 msgstr "Oten informazions sul file-system"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "The attributes to get"
 msgstr "I atribûts di otignî"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "ATTRIBUTES"
 msgstr "ATRIBÛTS"
 
-#: gio/gio-tool-info.c:37 gio/gio-tool-list.c:38 gio/gio-tool-set.c:34
+#: ../gio/gio-tool-info.c:37 ../gio/gio-tool-list.c:38 ../gio/gio-tool-set.c:34
 msgid "Don’t follow symbolic links"
 msgstr "No sta lâ daûr ai colegaments simbolics"
 
-#: gio/gio-tool-info.c:75
+#: ../gio/gio-tool-info.c:75
+#, c-format
 msgid "attributes:\n"
 msgstr "atribûts:\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:127
+#: ../gio/gio-tool-info.c:127
 #, c-format
 msgid "display name: %s\n"
 msgstr "non di mostrâ: %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:132
 #, c-format
 msgid "edit name: %s\n"
 msgstr "non di modificâ: %s\n"
 
-#: gio/gio-tool-info.c:138
+#: ../gio/gio-tool-info.c:138
 #, c-format
 msgid "name: %s\n"
 msgstr "non: %s\n"
 
-#: gio/gio-tool-info.c:145
+#: ../gio/gio-tool-info.c:145
 #, c-format
 msgid "type: %s\n"
 msgstr "gjenar: %s\n"
 
-#: gio/gio-tool-info.c:151
+#: ../gio/gio-tool-info.c:151
+#, c-format
 msgid "size: "
 msgstr "dimension: "
 
-#: gio/gio-tool-info.c:156
+#: ../gio/gio-tool-info.c:156
+#, c-format
 msgid "hidden\n"
 msgstr "platât\n"
 
-#: gio/gio-tool-info.c:159
+#: ../gio/gio-tool-info.c:159
 #, c-format
 msgid "uri: %s\n"
 msgstr "uri: %s\n"
 
-#: gio/gio-tool-info.c:228
+#: ../gio/gio-tool-info.c:228
+#, c-format
 msgid "Settable attributes:\n"
 msgstr "Atribûts che si pues configurâ:\n"
 
-#: gio/gio-tool-info.c:252
+#: ../gio/gio-tool-info.c:252
+#, c-format
 msgid "Writable attribute namespaces:\n"
 msgstr ""
 
-#: gio/gio-tool-info.c:287
+#: ../gio/gio-tool-info.c:287
 msgid "Show information about locations."
 msgstr "Mostre informazions su lis posizions."
 
-#: gio/gio-tool-info.c:289
+#: ../gio/gio-tool-info.c:289
 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"
@@ -1806,23 +1847,23 @@ msgid ""
 "namespace, e.g. unix, or by “*”, which matches all attributes"
 msgstr ""
 
-#: gio/gio-tool-list.c:36 gio/gio-tool-tree.c:32
+#: ../gio/gio-tool-list.c:36 ../gio/gio-tool-tree.c:32
 msgid "Show hidden files"
 msgstr "Mostre file platâts"
 
-#: gio/gio-tool-list.c:37
+#: ../gio/gio-tool-list.c:37
 msgid "Use a long listing format"
 msgstr "Dopre un formât di liste prolìs"
 
-#: gio/gio-tool-list.c:39
+#: ../gio/gio-tool-list.c:39
 msgid "Print full URIs"
 msgstr "Stampe i URI complets"
 
-#: gio/gio-tool-list.c:170
+#: ../gio/gio-tool-list.c:170
 msgid "List the contents of the locations."
 msgstr "Liste i contignûts des posizions."
 
-#: gio/gio-tool-list.c:172
+#: ../gio/gio-tool-list.c:172
 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"
@@ -1831,19 +1872,19 @@ msgid ""
 msgstr ""
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "MIMETYPE"
 msgstr "GJENARMIME"
 
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "HANDLER"
 msgstr "GJESTÔR"
 
-#: gio/gio-tool-mime.c:76
+#: ../gio/gio-tool-mime.c:76
 msgid "Get or set the handler for a mimetype."
 msgstr "Oten o stabilìs il gjestôr par un gjenar di mime."
 
-#: gio/gio-tool-mime.c:78
+#: ../gio/gio-tool-mime.c:78
 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"
@@ -1855,362 +1896,372 @@ msgstr ""
 "come gjestôr\n"
 "predefinît pal gjenar mime."
 
-#: gio/gio-tool-mime.c:100
+#: ../gio/gio-tool-mime.c:100
 msgid "Must specify a single mimetype, and maybe a handler"
 msgstr "Si scugne specificâ un singul gjenar mime e se si vûl un gjestôr"
 
-#: gio/gio-tool-mime.c:116
+#: ../gio/gio-tool-mime.c:116
 #, c-format
 msgid "No default applications for “%s”\n"
 msgstr "Nissune aplicazion predefinide par “%s”\n"
 
-#: gio/gio-tool-mime.c:122
+#: ../gio/gio-tool-mime.c:122
 #, c-format
 msgid "Default application for “%s”: %s\n"
 msgstr "Aplicazion predefinide par “%s”: %s\n"
 
-#: gio/gio-tool-mime.c:127
+#: ../gio/gio-tool-mime.c:127
+#, c-format
 msgid "Registered applications:\n"
 msgstr "Aplicazions regjistradis:\n"
 
-#: gio/gio-tool-mime.c:129
+#: ../gio/gio-tool-mime.c:129
+#, c-format
 msgid "No registered applications\n"
 msgstr "Nissune aplicazion regjistrade\n"
 
-#: gio/gio-tool-mime.c:140
+#: ../gio/gio-tool-mime.c:140
+#, c-format
 msgid "Recommended applications:\n"
 msgstr "Aplicazions conseadis:\n"
 
-#: gio/gio-tool-mime.c:142
+#: ../gio/gio-tool-mime.c:142
+#, c-format
 msgid "No recommended applications\n"
 msgstr "Nissune aplicazion conseade\n"
 
-#: gio/gio-tool-mime.c:162
+#: ../gio/gio-tool-mime.c:162
 #, c-format
 msgid "Failed to load info for handler “%s”"
 msgstr "No si è rivâts a cjariâ lis informazion pal gjestôr “%s”"
 
-#: gio/gio-tool-mime.c:168
+#: ../gio/gio-tool-mime.c:168
 #, c-format
 msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
 msgstr "No si è rivâts a stabilî “%s” come gjestôr predefinît par “%s”: %s\n"
 
-#: gio/gio-tool-mkdir.c:31
+#: ../gio/gio-tool-mkdir.c:31
 msgid "Create parent directories"
 msgstr "Cree cartelis superiôrs"
 
-#: gio/gio-tool-mkdir.c:52
+#: ../gio/gio-tool-mkdir.c:52
 msgid "Create directories."
 msgstr "Cree cartelis."
 
-#: gio/gio-tool-mkdir.c:54
+#: ../gio/gio-tool-mkdir.c:54
 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:37
 msgid "Monitor a directory (default: depends on type)"
 msgstr "Ten di voli une cartele (predefinît: al dipent dal gjenar)"
 
-#: gio/gio-tool-monitor.c:39
+#: ../gio/gio-tool-monitor.c:39
 msgid "Monitor a file (default: depends on type)"
 msgstr "Ten di voli un file (predefinît: al dipent dal gjenar)"
 
-#: gio/gio-tool-monitor.c:41
+#: ../gio/gio-tool-monitor.c:41
 msgid "Monitor a file directly (notices changes made via hardlinks)"
 msgstr ""
 "Ten di voli un file in maniere direte (si vise des modifichis fatis par mieç "
 "di colegaments permanents)"
 
-#: gio/gio-tool-monitor.c:43
+#: ../gio/gio-tool-monitor.c:43
 msgid "Monitors a file directly, but doesn’t report changes"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:45
+#: ../gio/gio-tool-monitor.c:45
 msgid "Report moves and renames as simple deleted/created events"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:47
+#: ../gio/gio-tool-monitor.c:47
 msgid "Watch for mount events"
 msgstr ""
 
-#: gio/gio-tool-monitor.c:208
+#: ../gio/gio-tool-monitor.c:208
 msgid "Monitor files or directories for changes."
 msgstr ""
 
-#: gio/gio-tool-mount.c:63
+#: ../gio/gio-tool-mount.c:62
 msgid "Mount as mountable"
 msgstr ""
 
-#: gio/gio-tool-mount.c:64
+#: ../gio/gio-tool-mount.c:63
 msgid "Mount volume with device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+#: ../gio/gio-tool-mount.c:63 ../gio/gio-tool-mount.c:66
 msgid "DEVICE"
 msgstr "DISPOSITÎF"
 
-#: gio/gio-tool-mount.c:65
+#: ../gio/gio-tool-mount.c:64
 msgid "Unmount"
 msgstr "Dismonte"
 
-#: gio/gio-tool-mount.c:66
+#: ../gio/gio-tool-mount.c:65
 msgid "Eject"
 msgstr "Pare fûr"
 
-#: gio/gio-tool-mount.c:67
+#: ../gio/gio-tool-mount.c:66
 msgid "Stop drive with device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:67
 msgid "Unmount all mounts with the given scheme"
 msgstr ""
 
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:67
 msgid "SCHEME"
 msgstr "SCHEME"
 
-#: gio/gio-tool-mount.c:69
+#: ../gio/gio-tool-mount.c:68
 msgid "Ignore outstanding file operations when unmounting or ejecting"
 msgstr ""
 
-#: gio/gio-tool-mount.c:70
+#: ../gio/gio-tool-mount.c:69
 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:71
 msgid "List"
 msgstr "Liste"
 
-#: gio/gio-tool-mount.c:73
+#: ../gio/gio-tool-mount.c:72
 msgid "Monitor events"
 msgstr ""
 
-#: gio/gio-tool-mount.c:74
+#: ../gio/gio-tool-mount.c:73
 msgid "Show extra information"
 msgstr ""
 
-#: gio/gio-tool-mount.c:75
+#: ../gio/gio-tool-mount.c:74
 msgid "The numeric PIM when unlocking a VeraCrypt volume"
 msgstr ""
 
-#: gio/gio-tool-mount.c:75
+#: ../gio/gio-tool-mount.c:74
+#, fuzzy
+#| msgctxt "GDateTime"
+#| msgid "PM"
 msgid "PIM"
-msgstr ""
+msgstr "PM"
 
-#: gio/gio-tool-mount.c:76
+#: ../gio/gio-tool-mount.c:75
 msgid "Mount a TCRYPT hidden volume"
 msgstr ""
 
-#: gio/gio-tool-mount.c:77
+#: ../gio/gio-tool-mount.c:76
 msgid "Mount a TCRYPT system volume"
 msgstr ""
 
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: ../gio/gio-tool-mount.c:264 ../gio/gio-tool-mount.c:296
 msgid "Anonymous access denied"
-msgstr "Acès anonim dineât"
+msgstr ""
 
-#: gio/gio-tool-mount.c:522
+#: ../gio/gio-tool-mount.c:524
 msgid "No drive for device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:975
+#: ../gio/gio-tool-mount.c:989
 #, c-format
 msgid "Mounted %s at %s\n"
 msgstr ""
 
-#: gio/gio-tool-mount.c:1027
+#: ../gio/gio-tool-mount.c:1044
 msgid "No volume for device file"
 msgstr ""
 
-#: gio/gio-tool-mount.c:1216
+#: ../gio/gio-tool-mount.c:1239
 msgid "Mount or unmount the locations."
-msgstr "Monte o dismonte lis posizions."
+msgstr ""
 
-#: gio/gio-tool-move.c:42
+#: ../gio/gio-tool-move.c:42
 msgid "Don’t use copy and delete fallback"
 msgstr ""
 
-#: gio/gio-tool-move.c:99
+#: ../gio/gio-tool-move.c:99
 msgid "Move one or more files from SOURCE to DEST."
 msgstr ""
 
-#: gio/gio-tool-move.c:101
+#: ../gio/gio-tool-move.c:101
 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:142
 #, c-format
 msgid "Target %s is not a directory"
-msgstr "La destinazion %s no je une cartele"
+msgstr ""
 
-#: gio/gio-tool-open.c:118
+#: ../gio/gio-tool-open.c:118
 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:31 ../gio/gio-tool-trash.c:31
 msgid "Ignore nonexistent files, never prompt"
 msgstr "Ignore i file inesistents, no sta domandâ mai"
 
-#: gio/gio-tool-remove.c:52
+#: ../gio/gio-tool-remove.c:52
 msgid "Delete the given files."
 msgstr "Elimine i file furnîts."
 
-#: gio/gio-tool-rename.c:45
+#: ../gio/gio-tool-rename.c:45
 msgid "NAME"
 msgstr "NON"
 
-#: gio/gio-tool-rename.c:50
+#: ../gio/gio-tool-rename.c:50
 msgid "Rename a file."
 msgstr "Cambie non a un file."
 
-#: gio/gio-tool-rename.c:70
+#: ../gio/gio-tool-rename.c:70
 msgid "Missing argument"
 msgstr "Argoment mancjant"
 
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: ../gio/gio-tool-rename.c:76 ../gio/gio-tool-save.c:190
+#: ../gio/gio-tool-set.c:137
 msgid "Too many arguments"
 msgstr "Masse argoments"
 
-#: gio/gio-tool-rename.c:95
+#: ../gio/gio-tool-rename.c:95
 #, c-format
 msgid "Rename successful. New uri: %s\n"
 msgstr "Cambiâ di non lât ben. Gnûf uri: %s\n"
 
-#: gio/gio-tool-save.c:50
+#: ../gio/gio-tool-save.c:50
 msgid "Only create if not existing"
 msgstr "Cree dome se nol esist"
 
-#: gio/gio-tool-save.c:51
+#: ../gio/gio-tool-save.c:51
 msgid "Append to end of file"
 msgstr "Zonte ae fin dal file"
 
-#: gio/gio-tool-save.c:52
+#: ../gio/gio-tool-save.c:52
 msgid "When creating, restrict access to the current user"
 msgstr ""
 
-#: gio/gio-tool-save.c:53
+#: ../gio/gio-tool-save.c:53
 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:55
+#, fuzzy
 msgid "Print new etag at end"
 msgstr "Stampe gnûf etag ae fin"
 
 #. 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:57
 msgid "The etag of the file being overwritten"
 msgstr "Il etag dal file che si sta par sorescrivi"
 
-#: gio/gio-tool-save.c:57
+#: ../gio/gio-tool-save.c:57
 msgid "ETAG"
 msgstr "ETAG"
 
-#: gio/gio-tool-save.c:113
+#: ../gio/gio-tool-save.c:113
 msgid "Error reading from standard input"
 msgstr "Erôr tal lei dal standard input"
 
 #. 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:139
+#, c-format
 msgid "Etag not available\n"
 msgstr "Etag no disponibil\n"
 
-#: gio/gio-tool-save.c:163
+#: ../gio/gio-tool-save.c:163
 msgid "Read from standard input and save to DEST."
 msgstr ""
 
-#: gio/gio-tool-save.c:183
+#: ../gio/gio-tool-save.c:183
 msgid "No destination given"
 msgstr "Nissune destinazion furnide"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "Type of the attribute"
 msgstr "Gjenar dal atribût"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "TYPE"
 msgstr "GJENAR"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "ATTRIBUTE"
 msgstr "ATRIBÛT"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "VALUE"
 msgstr "VALÔR"
 
-#: gio/gio-tool-set.c:93
+#: ../gio/gio-tool-set.c:93
 msgid "Set a file attribute of LOCATION."
 msgstr ""
 
-#: gio/gio-tool-set.c:113
+#: ../gio/gio-tool-set.c:113
 msgid "Location not specified"
 msgstr "Posizion no specificade"
 
-#: gio/gio-tool-set.c:120
+#: ../gio/gio-tool-set.c:120
 msgid "Attribute not specified"
 msgstr "Atribût no specificât"
 
-#: gio/gio-tool-set.c:130
+#: ../gio/gio-tool-set.c:130
 msgid "Value not specified"
 msgstr "Valôr no specificât"
 
-#: gio/gio-tool-set.c:180
+#: ../gio/gio-tool-set.c:180
 #, c-format
 msgid "Invalid attribute type “%s”"
 msgstr "Gjenar di atribût “%s” no valit"
 
-#: gio/gio-tool-trash.c:32
+#: ../gio/gio-tool-trash.c:32
 msgid "Empty the trash"
 msgstr "Disvuede la scovacere"
 
-#: gio/gio-tool-trash.c:86
+#: ../gio/gio-tool-trash.c:86
 msgid "Move files or directories to the trash."
 msgstr "Sposte i file o lis cartelis te scovacere."
 
-#: gio/gio-tool-tree.c:33
+#: ../gio/gio-tool-tree.c:33
 msgid "Follow symbolic links, mounts and shortcuts"
 msgstr "Seguìs i colegaments simbolics, i montaçs e lis scurtis"
 
-#: gio/gio-tool-tree.c:244
+#: ../gio/gio-tool-tree.c:244
 msgid "List contents of directories in a tree-like format."
 msgstr "Liste i contignûts des cartelis intun formât a arbul."
 
-#: gio/glib-compile-resources.c:143 gio/glib-compile-schemas.c:1515
+#: ../gio/glib-compile-resources.c:143 ../gio/glib-compile-schemas.c:1515
 #, c-format
 msgid "Element <%s> not allowed inside <%s>"
 msgstr "L'element <%s> nol è permetût dentri di <%s>"
 
-#: gio/glib-compile-resources.c:147
+#: ../gio/glib-compile-resources.c:147
 #, c-format
 msgid "Element <%s> not allowed at toplevel"
 msgstr "L'element <%s> nol è permetût a nivel primari"
 
-#: gio/glib-compile-resources.c:237
+#: ../gio/glib-compile-resources.c:237
 #, c-format
 msgid "File %s appears multiple times in the resource"
 msgstr "Il file %s al ven fûr plui voltis inte risorse"
 
-#: gio/glib-compile-resources.c:248
+#: ../gio/glib-compile-resources.c:248
 #, c-format
 msgid "Failed to locate “%s” in any source directory"
 msgstr "No si è rivâts a localizâ “%s” in nissune cartele sorzint"
 
-#: gio/glib-compile-resources.c:259
+#: ../gio/glib-compile-resources.c:259
 #, c-format
 msgid "Failed to locate “%s” in current directory"
 msgstr "No si è rivâts a localizâ “%s” inte cartele atuâl"
 
-#: gio/glib-compile-resources.c:293
+#: ../gio/glib-compile-resources.c:293
 #, c-format
 msgid "Unknown processing option “%s”"
 msgstr "Opzion di elaborazion “%s” no cognossude"
@@ -2219,524 +2270,527 @@ msgstr "Opzion di elaborazion “%s” no cognossude"
 #. * the second %s is an environment variable, and the third
 #. * %s is a command line tool
 #.
-#: gio/glib-compile-resources.c:313 gio/glib-compile-resources.c:370
-#: gio/glib-compile-resources.c:427
+#: ../gio/glib-compile-resources.c:313 ../gio/glib-compile-resources.c:370
+#: ../gio/glib-compile-resources.c:427
 #, c-format
 msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
 msgstr ""
 
-#: gio/glib-compile-resources.c:460
+#: ../gio/glib-compile-resources.c:460
 #, c-format
 msgid "Error reading file %s: %s"
 msgstr "Erôr tal lei il file %s: %s"
 
-#: gio/glib-compile-resources.c:480
+#: ../gio/glib-compile-resources.c:480
 #, c-format
 msgid "Error compressing file %s"
 msgstr "Erôr tal comprimi il file %s"
 
-#: gio/glib-compile-resources.c:541
+#: ../gio/glib-compile-resources.c:541
 #, c-format
 msgid "text may not appear inside <%s>"
-msgstr "il test al podarès no aparî dentri <%s>"
+msgstr ""
 
-#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2139
+#: ../gio/glib-compile-resources.c:736 ../gio/glib-compile-schemas.c:2138
 msgid "Show program version and exit"
 msgstr "Mostre la version dal program e jes"
 
-#: gio/glib-compile-resources.c:737
+#: ../gio/glib-compile-resources.c:737
+#, fuzzy
+#| msgid "name of the output file"
 msgid "Name of the output file"
-msgstr "Non dal file di jessude"
+msgstr "non dal file di jessude"
 
-#: gio/glib-compile-resources.c:738
+#: ../gio/glib-compile-resources.c:738
 msgid ""
 "The directories to load files referenced in FILE from (default: current "
 "directory)"
 msgstr ""
 
-#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2140
-#: gio/glib-compile-schemas.c:2169
+#: ../gio/glib-compile-resources.c:738 ../gio/glib-compile-schemas.c:2139
+#: ../gio/glib-compile-schemas.c:2168
 msgid "DIRECTORY"
 msgstr "CARTELE"
 
-#: gio/glib-compile-resources.c:739
+#: ../gio/glib-compile-resources.c:739
 msgid ""
 "Generate output in the format selected for by the target filename extension"
 msgstr ""
 
-#: gio/glib-compile-resources.c:740
+#: ../gio/glib-compile-resources.c:740
 msgid "Generate source header"
-msgstr "Gjenere intestazion sorzint"
+msgstr ""
 
-#: gio/glib-compile-resources.c:741
+#: ../gio/glib-compile-resources.c:741
 msgid "Generate source code used to link in the resource file into your code"
 msgstr ""
 
-#: gio/glib-compile-resources.c:742
+#: ../gio/glib-compile-resources.c:742
 msgid "Generate dependency list"
 msgstr "Gjenere la liste des dipendencis"
 
-#: gio/glib-compile-resources.c:743
+#: ../gio/glib-compile-resources.c:743
 msgid "Name of the dependency file to generate"
 msgstr "Non dal file des dipendencis di gjenerâ"
 
-#: gio/glib-compile-resources.c:744
+#: ../gio/glib-compile-resources.c:744
 msgid "Include phony targets in the generated dependency file"
 msgstr ""
 
-#: gio/glib-compile-resources.c:745
+#: ../gio/glib-compile-resources.c:745
 msgid "Don’t automatically create and register resource"
 msgstr ""
 
-#: gio/glib-compile-resources.c:746
+#: ../gio/glib-compile-resources.c:746
 msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
 msgstr ""
 
-#: gio/glib-compile-resources.c:747
+#: ../gio/glib-compile-resources.c:747
 msgid "C identifier name used for the generated source code"
 msgstr ""
 
-#: gio/glib-compile-resources.c:773
+#: ../gio/glib-compile-resources.c:773
 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:795
+#: ../gio/glib-compile-resources.c:795
+#, c-format
 msgid "You should give exactly one file name\n"
 msgstr "Si scugne dâ juste un non di file\n"
 
-#: gio/glib-compile-schemas.c:95
+#: ../gio/glib-compile-schemas.c:95
 #, c-format
 msgid "nick must be a minimum of 2 characters"
 msgstr "il nick al scugne jessi di almancul 2 caratars"
 
-#: gio/glib-compile-schemas.c:106
+#: ../gio/glib-compile-schemas.c:106
 #, c-format
 msgid "Invalid numeric value"
 msgstr "Valôr numeric no valit"
 
-#: gio/glib-compile-schemas.c:114
+#: ../gio/glib-compile-schemas.c:114
 #, c-format
 msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'/> za specificât"
+msgstr ""
 
-#: gio/glib-compile-schemas.c:122
+#: ../gio/glib-compile-schemas.c:122
 #, c-format
 msgid "value='%s' already specified"
 msgstr "valôr='%s' za specificât"
 
-#: gio/glib-compile-schemas.c:136
+#: ../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
+#: ../gio/glib-compile-schemas.c:161
 #, c-format
 msgid "<%s> must contain at least one <value>"
-msgstr "<%s> al à di contignî almancul un <value>"
+msgstr ""
 
-#: gio/glib-compile-schemas.c:317
+#: ../gio/glib-compile-schemas.c:317
 #, c-format
 msgid "<%s> is not contained in the specified range"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:329
+#: ../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
+#: ../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
+#: ../gio/glib-compile-schemas.c:341
 #, c-format
 msgid "<%s> contains a string not in <choices>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:375
+#: ../gio/glib-compile-schemas.c:375
 msgid "<range/> already specified for this key"
-msgstr "<range/> za specificât par cheste clâf"
+msgstr ""
 
-#: gio/glib-compile-schemas.c:393
+#: ../gio/glib-compile-schemas.c:393
 #, c-format
 msgid "<range> not allowed for keys of type “%s”"
-msgstr "<range> no permetût pes clâfs di gjenar “%s”"
+msgstr ""
 
-#: gio/glib-compile-schemas.c:410
+#: ../gio/glib-compile-schemas.c:410
 #, c-format
 msgid "<range> specified minimum is greater than maximum"
-msgstr "il minim specificât di <range> al è plui grant dal massim"
+msgstr ""
 
-#: gio/glib-compile-schemas.c:435
+#: ../gio/glib-compile-schemas.c:435
 #, c-format
 msgid "unsupported l10n category: %s"
 msgstr "categorie l10n no supuartade: %s"
 
-#: gio/glib-compile-schemas.c:443
+#: ../gio/glib-compile-schemas.c:443
 msgid "l10n requested, but no gettext domain given"
 msgstr "l10n domandât, ma nissun domini gettext furnît"
 
-#: gio/glib-compile-schemas.c:455
+#: ../gio/glib-compile-schemas.c:455
 msgid "translation context given for value without l10n enabled"
-msgstr "contest di traduzion furnît pal valôr cence l10n abilitât"
+msgstr ""
 
-#: gio/glib-compile-schemas.c:477
+#: ../gio/glib-compile-schemas.c:477
 #, c-format
 msgid "Failed to parse <default> value of type “%s”: "
 msgstr ""
 
-#: gio/glib-compile-schemas.c:494
+#: ../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
+#: ../gio/glib-compile-schemas.c:503
 msgid "<choices> already specified for this key"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:515
+#: ../gio/glib-compile-schemas.c:515
 #, c-format
 msgid "<choices> not allowed for keys of type “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:531
+#: ../gio/glib-compile-schemas.c:531
 #, c-format
 msgid "<choice value='%s'/> already given"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:546
+#: ../gio/glib-compile-schemas.c:546
 #, c-format
 msgid "<choices> must contain at least one <choice>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:560
+#: ../gio/glib-compile-schemas.c:560
 msgid "<aliases> already specified for this key"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:564
+#: ../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
+#: ../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
+#: ../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
+#: ../gio/glib-compile-schemas.c:597
 #, c-format
 msgid "<alias value='%s'/> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:607
+#: ../gio/glib-compile-schemas.c:607
 #, c-format
 msgid "alias target “%s” is not in enumerated type"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:608
+#: ../gio/glib-compile-schemas.c:608
 #, c-format
 msgid "alias target “%s” is not in <choices>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:623
+#: ../gio/glib-compile-schemas.c:623
 #, c-format
 msgid "<aliases> must contain at least one <alias>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:798
+#: ../gio/glib-compile-schemas.c:798
 msgid "Empty names are not permitted"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:808
+#: ../gio/glib-compile-schemas.c:808
 #, c-format
 msgid "Invalid name “%s”: names must begin with a lowercase letter"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:820
+#: ../gio/glib-compile-schemas.c:820
 #, c-format
 msgid ""
 "Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
 "and hyphen (“-”) are permitted"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:829
+#: ../gio/glib-compile-schemas.c:829
 #, c-format
 msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:838
+#: ../gio/glib-compile-schemas.c:838
 #, c-format
 msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:846
+#: ../gio/glib-compile-schemas.c:846
 #, c-format
 msgid "Invalid name “%s”: maximum length is 1024"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:918
+#: ../gio/glib-compile-schemas.c:918
 #, c-format
 msgid "<child name='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:944
+#: ../gio/glib-compile-schemas.c:944
 msgid "Cannot add keys to a “list-of” schema"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:955
+#: ../gio/glib-compile-schemas.c:955
 #, c-format
 msgid "<key name='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:973
+#: ../gio/glib-compile-schemas.c:973
 #, 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:984
+#: ../gio/glib-compile-schemas.c:984
 #, c-format
 msgid ""
 "Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
 "to <key>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1003
+#: ../gio/glib-compile-schemas.c:1003
 #, c-format
 msgid "<%s id='%s'> not (yet) defined."
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1018
+#: ../gio/glib-compile-schemas.c:1018
 #, c-format
 msgid "Invalid GVariant type string “%s”"
 msgstr "Stringhe di gjenar GVariant “%s” no valide"
 
-#: gio/glib-compile-schemas.c:1048
+#: ../gio/glib-compile-schemas.c:1048
 msgid "<override> given but schema isn’t extending anything"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1061
+#: ../gio/glib-compile-schemas.c:1061
 #, c-format
 msgid "No <key name='%s'> to override"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1069
+#: ../gio/glib-compile-schemas.c:1069
 #, c-format
 msgid "<override name='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1142
+#: ../gio/glib-compile-schemas.c:1142
 #, c-format
 msgid "<schema id='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1154
+#: ../gio/glib-compile-schemas.c:1154
 #, c-format
 msgid "<schema id='%s'> extends not yet existing schema “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1170
+#: ../gio/glib-compile-schemas.c:1170
 #, c-format
 msgid "<schema id='%s'> is list of not yet existing schema “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1178
+#: ../gio/glib-compile-schemas.c:1178
 #, c-format
 msgid "Cannot be a list of a schema with a path"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1188
+#: ../gio/glib-compile-schemas.c:1188
 #, c-format
 msgid "Cannot extend a schema with a path"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1198
+#: ../gio/glib-compile-schemas.c:1198
 #, c-format
 msgid ""
 "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1208
+#: ../gio/glib-compile-schemas.c:1208
 #, 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:1225
+#: ../gio/glib-compile-schemas.c:1225
 #, c-format
 msgid "A path, if given, must begin and end with a slash"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1232
+#: ../gio/glib-compile-schemas.c:1232
 #, c-format
 msgid "The path of a list must end with “:/”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1241
+#: ../gio/glib-compile-schemas.c:1241
 #, c-format
 msgid ""
 "Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/"
 "desktop/” or “/system/” are deprecated."
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1271
+#: ../gio/glib-compile-schemas.c:1271
 #, c-format
 msgid "<%s id='%s'> already specified"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1421 gio/glib-compile-schemas.c:1437
+#: ../gio/glib-compile-schemas.c:1421 ../gio/glib-compile-schemas.c:1437
 #, c-format
 msgid "Only one <%s> element allowed inside <%s>"
 msgstr "Al è permetût dome un element <%s> dentri <%s>"
 
-#: gio/glib-compile-schemas.c:1519
+#: ../gio/glib-compile-schemas.c:1519
 #, c-format
 msgid "Element <%s> not allowed at the top level"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1537
+#: ../gio/glib-compile-schemas.c:1537
 msgid "Element <default> is required in <key>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1627
+#: ../gio/glib-compile-schemas.c:1627
 #, c-format
 msgid "Text may not appear inside <%s>"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1695
+#: ../gio/glib-compile-schemas.c:1695
 #, c-format
 msgid "Warning: undefined reference to <schema id='%s'/>"
 msgstr ""
 
 #. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1834 gio/glib-compile-schemas.c:1910
-#: gio/glib-compile-schemas.c:2025
+#: ../gio/glib-compile-schemas.c:1834 ../gio/glib-compile-schemas.c:1910
+#: ../gio/glib-compile-schemas.c:2025
 #, c-format
 msgid "--strict was specified; exiting.\n"
 msgstr "--strict al jere specificât; si jes.\n"
 
-#: gio/glib-compile-schemas.c:1844
+#: ../gio/glib-compile-schemas.c:1844
 #, c-format
 msgid "This entire file has been ignored.\n"
 msgstr "Chest file intîr al è stât ignorât.\n"
 
-#: gio/glib-compile-schemas.c:1906
+#: ../gio/glib-compile-schemas.c:1906
 #, c-format
 msgid "Ignoring this file.\n"
 msgstr "Si ignore chest file.\n"
 
-#: gio/glib-compile-schemas.c:1959
+#: ../gio/glib-compile-schemas.c:1959
 #, c-format
 msgid "No such key “%s” in schema “%s” as specified in override file “%s”"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1965 gio/glib-compile-schemas.c:1990
-#: gio/glib-compile-schemas.c:2050 gio/glib-compile-schemas.c:2079
+#: ../gio/glib-compile-schemas.c:1965 ../gio/glib-compile-schemas.c:1990
+#: ../gio/glib-compile-schemas.c:2050 ../gio/glib-compile-schemas.c:2079
 #, c-format
 msgid "; ignoring override for this key.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:1969 gio/glib-compile-schemas.c:1994
-#: gio/glib-compile-schemas.c:2054 gio/glib-compile-schemas.c:2083
+#: ../gio/glib-compile-schemas.c:1969 ../gio/glib-compile-schemas.c:1994
+#: ../gio/glib-compile-schemas.c:2054 ../gio/glib-compile-schemas.c:2083
 #, c-format
 msgid " and --strict was specified; exiting.\n"
 msgstr " e --strict al jere specificât; si jes.\n"
 
-#: gio/glib-compile-schemas.c:1984
+#: ../gio/glib-compile-schemas.c:1984
 #, c-format
 msgid ""
 "cannot provide per-desktop overrides for localised key “%s” in schema "
 "“%s” (override file “%s”)"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2011
+#: ../gio/glib-compile-schemas.c:2011
 #, c-format
 msgid ""
 "error parsing key “%s” in schema “%s” as specified in override file “%s”: %s."
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2021
+#: ../gio/glib-compile-schemas.c:2021
 #, c-format
 msgid "Ignoring override for this key.\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2040
+#: ../gio/glib-compile-schemas.c:2040
 #, c-format
 msgid ""
 "override for key “%s” in schema “%s” in override file “%s” is outside the "
 "range given in the schema"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2069
+#: ../gio/glib-compile-schemas.c:2069
 #, c-format
 msgid ""
 "override for key “%s” in schema “%s” in override file “%s” is not in the "
 "list of valid choices"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2140
+#: ../gio/glib-compile-schemas.c:2139
 msgid "where to store the gschemas.compiled file"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2141
+#: ../gio/glib-compile-schemas.c:2140
 msgid "Abort on any errors in schemas"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2142
+#: ../gio/glib-compile-schemas.c:2141
 msgid "Do not write the gschema.compiled file"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2143
+#: ../gio/glib-compile-schemas.c:2142
 msgid "Do not enforce key name restrictions"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2172
+#: ../gio/glib-compile-schemas.c:2171
 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:2193
+#: ../gio/glib-compile-schemas.c:2192
 #, c-format
 msgid "You should give exactly one directory name\n"
 msgstr ""
 
-#: gio/glib-compile-schemas.c:2235
+#: ../gio/glib-compile-schemas.c:2234
 #, c-format
 msgid "No schema files found: "
 msgstr "Nissun file di scheme cjatât: "
 
-#: gio/glib-compile-schemas.c:2238
+#: ../gio/glib-compile-schemas.c:2237
 #, c-format
 msgid "doing nothing.\n"
 msgstr "no si fâs nuie.\n"
 
-#: gio/glib-compile-schemas.c:2241
+#: ../gio/glib-compile-schemas.c:2240
 #, c-format
 msgid "removed existing output file.\n"
 msgstr "file di jessude esistent gjavât.\n"
 
-#: gio/glocalfile.c:544 gio/win32/gwinhttpfile.c:420
+#: ../gio/glocalfile.c:544 ../gio/win32/gwinhttpfile.c:420
 #, c-format
 msgid "Invalid filename %s"
 msgstr "Non file %s no valit"
 
-#: gio/glocalfile.c:1011
+#: ../gio/glocalfile.c:1006
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr ""
@@ -2745,472 +2799,474 @@ msgstr ""
 #. * the enclosing (user visible) mount of a file, but none
 #. * exists.
 #.
-#: gio/glocalfile.c:1150
+#: ../gio/glocalfile.c:1145
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr ""
 
-#: gio/glocalfile.c:1173
+#: ../gio/glocalfile.c:1168
 msgid "Can’t rename root directory"
 msgstr ""
 
-#: gio/glocalfile.c:1191 gio/glocalfile.c:1214
+#: ../gio/glocalfile.c:1186 ../gio/glocalfile.c:1209
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr ""
 
-#: gio/glocalfile.c:1198
+#: ../gio/glocalfile.c:1193
 msgid "Can’t rename file, filename already exists"
 msgstr ""
 
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2275 gio/glocalfile.c:2303
-#: gio/glocalfile.c:2460 gio/glocalfileoutputstream.c:551
+#: ../gio/glocalfile.c:1206 ../gio/glocalfile.c:2265 ../gio/glocalfile.c:2293
+#: ../gio/glocalfile.c:2450 ../gio/glocalfileoutputstream.c:551
 msgid "Invalid filename"
 msgstr "Non file no valit"
 
-#: gio/glocalfile.c:1379 gio/glocalfile.c:1394
+#: ../gio/glocalfile.c:1374 ../gio/glocalfile.c:1389
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Erôr tal vierzi il file %s: %s"
 
-#: gio/glocalfile.c:1519
+#: ../gio/glocalfile.c:1514
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Erôr tal gjavâ il file %s: %s"
 
-#: gio/glocalfile.c:1916
+#: ../gio/glocalfile.c:1924
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Erôr tal butâ te scovacere il file %s: %s"
 
-#: gio/glocalfile.c:1957
+#: ../gio/glocalfile.c:1947
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Impussibil creâ la cartele scovacere %s: %s"
 
-#: gio/glocalfile.c:1978
+#: ../gio/glocalfile.c:1969
 #, c-format
 msgid "Unable to find toplevel directory to trash %s"
 msgstr ""
 
-#: gio/glocalfile.c:1987
+#: ../gio/glocalfile.c:1978
 #, fuzzy, c-format
 #| msgid "Copy (reflink/clone) between mounts is not supported"
 msgid "Trashing on system internal mounts is not supported"
 msgstr "La copie (reflink/clone) tra i montaçs no je supuartade"
 
-#: gio/glocalfile.c:2071 gio/glocalfile.c:2091
+#: ../gio/glocalfile.c:2062 ../gio/glocalfile.c:2082
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr ""
 
-#: gio/glocalfile.c:2126
+#: ../gio/glocalfile.c:2117
 #, c-format
 msgid "Unable to create trashing info file for %s: %s"
 msgstr ""
 
-#: gio/glocalfile.c:2186
+#: ../gio/glocalfile.c:2176
 #, c-format
 msgid "Unable to trash file %s across filesystem boundaries"
 msgstr ""
 
-#: gio/glocalfile.c:2190 gio/glocalfile.c:2246
+#: ../gio/glocalfile.c:2180 ../gio/glocalfile.c:2236
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr ""
 
-#: gio/glocalfile.c:2252
+#: ../gio/glocalfile.c:2242
 #, c-format
 msgid "Unable to trash file %s"
 msgstr ""
 
-#: gio/glocalfile.c:2278
+#: ../gio/glocalfile.c:2268
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Erôr tal creâ la cartele %s: %s"
 
-#: gio/glocalfile.c:2307
+#: ../gio/glocalfile.c:2297
 #, c-format
 msgid "Filesystem does not support symbolic links"
 msgstr "Il filesystem nol supuarte i colegaments simbolics"
 
-#: gio/glocalfile.c:2310
+#: ../gio/glocalfile.c:2300
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr ""
 
-#: gio/glocalfile.c:2316 glib/gfileutils.c:2138
+#: ../gio/glocalfile.c:2306 ../glib/gfileutils.c:2138
 msgid "Symbolic links not supported"
 msgstr "Colegaments simbolics no supuartâts"
 
-#: gio/glocalfile.c:2371 gio/glocalfile.c:2406 gio/glocalfile.c:2463
+#: ../gio/glocalfile.c:2361 ../gio/glocalfile.c:2396 ../gio/glocalfile.c:2453
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Erôr tal spostâ il file %s: %s"
 
-#: gio/glocalfile.c:2394
+#: ../gio/glocalfile.c:2384
 msgid "Can’t move directory over directory"
 msgstr "Impussibil spostâ la cartele sore de cartele"
 
-#: gio/glocalfile.c:2420 gio/glocalfileoutputstream.c:935
-#: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
-#: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
+#: ../gio/glocalfile.c:2410 ../gio/glocalfileoutputstream.c:935
+#: ../gio/glocalfileoutputstream.c:949 ../gio/glocalfileoutputstream.c:964
+#: ../gio/glocalfileoutputstream.c:981 ../gio/glocalfileoutputstream.c:995
 msgid "Backup file creation failed"
 msgstr ""
 
-#: gio/glocalfile.c:2439
+#: ../gio/glocalfile.c:2429
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Erôr tal gjavâ il file di destinazion: %s"
 
-#: gio/glocalfile.c:2453
+#: ../gio/glocalfile.c:2443
 msgid "Move between mounts not supported"
 msgstr ""
 
-#: gio/glocalfile.c:2644
+#: ../gio/glocalfile.c:2634
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:745
+#: ../gio/glocalfileinfo.c:745
 msgid "Attribute value must be non-NULL"
 msgstr "Il valôr dal atribût al scugne jessi diviers di NULL"
 
-#: gio/glocalfileinfo.c:752
+#: ../gio/glocalfileinfo.c:752
 msgid "Invalid attribute type (string expected)"
 msgstr "Gjenar di atribût no valit (si spietave une stringhe)"
 
-#: gio/glocalfileinfo.c:759
+#: ../gio/glocalfileinfo.c:759
 msgid "Invalid extended attribute name"
 msgstr ""
 
-#: gio/glocalfileinfo.c:799
+#: ../gio/glocalfileinfo.c:799
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:1625
+#: ../gio/glocalfileinfo.c:1619
 msgid " (invalid encoding)"
 msgstr " (codifiche no valide)"
 
-#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
+#: ../gio/glocalfileinfo.c:1783 ../gio/glocalfileoutputstream.c:813
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2059
+#: ../gio/glocalfileinfo.c:2045
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2104
+#: ../gio/glocalfileinfo.c:2090
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Gjenar di atribût no valit (si spietave uint32)"
 
-#: gio/glocalfileinfo.c:2122
+#: ../gio/glocalfileinfo.c:2108
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Gjenar di atribût no valit (si spietave uint64)"
 
-#: gio/glocalfileinfo.c:2141 gio/glocalfileinfo.c:2160
+#: ../gio/glocalfileinfo.c:2127 ../gio/glocalfileinfo.c:2146
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Gjenar di atribût no valit (si spietave une stringhe di byte)"
 
-#: gio/glocalfileinfo.c:2207
+#: ../gio/glocalfileinfo.c:2191
 msgid "Cannot set permissions on symlinks"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2223
+#: ../gio/glocalfileinfo.c:2207
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2274
+#: ../gio/glocalfileinfo.c:2258
 #, c-format
 msgid "Error setting owner: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2297
+#: ../gio/glocalfileinfo.c:2281
 msgid "symlink must be non-NULL"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2307 gio/glocalfileinfo.c:2326
-#: gio/glocalfileinfo.c:2337
+#: ../gio/glocalfileinfo.c:2291 ../gio/glocalfileinfo.c:2310
+#: ../gio/glocalfileinfo.c:2321
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2316
+#: ../gio/glocalfileinfo.c:2300
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2442
+#: ../gio/glocalfileinfo.c:2426
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2465
+#: ../gio/glocalfileinfo.c:2449
 msgid "SELinux context must be non-NULL"
 msgstr "Il contest SELinux al scugne jessi diviers di NULL"
 
-#: gio/glocalfileinfo.c:2480
+#: ../gio/glocalfileinfo.c:2464
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr ""
 
-#: gio/glocalfileinfo.c:2487
+#: ../gio/glocalfileinfo.c:2471
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux nol è abilitât su chest sisteme"
 
-#: gio/glocalfileinfo.c:2579
+#: ../gio/glocalfileinfo.c:2563
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr ""
 
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:696
+#: ../gio/glocalfileinputstream.c:168 ../gio/glocalfileoutputstream.c:696
 #, c-format
 msgid "Error reading from file: %s"
 msgstr "Erôr tal lei dal file: %s"
 
-#: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
-#: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:458 gio/glocalfileoutputstream.c:1013
+#: ../gio/glocalfileinputstream.c:199 ../gio/glocalfileinputstream.c:211
+#: ../gio/glocalfileinputstream.c:225 ../gio/glocalfileinputstream.c:333
+#: ../gio/glocalfileoutputstream.c:458 ../gio/glocalfileoutputstream.c:1013
 #, c-format
 msgid "Error seeking in file: %s"
 msgstr "Erôr tal cirî tal file: %s"
 
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:248
-#: gio/glocalfileoutputstream.c:342
+#: ../gio/glocalfileinputstream.c:255 ../gio/glocalfileoutputstream.c:248
+#: ../gio/glocalfileoutputstream.c:342
 #, c-format
 msgid "Error closing file: %s"
 msgstr "Erôr tal sierâ il file: %s"
 
-#: gio/glocalfilemonitor.c:854
+#: ../gio/glocalfilemonitor.c:852
 msgid "Unable to find default local file monitor type"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:196 gio/glocalfileoutputstream.c:228
-#: gio/glocalfileoutputstream.c:717
+#: ../gio/glocalfileoutputstream.c:196 ../gio/glocalfileoutputstream.c:228
+#: ../gio/glocalfileoutputstream.c:717
 #, c-format
 msgid "Error writing to file: %s"
 msgstr "Erôr tal scrivi sul file: %s"
 
-#: gio/glocalfileoutputstream.c:275
+#: ../gio/glocalfileoutputstream.c:275
 #, c-format
 msgid "Error removing old backup link: %s"
 msgstr ""
 
-#: gio/glocalfileoutputstream.c:289 gio/glocalfileoutputstream.c:302
+#: ../gio/glocalfileoutputstream.c:289 ../gio/glocalfileoutputstream.c:302
 #, c-format
 msgid "Error creating backup copy: %s"
 msgstr "Erôr tal creâ une copie di backup: %s"
 
-#: gio/glocalfileoutputstream.c:320
+#: ../gio/glocalfileoutputstream.c:320
 #, c-format
 msgid "Error renaming temporary file: %s"
 msgstr "Erôr tal cambiâ non al file temporani: %s"
 
-#: gio/glocalfileoutputstream.c:504 gio/glocalfileoutputstream.c:1064
+#: ../gio/glocalfileoutputstream.c:504 ../gio/glocalfileoutputstream.c:1064
 #, c-format
 msgid "Error truncating file: %s"
 msgstr "Erôr tal cjonçâ il file: %s"
 
-#: gio/glocalfileoutputstream.c:557 gio/glocalfileoutputstream.c:795
-#: gio/glocalfileoutputstream.c:1045 gio/gsubprocess.c:380
+#: ../gio/glocalfileoutputstream.c:557 ../gio/glocalfileoutputstream.c:795
+#: ../gio/glocalfileoutputstream.c:1045 ../gio/gsubprocess.c:380
 #, c-format
 msgid "Error opening file “%s”: %s"
 msgstr "Erôr tal vierzi il file “%s”: %s"
 
-#: gio/glocalfileoutputstream.c:826
+#: ../gio/glocalfileoutputstream.c:826
 msgid "Target file is a directory"
 msgstr "Il file di destinazion al è une cartele"
 
-#: gio/glocalfileoutputstream.c:831
+#: ../gio/glocalfileoutputstream.c:831
 msgid "Target file is not a regular file"
 msgstr "Il file di destinazion nol è un file regolâr"
 
-#: gio/glocalfileoutputstream.c:843
+#: ../gio/glocalfileoutputstream.c:843
 msgid "The file was externally modified"
 msgstr "Il file al è stât modificât di difûr di chi"
 
-#: gio/glocalfileoutputstream.c:1029
+#: ../gio/glocalfileoutputstream.c:1029
 #, c-format
 msgid "Error removing old file: %s"
 msgstr "Erôr tal gjavâ il file vecjo: %s"
 
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
+#: ../gio/gmemoryinputstream.c:474 ../gio/gmemoryoutputstream.c:772
 msgid "Invalid GSeekType supplied"
 msgstr "Furnît GSeekType no valit"
 
-#: gio/gmemoryinputstream.c:484
+#: ../gio/gmemoryinputstream.c:484
 msgid "Invalid seek request"
 msgstr "Richieste di ricercje no valide"
 
-#: gio/gmemoryinputstream.c:508
+#: ../gio/gmemoryinputstream.c:508
 msgid "Cannot truncate GMemoryInputStream"
 msgstr "Impussibil cjonçâ GMemoryInputStream"
 
-#: gio/gmemoryoutputstream.c:567
+#: ../gio/gmemoryoutputstream.c:567
 msgid "Memory output stream not resizable"
 msgstr ""
 
-#: gio/gmemoryoutputstream.c:583
+#: ../gio/gmemoryoutputstream.c:583
 msgid "Failed to resize memory output stream"
 msgstr "No si è rivâts a ridimensionâ il flus di jessude de memorie"
 
-#: gio/gmemoryoutputstream.c:673
+#: ../gio/gmemoryoutputstream.c:673
 msgid ""
 "Amount of memory required to process the write is larger than available "
 "address space"
 msgstr ""
 
-#: gio/gmemoryoutputstream.c:782
+#: ../gio/gmemoryoutputstream.c:782
 msgid "Requested seek before the beginning of the stream"
 msgstr ""
 
-#: gio/gmemoryoutputstream.c:797
+#: ../gio/gmemoryoutputstream.c:797
 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:399
 msgid "mount doesn’t implement “unmount”"
 msgstr ""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement eject.
-#: gio/gmount.c:475
+#: ../gio/gmount.c:475
 msgid "mount doesn’t implement “eject”"
 msgstr ""
 
 #. 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:553
 msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
 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:638
 msgid "mount doesn’t implement “eject” or “eject_with_operation”"
 msgstr ""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement remount.
-#: gio/gmount.c:726
+#: ../gio/gmount.c:726
 msgid "mount doesn’t implement “remount”"
 msgstr ""
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement content type guessing.
-#: gio/gmount.c:808
+#: ../gio/gmount.c:808
 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:895
 msgid "mount doesn’t implement synchronous content type guessing"
 msgstr ""
 
-#: gio/gnetworkaddress.c:378
+#: ../gio/gnetworkaddress.c:378
 #, c-format
 msgid "Hostname “%s” contains “[” but not “]”"
 msgstr "Il non host “%s” al conten “[” ma no “]”"
 
-#: gio/gnetworkmonitorbase.c:211 gio/gnetworkmonitorbase.c:315
+#: ../gio/gnetworkmonitorbase.c:211 ../gio/gnetworkmonitorbase.c:315
 msgid "Network unreachable"
 msgstr ""
 
-#: gio/gnetworkmonitorbase.c:249 gio/gnetworkmonitorbase.c:279
+#: ../gio/gnetworkmonitorbase.c:249 ../gio/gnetworkmonitorbase.c:279
 msgid "Host unreachable"
 msgstr ""
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
+#: ../gio/gnetworkmonitornetlink.c:97 ../gio/gnetworkmonitornetlink.c:109
+#: ../gio/gnetworkmonitornetlink.c:128
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr ""
 
-#: gio/gnetworkmonitornetlink.c:118
+#: ../gio/gnetworkmonitornetlink.c:118
 msgid "Could not create network monitor: "
 msgstr ""
 
-#: gio/gnetworkmonitornetlink.c:176
+#: ../gio/gnetworkmonitornetlink.c:176
 msgid "Could not get network status: "
 msgstr "Impussibil otignî il stât de rêt: "
 
-#: gio/gnetworkmonitornm.c:322
+#: ../gio/gnetworkmonitornm.c:322
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "Version di NetworkManager masse vecje"
 
-#: gio/goutputstream.c:212 gio/goutputstream.c:560
+#: ../gio/goutputstream.c:212 ../gio/goutputstream.c:560
 msgid "Output stream doesn’t implement write"
 msgstr "Il flus di jessude nol implemente la scriture"
 
-#: gio/goutputstream.c:521 gio/goutputstream.c:1224
+#: ../gio/goutputstream.c:521 ../gio/goutputstream.c:1224
 msgid "Source stream is already closed"
 msgstr "Il flus sorzint al è za sierât"
 
-#: gio/gresolver.c:342 gio/gthreadedresolver.c:116 gio/gthreadedresolver.c:126
+#: ../gio/gresolver.c:342 ../gio/gthreadedresolver.c:116
+#: ../gio/gthreadedresolver.c:126
 #, c-format
 msgid "Error resolving “%s”: %s"
 msgstr "Erôr tal risolvi “%s”: %s"
 
-#: gio/gresolver.c:729 gio/gresolver.c:781
+#: ../gio/gresolver.c:729 ../gio/gresolver.c:781
 msgid "Invalid domain"
 msgstr "Domini no valit"
 
-#: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
-#: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
-#: gio/gresource.c:1281 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: ../gio/gresource.c:621 ../gio/gresource.c:880 ../gio/gresource.c:919
+#: ../gio/gresource.c:1043 ../gio/gresource.c:1115 ../gio/gresource.c:1188
+#: ../gio/gresource.c:1258 ../gio/gresourcefile.c:476
+#: ../gio/gresourcefile.c:599 ../gio/gresourcefile.c:736
 #, c-format
 msgid "The resource at “%s” does not exist"
 msgstr "La risorse lì di “%s” no esist"
 
-#: gio/gresource.c:809
+#: ../gio/gresource.c:786
 #, c-format
 msgid "The resource at “%s” failed to decompress"
 msgstr "La risorse lì di “%s” no je rivade a decomprimisi"
 
-#: gio/gresourcefile.c:732
+#: ../gio/gresourcefile.c:732
 #, c-format
 msgid "The resource at “%s” is not a directory"
 msgstr "La risorse lì di “%s” no je une cartele"
 
-#: gio/gresourcefile.c:940
+#: ../gio/gresourcefile.c:940
 msgid "Input stream doesn’t implement seek"
 msgstr ""
 
-#: gio/gresource-tool.c:501
+#: ../gio/gresource-tool.c:494
 msgid "List sections containing resources in an elf FILE"
 msgstr ""
 
-#: gio/gresource-tool.c:507
+#: ../gio/gresource-tool.c:500
 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:510 gio/gresource-tool.c:520
+#: ../gio/gresource-tool.c:503 ../gio/gresource-tool.c:513
 msgid "FILE [PATH]"
 msgstr "FILE [PERCORS]"
 
-#: gio/gresource-tool.c:511 gio/gresource-tool.c:521 gio/gresource-tool.c:528
+#: ../gio/gresource-tool.c:504 ../gio/gresource-tool.c:514
+#: ../gio/gresource-tool.c:521
 msgid "SECTION"
 msgstr "SEZION"
 
-#: gio/gresource-tool.c:516
+#: ../gio/gresource-tool.c:509
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3218,15 +3274,15 @@ msgid ""
 "Details include the section, size and compression"
 msgstr ""
 
-#: gio/gresource-tool.c:526
+#: ../gio/gresource-tool.c:519
 msgid "Extract a resource file to stdout"
 msgstr ""
 
-#: gio/gresource-tool.c:527
+#: ../gio/gresource-tool.c:520
 msgid "FILE PATH"
 msgstr "PERCORS FILE"
 
-#: gio/gresource-tool.c:541
+#: ../gio/gresource-tool.c:534
 msgid ""
 "Usage:\n"
 "  gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3242,7 +3298,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gresource-tool.c:555
+#: ../gio/gresource-tool.c:548
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3252,158 +3308,167 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gresource-tool.c:562
+#: ../gio/gresource-tool.c:555
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr ""
 
-#: gio/gresource-tool.c:566 gio/gsettings-tool.c:703
+#: ../gio/gresource-tool.c:559 ../gio/gsettings-tool.c:703
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr ""
 
-#: gio/gresource-tool.c:572
+#: ../gio/gresource-tool.c:565
 msgid "  FILE      An elf file (a binary or a shared library)\n"
 msgstr ""
 
-#: gio/gresource-tool.c:575
+#: ../gio/gresource-tool.c:568
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
 msgstr ""
 
-#: gio/gresource-tool.c:579
+#: ../gio/gresource-tool.c:572
 msgid "[PATH]"
 msgstr ""
 
-#: gio/gresource-tool.c:581
+#: ../gio/gresource-tool.c:574
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr ""
 
-#: gio/gresource-tool.c:582
+#: ../gio/gresource-tool.c:575
 msgid "PATH"
 msgstr ""
 
-#: gio/gresource-tool.c:584
+#: ../gio/gresource-tool.c:577
 msgid "  PATH      A resource path\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:908
+#: ../gio/gsettings-tool.c:51 ../gio/gsettings-tool.c:72
+#: ../gio/gsettings-tool.c:908
 #, c-format
 msgid "No such schema “%s”\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:57
+#: ../gio/gsettings-tool.c:57
 #, c-format
 msgid "Schema “%s” is not relocatable (path must not be specified)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:78
+#: ../gio/gsettings-tool.c:78
 #, c-format
 msgid "Schema “%s” is relocatable (path must be specified)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:92
+#: ../gio/gsettings-tool.c:92
+#, c-format
 msgid "Empty path given.\n"
 msgstr "Percors vueit furnît.\n"
 
-#: gio/gsettings-tool.c:98
+#: ../gio/gsettings-tool.c:98
+#, c-format
 msgid "Path must begin with a slash (/)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:104
+#: ../gio/gsettings-tool.c:104
+#, c-format
 msgid "Path must end with a slash (/)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:110
+#: ../gio/gsettings-tool.c:110
+#, c-format
 msgid "Path must not contain two adjacent slashes (//)\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:538
+#: ../gio/gsettings-tool.c:538
+#, c-format
 msgid "The provided value is outside of the valid range\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:545
+#: ../gio/gsettings-tool.c:545
+#, c-format
 msgid "The key is not writable\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:581
+#: ../gio/gsettings-tool.c:581
 msgid "List the installed (non-relocatable) schemas"
 msgstr ""
 
-#: gio/gsettings-tool.c:587
+#: ../gio/gsettings-tool.c:587
 msgid "List the installed relocatable schemas"
 msgstr ""
 
-#: gio/gsettings-tool.c:593
+#: ../gio/gsettings-tool.c:593
 msgid "List the keys in SCHEMA"
 msgstr ""
 
-#: gio/gsettings-tool.c:594 gio/gsettings-tool.c:600 gio/gsettings-tool.c:643
+#: ../gio/gsettings-tool.c:594 ../gio/gsettings-tool.c:600
+#: ../gio/gsettings-tool.c:643
 msgid "SCHEMA[:PATH]"
 msgstr "SCHEME[:PERCORS]"
 
-#: gio/gsettings-tool.c:599
+#: ../gio/gsettings-tool.c:599
 msgid "List the children of SCHEMA"
 msgstr ""
 
-#: gio/gsettings-tool.c:605
+#: ../gio/gsettings-tool.c:605
 msgid ""
 "List keys and values, recursively\n"
 "If no SCHEMA is given, list all keys\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:607
+#: ../gio/gsettings-tool.c:607
 msgid "[SCHEMA[:PATH]]"
 msgstr "[SCHEME[:PERCORS]]"
 
-#: gio/gsettings-tool.c:612
+#: ../gio/gsettings-tool.c:612
 msgid "Get the value of KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:613 gio/gsettings-tool.c:619 gio/gsettings-tool.c:625
-#: gio/gsettings-tool.c:637 gio/gsettings-tool.c:649
+#: ../gio/gsettings-tool.c:613 ../gio/gsettings-tool.c:619
+#: ../gio/gsettings-tool.c:625 ../gio/gsettings-tool.c:637
+#: ../gio/gsettings-tool.c:649
 msgid "SCHEMA[:PATH] KEY"
 msgstr "SCHEME[:PERCORS] CLÂF"
 
-#: gio/gsettings-tool.c:618
+#: ../gio/gsettings-tool.c:618
 msgid "Query the range of valid values for KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:624
+#: ../gio/gsettings-tool.c:624
 msgid "Query the description for KEY"
 msgstr ""
 
-#: gio/gsettings-tool.c:630
+#: ../gio/gsettings-tool.c:630
 msgid "Set the value of KEY to VALUE"
 msgstr ""
 
-#: gio/gsettings-tool.c:631
+#: ../gio/gsettings-tool.c:631
 msgid "SCHEMA[:PATH] KEY VALUE"
 msgstr "SCHEME[:PERCORS] CLÂF VALÔR"
 
-#: gio/gsettings-tool.c:636
+#: ../gio/gsettings-tool.c:636
 msgid "Reset KEY to its default value"
 msgstr ""
 
-#: gio/gsettings-tool.c:642
+#: ../gio/gsettings-tool.c:642
 msgid "Reset all keys in SCHEMA to their defaults"
 msgstr ""
 
-#: gio/gsettings-tool.c:648
+#: ../gio/gsettings-tool.c:648
 msgid "Check if KEY is writable"
 msgstr ""
 
-#: gio/gsettings-tool.c:654
+#: ../gio/gsettings-tool.c:654
 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:657
+#: ../gio/gsettings-tool.c:657
 msgid "SCHEMA[:PATH] [KEY]"
 msgstr "SCHEME[:PERCORS] [CLÂF]"
 
-#: gio/gsettings-tool.c:669
+#: ../gio/gsettings-tool.c:669
 msgid ""
 "Usage:\n"
 "  gsettings --version\n"
@@ -3429,7 +3494,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:693
+#: ../gio/gsettings-tool.c:693
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3439,386 +3504,392 @@ msgid ""
 "\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:699
+#: ../gio/gsettings-tool.c:699
 msgid "  SCHEMADIR A directory to search for additional schemas\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:707
+#: ../gio/gsettings-tool.c:707
 msgid ""
 "  SCHEMA    The name of the schema\n"
 "  PATH      The path, for relocatable schemas\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:712
+#: ../gio/gsettings-tool.c:712
 msgid "  KEY       The (optional) key within the schema\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:716
+#: ../gio/gsettings-tool.c:716
 msgid "  KEY       The key within the schema\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:720
+#: ../gio/gsettings-tool.c:720
 msgid "  VALUE     The value to set\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:775
+#: ../gio/gsettings-tool.c:775
 #, c-format
 msgid "Could not load schemas from %s: %s\n"
 msgstr ""
 
-#: gio/gsettings-tool.c:787
+#: ../gio/gsettings-tool.c:787
+#, c-format
 msgid "No schemas installed\n"
 msgstr "Nissun scheme instalât\n"
 
-#: gio/gsettings-tool.c:866
+#: ../gio/gsettings-tool.c:866
+#, c-format
 msgid "Empty schema name given\n"
 msgstr "Furnît non di scheme vueit\n"
 
-#: gio/gsettings-tool.c:921
+#: ../gio/gsettings-tool.c:921
 #, c-format
 msgid "No such key “%s”\n"
 msgstr ""
 
-#: gio/gsocket.c:384
+#: ../gio/gsocket.c:384
 msgid "Invalid socket, not initialized"
 msgstr ""
 
-#: gio/gsocket.c:391
+#: ../gio/gsocket.c:391
 #, c-format
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr ""
 
-#: gio/gsocket.c:399
+#: ../gio/gsocket.c:399
 msgid "Socket is already closed"
 msgstr "Il socket al è za sierât"
 
-#: gio/gsocket.c:414 gio/gsocket.c:3034 gio/gsocket.c:4244 gio/gsocket.c:4302
+#: ../gio/gsocket.c:414 ../gio/gsocket.c:3034 ../gio/gsocket.c:4244
+#: ../gio/gsocket.c:4302
 msgid "Socket I/O timed out"
 msgstr ""
 
-#: gio/gsocket.c:549
+#: ../gio/gsocket.c:549
 #, c-format
 msgid "creating GSocket from fd: %s"
 msgstr ""
 
-#: gio/gsocket.c:578 gio/gsocket.c:632 gio/gsocket.c:639
+#: ../gio/gsocket.c:578 ../gio/gsocket.c:632 ../gio/gsocket.c:639
 #, c-format
 msgid "Unable to create socket: %s"
 msgstr ""
 
-#: gio/gsocket.c:632
+#: ../gio/gsocket.c:632
 msgid "Unknown family was specified"
 msgstr "E je stade specificade une famee no cognossude"
 
-#: gio/gsocket.c:639
+#: ../gio/gsocket.c:639
 msgid "Unknown protocol was specified"
 msgstr "Al è stât specificât un protocol no cognossût"
 
-#: gio/gsocket.c:1130
+#: ../gio/gsocket.c:1130
 #, c-format
 msgid "Cannot use datagram operations on a non-datagram socket."
 msgstr ""
 
-#: gio/gsocket.c:1147
+#: ../gio/gsocket.c:1147
 #, c-format
 msgid "Cannot use datagram operations on a socket with a timeout set."
 msgstr ""
 
-#: gio/gsocket.c:1954
+#: ../gio/gsocket.c:1954
 #, c-format
 msgid "could not get local address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2000
+#: ../gio/gsocket.c:2000
 #, c-format
 msgid "could not get remote address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2066
+#: ../gio/gsocket.c:2066
 #, c-format
 msgid "could not listen: %s"
 msgstr "impussibil scoltâ: %s"
 
-#: gio/gsocket.c:2168
+#: ../gio/gsocket.c:2168
 #, c-format
 msgid "Error binding to address: %s"
 msgstr ""
 
-#: gio/gsocket.c:2226 gio/gsocket.c:2263 gio/gsocket.c:2373 gio/gsocket.c:2398
-#: gio/gsocket.c:2471 gio/gsocket.c:2529 gio/gsocket.c:2547
+#: ../gio/gsocket.c:2226 ../gio/gsocket.c:2263 ../gio/gsocket.c:2373
+#: ../gio/gsocket.c:2398 ../gio/gsocket.c:2471 ../gio/gsocket.c:2529
+#: ../gio/gsocket.c:2547
 #, c-format
 msgid "Error joining multicast group: %s"
 msgstr ""
 
-#: gio/gsocket.c:2227 gio/gsocket.c:2264 gio/gsocket.c:2374 gio/gsocket.c:2399
-#: gio/gsocket.c:2472 gio/gsocket.c:2530 gio/gsocket.c:2548
+#: ../gio/gsocket.c:2227 ../gio/gsocket.c:2264 ../gio/gsocket.c:2374
+#: ../gio/gsocket.c:2399 ../gio/gsocket.c:2472 ../gio/gsocket.c:2530
+#: ../gio/gsocket.c:2548
 #, c-format
 msgid "Error leaving multicast group: %s"
 msgstr ""
 
-#: gio/gsocket.c:2228
+#: ../gio/gsocket.c:2228
 msgid "No support for source-specific multicast"
 msgstr ""
 
-#: gio/gsocket.c:2375
+#: ../gio/gsocket.c:2375
 msgid "Unsupported socket family"
 msgstr "Famee dal socket no supuartade"
 
-#: gio/gsocket.c:2400
+#: ../gio/gsocket.c:2400
 msgid "source-specific not an IPv4 address"
 msgstr ""
 
-#: gio/gsocket.c:2418 gio/gsocket.c:2447 gio/gsocket.c:2497
+#: ../gio/gsocket.c:2418 ../gio/gsocket.c:2447 ../gio/gsocket.c:2497
 #, c-format
 msgid "Interface not found: %s"
 msgstr "Interface no cjatade: %s"
 
-#: gio/gsocket.c:2434
+#: ../gio/gsocket.c:2434
 #, c-format
 msgid "Interface name too long"
 msgstr "Non interface masse lunc"
 
-#: gio/gsocket.c:2473
+#: ../gio/gsocket.c:2473
 msgid "No support for IPv4 source-specific multicast"
 msgstr ""
 
-#: gio/gsocket.c:2531
+#: ../gio/gsocket.c:2531
 msgid "No support for IPv6 source-specific multicast"
 msgstr ""
 
-#: gio/gsocket.c:2740
+#: ../gio/gsocket.c:2740
 #, c-format
 msgid "Error accepting connection: %s"
 msgstr "Erôr tal acetâ la conession: %s"
 
-#: gio/gsocket.c:2864
+#: ../gio/gsocket.c:2864
 msgid "Connection in progress"
 msgstr "Conession in vore"
 
-#: gio/gsocket.c:2913
+#: ../gio/gsocket.c:2913
 msgid "Unable to get pending error: "
 msgstr ""
 
-#: gio/gsocket.c:3097
+#: ../gio/gsocket.c:3097
 #, c-format
 msgid "Error receiving data: %s"
 msgstr "Erôr tal ricevi dâts: %s"
 
-#: gio/gsocket.c:3292
+#: ../gio/gsocket.c:3292
 #, c-format
 msgid "Error sending data: %s"
 msgstr "Erôr tal inviâ dâts: %s"
 
-#: gio/gsocket.c:3479
+#: ../gio/gsocket.c:3479
 #, c-format
 msgid "Unable to shutdown socket: %s"
 msgstr "Impussibil distudâ il socket: %s"
 
-#: gio/gsocket.c:3560
+#: ../gio/gsocket.c:3560
 #, c-format
 msgid "Error closing socket: %s"
 msgstr "Erôr tal sierâ il socket: %s"
 
-#: gio/gsocket.c:4237
+#: ../gio/gsocket.c:4237
 #, c-format
 msgid "Waiting for socket condition: %s"
 msgstr ""
 
-#: gio/gsocket.c:4711 gio/gsocket.c:4791 gio/gsocket.c:4969
+#: ../gio/gsocket.c:4711 ../gio/gsocket.c:4791 ../gio/gsocket.c:4969
 #, c-format
 msgid "Error sending message: %s"
 msgstr "Erôr tal inviâ il messaç: %s"
 
-#: gio/gsocket.c:4735
+#: ../gio/gsocket.c:4735
 msgid "GSocketControlMessage not supported on Windows"
 msgstr ""
 
-#: gio/gsocket.c:5188 gio/gsocket.c:5261 gio/gsocket.c:5487
+#: ../gio/gsocket.c:5188 ../gio/gsocket.c:5261 ../gio/gsocket.c:5487
 #, c-format
 msgid "Error receiving message: %s"
 msgstr "Erôr tal ricevi il messaç: %s"
 
-#: gio/gsocket.c:5759
+#: ../gio/gsocket.c:5759
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr ""
 
-#: gio/gsocket.c:5768
+#: ../gio/gsocket.c:5768
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr ""
 
-#: gio/gsocketclient.c:176
+#: ../gio/gsocketclient.c:176
 #, c-format
 msgid "Could not connect to proxy server %s: "
 msgstr ""
 
-#: gio/gsocketclient.c:190
+#: ../gio/gsocketclient.c:190
 #, c-format
 msgid "Could not connect to %s: "
 msgstr "Impussibil conetisi a %s: "
 
-#: gio/gsocketclient.c:192
+#: ../gio/gsocketclient.c:192
 msgid "Could not connect: "
 msgstr "Impussibil conetisi: "
 
-#: gio/gsocketclient.c:1027 gio/gsocketclient.c:1599
+#: ../gio/gsocketclient.c:1027 ../gio/gsocketclient.c:1599
 msgid "Unknown error on connect"
 msgstr "Erôr no cognossût tal coneti"
 
-#: gio/gsocketclient.c:1081 gio/gsocketclient.c:1535
+#: ../gio/gsocketclient.c:1081 ../gio/gsocketclient.c:1535
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr ""
 
-#: gio/gsocketclient.c:1110 gio/gsocketclient.c:1561
+#: ../gio/gsocketclient.c:1110 ../gio/gsocketclient.c:1561
 #, c-format
 msgid "Proxy protocol “%s” is not supported."
 msgstr ""
 
-#: gio/gsocketlistener.c:225
+#: ../gio/gsocketlistener.c:225
 msgid "Listener is already closed"
 msgstr ""
 
-#: gio/gsocketlistener.c:271
+#: ../gio/gsocketlistener.c:271
 msgid "Added socket is closed"
 msgstr ""
 
-#: gio/gsocks4aproxy.c:118
+#: ../gio/gsocks4aproxy.c:118
 #, c-format
 msgid "SOCKSv4 does not support IPv6 address “%s”"
 msgstr ""
 
-#: gio/gsocks4aproxy.c:136
+#: ../gio/gsocks4aproxy.c:136
 msgid "Username is too long for SOCKSv4 protocol"
 msgstr "Non utent masse lunc pal protocol SOCKSv4"
 
-#: gio/gsocks4aproxy.c:153
+#: ../gio/gsocks4aproxy.c:153
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv4 protocol"
 msgstr "Il non host “%s”al è masse lunc pal protocol SOCKSv4"
 
-#: gio/gsocks4aproxy.c:179
+#: ../gio/gsocks4aproxy.c:179
 msgid "The server is not a SOCKSv4 proxy server."
 msgstr "Il servidôr nol è un servidôr proxy SOCKSv4."
 
-#: gio/gsocks4aproxy.c:186
+#: ../gio/gsocks4aproxy.c:186
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr ""
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: ../gio/gsocks5proxy.c:153 ../gio/gsocks5proxy.c:324
+#: ../gio/gsocks5proxy.c:334
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "Il servidôr nol è un servidôr proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:167
+#: ../gio/gsocks5proxy.c:167
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr ""
 
-#: gio/gsocks5proxy.c:177
+#: ../gio/gsocks5proxy.c:177
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
 msgstr ""
 
-#: gio/gsocks5proxy.c:206
+#: ../gio/gsocks5proxy.c:206
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr "Non utent o password masse luncs pal protocol SOCKSv5."
 
-#: gio/gsocks5proxy.c:236
+#: ../gio/gsocks5proxy.c:236
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 
-#: gio/gsocks5proxy.c:286
+#: ../gio/gsocks5proxy.c:286
 #, c-format
 msgid "Hostname “%s” is too long for SOCKSv5 protocol"
 msgstr ""
 
-#: gio/gsocks5proxy.c:348
+#: ../gio/gsocks5proxy.c:348
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr ""
 
-#: gio/gsocks5proxy.c:355
+#: ../gio/gsocks5proxy.c:355
 msgid "Internal SOCKSv5 proxy server error."
 msgstr ""
 
-#: gio/gsocks5proxy.c:361
+#: ../gio/gsocks5proxy.c:361
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr ""
 
-#: gio/gsocks5proxy.c:368
+#: ../gio/gsocks5proxy.c:368
 msgid "Host unreachable through SOCKSv5 server."
 msgstr ""
 
-#: gio/gsocks5proxy.c:374
+#: ../gio/gsocks5proxy.c:374
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:380
+#: ../gio/gsocks5proxy.c:380
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr ""
 
-#: gio/gsocks5proxy.c:386
+#: ../gio/gsocks5proxy.c:386
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr ""
 
-#: gio/gsocks5proxy.c:392
+#: ../gio/gsocks5proxy.c:392
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr ""
 
-#: gio/gsocks5proxy.c:398
+#: ../gio/gsocks5proxy.c:398
 msgid "Unknown SOCKSv5 proxy error."
 msgstr ""
 
-#: gio/gthemedicon.c:595
+#: ../gio/gthemedicon.c:518
 #, c-format
 msgid "Can’t handle version %d of GThemedIcon encoding"
 msgstr ""
 
-#: gio/gthreadedresolver.c:118
+#: ../gio/gthreadedresolver.c:118
 msgid "No valid addresses were found"
 msgstr ""
 
-#: gio/gthreadedresolver.c:213
+#: ../gio/gthreadedresolver.c:213
 #, c-format
 msgid "Error reverse-resolving “%s”: %s"
 msgstr ""
 
-#: gio/gthreadedresolver.c:549 gio/gthreadedresolver.c:628
-#: gio/gthreadedresolver.c:726 gio/gthreadedresolver.c:776
+#: ../gio/gthreadedresolver.c:549 ../gio/gthreadedresolver.c:628
+#: ../gio/gthreadedresolver.c:726 ../gio/gthreadedresolver.c:776
 #, c-format
 msgid "No DNS record of the requested type for “%s”"
 msgstr ""
 
-#: gio/gthreadedresolver.c:554 gio/gthreadedresolver.c:731
+#: ../gio/gthreadedresolver.c:554 ../gio/gthreadedresolver.c:731
 #, c-format
 msgid "Temporarily unable to resolve “%s”"
 msgstr ""
 
-#: gio/gthreadedresolver.c:559 gio/gthreadedresolver.c:736
-#: gio/gthreadedresolver.c:844
+#: ../gio/gthreadedresolver.c:559 ../gio/gthreadedresolver.c:736
+#: ../gio/gthreadedresolver.c:844
 #, c-format
 msgid "Error resolving “%s”"
 msgstr ""
 
-#: gio/gtlscertificate.c:250
+#: ../gio/gtlscertificate.c:250
 msgid "Cannot decrypt PEM-encoded private key"
 msgstr ""
 
-#: gio/gtlscertificate.c:255
+#: ../gio/gtlscertificate.c:255
 msgid "No PEM-encoded private key found"
 msgstr ""
 
-#: gio/gtlscertificate.c:265
+#: ../gio/gtlscertificate.c:265
 msgid "Could not parse PEM-encoded private key"
 msgstr ""
 
-#: gio/gtlscertificate.c:290
+#: ../gio/gtlscertificate.c:290
 msgid "No PEM-encoded certificate found"
 msgstr ""
 
-#: gio/gtlscertificate.c:299
+#: ../gio/gtlscertificate.c:299
 msgid "Could not parse PEM-encoded certificate"
 msgstr ""
 
-#: gio/gtlspassword.c:111
+#: ../gio/gtlspassword.c:111
 msgid ""
 "This is the last chance to enter the password correctly before your access "
 "is locked out."
@@ -3826,304 +3897,307 @@ 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:115
 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:117
 msgid "The password entered is incorrect."
 msgstr ""
 
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:563
+#: ../gio/gunixconnection.c:166 ../gio/gunixconnection.c:563
 #, c-format
 msgid "Expecting 1 control message, got %d"
 msgid_plural "Expecting 1 control message, got %d"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:575
+#: ../gio/gunixconnection.c:182 ../gio/gunixconnection.c:575
 msgid "Unexpected type of ancillary data"
 msgstr ""
 
-#: gio/gunixconnection.c:200
+#: ../gio/gunixconnection.c:200
 #, c-format
 msgid "Expecting one fd, but got %d\n"
 msgid_plural "Expecting one fd, but got %d\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: gio/gunixconnection.c:219
+#: ../gio/gunixconnection.c:219
 msgid "Received invalid fd"
 msgstr ""
 
-#: gio/gunixconnection.c:355
+#: ../gio/gunixconnection.c:355
 msgid "Error sending credentials: "
 msgstr ""
 
-#: gio/gunixconnection.c:504
+#: ../gio/gunixconnection.c:504
 #, c-format
 msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
 msgstr ""
 
-#: gio/gunixconnection.c:520
+#: ../gio/gunixconnection.c:520
 #, c-format
 msgid "Error enabling SO_PASSCRED: %s"
 msgstr ""
 
-#: gio/gunixconnection.c:549
+#: ../gio/gunixconnection.c:549
 msgid ""
 "Expecting to read a single byte for receiving credentials but read zero bytes"
 msgstr ""
 
-#: gio/gunixconnection.c:589
+#: ../gio/gunixconnection.c:589
 #, c-format
 msgid "Not expecting control message, but got %d"
 msgstr ""
 
-#: gio/gunixconnection.c:614
+#: ../gio/gunixconnection.c:614
 #, c-format
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr ""
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: ../gio/gunixinputstream.c:372 ../gio/gunixinputstream.c:393
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr ""
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:411
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: ../gio/gunixinputstream.c:426 ../gio/gunixoutputstream.c:411
+#: ../gio/gwin32inputstream.c:217 ../gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr ""
 
-#: gio/gunixmounts.c:2606 gio/gunixmounts.c:2659
+#: ../gio/gunixmounts.c:2593 ../gio/gunixmounts.c:2646
 msgid "Filesystem root"
 msgstr ""
 
-#: gio/gunixoutputstream.c:358 gio/gunixoutputstream.c:378
+#: ../gio/gunixoutputstream.c:358 ../gio/gunixoutputstream.c:378
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr ""
 
-#: gio/gunixsocketaddress.c:243
+#: ../gio/gunixsocketaddress.c:243
 msgid "Abstract UNIX domain socket addresses not supported on this system"
 msgstr ""
 
-#: gio/gvolume.c:438
+#: ../gio/gvolume.c:438
 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
+#: ../gio/gvolume.c:515
 msgid "volume doesn’t implement eject or eject_with_operation"
 msgstr ""
 
-#: gio/gwin32inputstream.c:185
+#: ../gio/gwin32inputstream.c:185
 #, c-format
 msgid "Error reading from handle: %s"
 msgstr ""
 
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
+#: ../gio/gwin32inputstream.c:232 ../gio/gwin32outputstream.c:219
 #, c-format
 msgid "Error closing handle: %s"
 msgstr ""
 
-#: gio/gwin32outputstream.c:172
+#: ../gio/gwin32outputstream.c:172
 #, c-format
 msgid "Error writing to handle: %s"
 msgstr ""
 
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: ../gio/gzlibcompressor.c:394 ../gio/gzlibdecompressor.c:347
 msgid "Not enough memory"
 msgstr "No vonde memorie"
 
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: ../gio/gzlibcompressor.c:401 ../gio/gzlibdecompressor.c:354
 #, c-format
 msgid "Internal error: %s"
 msgstr "Erôr interni: %s"
 
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: ../gio/gzlibcompressor.c:414 ../gio/gzlibdecompressor.c:368
 msgid "Need more input"
 msgstr ""
 
-#: gio/gzlibdecompressor.c:340
+#: ../gio/gzlibdecompressor.c:340
 msgid "Invalid compressed data"
 msgstr ""
 
-#: 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
 msgid "Print address"
 msgstr ""
 
-#: 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 ""
 
-#: gio/tests/gdbus-daemon.c:42
+#: ../gio/tests/gdbus-daemon.c:42
+#, c-format
 msgid "Wrong args\n"
 msgstr ""
 
-#: glib/gbookmarkfile.c:754
+#: ../glib/gbookmarkfile.c:754
 #, c-format
 msgid "Unexpected attribute “%s” for element “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:765 glib/gbookmarkfile.c:836 glib/gbookmarkfile.c:846
-#: glib/gbookmarkfile.c:955
+#: ../glib/gbookmarkfile.c:765 ../glib/gbookmarkfile.c:836
+#: ../glib/gbookmarkfile.c:846 ../glib/gbookmarkfile.c:953
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1164 glib/gbookmarkfile.c:1229
-#: glib/gbookmarkfile.c:1293 glib/gbookmarkfile.c:1303
+#: ../glib/gbookmarkfile.c:1123 ../glib/gbookmarkfile.c:1188
+#: ../glib/gbookmarkfile.c:1252 ../glib/gbookmarkfile.c:1262
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1189 glib/gbookmarkfile.c:1203
-#: glib/gbookmarkfile.c:1271 glib/gbookmarkfile.c:1317
+#: ../glib/gbookmarkfile.c:1148 ../glib/gbookmarkfile.c:1162
+#: ../glib/gbookmarkfile.c:1230
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:1813
+#: ../glib/gbookmarkfile.c:1757
 msgid "No valid bookmark file found in data dirs"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2014
+#: ../glib/gbookmarkfile.c:1958
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2060 glib/gbookmarkfile.c:2218
-#: glib/gbookmarkfile.c:2303 glib/gbookmarkfile.c:2383
-#: glib/gbookmarkfile.c:2468 glib/gbookmarkfile.c:2551
-#: glib/gbookmarkfile.c:2629 glib/gbookmarkfile.c:2708
-#: glib/gbookmarkfile.c:2750 glib/gbookmarkfile.c:2847
-#: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
-#: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
+#: ../glib/gbookmarkfile.c:2004 ../glib/gbookmarkfile.c:2162
+#: ../glib/gbookmarkfile.c:2247 ../glib/gbookmarkfile.c:2327
+#: ../glib/gbookmarkfile.c:2412 ../glib/gbookmarkfile.c:2495
+#: ../glib/gbookmarkfile.c:2573 ../glib/gbookmarkfile.c:2652
+#: ../glib/gbookmarkfile.c:2694 ../glib/gbookmarkfile.c:2791
+#: ../glib/gbookmarkfile.c:2912 ../glib/gbookmarkfile.c:3102
+#: ../glib/gbookmarkfile.c:3178 ../glib/gbookmarkfile.c:3346
+#: ../glib/gbookmarkfile.c:3435 ../glib/gbookmarkfile.c:3524
+#: ../glib/gbookmarkfile.c:3640
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2392
+#: ../glib/gbookmarkfile.c:2336
 #, c-format
 msgid "No MIME type defined in the bookmark for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2477
+#: ../glib/gbookmarkfile.c:2421
 #, c-format
 msgid "No private flag has been defined in bookmark for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:2856
+#: ../glib/gbookmarkfile.c:2800
 #, c-format
 msgid "No groups set in bookmark for URI “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:3255 glib/gbookmarkfile.c:3412
+#: ../glib/gbookmarkfile.c:3199 ../glib/gbookmarkfile.c:3356
 #, c-format
 msgid "No application with name “%s” registered a bookmark for “%s”"
 msgstr ""
 
-#: glib/gbookmarkfile.c:3435
+#: ../glib/gbookmarkfile.c:3379
 #, c-format
 msgid "Failed to expand exec line “%s” with URI “%s”"
 msgstr ""
 
-#: glib/gconvert.c:473
+#: ../glib/gconvert.c:473
+#, fuzzy
+#| msgid "Invalid byte sequence in conversion input"
 msgid "Unrepresentable character in conversion input"
-msgstr "Caratar che no si pues rapresentâ tal input di conversion"
+msgstr "Secuence byte no valide tal input di conversion"
 
-#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
-#: glib/gutf8.c:1318
+#: ../glib/gconvert.c:500 ../glib/gutf8.c:865 ../glib/gutf8.c:1077
+#: ../glib/gutf8.c:1214 ../glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr ""
 
-#: glib/gconvert.c:769
+#: ../glib/gconvert.c:769
 #, c-format
 msgid "Cannot convert fallback “%s” to codeset “%s”"
 msgstr ""
 
-#: glib/gconvert.c:940
+#: ../glib/gconvert.c:940
 #, fuzzy
 #| msgid "Invalid byte sequence in conversion input"
 msgid "Embedded NUL byte in conversion input"
 msgstr "Secuence byte no valide tal input di conversion"
 
-#: glib/gconvert.c:961
+#: ../glib/gconvert.c:961
 #, fuzzy
 #| msgid "Invalid byte sequence in conversion input"
 msgid "Embedded NUL byte in conversion output"
 msgstr "Secuence byte no valide tal input di conversion"
 
-#: glib/gconvert.c:1649
+#: ../glib/gconvert.c:1649
 #, c-format
 msgid "The URI “%s” is not an absolute URI using the “file” scheme"
 msgstr ""
 
-#: glib/gconvert.c:1659
+#: ../glib/gconvert.c:1659
 #, c-format
 msgid "The local file URI “%s” may not include a “#”"
 msgstr ""
 
-#: glib/gconvert.c:1676
+#: ../glib/gconvert.c:1676
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr ""
 
-#: glib/gconvert.c:1688
+#: ../glib/gconvert.c:1688
 #, c-format
 msgid "The hostname of the URI “%s” is invalid"
 msgstr ""
 
-#: glib/gconvert.c:1704
+#: ../glib/gconvert.c:1704
 #, c-format
 msgid "The URI “%s” contains invalidly escaped characters"
 msgstr ""
 
-#: glib/gconvert.c:1776
+#: ../glib/gconvert.c:1776
 #, c-format
 msgid "The pathname “%s” is not an absolute path"
 msgstr ""
 
 #. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:213
+#: ../glib/gdatetime.c:213
 msgctxt "GDateTime"
 msgid "%a %b %e %H:%M:%S %Y"
 msgstr "%a %H:%M:%S, %e di %B dal %Y"
 
 #. Translators: this is the preferred format for expressing the date
-#: glib/gdatetime.c:216
+#: ../glib/gdatetime.c:216
 msgctxt "GDateTime"
 msgid "%m/%d/%y"
 msgstr "%d/%m/%y"
 
 #. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:219
+#: ../glib/gdatetime.c:219
 msgctxt "GDateTime"
 msgid "%H:%M:%S"
 msgstr "%H:%M:%S"
 
 #. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:222
+#: ../glib/gdatetime.c:222
 msgctxt "GDateTime"
 msgid "%I:%M:%S %p"
 msgstr "%I:%M:%S %p"
@@ -4144,62 +4218,62 @@ msgstr "%I:%M:%S %p"
 #. * non-European) there is no difference between the standalone and
 #. * complete date form.
 #.
-#: glib/gdatetime.c:261
+#: ../glib/gdatetime.c:261
 msgctxt "full month name"
 msgid "January"
 msgstr "Zenâr"
 
-#: glib/gdatetime.c:263
+#: ../glib/gdatetime.c:263
 msgctxt "full month name"
 msgid "February"
 msgstr "Fevrâr"
 
-#: glib/gdatetime.c:265
+#: ../glib/gdatetime.c:265
 msgctxt "full month name"
 msgid "March"
 msgstr "Març"
 
-#: glib/gdatetime.c:267
+#: ../glib/gdatetime.c:267
 msgctxt "full month name"
 msgid "April"
 msgstr "Avrîl"
 
-#: glib/gdatetime.c:269
+#: ../glib/gdatetime.c:269
 msgctxt "full month name"
 msgid "May"
 msgstr "Mai"
 
-#: glib/gdatetime.c:271
+#: ../glib/gdatetime.c:271
 msgctxt "full month name"
 msgid "June"
 msgstr "Jugn"
 
-#: glib/gdatetime.c:273
+#: ../glib/gdatetime.c:273
 msgctxt "full month name"
 msgid "July"
 msgstr "Lui"
 
-#: glib/gdatetime.c:275
+#: ../glib/gdatetime.c:275
 msgctxt "full month name"
 msgid "August"
 msgstr "Avost"
 
-#: glib/gdatetime.c:277
+#: ../glib/gdatetime.c:277
 msgctxt "full month name"
 msgid "September"
 msgstr "Setembar"
 
-#: glib/gdatetime.c:279
+#: ../glib/gdatetime.c:279
 msgctxt "full month name"
 msgid "October"
 msgstr "Otubar"
 
-#: glib/gdatetime.c:281
+#: ../glib/gdatetime.c:281
 msgctxt "full month name"
 msgid "November"
 msgstr "Novembar"
 
-#: glib/gdatetime.c:283
+#: ../glib/gdatetime.c:283
 msgctxt "full month name"
 msgid "December"
 msgstr "Dicembar"
@@ -4221,132 +4295,132 @@ msgstr "Dicembar"
 #. * other platform.  Here are abbreviated month names in a form
 #. * appropriate when they are used standalone.
 #.
-#: glib/gdatetime.c:315
+#: ../glib/gdatetime.c:315
 msgctxt "abbreviated month name"
 msgid "Jan"
 msgstr "Zen"
 
-#: glib/gdatetime.c:317
+#: ../glib/gdatetime.c:317
 msgctxt "abbreviated month name"
 msgid "Feb"
 msgstr "Fev"
 
-#: glib/gdatetime.c:319
+#: ../glib/gdatetime.c:319
 msgctxt "abbreviated month name"
 msgid "Mar"
 msgstr "Mar"
 
-#: glib/gdatetime.c:321
+#: ../glib/gdatetime.c:321
 msgctxt "abbreviated month name"
 msgid "Apr"
 msgstr "Avr"
 
-#: glib/gdatetime.c:323
+#: ../glib/gdatetime.c:323
 msgctxt "abbreviated month name"
 msgid "May"
 msgstr "Mai"
 
-#: glib/gdatetime.c:325
+#: ../glib/gdatetime.c:325
 msgctxt "abbreviated month name"
 msgid "Jun"
 msgstr "Jug"
 
-#: glib/gdatetime.c:327
+#: ../glib/gdatetime.c:327
 msgctxt "abbreviated month name"
 msgid "Jul"
 msgstr "Lui"
 
-#: glib/gdatetime.c:329
+#: ../glib/gdatetime.c:329
 msgctxt "abbreviated month name"
 msgid "Aug"
 msgstr "Avo"
 
-#: glib/gdatetime.c:331
+#: ../glib/gdatetime.c:331
 msgctxt "abbreviated month name"
 msgid "Sep"
 msgstr "Set"
 
-#: glib/gdatetime.c:333
+#: ../glib/gdatetime.c:333
 msgctxt "abbreviated month name"
 msgid "Oct"
 msgstr "Otu"
 
-#: glib/gdatetime.c:335
+#: ../glib/gdatetime.c:335
 msgctxt "abbreviated month name"
 msgid "Nov"
 msgstr "Nov"
 
-#: glib/gdatetime.c:337
+#: ../glib/gdatetime.c:337
 msgctxt "abbreviated month name"
 msgid "Dec"
 msgstr "Dic"
 
-#: glib/gdatetime.c:352
+#: ../glib/gdatetime.c:352
 msgctxt "full weekday name"
 msgid "Monday"
 msgstr "Lunis"
 
-#: glib/gdatetime.c:354
+#: ../glib/gdatetime.c:354
 msgctxt "full weekday name"
 msgid "Tuesday"
 msgstr "Martars"
 
-#: glib/gdatetime.c:356
+#: ../glib/gdatetime.c:356
 msgctxt "full weekday name"
 msgid "Wednesday"
 msgstr "Miercus"
 
-#: glib/gdatetime.c:358
+#: ../glib/gdatetime.c:358
 msgctxt "full weekday name"
 msgid "Thursday"
 msgstr "Joibe"
 
-#: glib/gdatetime.c:360
+#: ../glib/gdatetime.c:360
 msgctxt "full weekday name"
 msgid "Friday"
 msgstr "Vinars"
 
-#: glib/gdatetime.c:362
+#: ../glib/gdatetime.c:362
 msgctxt "full weekday name"
 msgid "Saturday"
 msgstr "Sabide"
 
-#: glib/gdatetime.c:364
+#: ../glib/gdatetime.c:364
 msgctxt "full weekday name"
 msgid "Sunday"
 msgstr "Domenie"
 
-#: glib/gdatetime.c:379
+#: ../glib/gdatetime.c:379
 msgctxt "abbreviated weekday name"
 msgid "Mon"
 msgstr "Lun"
 
-#: glib/gdatetime.c:381
+#: ../glib/gdatetime.c:381
 msgctxt "abbreviated weekday name"
 msgid "Tue"
 msgstr "Mar"
 
-#: glib/gdatetime.c:383
+#: ../glib/gdatetime.c:383
 msgctxt "abbreviated weekday name"
 msgid "Wed"
 msgstr "Mie"
 
-#: glib/gdatetime.c:385
+#: ../glib/gdatetime.c:385
 msgctxt "abbreviated weekday name"
 msgid "Thu"
 msgstr "Joi"
 
-#: glib/gdatetime.c:387
+#: ../glib/gdatetime.c:387
 msgctxt "abbreviated weekday name"
 msgid "Fri"
 msgstr "Vin"
 
-#: glib/gdatetime.c:389
+#: ../glib/gdatetime.c:389
 msgctxt "abbreviated weekday name"
 msgid "Sat"
 msgstr "Sab"
 
-#: glib/gdatetime.c:391
+#: ../glib/gdatetime.c:391
 msgctxt "abbreviated weekday name"
 msgid "Sun"
 msgstr "Dom"
@@ -4368,62 +4442,62 @@ msgstr "Dom"
 #. * (western European, non-European) there is no difference between the
 #. * standalone and complete date form.
 #.
-#: glib/gdatetime.c:455
+#: ../glib/gdatetime.c:455
 msgctxt "full month name with day"
 msgid "January"
 msgstr "Zenâr"
 
-#: glib/gdatetime.c:457
+#: ../glib/gdatetime.c:457
 msgctxt "full month name with day"
 msgid "February"
 msgstr "Fevrâr"
 
-#: glib/gdatetime.c:459
+#: ../glib/gdatetime.c:459
 msgctxt "full month name with day"
 msgid "March"
 msgstr "Març"
 
-#: glib/gdatetime.c:461
+#: ../glib/gdatetime.c:461
 msgctxt "full month name with day"
 msgid "April"
 msgstr "Avrîl"
 
-#: glib/gdatetime.c:463
+#: ../glib/gdatetime.c:463
 msgctxt "full month name with day"
 msgid "May"
 msgstr "Mai"
 
-#: glib/gdatetime.c:465
+#: ../glib/gdatetime.c:465
 msgctxt "full month name with day"
 msgid "June"
 msgstr "Jugn"
 
-#: glib/gdatetime.c:467
+#: ../glib/gdatetime.c:467
 msgctxt "full month name with day"
 msgid "July"
 msgstr "Lui"
 
-#: glib/gdatetime.c:469
+#: ../glib/gdatetime.c:469
 msgctxt "full month name with day"
 msgid "August"
 msgstr "Avost"
 
-#: glib/gdatetime.c:471
+#: ../glib/gdatetime.c:471
 msgctxt "full month name with day"
 msgid "September"
 msgstr "Setembar"
 
-#: glib/gdatetime.c:473
+#: ../glib/gdatetime.c:473
 msgctxt "full month name with day"
 msgid "October"
 msgstr "Otubar"
 
-#: glib/gdatetime.c:475
+#: ../glib/gdatetime.c:475
 msgctxt "full month name with day"
 msgid "November"
 msgstr "Novembar"
 
-#: glib/gdatetime.c:477
+#: ../glib/gdatetime.c:477
 msgctxt "full month name with day"
 msgid "December"
 msgstr "Dicembar"
@@ -4445,378 +4519,381 @@ msgstr "Dicembar"
 #. * 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:542
+#: ../glib/gdatetime.c:542
 msgctxt "abbreviated month name with day"
 msgid "Jan"
 msgstr "Zen"
 
-#: glib/gdatetime.c:544
+#: ../glib/gdatetime.c:544
 msgctxt "abbreviated month name with day"
 msgid "Feb"
 msgstr "Fev"
 
-#: glib/gdatetime.c:546
+#: ../glib/gdatetime.c:546
 msgctxt "abbreviated month name with day"
 msgid "Mar"
 msgstr "Mar"
 
-#: glib/gdatetime.c:548
+#: ../glib/gdatetime.c:548
 msgctxt "abbreviated month name with day"
 msgid "Apr"
 msgstr "Avr"
 
-#: glib/gdatetime.c:550
+#: ../glib/gdatetime.c:550
 msgctxt "abbreviated month name with day"
 msgid "May"
 msgstr "Mai"
 
-#: glib/gdatetime.c:552
+#: ../glib/gdatetime.c:552
 msgctxt "abbreviated month name with day"
 msgid "Jun"
 msgstr "Jug"
 
-#: glib/gdatetime.c:554
+#: ../glib/gdatetime.c:554
 msgctxt "abbreviated month name with day"
 msgid "Jul"
 msgstr "Lui"
 
-#: glib/gdatetime.c:556
+#: ../glib/gdatetime.c:556
 msgctxt "abbreviated month name with day"
 msgid "Aug"
 msgstr "Avo"
 
-#: glib/gdatetime.c:558
+#: ../glib/gdatetime.c:558
 msgctxt "abbreviated month name with day"
 msgid "Sep"
 msgstr "Set"
 
-#: glib/gdatetime.c:560
+#: ../glib/gdatetime.c:560
 msgctxt "abbreviated month name with day"
 msgid "Oct"
 msgstr "Otu"
 
-#: glib/gdatetime.c:562
+#: ../glib/gdatetime.c:562
 msgctxt "abbreviated month name with day"
 msgid "Nov"
 msgstr "Nov"
 
-#: glib/gdatetime.c:564
+#: ../glib/gdatetime.c:564
 msgctxt "abbreviated month name with day"
 msgid "Dec"
 msgstr "Dic"
 
 #. Translators: 'before midday' indicator
-#: glib/gdatetime.c:581
+#: ../glib/gdatetime.c:581
 msgctxt "GDateTime"
 msgid "AM"
 msgstr "AM"
 
 #. Translators: 'after midday' indicator
-#: glib/gdatetime.c:584
+#: ../glib/gdatetime.c:584
 msgctxt "GDateTime"
 msgid "PM"
 msgstr "PM"
 
-#: glib/gdir.c:155
+#: ../glib/gdir.c:155
 #, c-format
 msgid "Error opening directory “%s”: %s"
 msgstr ""
 
-#: glib/gfileutils.c:716 glib/gfileutils.c:808
+#: ../glib/gfileutils.c:716 ../glib/gfileutils.c:808
 #, 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] ""
 msgstr[1] ""
 
-#: glib/gfileutils.c:733
+#: ../glib/gfileutils.c:733
 #, c-format
 msgid "Error reading file “%s”: %s"
 msgstr "Erôr tal lei il file “%s”: %s"
 
-#: glib/gfileutils.c:769
+#: ../glib/gfileutils.c:769
 #, c-format
 msgid "File “%s” is too large"
 msgstr "Il file “%s” al è masse larc"
 
-#: glib/gfileutils.c:833
+#: ../glib/gfileutils.c:833
 #, c-format
 msgid "Failed to read from file “%s”: %s"
 msgstr ""
 
-#: glib/gfileutils.c:881 glib/gfileutils.c:953
+#: ../glib/gfileutils.c:881 ../glib/gfileutils.c:953
 #, c-format
 msgid "Failed to open file “%s”: %s"
 msgstr ""
 
-#: glib/gfileutils.c:893
+#: ../glib/gfileutils.c:893
 #, c-format
 msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:923
+#: ../glib/gfileutils.c:923
 #, c-format
 msgid "Failed to open file “%s”: fdopen() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1022
+#: ../glib/gfileutils.c:1022
 #, c-format
 msgid "Failed to rename file “%s” to “%s”: g_rename() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1057 glib/gfileutils.c:1575
+#: ../glib/gfileutils.c:1057 ../glib/gfileutils.c:1575
 #, c-format
 msgid "Failed to create file “%s”: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1084
+#: ../glib/gfileutils.c:1084
 #, c-format
 msgid "Failed to write file “%s”: write() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1127
 #, c-format
 msgid "Failed to write file “%s”: fsync() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1262
+#: ../glib/gfileutils.c:1262
 #, c-format
 msgid "Existing file “%s” could not be removed: g_unlink() failed: %s"
 msgstr ""
 
-#: glib/gfileutils.c:1541
+#: ../glib/gfileutils.c:1541
 #, c-format
 msgid "Template “%s” invalid, should not contain a “%s”"
 msgstr ""
 
-#: glib/gfileutils.c:1554
+#: ../glib/gfileutils.c:1554
 #, c-format
 msgid "Template “%s” doesn’t contain XXXXXX"
 msgstr ""
 
-#: glib/gfileutils.c:2116
+#: ../glib/gfileutils.c:2116
 #, c-format
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr ""
 
-#: glib/giochannel.c:1389
+#: ../glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr ""
 
-#: glib/giochannel.c:1734
+#: ../glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr ""
 
-#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
+#: ../glib/giochannel.c:1781 ../glib/giochannel.c:2039
+#: ../glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr ""
 
-#: glib/giochannel.c:1862 glib/giochannel.c:1939
+#: ../glib/giochannel.c:1862 ../glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr ""
 
-#: glib/giochannel.c:1925
+#: ../glib/giochannel.c:1925
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr ""
 
-#: glib/gkeyfile.c:788
+#: ../glib/gkeyfile.c:788
 msgid "Valid key file could not be found in search dirs"
 msgstr ""
 
-#: glib/gkeyfile.c:825
+#: ../glib/gkeyfile.c:825
 msgid "Not a regular file"
 msgstr ""
 
-#: glib/gkeyfile.c:1270
+#: ../glib/gkeyfile.c:1270
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
 msgstr ""
 
-#: glib/gkeyfile.c:1327
+#: ../glib/gkeyfile.c:1327
 #, c-format
 msgid "Invalid group name: %s"
 msgstr ""
 
-#: glib/gkeyfile.c:1349
+#: ../glib/gkeyfile.c:1349
 msgid "Key file does not start with a group"
 msgstr ""
 
-#: glib/gkeyfile.c:1375
+#: ../glib/gkeyfile.c:1375
 #, c-format
 msgid "Invalid key name: %s"
 msgstr ""
 
-#: glib/gkeyfile.c:1402
+#: ../glib/gkeyfile.c:1402
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr ""
 
-#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
-#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
-#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
+#: ../glib/gkeyfile.c:1645 ../glib/gkeyfile.c:1818 ../glib/gkeyfile.c:3271
+#: ../glib/gkeyfile.c:3334 ../glib/gkeyfile.c:3464 ../glib/gkeyfile.c:3594
+#: ../glib/gkeyfile.c:3738 ../glib/gkeyfile.c:3967 ../glib/gkeyfile.c:4034
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr ""
 
-#: glib/gkeyfile.c:1773
+#: ../glib/gkeyfile.c:1773
 #, c-format
 msgid "Key file does not have key “%s” in group “%s”"
 msgstr ""
 
-#: glib/gkeyfile.c:1935 glib/gkeyfile.c:2051
+#: ../glib/gkeyfile.c:1935 ../glib/gkeyfile.c:2051
 #, c-format
 msgid "Key file contains key “%s” with value “%s” which is not UTF-8"
 msgstr ""
 
-#: glib/gkeyfile.c:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
+#: ../glib/gkeyfile.c:1955 ../glib/gkeyfile.c:2071 ../glib/gkeyfile.c:2513
 #, c-format
 msgid ""
 "Key file contains key “%s” which has a value that cannot be interpreted."
 msgstr ""
 
-#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
+#: ../glib/gkeyfile.c:2731 ../glib/gkeyfile.c:3100
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
 "interpreted."
 msgstr ""
 
-#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
+#: ../glib/gkeyfile.c:2809 ../glib/gkeyfile.c:2886
 #, c-format
 msgid "Key “%s” in group “%s” has value “%s” where %s was expected"
 msgstr ""
 
-#: glib/gkeyfile.c:4274
+#: ../glib/gkeyfile.c:4274
 msgid "Key file contains escape character at end of line"
 msgstr ""
 
-#: glib/gkeyfile.c:4296
+#: ../glib/gkeyfile.c:4296
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr ""
 
-#: glib/gkeyfile.c:4440
+#: ../glib/gkeyfile.c:4440
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr ""
 
-#: glib/gkeyfile.c:4454
+#: ../glib/gkeyfile.c:4454
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr ""
 
-#: glib/gkeyfile.c:4487
+#: ../glib/gkeyfile.c:4487
 #, c-format
 msgid "Value “%s” cannot be interpreted as a float number."
 msgstr ""
 
-#: glib/gkeyfile.c:4526
+#: ../glib/gkeyfile.c:4526
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr ""
 
-#: glib/gmappedfile.c:129
+#: ../glib/gmappedfile.c:129
 #, c-format
 msgid "Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"
 msgstr ""
 
-#: glib/gmappedfile.c:195
+#: ../glib/gmappedfile.c:195
 #, c-format
 msgid "Failed to map %s%s%s%s: mmap() failed: %s"
 msgstr ""
 
-#: glib/gmappedfile.c:262
+#: ../glib/gmappedfile.c:262
 #, c-format
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr ""
 
-#: glib/gmarkup.c:397 glib/gmarkup.c:439
+#: ../glib/gmarkup.c:397 ../glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr ""
 
-#: glib/gmarkup.c:461 glib/gmarkup.c:544
+#: ../glib/gmarkup.c:461 ../glib/gmarkup.c:544
 #, c-format
 msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:472
-#, c-format
+#: ../glib/gmarkup.c:472
+#, fuzzy, c-format
+#| msgid "“%s” is not a signed number"
 msgid "“%s” is not a valid name"
-msgstr "“%s” nol è un non valit"
+msgstr "“%s” nol è un numar cun segn"
 
-#: glib/gmarkup.c:488
-#, c-format
+#: ../glib/gmarkup.c:488
+#, fuzzy, c-format
+#| msgid "“%s” is not a signed number"
 msgid "“%s” is not a valid name: “%c”"
-msgstr "“%s” nol è un non valit: “%c”"
+msgstr "“%s” nol è un numar cun segn"
 
-#: glib/gmarkup.c:610
+#: ../glib/gmarkup.c:598
 #, c-format
 msgid "Error on line %d: %s"
 msgstr ""
 
-#: glib/gmarkup.c:687
+#: ../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 ""
 
-#: glib/gmarkup.c:699
+#: ../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 ""
 
-#: glib/gmarkup.c:725
+#: ../glib/gmarkup.c:713
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr ""
 
-#: glib/gmarkup.c:763
+#: ../glib/gmarkup.c:751
 msgid ""
 "Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
 msgstr ""
 
-#: glib/gmarkup.c:771
+#: ../glib/gmarkup.c:759
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr ""
 
-#: glib/gmarkup.c:776
+#: ../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 ""
 
-#: glib/gmarkup.c:1182
+#: ../glib/gmarkup.c:1170
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr ""
 
-#: glib/gmarkup.c:1222
+#: ../glib/gmarkup.c:1210
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
 "element name"
 msgstr ""
 
-#: glib/gmarkup.c:1264
+#: ../glib/gmarkup.c:1252
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
 "“%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1345
+#: ../glib/gmarkup.c:1333
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1386
+#: ../glib/gmarkup.c:1374
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -4824,830 +4901,827 @@ msgid ""
 "character in an attribute name"
 msgstr ""
 
-#: glib/gmarkup.c:1430
+#: ../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 ""
 
-#: glib/gmarkup.c:1563
+#: ../glib/gmarkup.c:1551
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
 "begin an element name"
 msgstr ""
 
-#: glib/gmarkup.c:1599
+#: ../glib/gmarkup.c:1587
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
 "allowed character is “>”"
 msgstr ""
 
-#: glib/gmarkup.c:1610
+#: ../glib/gmarkup.c:1598
 #, c-format
 msgid "Element “%s” was closed, no element is currently open"
 msgstr ""
 
-#: glib/gmarkup.c:1619
+#: ../glib/gmarkup.c:1607
 #, c-format
 msgid "Element “%s” was closed, but the currently open element is “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1772
+#: ../glib/gmarkup.c:1760
 msgid "Document was empty or contained only whitespace"
 msgstr ""
 
-#: glib/gmarkup.c:1786
+#: ../glib/gmarkup.c:1774
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr ""
 
-#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
+#: ../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 ""
 
-#: glib/gmarkup.c:1802
+#: ../glib/gmarkup.c:1790
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
 "the tag <%s/>"
 msgstr ""
 
-#: glib/gmarkup.c:1808
+#: ../glib/gmarkup.c:1796
 msgid "Document ended unexpectedly inside an element name"
 msgstr ""
 
-#: glib/gmarkup.c:1814
+#: ../glib/gmarkup.c:1802
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr ""
 
-#: glib/gmarkup.c:1819
+#: ../glib/gmarkup.c:1807
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr ""
 
-#: glib/gmarkup.c:1825
+#: ../glib/gmarkup.c:1813
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
 msgstr ""
 
-#: glib/gmarkup.c:1832
+#: ../glib/gmarkup.c:1820
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr ""
 
-#: glib/gmarkup.c:1849
+#: ../glib/gmarkup.c:1836
 #, c-format
 msgid "Document ended unexpectedly inside the close tag for element “%s”"
 msgstr ""
 
-#: glib/gmarkup.c:1853
-msgid ""
-"Document ended unexpectedly inside the close tag for an unopened element"
-msgstr ""
-
-#: glib/gmarkup.c:1859
+#: ../glib/gmarkup.c:1842
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 
-#: glib/goption.c:861
+#: ../glib/goption.c:861
 msgid "[OPTION…]"
 msgstr "[OPZION…]"
 
-#: glib/goption.c:977
+#: ../glib/goption.c:977
 msgid "Help Options:"
 msgstr ""
 
-#: glib/goption.c:978
+#: ../glib/goption.c:978
 msgid "Show help options"
 msgstr ""
 
-#: glib/goption.c:984
+#: ../glib/goption.c:984
 msgid "Show all help options"
 msgstr ""
 
-#: glib/goption.c:1047
+#: ../glib/goption.c:1047
 msgid "Application Options:"
 msgstr "Opzions aplicazion:"
 
-#: glib/goption.c:1049
+#: ../glib/goption.c:1049
 msgid "Options:"
 msgstr "Opzions:"
 
-#: glib/goption.c:1113 glib/goption.c:1183
+#: ../glib/goption.c:1113 ../glib/goption.c:1183
 #, c-format
 msgid "Cannot parse integer value “%s” for %s"
 msgstr ""
 
-#: glib/goption.c:1123 glib/goption.c:1191
+#: ../glib/goption.c:1123 ../glib/goption.c:1191
 #, c-format
 msgid "Integer value “%s” for %s out of range"
 msgstr ""
 
-#: glib/goption.c:1148
+#: ../glib/goption.c:1148
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
 msgstr ""
 
-#: glib/goption.c:1156
+#: ../glib/goption.c:1156
 #, c-format
 msgid "Double value “%s” for %s out of range"
 msgstr ""
 
-#: glib/goption.c:1448 glib/goption.c:1527
+#: ../glib/goption.c:1448 ../glib/goption.c:1527
 #, c-format
 msgid "Error parsing option %s"
 msgstr ""
 
-#: glib/goption.c:1558 glib/goption.c:1671
+#: ../glib/goption.c:1558 ../glib/goption.c:1671
 #, c-format
 msgid "Missing argument for %s"
 msgstr ""
 
-#: glib/goption.c:2132
+#: ../glib/goption.c:2132
 #, c-format
 msgid "Unknown option %s"
-msgstr "Opzion %s no cognossude"
+msgstr ""
 
-#: glib/gregex.c:257
+#: ../glib/gregex.c:257
 msgid "corrupted object"
-msgstr "ogjet ruvinât"
+msgstr ""
 
-#: glib/gregex.c:259
+#: ../glib/gregex.c:259
 msgid "internal error or corrupted object"
-msgstr "erôr interni o ogjet ruvinât"
+msgstr ""
 
-#: glib/gregex.c:261
+#: ../glib/gregex.c:261
 msgid "out of memory"
 msgstr "memorie finide"
 
-#: glib/gregex.c:266
+#: ../glib/gregex.c:266
 msgid "backtracking limit reached"
 msgstr ""
 
-#: glib/gregex.c:278 glib/gregex.c:286
+#: ../glib/gregex.c:278 ../glib/gregex.c:286
 msgid "the pattern contains items not supported for partial matching"
 msgstr ""
 
-#: glib/gregex.c:280
+#: ../glib/gregex.c:280
 msgid "internal error"
 msgstr "erôr interni"
 
-#: glib/gregex.c:288
+#: ../glib/gregex.c:288
 msgid "back references as conditions are not supported for partial matching"
 msgstr ""
 
-#: glib/gregex.c:297
+#: ../glib/gregex.c:297
 msgid "recursion limit reached"
 msgstr ""
 
-#: glib/gregex.c:299
+#: ../glib/gregex.c:299
 msgid "invalid combination of newline flags"
 msgstr ""
 
-#: glib/gregex.c:301
+#: ../glib/gregex.c:301
 msgid "bad offset"
 msgstr ""
 
-#: glib/gregex.c:303
+#: ../glib/gregex.c:303
 msgid "short utf8"
 msgstr ""
 
-#: glib/gregex.c:305
+#: ../glib/gregex.c:305
 msgid "recursion loop"
 msgstr ""
 
-#: glib/gregex.c:309
+#: ../glib/gregex.c:309
 msgid "unknown error"
 msgstr "erôr no cognossût"
 
-#: glib/gregex.c:329
+#: ../glib/gregex.c:329
 msgid "\\ at end of pattern"
 msgstr ""
 
-#: glib/gregex.c:332
+#: ../glib/gregex.c:332
 msgid "\\c at end of pattern"
 msgstr ""
 
-#: glib/gregex.c:335
+#: ../glib/gregex.c:335
 msgid "unrecognized character following \\"
 msgstr ""
 
-#: glib/gregex.c:338
+#: ../glib/gregex.c:338
 msgid "numbers out of order in {} quantifier"
 msgstr ""
 
-#: glib/gregex.c:341
+#: ../glib/gregex.c:341
 msgid "number too big in {} quantifier"
 msgstr ""
 
-#: glib/gregex.c:344
+#: ../glib/gregex.c:344
 msgid "missing terminating ] for character class"
 msgstr ""
 
-#: glib/gregex.c:347
+#: ../glib/gregex.c:347
 msgid "invalid escape sequence in character class"
 msgstr ""
 
-#: glib/gregex.c:350
+#: ../glib/gregex.c:350
 msgid "range out of order in character class"
 msgstr ""
 
-#: glib/gregex.c:353
+#: ../glib/gregex.c:353
 msgid "nothing to repeat"
-msgstr "nuie di ce ripeti"
+msgstr ""
 
-#: glib/gregex.c:357
+#: ../glib/gregex.c:357
 msgid "unexpected repeat"
 msgstr ""
 
-#: glib/gregex.c:360
+#: ../glib/gregex.c:360
 msgid "unrecognized character after (? or (?-"
 msgstr ""
 
-#: glib/gregex.c:363
+#: ../glib/gregex.c:363
 msgid "POSIX named classes are supported only within a class"
 msgstr ""
 
-#: glib/gregex.c:366
+#: ../glib/gregex.c:366
 msgid "missing terminating )"
 msgstr ""
 
-#: glib/gregex.c:369
+#: ../glib/gregex.c:369
 msgid "reference to non-existent subpattern"
 msgstr ""
 
-#: glib/gregex.c:372
+#: ../glib/gregex.c:372
 msgid "missing ) after comment"
 msgstr ""
 
-#: glib/gregex.c:375
+#: ../glib/gregex.c:375
 msgid "regular expression is too large"
-msgstr "la espression regolâr e je masse largje"
+msgstr ""
 
-#: glib/gregex.c:378
+#: ../glib/gregex.c:378
 msgid "failed to get memory"
 msgstr ""
 
-#: glib/gregex.c:382
+#: ../glib/gregex.c:382
 msgid ") without opening ("
 msgstr ""
 
-#: glib/gregex.c:386
+#: ../glib/gregex.c:386
 msgid "code overflow"
 msgstr ""
 
-#: glib/gregex.c:390
+#: ../glib/gregex.c:390
 msgid "unrecognized character after (?<"
-msgstr "caratar no ricognossût dopo (?<"
+msgstr ""
 
-#: glib/gregex.c:393
+#: ../glib/gregex.c:393
 msgid "lookbehind assertion is not fixed length"
 msgstr ""
 
-#: glib/gregex.c:396
+#: ../glib/gregex.c:396
 msgid "malformed number or name after (?("
-msgstr "non o numar malformât dopo (?("
+msgstr ""
 
-#: glib/gregex.c:399
+#: ../glib/gregex.c:399
 msgid "conditional group contains more than two branches"
 msgstr ""
 
-#: glib/gregex.c:402
+#: ../glib/gregex.c:402
 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
+#: ../glib/gregex.c:409
 msgid "(?R or (?[+-]digits must be followed by )"
 msgstr ""
 
-#: glib/gregex.c:412
+#: ../glib/gregex.c:412
 msgid "unknown POSIX class name"
-msgstr "non di classe POSIX no cognossût"
+msgstr ""
 
-#: glib/gregex.c:415
+#: ../glib/gregex.c:415
 msgid "POSIX collating elements are not supported"
 msgstr ""
 
-#: glib/gregex.c:418
+#: ../glib/gregex.c:418
 msgid "character value in \\x{...} sequence is too large"
 msgstr ""
 
-#: glib/gregex.c:421
+#: ../glib/gregex.c:421
 msgid "invalid condition (?(0)"
-msgstr "condizion no valide (?(0)"
+msgstr ""
 
-#: glib/gregex.c:424
+#: ../glib/gregex.c:424
 msgid "\\C not allowed in lookbehind assertion"
 msgstr ""
 
-#: glib/gregex.c:431
+#: ../glib/gregex.c:431
 msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
 msgstr ""
 
-#: glib/gregex.c:434
+#: ../glib/gregex.c:434
 msgid "recursive call could loop indefinitely"
 msgstr ""
 
-#: glib/gregex.c:438
+#: ../glib/gregex.c:438
 msgid "unrecognized character after (?P"
-msgstr "caratar no ricognossût dopo (?P"
+msgstr ""
 
-#: glib/gregex.c:441
+#: ../glib/gregex.c:441
 msgid "missing terminator in subpattern name"
 msgstr ""
 
-#: glib/gregex.c:444
+#: ../glib/gregex.c:444
 msgid "two named subpatterns have the same name"
 msgstr ""
 
-#: glib/gregex.c:447
+#: ../glib/gregex.c:447
 msgid "malformed \\P or \\p sequence"
-msgstr "secuence \\P o \\p malformade"
+msgstr ""
 
-#: glib/gregex.c:450
+#: ../glib/gregex.c:450
 msgid "unknown property name after \\P or \\p"
 msgstr ""
 
-#: glib/gregex.c:453
+#: ../glib/gregex.c:453
 msgid "subpattern name is too long (maximum 32 characters)"
 msgstr ""
 
-#: glib/gregex.c:456
+#: ../glib/gregex.c:456
 msgid "too many named subpatterns (maximum 10,000)"
 msgstr ""
 
-#: glib/gregex.c:459
+#: ../glib/gregex.c:459
 msgid "octal value is greater than \\377"
-msgstr "il valôr otâl al è plui grant di \\377"
+msgstr ""
 
-#: glib/gregex.c:463
+#: ../glib/gregex.c:463
 msgid "overran compiling workspace"
 msgstr ""
 
-#: glib/gregex.c:467
+#: ../glib/gregex.c:467
 msgid "previously-checked referenced subpattern not found"
 msgstr ""
 
-#: glib/gregex.c:470
+#: ../glib/gregex.c:470
 msgid "DEFINE group contains more than one branch"
 msgstr ""
 
-#: glib/gregex.c:473
+#: ../glib/gregex.c:473
 msgid "inconsistent NEWLINE options"
 msgstr ""
 
-#: glib/gregex.c:476
+#: ../glib/gregex.c:476
 msgid ""
 "\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
 "or by a plain number"
 msgstr ""
 
-#: glib/gregex.c:480
+#: ../glib/gregex.c:480
 msgid "a numbered reference must not be zero"
-msgstr "un riferiment numerât nol pues jessi zero"
+msgstr ""
 
-#: glib/gregex.c:483
+#: ../glib/gregex.c:483
 msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
 msgstr ""
 
-#: glib/gregex.c:486
+#: ../glib/gregex.c:486
 msgid "(*VERB) not recognized"
 msgstr ""
 
-#: glib/gregex.c:489
+#: ../glib/gregex.c:489
 msgid "number is too big"
-msgstr "il numar al è masse grant"
+msgstr ""
 
-#: glib/gregex.c:492
+#: ../glib/gregex.c:492
 msgid "missing subpattern name after (?&"
 msgstr ""
 
-#: glib/gregex.c:495
+#: ../glib/gregex.c:495
 msgid "digit expected after (?+"
 msgstr ""
 
-#: glib/gregex.c:498
+#: ../glib/gregex.c:498
 msgid "] is an invalid data character in JavaScript compatibility mode"
 msgstr ""
 
-#: glib/gregex.c:501
+#: ../glib/gregex.c:501
 msgid "different names for subpatterns of the same number are not allowed"
 msgstr ""
 
-#: glib/gregex.c:504
+#: ../glib/gregex.c:504
 msgid "(*MARK) must have an argument"
 msgstr ""
 
-#: glib/gregex.c:507
+#: ../glib/gregex.c:507
 msgid "\\c must be followed by an ASCII character"
 msgstr ""
 
-#: glib/gregex.c:510
+#: ../glib/gregex.c:510
 msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
 msgstr ""
 
-#: glib/gregex.c:513
+#: ../glib/gregex.c:513
 msgid "\\N is not supported in a class"
 msgstr ""
 
-#: glib/gregex.c:516
+#: ../glib/gregex.c:516
 msgid "too many forward references"
 msgstr ""
 
-#: glib/gregex.c:519
+#: ../glib/gregex.c:519
 msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
 msgstr ""
 
-#: glib/gregex.c:522
+#: ../glib/gregex.c:522
 msgid "character value in \\u.... sequence is too large"
 msgstr ""
 
-#: glib/gregex.c:745 glib/gregex.c:1983
+#: ../glib/gregex.c:745 ../glib/gregex.c:1983
 #, c-format
 msgid "Error while matching regular expression %s: %s"
 msgstr ""
 
-#: glib/gregex.c:1316
+#: ../glib/gregex.c:1316
 msgid "PCRE library is compiled without UTF8 support"
 msgstr ""
 
-#: glib/gregex.c:1320
+#: ../glib/gregex.c:1320
 msgid "PCRE library is compiled without UTF8 properties support"
 msgstr ""
 
-#: glib/gregex.c:1328
+#: ../glib/gregex.c:1328
 msgid "PCRE library is compiled with incompatible options"
 msgstr ""
 
-#: glib/gregex.c:1357
+#: ../glib/gregex.c:1357
 #, c-format
 msgid "Error while optimizing regular expression %s: %s"
 msgstr ""
 
-#: glib/gregex.c:1437
+#: ../glib/gregex.c:1437
 #, c-format
 msgid "Error while compiling regular expression %s at char %d: %s"
 msgstr ""
 
-#: glib/gregex.c:2419
+#: ../glib/gregex.c:2419
 msgid "hexadecimal digit or “}” expected"
 msgstr ""
 
-#: glib/gregex.c:2435
+#: ../glib/gregex.c:2435
 msgid "hexadecimal digit expected"
 msgstr ""
 
-#: glib/gregex.c:2475
+#: ../glib/gregex.c:2475
 msgid "missing “<” in symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2484
+#: ../glib/gregex.c:2484
 msgid "unfinished symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2491
+#: ../glib/gregex.c:2491
 msgid "zero-length symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2502
+#: ../glib/gregex.c:2502
 msgid "digit expected"
 msgstr ""
 
-#: glib/gregex.c:2520
+#: ../glib/gregex.c:2520
 msgid "illegal symbolic reference"
 msgstr ""
 
-#: glib/gregex.c:2582
+#: ../glib/gregex.c:2582
 msgid "stray final “\\”"
 msgstr ""
 
-#: glib/gregex.c:2586
+#: ../glib/gregex.c:2586
 msgid "unknown escape sequence"
 msgstr ""
 
-#: glib/gregex.c:2596
+#: ../glib/gregex.c:2596
 #, c-format
 msgid "Error while parsing replacement text “%s” at char %lu: %s"
 msgstr ""
 
-#: glib/gshell.c:94
+#: ../glib/gshell.c:94
 msgid "Quoted text doesn’t begin with a quotation mark"
 msgstr ""
 
-#: glib/gshell.c:184
+#: ../glib/gshell.c:184
 msgid "Unmatched quotation mark in command line or other shell-quoted text"
 msgstr ""
 
-#: glib/gshell.c:580
+#: ../glib/gshell.c:580
 #, c-format
 msgid "Text ended just after a “\\” character. (The text was “%s”)"
 msgstr ""
 
-#: glib/gshell.c:587
+#: ../glib/gshell.c:587
 #, c-format
 msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
 msgstr ""
 
-#: glib/gshell.c:599
+#: ../glib/gshell.c:599
 msgid "Text was empty (or contained only whitespace)"
-msgstr "Il test al jere vueit (o al contignive dome spazis vueits)"
+msgstr ""
 
-#: glib/gspawn.c:311
+#: ../glib/gspawn.c:302
 #, c-format
 msgid "Failed to read data from child process (%s)"
-msgstr "No si è rivâts a lei dâts dal procès fi (%s)"
+msgstr ""
 
-#: glib/gspawn.c:459
+#: ../glib/gspawn.c:450
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr ""
 
-#: glib/gspawn.c:544
+#: ../glib/gspawn.c:535
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: ../glib/gspawn.c:1043 ../glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
-msgstr "Procès fi jessût cul codiç %ld"
+msgstr ""
 
-#: glib/gspawn.c:1060
+#: ../glib/gspawn.c:1051
 #, c-format
 msgid "Child process killed by signal %ld"
-msgstr "Procès fi copât dal segnâl %ld"
+msgstr ""
 
-#: glib/gspawn.c:1067
+#: ../glib/gspawn.c:1058
 #, c-format
 msgid "Child process stopped by signal %ld"
-msgstr "Procès fi fermât dal segnâl %ld"
+msgstr ""
 
-#: glib/gspawn.c:1074
+#: ../glib/gspawn.c:1065
 #, c-format
 msgid "Child process exited abnormally"
-msgstr "Il procès fi al è jessût in maniere anormâl"
+msgstr ""
 
-#: glib/gspawn.c:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: ../glib/gspawn.c:1360 ../glib/gspawn-win32.c:339 ../glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1617
-#, c-format
+#: ../glib/gspawn.c:1596
+#, fuzzy, c-format
+#| msgid "Failed to load info for handler “%s”"
 msgid "Failed to spawn child process “%s” (%s)"
-msgstr "No si è rivâts a creâ il procès fi “%s” (%s)"
+msgstr "No si è rivâts a cjariâ lis informazion pal gjestôr “%s”"
 
-#: glib/gspawn.c:1656
+#: ../glib/gspawn.c:1635
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1805 glib/gspawn-win32.c:370
+#: ../glib/gspawn.c:1784 ../glib/gspawn-win32.c:370
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
-msgstr "No si è rivâts a lâ ae cartele “%s” (%s)"
+msgstr ""
 
-#: glib/gspawn.c:1815
+#: ../glib/gspawn.c:1794
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1825
+#: ../glib/gspawn.c:1804
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1834
+#: ../glib/gspawn.c:1813
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr ""
 
-#: glib/gspawn.c:1842
+#: ../glib/gspawn.c:1821
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr ""
 
-#: glib/gspawn.c:1866
+#: ../glib/gspawn.c:1845
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr ""
 
-#: glib/gspawn-win32.c:283
+#: ../glib/gspawn-win32.c:283
 msgid "Failed to read data from child process"
-msgstr "No si è rivâts a lei dâts dal procès fi"
+msgstr ""
 
-#: glib/gspawn-win32.c:300
+#: ../glib/gspawn-win32.c:300
 #, c-format
 msgid "Failed to create pipe for communicating with child process (%s)"
 msgstr ""
 
-#: glib/gspawn-win32.c:376 glib/gspawn-win32.c:381 glib/gspawn-win32.c:500
+#: ../glib/gspawn-win32.c:376 ../glib/gspawn-win32.c:381
+#: ../glib/gspawn-win32.c:500
 #, c-format
 msgid "Failed to execute child process (%s)"
-msgstr "No si è rivâts a eseguî il procès fi (%s)"
+msgstr ""
 
-#: glib/gspawn-win32.c:450
+#: ../glib/gspawn-win32.c:450
 #, c-format
 msgid "Invalid program name: %s"
-msgstr "Non dal program no valit: %s"
+msgstr ""
 
-#: glib/gspawn-win32.c:460 glib/gspawn-win32.c:714
+#: ../glib/gspawn-win32.c:460 ../glib/gspawn-win32.c:714
 #, c-format
 msgid "Invalid string in argument vector at %d: %s"
 msgstr ""
 
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:729
+#: ../glib/gspawn-win32.c:471 ../glib/gspawn-win32.c:729
 #, c-format
 msgid "Invalid string in environment: %s"
 msgstr ""
 
-#: glib/gspawn-win32.c:710
+#: ../glib/gspawn-win32.c:710
 #, c-format
 msgid "Invalid working directory: %s"
-msgstr "Cartele di lavôr no valide: %s"
+msgstr ""
 
-#: glib/gspawn-win32.c:772
+#: ../glib/gspawn-win32.c:772
 #, c-format
 msgid "Failed to execute helper program (%s)"
 msgstr ""
 
-#: glib/gspawn-win32.c:1045
+#: ../glib/gspawn-win32.c:1045
 msgid ""
 "Unexpected error in g_io_channel_win32_poll() reading data from a child "
 "process"
 msgstr ""
 
-#: glib/gstrfuncs.c:3247 glib/gstrfuncs.c:3348
+#: ../glib/gstrfuncs.c:3247 ../glib/gstrfuncs.c:3348
 msgid "Empty string is not a number"
-msgstr "La stringhe vueide no je un numar"
+msgstr ""
 
-#: glib/gstrfuncs.c:3271
+#: ../glib/gstrfuncs.c:3271
 #, c-format
 msgid "“%s” is not a signed number"
 msgstr "“%s” nol è un numar cun segn"
 
-#: glib/gstrfuncs.c:3281 glib/gstrfuncs.c:3384
+#: ../glib/gstrfuncs.c:3281 ../glib/gstrfuncs.c:3384
 #, c-format
 msgid "Number “%s” is out of bounds [%s, %s]"
 msgstr ""
 
-#: glib/gstrfuncs.c:3374
+#: ../glib/gstrfuncs.c:3374
 #, c-format
 msgid "“%s” is not an unsigned number"
 msgstr "“%s” nol è un numar cence segn"
 
-#: glib/gutf8.c:811
+#: ../glib/gutf8.c:811
 msgid "Failed to allocate memory"
-msgstr "No si è rivâts a assegnâ la memorie"
+msgstr ""
 
-#: glib/gutf8.c:944
+#: ../glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
-msgstr "Caratar fûr dal limit par UTF-8"
+msgstr ""
 
-#: 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:1045 ../glib/gutf8.c:1054 ../glib/gutf8.c:1184
+#: ../glib/gutf8.c:1193 ../glib/gutf8.c:1332 ../glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr ""
 
-#: glib/gutf8.c:1343 glib/gutf8.c:1440
+#: ../glib/gutf8.c:1343 ../glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
-msgstr "Caratar fûr dal limit par UTF-16"
+msgstr ""
 
-#: glib/gutils.c:2244
+#: ../glib/gutils.c:2244
 #, c-format
 msgid "%.1f kB"
 msgstr "%.1f kB"
 
-#: glib/gutils.c:2245 glib/gutils.c:2451
+#: ../glib/gutils.c:2245 ../glib/gutils.c:2451
 #, c-format
 msgid "%.1f MB"
 msgstr "%.1f MB"
 
-#: glib/gutils.c:2246 glib/gutils.c:2456
+#: ../glib/gutils.c:2246 ../glib/gutils.c:2456
 #, c-format
 msgid "%.1f GB"
 msgstr "%.1f GB"
 
-#: glib/gutils.c:2247 glib/gutils.c:2461
+#: ../glib/gutils.c:2247 ../glib/gutils.c:2461
 #, c-format
 msgid "%.1f TB"
 msgstr "%.1f TB"
 
-#: glib/gutils.c:2248 glib/gutils.c:2466
+#: ../glib/gutils.c:2248 ../glib/gutils.c:2466
 #, c-format
 msgid "%.1f PB"
 msgstr "%.1f PB"
 
-#: glib/gutils.c:2249 glib/gutils.c:2471
+#: ../glib/gutils.c:2249 ../glib/gutils.c:2471
 #, c-format
 msgid "%.1f EB"
 msgstr "%.1f EB"
 
-#: glib/gutils.c:2252
+#: ../glib/gutils.c:2252
 #, c-format
 msgid "%.1f KiB"
 msgstr "%.1f KiB"
 
-#: glib/gutils.c:2253
+#: ../glib/gutils.c:2253
 #, c-format
 msgid "%.1f MiB"
 msgstr "%.1f MiB"
 
-#: glib/gutils.c:2254
+#: ../glib/gutils.c:2254
 #, c-format
 msgid "%.1f GiB"
 msgstr "%.1f GiB"
 
-#: glib/gutils.c:2255
+#: ../glib/gutils.c:2255
 #, c-format
 msgid "%.1f TiB"
 msgstr "%.1f TiB"
 
-#: glib/gutils.c:2256
+#: ../glib/gutils.c:2256
 #, c-format
 msgid "%.1f PiB"
 msgstr "%.1f PiB"
 
-#: glib/gutils.c:2257
+#: ../glib/gutils.c:2257
 #, c-format
 msgid "%.1f EiB"
 msgstr "%.1f EiB"
 
-#: glib/gutils.c:2260
+#: ../glib/gutils.c:2260
 #, c-format
 msgid "%.1f kb"
 msgstr "%.1f kb"
 
-#: glib/gutils.c:2261
+#: ../glib/gutils.c:2261
 #, c-format
 msgid "%.1f Mb"
 msgstr "%.1f Mb"
 
-#: glib/gutils.c:2262
+#: ../glib/gutils.c:2262
 #, c-format
 msgid "%.1f Gb"
 msgstr "%.1f Gb"
 
-#: glib/gutils.c:2263
+#: ../glib/gutils.c:2263
 #, c-format
 msgid "%.1f Tb"
 msgstr "%.1f Tb"
 
-#: glib/gutils.c:2264
+#: ../glib/gutils.c:2264
 #, c-format
 msgid "%.1f Pb"
 msgstr "%.1f Pb"
 
-#: glib/gutils.c:2265
+#: ../glib/gutils.c:2265
 #, c-format
 msgid "%.1f Eb"
 msgstr "%.1f Eb"
 
-#: glib/gutils.c:2268
+#: ../glib/gutils.c:2268
 #, c-format
 msgid "%.1f Kib"
 msgstr "%.1f Kib"
 
-#: glib/gutils.c:2269
+#: ../glib/gutils.c:2269
 #, c-format
 msgid "%.1f Mib"
 msgstr "%.1f Mib"
 
-#: glib/gutils.c:2270
+#: ../glib/gutils.c:2270
 #, c-format
 msgid "%.1f Gib"
 msgstr "%.1f Gib"
 
-#: glib/gutils.c:2271
+#: ../glib/gutils.c:2271
 #, c-format
 msgid "%.1f Tib"
 msgstr "%.1f Tib"
 
-#: glib/gutils.c:2272
+#: ../glib/gutils.c:2272
 #, c-format
 msgid "%.1f Pib"
 msgstr "%.1f Pib"
 
-#: glib/gutils.c:2273
+#: ../glib/gutils.c:2273
 #, c-format
 msgid "%.1f Eib"
 msgstr "%.1f Eib"
 
-#: glib/gutils.c:2307 glib/gutils.c:2433
+#: ../glib/gutils.c:2307 ../glib/gutils.c:2433
 #, c-format
 msgid "%u byte"
 msgid_plural "%u bytes"
 msgstr[0] "%u byte"
 msgstr[1] "%u byte"
 
-#: glib/gutils.c:2311
+#: ../glib/gutils.c:2311
 #, c-format
 msgid "%u bit"
 msgid_plural "%u bits"
@@ -5655,7 +5729,7 @@ msgstr[0] "%u bit"
 msgstr[1] "%u bit"
 
 #. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2378
+#: ../glib/gutils.c:2378
 #, c-format
 msgid "%s byte"
 msgid_plural "%s bytes"
@@ -5663,7 +5737,7 @@ msgstr[0] "%s byte"
 msgstr[1] "%s byte"
 
 #. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2383
+#: ../glib/gutils.c:2383
 #, c-format
 msgid "%s bit"
 msgid_plural "%s bits"
@@ -5675,7 +5749,7 @@ msgstr[1] "%s bit"
 #. * compatibility.  Users will not see this string unless a program is using this deprecated function.
 #. * Please translate as literally as possible.
 #.
-#: glib/gutils.c:2446
+#: ../glib/gutils.c:2446
 #, c-format
 msgid "%.1f KB"
 msgstr "%.1f KB"
index 137e4c7..6880c6a 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-06 13:10+0000\n"
-"PO-Revision-Date: 2018-11-06 22:54+0700\n"
+"POT-Creation-Date: 2018-08-17 12:52+0000\n"
+"PO-Revision-Date: 2018-08-22 14:25+0700\n"
 "Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
 "Language-Team: Indonesian <gnome@i15n.org>\n"
 "Language: id\n"
@@ -295,13 +295,13 @@ msgstr "Tak cukup ruang di tujuan"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Rangkaian bita dalam input konversi tidak benar"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Galat ketika konversi: %s"
@@ -310,7 +310,7 @@ msgstr "Galat ketika konversi: %s"
 msgid "Cancellable initialization not supported"
 msgstr "Inisialisasi yang dapat dibatalkan tak didukung"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr "Konversi dari gugus karakter \"%s\" ke \"%s\" tak didukung"
@@ -714,27 +714,27 @@ msgstr ""
 msgid "A subtree is already exported for %s"
 msgstr "Subtree telah diekspor bagi %s"
 
-#: gio/gdbusmessage.c:1251
+#: gio/gdbusmessage.c:1248
 msgid "type is INVALID"
 msgstr "jenisnya INVALID"
 
-#: gio/gdbusmessage.c:1262
+#: gio/gdbusmessage.c:1259
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr "Pesan METHOD_CALL: ruas header PATH atau MEMBER hilang"
 
-#: gio/gdbusmessage.c:1273
+#: gio/gdbusmessage.c:1270
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "Pesan METHOD_RETURN: ruas header REPLY_SERIAL hilang"
 
-#: gio/gdbusmessage.c:1285
+#: gio/gdbusmessage.c:1282
 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:1298
+#: gio/gdbusmessage.c:1295
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr "Pesan SIGNAL: ruas header PATH, INTERFACE, atau MEMBER hilang"
 
-#: gio/gdbusmessage.c:1306
+#: gio/gdbusmessage.c:1303
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -742,7 +742,7 @@ msgstr ""
 "Pesan SIGNAL: ruas header PATH memakai nilai khusus /org/freedesktop/DBus/"
 "Local"
 
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1311
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -750,18 +750,18 @@ msgstr ""
 "Pesan SIGNAL: ruas header INTERFACE memakai nilai khusus org.freedesktop."
 "DBus.Local"
 
-#: gio/gdbusmessage.c:1362 gio/gdbusmessage.c:1422
+#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
 #, 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:1376
+#: gio/gdbusmessage.c:1373
 #, c-format
 msgid "Expected NUL byte after the string “%s” but found byte %d"
 msgstr "Mengharapkan byte NUL setelah string \"%s\" tapi menemui byte %d"
 
-#: gio/gdbusmessage.c:1395
+#: gio/gdbusmessage.c:1392
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -771,17 +771,17 @@ msgstr ""
 "%d (panjang string adalah %d). String UTF-8 yang valid sampai titik itu "
 "adalah \"%s\""
 
-#: gio/gdbusmessage.c:1598
+#: gio/gdbusmessage.c:1595
 #, 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:1620
+#: gio/gdbusmessage.c:1617
 #, 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:1667
+#: gio/gdbusmessage.c:1664
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -791,7 +791,7 @@ msgstr[0] ""
 "Menjumpai larik dengan panjang %u bita. Panjang maksimal adalah 2<<26 bita "
 "(64 MiB)."
 
-#: gio/gdbusmessage.c:1687
+#: gio/gdbusmessage.c:1684
 #, c-format
 msgid ""
 "Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -800,12 +800,12 @@ msgstr ""
 "Menemui larik bertipe \"a%c\", mengharapkan punya panjang kelipatan %u byte, "
 "tapi menemui panjang %u byte"
 
-#: gio/gdbusmessage.c:1857
+#: gio/gdbusmessage.c:1851
 #, 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:1881
+#: gio/gdbusmessage.c:1875
 #, c-format
 msgid ""
 "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -813,7 +813,7 @@ msgstr ""
 "Galat saat deserialisasi GVariant dengan type string \"%s\" dari format "
 "kabel D-Bus"
 
-#: gio/gdbusmessage.c:2066
+#: gio/gdbusmessage.c:2057
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -822,28 +822,24 @@ msgstr ""
 "Nilai ke-endian-an tak valid. Berharap 0x6c (\"l\") atau (0x42) \"B\" tapi "
 "menemui 0x%02x"
 
-#: gio/gdbusmessage.c:2079
+#: gio/gdbusmessage.c:2070
 #, 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:2132 gio/gdbusmessage.c:2722
-msgid "Signature header found but is not of type signature"
-msgstr "Header tanda tangan ditemukan tetapi bukan tipe tanda tangan"
-
-#: gio/gdbusmessage.c:2144
+#: gio/gdbusmessage.c:2126
 #, 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:2158
+#: gio/gdbusmessage.c:2140
 #, 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:2188
+#: gio/gdbusmessage.c:2170
 #, 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"
@@ -851,11 +847,11 @@ msgstr[0] ""
 "Tidak terdapat tajuk tanda tangan pada pesan, tetapi panjang badan pesan "
 "adalah %u bita"
 
-#: gio/gdbusmessage.c:2198
+#: gio/gdbusmessage.c:2180
 msgid "Cannot deserialize message: "
 msgstr "Tidak bisa men-deserialisasi pesan: "
 
-#: gio/gdbusmessage.c:2539
+#: gio/gdbusmessage.c:2521
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -863,23 +859,23 @@ msgstr ""
 "Kesalahan serialisasi GVariant dengan type string \"%s\" ke format kabel D-"
 "Bus"
 
-#: gio/gdbusmessage.c:2676
+#: gio/gdbusmessage.c:2658
 #, 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:2684
+#: gio/gdbusmessage.c:2666
 msgid "Cannot serialize message: "
 msgstr "Tidak bisa men-serialisasi pesan: "
 
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2710
 #, 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:2748
+#: gio/gdbusmessage.c:2720
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -888,17 +884,17 @@ msgstr ""
 "Tubuh pesan memiliki tanda tangan tipe \"%s\" tapi tanda tangan di ruas "
 "header adalah \"(%s)\""
 
-#: gio/gdbusmessage.c:2764
+#: gio/gdbusmessage.c:2736
 #, 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:3317
+#: gio/gdbusmessage.c:3289
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Galat balikan dengan tubuh bertipe \"%s\""
 
-#: gio/gdbusmessage.c:3325
+#: gio/gdbusmessage.c:3297
 msgid "Error return with empty body"
 msgstr "Galat balikan dengan body kosong"
 
@@ -1338,7 +1334,7 @@ msgstr "Operasi tak didukung"
 msgid "Containing mount does not exist"
 msgstr "Kait yang memuat tak ada"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2441
+#: gio/gfile.c:2622 gio/glocalfile.c:2399
 msgid "Can’t copy over directory"
 msgstr "Tak bisa menyalin direktori atas direktori"
 
@@ -1471,37 +1467,37 @@ msgstr "Sambungan proksi HTTP gagal: %i"
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "Server proksi HTTP menutup koneksi secara tak terduga."
 
-#: gio/gicon.c:298
+#: gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Cacah token yang salah (%d)"
 
-#: gio/gicon.c:318
+#: gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Tak ada tipe bagi nama kelas %s"
 
-#: gio/gicon.c:328
+#: gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "Tipe %s tak mengimplementasi antar muka GIcon"
 
-#: gio/gicon.c:339
+#: gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "Tipe %s tak dikelaskan"
 
-#: gio/gicon.c:353
+#: gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Nomor versi salah bentuk: %s"
 
-#: gio/gicon.c:367
+#: gio/gicon.c:359
 #, 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:469
+#: gio/gicon.c:461
 msgid "Can’t handle the supplied version of the icon encoding"
 msgstr "Tak bisa menangani versi pengkodean ikon yang diberikan"
 
@@ -2835,8 +2831,8 @@ msgstr "Galat saat mengubah nama berkas %s: %s"
 msgid "Can’t rename file, filename already exists"
 msgstr "Tidak bisa mengubah nama berkas, nama telah dipakai"
 
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2317 gio/glocalfile.c:2345
-#: gio/glocalfile.c:2502 gio/glocalfileoutputstream.c:551
+#: gio/glocalfile.c:1211 gio/glocalfile.c:2275 gio/glocalfile.c:2303
+#: gio/glocalfile.c:2460 gio/glocalfileoutputstream.c:551
 msgid "Invalid filename"
 msgstr "Nama berkas tak valid"
 
@@ -2850,97 +2846,97 @@ msgstr "Galat saat membuka berkas %s: %s"
 msgid "Error removing file %s: %s"
 msgstr "Galat saat menghapus berkas %s: %s"
 
-#: gio/glocalfile.c:1958
+#: gio/glocalfile.c:1916
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Galat saat memindah berkas %s ke tong sampah: %s"
 
-#: gio/glocalfile.c:1999
+#: gio/glocalfile.c:1957
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Tak bisa membuat direktori tong sampah %s: %s"
 
-#: gio/glocalfile.c:2020
+#: gio/glocalfile.c:1978
 #, c-format
 msgid "Unable to find toplevel directory to trash %s"
 msgstr ""
 "Tidak bisa menemukan direktori puncak %s yang akan dibuang ke tong sampah"
 
-#: gio/glocalfile.c:2029
+#: gio/glocalfile.c:1987
 #, c-format
 msgid "Trashing on system internal mounts is not supported"
 msgstr "Penyampahan pada kandar internal sistem tidak didukung"
 
-#: gio/glocalfile.c:2113 gio/glocalfile.c:2133
+#: gio/glocalfile.c:2071 gio/glocalfile.c:2091
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Tidak bisa menemukan atau membuat direktori tong sampah bagi %s"
 
-#: gio/glocalfile.c:2168
+#: gio/glocalfile.c:2126
 #, c-format
 msgid "Unable to create trashing info file for %s: %s"
 msgstr "Tidak bisa membuat berkas info pembuangan ke tong sampah bagi %s: %s"
 
-#: gio/glocalfile.c:2228
+#: gio/glocalfile.c:2186
 #, c-format
 msgid "Unable to trash file %s across filesystem boundaries"
 msgstr ""
 "Tidak bisa membuang berkas %s ke tong sampah menyeberang batas sistem berkas"
 
-#: gio/glocalfile.c:2232 gio/glocalfile.c:2288
+#: gio/glocalfile.c:2190 gio/glocalfile.c:2246
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Tak bisa membuang berkas %s ke tong sampah: %s"
 
-#: gio/glocalfile.c:2294
+#: gio/glocalfile.c:2252
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Tak bisa membuang berkas ke tong sampah %s"
 
-#: gio/glocalfile.c:2320
+#: gio/glocalfile.c:2278
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Galat saat membuat direktori %s: %s"
 
-#: gio/glocalfile.c:2349
+#: gio/glocalfile.c:2307
 #, c-format
 msgid "Filesystem does not support symbolic links"
 msgstr "Sistem berkas tak mendukung taut simbolik"
 
-#: gio/glocalfile.c:2352
+#: gio/glocalfile.c:2310
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Galat saat membuat taut simbolis %s: %s"
 
-#: gio/glocalfile.c:2358 glib/gfileutils.c:2138
+#: gio/glocalfile.c:2316 glib/gfileutils.c:2138
 msgid "Symbolic links not supported"
 msgstr "Taut simbolik tidak didukung"
 
-#: gio/glocalfile.c:2413 gio/glocalfile.c:2448 gio/glocalfile.c:2505
+#: gio/glocalfile.c:2371 gio/glocalfile.c:2406 gio/glocalfile.c:2463
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Galat saat memindah berkas %s: %s"
 
-#: gio/glocalfile.c:2436
+#: gio/glocalfile.c:2394
 msgid "Can’t move directory over directory"
 msgstr "Tidak bisa memindah direktori atas direktori"
 
-#: gio/glocalfile.c:2462 gio/glocalfileoutputstream.c:935
+#: gio/glocalfile.c:2420 gio/glocalfileoutputstream.c:935
 #: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
 #: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
 msgid "Backup file creation failed"
 msgstr "Pembuatan berkas cadangan gagal"
 
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2439
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Galat saat menghapus berkas tujuan: %s"
 
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2453
 msgid "Move between mounts not supported"
 msgstr "Perpindahan antar kait tak didukung"
 
-#: gio/glocalfile.c:2686
+#: gio/glocalfile.c:2644
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Tak bisa menentukan penggunaan diska dari %s: %s"
@@ -2971,70 +2967,70 @@ msgstr " (pengkodean tak valid)"
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Galat saat mengambil informasi bagi berkas \"%s\": %s"
 
-#: gio/glocalfileinfo.c:2059
+#: gio/glocalfileinfo.c:2053
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Galat saat mengambil informasi bagi descriptor berkas: %s"
 
-#: gio/glocalfileinfo.c:2104
+#: gio/glocalfileinfo.c:2098
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipe atribut tak valid (diharapkan uint32)"
 
-#: gio/glocalfileinfo.c:2122
+#: gio/glocalfileinfo.c:2116
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipe atribut tak valid (diharapkan uint64)"
 
-#: gio/glocalfileinfo.c:2141 gio/glocalfileinfo.c:2160
+#: gio/glocalfileinfo.c:2135 gio/glocalfileinfo.c:2154
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Jenis atribut tidak sah (diharapkan bita berjenis string)"
 
-#: gio/glocalfileinfo.c:2207
+#: gio/glocalfileinfo.c:2201
 msgid "Cannot set permissions on symlinks"
 msgstr "Tak bisa menata ijin pada taut simbolik"
 
-#: gio/glocalfileinfo.c:2223
+#: gio/glocalfileinfo.c:2217
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Galat saat menata ijin: %s"
 
-#: gio/glocalfileinfo.c:2274
+#: gio/glocalfileinfo.c:2268
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Galat saat menata pemilik: %s"
 
-#: gio/glocalfileinfo.c:2297
+#: gio/glocalfileinfo.c:2291
 msgid "symlink must be non-NULL"
 msgstr "symlink tak boleh NULL"
 
-#: gio/glocalfileinfo.c:2307 gio/glocalfileinfo.c:2326
-#: gio/glocalfileinfo.c:2337
+#: gio/glocalfileinfo.c:2301 gio/glocalfileinfo.c:2320
+#: gio/glocalfileinfo.c:2331
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Galat saat menata taut simbolis: %s"
 
-#: gio/glocalfileinfo.c:2316
+#: gio/glocalfileinfo.c:2310
 msgid "Error setting symlink: file is not a symlink"
 msgstr "Galat saat menata symlink: berkas bukan suatu link simbolik"
 
-#: gio/glocalfileinfo.c:2442
+#: gio/glocalfileinfo.c:2436
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Galat saat menata waktu modifikasi atau akses: %s"
 
-#: gio/glocalfileinfo.c:2465
+#: gio/glocalfileinfo.c:2459
 msgid "SELinux context must be non-NULL"
 msgstr "Konteks SELinux tak boleh NULL"
 
-#: gio/glocalfileinfo.c:2480
+#: gio/glocalfileinfo.c:2474
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Galat saat menata konteks SELinux: %s"
 
-#: gio/glocalfileinfo.c:2487
+#: gio/glocalfileinfo.c:2481
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux tak diaktifkan di sistem ini"
 
-#: gio/glocalfileinfo.c:2579
+#: gio/glocalfileinfo.c:2573
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Penataan atribut %s tak didukung"
@@ -4039,7 +4035,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
 msgid "Filesystem root"
 msgstr "Akar sistem berkas"
 
@@ -4196,8 +4192,8 @@ msgstr "Gagal mengembangkan baris eksekusi \"%s\" dengan URI \"%s\""
 msgid "Unrepresentable character in conversion input"
 msgstr "Karakter yang tidak dapat diterima dalam masukan konversi"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Rangkaian karakter sebagian pada akhir input"
 
@@ -4738,25 +4734,25 @@ msgstr "Templat \"%s\" tidak memuat XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Gagal membaca taut simbolik \"%s\": %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Tidak dapat membuka pengubah dari \"%s\" menjadi \"%s\": %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr ""
 "Tidak dapat melakukan pembacaan mentah dalam g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Ada data tersisa yang belum dikonversi pada penyangga read"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Kanal terputus pada karakter sebagian"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr "Tidak dapat melakukan pembacaan mentah dalam g_io_channel_read_to_end"
 
@@ -4768,7 +4764,7 @@ msgstr "Berkas kunci yang valid tak ditemukan pada direktori yang dicari"
 msgid "Not a regular file"
 msgstr "Bukan berkas biasa"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1270
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4776,51 +4772,51 @@ msgstr ""
 "Berkas kunci mengandung baris \"%s\" yang bukan suatu pasangan kunci-nilai, "
 "kelompok, atau komentar"
 
-#: glib/gkeyfile.c:1331
+#: glib/gkeyfile.c:1327
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Nama grup tak valid: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1349
 msgid "Key file does not start with a group"
 msgstr "Berkas kunci tidak mulai dengan sebuah kelompok"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1375
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Nama kunci tak valid: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1402
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Berkas kunci mengandung enkoding \"%s\" yang tidak didukung"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
+#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
+#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Berkas kunci tidak memiliki grup \"%s\""
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1773
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1935 glib/gkeyfile.c:2051
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
 #, 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:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4829,36 +4825,36 @@ msgstr ""
 "Berkas kunci mengandung kunci \"%s\" dalam grup \"%s\" yang nilainya tidak "
 "dapat diterjemahkan."
 
-#: glib/gkeyfile.c:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
 #, 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:4278
+#: glib/gkeyfile.c:4274
 msgid "Key file contains escape character at end of line"
 msgstr "Berkas kunci mengandung karakter escape pada akhir baris"
 
-#: glib/gkeyfile.c:4300
+#: glib/gkeyfile.c:4296
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Berkas kunci memuat urutan escape \"%s\" yang tidak valid"
 
-#: glib/gkeyfile.c:4444
+#: glib/gkeyfile.c:4440
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Nilai \"%s\" tidak bisa diterjemahkan sebagai sebuah bilangan."
 
-#: glib/gkeyfile.c:4458
+#: glib/gkeyfile.c:4454
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Nilai bilangan bulat \"%s\" di luar jangkauan"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4487
 #, 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:4530
+#: glib/gkeyfile.c:4526
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "Nilai \"%s\" tidak dapat diterjemahkan sebagai sebuah boolean."
@@ -4878,32 +4874,32 @@ msgstr "Gagal memetakan %s%s%s%s: mmap() gagal: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Gagal membuka berkas \"%s\": open() gagal: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Galat pada baris %d karakter ke-%d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "“%s” bukan suatu nama yang valid"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "“%s” bukan suatu nama yang valid: \"%c\""
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:610
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Galat pada baris ke-%d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:687
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4912,7 +4908,7 @@ msgstr ""
 "Gagal saat mengurai \"%-.*s\", yang seharusnya sebuah digit dalam referensi "
 "karakter (misalnya &#234;) — mungkin digitnya terlalu besar"
 
-#: glib/gmarkup.c:702
+#: glib/gmarkup.c:699
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -4922,25 +4918,25 @@ msgstr ""
 "menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai entitas "
 "— silakan gunakan &amp; saja"
 
-#: glib/gmarkup.c:728
+#: glib/gmarkup.c:725
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr ""
 "Referensi karakter \"%-.*s\" tidak mengenkode karakter yang diperbolehkan"
 
-#: glib/gmarkup.c:766
+#: glib/gmarkup.c:763
 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:774
+#: glib/gmarkup.c:771
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Nama entitas \"%-.*s\" tak dikenal"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:776
 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;"
@@ -4949,11 +4945,11 @@ msgstr ""
 "ampersand tanpa bermaksud menjadikannya sebagai entitas — silakan pakai "
 "&amp; saja"
 
-#: glib/gmarkup.c:1187
+#: glib/gmarkup.c:1182
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokumen harus dimulai dengan elemen (misalnya <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1222
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -4962,7 +4958,7 @@ msgstr ""
 "“%s” bukanlah karakter yang benar bila diikuti dengan karakter \"<\". Ini "
 "tidak boleh menjadi nama elemen"
 
-#: glib/gmarkup.c:1270
+#: glib/gmarkup.c:1264
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -4971,7 +4967,7 @@ msgstr ""
 "Ada karakter aneh “%s”, seharusnya ada \">\" untuk mengakhiri tag elemen "
 "kosong “%s”"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1345
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -4979,7 +4975,7 @@ msgstr ""
 "Ada karakter aneh “%s”. Seharusnya ada karakter '=' setelah nama atribut "
 "“%s” pada elemen “%s”"
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1386
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -4990,7 +4986,7 @@ msgstr ""
 "padaelemen “%s”, atau bisa juga ada atribut lain. Mungkin Anda menggunakan "
 "karakter yang tidak diperbolehkan pada nama atribut"
 
-#: glib/gmarkup.c:1439
+#: glib/gmarkup.c:1430
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -4999,7 +4995,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:1573
+#: glib/gmarkup.c:1563
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5008,7 +5004,7 @@ msgstr ""
 "“%s” bukan karakter yang benar bila diikuti dengan karakter \"</\". Karena "
 "itu “%s” tidak boleh dijadikan awal nama elemen"
 
-#: glib/gmarkup.c:1611
+#: glib/gmarkup.c:1599
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5017,26 +5013,26 @@ msgstr ""
 "“%s” bukan karakter yang benar bila diikuti elemen penutup “%s”. Karakter "
 "yang diperbolehkan adalah \">\""
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1610
 #, 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:1632
+#: glib/gmarkup.c:1619
 #, 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:1785
+#: glib/gmarkup.c:1772
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokumen kosong atau berisi whitespace saja"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1786
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr ""
 "Dokumen terpotong tidak sempurna sesaat setelah membuka kurung siku \"<\""
 
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5045,7 +5041,7 @@ msgstr ""
 "Dokumen terpotong tidak sempurna dengan elemen yang masih terbuka — “%s” "
 "adalah elemen terakhir yang dibuka"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1802
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5054,19 +5050,19 @@ msgstr ""
 "Dokumen terpotong tidak sempurna, seharusnya ada kurung siku penutup untuk "
 "mengakhiri tag <%s/>"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1808
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokumen terpotong tidak sempurna pada dalam nama elemen"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1814
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokumen terpotong tidak sempurna di dalam nama atribut"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1819
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr "Dokumen terpotong tidak sempurna di dalam tag pembukaan elemen."
 
-#: glib/gmarkup.c:1838
+#: glib/gmarkup.c:1825
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5074,23 +5070,23 @@ msgstr ""
 "Dokumen terpotong tidak sempurna setelah tanda sama dengan mengikuti nama "
 "atribut. Tidak ada nilai atribut yang diperoleh"
 
-#: glib/gmarkup.c:1845
+#: glib/gmarkup.c:1832
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokumen tidak sempura saat ada dalam nilai atribut"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1849
 #, 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:1866
+#: glib/gmarkup.c:1853
 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:1872
+#: glib/gmarkup.c:1859
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Dokumen terpotong tidak sempurna di dalam keterangan atau instruksi "
@@ -5550,83 +5546,83 @@ msgstr ""
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Teksnya kosong (atau hanya berisi whitespace)"
 
-#: glib/gspawn.c:311
+#: glib/gspawn.c:308
 #, c-format
 msgid "Failed to read data from child process (%s)"
 msgstr "Gagal saat membaca data dari proses child (%s)"
 
-#: glib/gspawn.c:459
+#: glib/gspawn.c:456
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr ""
 "Terjadi galat pada fungsi select() ketika membaca data dari anak proses (%s)"
 
-#: glib/gspawn.c:544
+#: glib/gspawn.c:541
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Terjadi galat pada fungsi waitpid() (%s)"
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: glib/gspawn.c:1049 glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Proses anak keluar dengan kode %ld"
 
-#: glib/gspawn.c:1060
+#: glib/gspawn.c:1057
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Proses anak dimatikan oleh sinyal %ld"
 
-#: glib/gspawn.c:1067
+#: glib/gspawn.c:1064
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Proses anak dihentikan oleh sinyal %ld"
 
-#: glib/gspawn.c:1074
+#: glib/gspawn.c:1071
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "Proses anak keluar secara tak normal"
 
-#: glib/gspawn.c:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: glib/gspawn.c:1366 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Gagal saat membaca dari pipe child (%s)"
 
-#: glib/gspawn.c:1617
+#: glib/gspawn.c:1614
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr "Gagal menelurkan proses anak \"%s\" (%s)"
 
-#: glib/gspawn.c:1656
+#: glib/gspawn.c:1653
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Gagal saat fork (%s)"
 
-#: glib/gspawn.c:1805 glib/gspawn-win32.c:370
+#: glib/gspawn.c:1802 glib/gspawn-win32.c:370
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Gagal pindah ke direktori \"%s\" (%s)"
 
-#: glib/gspawn.c:1815
+#: glib/gspawn.c:1812
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Gagal menjalankan proses anak \"%s\" (%s)"
 
-#: glib/gspawn.c:1825
+#: glib/gspawn.c:1822
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Gagal mengarahkan output atau input pada proses child (%s)"
 
-#: glib/gspawn.c:1834
+#: glib/gspawn.c:1831
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Gagal saat fork proses child (%s)"
 
-#: glib/gspawn.c:1842
+#: glib/gspawn.c:1839
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Galat tak dikenal ketika menjalankan proses anak \"%s\""
 
-#: glib/gspawn.c:1866
+#: glib/gspawn.c:1863
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr "Gagal saat membaca data yang dibutuhkan dai pipe pid child (%s)"
@@ -5698,20 +5694,20 @@ msgstr "Nomor \"%s\" berada di luar batas [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "\"%s\" bukan bilangan tak bertanda"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Gagal mengalokasikan memori"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Karakter di luar jangkauan UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Rangkaian input konversi salah"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Karakter di luar jangkauan UTF-16"
 
index 10702f3..0b84e45 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -18,8 +18,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-06 16:23+0000\n"
-"PO-Revision-Date: 2018-11-07 09:42+0100\n"
+"POT-Creation-Date: 2018-07-30 18:46+0000\n"
+"PO-Revision-Date: 2018-08-01 14:18+0200\n"
 "Last-Translator: Milo Casagrande <milo@milo.name>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
@@ -27,7 +27,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: Poedit 2.1.1\n"
+"X-Generator: Poedit 2.0.6\n"
 
 #: gio/gapplication.c:496
 msgid "GApplication options"
@@ -46,11 +46,11 @@ msgid "Override the application’s ID"
 msgstr "Soprascrive l'ID dell'applicazione"
 
 #: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
+#: gio/gresource-tool.c:488 gio/gsettings-tool.c:569
 msgid "Print help"
 msgstr "Stampa l'aiuto"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:496 gio/gresource-tool.c:564
+#: gio/gapplication-tool.c:47 gio/gresource-tool.c:489 gio/gresource-tool.c:557
 msgid "[COMMAND]"
 msgstr "[COMANDO]"
 
@@ -122,7 +122,7 @@ msgstr "Identificatore dell'applicazione in formato D-Bus (org.example.viewer)"
 
 #: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:737
 #: gio/glib-compile-resources.c:743 gio/glib-compile-resources.c:770
-#: gio/gresource-tool.c:502 gio/gresource-tool.c:568
+#: gio/gresource-tool.c:495 gio/gresource-tool.c:561
 msgid "FILE"
 msgstr "FILE"
 
@@ -147,7 +147,7 @@ msgstr "PARAMETERO"
 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:96 gio/gresource-tool.c:533 gio/gsettings-tool.c:661
+#: gio/gapplication-tool.c:96 gio/gresource-tool.c:526 gio/gsettings-tool.c:661
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -160,7 +160,7 @@ msgstr ""
 msgid "Usage:\n"
 msgstr "Uso:\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:558
+#: gio/gapplication-tool.c:114 gio/gresource-tool.c:551
 #: gio/gsettings-tool.c:696
 msgid "Arguments:\n"
 msgstr "Argomenti:\n"
@@ -306,13 +306,13 @@ msgstr "Spazio non sufficiente nella destinazione"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 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:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Errore durante la conversione: %s"
@@ -321,7 +321,7 @@ msgstr "Errore durante la conversione: %s"
 msgid "Cancellable initialization not supported"
 msgstr "Inizializzazione annullabile non supportata"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, 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"
@@ -739,27 +739,27 @@ msgid "A subtree is already exported for %s"
 msgstr "Un sottoalbero per %s è già esportato"
 
 # suppongo INVALID sia parola chiave
-#: gio/gdbusmessage.c:1251
+#: gio/gdbusmessage.c:1248
 msgid "type is INVALID"
 msgstr "il tipo è INVALID"
 
-#: gio/gdbusmessage.c:1262
+#: gio/gdbusmessage.c:1259
 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:1273
+#: gio/gdbusmessage.c:1270
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "messaggio METHOD_RETURN: manca il campo header REPLY_SERIAL"
 
-#: gio/gdbusmessage.c:1285
+#: gio/gdbusmessage.c:1282
 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:1298
+#: gio/gdbusmessage.c:1295
 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:1306
+#: gio/gdbusmessage.c:1303
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -767,7 +767,7 @@ msgstr ""
 "messaggio SIGNAL: il campo header PATH sta usando il valore riservato /org/"
 "freedestkop/DBus/Local"
 
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1311
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -775,7 +775,7 @@ msgstr ""
 "messaggio SIGNAL: il campo header INTERFACE sta usando il valore riservato "
 "org.freedestkop.DBus.Local"
 
-#: gio/gdbusmessage.c:1362 gio/gdbusmessage.c:1422
+#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
 #, 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 +783,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:1376
+#: gio/gdbusmessage.c:1373
 #, 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:1395
+#: gio/gdbusmessage.c:1392
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -798,17 +798,17 @@ msgstr ""
 "(la lunghezza della stringa è %d). La stringa UTF-8 valida fino a quel punto "
 "era «%s»"
 
-#: gio/gdbusmessage.c:1598
+#: gio/gdbusmessage.c:1595
 #, 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:1620
+#: gio/gdbusmessage.c:1617
 #, 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:1667
+#: gio/gdbusmessage.c:1664
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -821,7 +821,7 @@ msgstr[1] ""
 "Incontrato un array lungo %u byte. La lunghezza massima è 2<<26 byte (64 "
 "MiB)."
 
-#: gio/gdbusmessage.c:1687
+#: gio/gdbusmessage.c:1684
 #, c-format
 msgid ""
 "Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -832,13 +832,13 @@ msgstr ""
 
 # VARIANT è uno dei container type di D-Bus
 # anche signature sono cose specifiche del protocollo
-#: gio/gdbusmessage.c:1857
+#: gio/gdbusmessage.c:1851
 #, 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:1881
+#: gio/gdbusmessage.c:1875
 #, c-format
 msgid ""
 "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -846,7 +846,7 @@ msgstr ""
 "Errore nel deserializzare il GVariant con la stringa di tipo «%s» dal "
 "formato wire D-Bus"
 
-#: gio/gdbusmessage.c:2066
+#: gio/gdbusmessage.c:2057
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -855,26 +855,22 @@ msgstr ""
 "Valore endianness non valido. Atteso 0x6c («l») o 0x42 («B»), trovato invece "
 "il valore 0x%02x"
 
-#: gio/gdbusmessage.c:2079
+#: gio/gdbusmessage.c:2070
 #, 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:2132 gio/gdbusmessage.c:2722
-msgid "Signature header found but is not of type signature"
-msgstr "Trovato header firma, ma non è di tipo firma"
-
-#: gio/gdbusmessage.c:2144
+#: gio/gdbusmessage.c:2126
 #, 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"
+msgstr "Trovata header firma con firma «%s», ma il corpo del messaggio è vuoto"
 
-#: gio/gdbusmessage.c:2158
+#: gio/gdbusmessage.c:2140
 #, 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:2188
+#: gio/gdbusmessage.c:2170
 #, 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"
@@ -883,11 +879,11 @@ msgstr[0] ""
 msgstr[1] ""
 "Nessun signature header nel messaggio, ma il corpo del messaggio è di %u byte"
 
-#: gio/gdbusmessage.c:2198
+#: gio/gdbusmessage.c:2180
 msgid "Cannot deserialize message: "
 msgstr "Impossibile deserializzare il messaggio: "
 
-#: gio/gdbusmessage.c:2539
+#: gio/gdbusmessage.c:2521
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -895,7 +891,7 @@ msgstr ""
 "Errore nel serializzare il GVariant con la stringa di tipo «%s» al formato "
 "wire D-Bus"
 
-#: gio/gdbusmessage.c:2676
+#: gio/gdbusmessage.c:2658
 #, c-format
 msgid ""
 "Number of file descriptors in message (%d) differs from header field (%d)"
@@ -903,17 +899,17 @@ msgstr ""
 "Il numero di descrittori file nel messaggio (%d) è diverso da quello del "
 "campo header (%d)"
 
-#: gio/gdbusmessage.c:2684
+#: gio/gdbusmessage.c:2666
 msgid "Cannot serialize message: "
 msgstr "Impossibile serializzare il messaggio: "
 
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2710
 #, 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:2748
+#: gio/gdbusmessage.c:2720
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -922,20 +918,20 @@ msgstr ""
 "Il corpo del messaggio presenta la firma «%s», ma la firma nel campo header "
 "è «%s»"
 
-#: gio/gdbusmessage.c:2764
+#: gio/gdbusmessage.c:2736
 #, 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:3317
+#: gio/gdbusmessage.c:3289
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Errore di ritorno con corpo di tipo «%s»"
 
 # come sopra
-#: gio/gdbusmessage.c:3325
+#: gio/gdbusmessage.c:3297
 msgid "Error return with empty body"
 msgstr "Errore di ritorno con corpo vuoto"
 
@@ -1385,7 +1381,7 @@ msgstr "Operazione non supportata"
 msgid "Containing mount does not exist"
 msgstr "L'oggetto mount contenuto non esiste"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2441
+#: gio/gfile.c:2622 gio/glocalfile.c:2391
 msgid "Can’t copy over directory"
 msgstr "Impossibile copiare sopra la directory"
 
@@ -1520,38 +1516,38 @@ msgstr "Connessione proxy HTTP non riuscita: %i"
 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:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Numero di token errato (%d)"
 
-#: gio/gicon.c:318
+#: gio/gicon.c:310
 #, 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:320
 #, 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:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "Il tipo %s non presenta una classe"
 
-#: gio/gicon.c:353
+#: gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Numero di versione malformato: %s"
 
-#: gio/gicon.c:367
+#: gio/gicon.c:359
 #, 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:461
 msgid "Can’t handle the supplied version of the icon encoding"
 msgstr "Impossibile gestire la versione fornita della codifica di icona"
 
@@ -1701,7 +1697,7 @@ msgstr "Errore nello scrivere sullo stdout"
 #: 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:113
+#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1235 gio/gio-tool-open.c:113
 #: 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 "LOCATION"
@@ -1722,7 +1718,7 @@ msgstr ""
 "smb://server/risorsa/file.txt come posizione."
 
 #: 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:139
+#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1285 gio/gio-tool-open.c:139
 #: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
 msgid "No locations given"
 msgstr "Nessuna posizione fornita"
@@ -2018,93 +2014,95 @@ msgstr "Resta in ascolto di eventi mount"
 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:62
 msgid "Mount as mountable"
 msgstr "Monta come oggetto montabile"
 
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:63
 msgid "Mount volume with device file"
 msgstr "Monta il volume con file device"
 
-#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:63 gio/gio-tool-mount.c:66
 msgid "DEVICE"
 msgstr "DEVICE"
 
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:64
 msgid "Unmount"
 msgstr "Smonta"
 
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:65
 msgid "Eject"
 msgstr "Espelli"
 
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:66
 msgid "Stop drive with device file"
 msgstr "Ferma l'unità con file device"
 
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:67
 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:67
 msgid "SCHEME"
 msgstr "SCHEMA"
 
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:68
 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:69
 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:71
 msgid "List"
 msgstr "Elenca"
 
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:72
 msgid "Monitor events"
 msgstr "Monitoraggio degli eventi"
 
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:73
 msgid "Show extra information"
 msgstr "Mostra informazioni aggiuntive"
 
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:74
 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:74
+#| msgctxt "GDateTime"
+#| msgid "PM"
 msgid "PIM"
 msgstr "PIM"
 
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:75
 msgid "Mount a TCRYPT hidden volume"
 msgstr "Monta un volume nascosto TCRYPT"
 
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:76
 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:264 gio/gio-tool-mount.c:296
 msgid "Anonymous access denied"
 msgstr "Accesso anonimo non consentito"
 
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:524
 msgid "No drive for device file"
 msgstr "Nessuna unità per il file device"
 
-#: gio/gio-tool-mount.c:975
+#: gio/gio-tool-mount.c:989
 #, c-format
 msgid "Mounted %s at %s\n"
 msgstr "Montato %s su %s\n"
 
-#: gio/gio-tool-mount.c:1027
+#: gio/gio-tool-mount.c:1044
 msgid "No volume for device file"
 msgstr "Nessun volume per il file device"
 
-#: gio/gio-tool-mount.c:1216
+#: gio/gio-tool-mount.c:1239
 msgid "Mount or unmount the locations."
 msgstr "Monta o smonta le posizioni"
 
@@ -2326,7 +2324,7 @@ msgstr "Errore nel comprimere il file %s"
 msgid "text may not appear inside <%s>"
 msgstr "il testo non può apparire all'interno di <%s>"
 
-#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2139
+#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2138
 msgid "Show program version and exit"
 msgstr "Mostra la versione del programma ed esce"
 
@@ -2342,8 +2340,8 @@ msgstr ""
 "Le directory da cui caricare i file indicati in FILE (predefinito: directory "
 "corrente)"
 
-#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2140
-#: gio/glib-compile-schemas.c:2169
+#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2139
+#: gio/glib-compile-schemas.c:2168
 msgid "DIRECTORY"
 msgstr "DIRECTORY"
 
@@ -2821,23 +2819,23 @@ msgstr ""
 "non è nell'elenco delle scelte valide"
 
 # FIXME: le altre sono maiuscole
-#: gio/glib-compile-schemas.c:2140
+#: gio/glib-compile-schemas.c:2139
 msgid "where to store the gschemas.compiled file"
 msgstr "Dove memorizzare il file gschemas.compiled"
 
-#: gio/glib-compile-schemas.c:2141
+#: gio/glib-compile-schemas.c:2140
 msgid "Abort on any errors in schemas"
 msgstr "Interrompe l'esecuzione per ogni errore negli schemas"
 
-#: gio/glib-compile-schemas.c:2142
+#: gio/glib-compile-schemas.c:2141
 msgid "Do not write the gschema.compiled file"
 msgstr "Non scrive il file gschema.compiled"
 
-#: gio/glib-compile-schemas.c:2143
+#: gio/glib-compile-schemas.c:2142
 msgid "Do not enforce key name restrictions"
 msgstr "Non forza le limitazioni sui nomi di chiave"
 
-#: gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-schemas.c:2171
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
@@ -2847,23 +2845,23 @@ msgstr ""
 "I file schema devo avere estensione .gschema.xml,\n"
 "e il file cache è chiamato gschemas.compiled."
 
-#: gio/glib-compile-schemas.c:2193
+#: gio/glib-compile-schemas.c:2192
 #, c-format
 msgid "You should give exactly one directory name\n"
 msgstr "È necessario indicare esattamente un nome di directory\n"
 
-#: gio/glib-compile-schemas.c:2235
+#: gio/glib-compile-schemas.c:2234
 #, c-format
 msgid "No schema files found: "
 msgstr "Nessun file schema trovato: "
 
-#: gio/glib-compile-schemas.c:2238
+#: gio/glib-compile-schemas.c:2237
 #, c-format
 msgid "doing nothing.\n"
 msgstr "nessuna azione.\n"
 
 # visto che se lo rimuovo esisto, proviamo con preesistente
-#: gio/glib-compile-schemas.c:2241
+#: gio/glib-compile-schemas.c:2240
 #, c-format
 msgid "removed existing output file.\n"
 msgstr "rimosso il file di output preesistente.\n"
@@ -2873,7 +2871,7 @@ msgstr "rimosso il file di output preesistente.\n"
 msgid "Invalid filename %s"
 msgstr "Nome di file %s non valido"
 
-#: gio/glocalfile.c:1011
+#: gio/glocalfile.c:1006
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr "Errore nell'ottenere informazioni sul file system per %s: %s"
@@ -2882,61 +2880,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:1150
+#: gio/glocalfile.c:1145
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr "L'oggetto mount contenuto per il file %s non esiste"
 
-#: gio/glocalfile.c:1173
+#: gio/glocalfile.c:1168
 msgid "Can’t rename root directory"
 msgstr "Impossibile rinominare la directory root"
 
-#: gio/glocalfile.c:1191 gio/glocalfile.c:1214
+#: gio/glocalfile.c:1186 gio/glocalfile.c:1209
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr "Errore nel rinominare il file %s: %s"
 
-#: gio/glocalfile.c:1198
+#: gio/glocalfile.c:1193
 msgid "Can’t rename file, filename already exists"
 msgstr "Impossibile rinominare il file, il nome di file esiste già"
 
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2317 gio/glocalfile.c:2345
-#: gio/glocalfile.c:2502 gio/glocalfileoutputstream.c:551
+#: gio/glocalfile.c:1206 gio/glocalfile.c:2267 gio/glocalfile.c:2295
+#: gio/glocalfile.c:2452 gio/glocalfileoutputstream.c:551
 msgid "Invalid filename"
 msgstr "Nome di file non valido"
 
-#: gio/glocalfile.c:1379 gio/glocalfile.c:1394
+#: gio/glocalfile.c:1374 gio/glocalfile.c:1389
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Errore nell'aprire il file %s: %s"
 
-#: gio/glocalfile.c:1519
+#: gio/glocalfile.c:1514
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Errore nel rimuovere il file %s: %s"
 
-#: gio/glocalfile.c:1958
+#: gio/glocalfile.c:1925
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Errore nel cestinare il file %s: %s"
 
-#: gio/glocalfile.c:1999
+#: gio/glocalfile.c:1948
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Impossibile creare la directory cestino %s: %s"
 
-#: gio/glocalfile.c:2020
+#: gio/glocalfile.c:1970
 #, 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:2029
+#: gio/glocalfile.c:1979
 #, 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:2113 gio/glocalfile.c:2133
+#: gio/glocalfile.c:2063 gio/glocalfile.c:2083
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Impossibile trovare o creare la directory cestino per %s"
@@ -2944,72 +2942,72 @@ msgstr "Impossibile trovare o creare la directory cestino per %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:2168
+#: gio/glocalfile.c:2118
 #, 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:2228
+#: gio/glocalfile.c:2178
 #, 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:2232 gio/glocalfile.c:2288
+#: gio/glocalfile.c:2182 gio/glocalfile.c:2238
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Impossibile cestinare il file %s: %s"
 
-#: gio/glocalfile.c:2294
+#: gio/glocalfile.c:2244
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Impossibile cestinare il file %s"
 
-#: gio/glocalfile.c:2320
+#: gio/glocalfile.c:2270
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Errore nel creare la directory %s: %s"
 
-#: gio/glocalfile.c:2349
+#: gio/glocalfile.c:2299
 #, 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:2352
+#: gio/glocalfile.c:2302
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Errore nel creare il collegamento simbolico %s: %s"
 
-#: gio/glocalfile.c:2358 glib/gfileutils.c:2138
+#: gio/glocalfile.c:2308 glib/gfileutils.c:2138
 msgid "Symbolic links not supported"
 msgstr "Collegamenti simbolici non supportati"
 
-#: gio/glocalfile.c:2413 gio/glocalfile.c:2448 gio/glocalfile.c:2505
+#: gio/glocalfile.c:2363 gio/glocalfile.c:2398 gio/glocalfile.c:2455
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Errore nello spostare il file %s: %s"
 
 # ma che senso ha???
-#: gio/glocalfile.c:2436
+#: gio/glocalfile.c:2386
 msgid "Can’t move directory over directory"
 msgstr "Impossibile spostare la directory sopra la directory"
 
-#: gio/glocalfile.c:2462 gio/glocalfileoutputstream.c:935
+#: gio/glocalfile.c:2412 gio/glocalfileoutputstream.c:935
 #: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
 #: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
 msgid "Backup file creation failed"
 msgstr "Creazione del file backup non riuscita"
 
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2431
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Errore nel rimuovere il file destinazione: %s"
 
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2445
 msgid "Move between mounts not supported"
 msgstr "Spostamento tra oggetti mount non supportato"
 
-#: gio/glocalfile.c:2686
+#: gio/glocalfile.c:2636
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Impossibile determinare l'utilizzo del disco di %s: %s"
@@ -3031,84 +3029,84 @@ msgstr "Nome di attributo esteso non valido"
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Errore nell'impostare l'attributo esteso «%s»: %s"
 
-#: gio/glocalfileinfo.c:1625
+#: gio/glocalfileinfo.c:1619
 msgid " (invalid encoding)"
 msgstr " (codifica non valida)"
 
-#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
+#: gio/glocalfileinfo.c:1783 gio/glocalfileoutputstream.c:813
 #, c-format
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Errore nel recuperare informazioni per il file «%s»: %s"
 
-#: gio/glocalfileinfo.c:2059
+#: gio/glocalfileinfo.c:2045
 #, 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:2104
+#: gio/glocalfileinfo.c:2090
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipo di attributo non valido (atteso unit32)"
 
-#: gio/glocalfileinfo.c:2122
+#: gio/glocalfileinfo.c:2108
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipo di attributo non valido (atteso uint64)"
 
-#: gio/glocalfileinfo.c:2141 gio/glocalfileinfo.c:2160
+#: gio/glocalfileinfo.c:2127 gio/glocalfileinfo.c:2146
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Tipo di attributo non valido (attesa stringa di byte)"
 
-#: gio/glocalfileinfo.c:2207
+#: gio/glocalfileinfo.c:2191
 msgid "Cannot set permissions on symlinks"
 msgstr "Impossibile impostare i permessi sui collegamenti simbolici"
 
-#: gio/glocalfileinfo.c:2223
+#: gio/glocalfileinfo.c:2207
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Errore nell'impostare i permessi: %s"
 
-#: gio/glocalfileinfo.c:2274
+#: gio/glocalfileinfo.c:2258
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Errore nell'impostare il proprietario: %s"
 
-#: gio/glocalfileinfo.c:2297
+#: gio/glocalfileinfo.c:2281
 msgid "symlink must be non-NULL"
 msgstr "il collegamento simbolico deve essere non-NULL"
 
-#: gio/glocalfileinfo.c:2307 gio/glocalfileinfo.c:2326
-#: gio/glocalfileinfo.c:2337
+#: gio/glocalfileinfo.c:2291 gio/glocalfileinfo.c:2310
+#: gio/glocalfileinfo.c:2321
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Errore nell'impostare il collegamento simbolico: %s"
 
-#: gio/glocalfileinfo.c:2316
+#: gio/glocalfileinfo.c:2300
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Errore nell'impostare il collegamento simbolico: il file non è un "
 "collegamento"
 
-#: gio/glocalfileinfo.c:2442
+#: gio/glocalfileinfo.c:2426
 #, 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:2465
+#: gio/glocalfileinfo.c:2449
 msgid "SELinux context must be non-NULL"
 msgstr "il contesto SELinux deve essere non-NULL"
 
-#: gio/glocalfileinfo.c:2480
+#: gio/glocalfileinfo.c:2464
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Errore nell'impostare il contesto SELinux: %s"
 
-#: gio/glocalfileinfo.c:2487
+#: gio/glocalfileinfo.c:2471
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux non è abilitato su questo sistema"
 
 # %s è l'attributo
-#: gio/glocalfileinfo.c:2579
+#: gio/glocalfileinfo.c:2563
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Impostazione dell'attributo %s non supportata"
@@ -3324,15 +3322,15 @@ msgstr "Errore nel risolvere «%s»: %s"
 msgid "Invalid domain"
 msgstr "Dominio non valido"
 
-#: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
-#: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
-#: gio/gresource.c:1281 gio/gresourcefile.c:476 gio/gresourcefile.c:599
+#: gio/gresource.c:622 gio/gresource.c:881 gio/gresource.c:920
+#: gio/gresource.c:1044 gio/gresource.c:1116 gio/gresource.c:1189
+#: gio/gresource.c:1259 gio/gresourcefile.c:476 gio/gresourcefile.c:599
 #: gio/gresourcefile.c:736
 #, c-format
 msgid "The resource at “%s” does not exist"
 msgstr "La risorsa presso «%s» non esiste"
 
-#: gio/gresource.c:809
+#: gio/gresource.c:787
 #, c-format
 msgid "The resource at “%s” failed to decompress"
 msgstr "Decompressione della risorsa presso «%s» non riuscita"
@@ -3346,11 +3344,11 @@ msgstr "La risorsa presso «%s» non è una directory"
 msgid "Input stream doesn’t implement seek"
 msgstr "Lo stream di input non implementa il posizionamento"
 
-#: gio/gresource-tool.c:501
+#: gio/gresource-tool.c:494
 msgid "List sections containing resources in an elf FILE"
 msgstr "Elenca le sezioni che contengono risorse in un FILE elf"
 
-#: gio/gresource-tool.c:507
+#: gio/gresource-tool.c:500
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3360,15 +3358,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:510 gio/gresource-tool.c:520
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:513
 msgid "FILE [PATH]"
 msgstr "FILE [PERCORSO]"
 
-#: gio/gresource-tool.c:511 gio/gresource-tool.c:521 gio/gresource-tool.c:528
+#: gio/gresource-tool.c:504 gio/gresource-tool.c:514 gio/gresource-tool.c:521
 msgid "SECTION"
 msgstr "SEZIONE"
 
-#: gio/gresource-tool.c:516
+#: gio/gresource-tool.c:509
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3380,15 +3378,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:526
+#: gio/gresource-tool.c:519
 msgid "Extract a resource file to stdout"
 msgstr "Estrare un file risorsa su stdout"
 
-#: gio/gresource-tool.c:527
+#: gio/gresource-tool.c:520
 msgid "FILE PATH"
 msgstr "FILE PERCORSO"
 
-#: gio/gresource-tool.c:541
+#: gio/gresource-tool.c:534
 msgid ""
 "Usage:\n"
 "  gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3416,7 +3414,7 @@ msgstr ""
 "Usare «gresource help COMANDO» per ottenere un aiuto dettagliato.\n"
 "\n"
 
-#: gio/gresource-tool.c:555
+#: gio/gresource-tool.c:548
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3431,21 +3429,21 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gresource-tool.c:562
+#: gio/gresource-tool.c:555
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr "  SEZIONE   Un nome sezione elf (opzionale)\n"
 
-#: gio/gresource-tool.c:566 gio/gsettings-tool.c:703
+#: gio/gresource-tool.c:559 gio/gsettings-tool.c:703
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr ""
 "  COMANDO   Il comando (opzionale) da spiegare\n"
 "\n"
 
-#: gio/gresource-tool.c:572
+#: gio/gresource-tool.c:565
 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:575
+#: gio/gresource-tool.c:568
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
@@ -3453,19 +3451,19 @@ msgstr ""
 "  FILE      Un file elf (un binario o una libreria condivisa)\n"
 "            o un file risorsa compilato\n"
 
-#: gio/gresource-tool.c:579
+#: gio/gresource-tool.c:572
 msgid "[PATH]"
 msgstr "[PERCORSO]"
 
-#: gio/gresource-tool.c:581
+#: gio/gresource-tool.c:574
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr "  PERCORSO  Un (opzionale) percorso risorsa (può essere parziale)\n"
 
-#: gio/gresource-tool.c:582
+#: gio/gresource-tool.c:575
 msgid "PATH"
 msgstr "PERCORSO"
 
-#: gio/gresource-tool.c:584
+#: gio/gresource-tool.c:577
 msgid "  PATH      A resource path\n"
 msgstr "  PERCORSO  Un percorso risorsa\n"
 
@@ -3993,7 +3991,7 @@ msgstr "Il proxy SOCKSv5 non supporta il tipo di indirizzo fornito."
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Errore sconosciuto del proxy SOCKSv5."
 
-#: gio/gthemedicon.c:595
+#: gio/gthemedicon.c:518
 #, c-format
 msgid "Can’t handle version %d of GThemedIcon encoding"
 msgstr "Impossibile gestire la versione %d della codifica GThemedIcon"
@@ -4131,7 +4129,7 @@ msgstr "Errore nel leggere dal descrittore di file: %s"
 msgid "Error closing file descriptor: %s"
 msgstr "Errore nel chiudere il descrittore di file: %s"
 
-#: gio/gunixmounts.c:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
 msgid "Filesystem root"
 msgstr "File system radice"
 
@@ -4220,51 +4218,51 @@ msgid "Unexpected attribute “%s” for element “%s”"
 msgstr "Attributo «%s» inatteso per l'elemento «%s»"
 
 #: glib/gbookmarkfile.c:765 glib/gbookmarkfile.c:836 glib/gbookmarkfile.c:846
-#: glib/gbookmarkfile.c:955
+#: glib/gbookmarkfile.c:953
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr "Attributo «%s» dell'elemento «%s» non trovato"
 
-#: glib/gbookmarkfile.c:1164 glib/gbookmarkfile.c:1229
-#: glib/gbookmarkfile.c:1293 glib/gbookmarkfile.c:1303
+#: glib/gbookmarkfile.c:1123 glib/gbookmarkfile.c:1188
+#: glib/gbookmarkfile.c:1252 glib/gbookmarkfile.c:1262
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr "Tag «%s» inatteso, atteso il tag «%s»"
 
-#: glib/gbookmarkfile.c:1189 glib/gbookmarkfile.c:1203
-#: glib/gbookmarkfile.c:1271 glib/gbookmarkfile.c:1317
+#: glib/gbookmarkfile.c:1148 glib/gbookmarkfile.c:1162
+#: glib/gbookmarkfile.c:1230
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr "Tag «%s» inatteso all'interno di «%s»"
 
-#: glib/gbookmarkfile.c:1813
+#: glib/gbookmarkfile.c:1757
 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:2014
+#: glib/gbookmarkfile.c:1958
 #, 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:2060 glib/gbookmarkfile.c:2218
-#: glib/gbookmarkfile.c:2303 glib/gbookmarkfile.c:2383
-#: glib/gbookmarkfile.c:2468 glib/gbookmarkfile.c:2551
-#: glib/gbookmarkfile.c:2629 glib/gbookmarkfile.c:2708
-#: glib/gbookmarkfile.c:2750 glib/gbookmarkfile.c:2847
-#: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
-#: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
+#: glib/gbookmarkfile.c:2004 glib/gbookmarkfile.c:2162
+#: glib/gbookmarkfile.c:2247 glib/gbookmarkfile.c:2327
+#: glib/gbookmarkfile.c:2412 glib/gbookmarkfile.c:2495
+#: glib/gbookmarkfile.c:2573 glib/gbookmarkfile.c:2652
+#: glib/gbookmarkfile.c:2694 glib/gbookmarkfile.c:2791
+#: glib/gbookmarkfile.c:2912 glib/gbookmarkfile.c:3102
+#: glib/gbookmarkfile.c:3178 glib/gbookmarkfile.c:3346
+#: glib/gbookmarkfile.c:3435 glib/gbookmarkfile.c:3524
+#: glib/gbookmarkfile.c:3640
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "Non è stato trovato alcun segnalibro per l'URI «%s»"
 
-#: glib/gbookmarkfile.c:2392
+#: glib/gbookmarkfile.c:2336
 #, 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»"
@@ -4272,22 +4270,22 @@ 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:2477
+#: glib/gbookmarkfile.c:2421
 #, 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:2856
+#: glib/gbookmarkfile.c:2800
 #, 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:3255 glib/gbookmarkfile.c:3412
+#: glib/gbookmarkfile.c:3199 glib/gbookmarkfile.c:3356
 #, 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:3435
+#: glib/gbookmarkfile.c:3379
 #, c-format
 msgid "Failed to expand exec line “%s” with URI “%s”"
 msgstr "Espansione della riga exec «%s» con l'URI «%s» non riuscita"
@@ -4296,8 +4294,8 @@ msgstr "Espansione della riga exec «%s» con l'URI «%s» non riuscita"
 msgid "Unrepresentable character in conversion input"
 msgstr "Carattere non rappresentabile nell'ingresso per la conversione"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Sequenza di caratteri parziale al termine dei dati in ingresso"
 
@@ -4851,24 +4849,24 @@ msgstr "Il modello «%s» non contiene XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Lettura del collegamento simbolico «%s» non riuscita: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, 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:1735
+#: glib/giochannel.c:1734
 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:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Sono rimasti dei dati non convertiti nel buffer di lettura"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Il canale termina in un carattere parziale"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 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"
 
@@ -4883,7 +4881,7 @@ msgstr "Impossibile trovare un file chiavi valido nelle directory di ricerca"
 msgid "Not a regular file"
 msgstr "Non è un file normale"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1270
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4891,44 +4889,44 @@ msgstr ""
 "Il file chiavi contiene la riga «%s» che non è una coppia chiave/valore, un "
 "gruppo o un commento valido"
 
-#: glib/gkeyfile.c:1331
+#: glib/gkeyfile.c:1327
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Nome gruppo non valido: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1349
 msgid "Key file does not start with a group"
 msgstr "Il file chiavi non inizia con un gruppo"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1375
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Nome chiave non valido: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1402
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Il file chiavi contiene la codifica non supportata «%s»"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
+#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
+#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Il file chiavi non presenta il gruppo «%s»"
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1773
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1935 glib/gkeyfile.c:2051
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
 #, c-format
 msgid ""
 "Key file contains key “%s” which has a value that cannot be interpreted."
@@ -4936,7 +4934,7 @@ msgstr ""
 "Il file chiavi contiene la chiave «%s» che presenta un valore che non può "
 "essere interpretato."
 
-#: glib/gkeyfile.c:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4945,37 +4943,37 @@ msgstr ""
 "Il file chiavi contiene la chiave «%s» nel gruppo «%s» che presenta un "
 "valore che non può essere interpretato."
 
-#: glib/gkeyfile.c:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
 #, 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:4278
+#: glib/gkeyfile.c:4274
 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:4300
+#: glib/gkeyfile.c:4296
 #, 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:4444
+#: glib/gkeyfile.c:4440
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Impossibile interpretare il valore «%s» come un numero."
 
-#: glib/gkeyfile.c:4458
+#: glib/gkeyfile.c:4454
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Il valore intero «%s» è fuori dall'intervallo"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4487
 #, 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:4530
+#: glib/gkeyfile.c:4526
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "Impossibile interpretare il valore «%s» come un booleano."
@@ -4997,32 +4995,32 @@ msgstr "Mappatura del file «%s%s%s%s» non riuscita: mmap() non riuscita: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Apertura del file «%s» non riuscita: open() non riuscita: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Errore alla riga %d carattere %d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, c-format
 msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
 msgstr "Testo in codifica UTF-8 non valido nel nome — «%s» non valido"
 
-#: glib/gmarkup.c:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "«%s» non è un nome valido"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "«%s» non è un nome valido: «%c»"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:610
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Errore alla riga %d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:687
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -5032,7 +5030,7 @@ msgstr ""
 "di un riferimento a carattere (es. &#234;) — probabilmente il numero è "
 "troppo grande"
 
-#: glib/gmarkup.c:702
+#: glib/gmarkup.c:699
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -5042,23 +5040,23 @@ msgstr ""
 "si è utilizzato un carattere \"e commerciale\" senza l'intenzione di "
 "iniziare una nuova entità — usare &amp;"
 
-#: glib/gmarkup.c:728
+#: glib/gmarkup.c:725
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr "Il riferimento a carattere «%-.*s» non codifica un carattere permesso"
 
-#: glib/gmarkup.c:766
+#: glib/gmarkup.c:763
 msgid ""
 "Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
 msgstr ""
 "Rilevata entità vuota «&;» (entità valide: &amp; &quot; &lt; &gt; &apos;)"
 
-#: glib/gmarkup.c:774
+#: glib/gmarkup.c:771
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Il nome di entità «%-.*s» è sconosciuto"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:776
 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;"
@@ -5067,11 +5065,11 @@ msgstr ""
 "utilizzata una \"e commerciale\" senza l'intento di iniziare una entità — "
 "usare &amp;"
 
-#: glib/gmarkup.c:1187
+#: glib/gmarkup.c:1182
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Il documento deve iniziare con un elemento (es. <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1222
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -5080,7 +5078,7 @@ msgstr ""
 "«%s» non è un carattere valido dopo un carattere «<»; non può dare inizio a "
 "un nome di elemento"
 
-#: glib/gmarkup.c:1270
+#: glib/gmarkup.c:1264
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -5089,7 +5087,7 @@ msgstr ""
 "Carattere «%s» spaiato, era atteso un carattere «>» per terminare il tag "
 "dell'elemento-vuoto «%s»"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1345
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5097,7 +5095,7 @@ msgstr ""
 "Carattere «%s» spaiato, era atteso un carattere «=» dopo il nome "
 "dell'attributo «%s» dell'elemento «%s»"
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1386
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5108,7 +5106,7 @@ msgstr ""
 "il tag di partenza dell'elemento «%s», oppure opzionalmente un attributo. "
 "Probabilmente è stato usato un carattere non valido in un nome di attributo"
 
-#: glib/gmarkup.c:1439
+#: glib/gmarkup.c:1430
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5118,7 +5116,7 @@ msgstr ""
 "segno di uguale per attribuire un valore all'attributo «%s» dell'elemento "
 "«%s»"
 
-#: glib/gmarkup.c:1573
+#: glib/gmarkup.c:1563
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5127,7 +5125,7 @@ msgstr ""
 "«%s» non è un carattere valido dopo i caratteri «</»; «%s» non può dare "
 "inizio a un nome di elemento"
 
-#: glib/gmarkup.c:1611
+#: glib/gmarkup.c:1599
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5136,29 +5134,29 @@ msgstr ""
 "«%s» non è un carattere valido dopo la chiusura del nome dell'elemento «%s»; "
 "il carattere permesso è «>»"
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1610
 #, c-format
 msgid "Element “%s” was closed, no element is currently open"
 msgstr ""
 "È stato chiuso l'elemento «%s», nessun elemento risulta correntemente aperto"
 
-#: glib/gmarkup.c:1632
+#: glib/gmarkup.c:1619
 #, c-format
 msgid "Element “%s” was closed, but the currently open element is “%s”"
 msgstr ""
 "È stato chiuso l'elemento «%s», ma l'elemento correntemente aperto è «%s»"
 
-#: glib/gmarkup.c:1785
+#: glib/gmarkup.c:1772
 msgid "Document was empty or contained only whitespace"
 msgstr "Il documento era vuoto oppure conteneva unicamente spazi"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1786
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr ""
 "Il documento è terminato in modo inatteso subito dopo una parentesi angolare "
 "d'apertura «<»"
 
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5167,7 +5165,7 @@ msgstr ""
 "Il documento è terminato in modo inatteso con elementi ancora aperti — «%s» "
 "era l'ultimo elemento aperto"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1802
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5176,23 +5174,23 @@ msgstr ""
 "Il documento è terminato in modo inatteso, mancando la parentesi angolare di "
 "chiusura per il tag <%s/>"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1808
 msgid "Document ended unexpectedly inside an element name"
 msgstr ""
 "Il documento è terminato in modo inatteso all'interno di un nome di elemento"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1814
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr ""
 "Il documento è terminato in modo inatteso all'interno di un nome di attributo"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1819
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr ""
 "Il documento è terminato in modo inatteso all'interno di un tag di apertura "
 "elemento."
 
-#: glib/gmarkup.c:1838
+#: glib/gmarkup.c:1825
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5200,20 +5198,20 @@ msgstr ""
 "Il documento è terminato in modo inatteso dopo il segno di uguale che segue "
 "un nome di attributo; nessun valore per l'attributo"
 
-#: glib/gmarkup.c:1845
+#: glib/gmarkup.c:1832
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr ""
 "Il documento è terminato in modo inatteso all'interno di un valore di "
 "attributo"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1849
 #, c-format
 msgid "Document ended unexpectedly inside the close tag for element “%s”"
 msgstr ""
 "Il documento è terminato in modo inatteso all'interno del tag di chiusura "
 "per l'elemento «%s»"
 
-#: glib/gmarkup.c:1866
+#: glib/gmarkup.c:1853
 msgid ""
 "Document ended unexpectedly inside the close tag for an unopened element"
 msgstr ""
@@ -5221,7 +5219,7 @@ msgstr ""
 "per un elemento non aperto"
 
 # di elaborazione? in elaborazione ?
-#: glib/gmarkup.c:1872
+#: glib/gmarkup.c:1859
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Il documento è terminato in modo inatteso all'interno di un commento o "
@@ -5703,92 +5701,92 @@ 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:311
+#: glib/gspawn.c:302
 #, 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:459
+#: glib/gspawn.c:450
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr ""
 "Errore inatteso in select() nel leggere i dati da un processo figlio (%s)"
 
-#: glib/gspawn.c:544
+#: glib/gspawn.c:535
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Errore inatteso in waitpid() (%s)"
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: glib/gspawn.c:1043 glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Processo figlio uscito con codice %ld"
 
-#: glib/gspawn.c:1060
+#: glib/gspawn.c:1051
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Processo figlio ucciso dal segnale %ld"
 
-#: glib/gspawn.c:1067
+#: glib/gspawn.c:1058
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Processo figlio fermato dal segnale %ld"
 
-#: glib/gspawn.c:1074
+#: glib/gspawn.c:1065
 #, 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:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: glib/gspawn.c:1360 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
 #, 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:1617
+#: glib/gspawn.c:1596
 #, 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:1656
+#: glib/gspawn.c:1635
 #, 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:1805 glib/gspawn-win32.c:370
+#: glib/gspawn.c:1784 glib/gspawn-win32.c:370
 #, 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:1815
+#: glib/gspawn.c:1794
 #, c-format
 msgid "Failed to execute 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:1825
+#: glib/gspawn.c:1804
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Ridirezione dell'output o input del processo figlio non riuscita (%s)"
 
 # (%s) è in fondo perché risolto in g_strerror (gint)
-#: glib/gspawn.c:1834
+#: glib/gspawn.c:1813
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Esecuzione del fork per processo figlio non riuscita (%s)"
 
-#: glib/gspawn.c:1842
+#: glib/gspawn.c:1821
 #, 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:1866
+#: glib/gspawn.c:1845
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr ""
@@ -5865,20 +5863,20 @@ msgstr "Numero «%s» oltre i limiti [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "«%s» non è un numero senza segno"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Allocazione della memoria non riuscita"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Carattere fuori dall'intervallo per UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Sequenza non valida in ingresso per la conversione"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Carattere fuori dall'intervallo per UTF-16"
 
index d93b4e1..84fdd6f 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,9 +8,10 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: glib\n"
-"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-08-30 18:47+0000\n"
-"PO-Revision-Date: 2018-09-02 19:55+0200\n"
+"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=glib"
+"&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2018-02-16 14:39+0000\n"
+"PO-Revision-Date: 2018-03-04 15:23+0200\n"
 "Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
 "Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
 "Language: lv\n"
@@ -21,126 +22,129 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :"
 " 2);\n"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:495
 msgid "GApplication options"
 msgstr "GApplication opcijas"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:495
 msgid "Show GApplication options"
 msgstr "Parādīt GApplication opcijas"
 
-#: gio/gapplication.c:541
+#: ../gio/gapplication.c:540
 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:553
+#: ../gio/gapplication.c:552
 msgid "Override the application’s ID"
 msgstr "Pārrakstīt lietotnes ID"
 
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
+#: ../gio/gapplication-tool.c:45 ../gio/gapplication-tool.c:46
+#: ../gio/gio-tool.c:227 ../gio/gresource-tool.c:488
+#: ../gio/gsettings-tool.c:569
 msgid "Print help"
 msgstr "Drukāšanas palīdzība"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:496 gio/gresource-tool.c:564
+#: ../gio/gapplication-tool.c:47 ../gio/gresource-tool.c:489
+#: ../gio/gresource-tool.c:557
 msgid "[COMMAND]"
 msgstr "[KOMANDA]"
 
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: ../gio/gapplication-tool.c:49 ../gio/gio-tool.c:228
 msgid "Print version"
 msgstr "Drukāt versiju"
 
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:575
+#: ../gio/gapplication-tool.c:50 ../gio/gsettings-tool.c:575
 msgid "Print version information and exit"
 msgstr "Parādīt informāciju par versiju un iziet"
 
-#: gio/gapplication-tool.c:52
+#: ../gio/gapplication-tool.c:52
 msgid "List applications"
 msgstr "Uzskaitīt lietotnes"
 
-#: gio/gapplication-tool.c:53
+#: ../gio/gapplication-tool.c:53
 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:55
+#: ../gio/gapplication-tool.c:55
 msgid "Launch an application"
 msgstr "Palaist lietotni"
 
-#: gio/gapplication-tool.c:56
+#: ../gio/gapplication-tool.c:56
 msgid "Launch the application (with optional files to open)"
 msgstr "Palaist lietotni (ar neobligāti atveramām datnēm)"
 
-#: gio/gapplication-tool.c:57
+#: ../gio/gapplication-tool.c:57
 msgid "APPID [FILE…]"
 msgstr "LIETID [DATNE…]"
 
-#: gio/gapplication-tool.c:59
+#: ../gio/gapplication-tool.c:59
 msgid "Activate an action"
 msgstr "Aktivizēt darbību"
 
-#: gio/gapplication-tool.c:60
+#: ../gio/gapplication-tool.c:60
 msgid "Invoke an action on the application"
 msgstr "Izsaukt darbību uz lietotni"
 
-#: gio/gapplication-tool.c:61
+#: ../gio/gapplication-tool.c:61
 msgid "APPID ACTION [PARAMETER]"
 msgstr "LIETID DARBĪBA [PARAMETRS]"
 
-#: gio/gapplication-tool.c:63
+#: ../gio/gapplication-tool.c:63
 msgid "List available actions"
 msgstr "Uzskaita pieejamās darbības"
 
-#: gio/gapplication-tool.c:64
+#: ../gio/gapplication-tool.c:64
 msgid "List static actions for an application (from .desktop file)"
 msgstr "Uzskaita statiskās darbības lietotnei (no .desktop datnes)"
 
-#: gio/gapplication-tool.c:65 gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:65 ../gio/gapplication-tool.c:71
 msgid "APPID"
 msgstr "LIETID"
 
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:90
-#: gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:70 ../gio/gapplication-tool.c:133
+#: ../gio/gdbus-tool.c:90 ../gio/gio-tool.c:224
 msgid "COMMAND"
 msgstr "KOMANDA"
 
-#: gio/gapplication-tool.c:70
+#: ../gio/gapplication-tool.c:70
 msgid "The command to print detailed help for"
 msgstr "Komanda, lai drukātu detalizētu palīdzību priekš"
 
-#: gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:71
 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:72 gio/glib-compile-resources.c:737
-#: gio/glib-compile-resources.c:743 gio/glib-compile-resources.c:770
-#: gio/gresource-tool.c:502 gio/gresource-tool.c:568
+#: ../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
 msgid "FILE"
 msgstr "DATNE"
 
-#: gio/gapplication-tool.c:72
+#: ../gio/gapplication-tool.c:72
 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:73
+#: ../gio/gapplication-tool.c:73
 msgid "ACTION"
 msgstr "DARBĪBA"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "The action name to invoke"
 msgstr "Darbības nosaukums, ko izsaukt"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "PARAMETER"
 msgstr "PARAMETRS"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 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:96 gio/gresource-tool.c:533 gio/gsettings-tool.c:661
+#: ../gio/gapplication-tool.c:96 ../gio/gresource-tool.c:526
+#: ../gio/gsettings-tool.c:661
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -149,26 +153,26 @@ msgstr ""
 "Nezināma komanda %s\n"
 "\n"
 
-#: gio/gapplication-tool.c:101
+#: ../gio/gapplication-tool.c:101
 msgid "Usage:\n"
 msgstr "Lietošana:\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:558
-#: gio/gsettings-tool.c:696
+#: ../gio/gapplication-tool.c:114 ../gio/gresource-tool.c:551
+#: ../gio/gsettings-tool.c:696
 msgid "Arguments:\n"
 msgstr "Argumenti:\n"
 
-#: gio/gapplication-tool.c:133 gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:133
 msgid "[ARGS…]"
 msgstr "[ARG…]"
 
-#: gio/gapplication-tool.c:134
+#: ../gio/gapplication-tool.c:134
 #, c-format
 msgid "Commands:\n"
 msgstr "Komandas:\n"
 
 #. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:146
+#: ../gio/gapplication-tool.c:146
 #, c-format
 msgid ""
 "Use “%s help COMMAND” to get detailed help.\n"
@@ -177,7 +181,7 @@ msgstr ""
 "Lietojiet “%s help KOMANDA”, lai iegūtu detalizētu palīdzību.\n"
 "\n"
 
-#: gio/gapplication-tool.c:165
+#: ../gio/gapplication-tool.c:165
 #, c-format
 msgid ""
 "%s command requires an application id to directly follow\n"
@@ -186,13 +190,13 @@ msgstr ""
 "%s komandai vajag lietotnes id, lai tieši sekotu\n"
 "\n"
 
-#: gio/gapplication-tool.c:171
+#: ../gio/gapplication-tool.c:171
 #, 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:182
+#: ../gio/gapplication-tool.c:182
 #, c-format
 msgid ""
 "“%s” takes no arguments\n"
@@ -201,21 +205,22 @@ msgstr ""
 "“%s” nepieņem argumentus\n"
 "\n"
 
-#: gio/gapplication-tool.c:266
+#: ../gio/gapplication-tool.c:266
 #, c-format
 msgid "unable to connect to D-Bus: %s\n"
 msgstr "Nevarēja savienoties ar D-Bus — %s\n"
 
-#: gio/gapplication-tool.c:286
+#: ../gio/gapplication-tool.c:286
 #, 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:317
+#: ../gio/gapplication-tool.c:317
+#, c-format
 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:325
+#: ../gio/gapplication-tool.c:325
 #, c-format
 msgid ""
 "invalid action name: “%s”\n"
@@ -224,25 +229,27 @@ msgstr ""
 "nederīgs darbības nosaukums — “%s”\n"
 "darbības nosaukumā var būt tikai burti, cipari, “-” un “.”\n"
 
-#: gio/gapplication-tool.c:344
+#: ../gio/gapplication-tool.c:344
 #, c-format
 msgid "error parsing action parameter: %s\n"
 msgstr "kļūda, parsējot darbības parametru — %s\n"
 
-#: gio/gapplication-tool.c:356
+#: ../gio/gapplication-tool.c:356
+#, c-format
 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:411
+#: ../gio/gapplication-tool.c:411
+#, c-format
 msgid "list-actions command takes only the application id"
 msgstr "darbību uzskaites komanda pieņem tikai lietotnes id"
 
-#: gio/gapplication-tool.c:421
+#: ../gio/gapplication-tool.c:421
 #, c-format
 msgid "unable to find desktop file for application %s\n"
 msgstr "nevar atrast darbvirsmas datni lietotnei %s\n"
 
-#: gio/gapplication-tool.c:466
+#: ../gio/gapplication-tool.c:466
 #, c-format
 msgid ""
 "unrecognised command: %s\n"
@@ -251,117 +258,121 @@ 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:617
-#: gio/ginputstream.c:1019 gio/goutputstream.c:203 gio/goutputstream.c:834
-#: gio/gpollableinputstream.c:205 gio/gpollableoutputstream.c:209
+#: ../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:209
 #, 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:891 ../gio/gbufferedoutputstream.c:575
+#: ../gio/gdataoutputstream.c:562
 msgid "Seek not supported on base stream"
 msgstr "Uz bāzes plūsmas meklēšana netiek atbalstīta"
 
-#: gio/gbufferedinputstream.c:937
+#: ../gio/gbufferedinputstream.c:937
 msgid "Cannot truncate GBufferedInputStream"
 msgstr "Nevar apraut GBufferedInputStream"
 
-#: gio/gbufferedinputstream.c:982 gio/ginputstream.c:1208 gio/giostream.c:300
-#: gio/goutputstream.c:1661
+#: ../gio/gbufferedinputstream.c:982 ../gio/ginputstream.c:1208
+#: ../gio/giostream.c:300 ../gio/goutputstream.c:1661
 msgid "Stream is already closed"
 msgstr "Plūsma jau ir aizvērta"
 
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: ../gio/gbufferedoutputstream.c:612 ../gio/gdataoutputstream.c:592
 msgid "Truncate not supported on base stream"
 msgstr "Uz bāzes plūsmas apraušana nav atbalstīta"
 
-#: gio/gcancellable.c:317 gio/gdbusconnection.c:1840 gio/gdbusprivate.c:1402
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
+#: ../gio/gcancellable.c:317 ../gio/gdbusconnection.c:1849
+#: ../gio/gdbusprivate.c:1402 ../gio/gsimpleasyncresult.c:871
+#: ../gio/gsimpleasyncresult.c:897
 #, c-format
 msgid "Operation was cancelled"
 msgstr "Darbība tika atcelta"
 
-#: gio/gcharsetconverter.c:260
+#: ../gio/gcharsetconverter.c:260
 msgid "Invalid object, not initialized"
 msgstr "Nederīgs objekts, nav inicializēts"
 
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: ../gio/gcharsetconverter.c:281 ../gio/gcharsetconverter.c:309
 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:315 ../gio/gcharsetconverter.c:324
 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:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
-#: glib/gutf8.c:869 glib/gutf8.c:1322
+#: ../gio/gcharsetconverter.c:342 ../gio/gdatainputstream.c:848
+#: ../gio/gdatainputstream.c:1261 ../glib/gconvert.c:454 ../glib/gconvert.c:883
+#: ../glib/giochannel.c:1557 ../glib/giochannel.c:1599
+#: ../glib/giochannel.c:2443 ../glib/gutf8.c:869 ../glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Nepareiza baitu secība konversijas ievadē"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1564 glib/giochannel.c:2455
+#: ../gio/gcharsetconverter.c:347 ../glib/gconvert.c:462 ../glib/gconvert.c:797
+#: ../glib/giochannel.c:1564 ../glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Kļūda, konversējot — %s"
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1104
+#: ../gio/gcharsetconverter.c:445 ../gio/gsocket.c:1104
 msgid "Cancellable initialization not supported"
 msgstr "Atceļama inicializācija nav atbalstīta"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
+#: ../gio/gcharsetconverter.c:456 ../glib/gconvert.c:327
+#: ../glib/giochannel.c:1385
 #, 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:331
+#: ../gio/gcharsetconverter.c:460 ../glib/gconvert.c:331
 #, 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:358
+#: ../gio/gcontenttype.c:358
 #, c-format
 msgid "%s type"
 msgstr "%s tips"
 
-#: gio/gcontenttype-win32.c:177
+#: ../gio/gcontenttype-win32.c:177
 msgid "Unknown type"
 msgstr "Nezināms tips"
 
-#: gio/gcontenttype-win32.c:179
+#: ../gio/gcontenttype-win32.c:179
 #, c-format
 msgid "%s filetype"
 msgstr "%s datnes tips"
 
-#: gio/gcredentials.c:315 gio/gcredentials.c:574
+#: ../gio/gcredentials.c:312 ../gio/gcredentials.c:571
 msgid "GCredentials is not implemented on this OS"
 msgstr "GCredentials nav implementēti šajā OS"
 
-#: gio/gcredentials.c:470
+#: ../gio/gcredentials.c:467
 msgid "There is no GCredentials support for your platform"
 msgstr "Šajā platformā nav GCredentials atbalsta"
 
-#: gio/gcredentials.c:516
+#: ../gio/gcredentials.c:513
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr "GCredentials nesatur procesa ID šajā OS"
 
-#: gio/gcredentials.c:568
+#: ../gio/gcredentials.c:565
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "Šajā OS nevar viltot akreditācijas datus"
 
-#: gio/gdatainputstream.c:304
+#: ../gio/gdatainputstream.c:304
 msgid "Unexpected early end-of-stream"
 msgstr "Negaidīti agras plūsmas beigas"
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:246 gio/gdbusaddress.c:327
+#: ../gio/gdbusaddress.c:158 ../gio/gdbusaddress.c:246
+#: ../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:185
+#: ../gio/gdbusaddress.c:185
 #, c-format
 msgid ""
 "Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
@@ -369,32 +380,27 @@ msgstr ""
 "Adrese “%s” ir nederīga (vajag tieši vienu ceļu, pagaidu mapi vai abstraktas "
 "atslēgas)"
 
-#: gio/gdbusaddress.c:198
+#: ../gio/gdbusaddress.c:198
 #, 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:261 gio/gdbusaddress.c:342
+#: ../gio/gdbusaddress.c:261 ../gio/gdbusaddress.c:342
 #, c-format
 msgid "Error in address “%s” — the port attribute is malformed"
 msgstr "Kļūda adresē “%s” — porta atribūts ir slikti noformēts"
 
-#: gio/gdbusaddress.c:272 gio/gdbusaddress.c:353
+#: ../gio/gdbusaddress.c:272 ../gio/gdbusaddress.c:353
 #, c-format
 msgid "Error in address “%s” — the family attribute is malformed"
 msgstr "Kļūda adresē “%s” — saimes atribūts ir slikti noformēts"
 
-#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:673
-#, c-format
-msgid "Unknown or unsupported transport “%s” for address “%s”"
-msgstr "Nezināms vai neatbalstīts transports “%s” adresei “%s”"
-
-#: gio/gdbusaddress.c:467
+#: ../gio/gdbusaddress.c:463
 #, c-format
 msgid "Address element “%s” does not contain a colon (:)"
 msgstr "Adreses elements “%s” nesatur kolu (:)"
 
-#: gio/gdbusaddress.c:488
+#: ../gio/gdbusaddress.c:484
 #, c-format
 msgid ""
 "Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
@@ -403,7 +409,7 @@ msgstr ""
 "Atslēgas/vērtības pāris %d, “%s”, adreses elementā “%s”, nesatur vienādības "
 "zīmi"
 
-#: gio/gdbusaddress.c:502
+#: ../gio/gdbusaddress.c:498
 #, c-format
 msgid ""
 "Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
@@ -412,7 +418,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:580
+#: ../gio/gdbusaddress.c:576
 #, c-format
 msgid ""
 "Error in address “%s” — the unix transport requires exactly one of the keys "
@@ -421,84 +427,89 @@ msgstr ""
 "Kļūda adresē “%s” — unix transportam nepieciešams iestatīt tieši vienu "
 "atslēgu “path” vai “abstract”"
 
-#: gio/gdbusaddress.c:616
+#: ../gio/gdbusaddress.c:612
 #, c-format
 msgid "Error in address “%s” — the host attribute is missing or malformed"
 msgstr "Kļūda adresē “%s” — trūkst vai slikti noformēts resursdatora atribūts"
 
-#: gio/gdbusaddress.c:630
+#: ../gio/gdbusaddress.c:626
 #, c-format
 msgid "Error in address “%s” — the port attribute is missing or malformed"
 msgstr "Kļūda adresē “%s” — trūkst vai slikti noformēts porta atribūts"
 
-#: gio/gdbusaddress.c:644
+#: ../gio/gdbusaddress.c:640
 #, c-format
 msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
 msgstr "Kļūda adresē “%s” — trūkst vai slikti noformēts noncefile atribūts"
 
-#: gio/gdbusaddress.c:665
+#: ../gio/gdbusaddress.c:661
 msgid "Error auto-launching: "
 msgstr "Kļūda, automātiski palaižot: "
 
-#: gio/gdbusaddress.c:718
+#: ../gio/gdbusaddress.c:669
+#, c-format
+msgid "Unknown or unsupported transport “%s” for address “%s”"
+msgstr "Nezināms vai neatbalstīts transports “%s” adresei “%s”"
+
+#: ../gio/gdbusaddress.c:714
 #, c-format
 msgid "Error opening nonce file “%s”: %s"
 msgstr "Kļūda, atverot nonce datni “%s” — %s"
 
-#: gio/gdbusaddress.c:737
+#: ../gio/gdbusaddress.c:733
 #, c-format
 msgid "Error reading from nonce file “%s”: %s"
 msgstr "Kļūda, nolasot no nonce datnes “%s” — %s"
 
-#: gio/gdbusaddress.c:746
+#: ../gio/gdbusaddress.c:742
 #, c-format
 msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
 msgstr "Kļūda, nolasot no nonce datnes “%s” — gaidīja 16 baitus, saņēma %d"
 
-#: gio/gdbusaddress.c:764
+#: ../gio/gdbusaddress.c:760
 #, c-format
 msgid "Error writing contents of nonce file “%s” to stream:"
 msgstr "Kļūda, rakstot nonce datnes “%s” saturu uz straumi:"
 
-#: gio/gdbusaddress.c:973
+#: ../gio/gdbusaddress.c:969
 msgid "The given address is empty"
 msgstr "Dotā adrese ir tukša"
 
-#: gio/gdbusaddress.c:1086
+#: ../gio/gdbusaddress.c:1082
 #, c-format
 msgid "Cannot spawn a message bus when setuid"
 msgstr "Nevar izveidot ziņojumu kopni, kad veic machine-id"
 
-#: gio/gdbusaddress.c:1093
+#: ../gio/gdbusaddress.c:1089
 msgid "Cannot spawn a message bus without a machine-id: "
 msgstr "Nevar izveidot ziņojumu kopni bez machine-id: "
 
-#: gio/gdbusaddress.c:1100
+#: ../gio/gdbusaddress.c:1096
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
 msgstr "Nevar automātiski palaist D-Bus bez X11 $DISPLAY"
 
-#: gio/gdbusaddress.c:1142
+#: ../gio/gdbusaddress.c:1138
 #, c-format
 msgid "Error spawning command line “%s”: "
 msgstr "Kļūda, izveidojot komandrindu “%s”: "
 
-#: gio/gdbusaddress.c:1359
+#: ../gio/gdbusaddress.c:1355
 #, c-format
 msgid "(Type any character to close this window)\n"
 msgstr "(Ievadiet jebkuru rakstzīmi, lai aizvērtu šo logu)\n"
 
-#: gio/gdbusaddress.c:1513
+#: ../gio/gdbusaddress.c:1509
 #, c-format
 msgid "Session dbus not running, and autolaunch failed"
 msgstr "Sesijas dbus nav palaists un automātiskā palaišana cieta neveiksmi"
 
-#: gio/gdbusaddress.c:1524
+#: ../gio/gdbusaddress.c:1520
 #, c-format
 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:1662 gio/gdbusconnection.c:7142
+#: ../gio/gdbusaddress.c:1658
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -507,7 +518,7 @@ msgstr ""
 "Nevar noteikt kopnes adresi no DBUS_STARTER_BUS_TYPE vides mainīgā — "
 "nezināma vērtība “%s”"
 
-#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7151
+#: ../gio/gdbusaddress.c:1667 ../gio/gdbusconnection.c:7160
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -515,20 +526,20 @@ msgstr ""
 "Nevar noteikt kopnes adresi, jo DBUS_STARTER_BUS_TYPE vides mainīgais nav "
 "iestatīts"
 
-#: gio/gdbusaddress.c:1681
+#: ../gio/gdbusaddress.c:1677
 #, c-format
 msgid "Unknown bus type %d"
 msgstr "Nezināms kopnes tips %d"
 
-#: gio/gdbusauth.c:293
+#: ../gio/gdbusauth.c:293
 msgid "Unexpected lack of content trying to read a line"
 msgstr "Negaidīts satura trūkums, mēģinot lasīt rindu"
 
-#: gio/gdbusauth.c:337
+#: ../gio/gdbusauth.c:337
 msgid "Unexpected lack of content trying to (safely) read a line"
 msgstr "Negaidīts satura trūkums, mēģinot (droši) lasīt rindu"
 
-#: gio/gdbusauth.c:481
+#: ../gio/gdbusauth.c:508
 #, c-format
 msgid ""
 "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
@@ -536,38 +547,38 @@ msgstr ""
 "Izsmelti visi pieejamie autentifikācijas mehānismi (mēģināti: %s) (pieejami: "
 "%s)"
 
-#: gio/gdbusauth.c:1144
+#: ../gio/gdbusauth.c:1171
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr "Atcelts caur GDBusAuthObserver::authorize-authenticated-peer"
 
-#: gio/gdbusauthmechanismsha1.c:262
+#: ../gio/gdbusauthmechanismsha1.c:262
 #, 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:274
+#: ../gio/gdbusauthmechanismsha1.c:274
 #, 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:299
+#: ../gio/gdbusauthmechanismsha1.c:296
 #, c-format
 msgid "Error creating directory “%s”: %s"
 msgstr "Kļūda, veidojot direktoriju “%s” — %s"
 
-#: gio/gdbusauthmechanismsha1.c:346
+#: ../gio/gdbusauthmechanismsha1.c:379
 #, c-format
 msgid "Error opening keyring “%s” for reading: "
 msgstr "Kļūda, atverot atslēgu saišķi “%s” lasīšanai: "
 
-#: gio/gdbusauthmechanismsha1.c:369 gio/gdbusauthmechanismsha1.c:687
+#: ../gio/gdbusauthmechanismsha1.c:402 ../gio/gdbusauthmechanismsha1.c:720
 #, 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:383 gio/gdbusauthmechanismsha1.c:701
+#: ../gio/gdbusauthmechanismsha1.c:416 ../gio/gdbusauthmechanismsha1.c:734
 #, c-format
 msgid ""
 "First token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -575,7 +586,7 @@ msgstr ""
 "Pirmais marķieris rindai %d atslēgu saišķim “%s” ar saturu “%s” ir slikti "
 "formatēts"
 
-#: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
+#: ../gio/gdbusauthmechanismsha1.c:430 ../gio/gdbusauthmechanismsha1.c:748
 #, c-format
 msgid ""
 "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
@@ -583,167 +594,164 @@ msgstr ""
 "Otrais marķieris rindai %d atslēgu saišķim “%s” ar saturu “%s” ir slikti "
 "formatēts"
 
-#: gio/gdbusauthmechanismsha1.c:421
+#: ../gio/gdbusauthmechanismsha1.c:454
 #, 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:503
+#: ../gio/gdbusauthmechanismsha1.c:536
 #, 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:535
+#: ../gio/gdbusauthmechanismsha1.c:568
 #, c-format
 msgid "Error creating lock file “%s”: %s"
 msgstr "Kļūda, veidojot slēgšanas datni “%s” — %s"
 
-#: gio/gdbusauthmechanismsha1.c:566
+#: ../gio/gdbusauthmechanismsha1.c:599
 #, 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:577
+#: ../gio/gdbusauthmechanismsha1.c:610
 #, c-format
 msgid "Error unlinking lock file “%s”: %s"
 msgstr "Kļūda, atsaitējot slēgšanas datni “%s” — %s"
 
-#: gio/gdbusauthmechanismsha1.c:654
+#: ../gio/gdbusauthmechanismsha1.c:687
 #, c-format
 msgid "Error opening keyring “%s” for writing: "
 msgstr "Kļūda, atverot atslēgu saišķi “%s” rakstīšanai: "
 
-#: gio/gdbusauthmechanismsha1.c:850
+#: ../gio/gdbusauthmechanismsha1.c:883
 #, 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:2369
+#: ../gio/gdbusconnection.c:612 ../gio/gdbusconnection.c:2378
 msgid "The connection is closed"
 msgstr "Savienojums ir aizvērts"
 
-#: gio/gdbusconnection.c:1870
+#: ../gio/gdbusconnection.c:1879
 msgid "Timeout was reached"
 msgstr "Iestājās noildze"
 
-#: gio/gdbusconnection.c:2491
+#: ../gio/gdbusconnection.c:2500
 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:4115 gio/gdbusconnection.c:4462
+#: ../gio/gdbusconnection.c:4124 ../gio/gdbusconnection.c:4471
 #, 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"
+"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:4257
+#: ../gio/gdbusconnection.c:4266
 #, c-format
-#| msgid "No such property '%s'"
-msgid "No such property “%s”"
+msgid "No such property '%s'"
 msgstr "Nav tādas īpašības “%s”"
 
-#: gio/gdbusconnection.c:4269
+#: ../gio/gdbusconnection.c:4278
 #, c-format
-#| msgid "Property '%s' is not readable"
-msgid "Property “%s” is not readable"
+msgid "Property '%s' is not readable"
 msgstr "Īpašība “%s” nav lasāma"
 
-#: gio/gdbusconnection.c:4280
+#: ../gio/gdbusconnection.c:4289
 #, c-format
-#| msgid "Property '%s' is not writable"
-msgid "Property “%s” is not writable"
+msgid "Property '%s' is not writable"
 msgstr "Īpašība “%s” nav rakstāma"
 
-#: gio/gdbusconnection.c:4300
+#: ../gio/gdbusconnection.c:4309
 #, c-format
-#| msgid "Error setting property '%s': Expected type '%s' but got '%s'"
-msgid "Error setting property “%s”: Expected type “%s” but got “%s”"
+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:4405 gio/gdbusconnection.c:4613
-#: gio/gdbusconnection.c:6582
+#: ../gio/gdbusconnection.c:4414 ../gio/gdbusconnection.c:4622
+#: ../gio/gdbusconnection.c:6591
 #, c-format
-#| msgid "No such interface '%s'"
-msgid "No such interface “%s”"
+msgid "No such interface '%s'"
 msgstr "Nav tādas saskarnes “%s”"
 
-#: gio/gdbusconnection.c:4831 gio/gdbusconnection.c:7091
+#: ../gio/gdbusconnection.c:4840 ../gio/gdbusconnection.c:7100
 #, c-format
-#| msgid "No such interface '%s' on object at path %s"
-msgid "No such interface “%s” on object at path %s"
+msgid "No such interface '%s' on object at path %s"
 msgstr "Nav tādas saskarnes “%s” uz objekta ceļa %s"
 
-#: gio/gdbusconnection.c:4929
+#: ../gio/gdbusconnection.c:4938
 #, c-format
-#| msgid "No such key “%s”\n"
-msgid "No such method “%s”"
-msgstr "Nav tādas atslēgas “%s”"
+msgid "No such method '%s'"
+msgstr "Nav tādas metodes “%s”"
 
-#: gio/gdbusconnection.c:4960
+#: ../gio/gdbusconnection.c:4969
 #, c-format
-#| msgid "Type of message, '%s', does not match expected type '%s'"
-msgid "Type of message, “%s”, does not match expected type “%s”"
+msgid "Type of message, '%s', does not match expected type '%s'"
 msgstr "Ziņojuma tips “%s” neatbilda gaidītajam tipam “%s”"
 
-#: gio/gdbusconnection.c:5158
+#: ../gio/gdbusconnection.c:5167
 #, 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:5384
+#: ../gio/gdbusconnection.c:5393
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Nevar saņemt īpašību %s.%s"
 
-#: gio/gdbusconnection.c:5440
+#: ../gio/gdbusconnection.c:5449
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Nevar iestatīt īpašību %s.%s"
 
-#: gio/gdbusconnection.c:5618
+#: ../gio/gdbusconnection.c:5627
 #, c-format
-#| msgid "Method '%s' returned type '%s', but expected '%s'"
-msgid "Method “%s” returned type “%s”, but expected “%s”"
+msgid "Method '%s' returned type '%s', but expected '%s'"
 msgstr "Metode “%s” atgrieza tipu “%s”, bet gaidīja “%s”"
 
-#: gio/gdbusconnection.c:6693
+#: ../gio/gdbusconnection.c:6702
 #, 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"
+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:6814
+#: ../gio/gdbusconnection.c:6823
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "%s apakškoks jau ir eksportēts "
 
-#: gio/gdbusmessage.c:1248
+#: ../gio/gdbusconnection.c:7151
+#, c-format
+msgid ""
+"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
+"- unknown value '%s'"
+msgstr ""
+"Nevar noteikt kopnes adresi no DBUS_STARTER_BUS_TYPE vides mainīgā — "
+"nezināma vērtība “%s”"
+
+#: ../gio/gdbusmessage.c:1246
 msgid "type is INVALID"
 msgstr "tips ir INVALID"
 
-#: gio/gdbusmessage.c:1259
+#: ../gio/gdbusmessage.c:1257
 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:1270
+#: ../gio/gdbusmessage.c:1268
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "METHOD_RETURN ziņojums — trūkst REPLY_SERIAL galvenes lauks"
 
-#: gio/gdbusmessage.c:1282
+#: ../gio/gdbusmessage.c:1280
 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:1295
+#: ../gio/gdbusmessage.c:1293
 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:1303
+#: ../gio/gdbusmessage.c:1301
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -751,7 +759,7 @@ msgstr ""
 "SIGNAL ziņojums — PATH galvenes datne izmanto rezervēto vērtību /org/"
 "freedesktop/DBus/Local"
 
-#: gio/gdbusmessage.c:1311
+#: ../gio/gdbusmessage.c:1309
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -759,7 +767,7 @@ msgstr ""
 "SIGNAL ziņojums — INTERFACE galvenes dante izmanto rezervēto vērtību org."
 "freedesktop.DBus.Local"
 
-#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
+#: ../gio/gdbusmessage.c:1357 ../gio/gdbusmessage.c:1417
 #, c-format
 msgid "Wanted to read %lu byte but only got %lu"
 msgid_plural "Wanted to read %lu bytes but only got %lu"
@@ -767,12 +775,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:1373
+#: ../gio/gdbusmessage.c:1371
 #, 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:1392
+#: ../gio/gdbusmessage.c:1390
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -781,17 +789,17 @@ 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:1595
+#: ../gio/gdbusmessage.c:1593
 #, 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:1617
+#: ../gio/gdbusmessage.c:1615
 #, 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:1664
+#: ../gio/gdbusmessage.c:1662
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -807,7 +815,7 @@ msgstr[2] ""
 "Saskārās ar %u baitu garu masīvu.  Maksimālais garums ir 2<<26 baiti (64 "
 "MiB)."
 
-#: gio/gdbusmessage.c:1684
+#: ../gio/gdbusmessage.c:1682
 #, c-format
 msgid ""
 "Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -816,19 +824,19 @@ 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:1851
+#: ../gio/gdbusmessage.c:1849
 #, 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:1875
+#: ../gio/gdbusmessage.c:1873
 #, 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:2057
+#: ../gio/gdbusmessage.c:2055
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -837,23 +845,23 @@ 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:2070
+#: ../gio/gdbusmessage.c:2068
 #, 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:2126
+#: ../gio/gdbusmessage.c:2124
 #, 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:2140
+#: ../gio/gdbusmessage.c:2138
 #, 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:2170
+#: ../gio/gdbusmessage.c:2168
 #, 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"
@@ -864,32 +872,32 @@ msgstr[1] ""
 msgstr[2] ""
 "Ziņojumā nav paraksta galvenes, bet ziņojuma pamatteksts ir %u baitu"
 
-#: gio/gdbusmessage.c:2180
+#: ../gio/gdbusmessage.c:2178
 msgid "Cannot deserialize message: "
 msgstr "Nevar deserializēt ziņojumu: "
 
-#: gio/gdbusmessage.c:2521
+#: ../gio/gdbusmessage.c:2519
 #, 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:2658
+#: ../gio/gdbusmessage.c:2656
 #, 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:2666
+#: ../gio/gdbusmessage.c:2664
 msgid "Cannot serialize message: "
 msgstr "Nevar serializēt ziņojumu: "
 
-#: gio/gdbusmessage.c:2710
+#: ../gio/gdbusmessage.c:2708
 #, 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:2720
+#: ../gio/gdbusmessage.c:2718
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -898,40 +906,40 @@ msgstr ""
 "Vēstules pamattekstam ir tipa paraksts “%s”, bet paraksts galvenes laukā ir "
 "“%s”"
 
-#: gio/gdbusmessage.c:2736
+#: ../gio/gdbusmessage.c:2734
 #, 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:3289
+#: ../gio/gdbusmessage.c:3287
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Kļūdas atgriešana ar pamattekstu ar tipu “%s”"
 
-#: gio/gdbusmessage.c:3297
+#: ../gio/gdbusmessage.c:3295
 msgid "Error return with empty body"
 msgstr "Kļūdas atgriešana ar tukšu pamattekstu"
 
-#: gio/gdbusprivate.c:2066
+#: ../gio/gdbusprivate.c:2066
 #, c-format
 msgid "Unable to get Hardware profile: %s"
 msgstr "Nevar saņemt aparatūras profilu — %s"
 
-#: gio/gdbusprivate.c:2111
+#: ../gio/gdbusprivate.c:2111
 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: "
 
-#: gio/gdbusproxy.c:1612
+#: ../gio/gdbusproxy.c:1612
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Kļūda, izsaucot StartServiceByName priekš %s: "
 
-#: gio/gdbusproxy.c:1635
+#: ../gio/gdbusproxy.c:1635
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Negaidīta atbilde %d no StartServiceByName(“%s”) metodes"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: ../gio/gdbusproxy.c:2726 ../gio/gdbusproxy.c:2860
 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"
@@ -939,30 +947,30 @@ msgstr ""
 "Nevar izsaukt metodi; starpnieks ir labi zināmam nosaukumam bez īpašnieka un "
 "starpnieks tika veidots ar G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START slēdzi (flag)"
 
-#: gio/gdbusserver.c:708
+#: ../gio/gdbusserver.c:708
 msgid "Abstract name space not supported"
 msgstr "Abstraktas vārdu telpas nav atbalstītas"
 
-#: gio/gdbusserver.c:795
+#: ../gio/gdbusserver.c:795
 msgid "Cannot specify nonce file when creating a server"
 msgstr "Nevar norādīt nonce datni, kad veido serveri"
 
-#: gio/gdbusserver.c:876
+#: ../gio/gdbusserver.c:876
 #, c-format
 msgid "Error writing nonce file at “%s”: %s"
 msgstr "Kļūda, rakstot nonce datni pie “%s” — %s"
 
-#: gio/gdbusserver.c:1047
+#: ../gio/gdbusserver.c:1047
 #, 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:1087
+#: ../gio/gdbusserver.c:1087
 #, c-format
 msgid "Cannot listen on unsupported transport “%s”"
 msgstr "Nevar klausīties uz neatbalstīta transporta “%s”"
 
-#: gio/gdbus-tool.c:95
+#: ../gio/gdbus-tool.c:95
 #, c-format
 msgid ""
 "Commands:\n"
@@ -985,61 +993,61 @@ msgstr ""
 "\n"
 "Lieto “%s KOMANDA --help”, lai saņemtu palīdzību par katru komandu.\n"
 
-#: gio/gdbus-tool.c:185 gio/gdbus-tool.c:252 gio/gdbus-tool.c:324
-#: gio/gdbus-tool.c:348 gio/gdbus-tool.c:834 gio/gdbus-tool.c:1171
-#: gio/gdbus-tool.c:1613
+#: ../gio/gdbus-tool.c:167 ../gio/gdbus-tool.c:234 ../gio/gdbus-tool.c:306
+#: ../gio/gdbus-tool.c:330 ../gio/gdbus-tool.c:811 ../gio/gdbus-tool.c:1150
+#: ../gio/gdbus-tool.c:1592
 #, c-format
 msgid "Error: %s\n"
 msgstr "Kļūda: %s\n"
 
-#: gio/gdbus-tool.c:196 gio/gdbus-tool.c:265 gio/gdbus-tool.c:1629
+#: ../gio/gdbus-tool.c:178 ../gio/gdbus-tool.c:247 ../gio/gdbus-tool.c:1608
 #, c-format
 msgid "Error parsing introspection XML: %s\n"
 msgstr "Kļūda, parsējot introspekcijas XML: %s\n"
 
-#: gio/gdbus-tool.c:234
+#: ../gio/gdbus-tool.c:216
 #, c-format
 msgid "Error: %s is not a valid name\n"
 msgstr "Kļūda — %s nav derīgs nosaukums\n"
 
-#: gio/gdbus-tool.c:382
+#: ../gio/gdbus-tool.c:364
 msgid "Connect to the system bus"
 msgstr "Savienoties ar sistēmas kopni"
 
-#: gio/gdbus-tool.c:383
+#: ../gio/gdbus-tool.c:365
 msgid "Connect to the session bus"
 msgstr "Savienoties ar sesijas kopni"
 
-#: gio/gdbus-tool.c:384
+#: ../gio/gdbus-tool.c:366
 msgid "Connect to given D-Bus address"
 msgstr "Savienoties ar doto D-Bus adresi"
 
-#: gio/gdbus-tool.c:394
+#: ../gio/gdbus-tool.c:376
 msgid "Connection Endpoint Options:"
 msgstr "Savienojuma galapunktu opcijas:"
 
-#: gio/gdbus-tool.c:395
+#: ../gio/gdbus-tool.c:377
 msgid "Options specifying the connection endpoint"
 msgstr "Opcijas, kas norāda savienojuma galapunktus"
 
-#: gio/gdbus-tool.c:417
+#: ../gio/gdbus-tool.c:399
 #, c-format
 msgid "No connection endpoint specified"
 msgstr "Nav norādīti savienojuma galapunkti"
 
-#: gio/gdbus-tool.c:427
+#: ../gio/gdbus-tool.c:409
 #, c-format
 msgid "Multiple connection endpoints specified"
 msgstr "Norādīti vairāki savienojuma galapunkti"
 
-#: gio/gdbus-tool.c:497
+#: ../gio/gdbus-tool.c:479
 #, 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:506
+#: ../gio/gdbus-tool.c:488
 #, c-format
 msgid ""
 "Warning: According to introspection data, method “%s” does not exist on "
@@ -1048,161 +1056,169 @@ msgstr ""
 "Brīdinājums — spriežot pēc introspekcijas datiem, metode “%s” neeksistē uz "
 "saskarnes “%s”\n"
 
-#: gio/gdbus-tool.c:568
+#: ../gio/gdbus-tool.c:550
 msgid "Optional destination for signal (unique name)"
 msgstr "Neobligāts mērķis signālam (unikāls nosaukums)"
 
-#: gio/gdbus-tool.c:569
+#: ../gio/gdbus-tool.c:551
 msgid "Object path to emit signal on"
 msgstr "Objekta ceļš, uz kura izplatīt signālu"
 
-#: gio/gdbus-tool.c:570
+#: ../gio/gdbus-tool.c:552
 msgid "Signal and interface name"
 msgstr "Signāls un saskarnes nosaukums"
 
-#: gio/gdbus-tool.c:603
+#: ../gio/gdbus-tool.c:587
 msgid "Emit a signal."
 msgstr "Izplatīt signālu."
 
-#: gio/gdbus-tool.c:658 gio/gdbus-tool.c:965 gio/gdbus-tool.c:1715
-#: gio/gdbus-tool.c:1944 gio/gdbus-tool.c:2164
+#: ../gio/gdbus-tool.c:642 ../gio/gdbus-tool.c:944 ../gio/gdbus-tool.c:1698
+#: ../gio/gdbus-tool.c:1931 ../gio/gdbus-tool.c:2152
 #, c-format
 msgid "Error connecting: %s\n"
 msgstr "Kļūda savienojot — %s\n"
 
-#: gio/gdbus-tool.c:678
+#: ../gio/gdbus-tool.c:659 ../gio/gdbus-tool.c:961 ../gio/gdbus-tool.c:1715
+#: ../gio/gdbus-tool.c:1956
+#, c-format
+msgid "Error: Destination is not specified\n"
+msgstr "Kļūda — nav norādīts galamērķis\n"
+
+#: ../gio/gdbus-tool.c:670
 #, 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:697 gio/gdbus-tool.c:1008 gio/gdbus-tool.c:1758
+#: ../gio/gdbus-tool.c:685 ../gio/gdbus-tool.c:987 ../gio/gdbus-tool.c:1741
+#, c-format
 msgid "Error: Object path is not specified\n"
 msgstr "Kļūda — nav norādīts objekta ceļš\n"
 
-#: gio/gdbus-tool.c:720 gio/gdbus-tool.c:1028 gio/gdbus-tool.c:1778
-#: gio/gdbus-tool.c:2015
+#: ../gio/gdbus-tool.c:705 ../gio/gdbus-tool.c:1007 ../gio/gdbus-tool.c:1761
+#: ../gio/gdbus-tool.c:2002
 #, 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:740
+#: ../gio/gdbus-tool.c:720
+#, c-format
+#| msgid "Error: Method name is not specified\n"
 msgid "Error: Signal name is not specified\n"
 msgstr "Kļūda — nav norādīts signāla nosaukums\n"
 
-#: gio/gdbus-tool.c:754
+#: ../gio/gdbus-tool.c:731
 #, c-format
+#| msgid "Error: Method name “%s” is invalid\n"
 msgid "Error: Signal name “%s” is invalid\n"
 msgstr "Kļūda — signāla nosaukums “%s” nav derīgs\n"
 
-#: gio/gdbus-tool.c:766
+#: ../gio/gdbus-tool.c:743
 #, 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:772
+#: ../gio/gdbus-tool.c:749
 #, 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:809 gio/gdbus-tool.c:1140
+#: ../gio/gdbus-tool.c:786 ../gio/gdbus-tool.c:1119
 #, c-format
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Kļūda, parsējot parametru %d — %s\n"
 
-#: gio/gdbus-tool.c:841
+#: ../gio/gdbus-tool.c:818
 #, c-format
 msgid "Error flushing connection: %s\n"
 msgstr "Kļūda, nopludinot savienojumu — %s\n"
 
-#: gio/gdbus-tool.c:868
+#: ../gio/gdbus-tool.c:845
 msgid "Destination name to invoke method on"
 msgstr "Mērķa nosaukums, uz kura izsaukt metodi"
 
-#: gio/gdbus-tool.c:869
+#: ../gio/gdbus-tool.c:846
 msgid "Object path to invoke method on"
 msgstr "Objekta ceļš, uz kura izsaukt metodi"
 
-#: gio/gdbus-tool.c:870
+#: ../gio/gdbus-tool.c:847
 msgid "Method and interface name"
 msgstr "Metode un saskarnes nosaukums"
 
-#: gio/gdbus-tool.c:871
+#: ../gio/gdbus-tool.c:848
 msgid "Timeout in seconds"
 msgstr "Noildze sekundēs"
 
-#: gio/gdbus-tool.c:910
+#: ../gio/gdbus-tool.c:889
 msgid "Invoke a method on a remote object."
 msgstr "Izsaukt metodi uz attālināta objekta."
 
-#: gio/gdbus-tool.c:982 gio/gdbus-tool.c:1732 gio/gdbus-tool.c:1969
-msgid "Error: Destination is not specified\n"
-msgstr "Kļūda — nav norādīts galamērķis\n"
-
-#: gio/gdbus-tool.c:993 gio/gdbus-tool.c:1749 gio/gdbus-tool.c:1980
+#: ../gio/gdbus-tool.c:972 ../gio/gdbus-tool.c:1732 ../gio/gdbus-tool.c:1967
 #, 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:1043
+#: ../gio/gdbus-tool.c:1022
+#, c-format
 msgid "Error: Method name is not specified\n"
 msgstr "Kļūda — nav norādīts metodes nosaukums\n"
 
-#: gio/gdbus-tool.c:1054
+#: ../gio/gdbus-tool.c:1033
 #, c-format
 msgid "Error: Method name “%s” is invalid\n"
 msgstr "Kļūda — metodes nosaukums “%s” nav derīgs\n"
 
-#: gio/gdbus-tool.c:1132
+#: ../gio/gdbus-tool.c:1111
 #, 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:1576
+#: ../gio/gdbus-tool.c:1555
 msgid "Destination name to introspect"
 msgstr "Mērķa nosaukums, kam veikt introspekciju"
 
-#: gio/gdbus-tool.c:1577
+#: ../gio/gdbus-tool.c:1556
 msgid "Object path to introspect"
 msgstr "Objekta ceļš, kam veikt introspekciju"
 
-#: gio/gdbus-tool.c:1578
+#: ../gio/gdbus-tool.c:1557
 msgid "Print XML"
 msgstr "Drukāt XML"
 
-#: gio/gdbus-tool.c:1579
+#: ../gio/gdbus-tool.c:1558
 msgid "Introspect children"
 msgstr "Veikt introspekciju bērniem"
 
-#: gio/gdbus-tool.c:1580
+#: ../gio/gdbus-tool.c:1559
 msgid "Only print properties"
 msgstr "Tikai drukāšanas īpašības"
 
-#: gio/gdbus-tool.c:1667
+#: ../gio/gdbus-tool.c:1650
 msgid "Introspect a remote object."
 msgstr "Veikt introspekciju attālinātam objektam."
 
-#: gio/gdbus-tool.c:1870
+#: ../gio/gdbus-tool.c:1853
 msgid "Destination name to monitor"
 msgstr "Mērķa nosaukums uz pārraugu"
 
-#: gio/gdbus-tool.c:1871
+#: ../gio/gdbus-tool.c:1854
 msgid "Object path to monitor"
 msgstr "Objekta ceļš uz pārraugu"
 
-#: gio/gdbus-tool.c:1896
+#: ../gio/gdbus-tool.c:1883
 msgid "Monitor a remote object."
 msgstr "Pārraudzīt attālinātu objektu."
 
-#: gio/gdbus-tool.c:1954
+#: ../gio/gdbus-tool.c:1941
+#, c-format
 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:2078
+#: ../gio/gdbus-tool.c:2065
 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:2081
+#: ../gio/gdbus-tool.c:2068
 msgid ""
 "Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
 "(default)"
@@ -1210,130 +1226,135 @@ msgstr ""
 "Cik ilgi gaidīt, pirms iziet ar kļūdu (sekundēs); 0 nozīmē bez noildzes "
 "(noklusējuma)"
 
-#: gio/gdbus-tool.c:2129
+#: ../gio/gdbus-tool.c:2116
 msgid "[OPTION…] BUS-NAME"
 msgstr "[OPCIJA…] KOPNES-NOSAUKUMS"
 
-#: gio/gdbus-tool.c:2130
+#: ../gio/gdbus-tool.c:2118
 msgid "Wait for a bus name to appear."
 msgstr "Gaidīt līdz parādās kopnes nosaukums."
 
-#: gio/gdbus-tool.c:2206
+#: ../gio/gdbus-tool.c:2194
+#, c-format
 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:2211
+#: ../gio/gdbus-tool.c:2199
+#, c-format
 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:2216
+#: ../gio/gdbus-tool.c:2204
+#, c-format
 msgid "Error: Too many arguments.\n"
 msgstr "Kļūda — pārāk daudz argumentu.\n"
 
-#: gio/gdbus-tool.c:2224 gio/gdbus-tool.c:2231
+#: ../gio/gdbus-tool.c:2212 ../gio/gdbus-tool.c:2219
 #, 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:2023 gio/gdesktopappinfo.c:4633
+#: ../gio/gdesktopappinfo.c:2001 ../gio/gdesktopappinfo.c:4566
 msgid "Unnamed"
 msgstr "Nenosaukts"
 
-#: gio/gdesktopappinfo.c:2433
+#: ../gio/gdesktopappinfo.c:2411
 msgid "Desktop file didn’t specify Exec field"
 msgstr "Darbvirsmas datne nenorādīja Exec lauku"
 
-#: gio/gdesktopappinfo.c:2692
+#: ../gio/gdesktopappinfo.c:2701
 msgid "Unable to find terminal required for application"
 msgstr "Nevarēja atrast termināli, kas ir nepieciešams lietotnei"
 
-#: gio/gdesktopappinfo.c:3202
+#: ../gio/gdesktopappinfo.c:3135
 #, 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:3206
+#: ../gio/gdesktopappinfo.c:3139
 #, 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:3446 gio/gdesktopappinfo.c:3470
+#: ../gio/gdesktopappinfo.c:3379 ../gio/gdesktopappinfo.c:3403
 msgid "Application information lacks an identifier"
 msgstr "Lietotnes informācijai trūkst identifikatora"
 
-#: gio/gdesktopappinfo.c:3704
+#: ../gio/gdesktopappinfo.c:3637
 #, c-format
 msgid "Can’t create user desktop file %s"
 msgstr "Nevar izveidot lietotāja darbvirsmas datni %s"
 
-#: gio/gdesktopappinfo.c:3838
+#: ../gio/gdesktopappinfo.c:3771
 #, c-format
 msgid "Custom definition for %s"
 msgstr "Pielāgotas %s definīcijas"
 
-#: gio/gdrive.c:417
+#: ../gio/gdrive.c:417
 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:495
 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:571
 msgid "drive doesn’t implement polling for media"
 msgstr "dzinis neatbalsta medija aptauju"
 
-#: gio/gdrive.c:778
+#: ../gio/gdrive.c:776
 msgid "drive doesn’t implement start"
 msgstr "dzinis neatbalsta startēšanu"
 
-#: gio/gdrive.c:880
+#: ../gio/gdrive.c:878
 msgid "drive doesn’t implement stop"
 msgstr "dzinis neatbalsta apturēšanu"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: ../gio/gdummytlsbackend.c:195 ../gio/gdummytlsbackend.c:317
+#: ../gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "TLS atbalsts nav pieejams"
 
-#: gio/gdummytlsbackend.c:419
+#: ../gio/gdummytlsbackend.c:419
 msgid "DTLS support is not available"
 msgstr "DTLS atbalsts nav pieejams"
 
-#: gio/gemblem.c:323
+#: ../gio/gemblem.c:323
 #, 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:333
 #, 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:362
 #, 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:372
 #, 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:395
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr "Gaidīja GEmblem priekš GEmblemedIcon"
 
-#: 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:3738 gio/gfile.c:3793
-#: gio/gfile.c:4029 gio/gfile.c:4071 gio/gfile.c:4539 gio/gfile.c:4950
-#: gio/gfile.c:5035 gio/gfile.c:5125 gio/gfile.c:5222 gio/gfile.c:5309
-#: gio/gfile.c:5410 gio/gfile.c:7988 gio/gfile.c:8078 gio/gfile.c:8162
-#: gio/win32/gwinhttpfile.c:437
+#: ../gio/gfile.c:1071 ../gio/gfile.c:1309 ../gio/gfile.c:1447
+#: ../gio/gfile.c:1685 ../gio/gfile.c:1740 ../gio/gfile.c:1798
+#: ../gio/gfile.c:1882 ../gio/gfile.c:1939 ../gio/gfile.c:2003
+#: ../gio/gfile.c:2058 ../gio/gfile.c:3725 ../gio/gfile.c:3780
+#: ../gio/gfile.c:4016 ../gio/gfile.c:4058 ../gio/gfile.c:4526
+#: ../gio/gfile.c:4937 ../gio/gfile.c:5022 ../gio/gfile.c:5112
+#: ../gio/gfile.c:5209 ../gio/gfile.c:5296 ../gio/gfile.c:5397
+#: ../gio/gfile.c:7975 ../gio/gfile.c:8065 ../gio/gfile.c:8149
+#: ../gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Darbība nav atbalstīta"
 
@@ -1341,205 +1362,205 @@ msgstr "Darbība nav atbalstīta"
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
 #.
-#: gio/gfile.c:1575
+#: ../gio/gfile.c:1570
 msgid "Containing mount does not exist"
 msgstr "Saturošais montējums neeksistē"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2399
+#: ../gio/gfile.c:2617 ../gio/glocalfile.c:2446
 msgid "Can’t copy over directory"
 msgstr "Nevar kopēt virsū mapei"
 
-#: gio/gfile.c:2682
+#: ../gio/gfile.c:2677
 msgid "Can’t copy directory over directory"
 msgstr "Nevar uzkopēt mapi virsū mapei"
 
-#: gio/gfile.c:2690
+#: ../gio/gfile.c:2685
 msgid "Target file exists"
 msgstr "Mērķa datne eksistē"
 
-#: gio/gfile.c:2709
+#: ../gio/gfile.c:2704
 msgid "Can’t recursively copy directory"
 msgstr "Nevar rekursīvi kopēt mapi"
 
-#: gio/gfile.c:2984
+#: ../gio/gfile.c:2979
 msgid "Splice not supported"
 msgstr "Splice nav atbalstīts"
 
-#: gio/gfile.c:2988 gio/gfile.c:3033
+#: ../gio/gfile.c:2983 ../gio/gfile.c:3027
 #, c-format
 msgid "Error splicing file: %s"
 msgstr "Kļūda, datnei veicot splice — %s"
 
-#: gio/gfile.c:3149
+#: ../gio/gfile.c:3136
 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:3153
+#: ../gio/gfile.c:3140
 msgid "Copy (reflink/clone) is not supported or invalid"
 msgstr "Kopēšana (reflink/clone) nav atbalstīta vai nav derīga"
 
-#: gio/gfile.c:3158
+#: ../gio/gfile.c:3145
 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:3221
+#: ../gio/gfile.c:3208
 msgid "Can’t copy special file"
 msgstr "Nevar kopēt īpašu datni"
 
-#: gio/gfile.c:4019
+#: ../gio/gfile.c:4006
 msgid "Invalid symlink value given"
 msgstr "Ir dota nederīga simboliskās saites vērtība"
 
-#: gio/gfile.c:4180
+#: ../gio/gfile.c:4167
 msgid "Trash not supported"
 msgstr "Miskaste nav atbalstīta"
 
-#: gio/gfile.c:4292
+#: ../gio/gfile.c:4279
 #, c-format
 msgid "File names cannot contain “%c”"
 msgstr "Datņu nosaukums nevar saturēt “%c”"
 
-#: gio/gfile.c:6773 gio/gvolume.c:364
+#: ../gio/gfile.c:6760 ../gio/gvolume.c:363
 msgid "volume doesn’t implement mount"
 msgstr "sējums neatbalsta montēšanu"
 
-#: gio/gfile.c:6882
+#: ../gio/gfile.c:6869
 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:212
 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:219 ../gio/gfileenumerator.c:278
+#: ../gio/gfileenumerator.c:377 ../gio/gfileenumerator.c:476
 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:368 ../gio/gfileenumerator.c:467
 msgid "File enumerator is already closed"
 msgstr "Datņu skaitītājs jau ir aizvērts"
 
-#: gio/gfileicon.c:236
+#: ../gio/gfileicon.c:236
 #, c-format
 msgid "Can’t handle version %d of GFileIcon encoding"
 msgstr "Nevar apstrādāt GFileIcon versijas %d kodējumu"
 
-#: gio/gfileicon.c:246
+#: ../gio/gfileicon.c:246
 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:149 ../gio/gfileinputstream.c:394
+#: ../gio/gfileiostream.c:167 ../gio/gfileoutputstream.c:164
+#: ../gio/gfileoutputstream.c:497
 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:325 ../gio/gfileiostream.c:379
+#: ../gio/gfileoutputstream.c:371
 msgid "Seek not supported on stream"
 msgstr "Uz plūsmas meklēšana netiek atbalstīta"
 
-#: gio/gfileinputstream.c:369
+#: ../gio/gfileinputstream.c:369
 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:455 ../gio/gfileoutputstream.c:447
 msgid "Truncate not supported on stream"
 msgstr "Uz plūsmas apraušana nav atbalstīta"
 
-#: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
+#: ../gio/ghttpproxy.c:91 ../gio/gresolver.c:410 ../gio/gresolver.c:476
+#: ../glib/gconvert.c:1786
 msgid "Invalid hostname"
 msgstr "Nepareizs resursdatora nosaukums"
 
-#: gio/ghttpproxy.c:143
+#: ../gio/ghttpproxy.c:143
 msgid "Bad HTTP proxy reply"
 msgstr "Slikta HTTP starpnieka atbilde"
 
-#: gio/ghttpproxy.c:159
+#: ../gio/ghttpproxy.c:159
 msgid "HTTP proxy connection not allowed"
 msgstr "Nav atļauts savienojums ar HTTP starpnieku"
 
-#: gio/ghttpproxy.c:164
+#: ../gio/ghttpproxy.c:164
 msgid "HTTP proxy authentication failed"
 msgstr "Neizdevās autentificēšanās ar HTTP starpnieku"
 
-#: gio/ghttpproxy.c:167
+#: ../gio/ghttpproxy.c:167
 msgid "HTTP proxy authentication required"
 msgstr "Nepieciešama HTTP starpniekservera autentifikācija"
 
-#: gio/ghttpproxy.c:171
+#: ../gio/ghttpproxy.c:171
 #, c-format
 msgid "HTTP proxy connection failed: %i"
 msgstr "Neizdevās savienojums ar HTTP starpnieku: %i"
 
-#: gio/ghttpproxy.c:269
+#: ../gio/ghttpproxy.c:269
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "HTTP starpniekserveris negaidīti aizvēra savienojumu."
 
-#: gio/gicon.c:290
+#: ../gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Nepareizs marķieru skaits (%d)"
 
-#: gio/gicon.c:310
+#: ../gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Nav tips klases nosaukumam %s"
 
-#: gio/gicon.c:320
+#: ../gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "Tips %s nav realizējis GIcon saskarni"
 
-#: gio/gicon.c:331
+#: ../gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "Tips %s nav klasē"
 
-#: gio/gicon.c:345
+#: ../gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Slikti formēts versijas numurs — %s"
 
-#: gio/gicon.c:359
+#: ../gio/gicon.c:359
 #, 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:461
+#: ../gio/gicon.c:461
 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:182
 msgid "No address specified"
 msgstr "Nav norādītas adreses"
 
-#: gio/ginetaddressmask.c:190
+#: ../gio/ginetaddressmask.c:190
 #, 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:223
 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:300
 #, 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:220
+#: ../gio/ginetsocketaddress.c:203 ../gio/ginetsocketaddress.c:220
+#: ../gio/gnativesocketaddress.c:109 ../gio/gunixsocketaddress.c:218
 msgid "Not enough space for socket address"
 msgstr "Nepietiek vietas ligzdas adresei"
 
-#: gio/ginetsocketaddress.c:235
+#: ../gio/ginetsocketaddress.c:235
 msgid "Unsupported socket address"
 msgstr "Neatbalstīta ligzdas adrese"
 
-#: gio/ginputstream.c:188
+#: ../gio/ginputstream.c:188
 msgid "Input stream doesn’t implement read"
 msgstr "Ievades plūsma neatbalsta lasīšanu"
 
@@ -1549,122 +1570,129 @@ 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:1218 gio/giostream.c:310 gio/goutputstream.c:1671
+#: ../gio/ginputstream.c:1218 ../gio/giostream.c:310
+#: ../gio/goutputstream.c:1671
 msgid "Stream has outstanding operation"
 msgstr "Plūsmai ir neizpildīta darbība"
 
-#: gio/gio-tool.c:160
+#: ../gio/gio-tool.c:160
 msgid "Copy with file"
 msgstr "Kopēt ar datni"
 
-#: gio/gio-tool.c:164
+#: ../gio/gio-tool.c:164
 msgid "Keep with file when moved"
 msgstr "Paturēt ar datni, kad pārvietots"
 
-#: gio/gio-tool.c:205
+#: ../gio/gio-tool.c:205
 msgid "“version” takes no arguments"
 msgstr "“version” nepieņem argumentus"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:857
+#: ../gio/gio-tool.c:207 ../gio/gio-tool.c:223 ../glib/goption.c:857
 msgid "Usage:"
 msgstr "Lietošana:"
 
-#: gio/gio-tool.c:210
+#: ../gio/gio-tool.c:210
 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:224
+msgid "[ARGS...]"
+msgstr "[PARAM...]"
+
+#: ../gio/gio-tool.c:226
 msgid "Commands:"
 msgstr "Komandas:"
 
-#: gio/gio-tool.c:229
+#: ../gio/gio-tool.c:229
 msgid "Concatenate files to standard output"
 msgstr "Savienot datnes uz standarta izvades"
 
-#: gio/gio-tool.c:230
+#: ../gio/gio-tool.c:230
 msgid "Copy one or more files"
 msgstr "Kopēt vienu vai vairākas datnes"
 
-#: gio/gio-tool.c:231
+#: ../gio/gio-tool.c:231
 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:232
 msgid "List the contents of locations"
 msgstr "Uzskaitīt atrašanās vietu saturu"
 
-#: gio/gio-tool.c:233
+#: ../gio/gio-tool.c:233
 msgid "Get or set the handler for a mimetype"
 msgstr "Iegūt vai iestatīt apdarinātāju priekš mimetype"
 
-#: gio/gio-tool.c:234
+#: ../gio/gio-tool.c:234
 msgid "Create directories"
 msgstr "Izveidot mapes"
 
-#: gio/gio-tool.c:235
+#: ../gio/gio-tool.c:235
 msgid "Monitor files and directories for changes"
 msgstr "Pārraudzīt datnes un mapes pēc izmaiņām"
 
-#: gio/gio-tool.c:236
+#: ../gio/gio-tool.c:236
 msgid "Mount or unmount the locations"
 msgstr "Montēt vai atmontēt atrašanās vietas"
 
-#: gio/gio-tool.c:237
+#: ../gio/gio-tool.c:237
 msgid "Move one or more files"
 msgstr "Pārvietot vienu vai vairākas datnes"
 
-#: gio/gio-tool.c:238
+#: ../gio/gio-tool.c:238
 msgid "Open files with the default application"
 msgstr "Atver datnes ar noklusējuma lietotni"
 
-#: gio/gio-tool.c:239
+#: ../gio/gio-tool.c:239
 msgid "Rename a file"
 msgstr "Pārsaukt datni"
 
-#: gio/gio-tool.c:240
+#: ../gio/gio-tool.c:240
 msgid "Delete one or more files"
 msgstr "Dzēst vienu vai vairākas datnes"
 
-#: gio/gio-tool.c:241
+#: ../gio/gio-tool.c:241
 msgid "Read from standard input and save"
 msgstr "Lasīt no standarta ievades un saglabāt"
 
-#: gio/gio-tool.c:242
+#: ../gio/gio-tool.c:242
 msgid "Set a file attribute"
 msgstr "Iestatīt datnes atribūtu"
 
-#: gio/gio-tool.c:243
+#: ../gio/gio-tool.c:243
 msgid "Move files or directories to the trash"
 msgstr "Pārvietot datnes vai mapes uz miskasti"
 
-#: gio/gio-tool.c:244
+#: ../gio/gio-tool.c:244
 msgid "Lists the contents of locations in a tree"
 msgstr "Uzskaita atrašanās vietu saturu kokā"
 
-#: gio/gio-tool.c:246
+#: ../gio/gio-tool.c:246
 #, 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:87
 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: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:113
-#: 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
+#: ../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:1141
+#: ../gio/gio-tool-open.c:113 ../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 "LOCATION"
 msgstr "ATRAŠANĀS_VIETA"
 
-#: gio/gio-tool-cat.c:138
+#: ../gio/gio-tool-cat.c:138
 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:140
 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"
@@ -1675,56 +1703,58 @@ 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:313 gio/gio-tool-mkdir.c:76
-#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1263 gio/gio-tool-open.c:139
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
+#: ../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-open.c:139 ../gio/gio-tool-remove.c:72
 msgid "No locations given"
 msgstr "Nav dotas atrašanās vietas"
 
-#: gio/gio-tool-copy.c:42 gio/gio-tool-move.c:38
+#: ../gio/gio-tool-copy.c:42 ../gio/gio-tool-move.c:38
 msgid "No target directory"
 msgstr "Nav mērķa mapes"
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:39
+#: ../gio/gio-tool-copy.c:43 ../gio/gio-tool-move.c:39
 msgid "Show progress"
 msgstr "Rādīt progresu"
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:40
+#: ../gio/gio-tool-copy.c:44 ../gio/gio-tool-move.c:40
 msgid "Prompt before overwrite"
 msgstr "Uzvedne pirms pārrakstīšanas"
 
-#: gio/gio-tool-copy.c:45
+#: ../gio/gio-tool-copy.c:45
 msgid "Preserve all attributes"
 msgstr "Saglabāt visus atribūtus"
 
-#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: ../gio/gio-tool-copy.c:46 ../gio/gio-tool-move.c:41
+#: ../gio/gio-tool-save.c:49
 msgid "Backup existing destination files"
 msgstr "Izveidot rezerves kopijas pastāvošajām mērķa datnēm"
 
-#: gio/gio-tool-copy.c:47
+#: ../gio/gio-tool-copy.c:47
 msgid "Never follow symbolic links"
 msgstr "Nekad nesekot simboliskajām saitēm"
 
-#: gio/gio-tool-copy.c:72 gio/gio-tool-move.c:67
+#: ../gio/gio-tool-copy.c:72 ../gio/gio-tool-move.c:67
 #, 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:98 gio/gio-tool-move.c:94
+#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
 msgid "SOURCE"
 msgstr "AVOTS"
 
 #. 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:98 ../gio/gio-tool-move.c:94
+#: ../gio/gio-tool-save.c:160
 msgid "DESTINATION"
 msgstr "GALAMĒRĶIS"
 
-#: gio/gio-tool-copy.c:103
+#: ../gio/gio-tool-copy.c:103
 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:105
+#: ../gio/gio-tool-copy.c:105
 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"
@@ -1735,88 +1765,93 @@ msgstr ""
 "lietot kaut ko līdzīgu smb://serveris/resurss/datne.txt kā\n"
 "atrašanās vietu."
 
-#: gio/gio-tool-copy.c:147
+#: ../gio/gio-tool-copy.c:147
 #, c-format
 msgid "Destination %s is not a directory"
 msgstr "Mērķis %s nav mape"
 
-#: gio/gio-tool-copy.c:192 gio/gio-tool-move.c:186
+#: ../gio/gio-tool-copy.c:192 ../gio/gio-tool-move.c:185
 #, c-format
 msgid "%s: overwrite “%s”? "
 msgstr "%s: pārrakstīt “%s”? "
 
-#: gio/gio-tool-info.c:34
+#: ../gio/gio-tool-info.c:34
 msgid "List writable attributes"
 msgstr "Uzskaitīt rakstāmos atribūtus"
 
-#: gio/gio-tool-info.c:35
+#: ../gio/gio-tool-info.c:35
 msgid "Get file system info"
 msgstr "Iegūt datņu sistēmas informāciju"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "The attributes to get"
 msgstr "Atribūti, kurus iegūt"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "ATTRIBUTES"
 msgstr "ATRIBŪTI"
 
-#: gio/gio-tool-info.c:37 gio/gio-tool-list.c:38 gio/gio-tool-set.c:34
+#: ../gio/gio-tool-info.c:37 ../gio/gio-tool-list.c:38 ../gio/gio-tool-set.c:34
 msgid "Don’t follow symbolic links"
 msgstr "Nesekot simboliskajām saitēm"
 
-#: gio/gio-tool-info.c:75
+#: ../gio/gio-tool-info.c:75
+#, c-format
 msgid "attributes:\n"
 msgstr "atribūti:\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:127
+#: ../gio/gio-tool-info.c:127
 #, 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:132
+#: ../gio/gio-tool-info.c:132
 #, c-format
 msgid "edit name: %s\n"
 msgstr "rediģēt nosaukumu: %s\n"
 
-#: gio/gio-tool-info.c:138
+#: ../gio/gio-tool-info.c:138
 #, c-format
 msgid "name: %s\n"
 msgstr "nosaukums: %s\n"
 
-#: gio/gio-tool-info.c:145
+#: ../gio/gio-tool-info.c:145
 #, c-format
 msgid "type: %s\n"
 msgstr "tips: %s\n"
 
-#: gio/gio-tool-info.c:151
+#: ../gio/gio-tool-info.c:151
+#, c-format
 msgid "size: "
 msgstr "izmērs: "
 
-#: gio/gio-tool-info.c:156
+#: ../gio/gio-tool-info.c:156
+#, c-format
 msgid "hidden\n"
 msgstr "paslēpts\n"
 
-#: gio/gio-tool-info.c:159
+#: ../gio/gio-tool-info.c:159
 #, c-format
 msgid "uri: %s\n"
 msgstr "uri: %s\n"
 
-#: gio/gio-tool-info.c:228
+#: ../gio/gio-tool-info.c:228
+#, c-format
 msgid "Settable attributes:\n"
 msgstr "Iestatāmie atribūti:\n"
 
-#: gio/gio-tool-info.c:252
+#: ../gio/gio-tool-info.c:252
+#, c-format
 msgid "Writable attribute namespaces:\n"
 msgstr "Rakstāmās atribūtu vārdtelpas:\n"
 
-#: gio/gio-tool-info.c:287
+#: ../gio/gio-tool-info.c:287
 msgid "Show information about locations."
 msgstr "Parādīt informāciju par atrašanās vietām."
 
-#: gio/gio-tool-info.c:289
+#: ../gio/gio-tool-info.c:289
 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"
@@ -1831,23 +1866,23 @@ msgstr ""
 "standard::icon, vai tikai ar vārdtelpu, piemēram, unix, vai ar “*”, kurš\n"
 "atbilst visiem atribūtiem"
 
-#: gio/gio-tool-list.c:36 gio/gio-tool-tree.c:32
+#: ../gio/gio-tool-list.c:36 ../gio/gio-tool-tree.c:32
 msgid "Show hidden files"
 msgstr "Rādīt slēptās datnes"
 
-#: gio/gio-tool-list.c:37
+#: ../gio/gio-tool-list.c:37
 msgid "Use a long listing format"
 msgstr "Lietot garo uzskaitījuma formātu"
 
-#: gio/gio-tool-list.c:39
+#: ../gio/gio-tool-list.c:39
 msgid "Print full URIs"
 msgstr "Drukāt pilnos URI"
 
-#: gio/gio-tool-list.c:170
+#: ../gio/gio-tool-list.c:170
 msgid "List the contents of the locations."
 msgstr "Uzskaitīt atrašanās vietu saturu."
 
-#: gio/gio-tool-list.c:172
+#: ../gio/gio-tool-list.c:172
 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"
@@ -1861,19 +1896,19 @@ msgstr ""
 "standard::icon"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "MIMETYPE"
 msgstr "MIME_TIPS"
 
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "HANDLER"
 msgstr "APDARINĀTĀJS"
 
-#: gio/gio-tool-mime.c:76
+#: ../gio/gio-tool-mime.c:76
 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:78
 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"
@@ -1883,55 +1918,59 @@ 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:100
 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:116
 #, 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:122
 #, 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:127
+#, c-format
 msgid "Registered applications:\n"
 msgstr "Reģistrētās lietotnes:\n"
 
-#: gio/gio-tool-mime.c:129
+#: ../gio/gio-tool-mime.c:129
+#, c-format
 msgid "No registered applications\n"
 msgstr "Nav reģistrētu lietotņu\n"
 
-#: gio/gio-tool-mime.c:140
+#: ../gio/gio-tool-mime.c:140
+#, c-format
 msgid "Recommended applications:\n"
 msgstr "Ieteiktās lietotnes:\n"
 
-#: gio/gio-tool-mime.c:142
+#: ../gio/gio-tool-mime.c:142
+#, c-format
 msgid "No recommended applications\n"
 msgstr "Nav ieteikto lietotņu\n"
 
-#: gio/gio-tool-mime.c:162
+#: ../gio/gio-tool-mime.c:162
 #, 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:168
 #, 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:31
 msgid "Create parent directories"
 msgstr "Izveidot vecākmapes"
 
-#: gio/gio-tool-mkdir.c:52
+#: ../gio/gio-tool-mkdir.c:52
 msgid "Create directories."
 msgstr "Izveidot mapes."
 
-#: gio/gio-tool-mkdir.c:54
+#: ../gio/gio-tool-mkdir.c:54
 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"
@@ -1942,140 +1981,112 @@ 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:37
 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:39
 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:41
 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:43
 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:45
 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:47
 msgid "Watch for mount events"
 msgstr "Novērot montēšanas notikumus"
 
-#: gio/gio-tool-monitor.c:208
+#: ../gio/gio-tool-monitor.c:208
 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:58
 msgid "Mount as mountable"
 msgstr "Montēt kā montējamu"
 
-#: gio/gio-tool-mount.c:64
+#: ../gio/gio-tool-mount.c:59
 msgid "Mount volume with device file"
 msgstr "Montēt sējumu ar ierīces datni"
 
-#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+#: ../gio/gio-tool-mount.c:59
 msgid "DEVICE"
 msgstr "IERĪCE"
 
-#: gio/gio-tool-mount.c:65
+#: ../gio/gio-tool-mount.c:60
 msgid "Unmount"
 msgstr "Atmontēt"
 
-#: gio/gio-tool-mount.c:66
+#: ../gio/gio-tool-mount.c:61
 msgid "Eject"
 msgstr "Izgrūst"
 
-#: gio/gio-tool-mount.c:67
-#| msgid "Mount volume with device file"
-msgid "Stop drive with device file"
-msgstr "Apturēt dzini ar ierīces datni"
-
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:62
 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:62
 msgid "SCHEME"
 msgstr "SHĒMA"
 
-#: gio/gio-tool-mount.c:69
+#: ../gio/gio-tool-mount.c:63
 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:64
 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:66
 msgid "List"
 msgstr "Saraksts"
 
-#: gio/gio-tool-mount.c:73
+#: ../gio/gio-tool-mount.c:67
 msgid "Monitor events"
 msgstr "Pārraudzīt notikumus"
 
-#: gio/gio-tool-mount.c:74
+#: ../gio/gio-tool-mount.c:68
 msgid "Show extra information"
 msgstr "Rādīt papildu informāciju"
 
-#: gio/gio-tool-mount.c:75
-msgid "The numeric PIM when unlocking a VeraCrypt volume"
-msgstr "Skaitliskais PIM, kad atslēdz VeraCrypt sējumu"
-
-#: gio/gio-tool-mount.c:75
-#| msgctxt "GDateTime"
-#| msgid "PM"
-msgid "PIM"
-msgstr "PIM"
-
-#: gio/gio-tool-mount.c:76
-msgid "Mount a TCRYPT hidden volume"
-msgstr "Montēt TCRYPT slēpto sējumu"
-
-#: gio/gio-tool-mount.c:77
-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:246 ../gio/gio-tool-mount.c:276
 msgid "Anonymous access denied"
 msgstr "Anonīma pieeja liegta"
 
-#: gio/gio-tool-mount.c:522
-#| msgid "No volume for device file"
-msgid "No drive for device file"
-msgstr "Nav dziņa ierīces datnei"
-
-#: gio/gio-tool-mount.c:975
+#: ../gio/gio-tool-mount.c:897
 #, c-format
 msgid "Mounted %s at %s\n"
-msgstr "Montēts %s uz %s\n"
+msgstr "Montēja %s pie %s\n"
 
-#: gio/gio-tool-mount.c:1027
+#: ../gio/gio-tool-mount.c:950
 msgid "No volume for device file"
 msgstr "Nav sējuma ierīces datnei"
 
-#: gio/gio-tool-mount.c:1216
+#: ../gio/gio-tool-mount.c:1145
 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:42
 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:99
 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:101
 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"
@@ -2086,12 +2097,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:142
 #, c-format
 msgid "Target %s is not a directory"
 msgstr "Mērķis %s nav mape"
 
-#: gio/gio-tool-open.c:118
+#: ../gio/gio-tool-open.c:118
 msgid ""
 "Open files with the default application that\n"
 "is registered to handle files of this type."
@@ -2099,257 +2110,244 @@ 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:31
+#: ../gio/gio-tool-remove.c:31 ../gio/gio-tool-trash.c:31
 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:52
 msgid "Delete the given files."
 msgstr "Dzēst dotās datnes."
 
-#: gio/gio-tool-rename.c:45
+#: ../gio/gio-tool-rename.c:45
 msgid "NAME"
 msgstr "NOSAUKUMS"
 
-#: gio/gio-tool-rename.c:50
+#: ../gio/gio-tool-rename.c:50
 msgid "Rename a file."
 msgstr "Pārsaukt datni."
 
-#: gio/gio-tool-rename.c:70
+#: ../gio/gio-tool-rename.c:70
 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:76 ../gio/gio-tool-save.c:190
+#: ../gio/gio-tool-set.c:137
 msgid "Too many arguments"
 msgstr "Pārāk daudz argumentu"
 
-#: gio/gio-tool-rename.c:95
+#: ../gio/gio-tool-rename.c:95
 #, 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:50
 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:51
 msgid "Append to end of file"
 msgstr "Pievienot pie datnes beigām"
 
-#: gio/gio-tool-save.c:52
+#: ../gio/gio-tool-save.c:52
 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:53
 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:55
 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:57
 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:57
 msgid "ETAG"
 msgstr "ETAG"
 
-#: gio/gio-tool-save.c:113
+#: ../gio/gio-tool-save.c:113
 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:139
+#, c-format
 msgid "Etag not available\n"
 msgstr "Etag nav pieejams\n"
 
-#: gio/gio-tool-save.c:163
+#: ../gio/gio-tool-save.c:163
 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:183
 msgid "No destination given"
 msgstr "Nav dots galamērķis"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "Type of the attribute"
 msgstr "Atribūta tips"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "TYPE"
 msgstr "TIPS"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "ATTRIBUTE"
 msgstr "ATRIBŪTS"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "VALUE"
 msgstr "VĒRTĪBA"
 
-#: gio/gio-tool-set.c:93
+#: ../gio/gio-tool-set.c:93
 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:113
 msgid "Location not specified"
 msgstr "Atrašanās vieta nav norādīta"
 
-#: gio/gio-tool-set.c:120
+#: ../gio/gio-tool-set.c:120
 msgid "Attribute not specified"
 msgstr "Atribūts nav norādīts"
 
-#: gio/gio-tool-set.c:130
+#: ../gio/gio-tool-set.c:130
 msgid "Value not specified"
 msgstr "Vērtība nav norādīta"
 
-#: gio/gio-tool-set.c:180
+#: ../gio/gio-tool-set.c:180
 #, c-format
 msgid "Invalid attribute type “%s”"
 msgstr "Nederīgs atribūta tips “%s”"
 
-#: gio/gio-tool-trash.c:32
+#: ../gio/gio-tool-trash.c:32
 msgid "Empty the trash"
 msgstr "Iztukšot miskasti"
 
-#: gio/gio-tool-trash.c:86
+#: ../gio/gio-tool-trash.c:86
 msgid "Move files or directories to the trash."
 msgstr "Pārvietot datnes vai mapes uz miskasti."
 
-#: gio/gio-tool-tree.c:33
+#: ../gio/gio-tool-tree.c:33
 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:244
 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:143 gio/glib-compile-schemas.c:1515
+#: ../gio/glib-compile-resources.c:142 ../gio/glib-compile-schemas.c:1501
 #, c-format
 msgid "Element <%s> not allowed inside <%s>"
 msgstr "Elements <%s> nav atļauts iekš <%s>"
 
-#: gio/glib-compile-resources.c:147
+#: ../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:237
+#: ../gio/glib-compile-resources.c:237
 #, 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:248
+#: ../gio/glib-compile-resources.c:248
 #, c-format
 msgid "Failed to locate “%s” in any source directory"
 msgstr "Neizdevās atrast “%s” nevienā avotu mapē"
 
-#: gio/glib-compile-resources.c:259
+#: ../gio/glib-compile-resources.c:259
 #, c-format
 msgid "Failed to locate “%s” in current directory"
 msgstr "Neizdevās atrast “%s” pašreizējā mapē"
 
-#: gio/glib-compile-resources.c:293
+#: ../gio/glib-compile-resources.c:290
 #, c-format
 msgid "Unknown processing option “%s”"
 msgstr "Nezināma apstrādes opcija “%s”"
 
-#. 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:313 gio/glib-compile-resources.c:370
-#: gio/glib-compile-resources.c:427
+#: ../gio/glib-compile-resources.c:308 ../gio/glib-compile-resources.c:354
 #, 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ā"
+msgid "Failed to create temp file: %s"
+msgstr "Neizdevās izveidot pagaidu datni — %s"
 
-#: gio/glib-compile-resources.c:460
+#: ../gio/glib-compile-resources.c:382
 #, c-format
 msgid "Error reading file %s: %s"
 msgstr "Kļūda, nolasot datni %s — %s"
 
-#: gio/glib-compile-resources.c:480
+#: ../gio/glib-compile-resources.c:402
 #, 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:469
 #, c-format
 msgid "text may not appear inside <%s>"
 msgstr "teksts nevar atrasties iekš <%s>"
 
-#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2139
+#: ../gio/glib-compile-resources.c:664 ../gio/glib-compile-schemas.c:2067
 msgid "Show program version and exit"
 msgstr "Rādīt programmas versiju un iziet"
 
-#: gio/glib-compile-resources.c:737
-#| msgid "name of the output file"
-msgid "Name of the output file"
-msgstr "Izvades datnes nosaukums"
+#: ../gio/glib-compile-resources.c:665
+msgid "name of the output file"
+msgstr "izvades datnes nosaukums"
 
-#: gio/glib-compile-resources.c:738
-#| msgid ""
-#| "The directories where files are to be read from (default to current "
-#| "directory)"
+#: ../gio/glib-compile-resources.c:666
 msgid ""
-"The directories to load files referenced in FILE from (default: current "
+"The directories where files are to be read from (default to current "
 "directory)"
-msgstr ""
-"Direktorijas, no kurām nolasīt datnes, kas ir norādītas DATNE (pēc"
-" noklusējuma pašreizējā direktorija)"
+msgstr "Mapes, no kurām nolasīt datnes (pēc noklusējuma pašreizējā mape)"
 
-#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2140
-#: gio/glib-compile-schemas.c:2169
+#: ../gio/glib-compile-resources.c:666 ../gio/glib-compile-schemas.c:2068
+#: ../gio/glib-compile-schemas.c:2096
 msgid "DIRECTORY"
-msgstr "DIREKTORIJA"
+msgstr "MAPE"
 
-#: gio/glib-compile-resources.c:739
+#: ../gio/glib-compile-resources.c:667
 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:740
+#: ../gio/glib-compile-resources.c:668
 msgid "Generate source header"
 msgstr "Veidot avota galveni"
 
-#: gio/glib-compile-resources.c:741
-#| 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"
+#: ../gio/glib-compile-resources.c:669
+msgid "Generate sourcecode 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:742
+#: ../gio/glib-compile-resources.c:670
 msgid "Generate dependency list"
 msgstr "Veidot atkarību sarakstu"
 
-#: gio/glib-compile-resources.c:743
-#| msgid "name of the dependency file to generate"
-msgid "Name of the dependency file to generate"
-msgstr "Nosaukums atkarību datnei, kuru ģenerēt"
+#: ../gio/glib-compile-resources.c:671
+msgid "name of the dependency file to generate"
+msgstr "nosaukums atkarību datnei, kuru ģenerēt"
 
-#: gio/glib-compile-resources.c:744
+#: ../gio/glib-compile-resources.c:672
 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:745
+#: ../gio/glib-compile-resources.c:673
 msgid "Don’t automatically create and register resource"
 msgstr "Resursu neveidot un nereģistrēt automātiski"
 
-#: gio/glib-compile-resources.c:746
+#: ../gio/glib-compile-resources.c:674
 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:747
+#: ../gio/glib-compile-resources.c:675
 msgid "C identifier name used for the generated source code"
 msgstr "C identifikatora nosaukums veidotajam pirmkodam"
 
-#: gio/glib-compile-resources.c:773
+#: ../gio/glib-compile-resources.c:701
 msgid ""
 "Compile a resource specification into a resource file.\n"
 "Resource specification files have the extension .gresource.xml,\n"
@@ -2359,122 +2357,123 @@ 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:795
+#: ../gio/glib-compile-resources.c:723
+#, c-format
 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:95
+#: ../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:106
+#: ../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:114
+#: ../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:122
+#: ../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:136
+#: ../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:161
+#: ../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:317
+#: ../gio/glib-compile-schemas.c:315
 #, 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:329
+#: ../gio/glib-compile-schemas.c:327
 #, 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:335
+#: ../gio/glib-compile-schemas.c:333
 #, 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:341
+#: ../gio/glib-compile-schemas.c:339
 #, c-format
 msgid "<%s> contains a string not in <choices>"
 msgstr "<%s> satur virkni, kas nav starp <choices>"
 
-#: gio/glib-compile-schemas.c:375
+#: ../gio/glib-compile-schemas.c:373
 msgid "<range/> already specified for this key"
 msgstr "<range/> jau ir norādīts šai atslēgai"
 
-#: gio/glib-compile-schemas.c:393
+#: ../gio/glib-compile-schemas.c:391
 #, 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:410
+#: ../gio/glib-compile-schemas.c:408
 #, 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:435
+#: ../gio/glib-compile-schemas.c:433
 #, c-format
 msgid "unsupported l10n category: %s"
 msgstr "neatbalstīta l10n kategorija: %s"
 
-#: gio/glib-compile-schemas.c:443
+#: ../gio/glib-compile-schemas.c:441
 msgid "l10n requested, but no gettext domain given"
 msgstr "l10n ir pieprasīts, bet nav dots gettext domēns"
 
-#: gio/glib-compile-schemas.c:455
+#: ../gio/glib-compile-schemas.c:453
 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:477
+#: ../gio/glib-compile-schemas.c:475
 #, 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:494
+#: ../gio/glib-compile-schemas.c:492
 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:503
+#: ../gio/glib-compile-schemas.c:501
 msgid "<choices> already specified for this key"
 msgstr "<child name='%s'> jau ir norādīts šai atslēgai"
 
-#: gio/glib-compile-schemas.c:515
+#: ../gio/glib-compile-schemas.c:513
 #, 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:531
+#: ../gio/glib-compile-schemas.c:529
 #, c-format
 msgid "<choice value='%s'/> already given"
 msgstr "<child name='%s'> jau dots"
 
-#: gio/glib-compile-schemas.c:546
+#: ../gio/glib-compile-schemas.c:544
 #, c-format
 msgid "<choices> must contain at least one <choice>"
 msgstr "<choices> jāsatur vismaz viens <choice>"
 
-#: gio/glib-compile-schemas.c:560
+#: ../gio/glib-compile-schemas.c:558
 msgid "<aliases> already specified for this key"
 msgstr "<aliases> jau ir norādīts šai atslēgai"
 
-#: gio/glib-compile-schemas.c:564
+#: ../gio/glib-compile-schemas.c:562
 msgid ""
 "<aliases> can only be specified for keys with enumerated or flags types or "
 "after <choices>"
@@ -2482,48 +2481,48 @@ 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:583
+#: ../gio/glib-compile-schemas.c:581
 #, 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:589
+#: ../gio/glib-compile-schemas.c:587
 #, 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:597
+#: ../gio/glib-compile-schemas.c:595
 #, c-format
 msgid "<alias value='%s'/> already specified"
 msgstr "<alias value='%s'/> jau norādīts"
 
-#: gio/glib-compile-schemas.c:607
+#: ../gio/glib-compile-schemas.c:605
 #, 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:608
+#: ../gio/glib-compile-schemas.c:606
 #, c-format
 msgid "alias target “%s” is not in <choices>"
 msgstr "aliasa mērķis “%s” nav starp <choices>"
 
-#: gio/glib-compile-schemas.c:623
+#: ../gio/glib-compile-schemas.c:621
 #, c-format
 msgid "<aliases> must contain at least one <alias>"
 msgstr "<aliases> jāsatur vismaz viens <alias>"
 
-#: gio/glib-compile-schemas.c:798
+#: ../gio/glib-compile-schemas.c:786
 msgid "Empty names are not permitted"
 msgstr "Nav atļauti tukši nosaukumi"
 
-#: gio/glib-compile-schemas.c:808
+#: ../gio/glib-compile-schemas.c:796
 #, c-format
 msgid "Invalid name “%s”: names must begin with a lowercase letter"
 msgstr "Nederīgs nosaukums “%s” — nosaukumiem jāsākas ar mazo burtu"
 
-#: gio/glib-compile-schemas.c:820
+#: ../gio/glib-compile-schemas.c:808
 #, c-format
 msgid ""
 "Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
@@ -2532,36 +2531,36 @@ msgstr ""
 "Nederīgs nosaukums “%s” — nederīga rakstzīme “%c”; ir atļauti tikai burti, "
 "skaitļi un defise (“-”)."
 
-#: gio/glib-compile-schemas.c:829
+#: ../gio/glib-compile-schemas.c:817
 #, c-format
 msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
 msgstr "Nederīgs nosaukums “%s” — divas secīgas defises (“--”) nav atļautas."
 
-#: gio/glib-compile-schemas.c:838
+#: ../gio/glib-compile-schemas.c:826
 #, c-format
 msgid "Invalid name “%s”: the last character may not be a hyphen (“-”)"
 msgstr "Nederīgs nosaukums “%s” — pēdējā rakstzīme nevar būt defise (“-”)."
 
-#: gio/glib-compile-schemas.c:846
+#: ../gio/glib-compile-schemas.c:834
 #, c-format
 msgid "Invalid name “%s”: maximum length is 1024"
 msgstr "Nederīgs nosaukums “%s” — maksimālais garums ir 1024"
 
-#: gio/glib-compile-schemas.c:918
+#: ../gio/glib-compile-schemas.c:904
 #, c-format
 msgid "<child name='%s'> already specified"
 msgstr "<child name='%s'> jau norādīts"
 
-#: gio/glib-compile-schemas.c:944
+#: ../gio/glib-compile-schemas.c:930
 msgid "Cannot add keys to a “list-of” schema"
 msgstr "Nevar pievienot atslēgas “list-of” shēmai"
 
-#: gio/glib-compile-schemas.c:955
+#: ../gio/glib-compile-schemas.c:941
 #, c-format
 msgid "<key name='%s'> already specified"
 msgstr "<key name='%s'> jau norādīts"
 
-#: gio/glib-compile-schemas.c:973
+#: ../gio/glib-compile-schemas.c:959
 #, c-format
 msgid ""
 "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
@@ -2570,7 +2569,7 @@ msgstr ""
 "<key name='%s'> ēnas <key name='%s'> iekš <schema id='%s'>; izmantojiet "
 "<override>, lai mainītu vērtību"
 
-#: gio/glib-compile-schemas.c:984
+#: ../gio/glib-compile-schemas.c:970
 #, c-format
 msgid ""
 "Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
@@ -2579,63 +2578,63 @@ msgstr ""
 "Jānorāda tieši viens tips “type”, “enum” vai “flags” kā atribūts atslēgai "
 "<key>"
 
-#: gio/glib-compile-schemas.c:1003
+#: ../gio/glib-compile-schemas.c:989
 #, c-format
 msgid "<%s id='%s'> not (yet) defined."
 msgstr "<%s id='%s'> (vēl) nav definēts."
 
-#: gio/glib-compile-schemas.c:1018
+#: ../gio/glib-compile-schemas.c:1004
 #, c-format
 msgid "Invalid GVariant type string “%s”"
 msgstr "Nederīga GVariant tipa virkne “%s”"
 
-#: gio/glib-compile-schemas.c:1048
+#: ../gio/glib-compile-schemas.c:1034
 msgid "<override> given but schema isn’t extending anything"
 msgstr "<override> dots, bet shēma neko nepaplašina"
 
-#: gio/glib-compile-schemas.c:1061
+#: ../gio/glib-compile-schemas.c:1047
 #, c-format
 msgid "No <key name='%s'> to override"
 msgstr "Nav <key name='%s'> ko pārrakstīt"
 
-#: gio/glib-compile-schemas.c:1069
+#: ../gio/glib-compile-schemas.c:1055
 #, c-format
 msgid "<override name='%s'> already specified"
 msgstr "<override name='%s'> jau norādīts"
 
-#: gio/glib-compile-schemas.c:1142
+#: ../gio/glib-compile-schemas.c:1128
 #, c-format
 msgid "<schema id='%s'> already specified"
 msgstr "<schema id='%s'> jau eksistē"
 
-#: gio/glib-compile-schemas.c:1154
+#: ../gio/glib-compile-schemas.c:1140
 #, c-format
 msgid "<schema id='%s'> extends not yet existing schema “%s”"
 msgstr "<schema id='%s'> paplašina vēl neesošu shēmu “%s”"
 
-#: gio/glib-compile-schemas.c:1170
+#: ../gio/glib-compile-schemas.c:1156
 #, c-format
 msgid "<schema id='%s'> is list of not yet existing schema “%s”"
 msgstr "<schema id='%s'> ir saraksts ar vēl neesošām shēmām “%s”"
 
-#: gio/glib-compile-schemas.c:1178
+#: ../gio/glib-compile-schemas.c:1164
 #, c-format
 msgid "Cannot be a list of a schema with a path"
 msgstr "Nevar būt shēmu saraksts ar ceļu"
 
-#: gio/glib-compile-schemas.c:1188
+#: ../gio/glib-compile-schemas.c:1174
 #, c-format
 msgid "Cannot extend a schema with a path"
 msgstr "Nevar paplašināt shēmu ar ceļu"
 
-#: gio/glib-compile-schemas.c:1198
+#: ../gio/glib-compile-schemas.c:1184
 #, c-format
 msgid ""
 "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
 msgstr ""
 "<schema id='%s'> ir saraksts, paplašina <schema id='%s'>, kas nav saraksts"
 
-#: gio/glib-compile-schemas.c:1208
+#: ../gio/glib-compile-schemas.c:1194
 #, c-format
 msgid ""
 "<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
@@ -2644,17 +2643,17 @@ msgstr ""
 "<schema id='%s' list-of='%s'> paplašina <schema id='%s' list-of='%s'> bet "
 "“%s” nepaplašina “%s”"
 
-#: gio/glib-compile-schemas.c:1225
+#: ../gio/glib-compile-schemas.c:1211
 #, c-format
 msgid "A path, if given, must begin and end with a slash"
 msgstr "Ceļam, ja tāds ir dots, jābeidzas ar slīpsvītru"
 
-#: gio/glib-compile-schemas.c:1232
+#: ../gio/glib-compile-schemas.c:1218
 #, c-format
 msgid "The path of a list must end with “:/”"
 msgstr "Ceļam jābeidzas ar “:/”"
 
-#: gio/glib-compile-schemas.c:1241
+#: ../gio/glib-compile-schemas.c:1227
 #, c-format
 msgid ""
 "Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/"
@@ -2663,137 +2662,118 @@ msgstr ""
 "Brīdinājums: shēmai “%s” ir ceļš “%s”. Ceļi, kas sākas ar “/apps/”, “/"
 "desktop/” vai “/system/” ir novecojuši."
 
-#: gio/glib-compile-schemas.c:1271
+#: ../gio/glib-compile-schemas.c:1257
 #, c-format
 msgid "<%s id='%s'> already specified"
 msgstr "<%s id='%s'> jau norādīts"
 
-#: gio/glib-compile-schemas.c:1421 gio/glib-compile-schemas.c:1437
+#: ../gio/glib-compile-schemas.c:1407 ../gio/glib-compile-schemas.c:1423
 #, c-format
 msgid "Only one <%s> element allowed inside <%s>"
 msgstr "Ir atļauts tikai <%s> elements iekš <%s>"
 
-#: gio/glib-compile-schemas.c:1519
+#: ../gio/glib-compile-schemas.c:1505
 #, c-format
 msgid "Element <%s> not allowed at the top level"
 msgstr "Elements <%s> nav atļauts augšējā līmenī"
 
-#: gio/glib-compile-schemas.c:1537
+#: ../gio/glib-compile-schemas.c:1523
 msgid "Element <default> is required in <key>"
 msgstr "Elements <default> ir vajadzīgs atslēgai <key>"
 
-#: gio/glib-compile-schemas.c:1627
+#: ../gio/glib-compile-schemas.c:1613
 #, c-format
 msgid "Text may not appear inside <%s>"
 msgstr "Teksts nevar atrasties iekš <%s>"
 
-#: gio/glib-compile-schemas.c:1695
+#: ../gio/glib-compile-schemas.c:1681
 #, c-format
 msgid "Warning: undefined reference to <schema id='%s'/>"
 msgstr "Brīdinājums: nedefinēta atsauce uz <schema id='%s'/>"
 
 #. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1834 gio/glib-compile-schemas.c:1910
-#: gio/glib-compile-schemas.c:2025
+#: ../gio/glib-compile-schemas.c:1820 ../gio/glib-compile-schemas.c:1894
+#: ../gio/glib-compile-schemas.c:1970
 #, c-format
 msgid "--strict was specified; exiting.\n"
 msgstr "--strict tika norādīts; iziet.\n"
 
-#: gio/glib-compile-schemas.c:1844
+#: ../gio/glib-compile-schemas.c:1830
 #, c-format
 msgid "This entire file has been ignored.\n"
 msgstr "Tikai ignorēta visa datne.\n"
 
-#: gio/glib-compile-schemas.c:1906
+#: ../gio/glib-compile-schemas.c:1890
 #, c-format
 msgid "Ignoring this file.\n"
 msgstr "Ignorē šo datni.\n"
 
-#: gio/glib-compile-schemas.c:1959
+#: ../gio/glib-compile-schemas.c:1930
 #, 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”"
+msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
 msgstr ""
 "Nav tādas atslēgas “%s” shēmā “%s” kā norādīts pārrakstīšanas datnē “%s”"
 
-#: gio/glib-compile-schemas.c:1965 gio/glib-compile-schemas.c:1990
-#: gio/glib-compile-schemas.c:2050 gio/glib-compile-schemas.c:2079
+#: ../gio/glib-compile-schemas.c:1936 ../gio/glib-compile-schemas.c:1994
+#: ../gio/glib-compile-schemas.c:2022
 #, c-format
 msgid "; ignoring override for this key.\n"
 msgstr "; ignorē pārrakstīšanu šai atslēgai.\n"
 
-#: gio/glib-compile-schemas.c:1969 gio/glib-compile-schemas.c:1994
-#: gio/glib-compile-schemas.c:2054 gio/glib-compile-schemas.c:2083
+#: ../gio/glib-compile-schemas.c:1940 ../gio/glib-compile-schemas.c:1998
+#: ../gio/glib-compile-schemas.c:2026
 #, c-format
 msgid " and --strict was specified; exiting.\n"
 msgstr " un tika norādīts --strict; iziet.\n"
 
-#: gio/glib-compile-schemas.c:1984
+#: ../gio/glib-compile-schemas.c:1956
 #, c-format
 msgid ""
-"cannot provide per-desktop overrides for localised key “%s” in schema "
-"“%s” (override file “%s”)"
-msgstr ""
-"nevar sniegt katrai darbvirsmai ignorēšanas lokalizētām atslēgām “%s” shēmā “"
-"%s” (ignorē datni “%s”)"
-
-#: gio/glib-compile-schemas.c:2011
-#, 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."
+"error parsing key '%s' in schema '%s' as specified in override file '%s': %s."
 msgstr ""
 "kļūda, parsējot atslēgu “%s” shēmā “%s” kā norādīts pārrakstīšanas datnē "
 "“%s” — %s."
 
-#: gio/glib-compile-schemas.c:2021
+#: ../gio/glib-compile-schemas.c:1966
 #, c-format
 msgid "Ignoring override for this key.\n"
 msgstr "Ignorē pārrakstīšanu šai atslēgai.\n"
 
-#: gio/glib-compile-schemas.c:2040
+#: ../gio/glib-compile-schemas.c:1984
 #, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is outside the "
-#| "range given in the schema"
 msgid ""
-"override for key “%s” in schema “%s” in override file “%s” is outside the "
+"override for key '%s' in schema '%s' in override file '%s' is outside the "
 "range given in the schema"
 msgstr ""
 "pārrakstīšana atslēgai “%s” shēmā “%s” pārrakstīšanas datnē “%s” ir ārpus "
 "dotās shēmas apgabala"
 
-#: gio/glib-compile-schemas.c:2069
+#: ../gio/glib-compile-schemas.c:2012
 #, 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 "
+"override for key '%s' in schema '%s' in override file '%s' is not in the "
 "list of valid choices"
 msgstr ""
 "pārrakstīšana atslēgai “%s” shēmā “%s” pārrakstīšanas datnē “%s” nav derīgo "
 "izvēļu sarakstā"
 
-#: gio/glib-compile-schemas.c:2140
+#: ../gio/glib-compile-schemas.c:2068
 msgid "where to store the gschemas.compiled file"
 msgstr "kur uzglabāt gschemas.compiled datni"
 
-#: gio/glib-compile-schemas.c:2141
+#: ../gio/glib-compile-schemas.c:2069
 msgid "Abort on any errors in schemas"
 msgstr "Atcelt pie jebkuras kļūdas shēmās"
 
-#: gio/glib-compile-schemas.c:2142
+#: ../gio/glib-compile-schemas.c:2070
 msgid "Do not write the gschema.compiled file"
 msgstr "Nerakstīt gschema.compiled datni"
 
-#: gio/glib-compile-schemas.c:2143
+#: ../gio/glib-compile-schemas.c:2071
 msgid "Do not enforce key name restrictions"
 msgstr "Neuzspiest atslēgu nosaukumu ierobežojumus"
 
-#: gio/glib-compile-schemas.c:2172
+#: ../gio/glib-compile-schemas.c:2099
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
@@ -2803,32 +2783,32 @@ 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:2193
+#: ../gio/glib-compile-schemas.c:2120
 #, c-format
 msgid "You should give exactly one directory name\n"
 msgstr "Jums jānorāda tieši viens mapes nosaukums\n"
 
-#: gio/glib-compile-schemas.c:2235
+#: ../gio/glib-compile-schemas.c:2162
 #, c-format
 msgid "No schema files found: "
 msgstr "Nav atrastas shēmu datnes: "
 
-#: gio/glib-compile-schemas.c:2238
+#: ../gio/glib-compile-schemas.c:2165
 #, c-format
 msgid "doing nothing.\n"
 msgstr "neko nedarīt.\n"
 
-#: gio/glib-compile-schemas.c:2241
+#: ../gio/glib-compile-schemas.c:2168
 #, c-format
 msgid "removed existing output file.\n"
 msgstr "izņēma esošo izvades datni.\n"
 
-#: gio/glocalfile.c:544 gio/win32/gwinhttpfile.c:420
+#: ../gio/glocalfile.c:643 ../gio/win32/gwinhttpfile.c:420
 #, c-format
 msgid "Invalid filename %s"
 msgstr "Nederīgs datnes nosaukums %s"
 
-#: gio/glocalfile.c:1011
+#: ../gio/glocalfile.c:1105
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr "Kļūda, iegūstot datņu sistēmas informāciju priekš %s — %s"
@@ -2837,319 +2817,313 @@ 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:1150
+#: ../gio/glocalfile.c:1244
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr "Saturošais montējums priekš datnes %s nav atrasts"
 
-#: gio/glocalfile.c:1173
+#: ../gio/glocalfile.c:1267
 msgid "Can’t rename root directory"
 msgstr "Nevar pārsaukt saknes mapi"
 
-#: gio/glocalfile.c:1191 gio/glocalfile.c:1214
+#: ../gio/glocalfile.c:1285 ../gio/glocalfile.c:1308
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr "Kļūda, pārsaucot datni %s — %s"
 
-#: gio/glocalfile.c:1198
+#: ../gio/glocalfile.c:1292
 msgid "Can’t rename file, filename already exists"
 msgstr "Nevar pārsaukt datni; datnes nosaukums jau eksistē"
 
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2275 gio/glocalfile.c:2303
-#: gio/glocalfile.c:2460 gio/glocalfileoutputstream.c:551
+#: ../gio/glocalfile.c:1305 ../gio/glocalfile.c:2322 ../gio/glocalfile.c:2350
+#: ../gio/glocalfile.c:2507 ../gio/glocalfileoutputstream.c:551
 msgid "Invalid filename"
 msgstr "Nederīgs datnes nosaukums"
 
-#: gio/glocalfile.c:1379 gio/glocalfile.c:1394
+#: ../gio/glocalfile.c:1473 ../gio/glocalfile.c:1488
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Kļūda, atverot datni %s — %s"
 
-#: gio/glocalfile.c:1519
+#: ../gio/glocalfile.c:1613
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Kļūda, dzēšot datni %s — %s"
 
-#: gio/glocalfile.c:1916
+#: ../gio/glocalfile.c:1997
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Kļūda, izmetot miskastē datni %s — %s"
 
-#: gio/glocalfile.c:1957
+#: ../gio/glocalfile.c:2020
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Nevar izveidot miskastes mapi %s — %s"
 
-#: gio/glocalfile.c:1978
+#: ../gio/glocalfile.c:2040
 #, 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:1987
-#, c-format
-#| msgid "Copy (reflink/clone) between mounts is not supported"
-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:2071 gio/glocalfile.c:2091
+#: ../gio/glocalfile.c:2119 ../gio/glocalfile.c:2139
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Nevar atrast vai izveidot miskastes mapi priekš %s"
 
-#: gio/glocalfile.c:2126
+#: ../gio/glocalfile.c:2174
 #, 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:2186
+#: ../gio/glocalfile.c:2233
 #, 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:2190 gio/glocalfile.c:2246
+#: ../gio/glocalfile.c:2237 ../gio/glocalfile.c:2293
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Nevar izmest miskastē datni %s — %s"
 
-#: gio/glocalfile.c:2252
+#: ../gio/glocalfile.c:2299
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Nevar izmest miskastē datni %s"
 
-#: gio/glocalfile.c:2278
+#: ../gio/glocalfile.c:2325
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Kļūda, veidojot mapi %s — %s"
 
-#: gio/glocalfile.c:2307
+#: ../gio/glocalfile.c:2354
 #, c-format
 msgid "Filesystem does not support symbolic links"
 msgstr "Datņu sistēma neatbalsta simboliskās saites"
 
-#: gio/glocalfile.c:2310
+#: ../gio/glocalfile.c:2357
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Kļūda, veidojot simbolisko saiti %s — %s"
 
-#: gio/glocalfile.c:2316 glib/gfileutils.c:2138
+#: ../gio/glocalfile.c:2363 ../glib/gfileutils.c:2127
 msgid "Symbolic links not supported"
 msgstr "Simboliskās saites nav atbalstītas"
 
-#: gio/glocalfile.c:2371 gio/glocalfile.c:2406 gio/glocalfile.c:2463
+#: ../gio/glocalfile.c:2418 ../gio/glocalfile.c:2453 ../gio/glocalfile.c:2510
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Kļūda, pārvietojot datni %s — %s"
 
-#: gio/glocalfile.c:2394
+#: ../gio/glocalfile.c:2441
 msgid "Can’t move directory over directory"
 msgstr "Nevar pārvietot mapi virsū mapei"
 
-#: gio/glocalfile.c:2420 gio/glocalfileoutputstream.c:935
-#: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
-#: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
+#: ../gio/glocalfile.c:2467 ../gio/glocalfileoutputstream.c:935
+#: ../gio/glocalfileoutputstream.c:949 ../gio/glocalfileoutputstream.c:964
+#: ../gio/glocalfileoutputstream.c:981 ../gio/glocalfileoutputstream.c:995
 msgid "Backup file creation failed"
 msgstr "Neizdevās izveidot rezerves kopijas datni"
 
-#: gio/glocalfile.c:2439
+#: ../gio/glocalfile.c:2486
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Kļūda, dzēšot mērķa datni — %s"
 
-#: gio/glocalfile.c:2453
+#: ../gio/glocalfile.c:2500
 msgid "Move between mounts not supported"
 msgstr "Pārvietošana starp montētiem sējumiem nav atbalstīta"
 
-#: gio/glocalfile.c:2644
+#: ../gio/glocalfile.c:2691
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Nevarēja noteikt %s diska izmantojumu — %s"
 
-#: gio/glocalfileinfo.c:745
+#: ../gio/glocalfileinfo.c:745
 msgid "Attribute value must be non-NULL"
 msgstr "Atribūta vērtībai ir jābūt ne NULL"
 
-#: gio/glocalfileinfo.c:752
+#: ../gio/glocalfileinfo.c:752
 msgid "Invalid attribute type (string expected)"
 msgstr "Nederīgs atribūta tips (tika gaidīta virkne)"
 
-#: gio/glocalfileinfo.c:759
+#: ../gio/glocalfileinfo.c:759
 msgid "Invalid extended attribute name"
 msgstr "Nederīgs paplašinātais atribūta nosaukums"
 
-#: gio/glocalfileinfo.c:799
+#: ../gio/glocalfileinfo.c:799
 #, c-format
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Kļūda, iestatot paplašināto atribūtu “%s” — %s"
 
-#: gio/glocalfileinfo.c:1625
+#: ../gio/glocalfileinfo.c:1607
 msgid " (invalid encoding)"
 msgstr " (nederīgs kodējums)"
 
-#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
+#: ../gio/glocalfileinfo.c:1776 ../gio/glocalfileoutputstream.c:813
 #, 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:2053
+#: ../gio/glocalfileinfo.c:2038
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Kļūda, saņemot informāciju datnes deskriptoram — %s"
 
-#: gio/glocalfileinfo.c:2098
+#: ../gio/glocalfileinfo.c:2083
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Nederīgs atribūta tips (tika gaidīts uint32)"
 
-#: gio/glocalfileinfo.c:2116
+#: ../gio/glocalfileinfo.c:2101
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Nederīgs atribūta tips (tika gaidīts uint64)"
 
-#: gio/glocalfileinfo.c:2135 gio/glocalfileinfo.c:2154
+#: ../gio/glocalfileinfo.c:2120 ../gio/glocalfileinfo.c:2139
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Nederīgs atribūta tips (tika gaidīta baitu virkne)"
 
-#: gio/glocalfileinfo.c:2201
+#: ../gio/glocalfileinfo.c:2184
 msgid "Cannot set permissions on symlinks"
 msgstr "Nevar iestatīt atļaujas simboliskajām saitēm"
 
-#: gio/glocalfileinfo.c:2217
+#: ../gio/glocalfileinfo.c:2200
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Kļūda, iestatot tiesības — %s"
 
-#: gio/glocalfileinfo.c:2268
+#: ../gio/glocalfileinfo.c:2251
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Kļūda, iestatot īpašnieku — %s"
 
-#: gio/glocalfileinfo.c:2291
+#: ../gio/glocalfileinfo.c:2274
 msgid "symlink must be non-NULL"
 msgstr "simboliskajai saitei ir jābūt ne NULL"
 
-#: gio/glocalfileinfo.c:2301 gio/glocalfileinfo.c:2320
-#: gio/glocalfileinfo.c:2331
+#: ../gio/glocalfileinfo.c:2284 ../gio/glocalfileinfo.c:2303
+#: ../gio/glocalfileinfo.c:2314
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Kļūda, iestatot simbolisko saiti — %s"
 
-#: gio/glocalfileinfo.c:2310
+#: ../gio/glocalfileinfo.c:2293
 msgid "Error setting symlink: file is not a symlink"
 msgstr "Kļūda, iestatot simbolisko saiti — datne nav simboliskā saite"
 
-#: gio/glocalfileinfo.c:2436
+#: ../gio/glocalfileinfo.c:2419
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Kļūda, iestatot izmaiņu vai piekļuves laiku — %s"
 
-#: gio/glocalfileinfo.c:2459
+#: ../gio/glocalfileinfo.c:2442
 msgid "SELinux context must be non-NULL"
 msgstr "SELinux kontekstam ir jābūt ne NULL"
 
-#: gio/glocalfileinfo.c:2474
+#: ../gio/glocalfileinfo.c:2457
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Kļūda, iestatot SELinux kontekstu — %s"
 
-#: gio/glocalfileinfo.c:2481
+#: ../gio/glocalfileinfo.c:2464
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux nav ieslēgts uz šīs sistēmas"
 
-#: gio/glocalfileinfo.c:2573
+#: ../gio/glocalfileinfo.c:2556
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "%s atribūta iestatīšana nav atbalstīta"
 
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:696
+#: ../gio/glocalfileinputstream.c:168 ../gio/glocalfileoutputstream.c:696
 #, c-format
 msgid "Error reading from file: %s"
 msgstr "Kļūda, lasot no datnes — %s"
 
-#: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
-#: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:458 gio/glocalfileoutputstream.c:1013
+#: ../gio/glocalfileinputstream.c:199 ../gio/glocalfileinputstream.c:211
+#: ../gio/glocalfileinputstream.c:225 ../gio/glocalfileinputstream.c:333
+#: ../gio/glocalfileoutputstream.c:458 ../gio/glocalfileoutputstream.c:1013
 #, c-format
 msgid "Error seeking in file: %s"
 msgstr "Kļūda, meklējot datnē — %s"
 
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:248
-#: gio/glocalfileoutputstream.c:342
+#: ../gio/glocalfileinputstream.c:255 ../gio/glocalfileoutputstream.c:248
+#: ../gio/glocalfileoutputstream.c:342
 #, c-format
 msgid "Error closing file: %s"
 msgstr "Kļūda, aizverot datni — %s"
 
-#: gio/glocalfilemonitor.c:854
+#: ../gio/glocalfilemonitor.c:840
 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:196 gio/glocalfileoutputstream.c:228
-#: gio/glocalfileoutputstream.c:717
+#: ../gio/glocalfileoutputstream.c:196 ../gio/glocalfileoutputstream.c:228
+#: ../gio/glocalfileoutputstream.c:717
 #, c-format
 msgid "Error writing to file: %s"
 msgstr "Kļūda, rakstot datnē — %s"
 
-#: gio/glocalfileoutputstream.c:275
+#: ../gio/glocalfileoutputstream.c:275
 #, c-format
 msgid "Error removing old backup link: %s"
 msgstr "Kļūda, dzēšot vecu rezerves kopijas saiti — %s"
 
-#: gio/glocalfileoutputstream.c:289 gio/glocalfileoutputstream.c:302
+#: ../gio/glocalfileoutputstream.c:289 ../gio/glocalfileoutputstream.c:302
 #, c-format
 msgid "Error creating backup copy: %s"
 msgstr "Kļūda, veidojot rezerves kopiju — %s"
 
-#: gio/glocalfileoutputstream.c:320
+#: ../gio/glocalfileoutputstream.c:320
 #, c-format
 msgid "Error renaming temporary file: %s"
 msgstr "Kļūda, pārsaucot pagaidu datni — %s"
 
-#: gio/glocalfileoutputstream.c:504 gio/glocalfileoutputstream.c:1064
+#: ../gio/glocalfileoutputstream.c:504 ../gio/glocalfileoutputstream.c:1064
 #, c-format
 msgid "Error truncating file: %s"
 msgstr "Kļūda, apraujot datni — %s"
 
-#: gio/glocalfileoutputstream.c:557 gio/glocalfileoutputstream.c:795
-#: gio/glocalfileoutputstream.c:1045 gio/gsubprocess.c:380
+#: ../gio/glocalfileoutputstream.c:557 ../gio/glocalfileoutputstream.c:795
+#: ../gio/glocalfileoutputstream.c:1045 ../gio/gsubprocess.c:380
 #, c-format
 msgid "Error opening file “%s”: %s"
 msgstr "Kļūda, atverot datni “%s” — %s"
 
-#: gio/glocalfileoutputstream.c:826
+#: ../gio/glocalfileoutputstream.c:826
 msgid "Target file is a directory"
 msgstr "Mērķa datne ir mape"
 
-#: gio/glocalfileoutputstream.c:831
+#: ../gio/glocalfileoutputstream.c:831
 msgid "Target file is not a regular file"
 msgstr "Mērķa datne nav parasta datne"
 
-#: gio/glocalfileoutputstream.c:843
+#: ../gio/glocalfileoutputstream.c:843
 msgid "The file was externally modified"
 msgstr "Datne tika mainīta no ārpuses"
 
-#: gio/glocalfileoutputstream.c:1029
+#: ../gio/glocalfileoutputstream.c:1029
 #, 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:474 ../gio/gmemoryoutputstream.c:772
 msgid "Invalid GSeekType supplied"
 msgstr "Piegādāts nederīgs GSeekType"
 
-#: gio/gmemoryinputstream.c:484
+#: ../gio/gmemoryinputstream.c:484
 msgid "Invalid seek request"
 msgstr "Nederīgs meklēšanas pieprasījums"
 
-#: gio/gmemoryinputstream.c:508
+#: ../gio/gmemoryinputstream.c:508
 msgid "Cannot truncate GMemoryInputStream"
 msgstr "Nevar apraut GMemoryInputStream"
 
-#: gio/gmemoryoutputstream.c:567
+#: ../gio/gmemoryoutputstream.c:567
 msgid "Memory output stream not resizable"
 msgstr "Atmiņas izvades plūsmai nav maināms izmērs"
 
-#: gio/gmemoryoutputstream.c:583
+#: ../gio/gmemoryoutputstream.c:583
 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:673
 msgid ""
 "Amount of memory required to process the write is larger than available "
 "address space"
@@ -3157,32 +3131,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:782
 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:797
 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:396
 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:472
 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:550
 msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
 msgstr ""
 "montējums neatbalsta “unmount” (atmontēšanu) vai “unmount_with_operation”"
@@ -3190,107 +3164,109 @@ 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:635
 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:723
 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:805
 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:892
 msgid "mount doesn’t implement synchronous content type guessing"
 msgstr "montējums neatbalsta sinhrono satura tipa minēšanu"
 
-#: gio/gnetworkaddress.c:378
+#: ../gio/gnetworkaddress.c:378
 #, c-format
 msgid "Hostname “%s” contains “[” but not “]”"
 msgstr "Datora nosaukums “%s” satur “[” bet ne “]”"
 
-#: gio/gnetworkmonitorbase.c:211 gio/gnetworkmonitorbase.c:315
+#: ../gio/gnetworkmonitorbase.c:206 ../gio/gnetworkmonitorbase.c:310
 msgid "Network unreachable"
 msgstr "Tīkls nav sasniedzams"
 
-#: gio/gnetworkmonitorbase.c:249 gio/gnetworkmonitorbase.c:279
+#: ../gio/gnetworkmonitorbase.c:244 ../gio/gnetworkmonitorbase.c:274
 msgid "Host unreachable"
 msgstr "Dators nav sasniedzams"
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
+#: ../gio/gnetworkmonitornetlink.c:96 ../gio/gnetworkmonitornetlink.c:108
+#: ../gio/gnetworkmonitornetlink.c:127
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr "Neizdevās izveidot tīkla pārraugu — %s"
 
-#: gio/gnetworkmonitornetlink.c:118
+#: ../gio/gnetworkmonitornetlink.c:117
 msgid "Could not create network monitor: "
 msgstr "Neizdevās izveidot tīkla pārraugu:"
 
-#: gio/gnetworkmonitornetlink.c:176
+#: ../gio/gnetworkmonitornetlink.c:175
 msgid "Could not get network status: "
 msgstr "Neizdevās saņemt tīkla statusu:"
 
-#: gio/gnetworkmonitornm.c:322
+#: ../gio/gnetworkmonitornm.c:329
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "NetworkManager versija ir pārāk veca"
 
-#: gio/goutputstream.c:212 gio/goutputstream.c:560
+#: ../gio/goutputstream.c:212 ../gio/goutputstream.c:560
 msgid "Output stream doesn’t implement write"
 msgstr "Izvades plūsma neatbalsta rakstīšanu"
 
-#: gio/goutputstream.c:521 gio/goutputstream.c:1224
+#: ../gio/goutputstream.c:521 ../gio/goutputstream.c:1224
 msgid "Source stream is already closed"
 msgstr "Avota plūsma jau ir aizvērta"
 
-#: gio/gresolver.c:342 gio/gthreadedresolver.c:116 gio/gthreadedresolver.c:126
+#: ../gio/gresolver.c:342 ../gio/gthreadedresolver.c:116
+#: ../gio/gthreadedresolver.c:126
 #, c-format
 msgid "Error resolving “%s”: %s"
 msgstr "Kļūda, sameklējot “%s” — %s"
 
-#: gio/gresolver.c:729 gio/gresolver.c:781
+#: ../gio/gresolver.c:729 ../gio/gresolver.c:781
+#| msgid "Invalid hostname"
 msgid "Invalid domain"
 msgstr "Nederīgs domēns"
 
-#: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
-#: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
-#: gio/gresource.c:1281 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
+#: ../gio/gresource.c:621 ../gio/gresource.c:880 ../gio/gresource.c:919
+#: ../gio/gresource.c:1043 ../gio/gresource.c:1115 ../gio/gresource.c:1188
+#: ../gio/gresource.c:1258 ../gio/gresourcefile.c:476
+#: ../gio/gresourcefile.c:599 ../gio/gresourcefile.c:736
 #, c-format
 msgid "The resource at “%s” does not exist"
 msgstr "Resurss pie “%s” neeksistē"
 
-#: gio/gresource.c:809
+#: ../gio/gresource.c:786
 #, c-format
 msgid "The resource at “%s” failed to decompress"
 msgstr "Resursam pie “%s” neizdevās atspiesties"
 
-#: gio/gresourcefile.c:732
+#: ../gio/gresourcefile.c:732
 #, c-format
 msgid "The resource at “%s” is not a directory"
 msgstr "Resurss pie “%s” nav mape"
 
-#: gio/gresourcefile.c:940
+#: ../gio/gresourcefile.c:940
 msgid "Input stream doesn’t implement seek"
 msgstr "Ievades plūsma neatbalsta meklēšanu"
 
-#: gio/gresource-tool.c:501
+#: ../gio/gresource-tool.c:494
 msgid "List sections containing resources in an elf FILE"
 msgstr "Uzskaitīt sadaļas, kas satur resursus elf DATNĒ"
 
-#: gio/gresource-tool.c:507
+#: ../gio/gresource-tool.c:500
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3300,15 +3276,16 @@ 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:510 gio/gresource-tool.c:520
+#: ../gio/gresource-tool.c:503 ../gio/gresource-tool.c:513
 msgid "FILE [PATH]"
 msgstr "DATNE [CEĻŠ]"
 
-#: gio/gresource-tool.c:511 gio/gresource-tool.c:521 gio/gresource-tool.c:528
+#: ../gio/gresource-tool.c:504 ../gio/gresource-tool.c:514
+#: ../gio/gresource-tool.c:521
 msgid "SECTION"
 msgstr "SADAĻA"
 
-#: gio/gresource-tool.c:516
+#: ../gio/gresource-tool.c:509
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3320,15 +3297,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:526
+#: ../gio/gresource-tool.c:519
 msgid "Extract a resource file to stdout"
 msgstr "Izvilkt resursu datni uz stdout"
 
-#: gio/gresource-tool.c:527
+#: ../gio/gresource-tool.c:520
 msgid "FILE PATH"
 msgstr "DATNE CEĻŠ"
 
-#: gio/gresource-tool.c:541
+#: ../gio/gresource-tool.c:534
 msgid ""
 "Usage:\n"
 "  gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3356,7 +3333,7 @@ msgstr ""
 "Lietojiet “gresource help KOMANDA”, lai saņemtu detalizētu palīdzību.\n"
 "\n"
 
-#: gio/gresource-tool.c:555
+#: ../gio/gresource-tool.c:548
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3371,19 +3348,19 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gresource-tool.c:562
+#: ../gio/gresource-tool.c:555
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr "  SADAĻA   (Neobligāts) elf sadaļas nosaukums\n"
 
-#: gio/gresource-tool.c:566 gio/gsettings-tool.c:703
+#: ../gio/gresource-tool.c:559 ../gio/gsettings-tool.c:703
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr "  KOMANDA  (neobligāta) komanda, ko izskaidrot\n"
 
-#: gio/gresource-tool.c:572
+#: ../gio/gresource-tool.c:565
 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:575
+#: ../gio/gresource-tool.c:568
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
@@ -3391,82 +3368,90 @@ msgstr ""
 "  DATNE     elf datne (bināra datne vai koplietota bibliotēka)\n"
 "            vai saspiests resursu datne\n"
 
-#: gio/gresource-tool.c:579
+#: ../gio/gresource-tool.c:572
 msgid "[PATH]"
 msgstr "[CEĻŠ]"
 
-#: gio/gresource-tool.c:581
+#: ../gio/gresource-tool.c:574
 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:582
+#: ../gio/gresource-tool.c:575
 msgid "PATH"
 msgstr "CEĻŠ"
 
-#: gio/gresource-tool.c:584
+#: ../gio/gresource-tool.c:577
 msgid "  PATH      A resource path\n"
 msgstr "  CEĻŠ      Resursa ceļš\n"
 
-#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:908
+#: ../gio/gsettings-tool.c:51 ../gio/gsettings-tool.c:72
+#: ../gio/gsettings-tool.c:908
 #, c-format
 msgid "No such schema “%s”\n"
 msgstr "Nav tādas shēmas “%s”\n"
 
-#: gio/gsettings-tool.c:57
+#: ../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:78
+#: ../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:92
+#: ../gio/gsettings-tool.c:92
+#, c-format
 msgid "Empty path given.\n"
 msgstr "Dots tukšs ceļš.\n"
 
-#: gio/gsettings-tool.c:98
+#: ../gio/gsettings-tool.c:98
+#, c-format
 msgid "Path must begin with a slash (/)\n"
 msgstr "Ceļam jāsākas ar slīpsvītru (/)\n"
 
-#: gio/gsettings-tool.c:104
+#: ../gio/gsettings-tool.c:104
+#, c-format
 msgid "Path must end with a slash (/)\n"
 msgstr "Ceļam jābeidzas ar slīpsvītru (/)\n"
 
-#: gio/gsettings-tool.c:110
+#: ../gio/gsettings-tool.c:110
+#, c-format
 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:538
+#: ../gio/gsettings-tool.c:538
+#, c-format
 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:545
+#: ../gio/gsettings-tool.c:545
+#, c-format
 msgid "The key is not writable\n"
 msgstr "Atslēga nav rakstāma\n"
 
-#: gio/gsettings-tool.c:581
+#: ../gio/gsettings-tool.c:581
 msgid "List the installed (non-relocatable) schemas"
 msgstr "Saraksts ar instalētām (nepārvietojamām) shēmām"
 
-#: gio/gsettings-tool.c:587
+#: ../gio/gsettings-tool.c:587
 msgid "List the installed relocatable schemas"
 msgstr "Saraksts ar instalētam pārvietojamām shēmām"
 
-#: gio/gsettings-tool.c:593
+#: ../gio/gsettings-tool.c:593
 msgid "List the keys in SCHEMA"
 msgstr "Atslēgu saraksts SHĒMĀ"
 
-#: gio/gsettings-tool.c:594 gio/gsettings-tool.c:600 gio/gsettings-tool.c:643
+#: ../gio/gsettings-tool.c:594 ../gio/gsettings-tool.c:600
+#: ../gio/gsettings-tool.c:643
 msgid "SCHEMA[:PATH]"
 msgstr "SHĒMA[:CEĻŠ]"
 
-#: gio/gsettings-tool.c:599
+#: ../gio/gsettings-tool.c:599
 msgid "List the children of SCHEMA"
 msgstr "Bērnu skaits SHĒMĀ"
 
-#: gio/gsettings-tool.c:605
+#: ../gio/gsettings-tool.c:605
 msgid ""
 "List keys and values, recursively\n"
 "If no SCHEMA is given, list all keys\n"
@@ -3474,48 +3459,49 @@ 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:607
+#: ../gio/gsettings-tool.c:607
 msgid "[SCHEMA[:PATH]]"
 msgstr "[SHĒMA[:CEĻŠ]"
 
-#: gio/gsettings-tool.c:612
+#: ../gio/gsettings-tool.c:612
 msgid "Get the value of KEY"
 msgstr "Saņemt vērtību ATSLĒGAI"
 
-#: gio/gsettings-tool.c:613 gio/gsettings-tool.c:619 gio/gsettings-tool.c:625
-#: gio/gsettings-tool.c:637 gio/gsettings-tool.c:649
+#: ../gio/gsettings-tool.c:613 ../gio/gsettings-tool.c:619
+#: ../gio/gsettings-tool.c:625 ../gio/gsettings-tool.c:637
+#: ../gio/gsettings-tool.c:649
 msgid "SCHEMA[:PATH] KEY"
 msgstr "SHĒMA[:CEĻŠ] ATSLĒGA"
 
-#: gio/gsettings-tool.c:618
+#: ../gio/gsettings-tool.c:618
 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:624
+#: ../gio/gsettings-tool.c:624
 msgid "Query the description for KEY"
 msgstr "Vaicāt aprakstu ATSLĒGAI"
 
-#: gio/gsettings-tool.c:630
+#: ../gio/gsettings-tool.c:630
 msgid "Set the value of KEY to VALUE"
 msgstr "Iestatīt ATSLĒGTAS vērtību uz VĒRTĪBA"
 
-#: gio/gsettings-tool.c:631
+#: ../gio/gsettings-tool.c:631
 msgid "SCHEMA[:PATH] KEY VALUE"
 msgstr "SHĒMA[:CEĻŠ] ATSLĒGA VĒRTĪBA"
 
-#: gio/gsettings-tool.c:636
+#: ../gio/gsettings-tool.c:636
 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:642
+#: ../gio/gsettings-tool.c:642
 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:648
+#: ../gio/gsettings-tool.c:648
 msgid "Check if KEY is writable"
 msgstr "Pārbaudīt, vai ATSLĒGA ir rakstāma"
 
-#: gio/gsettings-tool.c:654
+#: ../gio/gsettings-tool.c:654
 msgid ""
 "Monitor KEY for changes.\n"
 "If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3525,11 +3511,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:657
+#: ../gio/gsettings-tool.c:657
 msgid "SCHEMA[:PATH] [KEY]"
 msgstr "SHĒMA[:CEĻŠ] [ATSLĒGA]"
 
-#: gio/gsettings-tool.c:669
+#: ../gio/gsettings-tool.c:669
 msgid ""
 "Usage:\n"
 "  gsettings --version\n"
@@ -3577,7 +3563,7 @@ msgstr ""
 "Lietojiet “gsettings help KOMANDA”, lai saņemtu sīkāku palīdzību.\n"
 "\n"
 
-#: gio/gsettings-tool.c:693
+#: ../gio/gsettings-tool.c:693
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3592,11 +3578,11 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gsettings-tool.c:699
+#: ../gio/gsettings-tool.c:699
 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:707
+#: ../gio/gsettings-tool.c:707
 msgid ""
 "  SCHEMA    The name of the schema\n"
 "  PATH      The path, for relocatable schemas\n"
@@ -3604,378 +3590,387 @@ msgstr ""
 "  SHĒMA     Shēmas nosaukums\n"
 "  CEĻŠ      Ceļš pārvietojamām shēmām\n"
 
-#: gio/gsettings-tool.c:712
+#: ../gio/gsettings-tool.c:712
 msgid "  KEY       The (optional) key within the schema\n"
 msgstr "  ATSLĒGA   (neobligāta) atslēga shēmā\n"
 
-#: gio/gsettings-tool.c:716
+#: ../gio/gsettings-tool.c:716
 msgid "  KEY       The key within the schema\n"
 msgstr "  ATSLĒGA   Atslēga shēmā\n"
 
-#: gio/gsettings-tool.c:720
+#: ../gio/gsettings-tool.c:720
 msgid "  VALUE     The value to set\n"
 msgstr "  VĒRTĪBA   Vērtība, ko iestatīt\n"
 
-#: gio/gsettings-tool.c:775
+#: ../gio/gsettings-tool.c:775
 #, 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:787
+#: ../gio/gsettings-tool.c:787
+#, c-format
 msgid "No schemas installed\n"
 msgstr "Nav instalētu shēmu\n"
 
-#: gio/gsettings-tool.c:866
+#: ../gio/gsettings-tool.c:866
+#, c-format
 msgid "Empty schema name given\n"
 msgstr "Dots tukšs shēmas nosaukums\n"
 
-#: gio/gsettings-tool.c:921
+#: ../gio/gsettings-tool.c:921
 #, c-format
 msgid "No such key “%s”\n"
 msgstr "Nav tādas atslēgas “%s”\n"
 
-#: gio/gsocket.c:384
+#: ../gio/gsocket.c:384
 msgid "Invalid socket, not initialized"
 msgstr "Nederīga ligzda, nav inicializēta"
 
-#: gio/gsocket.c:391
+#: ../gio/gsocket.c:391
 #, c-format
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr "Nederīga ligzda, inicializācija neizdevās, jo — %s"
 
-#: gio/gsocket.c:399
+#: ../gio/gsocket.c:399
 msgid "Socket is already closed"
 msgstr "Ligzda jau ir aizvērta"
 
-#: gio/gsocket.c:414 gio/gsocket.c:3034 gio/gsocket.c:4244 gio/gsocket.c:4302
+#: ../gio/gsocket.c:414 ../gio/gsocket.c:3010 ../gio/gsocket.c:4220
+#: ../gio/gsocket.c:4278
 msgid "Socket I/O timed out"
 msgstr "Ligzdai I/O iestājās noildze"
 
-#: gio/gsocket.c:549
+#: ../gio/gsocket.c:549
 #, c-format
 msgid "creating GSocket from fd: %s"
 msgstr "izveido GSocket no fd — %s"
 
-#: gio/gsocket.c:578 gio/gsocket.c:632 gio/gsocket.c:639
+#: ../gio/gsocket.c:578 ../gio/gsocket.c:632 ../gio/gsocket.c:639
 #, c-format
 msgid "Unable to create socket: %s"
 msgstr "Nevarēja izveidot ligzdu — %s"
 
-#: gio/gsocket.c:632
+#: ../gio/gsocket.c:632
 msgid "Unknown family was specified"
 msgstr "Tika norādīta nezināma saime"
 
-#: gio/gsocket.c:639
+#: ../gio/gsocket.c:639
 msgid "Unknown protocol was specified"
 msgstr "Tika norādīts nezināms protokols"
 
-#: gio/gsocket.c:1130
+#: ../gio/gsocket.c:1130
 #, 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:1147
+#: ../gio/gsocket.c:1147
 #, 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:1954
+#: ../gio/gsocket.c:1954
 #, c-format
 msgid "could not get local address: %s"
 msgstr "nevarēja iegūt lokālo adresi — %s"
 
-#: gio/gsocket.c:2000
+#: ../gio/gsocket.c:2000
 #, c-format
 msgid "could not get remote address: %s"
 msgstr "nevarēja iegūt attālināto adresi — %s"
 
-#: gio/gsocket.c:2066
+#: ../gio/gsocket.c:2066
 #, c-format
 msgid "could not listen: %s"
 msgstr "nevar klausīties — %s"
 
-#: gio/gsocket.c:2168
+#: ../gio/gsocket.c:2168
 #, c-format
 msgid "Error binding to address: %s"
 msgstr "Kļūda, sasaistoties ar adresi — %s"
 
-#: gio/gsocket.c:2226 gio/gsocket.c:2263 gio/gsocket.c:2373 gio/gsocket.c:2398
-#: gio/gsocket.c:2471 gio/gsocket.c:2529 gio/gsocket.c:2547
+#: ../gio/gsocket.c:2226 ../gio/gsocket.c:2263 ../gio/gsocket.c:2373
+#: ../gio/gsocket.c:2391 ../gio/gsocket.c:2461 ../gio/gsocket.c:2519
+#: ../gio/gsocket.c:2537
 #, c-format
 msgid "Error joining multicast group: %s"
 msgstr "Kļūda, pievienojoties multiraides grupai — %s"
 
-#: gio/gsocket.c:2227 gio/gsocket.c:2264 gio/gsocket.c:2374 gio/gsocket.c:2399
-#: gio/gsocket.c:2472 gio/gsocket.c:2530 gio/gsocket.c:2548
+#: ../gio/gsocket.c:2227 ../gio/gsocket.c:2264 ../gio/gsocket.c:2374
+#: ../gio/gsocket.c:2392 ../gio/gsocket.c:2462 ../gio/gsocket.c:2520
+#: ../gio/gsocket.c:2538
 #, c-format
 msgid "Error leaving multicast group: %s"
 msgstr "Kļūda, pametot multiraides grupu — %s"
 
-#: gio/gsocket.c:2228
+#: ../gio/gsocket.c:2228
 msgid "No support for source-specific multicast"
 msgstr "Nav atbalsta avotam specifiskām multiraidēm"
 
-#: gio/gsocket.c:2375
+#: ../gio/gsocket.c:2375
+#| msgid "Unsupported socket address"
 msgid "Unsupported socket family"
 msgstr "Neatbalstīta ligzdu saime"
 
-#: gio/gsocket.c:2400
+#: ../gio/gsocket.c:2393
 msgid "source-specific not an IPv4 address"
 msgstr "Avotam specifisks nav IPv4 adrese"
 
-#: gio/gsocket.c:2418 gio/gsocket.c:2447 gio/gsocket.c:2497
+#: ../gio/gsocket.c:2411 ../gio/gsocket.c:2440 ../gio/gsocket.c:2487
 #, c-format
 msgid "Interface not found: %s"
 msgstr "Saskarne nav atrasta: %s"
 
-#: gio/gsocket.c:2434
+#: ../gio/gsocket.c:2427
 #, c-format
 msgid "Interface name too long"
 msgstr "Saskarnes nosaukums ir pārāk garš"
 
-#: gio/gsocket.c:2473
+#: ../gio/gsocket.c:2463
+#| msgid "No support for source-specific multicast"
 msgid "No support for IPv4 source-specific multicast"
 msgstr "Nav atbalsta IPv4 avotam specifiskām multiraidēm"
 
-#: gio/gsocket.c:2531
+#: ../gio/gsocket.c:2521
+#| msgid "No support for source-specific multicast"
 msgid "No support for IPv6 source-specific multicast"
 msgstr "Nav atbalsta IPv6 avotam specifiskām multiraidēm"
 
-#: gio/gsocket.c:2740
+#: ../gio/gsocket.c:2730
 #, c-format
 msgid "Error accepting connection: %s"
 msgstr "Kļūda, pieņemot savienojumu — %s"
 
-#: gio/gsocket.c:2864
+#: ../gio/gsocket.c:2854
 msgid "Connection in progress"
 msgstr "Notiek savienošanās"
 
-#: gio/gsocket.c:2913
+#: ../gio/gsocket.c:2903
 msgid "Unable to get pending error: "
 msgstr "Nevar saņemt izpildes gaidīšanas kļūdu:"
 
-#: gio/gsocket.c:3097
+#: ../gio/gsocket.c:3073
 #, c-format
 msgid "Error receiving data: %s"
 msgstr "Kļūda, saņemot datus — %s"
 
-#: gio/gsocket.c:3292
+#: ../gio/gsocket.c:3268
 #, c-format
 msgid "Error sending data: %s"
 msgstr "Kļūda, sūtot datus — %s"
 
-#: gio/gsocket.c:3479
+#: ../gio/gsocket.c:3455
 #, c-format
 msgid "Unable to shutdown socket: %s"
 msgstr "Neizdevās izslēgt ligzdu — %s"
 
-#: gio/gsocket.c:3560
+#: ../gio/gsocket.c:3536
 #, c-format
 msgid "Error closing socket: %s"
 msgstr "Kļūda, aizverot ligzdu — %s"
 
-#: gio/gsocket.c:4237
+#: ../gio/gsocket.c:4213
 #, c-format
 msgid "Waiting for socket condition: %s"
 msgstr "Gaida ligzdas nosacījumu — %s"
 
-#: gio/gsocket.c:4711 gio/gsocket.c:4791 gio/gsocket.c:4969
+#: ../gio/gsocket.c:4687 ../gio/gsocket.c:4767 ../gio/gsocket.c:4945
 #, c-format
 msgid "Error sending message: %s"
 msgstr "Kļūda, sūtot ziņojumu — %s"
 
-#: gio/gsocket.c:4735
+#: ../gio/gsocket.c:4711
 msgid "GSocketControlMessage not supported on Windows"
 msgstr "GSocketControlMessage nav atbalstīts uz Windows"
 
-#: gio/gsocket.c:5188 gio/gsocket.c:5261 gio/gsocket.c:5487
+#: ../gio/gsocket.c:5164 ../gio/gsocket.c:5237 ../gio/gsocket.c:5463
 #, c-format
 msgid "Error receiving message: %s"
 msgstr "Kļūda, saņemot ziņojumu — %s"
 
-#: gio/gsocket.c:5759
+#: ../gio/gsocket.c:5735
 #, c-format
 msgid "Unable to read socket credentials: %s"
 msgstr "Nevar nolasīt ligzdas datus — %s"
 
-#: gio/gsocket.c:5768
+#: ../gio/gsocket.c:5744
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr "g_socket_get_credentials nav implementēts šai OS"
 
-#: gio/gsocketclient.c:176
+#: ../gio/gsocketclient.c:176
 #, c-format
 msgid "Could not connect to proxy server %s: "
 msgstr "Nevarēja savienoties ar starpniekserveri %s: "
 
-#: gio/gsocketclient.c:190
+#: ../gio/gsocketclient.c:190
 #, c-format
 msgid "Could not connect to %s: "
 msgstr "Nevarēja savienoties ar %s: "
 
-#: gio/gsocketclient.c:192
+#: ../gio/gsocketclient.c:192
 msgid "Could not connect: "
 msgstr "Nevarēja savienoties:"
 
-#: gio/gsocketclient.c:1027 gio/gsocketclient.c:1599
+#: ../gio/gsocketclient.c:1027 ../gio/gsocketclient.c:1599
 msgid "Unknown error on connect"
 msgstr "Nezināma kļūda savienojoties"
 
-#: gio/gsocketclient.c:1081 gio/gsocketclient.c:1535
+#: ../gio/gsocketclient.c:1081 ../gio/gsocketclient.c:1535
 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:1110 gio/gsocketclient.c:1561
+#: ../gio/gsocketclient.c:1110 ../gio/gsocketclient.c:1561
 #, c-format
 msgid "Proxy protocol “%s” is not supported."
 msgstr "Starpnieka protokols “%s” nav atbalstīts."
 
-#: gio/gsocketlistener.c:225
+#: ../gio/gsocketlistener.c:218
 msgid "Listener is already closed"
 msgstr "Klausītājs jau ir aizvērts"
 
-#: gio/gsocketlistener.c:271
+#: ../gio/gsocketlistener.c:264
 msgid "Added socket is closed"
 msgstr "Pievienotā ligzda ir aizvērta"
 
-#: gio/gsocks4aproxy.c:118
+#: ../gio/gsocks4aproxy.c:118
 #, c-format
 msgid "SOCKSv4 does not support IPv6 address “%s”"
 msgstr "SOCKSv4 neatbalsta IPv6 adreses “%s”"
 
-#: gio/gsocks4aproxy.c:136
+#: ../gio/gsocks4aproxy.c:136
 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:153
 #, 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:179
 msgid "The server is not a SOCKSv4 proxy server."
 msgstr "Serveris nav SOCKSv4 starpniekserveris."
 
-#: gio/gsocks4aproxy.c:186
+#: ../gio/gsocks4aproxy.c:186
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "Savienojums caur SOCKSv4 serveri tika noraidīts"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: ../gio/gsocks5proxy.c:153 ../gio/gsocks5proxy.c:324
+#: ../gio/gsocks5proxy.c:334
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "Serveris nav SOCKSv5 starpniekserveris."
 
-#: gio/gsocks5proxy.c:167
+#: ../gio/gsocks5proxy.c:167
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "SOCKSv5 starpnieks pieprasa autentificēšanos."
 
-#: gio/gsocks5proxy.c:177
+#: ../gio/gsocks5proxy.c:177
 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:206
+#: ../gio/gsocks5proxy.c:206
 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:236
+#: ../gio/gsocks5proxy.c:236
 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:286
+#: ../gio/gsocks5proxy.c:286
 #, 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:348
+#: ../gio/gsocks5proxy.c:348
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "SOCKSv5 starpnieka serveris izmanto nezināmu adreses tipu."
 
-#: gio/gsocks5proxy.c:355
+#: ../gio/gsocks5proxy.c:355
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "Iekšēja SOCKSv5 starpnieka servera kļūda."
 
-#: gio/gsocks5proxy.c:361
+#: ../gio/gsocks5proxy.c:361
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "Noteikumu kopa neļauj SOCKSv5 savienojumu."
 
-#: gio/gsocks5proxy.c:368
+#: ../gio/gsocks5proxy.c:368
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "Dators nav sasniedzams caur SOCKSv5 serveri."
 
-#: gio/gsocks5proxy.c:374
+#: ../gio/gsocks5proxy.c:374
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "Tīkls nav sasniedzams caur SOCKSv5 serveri."
 
-#: gio/gsocks5proxy.c:380
+#: ../gio/gsocks5proxy.c:380
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "Savienojums atteikts caur SOCKSv5 serveri."
 
-#: gio/gsocks5proxy.c:386
+#: ../gio/gsocks5proxy.c:386
 msgid "SOCKSv5 proxy does not support “connect” command."
 msgstr "SOCKSv5 starpnieks neatbalsta “connect” komandu."
 
-#: gio/gsocks5proxy.c:392
+#: ../gio/gsocks5proxy.c:392
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr "SOCKSv5 starpnieks neatbalsta doto adreses tipu."
 
-#: gio/gsocks5proxy.c:398
+#: ../gio/gsocks5proxy.c:398
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Nezināma SOCKSv5 starpnieka kļūda."
 
-#: gio/gthemedicon.c:595
+#: ../gio/gthemedicon.c:518
 #, c-format
 msgid "Can’t handle version %d of GThemedIcon encoding"
 msgstr "Nevar apstrādāt GThemedIcon versijas %d kodējumu"
 
-#: gio/gthreadedresolver.c:118
+#: ../gio/gthreadedresolver.c:118
 msgid "No valid addresses were found"
 msgstr "Netika atrasta neviena derīga adrese"
 
-#: gio/gthreadedresolver.c:213
+#: ../gio/gthreadedresolver.c:213
 #, c-format
 msgid "Error reverse-resolving “%s”: %s"
 msgstr "Kļūda, apgriezti sameklējot “%s” — %s"
 
-#: gio/gthreadedresolver.c:549 gio/gthreadedresolver.c:628
-#: gio/gthreadedresolver.c:726 gio/gthreadedresolver.c:776
+#: ../gio/gthreadedresolver.c:549 ../gio/gthreadedresolver.c:628
+#: ../gio/gthreadedresolver.c:726 ../gio/gthreadedresolver.c:776
 #, c-format
 msgid "No DNS record of the requested type for “%s”"
 msgstr "Nav DNS ierakstu “%s” pieprasītajam tipam"
 
-#: gio/gthreadedresolver.c:554 gio/gthreadedresolver.c:731
+#: ../gio/gthreadedresolver.c:554 ../gio/gthreadedresolver.c:731
 #, c-format
 msgid "Temporarily unable to resolve “%s”"
 msgstr "Pagaidām nevar sameklēt “%s”"
 
-#: gio/gthreadedresolver.c:559 gio/gthreadedresolver.c:736
-#: gio/gthreadedresolver.c:844
+#: ../gio/gthreadedresolver.c:559 ../gio/gthreadedresolver.c:736
+#: ../gio/gthreadedresolver.c:842
 #, c-format
 msgid "Error resolving “%s”"
 msgstr "Kļūda, sameklējot “%s”"
 
-#: gio/gtlscertificate.c:250
+#: ../gio/gtlscertificate.c:250
 msgid "Cannot decrypt PEM-encoded private key"
 msgstr "Nevarēja atšifrēt PEM-iekodētu privāto atslēgu"
 
-#: gio/gtlscertificate.c:255
+#: ../gio/gtlscertificate.c:255
 msgid "No PEM-encoded private key found"
 msgstr "Nav atrasts PEM iekodēta privāta atslēga"
 
-#: gio/gtlscertificate.c:265
+#: ../gio/gtlscertificate.c:265
 msgid "Could not parse PEM-encoded private key"
 msgstr "Nevarēja parsēt PEM-iekodētu privāto atslēgu"
 
-#: gio/gtlscertificate.c:290
+#: ../gio/gtlscertificate.c:290
 msgid "No PEM-encoded certificate found"
 msgstr "Nav atrasts PEM-iekodēts sertifikāts"
 
-#: gio/gtlscertificate.c:299
+#: ../gio/gtlscertificate.c:299
 msgid "Could not parse PEM-encoded certificate"
 msgstr "Nevarēja parsēt PEM-iekodētu sertifikātu"
 
-#: gio/gtlspassword.c:111
+#: ../gio/gtlspassword.c:111
 msgid ""
 "This is the last chance to enter the password correctly before your access "
 "is locked out."
@@ -3984,7 +3979,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:115
 msgid ""
 "Several passwords entered have been incorrect, and your access will be "
 "locked out after further failures."
@@ -3992,11 +3987,11 @@ 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:117
 msgid "The password entered is incorrect."
 msgstr "Ievadītā parole ir nepareiza."
 
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:563
+#: ../gio/gunixconnection.c:166 ../gio/gunixconnection.c:563
 #, c-format
 msgid "Expecting 1 control message, got %d"
 msgid_plural "Expecting 1 control message, got %d"
@@ -4004,11 +3999,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:575
+#: ../gio/gunixconnection.c:182 ../gio/gunixconnection.c:575
 msgid "Unexpected type of ancillary data"
 msgstr "Negaidīts palīgdatu tips"
 
-#: gio/gunixconnection.c:200
+#: ../gio/gunixconnection.c:200
 #, c-format
 msgid "Expecting one fd, but got %d\n"
 msgid_plural "Expecting one fd, but got %d\n"
@@ -4016,274 +4011,278 @@ 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:219
 msgid "Received invalid fd"
 msgstr "Saņemts nederīgs fd"
 
-#: gio/gunixconnection.c:355
+#: ../gio/gunixconnection.c:355
 msgid "Error sending credentials: "
 msgstr "Kļūda, sūtot rekvizītus: "
 
-#: gio/gunixconnection.c:504
+#: ../gio/gunixconnection.c:504
 #, 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:520
+#: ../gio/gunixconnection.c:520
 #, c-format
 msgid "Error enabling SO_PASSCRED: %s"
 msgstr "Kļūda, aktivējot SO_PASSCRED — %s"
 
-#: gio/gunixconnection.c:549
+#: ../gio/gunixconnection.c:549
 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:589
+#: ../gio/gunixconnection.c:589
 #, c-format
 msgid "Not expecting control message, but got %d"
 msgstr "Negaida kontroles ziņojumu, bet saņēma %d"
 
-#: gio/gunixconnection.c:614
+#: ../gio/gunixconnection.c:614
 #, c-format
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Kļūda, deaktivējot SO_PASSCRED — %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
+#: ../gio/gunixinputstream.c:372 ../gio/gunixinputstream.c:393
 #, c-format
 msgid "Error reading from file descriptor: %s"
 msgstr "Kļūda, nolasot datnes deskriptoru — %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:411
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
+#: ../gio/gunixinputstream.c:426 ../gio/gunixoutputstream.c:411
+#: ../gio/gwin32inputstream.c:217 ../gio/gwin32outputstream.c:204
 #, c-format
 msgid "Error closing file descriptor: %s"
 msgstr "Kļūda, aizverot datnes deskriptoru — %s"
 
-#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
+#: ../gio/gunixmounts.c:2556 ../gio/gunixmounts.c:2609
 msgid "Filesystem root"
 msgstr "Datņu sistēmas sakne"
 
-#: gio/gunixoutputstream.c:358 gio/gunixoutputstream.c:378
+#: ../gio/gunixoutputstream.c:358 ../gio/gunixoutputstream.c:378
 #, c-format
 msgid "Error writing to file descriptor: %s"
 msgstr "Kļūda, rakstot datnes deskriptorā — %s"
 
-#: gio/gunixsocketaddress.c:243
+#: ../gio/gunixsocketaddress.c:241
 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:437
 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:514
 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:185
 #, 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:232 ../gio/gwin32outputstream.c:219
 #, c-format
 msgid "Error closing handle: %s"
 msgstr "Kļūda, aizverot turi — %s"
 
-#: gio/gwin32outputstream.c:172
+#: ../gio/gwin32outputstream.c:172
 #, 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:394 ../gio/gzlibdecompressor.c:347
 msgid "Not enough memory"
 msgstr "Nepietiek atmiņas"
 
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
+#: ../gio/gzlibcompressor.c:401 ../gio/gzlibdecompressor.c:354
 #, c-format
 msgid "Internal error: %s"
 msgstr "Iekšēja kļūda — %s"
 
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: ../gio/gzlibcompressor.c:414 ../gio/gzlibdecompressor.c:368
 msgid "Need more input"
 msgstr "Vajag vairāk ievades"
 
-#: gio/gzlibdecompressor.c:340
+#: ../gio/gzlibdecompressor.c:340
 msgid "Invalid compressed data"
 msgstr "Nederīgi saspiestie dati"
 
-#: gio/tests/gdbus-daemon.c:18
+#: ../gio/tests/gdbus-daemon.c:18
 msgid "Address to listen on"
 msgstr "Adrese, ko klausīties"
 
-#: gio/tests/gdbus-daemon.c:19
+#: ../gio/tests/gdbus-daemon.c:19
 msgid "Ignored, for compat with GTestDbus"
 msgstr "Ignorēts priekš compat ar GTestDbus"
 
-#: gio/tests/gdbus-daemon.c:20
+#: ../gio/tests/gdbus-daemon.c:20
 msgid "Print address"
 msgstr "Drukāšanas adrese"
 
-#: gio/tests/gdbus-daemon.c:21
+#: ../gio/tests/gdbus-daemon.c:21
 msgid "Print address in shell mode"
 msgstr "Drukāt adresi čaulas režīmā"
 
-#: gio/tests/gdbus-daemon.c:28
+#: ../gio/tests/gdbus-daemon.c:28
 msgid "Run a dbus service"
 msgstr "Palaist dbus servisu"
 
-#: gio/tests/gdbus-daemon.c:42
+#: ../gio/tests/gdbus-daemon.c:42
+#, c-format
 msgid "Wrong args\n"
 msgstr "Nepareizi parametri\n"
 
-#: glib/gbookmarkfile.c:754
+#: ../glib/gbookmarkfile.c:754
 #, c-format
 msgid "Unexpected attribute “%s” for element “%s”"
 msgstr "Negaidīts atribūts “%s” elementam “%s”"
 
-#: glib/gbookmarkfile.c:765 glib/gbookmarkfile.c:836 glib/gbookmarkfile.c:846
-#: glib/gbookmarkfile.c:955
+#: ../glib/gbookmarkfile.c:765 ../glib/gbookmarkfile.c:836
+#: ../glib/gbookmarkfile.c:846 ../glib/gbookmarkfile.c:953
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr "Atribūts “%s” elementam “%s” netika atrasts"
 
-#: glib/gbookmarkfile.c:1164 glib/gbookmarkfile.c:1229
-#: glib/gbookmarkfile.c:1293 glib/gbookmarkfile.c:1303
+#: ../glib/gbookmarkfile.c:1123 ../glib/gbookmarkfile.c:1188
+#: ../glib/gbookmarkfile.c:1252 ../glib/gbookmarkfile.c:1262
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr "Negaidīta birka “%s”, tika gaidīt birka “%s”"
 
-#: glib/gbookmarkfile.c:1189 glib/gbookmarkfile.c:1203
-#: glib/gbookmarkfile.c:1271 glib/gbookmarkfile.c:1317
+#: ../glib/gbookmarkfile.c:1148 ../glib/gbookmarkfile.c:1162
+#: ../glib/gbookmarkfile.c:1230
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr "Negaidīta birka “%s” iekš “%s”"
 
-#: glib/gbookmarkfile.c:1813
+#: ../glib/gbookmarkfile.c:1757
 msgid "No valid bookmark file found in data dirs"
 msgstr "Nav atrasts derīga grāmatzīmes datne datu mapēs"
 
-#: glib/gbookmarkfile.c:2014
+#: ../glib/gbookmarkfile.c:1958
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
 msgstr "Grāmatzīme ar URI “%s” jau eksistē"
 
-#: glib/gbookmarkfile.c:2060 glib/gbookmarkfile.c:2218
-#: glib/gbookmarkfile.c:2303 glib/gbookmarkfile.c:2383
-#: glib/gbookmarkfile.c:2468 glib/gbookmarkfile.c:2551
-#: glib/gbookmarkfile.c:2629 glib/gbookmarkfile.c:2708
-#: glib/gbookmarkfile.c:2750 glib/gbookmarkfile.c:2847
-#: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
-#: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
+#: ../glib/gbookmarkfile.c:2004 ../glib/gbookmarkfile.c:2162
+#: ../glib/gbookmarkfile.c:2247 ../glib/gbookmarkfile.c:2327
+#: ../glib/gbookmarkfile.c:2412 ../glib/gbookmarkfile.c:2495
+#: ../glib/gbookmarkfile.c:2573 ../glib/gbookmarkfile.c:2652
+#: ../glib/gbookmarkfile.c:2694 ../glib/gbookmarkfile.c:2791
+#: ../glib/gbookmarkfile.c:2912 ../glib/gbookmarkfile.c:3102
+#: ../glib/gbookmarkfile.c:3178 ../glib/gbookmarkfile.c:3346
+#: ../glib/gbookmarkfile.c:3435 ../glib/gbookmarkfile.c:3524
+#: ../glib/gbookmarkfile.c:3640
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "Nav atrasta grāmatzīme URI “%s”"
 
-#: glib/gbookmarkfile.c:2392
+#: ../glib/gbookmarkfile.c:2336
 #, 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:2477
+#: ../glib/gbookmarkfile.c:2421
 #, 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:2856
+#: ../glib/gbookmarkfile.c:2800
 #, 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:3255 glib/gbookmarkfile.c:3412
+#: ../glib/gbookmarkfile.c:3199 ../glib/gbookmarkfile.c:3356
 #, 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:3435
+#: ../glib/gbookmarkfile.c:3379
 #, 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:473
+#: ../glib/gconvert.c:473
+#| msgid "Invalid sequence in conversion input"
 msgid "Unrepresentable character in conversion input"
 msgstr "Neattēlojama rakstzīme konversijas ievadē"
 
-#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
-#: glib/gutf8.c:1318
+#: ../glib/gconvert.c:500 ../glib/gutf8.c:865 ../glib/gutf8.c:1077
+#: ../glib/gutf8.c:1214 ../glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Daļēja simbolu secība ievades beigās"
 
-#: glib/gconvert.c:769
+#: ../glib/gconvert.c:769
 #, 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:940
+#: ../glib/gconvert.c:940
+#| msgid "Invalid byte sequence in conversion input"
 msgid "Embedded NUL byte in conversion input"
 msgstr "Iegults NUL baits konversijas ievadē"
 
-#: glib/gconvert.c:961
+#: ../glib/gconvert.c:961
+#| msgid "Invalid byte sequence in conversion input"
 msgid "Embedded NUL byte in conversion output"
 msgstr "Iegults NUL baits konversijas izvadē"
 
-#: glib/gconvert.c:1649
+#: ../glib/gconvert.c:1649
 #, 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:1659
+#: ../glib/gconvert.c:1659
 #, 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:1676
+#: ../glib/gconvert.c:1676
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr "URI “%s” nav pareizs"
 
-#: glib/gconvert.c:1688
+#: ../glib/gconvert.c:1688
 #, c-format
 msgid "The hostname of the URI “%s” is invalid"
 msgstr "Resursdatora nosaukuma URI “%s” nav pareizs"
 
-#: glib/gconvert.c:1704
+#: ../glib/gconvert.c:1704
 #, c-format
 msgid "The URI “%s” contains invalidly escaped characters"
 msgstr "URI “%s” satur nepareizi veidotas atsoļa rakstzīmes"
 
-#: glib/gconvert.c:1776
+#: ../glib/gconvert.c:1776
 #, 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:213
+#: ../glib/gdatetime.c:207
 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:216
+#: ../glib/gdatetime.c:210
 msgctxt "GDateTime"
 msgid "%m/%d/%y"
 msgstr "%d.%m.%Y"
 
 #. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:219
+#: ../glib/gdatetime.c:213
 msgctxt "GDateTime"
 msgid "%H:%M:%S"
 msgstr "%H:%M:%S"
 
 #. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:222
+#: ../glib/gdatetime.c:216
 msgctxt "GDateTime"
 msgid "%I:%M:%S %p"
 msgstr "%I:%M:%S %p"
@@ -4304,62 +4303,62 @@ msgstr "%I:%M:%S %p"
 #. * non-European) there is no difference between the standalone and
 #. * complete date form.
 #.
-#: glib/gdatetime.c:261
+#: ../glib/gdatetime.c:251
 msgctxt "full month name"
 msgid "January"
 msgstr "Janvāris"
 
-#: glib/gdatetime.c:263
+#: ../glib/gdatetime.c:253
 msgctxt "full month name"
 msgid "February"
 msgstr "Februāris"
 
-#: glib/gdatetime.c:265
+#: ../glib/gdatetime.c:255
 msgctxt "full month name"
 msgid "March"
 msgstr "Marts"
 
-#: glib/gdatetime.c:267
+#: ../glib/gdatetime.c:257
 msgctxt "full month name"
 msgid "April"
 msgstr "Aprīlis"
 
-#: glib/gdatetime.c:269
+#: ../glib/gdatetime.c:259
 msgctxt "full month name"
 msgid "May"
 msgstr "Maijs"
 
-#: glib/gdatetime.c:271
+#: ../glib/gdatetime.c:261
 msgctxt "full month name"
 msgid "June"
 msgstr "Jūnijs"
 
-#: glib/gdatetime.c:273
+#: ../glib/gdatetime.c:263
 msgctxt "full month name"
 msgid "July"
 msgstr "Jūlijs"
 
-#: glib/gdatetime.c:275
+#: ../glib/gdatetime.c:265
 msgctxt "full month name"
 msgid "August"
 msgstr "Augusts"
 
-#: glib/gdatetime.c:277
+#: ../glib/gdatetime.c:267
 msgctxt "full month name"
 msgid "September"
 msgstr "Septembris"
 
-#: glib/gdatetime.c:279
+#: ../glib/gdatetime.c:269
 msgctxt "full month name"
 msgid "October"
 msgstr "Oktobris"
 
-#: glib/gdatetime.c:281
+#: ../glib/gdatetime.c:271
 msgctxt "full month name"
 msgid "November"
 msgstr "Novembris"
 
-#: glib/gdatetime.c:283
+#: ../glib/gdatetime.c:273
 msgctxt "full month name"
 msgid "December"
 msgstr "Decembris"
@@ -4381,132 +4380,132 @@ msgstr "Decembris"
 #. * other platform.  Here are abbreviated month names in a form
 #. * appropriate when they are used standalone.
 #.
-#: glib/gdatetime.c:315
+#: ../glib/gdatetime.c:305
 msgctxt "abbreviated month name"
 msgid "Jan"
 msgstr "Jan"
 
-#: glib/gdatetime.c:317
+#: ../glib/gdatetime.c:307
 msgctxt "abbreviated month name"
 msgid "Feb"
 msgstr "Feb"
 
-#: glib/gdatetime.c:319
+#: ../glib/gdatetime.c:309
 msgctxt "abbreviated month name"
 msgid "Mar"
 msgstr "Mar"
 
-#: glib/gdatetime.c:321
+#: ../glib/gdatetime.c:311
 msgctxt "abbreviated month name"
 msgid "Apr"
 msgstr "Apr"
 
-#: glib/gdatetime.c:323
+#: ../glib/gdatetime.c:313
 msgctxt "abbreviated month name"
 msgid "May"
 msgstr "Mai"
 
-#: glib/gdatetime.c:325
+#: ../glib/gdatetime.c:315
 msgctxt "abbreviated month name"
 msgid "Jun"
 msgstr "Jūn"
 
-#: glib/gdatetime.c:327
+#: ../glib/gdatetime.c:317
 msgctxt "abbreviated month name"
 msgid "Jul"
 msgstr "Jūl"
 
-#: glib/gdatetime.c:329
+#: ../glib/gdatetime.c:319
 msgctxt "abbreviated month name"
 msgid "Aug"
 msgstr "Aug"
 
-#: glib/gdatetime.c:331
+#: ../glib/gdatetime.c:321
 msgctxt "abbreviated month name"
 msgid "Sep"
 msgstr "Sep"
 
-#: glib/gdatetime.c:333
+#: ../glib/gdatetime.c:323
 msgctxt "abbreviated month name"
 msgid "Oct"
 msgstr "Oct"
 
-#: glib/gdatetime.c:335
+#: ../glib/gdatetime.c:325
 msgctxt "abbreviated month name"
 msgid "Nov"
 msgstr "Nov"
 
-#: glib/gdatetime.c:337
+#: ../glib/gdatetime.c:327
 msgctxt "abbreviated month name"
 msgid "Dec"
 msgstr "Dec"
 
-#: glib/gdatetime.c:352
+#: ../glib/gdatetime.c:342
 msgctxt "full weekday name"
 msgid "Monday"
 msgstr "Pirmdiena"
 
-#: glib/gdatetime.c:354
+#: ../glib/gdatetime.c:344
 msgctxt "full weekday name"
 msgid "Tuesday"
 msgstr "Otrdiena"
 
-#: glib/gdatetime.c:356
+#: ../glib/gdatetime.c:346
 msgctxt "full weekday name"
 msgid "Wednesday"
 msgstr "Trešdiena"
 
-#: glib/gdatetime.c:358
+#: ../glib/gdatetime.c:348
 msgctxt "full weekday name"
 msgid "Thursday"
 msgstr "Ceturdiena"
 
-#: glib/gdatetime.c:360
+#: ../glib/gdatetime.c:350
 msgctxt "full weekday name"
 msgid "Friday"
 msgstr "Piektdiena"
 
-#: glib/gdatetime.c:362
+#: ../glib/gdatetime.c:352
 msgctxt "full weekday name"
 msgid "Saturday"
 msgstr "Sestdiena"
 
-#: glib/gdatetime.c:364
+#: ../glib/gdatetime.c:354
 msgctxt "full weekday name"
 msgid "Sunday"
 msgstr "Svētdiena"
 
-#: glib/gdatetime.c:379
+#: ../glib/gdatetime.c:369
 msgctxt "abbreviated weekday name"
 msgid "Mon"
 msgstr "Pr"
 
-#: glib/gdatetime.c:381
+#: ../glib/gdatetime.c:371
 msgctxt "abbreviated weekday name"
 msgid "Tue"
 msgstr "Ot"
 
-#: glib/gdatetime.c:383
+#: ../glib/gdatetime.c:373
 msgctxt "abbreviated weekday name"
 msgid "Wed"
 msgstr "Tr"
 
-#: glib/gdatetime.c:385
+#: ../glib/gdatetime.c:375
 msgctxt "abbreviated weekday name"
 msgid "Thu"
 msgstr "Ct"
 
-#: glib/gdatetime.c:387
+#: ../glib/gdatetime.c:377
 msgctxt "abbreviated weekday name"
 msgid "Fri"
 msgstr "Pk"
 
-#: glib/gdatetime.c:389
+#: ../glib/gdatetime.c:379
 msgctxt "abbreviated weekday name"
 msgid "Sat"
 msgstr "Se"
 
-#: glib/gdatetime.c:391
+#: ../glib/gdatetime.c:381
 msgctxt "abbreviated weekday name"
 msgid "Sun"
 msgstr "Sv"
@@ -4528,62 +4527,86 @@ msgstr "Sv"
 #. * (western European, non-European) there is no difference between the
 #. * standalone and complete date form.
 #.
-#: glib/gdatetime.c:455
+#: ../glib/gdatetime.c:441
+#| msgctxt "full month name"
+#| msgid "January"
 msgctxt "full month name with day"
 msgid "January"
 msgstr "janvāris"
 
-#: glib/gdatetime.c:457
+#: ../glib/gdatetime.c:443
+#| msgctxt "full month name"
+#| msgid "February"
 msgctxt "full month name with day"
 msgid "February"
 msgstr "februāris"
 
-#: glib/gdatetime.c:459
+#: ../glib/gdatetime.c:445
+#| msgctxt "full month name"
+#| msgid "March"
 msgctxt "full month name with day"
 msgid "March"
 msgstr "marts"
 
-#: glib/gdatetime.c:461
+#: ../glib/gdatetime.c:447
+#| msgctxt "full month name"
+#| msgid "April"
 msgctxt "full month name with day"
 msgid "April"
 msgstr "aprīlis"
 
-#: glib/gdatetime.c:463
+#: ../glib/gdatetime.c:449
+#| msgctxt "full month name"
+#| msgid "May"
 msgctxt "full month name with day"
 msgid "May"
 msgstr "maijs"
 
-#: glib/gdatetime.c:465
+#: ../glib/gdatetime.c:451
+#| msgctxt "full month name"
+#| msgid "June"
 msgctxt "full month name with day"
 msgid "June"
 msgstr "jūnijs"
 
-#: glib/gdatetime.c:467
+#: ../glib/gdatetime.c:453
+#| msgctxt "full month name"
+#| msgid "July"
 msgctxt "full month name with day"
 msgid "July"
 msgstr "jūlijs"
 
-#: glib/gdatetime.c:469
+#: ../glib/gdatetime.c:455
+#| msgctxt "full month name"
+#| msgid "August"
 msgctxt "full month name with day"
 msgid "August"
 msgstr "augusts"
 
-#: glib/gdatetime.c:471
+#: ../glib/gdatetime.c:457
+#| msgctxt "full month name"
+#| msgid "September"
 msgctxt "full month name with day"
 msgid "September"
 msgstr "septembris"
 
-#: glib/gdatetime.c:473
+#: ../glib/gdatetime.c:459
+#| msgctxt "full month name"
+#| msgid "October"
 msgctxt "full month name with day"
 msgid "October"
 msgstr "oktobris"
 
-#: glib/gdatetime.c:475
+#: ../glib/gdatetime.c:461
+#| msgctxt "full month name"
+#| msgid "November"
 msgctxt "full month name with day"
 msgid "November"
 msgstr "novembris"
 
-#: glib/gdatetime.c:477
+#: ../glib/gdatetime.c:463
+#| msgctxt "full month name"
+#| msgid "December"
 msgctxt "full month name with day"
 msgid "December"
 msgstr "decembris"
@@ -4605,84 +4628,108 @@ 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:542
+#: ../glib/gdatetime.c:524
+#| msgctxt "abbreviated month name"
+#| msgid "Jan"
 msgctxt "abbreviated month name with day"
 msgid "Jan"
 msgstr "janv."
 
-#: glib/gdatetime.c:544
+#: ../glib/gdatetime.c:526
+#| msgctxt "abbreviated month name"
+#| msgid "Feb"
 msgctxt "abbreviated month name with day"
 msgid "Feb"
 msgstr "febr."
 
-#: glib/gdatetime.c:546
+#: ../glib/gdatetime.c:528
+#| msgctxt "abbreviated month name"
+#| msgid "Mar"
 msgctxt "abbreviated month name with day"
 msgid "Mar"
 msgstr "marts"
 
-#: glib/gdatetime.c:548
+#: ../glib/gdatetime.c:530
+#| msgctxt "abbreviated month name"
+#| msgid "Apr"
 msgctxt "abbreviated month name with day"
 msgid "Apr"
 msgstr "apr."
 
-#: glib/gdatetime.c:550
+#: ../glib/gdatetime.c:532
+#| msgctxt "full month name"
+#| msgid "May"
 msgctxt "abbreviated month name with day"
 msgid "May"
 msgstr "maijs"
 
-#: glib/gdatetime.c:552
+#: ../glib/gdatetime.c:534
+#| msgctxt "abbreviated month name"
+#| msgid "Jun"
 msgctxt "abbreviated month name with day"
 msgid "Jun"
 msgstr "jūn."
 
-#: glib/gdatetime.c:554
+#: ../glib/gdatetime.c:536
+#| msgctxt "abbreviated month name"
+#| msgid "Jul"
 msgctxt "abbreviated month name with day"
 msgid "Jul"
 msgstr "jūl."
 
-#: glib/gdatetime.c:556
+#: ../glib/gdatetime.c:538
+#| msgctxt "abbreviated month name"
+#| msgid "Aug"
 msgctxt "abbreviated month name with day"
 msgid "Aug"
 msgstr "aug."
 
-#: glib/gdatetime.c:558
+#: ../glib/gdatetime.c:540
+#| msgctxt "abbreviated month name"
+#| msgid "Sep"
 msgctxt "abbreviated month name with day"
 msgid "Sep"
 msgstr "sept."
 
-#: glib/gdatetime.c:560
+#: ../glib/gdatetime.c:542
+#| msgctxt "abbreviated month name"
+#| msgid "Oct"
 msgctxt "abbreviated month name with day"
 msgid "Oct"
 msgstr "okt."
 
-#: glib/gdatetime.c:562
+#: ../glib/gdatetime.c:544
+#| msgctxt "abbreviated month name"
+#| msgid "Nov"
 msgctxt "abbreviated month name with day"
 msgid "Nov"
 msgstr "nov."
 
-#: glib/gdatetime.c:564
+#: ../glib/gdatetime.c:546
+#| msgctxt "abbreviated month name"
+#| msgid "Dec"
 msgctxt "abbreviated month name with day"
 msgid "Dec"
 msgstr "dec."
 
 #. Translators: 'before midday' indicator
-#: glib/gdatetime.c:581
+#: ../glib/gdatetime.c:563
 msgctxt "GDateTime"
 msgid "AM"
 msgstr "AM"
 
 #. Translators: 'after midday' indicator
-#: glib/gdatetime.c:584
+#: ../glib/gdatetime.c:566
 msgctxt "GDateTime"
 msgid "PM"
 msgstr "PM"
 
-#: glib/gdir.c:155
+#: ../glib/gdir.c:155
 #, c-format
 msgid "Error opening directory “%s”: %s"
 msgstr "Kļūda, atverot direktoriju “%s” — %s"
 
-#: glib/gfileutils.c:716 glib/gfileutils.c:808
+#: ../glib/gfileutils.c:716 ../glib/gfileutils.c:808
 #, c-format
 msgid "Could not allocate %lu byte to read file “%s”"
 msgid_plural "Could not allocate %lu bytes to read file “%s”"
@@ -4690,106 +4737,107 @@ 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:733
+#: ../glib/gfileutils.c:733
 #, c-format
 msgid "Error reading file “%s”: %s"
 msgstr "Kļūda, nolasot datni “%s” — %s"
 
-#: glib/gfileutils.c:769
+#: ../glib/gfileutils.c:769
 #, c-format
 msgid "File “%s” is too large"
 msgstr "Datne “%s” ir pārāk liela"
 
-#: glib/gfileutils.c:833
+#: ../glib/gfileutils.c:833
 #, c-format
 msgid "Failed to read from file “%s”: %s"
 msgstr "Neizdevās nolasīt no datnes “%s” — %s"
 
-#: glib/gfileutils.c:881 glib/gfileutils.c:953
+#: ../glib/gfileutils.c:881 ../glib/gfileutils.c:953
 #, c-format
 msgid "Failed to open file “%s”: %s"
 msgstr "Neizdevās atvērt datni “%s” — %s"
 
-#: glib/gfileutils.c:893
+#: ../glib/gfileutils.c:893
 #, 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:923
+#: ../glib/gfileutils.c:923
 #, c-format
 msgid "Failed to open file “%s”: fdopen() failed: %s"
 msgstr "Neizdevās atvērt “%s” — fdopen() neizdevās — %s"
 
-#: glib/gfileutils.c:1022
+#: ../glib/gfileutils.c:1022
 #, 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:1057 glib/gfileutils.c:1575
+#: ../glib/gfileutils.c:1057 ../glib/gfileutils.c:1564
 #, c-format
 msgid "Failed to create file “%s”: %s"
 msgstr "Neizdevās izveidot datni “%s” — %s"
 
-#: glib/gfileutils.c:1084
+#: ../glib/gfileutils.c:1084
 #, 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:1127
+#: ../glib/gfileutils.c:1127
 #, 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:1262
+#: ../glib/gfileutils.c:1251
 #, 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:1541
+#: ../glib/gfileutils.c:1530
 #, 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:1554
+#: ../glib/gfileutils.c:1543
 #, c-format
 msgid "Template “%s” doesn’t contain XXXXXX"
 msgstr "Veidne “%s” nesatur XXXXXX"
 
-#: glib/gfileutils.c:2116
+#: ../glib/gfileutils.c:2105
 #, c-format
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Neizdevās nolasīt simbolisko saiti “%s” — %s"
 
-#: glib/giochannel.c:1389
+#: ../glib/giochannel.c:1389
 #, 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:1734
+#: ../glib/giochannel.c:1734
 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:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
+#: ../glib/giochannel.c:1781 ../glib/giochannel.c:2039
+#: ../glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Pāpalikušie nepārveidotie dati nolasīšanas buferī"
 
-#: glib/giochannel.c:1862 glib/giochannel.c:1939
+#: ../glib/giochannel.c:1862 ../glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Kanāls pārtrūkst daļējā rakstzīmē"
 
-#: glib/giochannel.c:1925
+#: ../glib/giochannel.c:1925
 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:788
+#: ../glib/gkeyfile.c:788
 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:825
+#: ../glib/gkeyfile.c:825
 msgid "Not a regular file"
 msgstr "Nav parasta datne"
 
-#: glib/gkeyfile.c:1270
+#: ../glib/gkeyfile.c:1270
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4797,50 +4845,50 @@ msgstr ""
 "Atslēgu datne satur rindu “%s”, kura nav atslēgas vērtības pāris, grupa vai "
 "komentārs"
 
-#: glib/gkeyfile.c:1327
+#: ../glib/gkeyfile.c:1327
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Nederīgs grupas nosaukums — %s"
 
-#: glib/gkeyfile.c:1349
+#: ../glib/gkeyfile.c:1349
 msgid "Key file does not start with a group"
 msgstr "Atslēgu datne nesākas ar grupu"
 
-#: glib/gkeyfile.c:1375
+#: ../glib/gkeyfile.c:1375
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Nederīgs atslēgas nosaukums — %s"
 
-#: glib/gkeyfile.c:1402
+#: ../glib/gkeyfile.c:1402
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Atslēgu datne satur neatbalstītu kodējumu “%s”"
 
-#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
-#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
-#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
+#: ../glib/gkeyfile.c:1645 ../glib/gkeyfile.c:1818 ../glib/gkeyfile.c:3271
+#: ../glib/gkeyfile.c:3334 ../glib/gkeyfile.c:3464 ../glib/gkeyfile.c:3594
+#: ../glib/gkeyfile.c:3738 ../glib/gkeyfile.c:3967 ../glib/gkeyfile.c:4034
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Atslēgu datnei nav grupa “%s”"
 
-#: glib/gkeyfile.c:1773
+#: ../glib/gkeyfile.c:1773
 #, 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:1935 glib/gkeyfile.c:2051
+#: ../glib/gkeyfile.c:1935 ../glib/gkeyfile.c:2051
 #, 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:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
+#: ../glib/gkeyfile.c:1955 ../glib/gkeyfile.c:2071 ../glib/gkeyfile.c:2513
 #, 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:2731 glib/gkeyfile.c:3100
+#: ../glib/gkeyfile.c:2731 ../glib/gkeyfile.c:3100
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4849,263 +4897,218 @@ msgstr ""
 "Atslēgu datne satur atslēgu “%s” grupā “%s” kurai ir vērtība, ko nevar "
 "interpretēt."
 
-#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
+#: ../glib/gkeyfile.c:2809 ../glib/gkeyfile.c:2886
 #, 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:4274
+#: ../glib/gkeyfile.c:4274
 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:4296
+#: ../glib/gkeyfile.c:4296
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Atslēgu datne satur nederīgu atsoļa sekvenci “%s”"
 
-#: glib/gkeyfile.c:4440
+#: ../glib/gkeyfile.c:4440
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Vērtību “%s” nevar interpretēt kā skaitli."
 
-#: glib/gkeyfile.c:4454
+#: ../glib/gkeyfile.c:4454
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Veselā skaitļa “%s” vērtība ir ārpus apgabala"
 
-#: glib/gkeyfile.c:4487
+#: ../glib/gkeyfile.c:4487
 #, 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:4526
+#: ../glib/gkeyfile.c:4526
 #, 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:129
 #, 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:195
 #, 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:262
 #, c-format
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Neizdevās atvērt datni “%s” — open() neizdevās — %s"
 
-#: glib/gmarkup.c:397 glib/gmarkup.c:439
+#: ../glib/gmarkup.c:397 ../glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Kļūda rindā %d rakstzīme %d: "
 
-#: glib/gmarkup.c:461 glib/gmarkup.c:544
+#: ../glib/gmarkup.c:461 ../glib/gmarkup.c:544
 #, c-format
-#| msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
-msgid "Invalid UTF-8 encoded text in name — not valid “%s”"
+msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
 msgstr "Nepareizi kodēts UTF-8 teksts — nav derīgs “%s”"
 
-#: glib/gmarkup.c:472
+#: ../glib/gmarkup.c:472
 #, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not a valid name"
+msgid "'%s' is not a valid name"
 msgstr "“%s” nav derīgs nosaukums"
 
-#: glib/gmarkup.c:488
+#: ../glib/gmarkup.c:488
 #, c-format
-#| msgid "'%s' is not a valid name: '%c'"
-msgid "“%s” is not a valid name: “%c”"
-msgstr "“%s” nav derīgs nosaukums — “%c”"
+msgid "'%s' is not a valid name: '%c'"
+msgstr "“%s” nav derīgs nosaukums — '%c'"
 
-#: glib/gmarkup.c:610
+#: ../glib/gmarkup.c:598
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Kļūda rindā %d — %s"
 
-#: glib/gmarkup.c:687
+#: ../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"
 msgid ""
-"Failed to parse “%-.*s”, which should have been a digit inside a character "
-"reference (&#234; for example)  perhaps the digit is too large"
+"Failed to parse '%-.*s', which should have been a digit inside a character "
+"reference (&#234; for example) - perhaps the digit is too large"
 msgstr ""
 "Neizdevās apstrādāt “%-.*s”, kur vajadzētu būt ciparam rakstzīmes atsaucē "
 "(piemēram, &#234;) — iespējams, ka cipars ir pārāk liels"
 
-#: glib/gmarkup.c:699
-#| 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;"
+#: ../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 "
+"ampersand character without intending to start an entity - escape ampersand "
 "as &amp;"
 msgstr ""
 "Rakstzīmes atsauce nebeidzās ar semikolu; visdrīzāk jūs lietojāt & zīmi bez "
 "nodoma sākt entītiju — aizvieto “&” zīmes ar &amp;"
 
-#: glib/gmarkup.c:725
+#: ../glib/gmarkup.c:713
 #, c-format
-#| msgid "Character reference '%-.*s' does not encode a permitted character"
-msgid "Character reference “%-.*s” does not encode a permitted character"
+msgid "Character reference '%-.*s' does not encode a permitted character"
 msgstr "Rakstzīmes atsauce “%-.*s” neiekodē atļautu rakstzīmi"
 
-#: glib/gmarkup.c:763
-#| msgid ""
-#| "Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+#: ../glib/gmarkup.c:751
 msgid ""
-"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+"Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
 msgstr ""
 "Pamanīta tukša entītija “&;”; derīgas entītijas ir: &amp; &quot; &lt; &gt; "
 "&apos;"
 
-#: glib/gmarkup.c:771
+#: ../glib/gmarkup.c:759
 #, c-format
-#| msgid "Entity name '%-.*s' is not known"
-msgid "Entity name “%-.*s” is not known"
+msgid "Entity name '%-.*s' is not known"
 msgstr "Entītijas nosaukums “%-.*s” nav zināms"
 
-#: glib/gmarkup.c:776
-#| 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;"
+#: ../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;"
+"character without intending to start an entity - escape ampersand as &amp;"
 msgstr ""
 "Entītija nebeidzās ar semikolu; visdrīzāk jūs lietojāt “&” zīmi bez nodoma "
-"sākt entītiju  aizvieto “&” zīmes ar &amp;"
+"sākt entītiju - aizvieto “&” zīmes ar &amp;"
 
-#: glib/gmarkup.c:1182
+#: ../glib/gmarkup.c:1170
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokumentam jāsākas ar elementu (piemēram, <book>)"
 
-#: glib/gmarkup.c:1222
+#: ../glib/gmarkup.c:1210
 #, 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 "
+"'%s' is not a valid character following a '<' character; it may not begin an "
 "element name"
 msgstr ""
 "“%s” nav atļauta rakstzīme, sekojoša aiz rakstzīmes “<” tā nedrīkst iesākt "
 "elementa vārdu."
 
-#: glib/gmarkup.c:1264
+#: ../glib/gmarkup.c:1252
 #, 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”"
+"Odd character '%s', expected a '>' character to end the empty-element tag "
+"'%s'"
 msgstr ""
 "Savāda rakstzīme “%s”. Tika gaidīta “>” rakstzīme, kas nobeigtu sākuma birku "
 "elementam “%s”"
 
-#: glib/gmarkup.c:1345
+#: ../glib/gmarkup.c:1333
 #, 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”"
+"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
 msgstr ""
 "Savāda rakstzīme “%s”, gaidīju “=” aiz atribūta nosaukuma “%s” elementam “%s”"
 
-#: glib/gmarkup.c:1386
+#: ../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"
 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 "
+"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 ""
 "Savāda rakstzīme “%s”, tika gaidīta “>” vai “/” rakstzīme, kas nobeigtu "
 "sākuma birku elementam “%s” vai fakultatīvi atribūtu; iespējams, jūs "
 "lietojāt nepareizu rakstzīmi atribūta nosaukumā"
 
-#: glib/gmarkup.c:1430
+#: ../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'"
 msgid ""
-"Odd character “%s”, expected an open quote mark after the equals sign when "
-"giving value for attribute “%s” of element “%s”"
+"Odd character '%s', expected an open quote mark after the equals sign when "
+"giving value for attribute '%s' of element '%s'"
 msgstr ""
 "Savāda rakstzīme “%s”, tika gaidītas atvērtās pēdiņas pēc vienādības zīme, "
 "nosakot vērtību atribūtam “%s” no elementa “%s”"
 
-#: glib/gmarkup.c:1563
+#: ../glib/gmarkup.c:1551
 #, 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 "
+"'%s' is not a valid character following the characters '</'; '%s' may not "
 "begin an element name"
 msgstr ""
 "“%s” nav derīga rakstzīme, sekojot rakstzīmēm “</”; “%s” nevar sākt elementa "
 "nosaukumu"
 
-#: glib/gmarkup.c:1599
+#: ../glib/gmarkup.c:1587
 #, 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 “>”"
+"'%s' is not a valid character following the close element name '%s'; the "
+"allowed character is '>'"
 msgstr ""
 "“%s” nav derīga rakstzīme, sekojot aizverošā elementa nosaukumam “%s”; "
 "atļautā rakstzīme ir “>”"
 
-#: glib/gmarkup.c:1610
+#: ../glib/gmarkup.c:1598
 #, c-format
-#| msgid "Element '%s' was closed, no element is currently open"
-msgid "Element “%s” was closed, no element is currently open"
+msgid "Element '%s' was closed, no element is currently open"
 msgstr "Elements “%s” tika aizvērts, neviens elements pašlaik nav atvērts"
 
-#: glib/gmarkup.c:1619
+#: ../glib/gmarkup.c:1607
 #, 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”"
+msgid "Element '%s' was closed, but the currently open element is '%s'"
 msgstr "Elements “%s” tika aizvērts, bet pašlaik atvērtais elements ir “%s”"
 
-#: glib/gmarkup.c:1772
+#: ../glib/gmarkup.c:1760
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokuments bija tukšs vai saturēja tikai tukšu atstarpi"
 
-#: glib/gmarkup.c:1786
-#| msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgid "Document ended unexpectedly just after an open angle bracket “<”"
+#: ../glib/gmarkup.c:1774
+msgid "Document ended unexpectedly just after an open angle bracket '<'"
 msgstr "Dokuments negaidīti izbeidzās tieši pēc atvērtās leņķa iekavas “<”"
 
-#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
+#: ../glib/gmarkup.c:1782 ../glib/gmarkup.c:1827
 #, 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 "
+"Document ended unexpectedly with elements still open - '%s' was the last "
 "element opened"
 msgstr ""
 "Dokuments negaidīti izbeidzās ar joprojām atvērtiem elementiem — “%s” bija "
 "pēdējais atvērtais elements"
 
-#: glib/gmarkup.c:1802
+#: ../glib/gmarkup.c:1790
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5114,19 +5117,19 @@ msgstr ""
 "Dokuments negaidīti izbeidzās, gaidīja ieraudzīt aizverošo leņķa iekavu, "
 "beidzoties ar tagu <%s/>"
 
-#: glib/gmarkup.c:1808
+#: ../glib/gmarkup.c:1796
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokuments negaidīti izbeidzās elementa nosaukumā"
 
-#: glib/gmarkup.c:1814
+#: ../glib/gmarkup.c:1802
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokuments negaidīti izbeidzās atribūta nosaukumā"
 
-#: glib/gmarkup.c:1819
+#: ../glib/gmarkup.c:1807
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr "Dokuments negaidīti izbeidzās elementa atverošajā birkā."
 
-#: glib/gmarkup.c:1825
+#: ../glib/gmarkup.c:1813
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5134,317 +5137,310 @@ msgstr ""
 "Dokuments negaidīti beidzās aiz vienādības zīmes, sekojot atribūta "
 "nosaukumam; nav atribūta vērtības"
 
-#: glib/gmarkup.c:1832
+#: ../glib/gmarkup.c:1820
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokuments negaidīti beidzās kamēr atradās atribūta vērtībā"
 
-#: glib/gmarkup.c:1849
+#: ../glib/gmarkup.c:1836
 #, c-format
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid "Document ended unexpectedly inside the close tag for element “%s”"
+msgid "Document ended unexpectedly inside the close tag for element '%s'"
 msgstr "Dokuments negaidīti beidzās elementa “%s” aizverošajā birkā"
 
-#: glib/gmarkup.c:1853
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid ""
-"Document ended unexpectedly inside the close tag for an unopened element"
-msgstr "Dokuments negaidīti beidzās aizverošajā birkā neatvērtam elementam"
-
-#: glib/gmarkup.c:1859
+#: ../glib/gmarkup.c:1842
 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:861
+#: ../glib/goption.c:861
 msgid "[OPTION…]"
 msgstr "[OPCIJA…]"
 
-#: glib/goption.c:977
+#: ../glib/goption.c:977
 msgid "Help Options:"
 msgstr "Palīdzības opcijas:"
 
-#: glib/goption.c:978
+#: ../glib/goption.c:978
 msgid "Show help options"
 msgstr "Rādīt palīdzības opcijas"
 
-#: glib/goption.c:984
+#: ../glib/goption.c:984
 msgid "Show all help options"
 msgstr "Rādīt visas palīdzības opcijas"
 
-#: glib/goption.c:1047
+#: ../glib/goption.c:1047
 msgid "Application Options:"
 msgstr "Lietotnes opcijas:"
 
-#: glib/goption.c:1049
+#: ../glib/goption.c:1049
 msgid "Options:"
 msgstr "Opcijas:"
 
-#: glib/goption.c:1113 glib/goption.c:1183
+#: ../glib/goption.c:1113 ../glib/goption.c:1183
 #, 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:1123 glib/goption.c:1191
+#: ../glib/goption.c:1123 ../glib/goption.c:1191
 #, 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:1148
+#: ../glib/goption.c:1148
 #, 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:1156
+#: ../glib/goption.c:1156
 #, 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:1448 glib/goption.c:1527
+#: ../glib/goption.c:1448 ../glib/goption.c:1527
 #, c-format
 msgid "Error parsing option %s"
 msgstr "Kļūda, parsējot opciju %s"
 
-#: glib/goption.c:1558 glib/goption.c:1671
+#: ../glib/goption.c:1558 ../glib/goption.c:1671
 #, c-format
 msgid "Missing argument for %s"
 msgstr "Trūkst %s arguments"
 
-#: glib/goption.c:2132
+#: ../glib/goption.c:2132
 #, c-format
 msgid "Unknown option %s"
 msgstr "Nezināma opcija %s"
 
-#: glib/gregex.c:257
+#: ../glib/gregex.c:257
 msgid "corrupted object"
 msgstr "bojāts objekts"
 
-#: glib/gregex.c:259
+#: ../glib/gregex.c:259
 msgid "internal error or corrupted object"
 msgstr "Iekšējā kļūda vai bojāts objekts"
 
-#: glib/gregex.c:261
+#: ../glib/gregex.c:261
 msgid "out of memory"
 msgstr "beigusies atmiņa"
 
-#: glib/gregex.c:266
+#: ../glib/gregex.c:266
 msgid "backtracking limit reached"
 msgstr "atpakaļ izsekošanas limits ir sasniegts"
 
-#: glib/gregex.c:278 glib/gregex.c:286
+#: ../glib/gregex.c:278 ../glib/gregex.c:286
 msgid "the pattern contains items not supported for partial matching"
 msgstr "raksts satur elementus, kurus neatbalsta daļējā atbilstība"
 
-#: glib/gregex.c:280
+#: ../glib/gregex.c:280
 msgid "internal error"
 msgstr "iekšēja kļūda"
 
-#: glib/gregex.c:288
+#: ../glib/gregex.c:288
 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:297
+#: ../glib/gregex.c:297
 msgid "recursion limit reached"
 msgstr "rekursiju limits ir sasniegts"
 
-#: glib/gregex.c:299
+#: ../glib/gregex.c:299
 msgid "invalid combination of newline flags"
 msgstr "nederīga jauno rindu karogu kombinācija"
 
-#: glib/gregex.c:301
+#: ../glib/gregex.c:301
 msgid "bad offset"
 msgstr "slikta nobīde"
 
-#: glib/gregex.c:303
+#: ../glib/gregex.c:303
 msgid "short utf8"
 msgstr "īss utf8"
 
-#: glib/gregex.c:305
+#: ../glib/gregex.c:305
 msgid "recursion loop"
 msgstr "rekursijas cikls"
 
-#: glib/gregex.c:309
+#: ../glib/gregex.c:309
 msgid "unknown error"
 msgstr "nezināma kļūda"
 
-#: glib/gregex.c:329
+#: ../glib/gregex.c:329
 msgid "\\ at end of pattern"
 msgstr "\\ raksta beigās"
 
-#: glib/gregex.c:332
+#: ../glib/gregex.c:332
 msgid "\\c at end of pattern"
 msgstr "\\c raksta beigās"
 
-#: glib/gregex.c:335
+#: ../glib/gregex.c:335
 msgid "unrecognized character following \\"
 msgstr "pēc \\ seko neatpazīta rakstzīme"
 
-#: glib/gregex.c:338
+#: ../glib/gregex.c:338
 msgid "numbers out of order in {} quantifier"
 msgstr "skaitļi nav pareizā secībā {} kvantorā"
 
-#: glib/gregex.c:341
+#: ../glib/gregex.c:341
 msgid "number too big in {} quantifier"
 msgstr "skaitlis pārāk liels {} kvantorā"
 
-#: glib/gregex.c:344
+#: ../glib/gregex.c:344
 msgid "missing terminating ] for character class"
 msgstr "trūkst beigu “]” rakstzīmju klasei"
 
-#: glib/gregex.c:347
+#: ../glib/gregex.c:347
 msgid "invalid escape sequence in character class"
 msgstr "nederīga atsoļu sekvence rakstzīmju klasē"
 
-#: glib/gregex.c:350
+#: ../glib/gregex.c:350
 msgid "range out of order in character class"
 msgstr "rakstzīmju klasē apgabals ir ārpus secības"
 
-#: glib/gregex.c:353
+#: ../glib/gregex.c:353
 msgid "nothing to repeat"
 msgstr "nav ko atkārtot"
 
-#: glib/gregex.c:357
+#: ../glib/gregex.c:357
 msgid "unexpected repeat"
 msgstr "negaidīta atkārtošanās"
 
-#: glib/gregex.c:360
+#: ../glib/gregex.c:360
 msgid "unrecognized character after (? or (?-"
 msgstr "neatpazīta rakstzīme pēc (? vai (?-"
 
-#: glib/gregex.c:363
+#: ../glib/gregex.c:363
 msgid "POSIX named classes are supported only within a class"
 msgstr "POSIX nosauktās klases ir atbalstītas tikai klasēs"
 
-#: glib/gregex.c:366
+#: ../glib/gregex.c:366
 msgid "missing terminating )"
 msgstr "trūkst beigu )"
 
-#: glib/gregex.c:369
+#: ../glib/gregex.c:369
 msgid "reference to non-existent subpattern"
 msgstr "atsauce uz neesošu apakšrakstu"
 
-#: glib/gregex.c:372
+#: ../glib/gregex.c:372
 msgid "missing ) after comment"
 msgstr "trūkst ) pēc komentāra"
 
-#: glib/gregex.c:375
+#: ../glib/gregex.c:375
 msgid "regular expression is too large"
 msgstr "regulārā izteiksme ir pārāk gara"
 
-#: glib/gregex.c:378
+#: ../glib/gregex.c:378
 msgid "failed to get memory"
 msgstr "neizdevās iegūt atmiņu"
 
-#: glib/gregex.c:382
+#: ../glib/gregex.c:382
 msgid ") without opening ("
 msgstr ") bez atverošās ("
 
-#: glib/gregex.c:386
+#: ../glib/gregex.c:386
 msgid "code overflow"
 msgstr "koda pārpilde"
 
-#: glib/gregex.c:390
+#: ../glib/gregex.c:390
 msgid "unrecognized character after (?<"
 msgstr "neatpazīta rakstzīme pēc (?<"
 
-#: glib/gregex.c:393
+#: ../glib/gregex.c:393
 msgid "lookbehind assertion is not fixed length"
 msgstr "lookbehind pieņēmums nav fiksēta garuma"
 
-#: glib/gregex.c:396
+#: ../glib/gregex.c:396
 msgid "malformed number or name after (?("
 msgstr "slikti formatēts skaitlis vai nosaukums pēc (?("
 
-#: glib/gregex.c:399
+#: ../glib/gregex.c:399
 msgid "conditional group contains more than two branches"
 msgstr "nosacījuma grupa satur vairāk kā divus zarus"
 
-#: glib/gregex.c:402
+#: ../glib/gregex.c:402
 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:409
+#: ../glib/gregex.c:409
 msgid "(?R or (?[+-]digits must be followed by )"
 msgstr "pēc (?R vai (?[+-]digits ir jāseko )"
 
-#: glib/gregex.c:412
+#: ../glib/gregex.c:412
 msgid "unknown POSIX class name"
 msgstr "nezināms POSIX klases nosaukums"
 
-#: glib/gregex.c:415
+#: ../glib/gregex.c:415
 msgid "POSIX collating elements are not supported"
 msgstr "POSIX savāktie elementi nav atbalstīti"
 
-#: glib/gregex.c:418
+#: ../glib/gregex.c:418
 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:421
+#: ../glib/gregex.c:421
 msgid "invalid condition (?(0)"
 msgstr "nederīgs nosacījums (?(0)"
 
-#: glib/gregex.c:424
+#: ../glib/gregex.c:424
 msgid "\\C not allowed in lookbehind assertion"
 msgstr "\\C nav atļauts lookbehind pieņēmumā"
 
-#: glib/gregex.c:431
+#: ../glib/gregex.c:431
 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:434
+#: ../glib/gregex.c:434
 msgid "recursive call could loop indefinitely"
 msgstr "rekursīvais izsaukums varētu cikloties bezgalīgi"
 
-#: glib/gregex.c:438
+#: ../glib/gregex.c:438
 msgid "unrecognized character after (?P"
 msgstr "neatpazīta rakstzīme pēc (?P"
 
-#: glib/gregex.c:441
+#: ../glib/gregex.c:441
 msgid "missing terminator in subpattern name"
 msgstr "trūkst nobeiguma apakšraksta nosaukumā"
 
-#: glib/gregex.c:444
+#: ../glib/gregex.c:444
 msgid "two named subpatterns have the same name"
 msgstr "divi nosaukti apakšraksti ir ar vienādiem nosaukumiem"
 
-#: glib/gregex.c:447
+#: ../glib/gregex.c:447
 msgid "malformed \\P or \\p sequence"
 msgstr "slikti formatēta \\P vai \\p sekvence"
 
-#: glib/gregex.c:450
+#: ../glib/gregex.c:450
 msgid "unknown property name after \\P or \\p"
 msgstr "nezināms īpašības nosaukums pēc \\P vai \\p"
 
-#: glib/gregex.c:453
+#: ../glib/gregex.c:453
 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:456
+#: ../glib/gregex.c:456
 msgid "too many named subpatterns (maximum 10,000)"
 msgstr "pārāk daudz nosauktu apakšrakstu (maksimums ir 10 000)"
 
-#: glib/gregex.c:459
+#: ../glib/gregex.c:459
 msgid "octal value is greater than \\377"
 msgstr "astotnieku vērtība ir lielāka nekā \\377"
 
-#: glib/gregex.c:463
+#: ../glib/gregex.c:463
 msgid "overran compiling workspace"
 msgstr "pārtērēta kompilēšanas darba telpa"
 
-#: glib/gregex.c:467
+#: ../glib/gregex.c:467
 msgid "previously-checked referenced subpattern not found"
 msgstr "iepriekš pārbaudīts norādītais apakšraksts nav atrasts"
 
-#: glib/gregex.c:470
+#: ../glib/gregex.c:470
 msgid "DEFINE group contains more than one branch"
 msgstr "DEFINE grupa satur vairāk kā vienu zaru"
 
-#: glib/gregex.c:473
+#: ../glib/gregex.c:473
 msgid "inconsistent NEWLINE options"
 msgstr "nekonsekventas NEWLINE opcijas"
 
-#: glib/gregex.c:476
+#: ../glib/gregex.c:476
 msgid ""
 "\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
 "or by a plain number"
@@ -5452,443 +5448,449 @@ msgstr ""
 "pēc \\g neseko nosaukums iekavās, leņķa iekavās vai pēdiņās vai vienkāršs "
 "skaitlis"
 
-#: glib/gregex.c:480
+#: ../glib/gregex.c:480
 msgid "a numbered reference must not be zero"
 msgstr "skaitliska atsauce nevar būt nulle"
 
-#: glib/gregex.c:483
+#: ../glib/gregex.c:483
 msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
 msgstr "arguments nav atļauts priekš (*ACCEPT), (*FAIL) vai (*COMMIT)"
 
-#: glib/gregex.c:486
+#: ../glib/gregex.c:486
 msgid "(*VERB) not recognized"
 msgstr "(*VERB) nav atpazīts"
 
-#: glib/gregex.c:489
+#: ../glib/gregex.c:489
 msgid "number is too big"
 msgstr "skaitlis ir pārāk liels"
 
-#: glib/gregex.c:492
+#: ../glib/gregex.c:492
 msgid "missing subpattern name after (?&"
 msgstr "trūkst apakšraksta nosaukums pēc (?&"
 
-#: glib/gregex.c:495
+#: ../glib/gregex.c:495
 msgid "digit expected after (?+"
 msgstr "tika gaidīts cipars pēc (?+"
 
-#: glib/gregex.c:498
+#: ../glib/gregex.c:498
 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:501
+#: ../glib/gregex.c:501
 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:504
+#: ../glib/gregex.c:504
 msgid "(*MARK) must have an argument"
 msgstr "(*MARK) jābūt ar argumentu"
 
-#: glib/gregex.c:507
+#: ../glib/gregex.c:507
 msgid "\\c must be followed by an ASCII character"
 msgstr "\\c jāseko ASCII rakstzīmei"
 
-#: glib/gregex.c:510
+#: ../glib/gregex.c:510
 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:513
+#: ../glib/gregex.c:513
 msgid "\\N is not supported in a class"
 msgstr "\\N nav atbalstīts klasē"
 
-#: glib/gregex.c:516
+#: ../glib/gregex.c:516
 msgid "too many forward references"
 msgstr "pārāk daudz atsauču uz priekšu"
 
-#: glib/gregex.c:519
+#: ../glib/gregex.c:519
 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:522
+#: ../glib/gregex.c:522
 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:745 glib/gregex.c:1983
+#: ../glib/gregex.c:745 ../glib/gregex.c:1977
 #, 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:1316
+#: ../glib/gregex.c:1316
 msgid "PCRE library is compiled without UTF8 support"
 msgstr "PCRE bibliotēka ir kompilēta bez UTF8 atbalsta"
 
-#: glib/gregex.c:1320
+#: ../glib/gregex.c:1320
 msgid "PCRE library is compiled without UTF8 properties support"
 msgstr "PCRE bibliotēka ir kompilēta bez UTF8 īpašību atbalsta"
 
-#: glib/gregex.c:1328
+#: ../glib/gregex.c:1328
 msgid "PCRE library is compiled with incompatible options"
 msgstr "PCRE bibliotēka ir kompilēta ar UTF8 īpašību atbalstu"
 
-#: glib/gregex.c:1357
+#: ../glib/gregex.c:1357
 #, c-format
 msgid "Error while optimizing regular expression %s: %s"
 msgstr "Kļūda, optimizējot regulāro izteiksmi %s — %s"
 
-#: glib/gregex.c:1437
+#: ../glib/gregex.c:1437
 #, 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"
 
-#: glib/gregex.c:2419
+#: ../glib/gregex.c:2413
 msgid "hexadecimal digit or “}” expected"
 msgstr "tika gaidīts heksadecimālais cipars vai “}”"
 
-#: glib/gregex.c:2435
+#: ../glib/gregex.c:2429
 msgid "hexadecimal digit expected"
 msgstr "tika gaidīts heksadecimālais cipars"
 
-#: glib/gregex.c:2475
+#: ../glib/gregex.c:2469
 msgid "missing “<” in symbolic reference"
 msgstr "simboliskajā norādē trūkst “<”"
 
-#: glib/gregex.c:2484
+#: ../glib/gregex.c:2478
 msgid "unfinished symbolic reference"
 msgstr "nepabeigta simboliskā norāde"
 
-#: glib/gregex.c:2491
+#: ../glib/gregex.c:2485
 msgid "zero-length symbolic reference"
 msgstr "simboliskās norādes garums ir nulle"
 
-#: glib/gregex.c:2502
+#: ../glib/gregex.c:2496
 msgid "digit expected"
 msgstr "tika gaidīts cipars"
 
-#: glib/gregex.c:2520
+#: ../glib/gregex.c:2514
 msgid "illegal symbolic reference"
 msgstr "neatļauta simboliskā norāde"
 
-#: glib/gregex.c:2582
+#: ../glib/gregex.c:2576
 msgid "stray final “\\”"
 msgstr "noklīdis beigu “\\”"
 
-#: glib/gregex.c:2586
+#: ../glib/gregex.c:2580
 msgid "unknown escape sequence"
 msgstr "nezināma atsoļa sekvence"
 
-#: glib/gregex.c:2596
+#: ../glib/gregex.c:2590
 #, 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:94
 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:184
 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:580
 #, 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:587
 #, 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:599
 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:253
 #, c-format
 msgid "Failed to read data from child process (%s)"
 msgstr "Nevarēja nolasīt datus no bērnprocesa (%s)"
 
-#: glib/gspawn.c:456
+#: ../glib/gspawn.c:401
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr "Negaidīta kļūda iekš select(), lasot datus no bērnprocesa (%s)"
 
-#: glib/gspawn.c:541
+#: ../glib/gspawn.c:486
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Negaidīta kļūda waitpid() (%s)"
 
-#: glib/gspawn.c:1049 glib/gspawn-win32.c:1318
+#: ../glib/gspawn.c:897 ../glib/gspawn-win32.c:1231
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Bērna process beidza darbu ar kodu %ld"
 
-#: glib/gspawn.c:1057
+#: ../glib/gspawn.c:905
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Bērna process tika pārtraukts ar signālu %ld"
 
-#: glib/gspawn.c:1064
+#: ../glib/gspawn.c:912
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Bērna process tika apturēts ar signālu %ld"
 
-#: glib/gspawn.c:1071
+#: ../glib/gspawn.c:919
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "Bērna process beidza darbu nenormāli"
 
-#: glib/gspawn.c:1366 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: ../glib/gspawn.c:1324 ../glib/gspawn-win32.c:337 ../glib/gspawn-win32.c:345
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Nevarēja nolasīt no bērna programkanāla (%s)"
 
-#: glib/gspawn.c:1614
-#, c-format
-#| msgid "Failed to execute child process “%s” (%s)"
-msgid "Failed to spawn child process “%s” (%s)"
-msgstr "Nevarēja radīt bērnprocesu “%s” (%s)"
-
-#: glib/gspawn.c:1653
+#: ../glib/gspawn.c:1394
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Neizdevās sadalīt (%s)"
 
-#: glib/gspawn.c:1802 glib/gspawn-win32.c:370
+#: ../glib/gspawn.c:1543 ../glib/gspawn-win32.c:368
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Nevarēja pāriet uz direktoriju “%s” (%s)"
 
-#: glib/gspawn.c:1812
+#: ../glib/gspawn.c:1553
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Nevarēja izpildīt bērnprocesu “%s” (%s)"
 
-#: glib/gspawn.c:1822
+#: ../glib/gspawn.c:1563
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Nevarēja novadīt bērnprocesa (%s) izvadi vai ievadi"
 
-#: glib/gspawn.c:1831
+#: ../glib/gspawn.c:1572
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Nevarēja sazarot bērnprocesu (%s)"
 
-#: glib/gspawn.c:1839
+#: ../glib/gspawn.c:1580
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Nezināma kļūda, izpildot bērnprocesu “%s”"
 
-#: glib/gspawn.c:1863
+#: ../glib/gspawn.c:1604
 #, 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)"
 
-#: glib/gspawn-win32.c:283
+#: ../glib/gspawn-win32.c:281
 msgid "Failed to read data from child process"
 msgstr "Nevarēja nolasīt datus no bērnprocesa"
 
-#: glib/gspawn-win32.c:300
+#: ../glib/gspawn-win32.c:298
 #, 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)"
 
-#: glib/gspawn-win32.c:376 glib/gspawn-win32.c:381 glib/gspawn-win32.c:500
+#: ../glib/gspawn-win32.c:374 ../glib/gspawn-win32.c:493
 #, c-format
 msgid "Failed to execute child process (%s)"
 msgstr "Nevarēja izpildīt bērnprocesu (%s)"
 
-#: glib/gspawn-win32.c:450
+#: ../glib/gspawn-win32.c:443
 #, c-format
 msgid "Invalid program name: %s"
 msgstr "Nederīgs programmas nosaukums — %s"
 
-#: glib/gspawn-win32.c:460 glib/gspawn-win32.c:714
+#: ../glib/gspawn-win32.c:453 ../glib/gspawn-win32.c:720
 #, c-format
 msgid "Invalid string in argument vector at %d: %s"
 msgstr "Nederīga virkne argumenta vektorā pie %d — %s"
 
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:729
+#: ../glib/gspawn-win32.c:464 ../glib/gspawn-win32.c:735
 #, c-format
 msgid "Invalid string in environment: %s"
 msgstr "Nederīga virkne vidē — %s"
 
-#: glib/gspawn-win32.c:710
+#: ../glib/gspawn-win32.c:716
 #, c-format
 msgid "Invalid working directory: %s"
 msgstr "Nederīga darba mape — %s"
 
-#: glib/gspawn-win32.c:772
+#: ../glib/gspawn-win32.c:781
 #, c-format
 msgid "Failed to execute helper program (%s)"
 msgstr "Neizdevās izpildīt palīga programmu (%s)"
 
-#: glib/gspawn-win32.c:1045
+#: ../glib/gspawn-win32.c:995
 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:3247 glib/gstrfuncs.c:3348
+#: ../glib/gstrfuncs.c:3247 ../glib/gstrfuncs.c:3348
 msgid "Empty string is not a number"
 msgstr "Tukša virkne nav skaitlis"
 
-#: glib/gstrfuncs.c:3271
+#: ../glib/gstrfuncs.c:3271
 #, c-format
 msgid "“%s” is not a signed number"
 msgstr "“%s” nav skaitlis ar zīmi"
 
-#: glib/gstrfuncs.c:3281 glib/gstrfuncs.c:3384
+#: ../glib/gstrfuncs.c:3281 ../glib/gstrfuncs.c:3384
 #, c-format
 msgid "Number “%s” is out of bounds [%s, %s]"
 msgstr "Skaitlis “%s” ir ārpus robežām [%s, %s]"
 
-#: glib/gstrfuncs.c:3374
+#: ../glib/gstrfuncs.c:3374
 #, c-format
 msgid "“%s” is not an unsigned number"
 msgstr "“%s” nav skaitlis bez zīmes"
 
-#: glib/gutf8.c:811
+#: ../glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Neizdevās piešķirt atmiņu"
 
-#: glib/gutf8.c:944
+#: ../glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Rakstzīme nav UTF-8 apgabalā"
 
-#: 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:1045 ../glib/gutf8.c:1054 ../glib/gutf8.c:1184
+#: ../glib/gutf8.c:1193 ../glib/gutf8.c:1332 ../glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Nepareiza secība konversijas ievadē"
 
-#: glib/gutf8.c:1343 glib/gutf8.c:1440
+#: ../glib/gutf8.c:1343 ../glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Rakstzīme nav UTF-16 apgabalā"
 
-#: glib/gutils.c:2244
+#: ../glib/gutils.c:2229
 #, c-format
 msgid "%.1f kB"
 msgstr "%.1f kB"
 
-#: glib/gutils.c:2245 glib/gutils.c:2451
+#: ../glib/gutils.c:2230 ../glib/gutils.c:2436
 #, c-format
 msgid "%.1f MB"
 msgstr "%.1f MB"
 
-#: glib/gutils.c:2246 glib/gutils.c:2456
+#: ../glib/gutils.c:2231 ../glib/gutils.c:2441
 #, c-format
 msgid "%.1f GB"
 msgstr "%.1f GB"
 
-#: glib/gutils.c:2247 glib/gutils.c:2461
+#: ../glib/gutils.c:2232 ../glib/gutils.c:2446
 #, c-format
 msgid "%.1f TB"
 msgstr "%.1f TB"
 
-#: glib/gutils.c:2248 glib/gutils.c:2466
+#: ../glib/gutils.c:2233 ../glib/gutils.c:2451
 #, c-format
 msgid "%.1f PB"
 msgstr "%.1f PB"
 
-#: glib/gutils.c:2249 glib/gutils.c:2471
+#: ../glib/gutils.c:2234 ../glib/gutils.c:2456
 #, c-format
 msgid "%.1f EB"
 msgstr "%.1f EB"
 
-#: glib/gutils.c:2252
+#: ../glib/gutils.c:2237
 #, c-format
 msgid "%.1f KiB"
 msgstr "%.1f KiB"
 
-#: glib/gutils.c:2253
+#: ../glib/gutils.c:2238
 #, c-format
 msgid "%.1f MiB"
 msgstr "%.1f MiB"
 
-#: glib/gutils.c:2254
+#: ../glib/gutils.c:2239
 #, c-format
 msgid "%.1f GiB"
 msgstr "%.1f GiB"
 
-#: glib/gutils.c:2255
+#: ../glib/gutils.c:2240
 #, c-format
 msgid "%.1f TiB"
 msgstr "%.1f TiB"
 
-#: glib/gutils.c:2256
+#: ../glib/gutils.c:2241
 #, c-format
 msgid "%.1f PiB"
 msgstr "%.1f PiB"
 
-#: glib/gutils.c:2257
+#: ../glib/gutils.c:2242
 #, c-format
 msgid "%.1f EiB"
 msgstr "%.1f EiB"
 
-#: glib/gutils.c:2260
+#: ../glib/gutils.c:2245
 #, c-format
+#| msgid "%.1f kB"
 msgid "%.1f kb"
 msgstr "%.1f kb"
 
-#: glib/gutils.c:2261
+#: ../glib/gutils.c:2246
 #, c-format
+#| msgid "%.1f MB"
 msgid "%.1f Mb"
 msgstr "%.1f Mb"
 
-#: glib/gutils.c:2262
+#: ../glib/gutils.c:2247
 #, c-format
+#| msgid "%.1f GB"
 msgid "%.1f Gb"
 msgstr "%.1f Gb"
 
-#: glib/gutils.c:2263
+#: ../glib/gutils.c:2248
 #, c-format
+#| msgid "%.1f TB"
 msgid "%.1f Tb"
 msgstr "%.1f Tb"
 
-#: glib/gutils.c:2264
+#: ../glib/gutils.c:2249
 #, c-format
+#| msgid "%.1f PB"
 msgid "%.1f Pb"
 msgstr "%.1f Pb"
 
-#: glib/gutils.c:2265
+#: ../glib/gutils.c:2250
 #, c-format
+#| msgid "%.1f EB"
 msgid "%.1f Eb"
 msgstr "%.1f Eb"
 
-#: glib/gutils.c:2268
+#: ../glib/gutils.c:2253
 #, c-format
+#| msgid "%.1f KiB"
 msgid "%.1f Kib"
 msgstr "%.1f Kib"
 
-#: glib/gutils.c:2269
+#: ../glib/gutils.c:2254
 #, c-format
+#| msgid "%.1f MiB"
 msgid "%.1f Mib"
 msgstr "%.1f Mib"
 
-#: glib/gutils.c:2270
+#: ../glib/gutils.c:2255
 #, c-format
+#| msgid "%.1f GiB"
 msgid "%.1f Gib"
 msgstr "%.1f Gib"
 
-#: glib/gutils.c:2271
+#: ../glib/gutils.c:2256
 #, c-format
+#| msgid "%.1f TiB"
 msgid "%.1f Tib"
 msgstr "%.1f Tib"
 
-#: glib/gutils.c:2272
+#: ../glib/gutils.c:2257
 #, c-format
+#| msgid "%.1f PiB"
 msgid "%.1f Pib"
 msgstr "%.1f Pib"
 
-#: glib/gutils.c:2273
+#: ../glib/gutils.c:2258
 #, c-format
+#| msgid "%.1f EiB"
 msgid "%.1f Eib"
 msgstr "%.1f Eib"
 
-#: glib/gutils.c:2307 glib/gutils.c:2433
+#: ../glib/gutils.c:2292 ../glib/gutils.c:2418
 #, c-format
 msgid "%u byte"
 msgid_plural "%u bytes"
@@ -5896,8 +5898,10 @@ msgstr[0] "%u baits"
 msgstr[1] "%u baiti"
 msgstr[2] "%u baitu"
 
-#: glib/gutils.c:2311
+#: ../glib/gutils.c:2296
 #, c-format
+#| msgid "%u byte"
+#| msgid_plural "%u bytes"
 msgid "%u bit"
 msgid_plural "%u bits"
 msgstr[0] "%u bits"
@@ -5905,7 +5909,7 @@ msgstr[1] "%u biti"
 msgstr[2] "%u bitu"
 
 #. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2378
+#: ../glib/gutils.c:2363
 #, c-format
 msgid "%s byte"
 msgid_plural "%s bytes"
@@ -5914,8 +5918,10 @@ msgstr[1] "%s baiti"
 msgstr[2] "%s baitu"
 
 #. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2383
+#: ../glib/gutils.c:2368
 #, c-format
+#| msgid "%s byte"
+#| msgid_plural "%s bytes"
 msgid "%s bit"
 msgid_plural "%s bits"
 msgstr[0] "%s bits"
@@ -5927,23 +5933,7 @@ msgstr[2] "%s bitu"
 #. * compatibility.  Users will not see this string unless a program is using this deprecated function.
 #. * Please translate as literally as possible.
 #.
-#: glib/gutils.c:2446
+#: ../glib/gutils.c:2431
 #, c-format
 msgid "%.1f KB"
 msgstr "%.1f KB"
-
-#~ msgid "No such method '%s'"
-#~ msgstr "Nav tādas metodes “%s”"
-
-#~ msgid ""
-#~ "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment "
-#~ "variable - unknown value '%s'"
-#~ msgstr ""
-#~ "Nevar noteikt kopnes adresi no DBUS_STARTER_BUS_TYPE vides mainīgā — "
-#~ "nezināma vērtība “%s”"
-
-#~ msgid "[ARGS...]"
-#~ msgstr "[PARAM...]"
-
-#~ msgid "Failed to create temp file: %s"
-#~ msgstr "Neizdevās izveidot pagaidu datni — %s"
index f587e85..ed6c855 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,16 +1,15 @@
 # Norwegian bokmål translation of glib.
 # Copyright (C) 2001-2003, 2005 Free Software Foundation, Inc.
-# Kjartan Maraas <kmaraas@gnome.org>, 2001-2017.
+# Kjartan Maraas <kmaraas@gnome.org>, 2001-2018.
 # Terance Edward Sola <terance@lyse.net>, 2005.
 # Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: glib 2.54.x\n"
-"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?"
-"product=glib&keywords=I18N+L10N&component=general\n"
+"Project-Id-Version: glib 2.59.x\n"
+"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=glib&keywords=I18N+L10N&component=general\n"
 "POT-Creation-Date: 2017-11-06 12:56+0000\n"
-"PO-Revision-Date: 2017-11-11 17:09+0100\n"
+"PO-Revision-Date: 2018-10-07 11:10+0200\n"
 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
 "Language: nb\n"
@@ -480,7 +479,7 @@ msgstr "Kan ikke starte en meldingsbuss uten en machine-id: "
 #: ../gio/gdbusaddress.c:1086
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
-msgstr ""
+msgstr "Kan ikke starte D-Bus automatisk uten X11 $DISPLAY"
 
 #: ../gio/gdbusaddress.c:1128
 #, c-format
@@ -1674,7 +1673,7 @@ msgstr "LOKASJON"
 
 #: ../gio/gio-tool-cat.c:138
 msgid "Concatenate files and print to standard output."
-msgstr ""
+msgstr "Slå sammen filer og skriv til standard utdata."
 
 #: ../gio/gio-tool-cat.c:140
 msgid ""
@@ -1842,7 +1841,7 @@ msgstr "Vis skjulte filer"
 
 #: ../gio/gio-tool-list.c:37
 msgid "Use a long listing format"
-msgstr ""
+msgstr "Bruk langt listeformat"
 
 #: ../gio/gio-tool-list.c:39
 msgid "Print full URIs"
@@ -1871,7 +1870,7 @@ msgstr "HÅNDTERER"
 
 #: ../gio/gio-tool-mime.c:76
 msgid "Get or set the handler for a mimetype."
-msgstr ""
+msgstr "Hent eller sett håndterer for en MIME-type."
 
 #: ../gio/gio-tool-mime.c:78
 msgid ""
@@ -1882,7 +1881,7 @@ msgstr ""
 
 #: ../gio/gio-tool-mime.c:100
 msgid "Must specify a single mimetype, and maybe a handler"
-msgstr ""
+msgstr "Må oppgi en enkelt MIME-type og kanskje en håndterer"
 
 #: ../gio/gio-tool-mime.c:116
 #, c-format
@@ -1941,15 +1940,15 @@ msgstr ""
 
 #: ../gio/gio-tool-monitor.c:37
 msgid "Monitor a directory (default: depends on type)"
-msgstr ""
+msgstr "Overvåk en katalog (forvalg: avhenger av type)"
 
 #: ../gio/gio-tool-monitor.c:39
 msgid "Monitor a file (default: depends on type)"
-msgstr ""
+msgstr "Overvåk en fil (forvalg: avhenger av type)"
 
 #: ../gio/gio-tool-monitor.c:41
 msgid "Monitor a file directly (notices changes made via hardlinks)"
-msgstr ""
+msgstr "Overvåk en fil direkte (merker endringer gjort via harde lenker)"
 
 #: ../gio/gio-tool-monitor.c:43
 msgid "Monitors a file directly, but doesn’t report changes"
@@ -1957,15 +1956,15 @@ msgstr "Overvåker en fil direkte, men rapporterer ikke endringer"
 
 #: ../gio/gio-tool-monitor.c:45
 msgid "Report moves and renames as simple deleted/created events"
-msgstr ""
+msgstr "Rapporter flytting og endring av navn som enkle slette- og opprettelseshendelser"
 
 #: ../gio/gio-tool-monitor.c:47
 msgid "Watch for mount events"
-msgstr ""
+msgstr "Se etter monteringshendelser"
 
 #: ../gio/gio-tool-monitor.c:208
 msgid "Monitor files or directories for changes."
-msgstr ""
+msgstr "Overvåk filer eller kataloger for endringer."
 
 #: ../gio/gio-tool-mount.c:58
 msgid "Mount as mountable"
@@ -1973,7 +1972,7 @@ msgstr "Monter som monterbar"
 
 #: ../gio/gio-tool-mount.c:59
 msgid "Mount volume with device file"
-msgstr ""
+msgstr "Monter volum med en enhetsfil"
 
 #: ../gio/gio-tool-mount.c:59
 msgid "DEVICE"
@@ -1997,11 +1996,11 @@ msgstr "SCHEMA"
 
 #: ../gio/gio-tool-mount.c:63
 msgid "Ignore outstanding file operations when unmounting or ejecting"
-msgstr ""
+msgstr "Overse utestående filoperasjoner ved avmontering eller utløsing"
 
 #: ../gio/gio-tool-mount.c:64
 msgid "Use an anonymous user when authenticating"
-msgstr ""
+msgstr "Bruk en anonym bruker ved autentisering"
 
 #. Translator: List here is a verb as in 'List all mounts'
 #: ../gio/gio-tool-mount.c:66
@@ -2087,7 +2086,7 @@ msgstr "For mange argumenter"
 #: ../gio/gio-tool-rename.c:95
 #, c-format
 msgid "Rename successful. New uri: %s\n"
-msgstr ""
+msgstr "Endring av navn fullført. Ny URI: %s\n"
 
 #: ../gio/gio-tool-save.c:50
 msgid "Only create if not existing"
@@ -2095,7 +2094,7 @@ msgstr ""
 
 #: ../gio/gio-tool-save.c:51
 msgid "Append to end of file"
-msgstr ""
+msgstr "Legg til ved slutten av filen"
 
 #: ../gio/gio-tool-save.c:52
 msgid "When creating, restrict access to the current user"
@@ -2131,7 +2130,7 @@ msgstr "Etag er ikke tilgjengelig\n"
 
 #: ../gio/gio-tool-save.c:163
 msgid "Read from standard input and save to DEST."
-msgstr ""
+msgstr "Les fra standard inndata og lagre til DEST."
 
 #: ../gio/gio-tool-save.c:183
 msgid "No destination given"
@@ -2278,7 +2277,7 @@ msgstr "Lag listet med avhengigheter"
 
 #: ../gio/glib-compile-resources.c:671
 msgid "name of the dependency file to generate"
-msgstr ""
+msgstr "navn på avhengighetsfil som skal lages"
 
 #: ../gio/glib-compile-resources.c:672
 msgid "Include phony targets in the generated dependency file"
@@ -2314,7 +2313,7 @@ msgstr "Du må kun oppgi ett filnavn\n"
 #: ../gio/glib-compile-schemas.c:95
 #, c-format
 msgid "nick must be a minimum of 2 characters"
-msgstr ""
+msgstr "kallenavn må være minst 2 tegn"
 
 #: ../gio/glib-compile-schemas.c:106
 #, c-format
@@ -2399,15 +2398,13 @@ msgid ""
 msgstr ""
 
 #: ../gio/glib-compile-schemas.c:501
-#, fuzzy
-#| msgid "<child name='%s'> already specified"
 msgid "<choices> already specified for this key"
-msgstr "<child name='%s'> allerede oppgitt"
+msgstr "<choices> allerede oppgitt for denne nøkkelen"
 
 #: ../gio/glib-compile-schemas.c:513
 #, c-format
 msgid "<choices> not allowed for keys of type “%s”"
-msgstr ""
+msgstr "<choices> ikke tillatt for nøkler av type «%s»"
 
 #: ../gio/glib-compile-schemas.c:529
 #, c-format
@@ -3652,14 +3649,12 @@ msgid "No support for source-specific multicast"
 msgstr "Ingen støtte for kildespesifikk multicast"
 
 #: ../gio/gsocket.c:2363
-#, fuzzy
-#| msgid "Unsupported socket address"
 msgid "Unsupported socket family"
-msgstr "Adresse for plugg er ikke støttet"
+msgstr "Familie for plugg er ikke støttet"
 
 #: ../gio/gsocket.c:2381
 msgid "source-specific not an IPv4 address"
-msgstr ""
+msgstr "kildespesifikk er ikke en IPv4 adresse"
 
 #: ../gio/gsocket.c:2399 ../gio/gsocket.c:2428 ../gio/gsocket.c:2475
 #, c-format
@@ -3672,16 +3667,12 @@ msgid "Interface name too long"
 msgstr "Navnet på grensesnittet er for langt"
 
 #: ../gio/gsocket.c:2451
-#, fuzzy
-#| msgid "No support for source-specific multicast"
 msgid "No support for IPv4 source-specific multicast"
-msgstr "Ingen støtte for kildespesifikk multicast"
+msgstr "Ingen støtte for IPv4 kildespesifikk multicast"
 
 #: ../gio/gsocket.c:2509
-#, fuzzy
-#| msgid "No support for source-specific multicast"
 msgid "No support for IPv6 source-specific multicast"
-msgstr "Ingen støtte for kildespesifikk multicast"
+msgstr "Ingen støtte for IPv6 kildespesifikk multicast"
 
 #: ../gio/gsocket.c:2718
 #, c-format
@@ -5422,9 +5413,9 @@ msgid "Empty string is not a number"
 msgstr "Tom streng er ikke et tall"
 
 #: ../glib/gstrfuncs.c:3271
-#, c-format, fuzzy
+#, c-format
 msgid "“%s” is not a signed number"
-msgstr "«%s» er ikke et "
+msgstr "«%s» er ikke et tall med fortegn"
 
 #: ../glib/gstrfuncs.c:3281 ../glib/gstrfuncs.c:3384
 #, c-format
@@ -5432,9 +5423,9 @@ msgid "Number “%s” is out of bounds [%s, %s]"
 msgstr "Tallet «%s» er utenfor grensene [%s, %s]"
 
 #: ../glib/gstrfuncs.c:3374
-#, c-format, fuzzy
+#, c-format
 msgid "“%s” is not an unsigned number"
-msgstr "«%s» er ikke et gyldig navn"
+msgstr "«%s» er ikke et tall uten fortegn"
 
 #: ../glib/gutf8.c:808
 msgid "Failed to allocate memory"
index 5c3b7b2..a9d8426 100644 (file)
--- a/po/oc.po
+++ b/po/oc.po
@@ -2,16 +2,17 @@
 # Copyright (C) 2001-2015 Free Software Foundation, Inc.
 # This file is distributed under the same license as the glib package.
 # Yannig Marchegay (Kokoyaya) <yannig@marchegay.org>, 2007.
-# Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>, 2016, 2018.
+# Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>, 2016.
 # Cédric VALMARY <cvalmary@yahoo.fr>, 2016.
 msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
-"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-08-30 18:47+0000\n"
-"PO-Revision-Date: 2018-11-05 19:11+0200\n"
-"Last-Translator: Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>\n"
-"Language-Team: Tot En Òc\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=glib&ke"
+"ywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2016-09-18 13:37-0400\n"
+"PO-Revision-Date: 2016-10-12 10:08+0200\n"
+"Last-Translator: Cédric VALMARY <cvalmary@yahoo.fr>\n"
+"Language-Team: Tot en òc (totenoc.eu)\n"
 "Language: oc\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -21,131 +22,131 @@ msgstr ""
 "X-Launchpad-Export-Date: 2016-10-11 14:28+0000\n"
 "X-Project-Style: gnome\n"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:493
 msgid "GApplication options"
 msgstr "Opcions GApplication"
 
-#: gio/gapplication.c:496
+#: ../gio/gapplication.c:493
 msgid "Show GApplication options"
 msgstr "Afichar las opcions GApplication"
 
-#: gio/gapplication.c:541
+#: ../gio/gapplication.c:538
 msgid "Enter GApplication service mode (use from D-Bus service files)"
 msgstr ""
 "Entrar dins lo mòde de servici GApplication (utilizar a partir dels fichièrs "
 "de servici D-Bus)"
 
-#: gio/gapplication.c:553
-#| msgid "Override the application's ID"
-msgid "Override the application’s ID"
-msgstr "Remplaçar l’identificant d’aplicacion"
+#: ../gio/gapplication.c:550
+msgid "Override the application's ID"
+msgstr "Restablir los ID de l'aplicacion"
 
-#: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
+#: ../gio/gapplication-tool.c:45 ../gio/gapplication-tool.c:46
+#: ../gio/gio-tool.c:209 ../gio/gresource-tool.c:488 ../gio/gsettings-tool.c:520
 msgid "Print help"
 msgstr "Afichar l'ajuda"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:496 gio/gresource-tool.c:564
+#: ../gio/gapplication-tool.c:47 ../gio/gresource-tool.c:489
+#: ../gio/gresource-tool.c:557
 msgid "[COMMAND]"
 msgstr "[COMANDA]"
 
-#: gio/gapplication-tool.c:49 gio/gio-tool.c:228
+#: ../gio/gapplication-tool.c:49 ../gio/gio-tool.c:210
 msgid "Print version"
 msgstr "Afichar la version"
 
-#: gio/gapplication-tool.c:50 gio/gsettings-tool.c:575
+#: ../gio/gapplication-tool.c:50 ../gio/gsettings-tool.c:526
 msgid "Print version information and exit"
 msgstr "Afichar las informacions de version e quitar"
 
-#: gio/gapplication-tool.c:52
+#: ../gio/gapplication-tool.c:52
 msgid "List applications"
 msgstr "Listar las aplicacions"
 
-#: gio/gapplication-tool.c:53
+#: ../gio/gapplication-tool.c:53
 msgid "List the installed D-Bus activatable applications (by .desktop files)"
 msgstr ""
 "Afichar la lista de las aplicacions installadas activablas per D-Bus (per "
 "fichièrs .desktop)"
 
-#: gio/gapplication-tool.c:55
+#: ../gio/gapplication-tool.c:55
 msgid "Launch an application"
 msgstr "Aviar una aplicacion"
 
-#: gio/gapplication-tool.c:56
+#: ../gio/gapplication-tool.c:56
 msgid "Launch the application (with optional files to open)"
 msgstr "Aviar l'aplicacion (amb d'eventuals fichièrs de dobrir)"
 
-#: gio/gapplication-tool.c:57
-#| msgid "APPID [FILE...]"
-msgid "APPID [FILE…]"
-msgstr "ID_APP [FICHIÈR…]"
+#: ../gio/gapplication-tool.c:57
+msgid "APPID [FILE...]"
+msgstr "ID_APP [FICHIÈR...]"
 
-#: gio/gapplication-tool.c:59
+#: ../gio/gapplication-tool.c:59
 msgid "Activate an action"
 msgstr "Activar una accion"
 
-#: gio/gapplication-tool.c:60
+#: ../gio/gapplication-tool.c:60
 msgid "Invoke an action on the application"
 msgstr "Invocar una accion sus l'aplicacion"
 
-#: gio/gapplication-tool.c:61
+#: ../gio/gapplication-tool.c:61
 msgid "APPID ACTION [PARAMETER]"
 msgstr "ID_APP ACCION [PARAMÈTRE]"
 
-#: gio/gapplication-tool.c:63
+#: ../gio/gapplication-tool.c:63
 msgid "List available actions"
 msgstr "Afichar las accions disponiblas"
 
-#: gio/gapplication-tool.c:64
+#: ../gio/gapplication-tool.c:64
 msgid "List static actions for an application (from .desktop file)"
 msgstr ""
 "Afichar la lista de las accions estaticas d'una aplicacion (a partir del "
 "fichièr .desktop)"
 
-#: gio/gapplication-tool.c:65 gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:65 ../gio/gapplication-tool.c:71
 msgid "APPID"
 msgstr "ID_APP"
 
-#: gio/gapplication-tool.c:70 gio/gapplication-tool.c:133 gio/gdbus-tool.c:90
-#: gio/gio-tool.c:224
+#: ../gio/gapplication-tool.c:70 ../gio/gapplication-tool.c:133
+#: ../gio/gdbus-tool.c:90 ../gio/gio-tool.c:206
 msgid "COMMAND"
 msgstr "COMANDA"
 
-#: gio/gapplication-tool.c:70
+#: ../gio/gapplication-tool.c:70
 msgid "The command to print detailed help for"
 msgstr "La comanda per la quala l'ajuda detalhada deu èsser afichada"
 
-#: gio/gapplication-tool.c:71
+#: ../gio/gapplication-tool.c:71
 msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
 msgstr "Identificant d'aplicacion al format D-Bus (ex. : org.example.viewer)"
 
-#: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:737
-#: gio/glib-compile-resources.c:743 gio/glib-compile-resources.c:770
-#: gio/gresource-tool.c:502 gio/gresource-tool.c:568
+#: ../gio/gapplication-tool.c:72 ../gio/glib-compile-resources.c:620
+#: ../gio/glib-compile-resources.c:626 ../gio/glib-compile-resources.c:652
+#: ../gio/gresource-tool.c:495 ../gio/gresource-tool.c:561
 msgid "FILE"
 msgstr "FICHIÈR"
 
-#: gio/gapplication-tool.c:72
+#: ../gio/gapplication-tool.c:72
 msgid "Optional relative or absolute filenames, or URIs to open"
 msgstr "Noms de fichièrs relatius o absoluts o URI de dobrir"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "ACTION"
 msgstr "ACCION"
 
-#: gio/gapplication-tool.c:73
+#: ../gio/gapplication-tool.c:73
 msgid "The action name to invoke"
 msgstr "Nom de l'accion d'invocar"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "PARAMETER"
 msgstr "PARAMÈTRE"
 
-#: gio/gapplication-tool.c:74
+#: ../gio/gapplication-tool.c:74
 msgid "Optional parameter to the action invocation, in GVariant format"
 msgstr "Paramètre facultatiu per l'invocacion de l'accion, al format GVariant"
 
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:533 gio/gsettings-tool.c:661
+#: ../gio/gapplication-tool.c:96 ../gio/gresource-tool.c:526
+#: ../gio/gsettings-tool.c:612
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -154,40 +155,33 @@ msgstr ""
 "Comanda desconeguda %s\n"
 "\n"
 
-#: gio/gapplication-tool.c:101
+#: ../gio/gapplication-tool.c:101
 msgid "Usage:\n"
 msgstr "Utilizacion :\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:558
-#: gio/gsettings-tool.c:696
+#: ../gio/gapplication-tool.c:114 ../gio/gresource-tool.c:551
+#: ../gio/gsettings-tool.c:647
 msgid "Arguments:\n"
 msgstr "Paramètres :\n"
 
-#: gio/gapplication-tool.c:133 gio/gio-tool.c:224
-#| msgid "[ARGS...]"
-msgid "[ARGS…]"
-msgstr "[PARAMS…]"
+#: ../gio/gapplication-tool.c:133 ../gio/gio-tool.c:206
+msgid "[ARGS...]"
+msgstr "[PARAMS...]"
 
-#: gio/gapplication-tool.c:134
-#, c-format
+#: ../gio/gapplication-tool.c:134
 msgid "Commands:\n"
 msgstr "Comandas :\n"
 
 #. Translators: do not translate 'help', but please translate 'COMMAND'.
-#: gio/gapplication-tool.c:146
-#, c-format, c-format
-#| msgid ""
-#| "Use '%s help COMMAND' to get detailed help.\n"
-#| "\n"
+#: ../gio/gapplication-tool.c:146
 msgid ""
-"Use “%s help COMMAND” to get detailed help.\n"
+"Use '%s help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
-"Utilizatz « %s help COMANDA » per obténer dajuda detalhada.\n"
+"Utilizatz « %s help COMANDA » per obténer de l'ajuda detalhada.\n"
 "\n"
 
-#: gio/gapplication-tool.c:165
-#, c-format
+#: ../gio/gapplication-tool.c:165
 msgid ""
 "%s command requires an application id to directly follow\n"
 "\n"
@@ -195,72 +189,57 @@ msgstr ""
 "La comanda %s exigís un identificant d'aplicacion de seguir dirèctament\n"
 "\n"
 
-#: gio/gapplication-tool.c:171
-#, c-format, c-format
-#| msgid "invalid application id: '%s'\n"
-msgid "invalid application id: “%s”\n"
-msgstr "identificant d’aplicacion invalid : « %s »\n"
+#: ../gio/gapplication-tool.c:171
+msgid "invalid application id: '%s'\n"
+msgstr "identificant d'aplicacion invalid : « %s »\n"
 
 #. Translators: %s is replaced with a command name like 'list-actions'
-#: gio/gapplication-tool.c:182
-#, c-format, c-format
-#| msgid ""
-#| "'%s' takes no arguments\n"
-#| "\n"
+#: ../gio/gapplication-tool.c:182
 msgid ""
-"“%s” takes no arguments\n"
+"'%s' takes no arguments\n"
 "\n"
 msgstr ""
 "« %s » accèpta pas cap de paramètre\n"
 "\n"
 
-#: gio/gapplication-tool.c:266
-#, c-format
+#: ../gio/gapplication-tool.c:266
 msgid "unable to connect to D-Bus: %s\n"
 msgstr "impossible de se connectar a D-Bus : %s\n"
 
-#: gio/gapplication-tool.c:286
-#, c-format
+#: ../gio/gapplication-tool.c:286
 msgid "error sending %s message to application: %s\n"
 msgstr "error de mandadís del messatge %s a l'aplicacion : %s\n"
 
-#: gio/gapplication-tool.c:317
+#: ../gio/gapplication-tool.c:317
 msgid "action name must be given after application id\n"
 msgstr "un nom d'accion deu èsser indicat aprèp l'identificant d'aplicacion\n"
 
-#: gio/gapplication-tool.c:325
-#, c-format, c-format
-#| msgid ""
-#| "invalid action name: '%s'\n"
-#| "action names must consist of only alphanumerics, '-' and '.'\n"
+#: ../gio/gapplication-tool.c:325
 msgid ""
-"invalid action name: “%s”\n"
-"action names must consist of only alphanumerics, “-” and “.”\n"
+"invalid action name: '%s'\n"
+"action names must consist of only alphanumerics, '-' and '.'\n"
 msgstr ""
-"nom daccion invalid : « %s »\n"
-"los noms daccions pòdon pas conténer que de caractèrs alfanumerics, « - » e "
+"nom d'accion invalid : « %s »\n"
+"los noms d'accions pòdon pas conténer que de caractèrs alfanumerics, « - » e "
 "« . »\n"
 
-#: gio/gapplication-tool.c:344
-#, c-format
+#: ../gio/gapplication-tool.c:344
 msgid "error parsing action parameter: %s\n"
 msgstr "error d'analisi del paramètre d'accion : %s\n"
 
-#: gio/gapplication-tool.c:356
+#: ../gio/gapplication-tool.c:356
 msgid "actions accept a maximum of one parameter\n"
 msgstr "las accions accèptan pas mai d'un paramètre\n"
 
-#: gio/gapplication-tool.c:411
+#: ../gio/gapplication-tool.c:411
 msgid "list-actions command takes only the application id"
 msgstr "la comanda list-actions accèpta pas que l'identificant de l'aplicacion"
 
-#: gio/gapplication-tool.c:421
-#, c-format
+#: ../gio/gapplication-tool.c:421
 msgid "unable to find desktop file for application %s\n"
 msgstr "impossible de trobar lo fichièr desktop per l'aplicacion %s\n"
 
-#: gio/gapplication-tool.c:466
-#, c-format
+#: ../gio/gapplication-tool.c:466
 msgid ""
 "unrecognised command: %s\n"
 "\n"
@@ -268,314 +247,254 @@ msgstr ""
 "comanda pas reconeguda : %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:209
-#, c-format
+#: ../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
 msgid "Too large count value passed to %s"
-msgstr "La valor de comptatge provesida a %s es tròp granda"
+msgstr "La valor de comptage provesida a %s es tròp granda"
 
-#: gio/gbufferedinputstream.c:891 gio/gbufferedoutputstream.c:575
-#: gio/gdataoutputstream.c:562
+#: ../gio/gbufferedinputstream.c:891 ../gio/gbufferedoutputstream.c:575
+#: ../gio/gdataoutputstream.c:562
 msgid "Seek not supported on base stream"
 msgstr "Lo posicionament es pas pres en carga sul flux de basa"
 
-#: gio/gbufferedinputstream.c:937
+#: ../gio/gbufferedinputstream.c:937
 msgid "Cannot truncate GBufferedInputStream"
 msgstr "Impossible de troncar GBufferedInputStream"
 
-#: gio/gbufferedinputstream.c:982 gio/ginputstream.c:1208 gio/giostream.c:300
-#: gio/goutputstream.c:1661
+#: ../gio/gbufferedinputstream.c:982 ../gio/ginputstream.c:1208
+#: ../gio/giostream.c:300 ../gio/goutputstream.c:1660
 msgid "Stream is already closed"
 msgstr "Lo flux es ja tampat"
 
-#: gio/gbufferedoutputstream.c:612 gio/gdataoutputstream.c:592
+#: ../gio/gbufferedoutputstream.c:612 ../gio/gdataoutputstream.c:592
 msgid "Truncate not supported on base stream"
 msgstr "La troncadura es pas presa en carga sul flux de basa"
 
-#: gio/gcancellable.c:317 gio/gdbusconnection.c:1840 gio/gdbusprivate.c:1402
-#: gio/gsimpleasyncresult.c:871 gio/gsimpleasyncresult.c:897
-#, c-format
+#: ../gio/gcancellable.c:317 ../gio/gdbusconnection.c:1849
+#: ../gio/gdbusprivate.c:1377 ../gio/gsimpleasyncresult.c:870
+#: ../gio/gsimpleasyncresult.c:896
 msgid "Operation was cancelled"
 msgstr "L'operacion es estada anullada"
 
-#: gio/gcharsetconverter.c:260
+#: ../gio/gcharsetconverter.c:260
 msgid "Invalid object, not initialized"
-msgstr "Objècte invalid, pas inicializat"
+msgstr "Objècte invalid, non inicializat"
 
-#: gio/gcharsetconverter.c:281 gio/gcharsetconverter.c:309
+#: ../gio/gcharsetconverter.c:281 ../gio/gcharsetconverter.c:309
 msgid "Incomplete multibyte sequence in input"
 msgstr "Sequéncia multi-octet incompleta en entrada"
 
-#: gio/gcharsetconverter.c:315 gio/gcharsetconverter.c:324
+#: ../gio/gcharsetconverter.c:315 ../gio/gcharsetconverter.c:324
 msgid "Not enough space in destination"
 msgstr "Espaci insufisent dins la destinacion"
 
-#: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
-#: glib/gutf8.c:869 glib/gutf8.c:1322
+#: ../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:855 ../glib/gutf8.c:1308
 msgid "Invalid byte sequence in conversion input"
 msgstr "Sequéncia d'octets incorrècta en entrada del convertidor"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1564 glib/giochannel.c:2455
-#, c-format
+#: ../gio/gcharsetconverter.c:347 ../glib/gconvert.c:446 ../glib/gconvert.c:770
+#: ../glib/giochannel.c:1563 ../glib/giochannel.c:2454
 msgid "Error during conversion: %s"
 msgstr "Error al moment de la conversion : %s"
 
-#: gio/gcharsetconverter.c:445 gio/gsocket.c:1104
+#: ../gio/gcharsetconverter.c:444 ../gio/gsocket.c:1078
 msgid "Cancellable initialization not supported"
 msgstr "Inicializacion anullabla pas presa en carga"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
-#, c-format, c-format
-#| msgid "Conversion from character set '%s' to '%s' is not supported"
-msgid "Conversion from character set “%s” to “%s” is not supported"
+#: ../gio/gcharsetconverter.c:454 ../glib/gconvert.c:321
+#: ../glib/giochannel.c:1384
+msgid "Conversion from character set '%s' to '%s' is not supported"
 msgstr ""
-"La conversion del jòc de caractèrs « %s » cap a « %s » es pas presa en "
-"carga"
+"La conversion del jòc de caractèrs « %s » cap a « %s » es pas presa en carga"
 
-#: gio/gcharsetconverter.c:460 glib/gconvert.c:331
-#, c-format, c-format
-#| msgid "Could not open converter from '%s' to '%s'"
-msgid "Could not open converter from “%s” to “%s”"
+#: ../gio/gcharsetconverter.c:458 ../glib/gconvert.c:325
+msgid "Could not open converter from '%s' to '%s'"
 msgstr "Impossible de dobrir lo convertidor de « %s » cap a « %s »"
 
-#: gio/gcontenttype.c:358
-#, c-format
+#: ../gio/gcontenttype.c:335
 msgid "%s type"
 msgstr "Tipe %s"
 
-#: gio/gcontenttype-win32.c:177
+#: ../gio/gcontenttype-win32.c:160
 msgid "Unknown type"
 msgstr "Tipe desconegut"
 
-#: gio/gcontenttype-win32.c:179
-#, c-format
+#: ../gio/gcontenttype-win32.c:162
 msgid "%s filetype"
 msgstr "Tipe de fichièr %s"
 
-#: gio/gcredentials.c:315 gio/gcredentials.c:574
+#: ../gio/gcredentials.c:312 ../gio/gcredentials.c:571
 msgid "GCredentials is not implemented on this OS"
 msgstr "GCredentials es pas implementat sus aqueste sistèma operatiu"
 
-#: gio/gcredentials.c:470
+#: ../gio/gcredentials.c:467
 msgid "There is no GCredentials support for your platform"
 msgstr "I a pas de presa en carga de GCredentials per vòstra plataforma"
 
-#: gio/gcredentials.c:516
+#: ../gio/gcredentials.c:513
 msgid "GCredentials does not contain a process ID on this OS"
 msgstr ""
 "GCredentials conten pas d'identificant de processus sus aqueste sistèma "
 "operatiu"
 
-#: gio/gcredentials.c:568
+#: ../gio/gcredentials.c:565
 msgid "Credentials spoofing is not possible on this OS"
 msgstr "L'usurpacion d'identitat es pas possible sus aqueste sistèma operatiu"
 
-#: gio/gdatainputstream.c:304
+#: ../gio/gdatainputstream.c:304
 msgid "Unexpected early end-of-stream"
 msgstr "Fin precòça de flux inesperada"
 
-#: gio/gdbusaddress.c:158 gio/gdbusaddress.c:246 gio/gdbusaddress.c:327
-#, c-format, c-format
-#| msgid "Unsupported key '%s' in address entry '%s'"
-msgid "Unsupported key “%s” in address entry “%s”"
-msgstr "Clau « %s » pas presa en carga dins l’element d’adreça « %s »"
-
-#: gio/gdbusaddress.c:185
-#, c-format, c-format
-#| msgid ""
-#| "Address '%s' is invalid (need exactly one of path, tmpdir or abstract "
-#| "keys)"
+#: ../gio/gdbusaddress.c:153 ../gio/gdbusaddress.c:241 ../gio/gdbusaddress.c:322
+msgid "Unsupported key '%s' in address entry '%s'"
+msgstr "Clau « %s » pas presa en carga dins l'element d'adreça « %s »"
+
+#: ../gio/gdbusaddress.c:180
 msgid ""
-"Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
+"Address '%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
 msgstr ""
-"L’adreça « %s » es pas valida (necessita exactament una de las claus de « "
+"L'adreça « %s » es pas valida (necessita exactement una de las claus de « "
 "path », « tmpdir » o « abstract »)"
 
-#: gio/gdbusaddress.c:198
-#, c-format, c-format
-#| msgid "Meaningless key/value pair combination in address entry '%s'"
-msgid "Meaningless key/value pair combination in address entry “%s”"
-msgstr ""
-"Combinason clau/valor sens significacion dins l’element d’adreça « %s »"
-
-#: gio/gdbusaddress.c:261 gio/gdbusaddress.c:342
-#, c-format, c-format
-#| msgid "Error in address '%s' - the port attribute is malformed"
-msgid "Error in address “%s” — the port attribute is malformed"
-msgstr "Error dins l’adreça « %s » — l’atribut del pòrt es malformat"
-
-#: gio/gdbusaddress.c:272 gio/gdbusaddress.c:353
-#, c-format, c-format
-#| msgid "Error in address '%s' - the family attribute is malformed"
-msgid "Error in address “%s” — the family attribute is malformed"
-msgstr "Error dins l’adreça « %s » — l’atribut de la familha es mal format"
-
-#: gio/gdbusaddress.c:423 gio/gdbusaddress.c:673
-#, c-format, c-format
-#| msgid "Unknown or unsupported transport '%s' for address '%s'"
-msgid "Unknown or unsupported transport “%s” for address “%s”"
-msgstr "Transpòrt « %s » desconegut o pas pres en carga per l’adreça « %s »"
-
-#: gio/gdbusaddress.c:467
-#, c-format, c-format
-#| msgid "Address element '%s' does not contain a colon (:)"
-msgid "Address element “%s” does not contain a colon (:)"
-msgstr "L’element d’adreça « %s » compòrta pas de caractèr dos-punts (:)"
-
-#: gio/gdbusaddress.c:488
-#, c-format, c-format
-#| msgid ""
-#| "Key/Value pair %d, '%s', in address element '%s' does not contain an "
-#| "equal sign"
+#: ../gio/gdbusaddress.c:193
+msgid "Meaningless key/value pair combination in address entry '%s'"
+msgstr "Combinason clau/valor sens significacion dins l'element d'adreça « %s »"
+
+#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:337
+msgid "Error in address '%s' - the port attribute is malformed"
+msgstr "Error dins l'adreça « %s » — l'atribut del pòrt es mal format"
+
+#: ../gio/gdbusaddress.c:267 ../gio/gdbusaddress.c:348
+msgid "Error in address '%s' - the family attribute is malformed"
+msgstr "Error dins l'adreça « %s » — l'atribut de la familha es mal format"
+
+#: ../gio/gdbusaddress.c:457
+msgid "Address element '%s' does not contain a colon (:)"
+msgstr "L'element d'adreça « %s » compòrta pas de caractèr dos-punts (:)"
+
+#: ../gio/gdbusaddress.c:478
 msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
+"Key/Value pair %d, '%s', in address element '%s' does not contain an equal "
 "sign"
 msgstr ""
-"Lo parelh clau/valor %d, « %s », dins l’element d’adreça « %s » compòrta pas "
+"Lo parelh clau/valor %d, « %s », dins l'element d'adreça « %s » compòrta pas "
 "de signe egal"
 
-#: gio/gdbusaddress.c:502
-#, c-format, c-format
-#| msgid ""
-#| "Error unescaping key or value in Key/Value pair %d, '%s', in address "
-#| "element '%s'"
+#: ../gio/gdbusaddress.c:492
 msgid ""
-"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
-"“%s”"
+"Error unescaping key or value in Key/Value pair %d, '%s', in address element "
+"'%s'"
 msgstr ""
-"Error al moment del desencodatge de la clau o de la valor dins lo parelh "
-"clau/valor %d, « %s », dins l’element d’adreça « %s »"
+"Error al moment del desencodatge de la clau o de la valor dins lo couple clau/"
+"valor %d, « %s », dins l'element d'adreça « %s »"
 
-#: gio/gdbusaddress.c:580
-#, c-format, c-format
-#| msgid ""
-#| "Error in address '%s' - the unix transport requires exactly one of the "
-#| "keys 'path' or 'abstract' to be set"
+#: ../gio/gdbusaddress.c:570
 msgid ""
-"Error in address “%s” — the unix transport requires exactly one of the keys "
-"“path” or “abstract” to be set"
+"Error in address '%s' - the unix transport requires exactly one of the keys "
+"'path' or 'abstract' to be set"
 msgstr ""
-"Error dins l’adreça « %s » — lo transpòrt Unix requerís que siá exactament "
+"Error dins l'adreça « %s » — lo transpòrt Unix requerís que siá exactement "
 "definida una de las claus « path » o « abstract »"
 
-#: gio/gdbusaddress.c:616
-#, c-format, 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"
+#: ../gio/gdbusaddress.c:606
+msgid "Error in address '%s' - the host attribute is missing or malformed"
 msgstr ""
-"Error dins l’adreça « %s » — l’atribut de l’òste es mancant o malformat"
+"Error dins l'adreça « %s » — l'atribut de l'òste es mancant o mal format"
 
-#: gio/gdbusaddress.c:630
-#, c-format, 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 "Error dins l’adreça « %s » — l’atribut del pòrt es mancant o malformat"
+#: ../gio/gdbusaddress.c:620
+msgid "Error in address '%s' - the port attribute is missing or malformed"
+msgstr "Error dins l'adreça « %s » — l'atribut del pòrt es mancant o mal format"
 
-#: gio/gdbusaddress.c:644
-#, c-format, 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"
+#: ../gio/gdbusaddress.c:634
+msgid "Error in address '%s' - the noncefile attribute is missing or malformed"
 msgstr ""
-"Error dins l’adreça « %s » — l’atribut del fichièr amb denominacion unica "
-"es mancant o malformat"
+"Error dins l'adreça « %s » — l'atribut del fichièr de denominacion unica es "
+"mancant o mal format"
 
-#: gio/gdbusaddress.c:665
+#: ../gio/gdbusaddress.c:655
 msgid "Error auto-launching: "
 msgstr "Error d'aviada automatica : "
 
-#: gio/gdbusaddress.c:718
-#, c-format, c-format
-#| msgid "Error opening nonce file '%s': %s"
-msgid "Error opening nonce file “%s”: %s"
-msgstr "Error al moment de la dobertura del fichièr amb denominacion unica « %s » : %s"
+#: ../gio/gdbusaddress.c:663
+msgid "Unknown or unsupported transport '%s' for address '%s'"
+msgstr "Transpòrt « %s » desconegut o pas pres en carga per l'adreça « %s »"
+
+#: ../gio/gdbusaddress.c:699
+msgid "Error opening nonce file '%s': %s"
+msgstr ""
+"Error al moment de la dobertura del fichièr de denominacion unica « %s » : %s"
 
-#: gio/gdbusaddress.c:737
-#, c-format, c-format
-#| msgid "Error reading from nonce file '%s': %s"
-msgid "Error reading from nonce file “%s”: %s"
-msgstr "Error de lectura del fichièr amb denominacion unica « %s » : %s"
+#: ../gio/gdbusaddress.c:717
+msgid "Error reading from nonce file '%s': %s"
+msgstr "Error de lectura del fichièr de denominacion unica « %s » : %s"
 
-#: gio/gdbusaddress.c:746
-#, c-format, 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"
+#: ../gio/gdbusaddress.c:726
+msgid "Error reading from nonce file '%s', expected 16 bytes, got %d"
 msgstr ""
-"Error de lectura del fichièr amb denominacion unica « %s », 16 octets "
+"Error de lectura del fichièr de denominacion unica « %s », 16 octets "
 "esperats, %d recebuts"
 
-#: gio/gdbusaddress.c:764
-#, c-format, c-format
-#| msgid "Error writing contents of nonce file '%s' to stream:"
-msgid "Error writing contents of nonce file “%s” to stream:"
+#: ../gio/gdbusaddress.c:744
+msgid "Error writing contents of nonce file '%s' to stream:"
 msgstr ""
-"Error d’escritura del contengut del fichièr amb denominacion unica « %s » "
-"sul flux :"
+"Error d'escritura del contengut del fichièr a numerotacion unica « %s » sul "
+"flux :"
 
-#: gio/gdbusaddress.c:973
+#: ../gio/gdbusaddress.c:951
 msgid "The given address is empty"
 msgstr "L'adreça indicada es voida"
 
-#: gio/gdbusaddress.c:1086
-#, c-format
+#: ../gio/gdbusaddress.c:1064
 msgid "Cannot spawn a message bus when setuid"
 msgstr ""
 "Impossible de generar dinamicament un bus messatges quand la bandièra setuid "
-"es mes"
+"es mis"
 
-#: gio/gdbusaddress.c:1093
+#: ../gio/gdbusaddress.c:1071
 msgid "Cannot spawn a message bus without a machine-id: "
 msgstr ""
 "Impossible de generar dinamicament un bus messatges sens identificant "
 "maquina : "
 
-#: gio/gdbusaddress.c:1100
+#: ../gio/gdbusaddress.c:1078
 #, c-format
 msgid "Cannot autolaunch D-Bus without X11 $DISPLAY"
 msgstr "Impossible d'aviar automaticament D-Bus sens $DISPLAY X11"
 
-#: gio/gdbusaddress.c:1142
-#, c-format, c-format
-#| msgid "Error spawning command line '%s': "
-msgid "Error spawning command line “%s”: "
+#: ../gio/gdbusaddress.c:1120
+msgid "Error spawning command line '%s': "
 msgstr "Error al moment de la generacion de la linha de comanda « %s » : "
 
-#: gio/gdbusaddress.c:1359
-#, c-format
+#: ../gio/gdbusaddress.c:1337
 msgid "(Type any character to close this window)\n"
 msgstr "(sasissètz quin caractèr que siá per tampar aquesta fenèstra)\n"
 
-#: gio/gdbusaddress.c:1513
-#, c-format
+#: ../gio/gdbusaddress.c:1489
 msgid "Session dbus not running, and autolaunch failed"
 msgstr ""
 "La session dbus es pas aviada e autolaunch (l'aviada automatica) a fracassat"
 
-#: gio/gdbusaddress.c:1524
-#, c-format
+#: ../gio/gdbusaddress.c:1500
 msgid "Cannot determine session bus address (not implemented for this OS)"
 msgstr ""
 "Impossible de determinar l'adreça del bus de session (pas pres en carga per "
 "aqueste sistèma operatiu)"
 
-#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7142
-#, c-format, c-format
-#| msgid ""
-#| "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment "
-#| "variable - unknown value '%s'"
+#: ../gio/gdbusaddress.c:1635 ../gio/gdbusconnection.c:7133
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"— unknown value “%s”"
+"- unknown value '%s'"
 msgstr ""
-"Impossible de determinar l’adreça del bus a partir de la variabla d’"
-"environament DBUS_STARTER_BUS_TYPE — valor desconeguda « %s »"
+"Impossible de determinar l'adreça del bus a partir de la variabla "
+"d'environament DBUS_STARTER_BUS_TYPE — valor desconeguda « %s »"
 
-#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7151
+#: ../gio/gdbusaddress.c:1644 ../gio/gdbusconnection.c:7142
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -583,270 +502,210 @@ msgstr ""
 "Impossible de determinar l'adreça del bus donat que la variabla "
 "d'environament DBUS_STARTER_BUS_TYPE es pas definida"
 
-#: gio/gdbusaddress.c:1681
-#, c-format
+#: ../gio/gdbusaddress.c:1654
 msgid "Unknown bus type %d"
 msgstr "Tipe de bus %d desconegut"
 
-#: gio/gdbusauth.c:293
+#: ../gio/gdbusauth.c:293
 msgid "Unexpected lack of content trying to read a line"
 msgstr ""
-"Manca de contengut imprevist al moment de la temptativa de lectura d'una "
-"linha"
+"Manca de contengut imprevist al moment de la temptativa de lectura d'una linha"
 
-#: gio/gdbusauth.c:337
+#: ../gio/gdbusauth.c:337
 msgid "Unexpected lack of content trying to (safely) read a line"
 msgstr ""
 "Manca de contengut imprevist al moment de la temptativa de lectura "
 "(securizada) d'una linha"
 
-#: gio/gdbusauth.c:481
-#, c-format
+#: ../gio/gdbusauth.c:508
 msgid ""
 "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
 msgstr ""
-"Totes los mecanismes d'autentificacion disponibles son estats agotats ("
-"temptats : %s) (disponibles : %s)"
+"Totes los mecanismes d'autentificacion disponibles son estats agotats "
+"(temptats : %s) (disponibles : %s)"
 
-#: gio/gdbusauth.c:1144
+#: ../gio/gdbusauth.c:1173
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
 msgstr "Anullat via GDBusAuthObserver::authorize-authenticated-peer"
 
-#: gio/gdbusauthmechanismsha1.c:262
-#, c-format, c-format
-#| msgid "Error when getting information for directory '%s': %s"
-msgid "Error when getting information for directory “%s”: %s"
+#: ../gio/gdbusauthmechanismsha1.c:261
+msgid "Error when getting information for directory '%s': %s"
 msgstr ""
-"Error al moment de la recuperacion dinformacion sul repertòri « %s » : %s"
+"Error al moment de la recuperacion d'informacion sul repertòri « %s » : %s"
 
-#: gio/gdbusauthmechanismsha1.c:274
-#, c-format, 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"
+#: ../gio/gdbusauthmechanismsha1.c:273
+msgid "Permissions on directory '%s' are malformed. Expected mode 0700, got 0%o"
 msgstr ""
-"Los dreits d’accès al repertòri « %s » son malformats. Mòde 0700 esperat, "
+"Los dreits d'accès al repertòri « %s » son mal formats. Mòde 0700 esperat, "
 "0%o obtengut"
 
-#: gio/gdbusauthmechanismsha1.c:299
-#, c-format, c-format
-#| msgid "Error creating directory %s: %s"
-msgid "Error creating directory “%s”: %s"
-msgstr "Error al moment de la creacion del repertòri « %s » : %s"
-
-#: gio/gdbusauthmechanismsha1.c:346
-#, c-format, c-format
-#| msgid "Error opening keyring '%s' for reading: "
-msgid "Error opening keyring “%s” for reading: "
-msgstr "Error al moment de la dobertura del trossèl de claus « %s » en lectura : "
-
-#: gio/gdbusauthmechanismsha1.c:369 gio/gdbusauthmechanismsha1.c:687
-#, c-format, 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 ""
-"La linha %d del trossèl de claus de « %s » amb lo contengut « %s » es "
-"malformada"
-
-#: gio/gdbusauthmechanismsha1.c:383 gio/gdbusauthmechanismsha1.c:701
-#, c-format, c-format
-#| msgid ""
-#| "First token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
+#: ../gio/gdbusauthmechanismsha1.c:294
+msgid "Error creating directory '%s': %s"
+msgstr "Error a la creacion del repertòri « %s » : %s"
+
+#: ../gio/gdbusauthmechanismsha1.c:377
+msgid "Error opening keyring '%s' for reading: "
+msgstr ""
+"Error al moment de la dobertura del trossèl de claus « %s » en lectura : "
+
+#: ../gio/gdbusauthmechanismsha1.c:401 ../gio/gdbusauthmechanismsha1.c:714
+msgid "Line %d of the keyring at '%s' with content '%s' is malformed"
+msgstr ""
+"La linha %d del trossèl de claus de « %s » amb lo contengut « %s » es mal "
+"formada"
+
+#: ../gio/gdbusauthmechanismsha1.c:415 ../gio/gdbusauthmechanismsha1.c:728
 msgid ""
-"First token of line %d of the keyring at “%s” with content “%s” is malformed"
+"First token of line %d of the keyring at '%s' with content '%s' is malformed"
 msgstr ""
 "Lo primièr geton de la linha %d del trossèl de claus de « %s » amb lo "
-"contengut « %s » es malformat"
+"contengut « %s » es mal format"
 
-#: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
-#, c-format, c-format
-#| msgid ""
-#| "Second token of line %d of the keyring at '%s' with content '%s' is "
-#| "malformed"
+#: ../gio/gdbusauthmechanismsha1.c:430 ../gio/gdbusauthmechanismsha1.c:742
 msgid ""
-"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
+"Second token of line %d of the keyring at '%s' with content '%s' is malformed"
 msgstr ""
 "Lo segond geton de la linha %d del trossèl de claus de « %s » amb lo "
-"contengut « %s » es malformat"
-
-#: gio/gdbusauthmechanismsha1.c:421
-#, c-format, 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 ""
-"Impossible de trobar un cookie amb l’identificant %d dins lo trossèl de "
-"claus de « %s »"
-
-#: gio/gdbusauthmechanismsha1.c:503
-#, c-format, c-format
-#| msgid "Error deleting stale lock file '%s': %s"
-msgid "Error deleting stale lock file “%s”: %s"
-msgstr "Error al moment de la destruccion de l’ancian fichièr verrolh « %s » : %s"
-
-#: gio/gdbusauthmechanismsha1.c:535
-#, c-format, c-format
-#| msgid "Error creating lock file '%s': %s"
-msgid "Error creating lock file “%s”: %s"
+"contengut « %s » es mal format"
+
+#: ../gio/gdbusauthmechanismsha1.c:454
+msgid "Didn't find cookie with id %d in the keyring at '%s'"
+msgstr ""
+"Impossible de trobar un cookie amb l'identificant %d dins lo trossèl de claus "
+"de « %s »"
+
+#: ../gio/gdbusauthmechanismsha1.c:532
+msgid "Error deleting stale lock file '%s': %s"
+msgstr ""
+"Error al moment de la destruccion de l'ancian fichièr verrolh « %s » : %s"
+
+#: ../gio/gdbusauthmechanismsha1.c:564
+msgid "Error creating lock file '%s': %s"
 msgstr "Error al moment de la creacion del fichièr verrolh « %s » : %s"
 
-#: gio/gdbusauthmechanismsha1.c:566
-#, c-format, c-format
-#| msgid "Error closing (unlinked) lock file '%s': %s"
-msgid "Error closing (unlinked) lock file “%s”: %s"
-msgstr "Error al moment de la tampadura del fichièr verrolh (pas ligat) « %s » : %s"
+#: ../gio/gdbusauthmechanismsha1.c:594
+msgid "Error closing (unlinked) lock file '%s': %s"
+msgstr ""
+"Error al moment de la tampadura del fichièr verrolh (non ligat) « %s » : %s"
 
-#: gio/gdbusauthmechanismsha1.c:577
-#, c-format, c-format
-#| msgid "Error unlinking lock file '%s': %s"
-msgid "Error unlinking lock file “%s”: %s"
+#: ../gio/gdbusauthmechanismsha1.c:604
+msgid "Error unlinking lock file '%s': %s"
 msgstr ""
 "Error al moment de la supression del ligam amb lo fichièr verrolh « %s » : %s"
 
-#: gio/gdbusauthmechanismsha1.c:654
-#, c-format, c-format
-#| msgid "Error opening keyring '%s' for writing: "
-msgid "Error opening keyring “%s” for writing: "
-msgstr "Error al moment de la dobertura del trossèl de claus « %s » en escritura : "
+#: ../gio/gdbusauthmechanismsha1.c:681
+msgid "Error opening keyring '%s' for writing: "
+msgstr ""
+"Error al moment de la dobertura del trossèl de claus « %s » en escritura : "
 
-#: gio/gdbusauthmechanismsha1.c:850
-#, c-format, c-format
-#| msgid "(Additionally, releasing the lock for '%s' also failed: %s) "
-msgid "(Additionally, releasing the lock for “%s” also failed: %s) "
-msgstr "(en otra, lo relèvament del verrolh per « %s » a fracassat tanben : %s) "
+#: ../gio/gdbusauthmechanismsha1.c:878
+msgid "(Additionally, releasing the lock for '%s' also failed: %s) "
+msgstr "(amai, lo relevament del verrolh per « %s » a tanben fracassat : %s) "
 
-#: gio/gdbusconnection.c:603 gio/gdbusconnection.c:2369
+#: ../gio/gdbusconnection.c:612 ../gio/gdbusconnection.c:2377
 msgid "The connection is closed"
 msgstr "La connexion es tampada"
 
-#: gio/gdbusconnection.c:1870
+#: ../gio/gdbusconnection.c:1879
 msgid "Timeout was reached"
 msgstr "Lo relambi d'espèra es depassat"
 
-#: gio/gdbusconnection.c:2491
-msgid ""
-"Unsupported flags encountered when constructing a client-side connection"
+#: ../gio/gdbusconnection.c:2499
+msgid "Unsupported flags encountered when constructing a client-side connection"
 msgstr ""
 "Marcadors pas preses en carga rencontrats al moment de la construccion d'una "
 "connexion costat client"
 
-#: gio/gdbusconnection.c:4115 gio/gdbusconnection.c:4462
-#, c-format, 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"
+#: ../gio/gdbusconnection.c:4109 ../gio/gdbusconnection.c:4456
+msgid "No such interface 'org.freedesktop.DBus.Properties' on object at path %s"
 msgstr ""
-"Pas d’interfàcia « org.freedesktop.DBus.Properties » per l’objècte a l’"
-"emplaçament %s"
+"Pas d'interfàcia « org.freedesktop.DBus.Properties » per l'objècte a "
+"l'emplaçament %s"
 
-#: gio/gdbusconnection.c:4257
-#, c-format, c-format
-#| msgid "No such property '%s'"
-msgid "No such property “%s”"
+#: ../gio/gdbusconnection.c:4251
+msgid "No such property '%s'"
 msgstr "La proprietat « %s » existís pas"
 
-#: gio/gdbusconnection.c:4269
-#, c-format, c-format
-#| msgid "Property '%s' is not readable"
-msgid "Property “%s” is not readable"
+#: ../gio/gdbusconnection.c:4263
+msgid "Property '%s' is not readable"
 msgstr "La proprietat « %s » pòt pas èsser legida"
 
-#: gio/gdbusconnection.c:4280
-#, c-format, c-format
-#| msgid "Property '%s' is not writable"
-msgid "Property “%s” is not writable"
+#: ../gio/gdbusconnection.c:4274
+msgid "Property '%s' is not writable"
 msgstr "La proprietat « %s » pòt pas èsser escrita"
 
-#: gio/gdbusconnection.c:4300
-#, c-format, 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 ""
-"Error al moment de la definicion de la proprietat « %s » : tipe esperat « %s », « "
-"%s » obtengut"
-
-#: gio/gdbusconnection.c:4405 gio/gdbusconnection.c:4613
-#: gio/gdbusconnection.c:6582
-#, c-format, c-format
-#| msgid "No such interface '%s'"
-msgid "No such interface “%s”"
-msgstr "L’interfàcia « %s » existís pas"
-
-#: gio/gdbusconnection.c:4831 gio/gdbusconnection.c:7091
-#, c-format, c-format
-#| msgid "No such interface '%s' on object at path %s"
-msgid "No such interface “%s” on object at path %s"
-msgstr "L’interfàcia « %s » existís pas per l’objècte a l’emplaçament %s"
-
-#: gio/gdbusconnection.c:4929
-#, c-format, c-format
-#| msgid "No such method '%s'"
-msgid "No such method “%s”"
+#: ../gio/gdbusconnection.c:4294
+msgid "Error setting property '%s': Expected type '%s' but got '%s'"
+msgstr ""
+"Error al moment de la definicion de la proprietat « %s » : tipe esperat « %s "
+"», « %s » obtengut"
+
+#: ../gio/gdbusconnection.c:4399 ../gio/gdbusconnection.c:6573
+msgid "No such interface '%s'"
+msgstr "L'interfàcia « %s » existís pas"
+
+#: ../gio/gdbusconnection.c:4607
+msgid "No such interface"
+msgstr "Interfàcia pas reconeguda"
+
+#: ../gio/gdbusconnection.c:4825 ../gio/gdbusconnection.c:7082
+msgid "No such interface '%s' on object at path %s"
+msgstr "L'interfàcia « %s » existís pas per l'objècte a l'emplaçament %s"
+
+#: ../gio/gdbusconnection.c:4923
+msgid "No such method '%s'"
 msgstr "Lo metòde « %s » existís pas"
 
-#: gio/gdbusconnection.c:4960
-#, c-format, c-format
-#| msgid "Type of message, '%s', does not match expected type '%s'"
-msgid "Type of message, “%s”, does not match expected type “%s”"
+#: ../gio/gdbusconnection.c:4954
+msgid "Type of message, '%s', does not match expected type '%s'"
 msgstr "Lo tipe del messatge, « %s », correspond pas al tipe esperat « %s »"
 
-#: gio/gdbusconnection.c:5158
-#, c-format
+#: ../gio/gdbusconnection.c:5152
 msgid "An object is already exported for the interface %s at %s"
 msgstr "Un objècte es ja exportat per l'interfàcia « %s » en « %s »"
 
-#: gio/gdbusconnection.c:5384
-#, c-format
+#: ../gio/gdbusconnection.c:5378
 msgid "Unable to retrieve property %s.%s"
 msgstr "Impossible d'obténer la proprietat %s.%s"
 
-#: gio/gdbusconnection.c:5440
-#, c-format
+#: ../gio/gdbusconnection.c:5434
 msgid "Unable to set property %s.%s"
 msgstr "Impossible de definir la proprietat %s.%s"
 
-#: gio/gdbusconnection.c:5618
-#, c-format, c-format
-#| msgid "Method '%s' returned type '%s', but expected '%s'"
-msgid "Method “%s” returned type “%s”, but expected “%s”"
+#: ../gio/gdbusconnection.c:5610
+msgid "Method '%s' returned type '%s', but expected '%s'"
 msgstr "Lo metòde « %s » a renviat lo tipe « %s », mas « %s » èra esperat"
 
-#: gio/gdbusconnection.c:6693
-#, c-format, 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"
+#: ../gio/gdbusconnection.c:6684
+msgid "Method '%s' on interface '%s' with signature '%s' does not exist"
 msgstr ""
-"Lo metòde « %s » sus l’interfàcia « %s » amb la signatura « %s » existís "
-"pas"
+"Lo metòde « %s » sus l'interfàcia « %s » amb la signatura « %s » existís pas"
 
-#: gio/gdbusconnection.c:6814
-#, c-format
+#: ../gio/gdbusconnection.c:6805
 msgid "A subtree is already exported for %s"
 msgstr "Una sosarborescéncia es ja exportada per « %s »"
 
-#: gio/gdbusmessage.c:1248
+#: ../gio/gdbusmessage.c:1244
 msgid "type is INVALID"
 msgstr "lo tipe es « INVALID »"
 
-#: gio/gdbusmessage.c:1259
+#: ../gio/gdbusmessage.c:1255
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr "Messatge de METHOD_CALL : camp d'entèsta PATH o MEMBER mancant"
 
-#: gio/gdbusmessage.c:1270
+#: ../gio/gdbusmessage.c:1266
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "Messatge de METHOD_RETURN : camp d'entèsta REPLY_SERIAL mancant"
 
-#: gio/gdbusmessage.c:1282
+#: ../gio/gdbusmessage.c:1278
 msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
 msgstr "Messatge d'ERROR : camp d'entèsta REPLY_SERIAL o ERROR_NAME mancant"
 
-#: gio/gdbusmessage.c:1295
+#: ../gio/gdbusmessage.c:1291
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr "Messatge de SIGNAL : camp d'entèsta PATH, INTERFACE o MEMBER mancant"
 
-#: gio/gdbusmessage.c:1303
+#: ../gio/gdbusmessage.c:1299
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -854,7 +713,7 @@ msgstr ""
 "Messatge de SIGNAL : lo camp d'entèsta PATH utiliza la valor reservada /org/"
 "freedesktop/DBus/Local"
 
-#: gio/gdbusmessage.c:1311
+#: ../gio/gdbusmessage.c:1307
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -862,222 +721,169 @@ msgstr ""
 "Messatge de SIGNAL : lo camp d'entèsta INTERFACE utiliza la valor reservada "
 "org.freedesktop.DBus.Local"
 
-#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
-#, c-format
+#: ../gio/gdbusmessage.c:1355 ../gio/gdbusmessage.c:1415
 msgid "Wanted to read %lu byte but only got %lu"
 msgid_plural "Wanted to read %lu bytes but only got %lu"
 msgstr[0] "Lectura de %lu octet demandada, mas solament %lu recebut(s)"
 msgstr[1] "Lectura de %lu octets demandada, mas solament %lu recebut(s)"
 
-#: gio/gdbusmessage.c:1373
-#, c-format, 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"
+#: ../gio/gdbusmessage.c:1369
+msgid "Expected NUL byte after the string '%s' but found byte %d"
 msgstr ""
 "Octet 00 (NUL) esperat a la fin de la cadena « %s » mas un octet %d es estat "
 "trobat"
 
-#: gio/gdbusmessage.c:1392
-#, c-format, 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'"
+#: ../gio/gdbusmessage.c:1388
 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”"
+"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 ""
-"Una cadena UTF-8 valida es esperada mas d'octets invalids son "
-"rencontrats a la posicion %d (longor de la cadena : %d octets). La cadena "
-"UTF-8 valida fins a aqueste endreit es « %s »"
+"Una cadena UTF-8 valida es esperada mas d'octets invalids son rencontrats a "
+"la posicion %d (longor de la cadena : %d octets). La cadena UTF-8 valida fins "
+"a aqueste endreit es « %s »"
 
-#: gio/gdbusmessage.c:1595
-#, c-format, 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 ""
-"La valor analisada « %s » es pas un camin cap a un objècte D-Bus valid"
+#: ../gio/gdbusmessage.c:1587
+msgid "Parsed value '%s' is not a valid D-Bus object path"
+msgstr "La valor analisada « %s » es pas un camin cap a un objècte D-Bus valid"
 
-#: gio/gdbusmessage.c:1617
-#, c-format, c-format
-#| msgid "Parsed value '%s' is not a valid D-Bus signature"
-msgid "Parsed value “%s” is not a valid D-Bus signature"
+#: ../gio/gdbusmessage.c:1609
+msgid "Parsed value '%s' is not a valid D-Bus signature"
 msgstr "La valor analisada « %s » es pas una signatura D-Bus valida"
 
 # 2<<26  donne 128 Mo, 2^26 donne 64 Mo, 1<<26 donne 64 Mo
-#: gio/gdbusmessage.c:1664
-#, c-format
+#: ../gio/gdbusmessage.c:1656
 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] ""
-"Un tablèu de %u octet de long es estat trobat. La longor maximala es de 2<<"
-"26 octets (64 Mo)."
+"Un tablèu de %u octet de long es estat trobat. La longor maximala es de 2<<26 "
+"octets (64 Mo)."
 msgstr[1] ""
-"Un tablèu de %u octets de long es estat trobat. La longor maximala es de 2<<"
-"26 octets (64 Mo)."
-
-#: gio/gdbusmessage.c:1684
-#, c-format, 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"
+"Un tablèu de %u octets de long es estat trobat. La longor maximala es de "
+"2<<26 octets (64 Mo)."
+
+#: ../gio/gdbusmessage.c:1676
 msgid ""
-"Encountered array of type “a%c”, expected to have a length a multiple of %u "
+"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 ""
 "Un tablèu de tipe « a%c » es estat trobat, amb una longor esperada multipla "
 "de %u octets, mas la longor vertadièra es de %u octets"
 
-#: gio/gdbusmessage.c:1851
-#, c-format, 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"
+#: ../gio/gdbusmessage.c:1843
+msgid "Parsed value '%s' for variant is not a valid D-Bus signature"
 msgstr ""
-"La valor « %s » analisada en tant que variant es pas una signatura valida "
-"de D-Bus"
+"La valor « %s » analisada en tant que variant es pas una signatura valida de "
+"D-Bus"
 
-#: gio/gdbusmessage.c:1875
-#, c-format, c-format
-#| msgid ""
-#| "Error deserializing GVariant with type string '%s' from the D-Bus wire "
-#| "format"
+#: ../gio/gdbusmessage.c:1867
 msgid ""
-"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
+"Error deserializing GVariant with type string '%s' from the D-Bus wire format"
 msgstr ""
 "Error en deserializant lo GVariant en cadena de tipe « %s » a partir del "
 "format de transmission D-Bus"
 
-#: gio/gdbusmessage.c:2057
-#, c-format, c-format
-#| msgid ""
-#| "Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found "
-#| "value 0x%02x"
+#: ../gio/gdbusmessage.c:2051
 msgid ""
-"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
-"0x%02x"
+"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value 0x"
+"%02x"
 msgstr ""
-"Valor de botisme invalid. 0x6c (« l ») o 0x42 (« B ») esperats, mas "
-"0x%02x trobat"
+"Valor de boutisme invalida. 0x6c (« l ») o 0x42 (« B ») esperats, mas 0x%02x "
+"trobat"
 
-#: gio/gdbusmessage.c:2070
-#, c-format
+#: ../gio/gdbusmessage.c:2064
 msgid "Invalid major protocol version. Expected 1 but found %d"
-msgstr "Version màger del protocòl invalida. 1 esperat, %d trobat"
+msgstr "Version majeure del protocòl invalida. 1 esperat, %d trobat"
 
-#: gio/gdbusmessage.c:2126
-#, c-format, 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"
+#: ../gio/gdbusmessage.c:2120
+msgid "Signature header with signature '%s' found but message body is empty"
 msgstr ""
-"Entèsta de signatura trobat amb la signatura « %s », mas lo còs del "
-"messatge es void"
+"Entèsta de signatura trobat amb la signatura « %s », mas lo còs del messatge "
+"es void"
 
-#: gio/gdbusmessage.c:2140
-#, c-format, 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)"
+#: ../gio/gdbusmessage.c:2134
+msgid "Parsed value '%s' is not a valid D-Bus signature (for body)"
 msgstr ""
-"La valor analisada « %s » es pas una signatura valida de D-Bus (pel "
-"còs)"
+"La valor analisada « %s » es pas una signatura valida de D-Bus (per lo còs)"
 
-#: gio/gdbusmessage.c:2170
-#, c-format
+#: ../gio/gdbusmessage.c:2164
 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] ""
-"Pas de signatura d'entèsta dins lo messatge, mas lo còs del messatge es de %"
-"octet"
+"Pas de signatura d'entèsta dins lo messatge, mas lo còs del messatge es de %"
+"octet"
 msgstr[1] ""
-"Pas de signatura d'entèsta dins lo messatge, mas lo còs del messatge es de %"
-"octets"
+"Pas de signatura d'entèsta dins lo messatge, mas lo còs del messatge es de %"
+"octets"
 
-#: gio/gdbusmessage.c:2180
+#: ../gio/gdbusmessage.c:2174
 msgid "Cannot deserialize message: "
 msgstr "Impossible de deserializar lo messatge : "
 
-#: gio/gdbusmessage.c:2521
-#, c-format, c-format
-#| msgid ""
-#| "Error serializing GVariant with type string '%s' to the D-Bus wire format"
+#: ../gio/gdbusmessage.c:2515
 msgid ""
-"Error serializing GVariant with type string “%s” to the D-Bus wire format"
+"Error serializing GVariant with type string '%s' to the D-Bus wire format"
 msgstr ""
 "Error en serializant lo GVariant en cadena de tipe « %s » dins lo format de "
 "transmission D-Bus"
 
-#: gio/gdbusmessage.c:2658
-#, c-format
+#: ../gio/gdbusmessage.c:2652
 msgid ""
-"Number of file descriptors in message (%d) differs from header field (%d)"
+"Message has %d file descriptors but the header field indicates %d file "
+"descriptors"
 msgstr ""
-"Lo nombre de descriptors de fichièrs dins lo messatge (%d) diferís de lo "
-"del camp d’entèsta (%d)"
+"Lo messatge compòrta %d descriptors de fichièrs mentre que lo camp d'entèsta "
+"indica %d descriptors de fichièrs"
 
-#: gio/gdbusmessage.c:2666
+#: ../gio/gdbusmessage.c:2660
 msgid "Cannot serialize message: "
 msgstr "Impossible de serializar lo messatge : "
 
-#: gio/gdbusmessage.c:2710
-#, c-format, 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"
+#: ../gio/gdbusmessage.c:2704
+msgid "Message body has signature '%s' but there is no signature header"
 msgstr ""
-"Lo còs del messatge a la signatura « %s », mas i a pas d’entèsta de "
-"signatura"
+"Lo còs del messatge a la signatura « %s », mas i a pas d'entèsta de signatura"
 
-#: gio/gdbusmessage.c:2720
-#, c-format, c-format
-#| msgid ""
-#| "Message body has type signature '%s' but signature in the header field is "
-#| "'%s'"
+#: ../gio/gdbusmessage.c:2714
 msgid ""
-"Message body has type signature “%s” but signature in the header field is "
-"“%s”"
+"Message body has type signature '%s' but signature in the header field is '%s'"
 msgstr ""
-"Lo còs del messatge a una signatura de tipe « %s », mas la dins lo camp "
-"dentèsta es « %s »"
+"Lo còs del messatge a una signatura de tipe « %s », mas la qu'es dins lo camp "
+"d'entèsta es « %s »"
 
-#: gio/gdbusmessage.c:2736
-#, c-format, 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)”"
+#: ../gio/gdbusmessage.c:2730
+msgid "Message body is empty but signature in the header field is '(%s)'"
 msgstr ""
-"Lo còs del messatge es void mas sa signatura dins lo camp d’entèsta es « "
-"(%s) »"
+"Lo còs del messatge es void mas sa signatura dins lo camp d'entèsta es « (%s) "
+"»"
 
-#: gio/gdbusmessage.c:3289
-#, c-format, c-format
-#| msgid "Error return with body of type '%s'"
-msgid "Error return with body of type “%s”"
-msgstr "Retorn d’error amb un còs de tipe « %s »"
+#: ../gio/gdbusmessage.c:3283
+msgid "Error return with body of type '%s'"
+msgstr "Retorn d'error amb un còs de tipe « %s »"
 
-#: gio/gdbusmessage.c:3297
+#: ../gio/gdbusmessage.c:3291
 msgid "Error return with empty body"
 msgstr "Retorn d'error amb un còs void"
 
-#: gio/gdbusprivate.c:2066
-#, c-format
+#: ../gio/gdbusprivate.c:2038
 msgid "Unable to get Hardware profile: %s"
 msgstr "Impossible d'obténer lo perfil material : %s"
 
-#: gio/gdbusprivate.c:2111
+#: ../gio/gdbusprivate.c:2083
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Cargament de /var/lib/dbus/machine-id o /etc/machine-id impossible : "
 
-#: gio/gdbusproxy.c:1612
-#, c-format
+#: ../gio/gdbusproxy.c:1611
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Error al moment de l'apèl de StartServiceByName per %s : "
 
 # Guillemets anglais laissés volontairement
-#: gio/gdbusproxy.c:1635
-#, c-format
+#: ../gio/gdbusproxy.c:1634
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Responsa %d inesperada del metòde StartServiceByName(\"%s\")"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: ../gio/gdbusproxy.c:2713 ../gio/gdbusproxy.c:2847
 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"
@@ -1086,46 +892,30 @@ msgstr ""
 "sens proprietari mentre que lo proxy es estat construit amb lo marcador "
 "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
 
-#: gio/gdbusserver.c:708
+#: ../gio/gdbusserver.c:708
 msgid "Abstract name space not supported"
 msgstr "L'espaci de noms abstrait es pas pres en carga"
 
-#: gio/gdbusserver.c:795
+#: ../gio/gdbusserver.c:795
 msgid "Cannot specify nonce file when creating a server"
 msgstr ""
 "Impossible de definir un fichièr de denominacion unica al moment de la "
 "creacion d'un servidor"
 
-#: gio/gdbusserver.c:876
-#, c-format, c-format
-#| msgid "Error writing nonce file at '%s': %s"
-msgid "Error writing nonce file at “%s”: %s"
+#: ../gio/gdbusserver.c:873
+msgid "Error writing nonce file at '%s': %s"
 msgstr ""
-"Error al moment de l’escritura del fichièr amb denominacion unica a « %s » : %s"
+"Error al moment de l'escritura del fichièr de denominacion unica a « %s » : %s"
 
-#: gio/gdbusserver.c:1047
-#, c-format, c-format
-#| msgid "The string '%s' is not a valid D-Bus GUID"
-msgid "The string “%s” is not a valid D-Bus GUID"
+#: ../gio/gdbusserver.c:1044
+msgid "The string '%s' is not a valid D-Bus GUID"
 msgstr "La cadena « %s » es pas un GUID valid de D-Bus"
 
-#: gio/gdbusserver.c:1087
-#, c-format, c-format
-#| msgid "Cannot listen on unsupported transport '%s'"
-msgid "Cannot listen on unsupported transport “%s”"
-msgstr "Impossible d’escotar sul transpòrt « %s » pas pres en carga"
-
-#: gio/gdbus-tool.c:95
-#, c-format, 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/gdbusserver.c:1084
+msgid "Cannot listen on unsupported transport '%s'"
+msgstr "Impossible d'escotar sul transpòrt « %s » pas pres en carga"
+
+#: ../gio/gdbus-tool.c:95
 msgid ""
 "Commands:\n"
 "  help         Shows this information\n"
@@ -1133,404 +923,314 @@ msgid ""
 "  monitor      Monitor a remote object\n"
 "  call         Invoke a method on a remote object\n"
 "  emit         Emit a signal\n"
-"  wait         Wait for a bus name to appear\n"
 "\n"
-"Use “%s COMMAND --help” to get help on each command.\n"
+"Use \"%s COMMAND --help\" to get help on each command.\n"
 msgstr ""
-"Commandes :\n"
+"Comandas :\n"
 "  help         Aficha la presenta informacion\n"
-"  introspect   Inspècta la constitucion dun objècte distant\n"
+"  introspect   Inspècta la constitucion d'un objècte distant\n"
 "  monitor      Susvelha un objècte distant\n"
 "  call         Apèla un metòde sus un objècte distant\n"
 "  emit         Emet un senhal\n"
-"  wait         Espèra l’aparicion d’un nom de bus\n"
 "\n"
-"Utiliser « %s COMMANDE --help » per obténer una aide sus chaque commande.\n"
+"Utilizar « %s COMANDA --help » per obténer una ajuda sus cada comanda.\n"
 
-#: gio/gdbus-tool.c:185 gio/gdbus-tool.c:252 gio/gdbus-tool.c:324
-#: gio/gdbus-tool.c:348 gio/gdbus-tool.c:834 gio/gdbus-tool.c:1171
-#: gio/gdbus-tool.c:1613
-#, c-format
+#: ../gio/gdbus-tool.c:164 ../gio/gdbus-tool.c:226 ../gio/gdbus-tool.c:298
+#: ../gio/gdbus-tool.c:322 ../gio/gdbus-tool.c:724 ../gio/gdbus-tool.c:1067
+#: ../gio/gdbus-tool.c:1509 ../gio/gio-tool-rename.c:84
 msgid "Error: %s\n"
 msgstr "Error : %s\n"
 
-#: gio/gdbus-tool.c:196 gio/gdbus-tool.c:265 gio/gdbus-tool.c:1629
-#, c-format
+#: ../gio/gdbus-tool.c:175 ../gio/gdbus-tool.c:239 ../gio/gdbus-tool.c:1525
 msgid "Error parsing introspection XML: %s\n"
-msgstr "Error al moment de l'analisi del XML d'introspeccion : %s\n"
+msgstr "Error al moment de l'analisi del XML d'introspection : %s\n"
 
-#: gio/gdbus-tool.c:234
-#, c-format
+#: ../gio/gdbus-tool.c:208
 msgid "Error: %s is not a valid name\n"
 msgstr "Error : %s es pas un nom valid\n"
 
-#: gio/gdbus-tool.c:382
+#: ../gio/gdbus-tool.c:356
 msgid "Connect to the system bus"
 msgstr "Connexion al bus sistèma"
 
-#: gio/gdbus-tool.c:383
+#: ../gio/gdbus-tool.c:357
 msgid "Connect to the session bus"
 msgstr "Connexion al bus de session"
 
-#: gio/gdbus-tool.c:384
+#: ../gio/gdbus-tool.c:358
 msgid "Connect to given D-Bus address"
 msgstr "Connexion a l'adreça D-Bus donada"
 
-#: gio/gdbus-tool.c:394
+#: ../gio/gdbus-tool.c:368
 msgid "Connection Endpoint Options:"
 msgstr "Opcions de connexion al punt terminal :"
 
-#: gio/gdbus-tool.c:395
+#: ../gio/gdbus-tool.c:369
 msgid "Options specifying the connection endpoint"
 msgstr "Opcions que definisson la connexion al punt terminal"
 
-#: gio/gdbus-tool.c:417
-#, c-format
+#: ../gio/gdbus-tool.c:391
 msgid "No connection endpoint specified"
 msgstr "Cap de punt terminal de connexion pas definit"
 
-#: gio/gdbus-tool.c:427
-#, c-format
+#: ../gio/gdbus-tool.c:401
 msgid "Multiple connection endpoints specified"
 msgstr "Mantun punt terminals de connexion definits"
 
-#: gio/gdbus-tool.c:497
-#, c-format, c-format
-#| msgid ""
-#| "Warning: According to introspection data, interface '%s' does not exist\n"
+#: ../gio/gdbus-tool.c:471
 msgid ""
-"Warning: According to introspection data, interface “%s” does not exist\n"
+"Warning: According to introspection data, interface '%s' does not exist\n"
 msgstr ""
-"Avertiment : segon las donadas de l’examèn intèrne, l’interfàcia « %s » "
+"Avertiment : segon las donadas de l'examèn intèrne, l'interfàcia « %s » "
 "existís pas\n"
 
-#: gio/gdbus-tool.c:506
-#, c-format, c-format
-#| msgid ""
-#| "Warning: According to introspection data, method '%s' does not exist on "
-#| "interface '%s'\n"
+#: ../gio/gdbus-tool.c:480
 msgid ""
-"Warning: According to introspection data, method “%s” does not exist on "
-"interface “%s”\n"
+"Warning: According to introspection data, method '%s' does not exist on "
+"interface '%s'\n"
 msgstr ""
-"Avertiment : segon las donadas de l’examèn intèrne, lo metòde « %s » "
-"existís pas sus l’interfàcia « %s »\n"
+"Avertiment : segon las donadas de l'examèn intèrne, lo metòde « %s » existís "
+"pas sus l'interfàcia « %s »\n"
 
-#: gio/gdbus-tool.c:568
+#: ../gio/gdbus-tool.c:542
 msgid "Optional destination for signal (unique name)"
 msgstr "Destinacion facultativa pel senhal (nom unic)"
 
-#: gio/gdbus-tool.c:569
+#: ../gio/gdbus-tool.c:543
 msgid "Object path to emit signal on"
-msgstr "Camin de l'objècte sul qual emetrà lo senhal"
+msgstr "Camin de l'objècte sul qual émetra lo senhal"
 
-#: gio/gdbus-tool.c:570
+#: ../gio/gdbus-tool.c:544
 msgid "Signal and interface name"
 msgstr "Noms de senhal e d'interfàcia"
 
-#: gio/gdbus-tool.c:603
+#: ../gio/gdbus-tool.c:578
 msgid "Emit a signal."
 msgstr "Emet un senhal."
 
-#: gio/gdbus-tool.c:658 gio/gdbus-tool.c:965 gio/gdbus-tool.c:1715
-#: gio/gdbus-tool.c:1944 gio/gdbus-tool.c:2164
-#, c-format
+#: ../gio/gdbus-tool.c:612 ../gio/gdbus-tool.c:857 ../gio/gdbus-tool.c:1615
+#: ../gio/gdbus-tool.c:1850
 msgid "Error connecting: %s\n"
 msgstr "Error de connexion : %s\n"
 
-#: gio/gdbus-tool.c:678
-#, c-format
-msgid "Error: %s is not a valid unique bus name.\n"
-msgstr "Error : %s es pas un nom unic de bus valid.\n"
-
-#: gio/gdbus-tool.c:697 gio/gdbus-tool.c:1008 gio/gdbus-tool.c:1758
-msgid "Error: Object path is not specified\n"
-msgstr "Error : lo camin per l'objècte es pas precisat\n"
+#: ../gio/gdbus-tool.c:624
+msgid "Error: object path not specified.\n"
+msgstr "Error : lo camin per l'objècte es pas precisat.\n"
 
-#: gio/gdbus-tool.c:720 gio/gdbus-tool.c:1028 gio/gdbus-tool.c:1778
-#: gio/gdbus-tool.c:2015
-#, c-format
+#: ../gio/gdbus-tool.c:629 ../gio/gdbus-tool.c:924 ../gio/gdbus-tool.c:1680
+#: ../gio/gdbus-tool.c:1916
 msgid "Error: %s is not a valid object path\n"
 msgstr "Error : « %s » es pas un camin d'objècte valid\n"
 
-#: gio/gdbus-tool.c:740
-#| msgid "Error: Method name is not specified\n"
-msgid "Error: Signal name is not specified\n"
-msgstr "Error : lo nom del senhal es pas definit\n"
+#: ../gio/gdbus-tool.c:635
+msgid "Error: signal not specified.\n"
+msgstr "Error : lo senhal es pas precisat.\n"
 
-# c-format
-#: gio/gdbus-tool.c:754
-#, c-format, c-format
-#| msgid "Error: Method name '%s' is invalid\n"
-msgid "Error: Signal name “%s” is invalid\n"
-msgstr "Error : lo nom de senhal « %s » es pas valid\n"
+#: ../gio/gdbus-tool.c:642
+msgid "Error: signal must be the fully-qualified name.\n"
+msgstr "Error : lo senhal deu èsser lo nom completament qualificat.\n"
 
-#: gio/gdbus-tool.c:766
-#, c-format
+#: ../gio/gdbus-tool.c:650
 msgid "Error: %s is not a valid interface name\n"
-msgstr "Error : %s es pas un nom d'interfàcia valid\n"
+msgstr "Error : %s es pas un nom d'interfàcia valida\n"
 
-#: gio/gdbus-tool.c:772
-#, c-format
+#: ../gio/gdbus-tool.c:656
 msgid "Error: %s is not a valid member name\n"
 msgstr "Error : %s es pas un nom de membre valid\n"
 
+#: ../gio/gdbus-tool.c:662
+msgid "Error: %s is not a valid unique bus name.\n"
+msgstr "Error : %s es pas un nom unic de bus valid.\n"
+
 #. Use the original non-"parse-me-harder" error
-#: gio/gdbus-tool.c:809 gio/gdbus-tool.c:1140
-#, c-format
+#: ../gio/gdbus-tool.c:699 ../gio/gdbus-tool.c:1036
 msgid "Error parsing parameter %d: %s\n"
 msgstr "Error al moment de l'analisi del paramètre %d : %s\n"
 
-#: gio/gdbus-tool.c:841
-#, c-format
+#: ../gio/gdbus-tool.c:731
 msgid "Error flushing connection: %s\n"
-msgstr "Error de purga de la connexion : %s\n"
+msgstr "Error de purge de la connexion : %s\n"
 
-#: gio/gdbus-tool.c:868
+#: ../gio/gdbus-tool.c:758
 msgid "Destination name to invoke method on"
 msgstr "Nom de la destinacion sus la quala apelar un metòde"
 
-#: gio/gdbus-tool.c:869
+#: ../gio/gdbus-tool.c:759
 msgid "Object path to invoke method on"
 msgstr "Camin de l'objècte sul qual apelar un metòde"
 
-#: gio/gdbus-tool.c:870
+#: ../gio/gdbus-tool.c:760
 msgid "Method and interface name"
 msgstr "Noms de metòde e d'interfàcia"
 
-#: gio/gdbus-tool.c:871
+#: ../gio/gdbus-tool.c:761
 msgid "Timeout in seconds"
 msgstr "Relambi d'espèra en segondas"
 
-#: gio/gdbus-tool.c:910
+#: ../gio/gdbus-tool.c:802
 msgid "Invoke a method on a remote object."
 msgstr "Apelar un metòde sus un objècte distant."
 
-#: gio/gdbus-tool.c:982 gio/gdbus-tool.c:1732 gio/gdbus-tool.c:1969
+#: ../gio/gdbus-tool.c:877 ../gio/gdbus-tool.c:1634 ../gio/gdbus-tool.c:1869
 msgid "Error: Destination is not specified\n"
 msgstr "Error : la destinacion es pas precisada\n"
 
-#: gio/gdbus-tool.c:993 gio/gdbus-tool.c:1749 gio/gdbus-tool.c:1980
-#, c-format
+#: ../gio/gdbus-tool.c:889 ../gio/gdbus-tool.c:1651 ../gio/gdbus-tool.c:1881
 msgid "Error: %s is not a valid bus name\n"
 msgstr "Error : %s es pas un nom de bus valid\n"
 
-#: gio/gdbus-tool.c:1043
+#: ../gio/gdbus-tool.c:904 ../gio/gdbus-tool.c:1660
+msgid "Error: Object path is not specified\n"
+msgstr "Error : lo camin per l'objècte es pas precisat\n"
+
+#: ../gio/gdbus-tool.c:939
 msgid "Error: Method name is not specified\n"
 msgstr "Error : lo nom del metòde es pas definit\n"
 
-#: gio/gdbus-tool.c:1054
-#, c-format, c-format
-#| msgid "Error: Method name '%s' is invalid\n"
-msgid "Error: Method name “%s” is invalid\n"
+#: ../gio/gdbus-tool.c:950
+msgid "Error: Method name '%s' is invalid\n"
 msgstr "Error : lo nom de metòde « %s » es pas valid\n"
 
-#: gio/gdbus-tool.c:1132
-#, c-format, c-format
-#| msgid "Error parsing parameter %d of type '%s': %s\n"
-msgid "Error parsing parameter %d of type “%s”: %s\n"
-msgstr "Error d’analisi del paramètre %d de tipe « %s » : %s\n"
+#: ../gio/gdbus-tool.c:1028
+msgid "Error parsing parameter %d of type '%s': %s\n"
+msgstr "Error d'analisi del paramètre %d de tipe « %s » : %s\n"
 
-#: gio/gdbus-tool.c:1576
+#: ../gio/gdbus-tool.c:1472
 msgid "Destination name to introspect"
 msgstr "Nom de la destinacion d'examinar en intèrne"
 
-#: gio/gdbus-tool.c:1577
+#: ../gio/gdbus-tool.c:1473
 msgid "Object path to introspect"
 msgstr "Camin de l'objècte d'examinar en intèrne"
 
-#: gio/gdbus-tool.c:1578
+#: ../gio/gdbus-tool.c:1474
 msgid "Print XML"
 msgstr "Imprimir lo XML"
 
-#: gio/gdbus-tool.c:1579
+#: ../gio/gdbus-tool.c:1475
 msgid "Introspect children"
 msgstr "Examinar en intèrne los enfants"
 
-#: gio/gdbus-tool.c:1580
+#: ../gio/gdbus-tool.c:1476
 msgid "Only print properties"
 msgstr "Afichar pas que las proprietats"
 
-#: gio/gdbus-tool.c:1667
+#: ../gio/gdbus-tool.c:1567
 msgid "Introspect a remote object."
 msgstr "Examinar en intèrne un objècte distant."
 
-#: gio/gdbus-tool.c:1870
+#: ../gio/gdbus-tool.c:1772
 msgid "Destination name to monitor"
 msgstr "Nom de la destinacion de susvelhar"
 
-#: gio/gdbus-tool.c:1871
+#: ../gio/gdbus-tool.c:1773
 msgid "Object path to monitor"
 msgstr "Camin de l'objècte de susvelhar"
 
-#: gio/gdbus-tool.c:1896
+#: ../gio/gdbus-tool.c:1802
 msgid "Monitor a remote object."
 msgstr "Susvelhar un objècte distant."
 
-#: gio/gdbus-tool.c:1954
-msgid "Error: can’t monitor a non-message-bus connection\n"
-msgstr ""
-"Error : impossible de susvelhar una connexion qu'es pas un bus de "
-"messatges\n"
-
-#: gio/gdbus-tool.c:2078
-msgid "Service to activate before waiting for the other one (well-known name)"
-msgstr "Servici d'activar abans d’esperar l’autre (nom plan conegut)"
-
-#: gio/gdbus-tool.c:2081
-msgid ""
-"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
-"(default)"
-msgstr ""
-"Relambi d’espèra abans de quitar amb una error (segondas) ; 0 per cap "
-"relambi (per defaut)"
-
-#: gio/gdbus-tool.c:2129
-msgid "[OPTION…] BUS-NAME"
-msgstr "[OPCION…] NOM-DE-BUS"
-
-#: gio/gdbus-tool.c:2130
-msgid "Wait for a bus name to appear."
-msgstr "Espèra l’aparicion d’un nom de bus."
-
-#: gio/gdbus-tool.c:2206
-#| msgid "Error: object path not specified.\n"
-msgid "Error: A service to activate for must be specified.\n"
-msgstr "Error : un servici d'activar deu èsser indicat.\n"
-
-#: gio/gdbus-tool.c:2211
-#| msgid "Error: object path not specified.\n"
-msgid "Error: A service to wait for must be specified.\n"
-msgstr "Error : un servici d'esperar deu èsser indicat.\n"
-
-#: gio/gdbus-tool.c:2216
-#| msgid "Too many arguments"
-msgid "Error: Too many arguments.\n"
-msgstr "Error : tròp de paramètres.\n"
-
-#: gio/gdbus-tool.c:2224 gio/gdbus-tool.c:2231
-#, c-format, c-format
-#| msgid "Error: %s is not a valid bus name\n"
-msgid "Error: %s is not a valid well-known bus name.\n"
-msgstr "Error : %s es pas un nom de bus plan conegut valid\n"
-
-#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4633
+#: ../gio/gdesktopappinfo.c:1994 ../gio/gdesktopappinfo.c:4501
 msgid "Unnamed"
 msgstr "Sens nom"
 
-# Un fichièr Desktop n'est pas forcément sus lo bureau...
+# Un fichier Desktop n'est pas forcément sur le bureau...
 # Un fichièr Desktop n'est pas forcément sul burèu...
-# Un fichièr Desktop es pas forcément sus lo bureau...
-#: gio/gdesktopappinfo.c:2433
-#| msgid "Desktop file didn't specify Exec field"
-msgid "Desktop file didn’t specify Exec field"
+#: ../gio/gdesktopappinfo.c:2404
+msgid "Desktop file didn't specify Exec field"
 msgstr "Lo fichièr .desktop a pas precisat son camp Exec"
 
-#: gio/gdesktopappinfo.c:2692
+#: ../gio/gdesktopappinfo.c:2689
 msgid "Unable to find terminal required for application"
 msgstr "Impossible de trobar lo terminal requesit per l'aplicacion"
 
-#: gio/gdesktopappinfo.c:3202
-#, c-format, c-format
-#| msgid "Can't create user application configuration folder %s: %s"
-msgid "Can’t create user application configuration folder %s: %s"
+#: ../gio/gdesktopappinfo.c:3097
+msgid "Can't create user application configuration folder %s: %s"
 msgstr ""
-"Impossible de crear lo dorsièr de configuracion utilizaire d’aplicacion %s "
-"%s"
+"Impossible de crear lo dorsièr de configuracion utilizaire d'aplicacion %s : "
+"%s"
 
-#: gio/gdesktopappinfo.c:3206
-#, c-format, c-format
-#| msgid "Can't create user MIME configuration folder %s: %s"
-msgid "Can’t create user MIME configuration folder %s: %s"
+#: ../gio/gdesktopappinfo.c:3101
+msgid "Can't create user MIME configuration folder %s: %s"
 msgstr "Impossible de crear lo dorsièr de configuracion utilizaire MIME %s : %s"
 
-#: gio/gdesktopappinfo.c:3446 gio/gdesktopappinfo.c:3470
+#: ../gio/gdesktopappinfo.c:3341 ../gio/gdesktopappinfo.c:3365
 msgid "Application information lacks an identifier"
 msgstr "Las informacions de l'aplicacion compòrtan pas d'identificant"
 
-#: gio/gdesktopappinfo.c:3704
-#, c-format, c-format
-#| msgid "Can't create user desktop file %s"
-msgid "Can’t create user desktop file %s"
+#: ../gio/gdesktopappinfo.c:3599
+msgid "Can't create user desktop file %s"
 msgstr "Impossible de crear lo fichièr .desktop utilizaire %s"
 
-#: gio/gdesktopappinfo.c:3838
-#, c-format
+#: ../gio/gdesktopappinfo.c:3733
 msgid "Custom definition for %s"
-msgstr "Definicion personalizada per %s"
+msgstr "Definicion personnalisée per %s"
 
-#: gio/gdrive.c:417
-#| msgid "drive doesn't implement eject"
-msgid "drive doesn’t implement eject"
-msgstr "lo lector implementa pas l’ejeccion (« eject »)"
+#: ../gio/gdrive.c:417
+msgid "drive doesn't implement eject"
+msgstr "lo lector implementa pas l'ejeccion (« 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
-#| msgid "drive doesn't implement eject or eject_with_operation"
-msgid "drive doesn’t implement eject or eject_with_operation"
+#: ../gio/gdrive.c:495
+msgid "drive doesn't implement eject or eject_with_operation"
 msgstr ""
-"lo lector implementa pas lejeccion combinada o pas (« eject » o « "
+"lo lector implementa pas l'ejeccion combinada o pas (« eject » o « "
 "eject_with_operation »)"
 
-#: gio/gdrive.c:571
-#| msgid "drive doesn't implement polling for media"
-msgid "drive doesn’t implement polling for media"
+#: ../gio/gdrive.c:571
+msgid "drive doesn't implement polling for media"
 msgstr "lo lector implementa pas l'escrutacion del mèdia (« polling »)"
 
-#: gio/gdrive.c:778
-#| msgid "drive doesn't implement start"
-msgid "drive doesn’t implement start"
+#: ../gio/gdrive.c:776
+msgid "drive doesn't implement start"
 msgstr "lo lector implementa pas l'aviada (« start »)"
 
-#: gio/gdrive.c:880
-#| msgid "drive doesn't implement stop"
-msgid "drive doesn’t implement stop"
-msgstr "lo lector implementa pas l’arrèst (« stop »)"
+#: ../gio/gdrive.c:878
+msgid "drive doesn't implement stop"
+msgstr "lo lector implementa pas l'arrèst (« stop »)"
 
-#: gio/gdummytlsbackend.c:195 gio/gdummytlsbackend.c:317
-#: gio/gdummytlsbackend.c:509
+#: ../gio/gdummytlsbackend.c:195 ../gio/gdummytlsbackend.c:317
+#: ../gio/gdummytlsbackend.c:509
 msgid "TLS support is not available"
 msgstr "La presa en carga TLS es pas disponibla"
 
-#: gio/gdummytlsbackend.c:419
+#: ../gio/gdummytlsbackend.c:419
+#| msgid "TLS support is not available"
 msgid "DTLS support is not available"
 msgstr "La presa en carga DTLS es pas disponibla"
 
-#: gio/gemblem.c:323
-#, c-format, c-format
-#| msgid "Can't handle version %d of GEmblem encoding"
-msgid "Can’t handle version %d of GEmblem encoding"
+#: ../gio/gemblem.c:323
+msgid "Can't handle version %d of GEmblem encoding"
 msgstr "Impossible de gerir la version %d de l'encodatge GEmblem"
 
-#: gio/gemblem.c:333
-#, c-format
+#: ../gio/gemblem.c:333
 msgid "Malformed number of tokens (%d) in GEmblem encoding"
-msgstr "Nombre de getons incorrècte (%d) dins l'encodatge GEmblem"
+msgstr "Nombre de getons incorrècte (%d) dins lencodatge GEmblem"
 
-#: gio/gemblemedicon.c:362
-#, c-format, c-format
-#| msgid "Can't handle version %d of GEmblemedIcon encoding"
-msgid "Can’t handle version %d of GEmblemedIcon encoding"
+#: ../gio/gemblemedicon.c:362
+msgid "Can't handle version %d of GEmblemedIcon encoding"
 msgstr "Impossible de gerir la version %d de l'encodatge GEmblemedIcon"
 
-#: gio/gemblemedicon.c:372
-#, c-format
+#: ../gio/gemblemedicon.c:372
 msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
-msgstr "Nombre de getons incorrècte (%d) dins l'encodatge GEmblemedIcon"
+msgstr "Nombre de getons incorrècte (%d) dins lencodatge GEmblemedIcon"
 
-#: gio/gemblemedicon.c:395
+#: ../gio/gemblemedicon.c:395
 msgid "Expected a GEmblem for GEmblemedIcon"
 msgstr "Un GEmblem es esperat pel GEmblemedIcon"
 
-#: 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:3738 gio/gfile.c:3793
-#: gio/gfile.c:4029 gio/gfile.c:4071 gio/gfile.c:4539 gio/gfile.c:4950
-#: gio/gfile.c:5035 gio/gfile.c:5125 gio/gfile.c:5222 gio/gfile.c:5309
-#: gio/gfile.c:5410 gio/gfile.c:7988 gio/gfile.c:8078 gio/gfile.c:8162
-#: gio/win32/gwinhttpfile.c:437
+#: ../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:3604 ../gio/gfile.c:3659
+#: ../gio/gfile.c:3895 ../gio/gfile.c:3937 ../gio/gfile.c:4405
+#: ../gio/gfile.c:4816 ../gio/gfile.c:4901 ../gio/gfile.c:4991
+#: ../gio/gfile.c:5088 ../gio/gfile.c:5175 ../gio/gfile.c:5276
+#: ../gio/gfile.c:7817 ../gio/gfile.c:7907 ../gio/gfile.c:7991
+#: ../gio/win32/gwinhttpfile.c:437
 msgid "Operation not supported"
 msgstr "Operacion pas presa en carga"
 
@@ -1538,221 +1238,191 @@ msgstr "Operacion pas presa en carga"
 #. * trying to find the enclosing (user visible)
 #. * mount of a file, but none exists.
 #.
-#: gio/gfile.c:1575
+#: ../gio/gfile.c:1468
 msgid "Containing mount does not exist"
 msgstr "Lo punt de montatge contenidor existís pas"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2399
-#| msgid "Can't copy over directory"
-msgid "Can’t copy over directory"
-msgstr "Impossible d’espotir un repertòri"
+#: ../gio/gfile.c:2515 ../gio/glocalfile.c:2374
+msgid "Can't copy over directory"
+msgstr "Impossible d'espotir un repertòri"
 
-#: gio/gfile.c:2682
-#| msgid "Can't copy directory over directory"
-msgid "Can’t copy directory over directory"
-msgstr "Impossible d’espotir un repertòri per un autre repertòri"
+#: ../gio/gfile.c:2575
+msgid "Can't copy directory over directory"
+msgstr "Impossible d'espotir un repertòri per un autre repertòri"
 
-#: gio/gfile.c:2690
+#: ../gio/gfile.c:2583
 msgid "Target file exists"
 msgstr "Lo fichièr cibla existís"
 
-#: gio/gfile.c:2709
-#| msgid "Can't recursively copy directory"
-msgid "Can’t recursively copy directory"
-msgstr "Impossible de copiar recursivament un repertòri"
+#: ../gio/gfile.c:2602
+msgid "Can't recursively copy directory"
+msgstr "Impossible de copier recursivament un repertòri"
 
 # http://en.wikipedia.org/wiki/Splice_(system_call)
-#: gio/gfile.c:2984
+#: ../gio/gfile.c:2884
 msgid "Splice not supported"
 msgstr "L'operacion « splice » es pas presa en carga"
 
-#: gio/gfile.c:2988 gio/gfile.c:3033
-#, c-format
+#: ../gio/gfile.c:2888
 msgid "Error splicing file: %s"
 msgstr "Error al moment de l'operacion de « splicing » sul fichièr : %s"
 
-#: gio/gfile.c:3149
+#: ../gio/gfile.c:3019
 msgid "Copy (reflink/clone) between mounts is not supported"
 msgstr "La còpia (reflink/clone) entre punts de montatge es pas presa en carga"
 
-#: gio/gfile.c:3153
+#: ../gio/gfile.c:3023
 msgid "Copy (reflink/clone) is not supported or invalid"
 msgstr "La còpia (reflink/clone) es pas presa en carga o es pas valida"
 
-#: gio/gfile.c:3158
-#| msgid "Copy (reflink/clone) is not supported or didn't work"
-msgid "Copy (reflink/clone) is not supported or didn’t work"
-msgstr ""
-"La còpia (reflink/clone) es pas presa en carga o a pas foncionat"
+#: ../gio/gfile.c:3028
+msgid "Copy (reflink/clone) is not supported or didn't work"
+msgstr "La còpia (reflink/clone) es pas presa en carga o a pas foncionat"
 
-#: gio/gfile.c:3221
-#| msgid "Can't copy special file"
-msgid "Can’t copy special file"
+#: ../gio/gfile.c:3091
+msgid "Can't copy special file"
 msgstr "Impossible de copiar lo fichièr especial"
 
-#: gio/gfile.c:4019
+#: ../gio/gfile.c:3885
 msgid "Invalid symlink value given"
 msgstr "Valor de ligam simbolic donada invalida"
 
-#: gio/gfile.c:4180
+#: ../gio/gfile.c:4046
 msgid "Trash not supported"
 msgstr "L'escobilhièr es pas presa en carga"
 
-#: gio/gfile.c:4292
-#, c-format, c-format
-#| msgid "File names cannot contain '%c'"
-msgid "File names cannot contain “%c”"
+#: ../gio/gfile.c:4158
+msgid "File names cannot contain '%c'"
 msgstr "Los noms de fichièrs pòdon pas comportar de « %c »"
 
-#: gio/gfile.c:6773 gio/gvolume.c:364
-#| msgid "volume doesn't implement mount"
-msgid "volume doesn’t implement mount"
+#: ../gio/gfile.c:6604 ../gio/gvolume.c:363
+msgid "volume doesn't implement mount"
 msgstr "lo volum implementa pas lo montatge"
 
-#: gio/gfile.c:6882
+#: ../gio/gfile.c:6713
 msgid "No application is registered as handling this file"
 msgstr "Cap d'aplicacion es pas enregistrada per gerir aqueste fichièr"
 
-#: gio/gfileenumerator.c:212
+#: ../gio/gfileenumerator.c:212
 msgid "Enumerator is closed"
 msgstr "L'enumerador es tampat"
 
-#: gio/gfileenumerator.c:219 gio/gfileenumerator.c:278
-#: gio/gfileenumerator.c:377 gio/gfileenumerator.c:476
+#: ../gio/gfileenumerator.c:219 ../gio/gfileenumerator.c:278
+#: ../gio/gfileenumerator.c:377 ../gio/gfileenumerator.c:476
 msgid "File enumerator has outstanding operation"
 msgstr "L'enumerador de fichièrs es en cors d'operacion"
 
-#: gio/gfileenumerator.c:368 gio/gfileenumerator.c:467
+#: ../gio/gfileenumerator.c:368 ../gio/gfileenumerator.c:467
 msgid "File enumerator is already closed"
 msgstr "L'enumerador de fichièrs es ja tampat"
 
-#: gio/gfileicon.c:236
-#, c-format, c-format
-#| msgid "Can't handle version %d of GFileIcon encoding"
-msgid "Can’t handle version %d of GFileIcon encoding"
+#: ../gio/gfileicon.c:236
+msgid "Can't handle version %d of GFileIcon encoding"
 msgstr "Impossible de gerir la version %d de l'encodatge de GFileIcon"
 
-#: gio/gfileicon.c:246
+#: ../gio/gfileicon.c:246
 msgid "Malformed input data for GFileIcon"
 msgstr "Donadas d'entrada incorrèctas per 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"
-msgid "Stream doesn’t support query_info"
+#: ../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"
 msgstr "Lo flux pren pas en carga query_info"
 
-#: gio/gfileinputstream.c:325 gio/gfileiostream.c:379
-#: gio/gfileoutputstream.c:371
+#: ../gio/gfileinputstream.c:325 ../gio/gfileiostream.c:379
+#: ../gio/gfileoutputstream.c:371
 msgid "Seek not supported on stream"
 msgstr "Lo posicionament es pas pres en carga sul flux"
 
-#: gio/gfileinputstream.c:369
+#: ../gio/gfileinputstream.c:369
 msgid "Truncate not allowed on input stream"
 msgstr "La troncadura es pas autorizada sus un flux d'entrada"
 
-#: gio/gfileiostream.c:455 gio/gfileoutputstream.c:447
+#: ../gio/gfileiostream.c:455 ../gio/gfileoutputstream.c:447
 msgid "Truncate not supported on stream"
 msgstr "La troncadura es pas presa en carga sul flux"
 
-#: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
-msgid "Invalid hostname"
-msgstr "Nom d'òste invalid"
-
-#: gio/ghttpproxy.c:143
+#: ../gio/ghttpproxy.c:136
 msgid "Bad HTTP proxy reply"
 msgstr "Marrida responsa del mandatari HTTP"
 
-#: gio/ghttpproxy.c:159
+#: ../gio/ghttpproxy.c:152
 msgid "HTTP proxy connection not allowed"
 msgstr "Connexion al mandatari HTTP pas autorizada"
 
-#: gio/ghttpproxy.c:164
+#: ../gio/ghttpproxy.c:157
 msgid "HTTP proxy authentication failed"
-msgstr "L'autentificacion alprèp del mandatari HTTP a fracassat"
+msgstr "L'autentificacion auprès del mandatari HTTP a fracassat"
 
-#: gio/ghttpproxy.c:167
+#: ../gio/ghttpproxy.c:160
 msgid "HTTP proxy authentication required"
 msgstr "Autentificacion obligatòri pel mandatari HTTP"
 
-#: gio/ghttpproxy.c:171
-#, c-format
+#: ../gio/ghttpproxy.c:164
 msgid "HTTP proxy connection failed: %i"
 msgstr "La connexion al mandatari HTTP a fracassat : %i"
 
-#: gio/ghttpproxy.c:269
+#: ../gio/ghttpproxy.c:260
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "Lo servidor mandatari HTTP a acabat la connexion d'un biais imprevist."
 
-#: gio/gicon.c:290
-#, c-format
+#: ../gio/gicon.c:290
 msgid "Wrong number of tokens (%d)"
 msgstr "Nombre de getons incorrècte (%d)"
 
-#: gio/gicon.c:310
-#, c-format
+#: ../gio/gicon.c:310
 msgid "No type for class name %s"
 msgstr "Pas cap de tipe pel nom de classa %s"
 
-#: gio/gicon.c:320
-#, c-format
+#: ../gio/gicon.c:320
 msgid "Type %s does not implement the GIcon interface"
 msgstr "Lo tipe %s implementa pas l'interfàcia GIcon"
 
-#: gio/gicon.c:331
-#, c-format
+#: ../gio/gicon.c:331
 msgid "Type %s is not classed"
 msgstr "Lo tipe %s es pas classat"
 
-#: gio/gicon.c:345
-#, c-format
+#: ../gio/gicon.c:345
 msgid "Malformed version number: %s"
 msgstr "Numèro de version incorrècte : %s"
 
-#: gio/gicon.c:359
-#, c-format
+#: ../gio/gicon.c:359
 msgid "Type %s does not implement from_tokens() on the GIcon interface"
 msgstr ""
 "Lo tipe %s implementa pas la foncion from_tokens() de l'interfàcia GIcon"
 
-#: gio/gicon.c:461
-#| msgid "Can't handle the supplied version of the icon encoding"
-msgid "Can’t handle the supplied version of the icon encoding"
-msgstr "Impossible de gerir la version provesida de l'encodatge de l’icòna"
+#: ../gio/gicon.c:461
+msgid "Can't handle the supplied version of the icon encoding"
+msgstr "Impossible de gerir la version provesida de l'encodatge de l'icòna"
 
-#: gio/ginetaddressmask.c:182
+#: ../gio/ginetaddressmask.c:182
 msgid "No address specified"
 msgstr "Cap d'adreça pas indicada"
 
-#: gio/ginetaddressmask.c:190
-#, c-format
+#: ../gio/ginetaddressmask.c:190
 msgid "Length %u is too long for address"
 msgstr "La longor %u es tròp importanta per l'adreça"
 
-#: gio/ginetaddressmask.c:223
+#: ../gio/ginetaddressmask.c:223
 msgid "Address has bits set beyond prefix length"
 msgstr "L'adreça possedís de bits definits al delà de la longor del prefix"
 
-#: gio/ginetaddressmask.c:300
-#, c-format, c-format
-#| msgid "Could not parse '%s' as IP address mask"
-msgid "Could not parse “%s” as IP address mask"
-msgstr "Impossible d’analisar « %s » coma masqueta d’adreça IP"
+#: ../gio/ginetaddressmask.c:300
+msgid "Could not parse '%s' as IP address mask"
+msgstr "Impossible d'analisar « %s » coma masque d'adreça IP"
 
-#: gio/ginetsocketaddress.c:203 gio/ginetsocketaddress.c:220
-#: gio/gnativesocketaddress.c:109 gio/gunixsocketaddress.c:220
+#: ../gio/ginetsocketaddress.c:203 ../gio/ginetsocketaddress.c:220
+#: ../gio/gnativesocketaddress.c:106 ../gio/gunixsocketaddress.c:216
 msgid "Not enough space for socket address"
 msgstr "Espaci insufisent per una adreça de connector ret"
 
-#: gio/ginetsocketaddress.c:235
+#: ../gio/ginetsocketaddress.c:235
 msgid "Unsupported socket address"
 msgstr "Adreça de connector ret pas presa en carga"
 
-#: gio/ginputstream.c:188
-#| msgid "Input stream doesn't implement read"
-msgid "Input stream doesn’t implement read"
+#: ../gio/ginputstream.c:188
+msgid "Input stream doesn't implement read"
 msgstr "Lo flux en entrada implementa pas « read »"
 
 #. Translators: This is an error you get if there is already an
@@ -1761,124 +1431,120 @@ msgstr "Lo flux en entrada implementa 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:1218 gio/giostream.c:310 gio/goutputstream.c:1671
+#: ../gio/ginputstream.c:1218 ../gio/giostream.c:310 ../gio/goutputstream.c:1670
 msgid "Stream has outstanding operation"
 msgstr "Lo flux a una operacion en cors"
 
-#: gio/gio-tool.c:160
+#: ../gio/gio-tool.c:142
 msgid "Copy with file"
 msgstr "Copiar amb lo fichièr"
 
-#: gio/gio-tool.c:164
+#: ../gio/gio-tool.c:146
 msgid "Keep with file when moved"
 msgstr "Conservar amb lo fichièr al moment del desplaçament"
 
-#: gio/gio-tool.c:205
-#| msgid "'version' takes no arguments"
-msgid "“version” takes no arguments"
-msgstr "« version » accèpta pas cap de paramètre"
+#: ../gio/gio-tool.c:187
+msgid "'version' takes no arguments"
+msgstr "« %s » accèpta pas cap de paramètre"
 
-#: gio/gio-tool.c:207 gio/gio-tool.c:223 glib/goption.c:857
+#: ../gio/gio-tool.c:189 ../gio/gio-tool.c:205 ../glib/goption.c:857
 msgid "Usage:"
 msgstr "Utilizacion :"
 
-#: gio/gio-tool.c:210
+#: ../gio/gio-tool.c:192
 msgid "Print version information and exit."
 msgstr "Afichar las informacions de version e quitar."
 
-#: gio/gio-tool.c:226
+#: ../gio/gio-tool.c:208
 msgid "Commands:"
 msgstr "Comandas :"
 
-#: gio/gio-tool.c:229
+#: ../gio/gio-tool.c:211
 msgid "Concatenate files to standard output"
 msgstr "Concatenar los fichièrs cap a la sortida estandarda"
 
-#: gio/gio-tool.c:230
+#: ../gio/gio-tool.c:212
 msgid "Copy one or more files"
 msgstr "Copiar un o mantun fichièr"
 
-#: gio/gio-tool.c:231
+#: ../gio/gio-tool.c:213
 msgid "Show information about locations"
 msgstr "Afichar l'informacion sus las localizacions"
 
-#: gio/gio-tool.c:232
+#: ../gio/gio-tool.c:214
 msgid "List the contents of locations"
 msgstr "Enumerar lo contengut dels emplaçaments"
 
-#: gio/gio-tool.c:233
+#: ../gio/gio-tool.c:215
 msgid "Get or set the handler for a mimetype"
 msgstr "Obténer o definir lo gestionari d'un tipe MIME"
 
-#: gio/gio-tool.c:234
+#: ../gio/gio-tool.c:216
 msgid "Create directories"
 msgstr "Crear de repertòris"
 
-#: gio/gio-tool.c:235
+#: ../gio/gio-tool.c:217
 msgid "Monitor files and directories for changes"
 msgstr "Susvelhar las modificacions de fichièrs e de repertòris"
 
-#: gio/gio-tool.c:236
+#: ../gio/gio-tool.c:218
 msgid "Mount or unmount the locations"
 msgstr "Montar o desmontar los emplaçaments"
 
-#: gio/gio-tool.c:237
+#: ../gio/gio-tool.c:219
 msgid "Move one or more files"
 msgstr "Desplaçar un o mantun fichièr"
 
-#: gio/gio-tool.c:238
+#: ../gio/gio-tool.c:220
 msgid "Open files with the default application"
 msgstr "Dobrir de fichièrs amb l'aplicacion per defaut"
 
-#: gio/gio-tool.c:239
+#: ../gio/gio-tool.c:221
 msgid "Rename a file"
 msgstr "Renomenar un fichièr"
 
-#: gio/gio-tool.c:240
+#: ../gio/gio-tool.c:222
 msgid "Delete one or more files"
 msgstr "Suprimir un o mantun fichièr"
 
-#: gio/gio-tool.c:241
+#: ../gio/gio-tool.c:223
 msgid "Read from standard input and save"
 msgstr "Legir a partir de l'entrada estandard e enregistrar"
 
-#: gio/gio-tool.c:242
+#: ../gio/gio-tool.c:224
 msgid "Set a file attribute"
 msgstr "Definir un atribut de fichièr"
 
-#: gio/gio-tool.c:243
+#: ../gio/gio-tool.c:225
 msgid "Move files or directories to the trash"
 msgstr "Desplaçar de fichièrs o repertòris dins l'escobilhièr"
 
-#: gio/gio-tool.c:244
+#: ../gio/gio-tool.c:226
 msgid "Lists the contents of locations in a tree"
 msgstr "Enumerar lo contengut dels emplaçaments dins una arborescéncia"
 
-#: gio/gio-tool.c:246
+#: ../gio/gio-tool.c:228
 #, c-format
 msgid "Use %s to get detailed help.\n"
 msgstr "Utilizatz « %s » per obténer d'ajuda detalhada.\n"
 
-#: gio/gio-tool-cat.c:87
-#| msgid "Error writing to file: %s"
-msgid "Error writing to stdout"
-msgstr "Error al moment de l’escritura cap a 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:113
-#: 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
+#: ../gio/gio-tool-cat.c:124 ../gio/gio-tool-info.c:278
+#: ../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:202 ../gio/gio-tool-mount.c:1132
+#: ../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
 msgid "LOCATION"
 msgstr "LOCALIZACION"
 
-#: gio/gio-tool-cat.c:138
+#: ../gio/gio-tool-cat.c:129
 msgid "Concatenate files and print to standard output."
 msgstr "Concatenar de fichièrs e afichar cap a la sortida estandarda."
 
-#: gio/gio-tool-cat.c:140
+#: ../gio/gio-tool-cat.c:131
 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"
@@ -1888,56 +1554,55 @@ msgstr ""
 "utilizant d'emplaçaments GIO al luòc de fichièrs locals : per exemple,\n"
 "se pòt indicar un emplaçament coma smb://servidor/ressorsa/fichièr.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:139
-#: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
-msgid "No locations given"
-msgstr "Cap d'emplaçament pas indicat"
+#: ../gio/gio-tool-cat.c:151
+msgid "No files given"
+msgstr "Cap de fichièr pas indicat"
 
-#: gio/gio-tool-copy.c:42 gio/gio-tool-move.c:38
+#: ../gio/gio-tool-copy.c:42 ../gio/gio-tool-move.c:38
 msgid "No target directory"
 msgstr "Pas de repertòri cibla"
 
-#: gio/gio-tool-copy.c:43 gio/gio-tool-move.c:39
+#: ../gio/gio-tool-copy.c:43 ../gio/gio-tool-move.c:39
 msgid "Show progress"
 msgstr "Afichar la progression"
 
-#: gio/gio-tool-copy.c:44 gio/gio-tool-move.c:40
+#: ../gio/gio-tool-copy.c:44 ../gio/gio-tool-move.c:40
 msgid "Prompt before overwrite"
 msgstr "Demandar abans d'espotir"
 
-#: gio/gio-tool-copy.c:45
+#: ../gio/gio-tool-copy.c:45
 msgid "Preserve all attributes"
 msgstr "Preservar totes los atributs"
 
-#: gio/gio-tool-copy.c:46 gio/gio-tool-move.c:41 gio/gio-tool-save.c:49
+#: ../gio/gio-tool-copy.c:46 ../gio/gio-tool-move.c:41 ../gio/gio-tool-save.c:49
 msgid "Backup existing destination files"
 msgstr "Crear un salvament dels fichièrs de destinacion existents"
 
-#: gio/gio-tool-copy.c:47
+#: ../gio/gio-tool-copy.c:47
 msgid "Never follow symbolic links"
 msgstr "Seguir pas jamai los ligams simbolics"
 
-#: gio/gio-tool-copy.c:72 gio/gio-tool-move.c:67
+#: ../gio/gio-tool-copy.c:72 ../gio/gio-tool-move.c:67
 #, c-format
 msgid "Transferred %s out of %s (%s/s)"
 msgstr "%s sus %s transferits (%s/s)"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-copy.c:98 gio/gio-tool-move.c:94
+#: ../gio/gio-tool-copy.c:98 ../gio/gio-tool-move.c:94
 msgid "SOURCE"
 msgstr "FONT"
 
 #. 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:98 ../gio/gio-tool-move.c:94
+#: ../gio/gio-tool-save.c:165
 msgid "DESTINATION"
 msgstr "DESTINACION"
 
-#: gio/gio-tool-copy.c:103
+#: ../gio/gio-tool-copy.c:103
 msgid "Copy one or more files from SOURCE to DESTINATION."
 msgstr "Copiar un o mantun fichièr de FONT cap a DESTINACION."
 
-#: gio/gio-tool-copy.c:105
+#: ../gio/gio-tool-copy.c:105
 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"
@@ -1947,127 +1612,133 @@ msgstr ""
 "utilizant d'emplaçaments GIO al luòc de fichièrs locals : per exemple,\n"
 "se pòt indicar un emplaçament coma smb://servidor/ressorsa/fichièr.txt."
 
-#: gio/gio-tool-copy.c:147
+#: ../gio/gio-tool-copy.c:143
 #, c-format
 msgid "Destination %s is not a directory"
 msgstr "La destinacion « %s » es pas un repertòri"
 
-#: gio/gio-tool-copy.c:192 gio/gio-tool-move.c:186
-#, c-format, c-format
-#| msgid "%s: overwrite '%s'? "
-msgid "%s: overwrite “%s”? "
+#: ../gio/gio-tool-copy.c:187 ../gio/gio-tool-move.c:181
+#, c-format
+msgid "%s: overwrite '%s'? "
 msgstr "%s : espotir « %s » ? "
 
-#: gio/gio-tool-info.c:34
+#: ../gio/gio-tool-info.c:34
 msgid "List writable attributes"
 msgstr "Afichar los atributs en escritura"
 
-#: gio/gio-tool-info.c:35
+#: ../gio/gio-tool-info.c:35
 msgid "Get file system info"
 msgstr "Obténer las informacions del sistèma de fichièrs"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "The attributes to get"
 msgstr "Los atributs d'obténer"
 
-#: gio/gio-tool-info.c:36 gio/gio-tool-list.c:35
+#: ../gio/gio-tool-info.c:36 ../gio/gio-tool-list.c:35
 msgid "ATTRIBUTES"
 msgstr "ATRIBUTS"
 
-#: gio/gio-tool-info.c:37 gio/gio-tool-list.c:38 gio/gio-tool-set.c:34
-#| msgid "Don't follow symbolic links"
-msgid "Don’t follow symbolic links"
+#: ../gio/gio-tool-info.c:37 ../gio/gio-tool-list.c:38 ../gio/gio-tool-set.c:34
+msgid "Don't follow symbolic links"
 msgstr "Seguir pas los ligams simbolics"
 
-#: gio/gio-tool-info.c:75
+#: ../gio/gio-tool-info.c:75
+#, c-format
 msgid "attributes:\n"
 msgstr "atributs :\n"
 
 #. Translators: This is a noun and represents and attribute of a file
-#: gio/gio-tool-info.c:127
+#: ../gio/gio-tool-info.c:127
 #, c-format
 msgid "display name: %s\n"
 msgstr "nom d'afichatge : %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:132
 #, c-format
 msgid "edit name: %s\n"
 msgstr "nom d'edicion : %s\n"
 
-#: gio/gio-tool-info.c:138
+#: ../gio/gio-tool-info.c:138
 #, c-format
 msgid "name: %s\n"
 msgstr "nom : %s\n"
 
-#: gio/gio-tool-info.c:145
+#: ../gio/gio-tool-info.c:145
 #, c-format
 msgid "type: %s\n"
 msgstr "tipe : %s\n"
 
-#: gio/gio-tool-info.c:151
+#: ../gio/gio-tool-info.c:151
+#, c-format
 msgid "size: "
 msgstr "talha : "
 
-#: gio/gio-tool-info.c:156
+#: ../gio/gio-tool-info.c:156
+#, c-format
 msgid "hidden\n"
 msgstr "amagat\n"
 
-#: gio/gio-tool-info.c:159
+#: ../gio/gio-tool-info.c:159
 #, c-format
 msgid "uri: %s\n"
 msgstr "uri : %s\n"
 
-#: gio/gio-tool-info.c:228
+#: ../gio/gio-tool-info.c:221
+#, c-format
+msgid "Error getting writable attributes: %s\n"
+msgstr "Error al moment de l'obtencion dels atributs en escritura : %s\n"
+
+#: ../gio/gio-tool-info.c:226
+#, c-format
 msgid "Settable attributes:\n"
 msgstr "Atributs que pòdon èsser definits :\n"
 
-#: gio/gio-tool-info.c:252
+#: ../gio/gio-tool-info.c:249
+#, c-format
 msgid "Writable attribute namespaces:\n"
 msgstr "Espacis de noms dels atributs en escritura :\n"
 
-#: gio/gio-tool-info.c:287
+#: ../gio/gio-tool-info.c:283
 msgid "Show information about locations."
 msgstr "Afichar d'informacions a prepaus dels emplaçaments."
 
-#: gio/gio-tool-info.c:289
-#| 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"
+#: ../gio/gio-tool-info.c:285
 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"
+"namespace, e.g. unix, or by '*', which matches all attributes"
 msgstr ""
-"gio info fonciona coma lutilitari tradicional ls, mas en\n"
+"gio info fonciona coma l'utilitari tradicional ls, mas en\n"
 "utilizant d'emplaçaments GIO al luòc de fichièrs locals : per exemple,\n"
 "se pòt indicar un emplaçament coma smb://servidor/ressorsa/fichièr.txt.\n"
 "Los atributs de fichièrs pòdon èsser indicats per lor nom GIO (exemple :\n"
 "standard::icon), per lor espaci de nom (exemple : unix) o per « * » qui\n"
 "correspond a totes los atributs"
 
-#: gio/gio-tool-list.c:36 gio/gio-tool-tree.c:32
+#: ../gio/gio-tool-info.c:307 ../gio/gio-tool-mkdir.c:74
+msgid "No locations given"
+msgstr "Cap d'emplaçament pas indicat"
+
+#: ../gio/gio-tool-list.c:36 ../gio/gio-tool-tree.c:32
 msgid "Show hidden files"
 msgstr "Afichar los fichièrs amagats"
 
-#: gio/gio-tool-list.c:37
+#: ../gio/gio-tool-list.c:37
 msgid "Use a long listing format"
 msgstr "Utilizar una mesa en forma de lista espandida"
 
-#: gio/gio-tool-list.c:39
+#: ../gio/gio-tool-list.c:39
 msgid "Print full URIs"
 msgstr "Afichar los URI complets"
 
-#: gio/gio-tool-list.c:170
+#: ../gio/gio-tool-list.c:170
 msgid "List the contents of the locations."
 msgstr "Enumerar lo contengut dels emplaçaments."
 
-#: gio/gio-tool-list.c:172
+#: ../gio/gio-tool-list.c:172
 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"
@@ -2081,19 +1752,19 @@ msgstr ""
 "standard::icon)"
 
 #. Translators: commandline placeholder
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "MIMETYPE"
 msgstr "TIPE_MIME"
 
-#: gio/gio-tool-mime.c:71
+#: ../gio/gio-tool-mime.c:71
 msgid "HANDLER"
 msgstr "GESTIONARI"
 
-#: gio/gio-tool-mime.c:76
+#: ../gio/gio-tool-mime.c:76
 msgid "Get or set the handler for a mimetype."
 msgstr "Obten o definís lo gestionari d'un tipe MIME."
 
-#: gio/gio-tool-mime.c:78
+#: ../gio/gio-tool-mime.c:78
 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"
@@ -2101,63 +1772,63 @@ msgid ""
 msgstr ""
 "Se cap de gestionari es pas indicat, enumèra las aplicacions inscritas\n"
 "e recomandadas pel tipe MIME. Se un gestionari es indicat, il est\n"
-"definit coma gestionari per defaut pel tipe MIME."
+"défini coma gestionari per defaut pel tipe MIME."
 
-#: gio/gio-tool-mime.c:100
+#: ../gio/gio-tool-mime.c:98
 msgid "Must specify a single mimetype, and maybe a handler"
 msgstr "Un seul tipe MIME deu èsser indicat, e potencialament un gestionari"
 
-#: gio/gio-tool-mime.c:116
-#, c-format, c-format
-#| msgid "No default applications for '%s'\n"
-msgid "No default applications for “%s”\n"
-msgstr "Pas cap d'aplicacion per defaut per « %s »\n"
+#: ../gio/gio-tool-mime.c:113
+#, c-format
+msgid "No default applications for '%s'\n"
+msgstr "Pas d'aplicacions per defaut per « %s »\n"
 
-#: gio/gio-tool-mime.c:122
-#, c-format, c-format
-#| msgid "Default application for '%s': %s\n"
-msgid "Default application for “%s”: %s\n"
+#: ../gio/gio-tool-mime.c:119
+#, c-format
+msgid "Default application for '%s': %s\n"
 msgstr "Aplicacion per defaut per « %s » : %s\n"
 
-#: gio/gio-tool-mime.c:127
+#: ../gio/gio-tool-mime.c:124
+#, c-format
 msgid "Registered applications:\n"
 msgstr "Aplicacions enregistradas :\n"
 
-#: gio/gio-tool-mime.c:129
+#: ../gio/gio-tool-mime.c:126
+#, c-format
 msgid "No registered applications\n"
 msgstr "Pas d'aplicacions enregistradas\n"
 
-#: gio/gio-tool-mime.c:140
+#: ../gio/gio-tool-mime.c:137
+#, c-format
 msgid "Recommended applications:\n"
 msgstr "Aplicacions recomandadas :\n"
 
-#: gio/gio-tool-mime.c:142
+#: ../gio/gio-tool-mime.c:139
+#, c-format
 msgid "No recommended applications\n"
 msgstr "Pas d'aplicacions recomandadas :\n"
 
-#: gio/gio-tool-mime.c:162
-#, c-format, c-format
-#| msgid "Failed to load info for handler '%s'\n"
-msgid "Failed to load info for handler “%s”"
-msgstr "Lo cargament de las informacions del gestionari « %s » a fracassat"
+#: ../gio/gio-tool-mime.c:159
+#, c-format
+msgid "Failed to load info for handler '%s'\n"
+msgstr "Lo cargament de las informacions del gestionari « %s » a fracassat\n"
 
-#: gio/gio-tool-mime.c:168
-#, c-format, c-format
-#| msgid "Failed to set '%s' as the default handler for '%s': %s\n"
-msgid "Failed to set “%s” as the default handler for “%s”: %s\n"
+#: ../gio/gio-tool-mime.c:165
+#, c-format
+msgid "Failed to set '%s' as the default handler for '%s': %s\n"
 msgstr ""
 "La definicion de « %s » coma gestionari per defaut per « %s » a fracassat : "
 "%s\n"
 
-#: gio/gio-tool-mkdir.c:31
+#: ../gio/gio-tool-mkdir.c:31
 msgid "Create parent directories"
 msgstr "Crear de repertòris parents"
 
-#: gio/gio-tool-mkdir.c:52
+#: ../gio/gio-tool-mkdir.c:52
 msgid "Create directories."
 msgstr "Crear de repertòris."
 
-#: gio/gio-tool-mkdir.c:54
+#: ../gio/gio-tool-mkdir.c:54
 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"
@@ -2167,146 +1838,141 @@ msgstr ""
 "utilizant d'emplaçaments GIO al luòc de fichièrs locals : per exemple,\n"
 "se pòt indicar un emplaçament coma smb://servidor/ressorsa/repertòri."
 
-#: gio/gio-tool-monitor.c:37
+#: ../gio/gio-tool-monitor.c:37
 msgid "Monitor a directory (default: depends on type)"
 msgstr "Susvelha un repertòri (per defaut : en foncion del tipe)"
 
-#: gio/gio-tool-monitor.c:39
+#: ../gio/gio-tool-monitor.c:39
 msgid "Monitor a file (default: depends on type)"
 msgstr "Susvelha un fichièr (per defaut : en foncion del tipe)"
 
-#: gio/gio-tool-monitor.c:41
+#: ../gio/gio-tool-monitor.c:41
 msgid "Monitor a file directly (notices changes made via hardlinks)"
 msgstr ""
 "Susvelha un fichièr dirèctament (detècta las modificacions per ligams durs)"
 
-#: gio/gio-tool-monitor.c:43
-#| msgid "Monitors a file directly, but doesn't report changes"
-msgid "Monitors a file directly, but doesn’t report changes"
+#: ../gio/gio-tool-monitor.c:43
+msgid "Monitors a file directly, but doesn't report changes"
 msgstr "Susvelha un fichièr dirèctament, mas senhala pas las modificacions"
 
-#: gio/gio-tool-monitor.c:45
+#: ../gio/gio-tool-monitor.c:45
 msgid "Report moves and renames as simple deleted/created events"
 msgstr ""
 "Senhala los desplaçaments e los renomenatges coma simples eveniments "
 "supression/creacion"
 
-#: gio/gio-tool-monitor.c:47
+#: ../gio/gio-tool-monitor.c:47
 msgid "Watch for mount events"
 msgstr "Susvelha los eveniments de montatge"
 
-#: gio/gio-tool-monitor.c:208
+#: ../gio/gio-tool-monitor.c:207
 msgid "Monitor files or directories for changes."
 msgstr "Susvelha las modificacions de fichièrs o de repertòris."
 
-#: gio/gio-tool-mount.c:63
+#: ../gio/gio-tool-mount.c:58
 msgid "Mount as mountable"
 msgstr "Montar coma montable"
 
-#: gio/gio-tool-mount.c:64
+#: ../gio/gio-tool-mount.c:59
 msgid "Mount volume with device file"
 msgstr "Montar lo volum amb un fichièr de periferic"
 
-#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+#: ../gio/gio-tool-mount.c:59
 msgid "DEVICE"
 msgstr "PERIFERIC"
 
-#: gio/gio-tool-mount.c:65
+#: ../gio/gio-tool-mount.c:60
 msgid "Unmount"
 msgstr "Desmontar"
 
-#: gio/gio-tool-mount.c:66
+#: ../gio/gio-tool-mount.c:61
 msgid "Eject"
 msgstr "Ejectar"
 
-#: gio/gio-tool-mount.c:67
-#| msgid "Mount volume with device file"
-msgid "Stop drive with device file"
-msgstr "Arrestar lo disc segon lo fichièr de periferic"
-
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:62
 msgid "Unmount all mounts with the given scheme"
 msgstr "Desmontar totes los montatges del protocòl donat"
 
-#: gio/gio-tool-mount.c:68
+#: ../gio/gio-tool-mount.c:62
 msgid "SCHEME"
 msgstr "PROTOCÒL"
 
-#: gio/gio-tool-mount.c:69
+#: ../gio/gio-tool-mount.c:63
 msgid "Ignore outstanding file operations when unmounting or ejecting"
 msgstr ""
 "Ignorar las operacions de fichièr en cors al moment del desmontatge o de "
 "l'ejeccion"
 
-#: gio/gio-tool-mount.c:70
+#: ../gio/gio-tool-mount.c:64
 msgid "Use an anonymous user when authenticating"
 msgstr "Utilizar un utilizaire anonim al moment de l'authentification"
 
 #. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: ../gio/gio-tool-mount.c:66
 msgid "List"
 msgstr "Enumerar"
 
-#: gio/gio-tool-mount.c:73
+#: ../gio/gio-tool-mount.c:67
 msgid "Monitor events"
 msgstr "Susvelhar los eveniments"
 
-#: gio/gio-tool-mount.c:74
+#: ../gio/gio-tool-mount.c:68
 msgid "Show extra information"
 msgstr "Aficha las opcions de l'ajuda"
 
-#: gio/gio-tool-mount.c:75
-msgid "The numeric PIM when unlocking a VeraCrypt volume"
-msgstr "PIM numeric al moment del desverrolhatge del volum VeraCrypt"
+#: ../gio/gio-tool-mount.c:246 ../gio/gio-tool-mount.c:276
+#, c-format
+msgid "Error mounting location: Anonymous access denied\n"
+msgstr "Error de montatge d'emplaçament : accès anonim refusat\n"
 
-#: gio/gio-tool-mount.c:75
-#| msgctxt "GDateTime"
-#| msgid "PM"
-msgid "PIM"
-msgstr "PIM"
+#: ../gio/gio-tool-mount.c:248 ../gio/gio-tool-mount.c:278
+#, c-format
+msgid "Error mounting location: %s\n"
+msgstr "Error de montatge d'emplaçament : %s\n"
 
-#: gio/gio-tool-mount.c:76
-msgid "Mount a TCRYPT hidden volume"
-msgstr "Montar un volum amagat TCRYPT"
+#: ../gio/gio-tool-mount.c:341
+#, c-format
+msgid "Error unmounting mount: %s\n"
+msgstr "Error de desmontatge : %s\n"
 
-#: gio/gio-tool-mount.c:77
-msgid "Mount a TCRYPT system volume"
-msgstr "Montar un volum sistèma TCRYPT"
+#: ../gio/gio-tool-mount.c:366 ../gio/gio-tool-mount.c:419
+#, c-format
+msgid "Error finding enclosing mount: %s\n"
+msgstr "Error de descoberta del montatge de basa : %s\n"
 
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
-#| msgid "Error mounting location: Anonymous access denied\n"
-msgid "Anonymous access denied"
-msgstr "Accès anonim refusat"
+#: ../gio/gio-tool-mount.c:394
+#, c-format
+msgid "Error ejecting mount: %s\n"
+msgstr "Error d'ejeccion del montatge : %s\n"
 
-#: gio/gio-tool-mount.c:522
-#| msgid "No volume for device file %s\n"
-msgid "No drive for device file"
-msgstr "Pas cap de disc correspondent al fichièr de periferic"
+#: ../gio/gio-tool-mount.c:875
+#, c-format
+msgid "Error mounting %s: %s\n"
+msgstr "Error de montatge de %s : %s\n"
 
-#: gio/gio-tool-mount.c:975
+#: ../gio/gio-tool-mount.c:891
 #, c-format
 msgid "Mounted %s at %s\n"
 msgstr "%s es estat montat sus %s\n"
 
-#: gio/gio-tool-mount.c:1027
-#| msgid "No volume for device file %s\n"
-msgid "No volume for device file"
-msgstr "Pas cap de volum pel fichièr de periferic"
+#: ../gio/gio-tool-mount.c:941
+#, c-format
+msgid "No volume for device file %s\n"
+msgstr "Pas cap de volum pel fichièr de periferic %s\n"
 
-#: gio/gio-tool-mount.c:1216
+#: ../gio/gio-tool-mount.c:1136
 msgid "Mount or unmount the locations."
 msgstr "Montar o desmontar los emplaçaments."
 
-#: gio/gio-tool-move.c:42
-#| msgid "Don't use copy and delete fallback"
-msgid "Don’t use copy and delete fallback"
+#: ../gio/gio-tool-move.c:42
+msgid "Don't use copy and delete fallback"
 msgstr "Utilizar pas la còpia o la supression de replec"
 
-#: gio/gio-tool-move.c:99
+#: ../gio/gio-tool-move.c:99
 msgid "Move one or more files from SOURCE to DEST."
 msgstr "Desplaçar un o mantun fichièr de FONT cap a DEST."
 
-#: gio/gio-tool-move.c:101
+#: ../gio/gio-tool-move.c:101
 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"
@@ -2316,12 +1982,12 @@ msgstr ""
 "utilizant d'emplaçaments GIO al luòc de fichièrs locals : per exemple,\n"
 "se pòt indicar un emplaçament coma smb://servidor/ressorsa/fichièr.txt"
 
-#: gio/gio-tool-move.c:143
+#: ../gio/gio-tool-move.c:139
 #, c-format
 msgid "Target %s is not a directory"
 msgstr "La cibla %s es pas un repertòri"
 
-#: gio/gio-tool-open.c:118
+#: ../gio/gio-tool-open.c:50
 msgid ""
 "Open files with the default application that\n"
 "is registered to handle files of this type."
@@ -2329,270 +1995,242 @@ msgstr ""
 "Dobrir los fichièrs amb l'aplicacion per defaut\n"
 "inscrita per gerir los fichièrs d'aqueste tipe."
 
-#: gio/gio-tool-remove.c:31 gio/gio-tool-trash.c:31
+#: ../gio/gio-tool-open.c:69
+msgid "No files to open"
+msgstr "Pas cap de fichièr de dobrir"
+
+#: ../gio/gio-tool-remove.c:31 ../gio/gio-tool-trash.c:31
 msgid "Ignore nonexistent files, never prompt"
 msgstr "Ignorar los fichièrs non existents, demandar pas jamai"
 
-#: gio/gio-tool-remove.c:52
+#: ../gio/gio-tool-remove.c:52
 msgid "Delete the given files."
 msgstr "Suprimir los fichièrs indicats."
 
-#: gio/gio-tool-rename.c:45
+#: ../gio/gio-tool-remove.c:70
+msgid "No files to delete"
+msgstr "Pas cap de fichièr de suprimir"
+
+#: ../gio/gio-tool-rename.c:45
 msgid "NAME"
 msgstr "NOM"
 
-#: gio/gio-tool-rename.c:50
+#: ../gio/gio-tool-rename.c:50
 msgid "Rename a file."
 msgstr "Renomenar un fichièr."
 
-#: gio/gio-tool-rename.c:70
+#: ../gio/gio-tool-rename.c:68
 msgid "Missing argument"
 msgstr "Argument mancant"
 
-#: gio/gio-tool-rename.c:76 gio/gio-tool-save.c:190 gio/gio-tool-set.c:137
+#: ../gio/gio-tool-rename.c:73 ../gio/gio-tool-save.c:192
+#: ../gio/gio-tool-set.c:134
 msgid "Too many arguments"
 msgstr "Tròp d'arguments"
 
-#: gio/gio-tool-rename.c:95
+#: ../gio/gio-tool-rename.c:91
 #, c-format
 msgid "Rename successful. New uri: %s\n"
 msgstr "Lo renomenatge a capitat. Novèl uri : %s\n"
 
-#: gio/gio-tool-save.c:50
+#: ../gio/gio-tool-save.c:50
 msgid "Only create if not existing"
 msgstr "Crear solament se existís pas"
 
-#: gio/gio-tool-save.c:51
+#: ../gio/gio-tool-save.c:51
 msgid "Append to end of file"
 msgstr "Apondre a la fin del fichièr"
 
-#: gio/gio-tool-save.c:52
+#: ../gio/gio-tool-save.c:52
 msgid "When creating, restrict access to the current user"
 msgstr "Al moment de la creacion, limitar l'accès a l'utilizaire actual"
 
-#: gio/gio-tool-save.c:53
+#: ../gio/gio-tool-save.c:53
 msgid "When replacing, replace as if the destination did not exist"
 msgstr ""
 "Al moment d'un remplaçament, remplaçar coma se la destinacion existissiá pas"
 
 #. 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:55
 msgid "Print new etag at end"
 msgstr "Afichar lo novèl etag a la fin"
 
 #. 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:57
 msgid "The etag of the file being overwritten"
 msgstr "L'etag del fichièr en cors d'espotiment"
 
-#: gio/gio-tool-save.c:57
+#: ../gio/gio-tool-save.c:57
 msgid "ETAG"
 msgstr "ETAG"
 
-#: gio/gio-tool-save.c:113
-#| msgid "Error reading from handle: %s"
-msgid "Error reading from standard input"
-msgstr "Error de lectura a partir de l’entrada estandarda"
-
 #. 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:145
+#, c-format
 msgid "Etag not available\n"
 msgstr "Etag pas disponible\n"
 
-#: gio/gio-tool-save.c:163
+#: ../gio/gio-tool-save.c:168
 msgid "Read from standard input and save to DEST."
 msgstr "Legir a partir de l'entrada estandard e enregistrar cap a DEST."
 
-#: gio/gio-tool-save.c:183
+#: ../gio/gio-tool-save.c:186
 msgid "No destination given"
 msgstr "Cap de destinacion pas indicada"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "Type of the attribute"
 msgstr "Tipe de l'atribut"
 
-#: gio/gio-tool-set.c:33
+#: ../gio/gio-tool-set.c:33
 msgid "TYPE"
 msgstr "TIPE"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "ATTRIBUTE"
 msgstr "ATRIBUT"
 
-#: gio/gio-tool-set.c:89
+#: ../gio/gio-tool-set.c:89
 msgid "VALUE"
 msgstr "VALOR"
 
-#: gio/gio-tool-set.c:93
+#: ../gio/gio-tool-set.c:93
 msgid "Set a file attribute of LOCATION."
 msgstr "Definir un atribut de fichièr de l'EMPLAÇAMENT."
 
-#: gio/gio-tool-set.c:113
+#: ../gio/gio-tool-set.c:111
 msgid "Location not specified"
 msgstr "Localizacion pas especificada"
 
-#: gio/gio-tool-set.c:120
+#: ../gio/gio-tool-set.c:119
 msgid "Attribute not specified"
 msgstr "Atribut pas especificat"
 
-#: gio/gio-tool-set.c:130
+#: ../gio/gio-tool-set.c:128
 msgid "Value not specified"
 msgstr "Valor pas especificada"
 
-#: gio/gio-tool-set.c:180
-#, c-format, c-format
-#| msgid "Invalid attribute type %s\n"
-msgid "Invalid attribute type “%s”"
-msgstr "Tipe d’atribut « %s » invalid"
+#: ../gio/gio-tool-set.c:176
+#, c-format
+msgid "Invalid attribute type %s\n"
+msgstr "Tipe d'atribut %s invalid\n"
+
+#: ../gio/gio-tool-set.c:189
+#, c-format
+msgid "Error setting attribute: %s\n"
+msgstr "Error al moment de la definicion de l'atribut : %s\n"
 
-#: gio/gio-tool-trash.c:32
+#: ../gio/gio-tool-trash.c:32
 msgid "Empty the trash"
 msgstr "Voidar l'escobilhièr"
 
-#: gio/gio-tool-trash.c:86
+#: ../gio/gio-tool-trash.c:86
 msgid "Move files or directories to the trash."
 msgstr "Desplaçar de fichièrs o de repertòris cap a l'escobilhièr."
 
-#: gio/gio-tool-tree.c:33
+#: ../gio/gio-tool-tree.c:33
 msgid "Follow symbolic links, mounts and shortcuts"
 msgstr "Seguir los ligams simbolics, los montatges e los acorchis"
 
-#: gio/gio-tool-tree.c:244
+#: ../gio/gio-tool-tree.c:244
 msgid "List contents of directories in a tree-like format."
 msgstr ""
 "Afichar la lista del contengut de repertòris dins un format arborescent."
 
-#: gio/glib-compile-resources.c:143 gio/glib-compile-schemas.c:1515
-#, c-format
+#: ../gio/glib-compile-resources.c:142 ../gio/glib-compile-schemas.c:1491
 msgid "Element <%s> not allowed inside <%s>"
 msgstr "Element <%s> interdit dins <%s>"
 
-#: gio/glib-compile-resources.c:147
-#, c-format
+#: ../gio/glib-compile-resources.c:146
 msgid "Element <%s> not allowed at toplevel"
 msgstr "Element <%s> interdit al primièr nivèl"
 
-#: gio/glib-compile-resources.c:237
-#, c-format
+#: ../gio/glib-compile-resources.c:237
 msgid "File %s appears multiple times in the resource"
 msgstr "Lo fichièr %s apareis mantun còp dins la ressorsa"
 
-#: gio/glib-compile-resources.c:248
-#, c-format, c-format
-#| msgid "Failed to locate '%s' in any source directory"
-msgid "Failed to locate “%s” in any source directory"
+#: ../gio/glib-compile-resources.c:248
+msgid "Failed to locate '%s' in any source directory"
 msgstr "La localizacion de « %s » dins totes los repertòris font a fracassat"
 
-#: gio/glib-compile-resources.c:259
-#, c-format, c-format
-#| msgid "Failed to locate '%s' in current directory"
-msgid "Failed to locate “%s” in current directory"
+#: ../gio/glib-compile-resources.c:259
+msgid "Failed to locate '%s' in current directory"
 msgstr "La localizacion de « %s » dins lo repertòri actual a fracassat"
 
-#: gio/glib-compile-resources.c:293
-#, c-format, c-format
-#| msgid "Unknown processing option \"%s\""
-msgid "Unknown processing option “%s”"
+#: ../gio/glib-compile-resources.c:290
+msgid "Unknown processing option \"%s\""
 msgstr "Opcion de tractament desconeguda « %s »"
 
-#. 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:313 gio/glib-compile-resources.c:370
-#: gio/glib-compile-resources.c:427
-#, c-format
-msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
-msgstr ""
-"Un pretractament %s es estat demandat, mas %s es pas definit e %s es pas "
-"dins lo camin PATH"
+#: ../gio/glib-compile-resources.c:308 ../gio/glib-compile-resources.c:354
+msgid "Failed to create temp file: %s"
+msgstr "La creacion del fichièr temporari a fracassat : %s"
 
-#: gio/glib-compile-resources.c:460
-#, c-format
+#: ../gio/glib-compile-resources.c:382
 msgid "Error reading file %s: %s"
 msgstr "Error de lectura del fichièr %s : %s"
 
-#: gio/glib-compile-resources.c:480
-#, c-format
+#: ../gio/glib-compile-resources.c:402
 msgid "Error compressing file %s"
 msgstr "Error a la compression del fichièr %s"
 
-#: gio/glib-compile-resources.c:541
-#, c-format
+#: ../gio/glib-compile-resources.c:469 ../gio/glib-compile-schemas.c:1603
 msgid "text may not appear inside <%s>"
 msgstr "<%s> pòt pas conténer de tèxte"
 
-#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2139
-msgid "Show program version and exit"
-msgstr "Aficha la version del programa e quita"
-
-#: gio/glib-compile-resources.c:737
-#| msgid "name of the output file"
-msgid "Name of the output file"
-msgstr "Nom del fichièr de sortida"
+#: ../gio/glib-compile-resources.c:620
+msgid "name of the output file"
+msgstr "nom del fichièr de sortida"
 
-#: gio/glib-compile-resources.c:738
-#| msgid ""
-#| "The directories where files are to be read from (default to current "
-#| "directory)"
+#: ../gio/glib-compile-resources.c:621
 msgid ""
-"The directories to load files referenced in FILE from (default: current "
-"directory)"
+"The directories where files are to be read from (default to current directory)"
 msgstr ""
-"Los repertòris a partir dels quals cal cargar los fichièrs referenciats dins "
-"FICHIÈR (per defaut lo repertòri actual)"
+"Los repertòris a partir dels quals los fichièrs seràn legits (per defaut lo "
+"repertòri actual)"
 
-#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2140
-#: gio/glib-compile-schemas.c:2169
+#: ../gio/glib-compile-resources.c:621 ../gio/glib-compile-schemas.c:2036
+#: ../gio/glib-compile-schemas.c:2065
 msgid "DIRECTORY"
 msgstr "REPERTÒRI"
 
-#: gio/glib-compile-resources.c:739
+#: ../gio/glib-compile-resources.c:622
 msgid ""
 "Generate output in the format selected for by the target filename extension"
 msgstr ""
 "Generar la sortida dins lo format seleccionat per l'extension del nom de "
 "fichièr cibla"
 
-#: gio/glib-compile-resources.c:740
+#: ../gio/glib-compile-resources.c:623
 msgid "Generate source header"
 msgstr "Generar l'entèsta de la font"
 
-#: gio/glib-compile-resources.c:741
-#| 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"
+#: ../gio/glib-compile-resources.c:624
+msgid "Generate sourcecode used to link in the resource file into your code"
 msgstr ""
-"Generar lo còdi font utilizat per ligar cap al fichièr ressorsa dins "
-"vòstre còdi"
+"Generar lo còdi font utilizat per ligar cap a lo fichièr ressorsa dins vòstre "
+"còdi"
 
-#: gio/glib-compile-resources.c:742
+#: ../gio/glib-compile-resources.c:625
 msgid "Generate dependency list"
 msgstr "Generar la lista de las dependéncias"
 
-#: gio/glib-compile-resources.c:743
-#| msgid "name of the dependency file to generate"
-msgid "Name of the dependency file to generate"
-msgstr "Nom del fichièr de dependéncias de generar"
+#: ../gio/glib-compile-resources.c:626
+msgid "name of the dependency file to generate"
+msgstr "nom del fichièr de las dependéncias de generar"
 
-#: gio/glib-compile-resources.c:744
-msgid "Include phony targets in the generated dependency file"
-msgstr "Inclure las ciblas « phony » dins lo fichièr de dependéncias generat"
-
-#: gio/glib-compile-resources.c:745
-#| msgid "Don't automatically create and register resource"
-msgid "Don’t automatically create and register resource"
+#: ../gio/glib-compile-resources.c:627
+msgid "Don't automatically create and register resource"
 msgstr "Crear pas e enregistrar automaticament la ressorsa"
 
-#: gio/glib-compile-resources.c:746
-#| msgid "Don't export functions; declare them G_GNUC_INTERNAL"
-msgid "Don’t export functions; declare them G_GNUC_INTERNAL"
+#: ../gio/glib-compile-resources.c:628
+msgid "Don't export functions; declare them G_GNUC_INTERNAL"
 msgstr "Exportar pas las foncions ; las declarar G_GNUC_INTERNAL"
 
-#: gio/glib-compile-resources.c:747
+#: ../gio/glib-compile-resources.c:629
 msgid "C identifier name used for the generated source code"
 msgstr "Nom d'identificant C utilizat pel còdi font generat"
 
-#: gio/glib-compile-resources.c:773
+#: ../gio/glib-compile-resources.c:655
 msgid ""
 "Compile a resource specification into a resource file.\n"
 "Resource specification files have the extension .gresource.xml,\n"
@@ -2603,487 +2241,216 @@ msgstr ""
 "xml\n"
 "e lo fichièr de ressorsa possedís l'extension .gresource."
 
-#: gio/glib-compile-resources.c:795
+#: ../gio/glib-compile-resources.c:671
 msgid "You should give exactly one file name\n"
 msgstr "Vos cal indicar un e un sol nom de fichièr\n"
 
-#: gio/glib-compile-schemas.c:95
-#, c-format
-msgid "nick must be a minimum of 2 characters"
-msgstr "l'escais deu conténer al minimum 2 caractèrs"
-
-#: gio/glib-compile-schemas.c:106
-#, c-format, c-format
-#| msgid "Invalid symlink value given"
-msgid "Invalid numeric value"
-msgstr "Valor numeric invalida"
-
-#: gio/glib-compile-schemas.c:114
-#, c-format, c-format
-#| msgid "<%s id='%s'> already specified"
-msgid "<value nick='%s'/> already specified"
-msgstr "<value nick='%s'> es ja definit"
-
-#: gio/glib-compile-schemas.c:122
-#, c-format, c-format
-#| msgid "<key name='%s'> already specified"
-msgid "value='%s' already specified"
-msgstr "value='%s' es ja estat definit"
-
-#: gio/glib-compile-schemas.c:136
-#, c-format
-msgid "flags values must have at most 1 bit set"
-msgstr "las valors de bandièras devon aver al mens un bit definit"
-
-#: gio/glib-compile-schemas.c:161
-#, c-format
-msgid "<%s> must contain at least one <value>"
-msgstr "<%s> deu conténer al mens una <value>"
-
-#: gio/glib-compile-schemas.c:317
-#, c-format, c-format
-#| msgid "No connection endpoint specified"
-msgid "<%s> is not contained in the specified range"
-msgstr "<%s> es pas contengut dins l’interval definit"
-
-#: gio/glib-compile-schemas.c:329
-#, c-format
-msgid "<%s> is not a valid member of the specified enumerated type"
-msgstr "<%s> es pas un membre valid del tipe enumerat definit"
-
-#: gio/glib-compile-schemas.c:335
-#, c-format
-msgid "<%s> contains string not in the specified flags type"
-msgstr "<%s> conten una cadena absenta del tipe bandièra definit"
-
-#: gio/glib-compile-schemas.c:341
-#, c-format
-msgid "<%s> contains a string not in <choices>"
-msgstr "<%s> conten una cadena absenta de <choices>"
-
-#: gio/glib-compile-schemas.c:375
-#| msgid "<key name='%s'> already specified"
-msgid "<range/> already specified for this key"
-msgstr "<range/> es ja estat definit per aquesta clau"
-
-#: gio/glib-compile-schemas.c:393
-#, c-format
-msgid "<range> not allowed for keys of type “%s”"
-msgstr "<range> pas autorizat per las claus de tipe « %s »"
-
-#: gio/glib-compile-schemas.c:410
-#, c-format
-msgid "<range> specified minimum is greater than maximum"
-msgstr "lo minimum de <range> es mai grand que son maximum"
-
-#: gio/glib-compile-schemas.c:435
-#, c-format
-msgid "unsupported l10n category: %s"
-msgstr "categoria l10n pas presa en carga : %s"
-
-#: gio/glib-compile-schemas.c:443
-msgid "l10n requested, but no gettext domain given"
-msgstr "l10n demandada, mas cap de domeni gettext pas indicat"
-
-#: gio/glib-compile-schemas.c:455
-msgid "translation context given for value without l10n enabled"
-msgstr "contèxte de traduccion donat per una valor sens activacion de l10n"
-
-#: gio/glib-compile-schemas.c:477
-#, c-format, c-format
-#| msgid "Failed to set '%s' as the default handler for '%s': %s\n"
-msgid "Failed to parse <default> value of type “%s”: "
-msgstr "L’analisi de la valor <default> de tipe « %s » a fracassat : "
-
-#: gio/glib-compile-schemas.c:494
-msgid ""
-"<choices> cannot be specified for keys tagged as having an enumerated type"
-msgstr ""
-"<choices> pòt pas èsser definit per de claus marcadas coma essent del tipe "
-"enumerat"
-
-#: gio/glib-compile-schemas.c:503
-#| msgid "<child name='%s'> already specified"
-msgid "<choices> already specified for this key"
-msgstr "<choices> es ja estat definit per aquesta clau"
-
-#: gio/glib-compile-schemas.c:515
-#, c-format
-msgid "<choices> not allowed for keys of type “%s”"
-msgstr "<choices> pas autorizats per de claus del tipe « %s »"
-
-#: gio/glib-compile-schemas.c:531
-#, c-format, c-format
-#| msgid "<child name='%s'> already specified"
-msgid "<choice value='%s'/> already given"
-msgstr "<choice value='%s'> es ja estat definit"
-
-#: gio/glib-compile-schemas.c:546
-#, c-format
-msgid "<choices> must contain at least one <choice>"
-msgstr "<choices> deu conténer al mens un <choice>"
-
-#: gio/glib-compile-schemas.c:560
-#| msgid "<child name='%s'> already specified"
-msgid "<aliases> already specified for this key"
-msgstr "<aliases> es ja estat definit per aquesta clau"
-
-#: gio/glib-compile-schemas.c:564
-msgid ""
-"<aliases> can only be specified for keys with enumerated or flags types or "
-"after <choices>"
-msgstr ""
-"<aliases> pòt pas èsser definit que per des claus de tipe enumerat o bandièra, "
-"o aprèp <choices>"
-
-#: 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'/> es estat donat mentre que « %s » es ja un membre del tipe "
-"enumerat"
-
-#: gio/glib-compile-schemas.c:589
-#, c-format
-msgid "<alias value='%s'/> given when <choice value='%s'/> was already given"
-msgstr ""
-"<alias value='%s'/> es estat donat mentre que <choice value='%s'/> es ja "
-"present"
-
-#: gio/glib-compile-schemas.c:597
-#, c-format, c-format
-#| msgid "<%s id='%s'> already specified"
-msgid "<alias value='%s'/> already specified"
-msgstr "<alias value='%s'/> es ja definit"
-
-#: gio/glib-compile-schemas.c:607
-#, c-format
-msgid "alias target “%s” is not in enumerated type"
-msgstr "la cibla d'aliàs « %s » es pas dins lo tipe enumerat"
+#: ../gio/glib-compile-schemas.c:784
+msgid "empty names are not permitted"
+msgstr "los noms voids son pas autorizats"
 
-#: gio/glib-compile-schemas.c:608
-#, c-format
-msgid "alias target “%s” is not in <choices>"
-msgstr "la cibla d'aliàs « %s » es pas dins <choices>"
+#: ../gio/glib-compile-schemas.c:794
+msgid "invalid name '%s': names must begin with a lowercase letter"
+msgstr "nom « %s » invalid : los noms devon començar per una letra minuscula"
 
-#: gio/glib-compile-schemas.c:623
-#, c-format
-msgid "<aliases> must contain at least one <alias>"
-msgstr "<aliases> deu conténer al mens un <alias>"
-
-#: gio/glib-compile-schemas.c:798
-#| msgid "empty names are not permitted"
-msgid "Empty names are not permitted"
-msgstr "Los noms voids son pas autorizats"
-
-#: gio/glib-compile-schemas.c:808
-#, c-format, 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 ""
-"Nom « %s » invalid : los noms devon començar per una letra minuscula"
-
-#: gio/glib-compile-schemas.c:820
-#, c-format, c-format
-#| msgid ""
-#| "invalid name '%s': invalid character '%c'; only lowercase letters, "
-#| "numbers and hyphen ('-') are permitted."
+#: ../gio/glib-compile-schemas.c:806
 msgid ""
-"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
-"and hyphen (“-”) are permitted"
+"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
+"and hyphen ('-') are permitted."
 msgstr ""
-"Nom « %s » invalid : caractèr « %c » invalid ; solas las minusculas, "
-"los nombres e lo jonhent (« - ») son autorizats"
+"nom « %s » invalid : caractèr « %c » invalid ; sols las minusculas, los "
+"nombres e lo jonhent (« - ») son autorizats."
 
-#: gio/glib-compile-schemas.c:829
-#, c-format, c-format
-#| msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
-msgid "Invalid name “%s”: two successive hyphens (“--”) are not permitted"
+#: ../gio/glib-compile-schemas.c:815
+msgid "invalid name '%s': two successive hyphens ('--') are not permitted."
 msgstr ""
-"Nom « %s » invalid : dos jonhents successius (« -- ») son pas autorizats"
+"nom « %s » invalid : dos jonhents successius (« -- ») son pas autorizats."
 
-#: gio/glib-compile-schemas.c:838
-#, c-format, 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 (“-”)"
+#: ../gio/glib-compile-schemas.c:824
+msgid "invalid name '%s': the last character may not be a hyphen ('-')."
 msgstr ""
-"Nom « %s » invalid : lo darrièr caractèr pòt pas èsser un jonhent (« - "
-"»)"
+"nom « %s » invalid : lo darrièr caractèr pòt pas èsser un jonhent (« - »)."
 
-#: gio/glib-compile-schemas.c:846
-#, c-format, c-format
-#| msgid "invalid name '%s': maximum length is 1024"
-msgid "Invalid name “%s”: maximum length is 1024"
-msgstr "Nom « %s » invalid : la longor maximala es 1024"
+#: ../gio/glib-compile-schemas.c:832
+msgid "invalid name '%s': maximum length is 1024"
+msgstr "nom « %s » invalid : la longor maximala es 1024"
 
-#: gio/glib-compile-schemas.c:918
-#, c-format
+#: ../gio/glib-compile-schemas.c:901
 msgid "<child name='%s'> already specified"
 msgstr "<child name='%s'> es ja estat definit"
 
-#: gio/glib-compile-schemas.c:944
-#| msgid "cannot add keys to a 'list-of' schema"
-msgid "Cannot add keys to a “list-of” schema"
-msgstr "Impossible d’apondre de claus a un esquèma « list-of »"
+#: ../gio/glib-compile-schemas.c:927
+msgid "cannot add keys to a 'list-of' schema"
+msgstr "impossible d'apondre de claus a un esquèma « list-of »"
 
-#: gio/glib-compile-schemas.c:955
-#, c-format
+#: ../gio/glib-compile-schemas.c:938
 msgid "<key name='%s'> already specified"
-msgstr "<key name='%s'> es ja estat definit"
+msgstr "<key name='%s'> a ja été definit"
 
-#: gio/glib-compile-schemas.c:973
-#, c-format
+#: ../gio/glib-compile-schemas.c:956
 msgid ""
 "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
 "to modify value"
 msgstr ""
-"<key name='%s'> amaga <key name='%s'> dins <schema id='%s'> ; utilizatz "
+"<key name='%s'> masque <key name='%s'> dins <schema id='%s'> ; utilizatz "
 "<override> per modificar la valor"
 
-#: gio/glib-compile-schemas.c:984
-#, c-format, c-format
-#| msgid ""
-#| "exactly one of 'type', 'enum' or 'flags' must be specified as an "
-#| "attribute to <key>"
+#: ../gio/glib-compile-schemas.c:967
 msgid ""
-"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
-"to <key>"
+"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to "
+"<key>"
 msgstr ""
-"<key> pòt pas recebre qu’un e un sol atribut demest « type », « enum » o "
-"« flags »"
+"<key> pòt pas recebre qu'un e un sol atribut demest « tipe », « enum » o « "
+"flags »"
 
-#: gio/glib-compile-schemas.c:1003
-#, c-format
+#: ../gio/glib-compile-schemas.c:986
 msgid "<%s id='%s'> not (yet) defined."
 msgstr "<%s id='%s'> pas (encara) definit."
 
-#: gio/glib-compile-schemas.c:1018
-#, c-format, c-format
-#| msgid "invalid GVariant type string '%s'"
-msgid "Invalid GVariant type string “%s”"
-msgstr "Cadena de tipe GVariant « %s » invalida"
+#: ../gio/glib-compile-schemas.c:1001
+msgid "invalid GVariant type string '%s'"
+msgstr "cadena de tipe GVariant « %s » invalida"
 
-#: gio/glib-compile-schemas.c:1048
-#| msgid "<override> given but schema isn't extending anything"
-msgid "<override> given but schema isn’t extending anything"
+#: ../gio/glib-compile-schemas.c:1031
+msgid "<override> given but schema isn't extending anything"
 msgstr "un <override> es donat mas son esquèma espandís pas res"
 
-#: gio/glib-compile-schemas.c:1061
-#, c-format, c-format
-#| msgid "no <key name='%s'> to override"
-msgid "No <key name='%s'> to override"
-msgstr "Pas cap de <key name='%s'> de redefinir"
+#: ../gio/glib-compile-schemas.c:1044
+msgid "no <key name='%s'> to override"
+msgstr "pas cap de <key name='%s'> de redefinir"
 
-#: gio/glib-compile-schemas.c:1069
-#, c-format
+#: ../gio/glib-compile-schemas.c:1052
 msgid "<override name='%s'> already specified"
 msgstr "<override name='%s'> ja definit"
 
-#: gio/glib-compile-schemas.c:1142
-#, c-format
+#: ../gio/glib-compile-schemas.c:1125
 msgid "<schema id='%s'> already specified"
 msgstr "<schema id='%s'> ja definit"
 
-#: gio/glib-compile-schemas.c:1154
-#, c-format, c-format
-#| msgid "<schema id='%s'> extends not yet existing schema '%s'"
-msgid "<schema id='%s'> extends not yet existing schema “%s”"
+#: ../gio/glib-compile-schemas.c:1137
+msgid "<schema id='%s'> extends not yet existing schema '%s'"
 msgstr "<schema id='%s'> espandís l'esquèma « %s » qu'existís pas encara"
 
-#: gio/glib-compile-schemas.c:1170
-#, c-format, 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”"
+#: ../gio/glib-compile-schemas.c:1153
+msgid "<schema id='%s'> is list of not yet existing schema '%s'"
 msgstr "<schema id='%s'> es una lista de l'esquèma « %s » qu'existís pas encara"
 
-#: gio/glib-compile-schemas.c:1178
-#, c-format, 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 "Un esquèma amb un camin pòt pas conténer cap de lista"
+#: ../gio/glib-compile-schemas.c:1161
+msgid "Can not be a list of a schema with a path"
+msgstr "Un esquèma amb un camin pòt pas conténer de lista"
 
-#: gio/glib-compile-schemas.c:1188
-#, c-format, c-format
-#| msgid "Can not extend a schema with a path"
-msgid "Cannot extend a schema with a path"
-msgstr "Impossible d’espandir un esquèma amb un camin"
+#: ../gio/glib-compile-schemas.c:1171
+msgid "Can not extend a schema with a path"
+msgstr "Impossible d'espandir un esquèma amb un camin"
 
-#: gio/glib-compile-schemas.c:1198
-#, c-format
+#: ../gio/glib-compile-schemas.c:1181
 msgid ""
 "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
 msgstr ""
 "<schema id='%s'> es una lista ; espandís <schema id='%s'> qu'es pas una lista"
 
-#: gio/glib-compile-schemas.c:1208
-#, c-format, c-format
-#| msgid ""
-#| "<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but "
-#| "'%s' does not extend '%s'"
+#: ../gio/glib-compile-schemas.c:1191
 msgid ""
-"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but “%s” "
-"does not extend “%s”"
+"<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'> espandís <schema id='%s' list-of='%s'> mas « %s » "
-"espandís pas « %s »"
+"<schema id='%s' list-of='%s'> espandís <schema id='%s' list-of='%s'> mas « %s "
+"» n'étend pas « %s »"
 
-#: gio/glib-compile-schemas.c:1225
-#, c-format, 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 ""
-"Se un camin es indicat, deu començar e s'acabar per una barra oblica"
-
-#: gio/glib-compile-schemas.c:1232
-#, c-format, c-format
-#| msgid "the path of a list must end with ':/'"
-msgid "The path of a list must end with “:/”"
-msgstr "Lo camin d’una lista deu finir per « :/ »"
+#: ../gio/glib-compile-schemas.c:1208
+msgid "a path, if given, must begin and end with a slash"
+msgstr "se un camin es indicat, deu començar e finir per una barra oblica"
 
-#: gio/glib-compile-schemas.c:1241
-#, c-format
-msgid ""
-"Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/"
-"desktop/” or “/system/” are deprecated."
-msgstr ""
-"Atencion : l'esquèma « %s » compòrta lo camin « %s ». Los camins "
-"que començan per « /apps/ », « /desktop/ » o « /system/ » son obsolèts."
+#: ../gio/glib-compile-schemas.c:1215
+msgid "the path of a list must end with ':/'"
+msgstr "lo camin d'una lista deu finir per « :/ »"
 
-#: gio/glib-compile-schemas.c:1271
-#, c-format
+#: ../gio/glib-compile-schemas.c:1247
 msgid "<%s id='%s'> already specified"
 msgstr "<%s id='%s'> es ja definit"
 
-#: gio/glib-compile-schemas.c:1421 gio/glib-compile-schemas.c:1437
-#, c-format
+#: ../gio/glib-compile-schemas.c:1397 ../gio/glib-compile-schemas.c:1413
 msgid "Only one <%s> element allowed inside <%s>"
 msgstr "Un sol element <%s> es autorizat dins <%s>"
 
-#: gio/glib-compile-schemas.c:1519
-#, c-format
+#: ../gio/glib-compile-schemas.c:1495
 msgid "Element <%s> not allowed at the top level"
 msgstr "Element <%s> interdit al primièr nivèl"
 
-#: gio/glib-compile-schemas.c:1537
-msgid "Element <default> is required in <key>"
-msgstr "Element <default> obligatòri dins <key>"
-
-#: gio/glib-compile-schemas.c:1627
-#, c-format, c-format
-#| msgid "text may not appear inside <%s>"
-msgid "Text may not appear inside <%s>"
-msgstr "<%s> pòt pas conténer de tèxte"
-
-#: gio/glib-compile-schemas.c:1695
-#, c-format
-msgid "Warning: undefined reference to <schema id='%s'/>"
-msgstr "Atencion : referéncia indefinida cap a <schema id='%s'/>"
-
 #. Translators: Do not translate "--strict".
-#: gio/glib-compile-schemas.c:1834 gio/glib-compile-schemas.c:1910
-#: gio/glib-compile-schemas.c:2025
-#, c-format
+#: ../gio/glib-compile-schemas.c:1794 ../gio/glib-compile-schemas.c:1865
+#: ../gio/glib-compile-schemas.c:1941
 msgid "--strict was specified; exiting.\n"
 msgstr "--strict es estat especificat ; sortida en cors.\n"
 
-#: gio/glib-compile-schemas.c:1844
-#, c-format
+#: ../gio/glib-compile-schemas.c:1802
 msgid "This entire file has been ignored.\n"
 msgstr "Lo fichièr complet es estat ignorat.\n"
 
-#: gio/glib-compile-schemas.c:1906
-#, c-format
+#: ../gio/glib-compile-schemas.c:1861
 msgid "Ignoring this file.\n"
 msgstr "Aqueste fichièr es ignorat.\n"
 
-#: gio/glib-compile-schemas.c:1959
-#, 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”"
+#: ../gio/glib-compile-schemas.c:1901
+msgid "No such key '%s' in schema '%s' as specified in override file '%s'"
 msgstr ""
-"Pas cap de clau nomenada « %s » dins l'esquèma « %s » coma definit dins lo fichièr «"
-" %s » de redefinicion"
+"Pas cap de clau nomenada « %s » dins l'esquèma « %s » coma definit dins lo "
+"fichièr « %s » de redefinicion"
 
-#: gio/glib-compile-schemas.c:1965 gio/glib-compile-schemas.c:1990
-#: gio/glib-compile-schemas.c:2050 gio/glib-compile-schemas.c:2079
-#, c-format
+#: ../gio/glib-compile-schemas.c:1907 ../gio/glib-compile-schemas.c:1965
+#: ../gio/glib-compile-schemas.c:1993
 msgid "; ignoring override for this key.\n"
 msgstr "; la redefinicion d'aquesta clau es estada ignorada.\n"
 
-#: gio/glib-compile-schemas.c:1969 gio/glib-compile-schemas.c:1994
-#: gio/glib-compile-schemas.c:2054 gio/glib-compile-schemas.c:2083
-#, c-format
+#: ../gio/glib-compile-schemas.c:1911 ../gio/glib-compile-schemas.c:1969
+#: ../gio/glib-compile-schemas.c:1997
 msgid " and --strict was specified; exiting.\n"
 msgstr " e --strict es estat especificat ; sortida en cors.\n"
 
-#: gio/glib-compile-schemas.c:1984
-#, c-format
-msgid ""
-"cannot provide per-desktop overrides for localised key “%s” in schema "
-"“%s” (override file “%s”)"
-msgstr ""
-"impossible de provesir de redefinicions per burèu per la clau regionalizada «"
-" %s » dins l'esquèma « %s » (fichièr de redefinicion « %s »)"
-
-#: gio/glib-compile-schemas.c:2011
-#, c-format, c-format
-#| msgid ""
-#| "error parsing key '%s' in schema '%s' as specified in override file '%s': "
-#| "%s."
+#: ../gio/glib-compile-schemas.c:1927
 msgid ""
-"error parsing key “%s” in schema “%s” as specified in override file “%s”: %s."
+"error parsing key '%s' in schema '%s' as specified in override file '%s': %s."
 msgstr ""
-"error d’analisi de la clau « %s » dins l'esquèma « %s » coma definit dins lo "
+"Error d'analisi de la clau « %s » dins l'esquèma « %s » coma definit dins lo "
 "fichièr « %s » de redefinicion : %s."
 
-#: gio/glib-compile-schemas.c:2021
-#, c-format
+#: ../gio/glib-compile-schemas.c:1937
 msgid "Ignoring override for this key.\n"
 msgstr "La redefinicion d'aquesta clau es estada ignorada.\n"
 
-#: gio/glib-compile-schemas.c:2040
-#, c-format, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is outside the "
-#| "range given in the schema"
+#: ../gio/glib-compile-schemas.c:1955
 msgid ""
-"override for key “%s” in schema “%s” in override file “%s” is outside the "
+"override for key '%s' in schema '%s' in override file '%s' is outside the "
 "range given in the schema"
 msgstr ""
 "la redefinicion de la clau « %s » dins l'esquèma « %s » del fichièr de "
 "redefinicion « %s » es pas dins la plaja indicada per l'esquèma"
 
-#: gio/glib-compile-schemas.c:2069
-#, c-format, c-format
-#| msgid ""
-#| "override for key '%s' in schema '%s' in override file '%s' is not in the "
-#| "list of valid choices"
+#: ../gio/glib-compile-schemas.c:1983
 msgid ""
-"override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices"
+"override for key '%s' in schema '%s' in override file '%s' is not in the list "
+"of valid choices"
 msgstr ""
 "la redefinicion de la clau « %s » dins l'esquèma « %s » del fichièr de "
-"redefinicion « %s » es pas dins la lista de las causidas validas"
+"redefinicion « %s » es pas dins la lista de las causida validas"
 
-#: gio/glib-compile-schemas.c:2140
+#: ../gio/glib-compile-schemas.c:2036
 msgid "where to store the gschemas.compiled file"
 msgstr "endreit ont enregistrar lo fichièr gschemas.compiled"
 
-#: gio/glib-compile-schemas.c:2141
+#: ../gio/glib-compile-schemas.c:2037
 msgid "Abort on any errors in schemas"
 msgstr "Anullacion en cas d'errors dins d'esquèmas"
 
-#: gio/glib-compile-schemas.c:2142
+#: ../gio/glib-compile-schemas.c:2038
 msgid "Do not write the gschema.compiled file"
 msgstr "Escriure pas cap de fichièr gschema.compiled"
 
-#: gio/glib-compile-schemas.c:2143
+#: ../gio/glib-compile-schemas.c:2039
 msgid "Do not enforce key name restrictions"
 msgstr "Aplicar pas las limitacions de nom de clau"
 
-#: gio/glib-compile-schemas.c:2172
+#: ../gio/glib-compile-schemas.c:2068
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
@@ -3093,530 +2460,457 @@ msgstr ""
 "L'extension .gschema.xml es requesida pels fichièrs esquèmas,\n"
 "e lo fichièr cache es nomenat gschemas.compiled."
 
-#: gio/glib-compile-schemas.c:2193
-#, c-format
+#: ../gio/glib-compile-schemas.c:2084
 msgid "You should give exactly one directory name\n"
 msgstr "Vos cal indicar un e un sol nom de repertòri\n"
 
-#: gio/glib-compile-schemas.c:2235
-#, c-format
+#: ../gio/glib-compile-schemas.c:2123
 msgid "No schema files found: "
 msgstr "Cap de fichièr esquèma pas trobat : "
 
-#: gio/glib-compile-schemas.c:2238
-#, c-format
+#: ../gio/glib-compile-schemas.c:2126
 msgid "doing nothing.\n"
 msgstr "cap d'accion pas efectuada.\n"
 
-#: gio/glib-compile-schemas.c:2241
-#, c-format
+#: ../gio/glib-compile-schemas.c:2129
 msgid "removed existing output file.\n"
 msgstr "fichièr de sortida existent suprimit.\n"
 
-#: gio/glocalfile.c:544 gio/win32/gwinhttpfile.c:420
-#, c-format
+#: ../gio/glocalfile.c:642 ../gio/win32/gwinhttpfile.c:420
 msgid "Invalid filename %s"
 msgstr "Nom de fichièr invalid : %s"
 
-#: gio/glocalfile.c:1011
+#: ../gio/glocalfile.c:1036
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr ""
 "Error d'obtencion de las informacions del sistèma de fichièrs per %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:1150
+#: ../gio/glocalfile.c:1175
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr "Lo punt de montatge contenidor pel fichièr %s es introbable"
 
-#: gio/glocalfile.c:1173
-#| msgid "Can't rename root directory"
-msgid "Can’t rename root directory"
+#: ../gio/glocalfile.c:1198
+msgid "Can't rename root directory"
 msgstr "Impossible de renomenar lo repertòri raiç"
 
-#: gio/glocalfile.c:1191 gio/glocalfile.c:1214
+#: ../gio/glocalfile.c:1216 ../gio/glocalfile.c:1239
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr "Error de renomenatge del fichièr %s : %s"
 
-#: gio/glocalfile.c:1198
-#| msgid "Can't rename file, filename already exists"
-msgid "Can’t rename file, filename already exists"
+#: ../gio/glocalfile.c:1223
+msgid "Can't rename file, filename already exists"
 msgstr "Impossible de renomenar lo fichièr perque aqueste nom es ja utilizat"
 
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2275 gio/glocalfile.c:2303
-#: gio/glocalfile.c:2460 gio/glocalfileoutputstream.c:551
+#: ../gio/glocalfile.c:1236 ../gio/glocalfile.c:2250 ../gio/glocalfile.c:2278
+#: ../gio/glocalfile.c:2435 ../gio/glocalfileoutputstream.c:549
 msgid "Invalid filename"
 msgstr "Nom de fichièr invalid"
 
-#: gio/glocalfile.c:1379 gio/glocalfile.c:1394
+#: ../gio/glocalfile.c:1403 ../gio/glocalfile.c:1418
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Error al moment de la dobertura del fichièr %s : %s"
 
-#: gio/glocalfile.c:1519
+#: ../gio/glocalfile.c:1543
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Error al moment de la supression del fichièr %s : %s"
 
-#: gio/glocalfile.c:1916
+#: ../gio/glocalfile.c:1926
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Error al moment de la mesa a l'escobilhièr del fichièr %s : %s"
 
-#: gio/glocalfile.c:1957
-#, c-format
+#: ../gio/glocalfile.c:1949
 msgid "Unable to create trash dir %s: %s"
 msgstr "Impossible de crear lo repertòri de l'escobilhièr %s : %s"
 
-#: gio/glocalfile.c:1978
+#: ../gio/glocalfile.c:1969
 #, c-format
 msgid "Unable to find toplevel directory to trash %s"
 msgstr "Impossible de trobar lo repertòri raiç per metre %s a l'escobilhièr"
 
-#: gio/glocalfile.c:1987
-#, c-format, c-format
-#| msgid "Copy (reflink/clone) between mounts is not supported"
-msgid "Trashing on system internal mounts is not supported"
-msgstr ""
-"La mesa a l'escobilhièr sus de montatges sistèmas intèrnes es pas presa en "
-"carga"
-
-#: gio/glocalfile.c:2071 gio/glocalfile.c:2091
+#: ../gio/glocalfile.c:2048 ../gio/glocalfile.c:2068
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Impossible de trobar o crear lo repertòri de l'escobilhièr per %s"
 
-#: gio/glocalfile.c:2126
+#: ../gio/glocalfile.c:2102
 #, c-format
 msgid "Unable to create trashing info file for %s: %s"
 msgstr ""
-"Impossible de crear lo fichièr d'informacions de mesa a l'escobilhièr per %s "
-": %s"
+"Impossible de crear lo fichièr d'informacions de mesa a l'escobilhièr per "
+"%s : %s"
 
-#: gio/glocalfile.c:2186
+#: ../gio/glocalfile.c:2161
 #, c-format
 msgid "Unable to trash file %s across filesystem boundaries"
 msgstr ""
 "Impossible de metre a l'escobilhièr lo fichièr %s de delà dels limits del "
 "sistèma de fichièrs"
 
-#: gio/glocalfile.c:2190 gio/glocalfile.c:2246
+#: ../gio/glocalfile.c:2165 ../gio/glocalfile.c:2221
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Impossible de metre a l'escobilhièr lo fichièr %s : %s"
 
-#: gio/glocalfile.c:2252
+#: ../gio/glocalfile.c:2227
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Impossible de metre a l'escobilhièr lo fichièr %s"
 
-#: gio/glocalfile.c:2278
+#: ../gio/glocalfile.c:2253
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Error al moment de la creacion del repertòri %s : %s"
 
-#: gio/glocalfile.c:2307
-#, c-format
+#: ../gio/glocalfile.c:2282
 msgid "Filesystem does not support symbolic links"
 msgstr "Lo sistèma de fichièrs gerís pas los ligams simbolics"
 
-#: gio/glocalfile.c:2310
+#: ../gio/glocalfile.c:2285
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Error al moment de la creacion del ligam simbolic %s : %s"
 
-#: gio/glocalfile.c:2316 glib/gfileutils.c:2138
+#: ../gio/glocalfile.c:2291 ../glib/gfileutils.c:2064
 msgid "Symbolic links not supported"
 msgstr "Ligams simbolics pas preses en carga"
 
-#: gio/glocalfile.c:2371 gio/glocalfile.c:2406 gio/glocalfile.c:2463
+#: ../gio/glocalfile.c:2346 ../gio/glocalfile.c:2381 ../gio/glocalfile.c:2438
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Error al moment del desplaçament del fichièr %s : %s"
 
-#: gio/glocalfile.c:2394
-#| msgid "Can't move directory over directory"
-msgid "Can’t move directory over directory"
+#: ../gio/glocalfile.c:2369
+msgid "Can't move directory over directory"
 msgstr "Impossible de desplaçar un repertòri per dessús un autre"
 
-#: gio/glocalfile.c:2420 gio/glocalfileoutputstream.c:935
-#: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
-#: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
+#: ../gio/glocalfile.c:2395 ../gio/glocalfileoutputstream.c:925
+#: ../gio/glocalfileoutputstream.c:939 ../gio/glocalfileoutputstream.c:954
+#: ../gio/glocalfileoutputstream.c:971 ../gio/glocalfileoutputstream.c:985
 msgid "Backup file creation failed"
 msgstr "La creacion del fichièr de salvament a fracassat"
 
-#: gio/glocalfile.c:2439
-#, c-format
+#: ../gio/glocalfile.c:2414
 msgid "Error removing target file: %s"
 msgstr "Error al moment de la supression del fichièr cibla : %s"
 
-#: gio/glocalfile.c:2453
+#: ../gio/glocalfile.c:2428
 msgid "Move between mounts not supported"
 msgstr "Lo desplaçament entre punts de montatge es pas pres en carga"
 
-#: gio/glocalfile.c:2644
-#, c-format
+#: ../gio/glocalfile.c:2619
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Impossible de determinar l'utilizacion disc de %s : %s"
 
-#: gio/glocalfileinfo.c:745
+#: ../gio/glocalfileinfo.c:721
 msgid "Attribute value must be non-NULL"
 msgstr "La valor d'atribut deu pas èsser « NULL »"
 
-#: gio/glocalfileinfo.c:752
+#: ../gio/glocalfileinfo.c:728
 msgid "Invalid attribute type (string expected)"
 msgstr "Tipe d'atribut invalid (una cadena es esperada)"
 
-#: gio/glocalfileinfo.c:759
+#: ../gio/glocalfileinfo.c:735
 msgid "Invalid extended attribute name"
 msgstr "Nom d'atribut espandit invalid"
 
-#: gio/glocalfileinfo.c:799
-#, c-format, c-format
-#| msgid "Error setting extended attribute '%s': %s"
-msgid "Error setting extended attribute “%s”: %s"
-msgstr "Error al moment de la definicion de l’atribut espandit « %s » : %s"
+#: ../gio/glocalfileinfo.c:775
+msgid "Error setting extended attribute '%s': %s"
+msgstr "Error al moment de la definicion de l'atribut espandit « %s » : %s"
 
-#: gio/glocalfileinfo.c:1625
+#: ../gio/glocalfileinfo.c:1575
 msgid " (invalid encoding)"
 msgstr " (encodatge invalid)"
 
-#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
-#, c-format, c-format
-#| msgid "Error when getting information for file '%s': %s"
-msgid "Error when getting information for file “%s”: %s"
-msgstr "Error al moment de l’obtencion de las informacions del fichièr « %s » : %s"
+#: ../gio/glocalfileinfo.c:1766 ../gio/glocalfileoutputstream.c:803
+msgid "Error when getting information for file '%s': %s"
+msgstr ""
+"Error al moment de l'obtencion de las informacions del fichièr « %s » : %s"
 
-#: gio/glocalfileinfo.c:2053
-#, c-format
+#: ../gio/glocalfileinfo.c:2017
 msgid "Error when getting information for file descriptor: %s"
 msgstr ""
-"Error al moment de l'obtencion de las informacions del descriptor de fichièr "
-": %s"
+"Error al moment de l'obtencion de las informacions del descriptor de "
+"fichièr : %s"
 
-#: gio/glocalfileinfo.c:2098
+#: ../gio/glocalfileinfo.c:2062
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipe d'atribut invalid (uint32 esperat)"
 
-#: gio/glocalfileinfo.c:2116
+#: ../gio/glocalfileinfo.c:2080
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipe d'atribut invalid (uint64 esperat)"
 
-#: gio/glocalfileinfo.c:2135 gio/glocalfileinfo.c:2154
+#: ../gio/glocalfileinfo.c:2099 ../gio/glocalfileinfo.c:2118
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Tipe d'atribut invalid (cadena d'octets esperada)"
 
-#: gio/glocalfileinfo.c:2201
+#: ../gio/glocalfileinfo.c:2153
 msgid "Cannot set permissions on symlinks"
 msgstr "Impossible de definir de permissions suls ligams simbolics"
 
-#: gio/glocalfileinfo.c:2217
-#, c-format
+#: ../gio/glocalfileinfo.c:2169
 msgid "Error setting permissions: %s"
 msgstr "Error al moment de la definicion de las permissions : %s"
 
-#: gio/glocalfileinfo.c:2268
-#, c-format
+#: ../gio/glocalfileinfo.c:2220
 msgid "Error setting owner: %s"
 msgstr "Error al moment de la definicion del proprietari : %s"
 
-#: gio/glocalfileinfo.c:2291
+#: ../gio/glocalfileinfo.c:2243
 msgid "symlink must be non-NULL"
 msgstr "un ligam simbolic deu pas èsser « NULL »"
 
-#: gio/glocalfileinfo.c:2301 gio/glocalfileinfo.c:2320
-#: gio/glocalfileinfo.c:2331
-#, c-format
+#: ../gio/glocalfileinfo.c:2253 ../gio/glocalfileinfo.c:2272
+#: ../gio/glocalfileinfo.c:2283
 msgid "Error setting symlink: %s"
 msgstr "Error al moment de la definicion del ligam simbolic : %s"
 
-#: gio/glocalfileinfo.c:2310
+#: ../gio/glocalfileinfo.c:2262
 msgid "Error setting symlink: file is not a symlink"
 msgstr ""
 "Error al moment de la definicion del ligam simbolic : lo fichièr es pas un "
 "ligam simbolic"
 
-#: gio/glocalfileinfo.c:2436
-#, c-format
+#: ../gio/glocalfileinfo.c:2388
 msgid "Error setting modification or access time: %s"
 msgstr ""
 "Error al moment de la definicion de l'ora de modificacion o d'accès : %s"
 
-#: gio/glocalfileinfo.c:2459
+#: ../gio/glocalfileinfo.c:2411
 msgid "SELinux context must be non-NULL"
 msgstr "Lo contèxte SELinux deu pas èsser « NULL »"
 
-#: gio/glocalfileinfo.c:2474
-#, c-format
+#: ../gio/glocalfileinfo.c:2426
 msgid "Error setting SELinux context: %s"
 msgstr "Error al moment de la definicion del contèxte SELinux : %s"
 
-#: gio/glocalfileinfo.c:2481
+#: ../gio/glocalfileinfo.c:2433
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux es pas activat sus aqueste sistèma"
 
-#: gio/glocalfileinfo.c:2573
-#, c-format
+#: ../gio/glocalfileinfo.c:2525
 msgid "Setting attribute %s not supported"
 msgstr "La definicion de l'atribut %s es pas presa en carga"
 
-#: gio/glocalfileinputstream.c:168 gio/glocalfileoutputstream.c:696
-#, c-format
+#: ../gio/glocalfileinputstream.c:168 ../gio/glocalfileoutputstream.c:694
 msgid "Error reading from file: %s"
 msgstr "Error al moment de la lectura del fichièr : %s"
 
-#: gio/glocalfileinputstream.c:199 gio/glocalfileinputstream.c:211
-#: gio/glocalfileinputstream.c:225 gio/glocalfileinputstream.c:333
-#: gio/glocalfileoutputstream.c:458 gio/glocalfileoutputstream.c:1013
-#, c-format
+#: ../gio/glocalfileinputstream.c:199 ../gio/glocalfileinputstream.c:211
+#: ../gio/glocalfileinputstream.c:225 ../gio/glocalfileinputstream.c:333
+#: ../gio/glocalfileoutputstream.c:456 ../gio/glocalfileoutputstream.c:1003
 msgid "Error seeking in file: %s"
 msgstr "Error de posicionament dins lo fichièr : %s"
 
-#: gio/glocalfileinputstream.c:255 gio/glocalfileoutputstream.c:248
-#: gio/glocalfileoutputstream.c:342
-#, c-format
+#: ../gio/glocalfileinputstream.c:255 ../gio/glocalfileoutputstream.c:246
+#: ../gio/glocalfileoutputstream.c:340
 msgid "Error closing file: %s"
 msgstr "Error al moment de la tampadura del fichièr : %s"
 
-#: gio/glocalfilemonitor.c:854
+#: ../gio/glocalfilemonitor.c:840
 msgid "Unable to find default local file monitor type"
 msgstr "Impossible de trobar lo tipe de monitor de fichièr local per defaut"
 
-#: gio/glocalfileoutputstream.c:196 gio/glocalfileoutputstream.c:228
-#: gio/glocalfileoutputstream.c:717
-#, c-format
+#: ../gio/glocalfileoutputstream.c:194 ../gio/glocalfileoutputstream.c:226
+#: ../gio/glocalfileoutputstream.c:715
 msgid "Error writing to file: %s"
 msgstr "Error al moment de l'escritura del fichièr : %s"
 
-#: gio/glocalfileoutputstream.c:275
-#, c-format
+#: ../gio/glocalfileoutputstream.c:273
 msgid "Error removing old backup link: %s"
 msgstr "Error al moment de la supression de l'ancian ligam de salvament : %s"
 
-#: gio/glocalfileoutputstream.c:289 gio/glocalfileoutputstream.c:302
-#, c-format
+#: ../gio/glocalfileoutputstream.c:287 ../gio/glocalfileoutputstream.c:300
 msgid "Error creating backup copy: %s"
 msgstr "Error al moment de la creacion de la còpia de salvament : %s"
 
-#: gio/glocalfileoutputstream.c:320
-#, c-format
+#: ../gio/glocalfileoutputstream.c:318
 msgid "Error renaming temporary file: %s"
 msgstr "Error al moment del cambiament de nom del fichièr temporari : %s"
 
-#: gio/glocalfileoutputstream.c:504 gio/glocalfileoutputstream.c:1064
-#, c-format
+#: ../gio/glocalfileoutputstream.c:502 ../gio/glocalfileoutputstream.c:1054
 msgid "Error truncating file: %s"
 msgstr "Error al moment de la troncadura del fichièr : %s"
 
-#: gio/glocalfileoutputstream.c:557 gio/glocalfileoutputstream.c:795
-#: gio/glocalfileoutputstream.c:1045 gio/gsubprocess.c:380
-#, c-format, c-format
-#| msgid "Error opening file %s: %s"
-msgid "Error opening file “%s”: %s"
+#: ../gio/glocalfileoutputstream.c:555 ../gio/glocalfileoutputstream.c:785
+#: ../gio/glocalfileoutputstream.c:1035 ../gio/gsubprocess.c:360
+msgid "Error opening file '%s': %s"
 msgstr "Error al moment de la dobertura del fichièr « %s » : %s"
 
-#: gio/glocalfileoutputstream.c:826
+#: ../gio/glocalfileoutputstream.c:816
 msgid "Target file is a directory"
 msgstr "Lo fichièr cibla es un repertòri"
 
-#: gio/glocalfileoutputstream.c:831
+#: ../gio/glocalfileoutputstream.c:821
 msgid "Target file is not a regular file"
 msgstr "Lo fichièr cibla es pas un fichièr estandard"
 
-#: gio/glocalfileoutputstream.c:843
+#: ../gio/glocalfileoutputstream.c:833
 msgid "The file was externally modified"
 msgstr "Lo fichièr es estat modificat exteriorament"
 
-#: gio/glocalfileoutputstream.c:1029
-#, c-format
+#: ../gio/glocalfileoutputstream.c:1019
 msgid "Error removing old file: %s"
 msgstr "Error a la supression de l'ancian fichièr : %s"
 
-#: gio/gmemoryinputstream.c:474 gio/gmemoryoutputstream.c:772
+#: ../gio/gmemoryinputstream.c:474 ../gio/gmemoryoutputstream.c:772
 msgid "Invalid GSeekType supplied"
 msgstr "Lo tipe GSeekTipe provesit es pas valid"
 
-#: gio/gmemoryinputstream.c:484
+#: ../gio/gmemoryinputstream.c:484
 msgid "Invalid seek request"
-msgstr "Requèsta « seek » invalida"
+msgstr "Requête « seek » invalida"
 
-#: gio/gmemoryinputstream.c:508
+#: ../gio/gmemoryinputstream.c:508
 msgid "Cannot truncate GMemoryInputStream"
 msgstr "Impossible de troncar GMemoryInputStream"
 
-#: gio/gmemoryoutputstream.c:567
+#: ../gio/gmemoryoutputstream.c:567
 msgid "Memory output stream not resizable"
 msgstr "Lo flux de sortida memòria es pas redimensionable"
 
-#: gio/gmemoryoutputstream.c:583
+#: ../gio/gmemoryoutputstream.c:583
 msgid "Failed to resize memory output stream"
 msgstr "Lo redimensionament del flux de sortida memòria a fracassat"
 
-#: gio/gmemoryoutputstream.c:673
+#: ../gio/gmemoryoutputstream.c:673
 msgid ""
 "Amount of memory required to process the write is larger than available "
 "address space"
 msgstr ""
-"La quantitat de memòria necessària per efectuar l'escritura es mai granda "
-"que l'espaci d'adressatge disponible"
+"La quantitat de memòria necessària per efectuar l'escritura es mai granda que "
+"l'espaci d'adressatge disponible"
 
-#: gio/gmemoryoutputstream.c:782
+#: ../gio/gmemoryoutputstream.c:782
 msgid "Requested seek before the beginning of the stream"
 msgstr "Posicionament demandat abans lo començament del flux"
 
-#: gio/gmemoryoutputstream.c:797
+#: ../gio/gmemoryoutputstream.c:797
 msgid "Requested seek beyond the end of the stream"
 msgstr "Posicionament demandat aprèp la fin del flux"
 
 #. Translators: This is an error
 #. * message for mount objects that
 #. * don't implement unmount.
-#: gio/gmount.c:399
-#| msgid "mount doesn't implement \"unmount\""
-msgid "mount doesn’t implement “unmount”"
+#: ../gio/gmount.c:393
+msgid "mount doesn't implement \"unmount\""
 msgstr "mount implementa pas lo desmontatge (« 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\""
-msgid "mount doesn’t implement “eject”"
-msgstr "mount implementa pas l’ejeccion (« eject »)"
+#: ../gio/gmount.c:469
+msgid "mount doesn't implement \"eject\""
+msgstr "mount implementa pas l'ejeccion (« 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\""
-msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
+#: ../gio/gmount.c:547
+msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
 msgstr ""
-"mount implementa pas lo desmontatge (« unmount » o « unmount_with_operation "
-"»)"
+"mount implementa pas lo desmontatge (« unmount » o « 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\""
-msgid "mount doesn’t implement “eject” or “eject_with_operation”"
-msgstr ""
-"mount implementa pas l’ejeccion (« eject » o « eject_with_operation »)"
+#: ../gio/gmount.c:632
+msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
+msgstr "mount implementa pas l'ejeccion (« eject » o « 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\""
-msgid "mount doesn’t implement “remount”"
+#: ../gio/gmount.c:720
+msgid "mount doesn't implement \"remount\""
 msgstr "mount implementa pas lo remontatge (« 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"
-msgid "mount doesn’t implement content type guessing"
-msgstr "mount implementa pas l’estimacion del tipe de contengut"
+#: ../gio/gmount.c:802
+msgid "mount doesn't implement content type guessing"
+msgstr "mount implementa pas l'estimacion del tipe de contengut"
 
 #. 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"
-msgid "mount doesn’t implement synchronous content type guessing"
-msgstr "mount implementa pas la suposicion d’un tipe de contengut sincròn"
-
-#: gio/gnetworkaddress.c:378
-#, c-format, c-format
-#| msgid "Hostname '%s' contains '[' but not ']'"
-msgid "Hostname “%s” contains “[” but not “]”"
-msgstr "Lo nom d’òste « %s » compòrta « [ » mas pas « ] »"
-
-#: gio/gnetworkmonitorbase.c:211 gio/gnetworkmonitorbase.c:315
+#: ../gio/gmount.c:889
+msgid "mount doesn't implement synchronous content type guessing"
+msgstr "mount implementa pas la suposicion d'un tipe de contengut sincròn"
+
+#: ../gio/gnetworkaddress.c:378
+msgid "Hostname '%s' contains '[' but not ']'"
+msgstr "Lo nom d'òste « %s » compòrta « [ » mas pas « ] »"
+
+#: ../gio/gnetworkmonitorbase.c:206 ../gio/gnetworkmonitorbase.c:310
 msgid "Network unreachable"
 msgstr "Ret inaccessibla"
 
-#: gio/gnetworkmonitorbase.c:249 gio/gnetworkmonitorbase.c:279
+#: ../gio/gnetworkmonitorbase.c:244 ../gio/gnetworkmonitorbase.c:274
 msgid "Host unreachable"
 msgstr "Òste inaccessible"
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
-#, c-format
+#: ../gio/gnetworkmonitornetlink.c:96 ../gio/gnetworkmonitornetlink.c:108
+#: ../gio/gnetworkmonitornetlink.c:127
 msgid "Could not create network monitor: %s"
 msgstr "Impossible de crear lo monitor de ret : %s"
 
-#: gio/gnetworkmonitornetlink.c:118
+#: ../gio/gnetworkmonitornetlink.c:117
 msgid "Could not create network monitor: "
 msgstr "Impossible de crear lo monitor de ret : "
 
-#: gio/gnetworkmonitornetlink.c:176
+#: ../gio/gnetworkmonitornetlink.c:175
 msgid "Could not get network status: "
 msgstr "Impossible d'obténer l'estatut de la ret : "
 
-#: gio/gnetworkmonitornm.c:322
-#, c-format
+#: ../gio/gnetworkmonitornm.c:326
 msgid "NetworkManager version too old"
 msgstr "La version de NetworkManager es tròp anciana"
 
-#: gio/goutputstream.c:212 gio/goutputstream.c:560
-#| msgid "Output stream doesn't implement write"
-msgid "Output stream doesn’t implement write"
-msgstr "Lo flux de sortie implementa pas « write »"
+#: ../gio/goutputstream.c:212 ../gio/goutputstream.c:560
+msgid "Output stream doesn't implement write"
+msgstr "Lo flux de sortida implementa pas « write »"
 
-#: gio/goutputstream.c:521 gio/goutputstream.c:1224
+#: ../gio/goutputstream.c:521 ../gio/goutputstream.c:1224
 msgid "Source stream is already closed"
 msgstr "Lo flux font es ja tampat"
 
-#: gio/gresolver.c:342 gio/gthreadedresolver.c:116 gio/gthreadedresolver.c:126
-#, c-format, c-format
-#| msgid "Error resolving '%s': %s"
-msgid "Error resolving “%s”: %s"
+#: ../gio/gresolver.c:330 ../gio/gthreadedresolver.c:116
+#: ../gio/gthreadedresolver.c:126
+msgid "Error resolving '%s': %s"
 msgstr "Error de resolucion de « %s » : %s"
 
-#: gio/gresolver.c:729 gio/gresolver.c:781
-#| msgid "Invalid filename"
-msgid "Invalid domain"
-msgstr "Domeni invalid"
-
-#: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
-#: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
-#: gio/gresource.c:1281 gio/gresourcefile.c:476 gio/gresourcefile.c:599
-#: gio/gresourcefile.c:736
-#, c-format, c-format
-#| msgid "The resource at '%s' does not exist"
-msgid "The resource at “%s” does not exist"
+#: ../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
+msgid "The resource at '%s' does not exist"
 msgstr "La ressorsa dins « %s » existís pas"
 
-#: gio/gresource.c:809
-#, c-format, c-format
-#| msgid "The resource at '%s' failed to decompress"
-msgid "The resource at “%s” failed to decompress"
+#: ../gio/gresource.c:760
+msgid "The resource at '%s' failed to decompress"
 msgstr "La descompression de la ressorsa dins « %s » a pas capitat"
 
-#: gio/gresourcefile.c:732
-#, c-format, c-format
-#| msgid "The resource at '%s' is not a directory"
-msgid "The resource at “%s” is not a directory"
+#: ../gio/gresourcefile.c:709
+msgid "The resource at '%s' is not a directory"
 msgstr "La ressorsa dins « %s » es pas un repertòri"
 
-#: gio/gresourcefile.c:940
-#| msgid "Input stream doesn't implement seek"
-msgid "Input stream doesn’t implement seek"
+#: ../gio/gresourcefile.c:917
+msgid "Input stream doesn't implement seek"
 msgstr "Lo flux en entrada implementa pas « seek » (lo posicionament)"
 
-#: gio/gresource-tool.c:501
+#: ../gio/gresource-tool.c:494
 msgid "List sections containing resources in an elf FILE"
-msgstr ""
-"Enumèra las seccions que contenon las ressorsas dins un fichièr « elf »"
+msgstr "Enumèra las seccions que contenon las ressorsas dins un fichièr « elf »"
 
-#: gio/gresource-tool.c:507
+#: ../gio/gresource-tool.c:500
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3626,15 +2920,16 @@ msgstr ""
 "Se SECCION es provesida, enumèra solament las ressorsas d'aquesta seccion\n"
 "Se CAMIN es provesit, enumèra solament las ressorsas correspondentas"
 
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520
+#: ../gio/gresource-tool.c:503 ../gio/gresource-tool.c:513
 msgid "FILE [PATH]"
 msgstr "FICHIÈR [CAMIN]"
 
-#: gio/gresource-tool.c:511 gio/gresource-tool.c:521 gio/gresource-tool.c:528
+#: ../gio/gresource-tool.c:504 ../gio/gresource-tool.c:514
+#: ../gio/gresource-tool.c:521
 msgid "SECTION"
 msgstr "SECCION"
 
-#: gio/gresource-tool.c:516
+#: ../gio/gresource-tool.c:509
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3646,31 +2941,18 @@ msgstr ""
 "Se CAMIN es provesit, enumèra solament las ressorsas correspondentas\n"
 "Los detalhs incluisson la seccion, la talha e la compression"
 
-#: gio/gresource-tool.c:526
+#: ../gio/gresource-tool.c:519
 msgid "Extract a resource file to stdout"
 msgstr "Extrai un fichièr ressorsa cap a la sortida estandarda"
 
-#: gio/gresource-tool.c:527
+#: ../gio/gresource-tool.c:520
 msgid "FILE PATH"
 msgstr "CAMIN DEL FICHIÈR"
 
-#: gio/gresource-tool.c:541
-#| 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:534
 msgid ""
 "Usage:\n"
-"  gresource [--section SECTION] COMMAND [ARGS]\n"
+"  gresource [--section SECTION] COMMAND [ARGS...]\n"
 "\n"
 "Commands:\n"
 "  help                      Show this information\n"
@@ -3679,24 +2961,23 @@ msgid ""
 "  details                   List resources with details\n"
 "  extract                   Extract a resource\n"
 "\n"
-"Use “gresource help COMMAND” to get detailed help.\n"
+"Use 'gresource help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
 "Utilizacion :\n"
-"  gresource [--section SECCION] COMANDA [PARAMÈTRES…]\n"
+"  gresource [--seccion SECCION] COMANDA [ARGUMENTS...]\n"
 "\n"
 "Comandas :\n"
 "  help                      Aficha aquesta informacion\n"
-"  sections                  Enumèra las seccions de ressorsas\n"
+"  seccions                  Enumèra las seccions de ressorsas\n"
 "  list                      Enumèra las ressorsas\n"
 "  details                   Enumèra las ressorsas en detalh\n"
 "  extract                   Extrai una ressorsa\n"
 "\n"
-"Utilizatz « gresource help COMANDA » per obténer dajuda detalhada.\n"
+"Utilizatz « gresource help COMANDA » per obténer d'ajuda detalhada.\n"
 "\n"
 
-#: gio/gresource-tool.c:555
-#, c-format
+#: ../gio/gresource-tool.c:548
 msgid ""
 "Usage:\n"
 "  gresource %s%s%s %s\n"
@@ -3710,19 +2991,19 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gresource-tool.c:562
+#: ../gio/gresource-tool.c:555
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr "  SECCION   Un nom de seccion elf (facultatiu)\n"
 
-#: gio/gresource-tool.c:566 gio/gsettings-tool.c:703
+#: ../gio/gresource-tool.c:559 ../gio/gsettings-tool.c:654
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr "  COMANDA   La comanda (facultativa) d'explicar\n"
 
-#: gio/gresource-tool.c:572
+#: ../gio/gresource-tool.c:565
 msgid "  FILE      An elf file (a binary or a shared library)\n"
 msgstr "  FICHIÈR      Un fichièr elf (un binari o una bibliotèca partejada)\n"
 
-#: gio/gresource-tool.c:575
+#: ../gio/gresource-tool.c:568
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
@@ -3730,87 +3011,81 @@ msgstr ""
 "  FICHIÈR      Un fichièr elf (un binari o una bibliotèca partejada)\n"
 "            o un fichièr ressorsa compilat\n"
 
-#: gio/gresource-tool.c:579
+#: ../gio/gresource-tool.c:572
 msgid "[PATH]"
 msgstr "[CAMIN]"
 
-#: gio/gresource-tool.c:581
+#: ../gio/gresource-tool.c:574
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr "  CAMIN      Un camin (facultatiu) de ressorsa (pòt èsser parcial)\n"
 
-#: gio/gresource-tool.c:582
+#: ../gio/gresource-tool.c:575
 msgid "PATH"
 msgstr "CAMIN"
 
-#: gio/gresource-tool.c:584
+#: ../gio/gresource-tool.c:577
 msgid "  PATH      A resource path\n"
 msgstr "  CAMIN      Un camin de ressorsa\n"
 
-#: gio/gsettings-tool.c:51 gio/gsettings-tool.c:72 gio/gsettings-tool.c:908
-#, c-format, c-format
-#| msgid "No such schema '%s'\n"
-msgid "No such schema “%s”\n"
+#: ../gio/gsettings-tool.c:51 ../gio/gsettings-tool.c:72
+#: ../gio/gsettings-tool.c:851
+msgid "No such schema '%s'\n"
 msgstr "L'esquèma « %s » existís pas\n"
 
-#: gio/gsettings-tool.c:57
-#, c-format, 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 ""
-"L'esquèma « %s » es pas readreçable (lo camin deu pas èsser indicat)"
-"\n"
+#: ../gio/gsettings-tool.c:57
+msgid "Schema '%s' is not relocatable (path must not be specified)\n"
+msgstr "L'esquèma « %s » es pas readreçable (lo camin deu pas èsser indicat)\n"
 
-#: gio/gsettings-tool.c:78
-#, c-format, c-format
-#| msgid "Schema '%s' is relocatable (path must be specified)\n"
-msgid "Schema “%s” is relocatable (path must be specified)\n"
+#: ../gio/gsettings-tool.c:78
+msgid "Schema '%s' is relocatable (path must be specified)\n"
 msgstr "L'esquèma « %s » es readreçable (lo camin deu èsser indicat)\n"
 
-#: gio/gsettings-tool.c:92
+#: ../gio/gsettings-tool.c:92
 msgid "Empty path given.\n"
 msgstr "Camin indicat void.\n"
 
-#: gio/gsettings-tool.c:98
+#: ../gio/gsettings-tool.c:98
 msgid "Path must begin with a slash (/)\n"
 msgstr "Un camin deu començar per una barra oblica (/)\n"
 
-#: gio/gsettings-tool.c:104
+#: ../gio/gsettings-tool.c:104
 msgid "Path must end with a slash (/)\n"
 msgstr "Un camin deu s'acabar per una barra oblica (/)\n"
 
-#: gio/gsettings-tool.c:110
+#: ../gio/gsettings-tool.c:110
 msgid "Path must not contain two adjacent slashes (//)\n"
 msgstr "Un camin deu pas conténer doas barras oblicas de seguida (//)\n"
 
-#: gio/gsettings-tool.c:538
+#: ../gio/gsettings-tool.c:489
 msgid "The provided value is outside of the valid range\n"
 msgstr "La valor donada es en defòra del domeni de validitat\n"
 
-#: gio/gsettings-tool.c:545
+#: ../gio/gsettings-tool.c:496
 msgid "The key is not writable\n"
 msgstr "La clau pòt pas èsser escrita\n"
 
-#: gio/gsettings-tool.c:581
+#: ../gio/gsettings-tool.c:532
 msgid "List the installed (non-relocatable) schemas"
 msgstr "Listar los esquèmas (non-readreçables) installats"
 
-#: gio/gsettings-tool.c:587
+#: ../gio/gsettings-tool.c:538
 msgid "List the installed relocatable schemas"
 msgstr "Listar los esquèmas readreçables installats"
 
-#: gio/gsettings-tool.c:593
+#: ../gio/gsettings-tool.c:544
 msgid "List the keys in SCHEMA"
 msgstr "Listar las claus del ESQUÈMA"
 
-#: gio/gsettings-tool.c:594 gio/gsettings-tool.c:600 gio/gsettings-tool.c:643
+#: ../gio/gsettings-tool.c:545 ../gio/gsettings-tool.c:551
+#: ../gio/gsettings-tool.c:594
 msgid "SCHEMA[:PATH]"
 msgstr "ESQUÈMA[:CAMIN]"
 
-#: gio/gsettings-tool.c:599
+#: ../gio/gsettings-tool.c:550
 msgid "List the children of SCHEMA"
 msgstr "Listar los enfants del ESQUÈMA"
 
-#: gio/gsettings-tool.c:605
+#: ../gio/gsettings-tool.c:556
 msgid ""
 "List keys and values, recursively\n"
 "If no SCHEMA is given, list all keys\n"
@@ -3818,89 +3093,67 @@ msgstr ""
 "Listar las claus e las valors recursivament\n"
 "Se cap d'ESQUÈMA es pas indicat, listar totas las claus\n"
 
-#: gio/gsettings-tool.c:607
+#: ../gio/gsettings-tool.c:558
 msgid "[SCHEMA[:PATH]]"
 msgstr "[ESQUÈMA[:CAMIN]]"
 
-#: gio/gsettings-tool.c:612
+#: ../gio/gsettings-tool.c:563
 msgid "Get the value of KEY"
 msgstr "Obténer la valor de KEY"
 
-#: gio/gsettings-tool.c:613 gio/gsettings-tool.c:619 gio/gsettings-tool.c:625
-#: gio/gsettings-tool.c:637 gio/gsettings-tool.c:649
+#: ../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
 msgid "SCHEMA[:PATH] KEY"
 msgstr "ESQUÈMA[:CAMIN] CLAU"
 
-#: gio/gsettings-tool.c:618
+#: ../gio/gsettings-tool.c:569
 msgid "Query the range of valid values for KEY"
 msgstr "Demandar la plaja de validitat de las valors de la CLAU"
 
-#: gio/gsettings-tool.c:624
+#: ../gio/gsettings-tool.c:575
 msgid "Query the description for KEY"
 msgstr "Demandar la descripcion per la CLAU"
 
-#: gio/gsettings-tool.c:630
+#: ../gio/gsettings-tool.c:581
 msgid "Set the value of KEY to VALUE"
 msgstr "Definir la valor de CLAU a VALOR"
 
-#: gio/gsettings-tool.c:631
+#: ../gio/gsettings-tool.c:582
 msgid "SCHEMA[:PATH] KEY VALUE"
 msgstr "ESQUÈMA[:CAMIN] CLAU VALOR"
 
-#: gio/gsettings-tool.c:636
+#: ../gio/gsettings-tool.c:587
 msgid "Reset KEY to its default value"
 msgstr "Restablir CLAU a sa valor per defaut"
 
-#: gio/gsettings-tool.c:642
+#: ../gio/gsettings-tool.c:593
 msgid "Reset all keys in SCHEMA to their defaults"
 msgstr "Reïnicializar totas las claus de ESQUÈMA a lors valors per defaut"
 
-#: gio/gsettings-tool.c:648
+#: ../gio/gsettings-tool.c:599
 msgid "Check if KEY is writable"
 msgstr "Testar se CLAU es inscriptible"
 
-#: gio/gsettings-tool.c:654
+#: ../gio/gsettings-tool.c:605
 msgid ""
 "Monitor KEY for changes.\n"
 "If no KEY is specified, monitor all keys in SCHEMA.\n"
 "Use ^C to stop monitoring.\n"
 msgstr ""
-"Controlar las modificacions de CLAU.\n"
-"Se CLAU es pas definit, contròla totas las claus dins ESQUÈMA.\n"
-"Quichar ^C per metre fin al contròle.\n"
+"Contrarotlar las modificacions de CLAU.\n"
+"Se CLAU es pas definit, contraròtla totas las claus dins ESQUÈMA.\n"
+"Quichar ^C per metre fin al contraròtle.\n"
 
-#: gio/gsettings-tool.c:657
+#: ../gio/gsettings-tool.c:608
 msgid "SCHEMA[:PATH] [KEY]"
 msgstr "ESQUÈMA[:CAMIN] [CLAU]"
 
-#: gio/gsettings-tool.c:669
-#| 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"
-#| "  describe                  Queries the description 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:620
 msgid ""
 "Usage:\n"
 "  gsettings --version\n"
-"  gsettings [--schemadir SCHEMADIR] COMMAND [ARGS]\n"
+"  gsettings [--schemadir SCHEMADIR] COMMAND [ARGS...]\n"
 "\n"
 "Commands:\n"
 "  help                      Show this information\n"
@@ -3918,35 +3171,32 @@ msgid ""
 "  writable                  Check if a key is writable\n"
 "  monitor                   Watch for changes\n"
 "\n"
-"Use “gsettings help COMMAND” to get detailed help.\n"
+"Use 'gsettings help COMMAND' to get detailed help.\n"
 "\n"
 msgstr ""
 "Utilizacion :\n"
 "  gsettings --version\n"
-"  gsettings [--schemadir REPERTÒRI2ESQUÈMA] COMANDA [PARAMÈTRES]\n"
+"  gsettings [--schemadir REPERTÒRI2ESQUÈMA] COMANDA [PARAMÈTRES...]\n"
 "\n"
 "Comandas :\n"
 "  help                      Aficha la presenta informacion\n"
 "  list-schemas              Lista los esquèmas installats\n"
 "  list-relocatable-schemas  Lista los esquèmas readreçables\n"
 "  list-keys                 Lista las claus dins un esquèma\n"
-"  list-children             Lista los enfants dun esquèma\n"
+"  list-children             Lista los enfants d'un esquèma\n"
 "  list-recursively          Lista las claus e las valors, recursivament\n"
 "  range                     Demanda lo domeni de validitat de la clau\n"
-"  describe                  Demanda la descripcion de la clau\n"
-"  get                       Renvia la valor d’una clau\n"
-"  set                       Definís la valor d’una clau\n"
-"  reset                     Restablís la valor per defaut d’una clau\n"
-"  reset-recursively         Restablís totas las valors dins un esquèma "
-"donat\n"
+"  get                       Renvia la valor d'una clau\n"
+"  set                       Definís la valor d'una clau\n"
+"  reset                     Restablís la valor per defaut d'una clau\n"
+"  reset-recursively         Restablís totas las valors dins un esquèma donat\n"
 "  writable                  Tèsta se la clau es inscriptibla\n"
-"  monitor                   Contròla las modificacions\n"
+"  monitor                   Contraròtla las modificacions\n"
 "\n"
-"Picatz « gsettings help COMMANDE » per una ajuda detalhada.\n"
+"Picatz 'gsettings help COMANDA' per una ajuda detalhada.\n"
 "\n"
 
-#: gio/gsettings-tool.c:693
-#, c-format
+#: ../gio/gsettings-tool.c:644
 msgid ""
 "Usage:\n"
 "  gsettings [--schemadir SCHEMADIR] %s %s\n"
@@ -3960,11 +3210,11 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gsettings-tool.c:699
+#: ../gio/gsettings-tool.c:650
 msgid "  SCHEMADIR A directory to search for additional schemas\n"
 msgstr "  REPERTÒRI2ESQUÈMA Un repertòri de recèrca d'esquèmas suplementaris\n"
 
-#: gio/gsettings-tool.c:707
+#: ../gio/gsettings-tool.c:658
 msgid ""
 "  SCHEMA    The name of the schema\n"
 "  PATH      The path, for relocatable schemas\n"
@@ -3972,281 +3222,222 @@ msgstr ""
 "  ESQUÈMA      Lo nom de l'esquèma\n"
 "  CAMIN      Lo camin, pels esquèmas readreçables\n"
 
-#: gio/gsettings-tool.c:712
+#: ../gio/gsettings-tool.c:663
 msgid "  KEY       The (optional) key within the schema\n"
 msgstr "  CLAU       La clau (opcionala) dins l'esquèma\n"
 
-#: gio/gsettings-tool.c:716
+#: ../gio/gsettings-tool.c:667
 msgid "  KEY       The key within the schema\n"
 msgstr "  CLAU       La clau dins l'esquèma\n"
 
-#: gio/gsettings-tool.c:720
+#: ../gio/gsettings-tool.c:671
 msgid "  VALUE     The value to set\n"
 msgstr "  VALOR    La valor a definir\n"
 
-#: gio/gsettings-tool.c:775
-#, c-format
+#: ../gio/gsettings-tool.c:726
 msgid "Could not load schemas from %s: %s\n"
 msgstr "Impossible de cargar los esquèmas dempuèi %s : %s\n"
 
-#: gio/gsettings-tool.c:787
+#: ../gio/gsettings-tool.c:738
 msgid "No schemas installed\n"
 msgstr "Cap de fichièr esquèma pas installat\n"
 
-#: gio/gsettings-tool.c:866
+#: ../gio/gsettings-tool.c:809
 msgid "Empty schema name given\n"
 msgstr "Nom d'esquèma provesit void\n"
 
-#: gio/gsettings-tool.c:921
-#, c-format, c-format
-#| msgid "No such key '%s'\n"
-msgid "No such key “%s”\n"
+#: ../gio/gsettings-tool.c:864
+msgid "No such key '%s'\n"
 msgstr "La clau « %s » existís pas\n"
 
-#: gio/gsocket.c:384
+#: ../gio/gsocket.c:364
 msgid "Invalid socket, not initialized"
 msgstr "Connector invalid, pas inicializat"
 
-#: gio/gsocket.c:391
-#, c-format
+#: ../gio/gsocket.c:371
 msgid "Invalid socket, initialization failed due to: %s"
 msgstr "Connector invalid, l'inicializacion a fracassat en rason de : %s"
 
-#: gio/gsocket.c:399
+#: ../gio/gsocket.c:379
 msgid "Socket is already closed"
 msgstr "Lo connector es ja tampat"
 
-#: gio/gsocket.c:414 gio/gsocket.c:3034 gio/gsocket.c:4244 gio/gsocket.c:4302
+#: ../gio/gsocket.c:394 ../gio/gsocket.c:2751 ../gio/gsocket.c:3897
+#: ../gio/gsocket.c:3952
 msgid "Socket I/O timed out"
 msgstr "Entradas/sortidas fòra relambi sul connector"
 
-#: gio/gsocket.c:549
-#, c-format
+#: ../gio/gsocket.c:526
 msgid "creating GSocket from fd: %s"
 msgstr "creacion de GSocket a partir del descriptor de fichièr : %s"
 
-#: gio/gsocket.c:578 gio/gsocket.c:632 gio/gsocket.c:639
-#, c-format
+#: ../gio/gsocket.c:554 ../gio/gsocket.c:608 ../gio/gsocket.c:615
 msgid "Unable to create socket: %s"
 msgstr "Impossible de crear lo connector : %s"
 
-#: gio/gsocket.c:632
+#: ../gio/gsocket.c:608
 msgid "Unknown family was specified"
 msgstr "Indicacion d'una familha desconeguda"
 
-#: gio/gsocket.c:639
+#: ../gio/gsocket.c:615
 msgid "Unknown protocol was specified"
 msgstr "Indicacion d'un protocòl desconegut"
 
-#: gio/gsocket.c:1130
+#: ../gio/gsocket.c:1104
 #, c-format
 msgid "Cannot use datagram operations on a non-datagram socket."
 msgstr ""
 "Impossible d'utilizar d'operacions datagrama sus un connector non datagrama."
 
-#: gio/gsocket.c:1147
+#: ../gio/gsocket.c:1121
 #, c-format
 msgid "Cannot use datagram operations on a socket with a timeout set."
 msgstr ""
 "Impossible d'utilizar d'operacions datagrama sus un connector dotat d'un "
 "relambi d'expiracion."
 
-#: gio/gsocket.c:1954
-#, c-format
+#: ../gio/gsocket.c:1925
 msgid "could not get local address: %s"
 msgstr "impossible d'obténer l'adreça locala : %s"
 
-#: gio/gsocket.c:2000
-#, c-format
+#: ../gio/gsocket.c:1968
 msgid "could not get remote address: %s"
 msgstr "impossible d'obténer l'adreça distanta : %s"
 
-#: gio/gsocket.c:2066
-#, c-format
+#: ../gio/gsocket.c:2034
 msgid "could not listen: %s"
 msgstr "impossible d'escotar : %s"
 
-#: gio/gsocket.c:2168
-#, c-format
+#: ../gio/gsocket.c:2133
 msgid "Error binding to address: %s"
 msgstr "Error al moment de ligason a l'adreça : %s"
 
-#: gio/gsocket.c:2226 gio/gsocket.c:2263 gio/gsocket.c:2373 gio/gsocket.c:2398
-#: gio/gsocket.c:2471 gio/gsocket.c:2529 gio/gsocket.c:2547
-#, c-format
+#: ../gio/gsocket.c:2248 ../gio/gsocket.c:2285
 msgid "Error joining multicast group: %s"
 msgstr "Error al moment de la connexion al grop multicast : %s"
 
-#: gio/gsocket.c:2227 gio/gsocket.c:2264 gio/gsocket.c:2374 gio/gsocket.c:2399
-#: gio/gsocket.c:2472 gio/gsocket.c:2530 gio/gsocket.c:2548
-#, c-format
+#: ../gio/gsocket.c:2249 ../gio/gsocket.c:2286
 msgid "Error leaving multicast group: %s"
 msgstr "Error al moment de la desconnexion del grop multicast : %s"
 
-#: gio/gsocket.c:2228
+#: ../gio/gsocket.c:2250
 msgid "No support for source-specific multicast"
 msgstr "Pas cap de presa en carga pel multicast especific a la font"
 
-#: gio/gsocket.c:2375
-#| msgid "Unsupported socket address"
-msgid "Unsupported socket family"
-msgstr "Familha de connector ret pas presa en carga"
-
-#: gio/gsocket.c:2400
-msgid "source-specific not an IPv4 address"
-msgstr "source-specific es pas una adreça IPv4"
-
-#: gio/gsocket.c:2418 gio/gsocket.c:2447 gio/gsocket.c:2497
-#, c-format
-msgid "Interface not found: %s"
-msgstr "Interfàcia introbabla : %s"
-
-#: gio/gsocket.c:2434
-#, c-format
-msgid "Interface name too long"
-msgstr "Nom d’interfàcia tròp long"
-
-#: gio/gsocket.c:2473
-#| msgid "No support for source-specific multicast"
-msgid "No support for IPv4 source-specific multicast"
-msgstr "Pas cap de presa en carga pel multicast IPv4 especific a la font"
-
-#: gio/gsocket.c:2531
-#| msgid "No support for source-specific multicast"
-msgid "No support for IPv6 source-specific multicast"
-msgstr "Pas cap de presa en carga pel multicast IPv6 especific a la font"
-
-#: gio/gsocket.c:2740
-#, c-format
+#: ../gio/gsocket.c:2470
 msgid "Error accepting connection: %s"
 msgstr "Error d'acceptacion de la connexion : %s"
 
-#: gio/gsocket.c:2864
+#: ../gio/gsocket.c:2593
 msgid "Connection in progress"
 msgstr "Connexion en cors"
 
-#: gio/gsocket.c:2913
+#: ../gio/gsocket.c:2644
 msgid "Unable to get pending error: "
 msgstr "Impossible d'obténer l'error actuala : "
 
-#: gio/gsocket.c:3097
-#, c-format
+#: ../gio/gsocket.c:2816
 msgid "Error receiving data: %s"
 msgstr "Error al moment de la recepcion de las donadas : %s"
 
-#: gio/gsocket.c:3292
-#, c-format
+#: ../gio/gsocket.c:3013
 msgid "Error sending data: %s"
 msgstr "Error al moment del mandadís de las donadas : %s"
 
-#: gio/gsocket.c:3479
-#, c-format
+#: ../gio/gsocket.c:3200
 msgid "Unable to shutdown socket: %s"
 msgstr "Impossible de tampar lo connector : %s"
 
-#: gio/gsocket.c:3560
-#, c-format
+#: ../gio/gsocket.c:3281
 msgid "Error closing socket: %s"
 msgstr "Error al moment de la tampadura del connector : %s"
 
-#: gio/gsocket.c:4237
-#, c-format
+#: ../gio/gsocket.c:3890
 msgid "Waiting for socket condition: %s"
 msgstr "En espèra de l'estat del connector : %s"
 
-#: gio/gsocket.c:4711 gio/gsocket.c:4791 gio/gsocket.c:4969
-#, c-format
+#: ../gio/gsocket.c:4362 ../gio/gsocket.c:4442 ../gio/gsocket.c:4620
 msgid "Error sending message: %s"
 msgstr "Error de mandadís de messatge : %s"
 
-#: gio/gsocket.c:4735
+#: ../gio/gsocket.c:4386
 msgid "GSocketControlMessage not supported on Windows"
 msgstr "GSocketControlMessage es pas pres en carga per Windows"
 
-#: gio/gsocket.c:5188 gio/gsocket.c:5261 gio/gsocket.c:5487
-#, c-format
+#: ../gio/gsocket.c:4839 ../gio/gsocket.c:4912 ../gio/gsocket.c:5139
 msgid "Error receiving message: %s"
 msgstr "Error al moment de la recepcion del messatge : %s"
 
-#: gio/gsocket.c:5759
-#, c-format
+#: ../gio/gsocket.c:5411
 msgid "Unable to read socket credentials: %s"
 msgstr "Impossible de legir las donadas d'autentificacion del connector : %s"
 
-#: gio/gsocket.c:5768
+#: ../gio/gsocket.c:5420
 msgid "g_socket_get_credentials not implemented for this OS"
 msgstr ""
 "g_socket_get_credentials es pas implementat sus aqueste sistèma operatiu"
 
-#: gio/gsocketclient.c:176
-#, c-format
+#: ../gio/gsocketclient.c:176
 msgid "Could not connect to proxy server %s: "
 msgstr "Impossible de se connectar al servidor mandatari %s : "
 
-#: gio/gsocketclient.c:190
-#, c-format
+#: ../gio/gsocketclient.c:190
 msgid "Could not connect to %s: "
 msgstr "Impossible de se connectar a %s : "
 
-#: gio/gsocketclient.c:192
+#: ../gio/gsocketclient.c:192
 msgid "Could not connect: "
 msgstr "Impossible de se connectar : "
 
-#: gio/gsocketclient.c:1027 gio/gsocketclient.c:1599
+#: ../gio/gsocketclient.c:1027 ../gio/gsocketclient.c:1599
 msgid "Unknown error on connect"
 msgstr "Error desconeguda a la connexion"
 
-#: gio/gsocketclient.c:1081 gio/gsocketclient.c:1535
+#: ../gio/gsocketclient.c:1081 ../gio/gsocketclient.c:1535
 msgid "Proxying over a non-TCP connection is not supported."
 msgstr "L'usatge d'un proxy es pas pres en carga dins una connexion non-TCP."
 
-#: gio/gsocketclient.c:1110 gio/gsocketclient.c:1561
-#, c-format, c-format
-#| msgid "Proxy protocol '%s' is not supported."
-msgid "Proxy protocol “%s” is not supported."
+#: ../gio/gsocketclient.c:1110 ../gio/gsocketclient.c:1561
+msgid "Proxy protocol '%s' is not supported."
 msgstr "Lo protocòl del proxy « %s » es pas pres en carga."
 
-#: gio/gsocketlistener.c:225
+#: ../gio/gsocketlistener.c:218
 msgid "Listener is already closed"
 msgstr "Lo processus d'escota es ja tampat"
 
-#: gio/gsocketlistener.c:271
+#: ../gio/gsocketlistener.c:264
 msgid "Added socket is closed"
 msgstr "Lo connector ret apondut es tampat"
 
-#: gio/gsocks4aproxy.c:118
-#, c-format, c-format
-#| msgid "SOCKSv4 does not support IPv6 address '%s'"
-msgid "SOCKSv4 does not support IPv6 address “%s”"
-msgstr "SOCKSv4 pren pas en carga l’adreça IPv6 « %s »"
+#: ../gio/gsocks4aproxy.c:118
+msgid "SOCKSv4 does not support IPv6 address '%s'"
+msgstr "SOCKSv4 pren pas en carga l'adreça IPv6 « %s »"
 
-#: gio/gsocks4aproxy.c:136
+#: ../gio/gsocks4aproxy.c:136
 msgid "Username is too long for SOCKSv4 protocol"
 msgstr "Lo nom d'utilizaire es tròp long pel protocòl SOCKSv4"
 
-#: gio/gsocks4aproxy.c:153
-#, c-format, c-format
-#| msgid "Hostname '%s' is too long for SOCKSv4 protocol"
-msgid "Hostname “%s” is too long for SOCKSv4 protocol"
-msgstr "Lo nom d’òste « %s » es tròp long pel protocòl SOCKSv4"
+#: ../gio/gsocks4aproxy.c:153
+msgid "Hostname '%s' is too long for SOCKSv4 protocol"
+msgstr "Lo nom d'òste « %s » es tròp long pel protocòl SOCKSv4"
 
-#: gio/gsocks4aproxy.c:179
+#: ../gio/gsocks4aproxy.c:179
 msgid "The server is not a SOCKSv4 proxy server."
 msgstr "Lo servidor es pas un servidor mandatari SOCKSv4."
 
-#: gio/gsocks4aproxy.c:186
+#: ../gio/gsocks4aproxy.c:186
 msgid "Connection through SOCKSv4 server was rejected"
 msgstr "La connexion a travèrs lo servidor SOCKSv4 es estada regetada"
 
-#: gio/gsocks5proxy.c:153 gio/gsocks5proxy.c:324 gio/gsocks5proxy.c:334
+#: ../gio/gsocks5proxy.c:153 ../gio/gsocks5proxy.c:324 ../gio/gsocks5proxy.c:334
 msgid "The server is not a SOCKSv5 proxy server."
 msgstr "Lo servidor es pas un servidor mandatari SOCKSv5."
 
-#: gio/gsocks5proxy.c:167
+#: ../gio/gsocks5proxy.c:167
 msgid "The SOCKSv5 proxy requires authentication."
 msgstr "Lo servidor mandatari SOCKSv5 necessita una autentificacion."
 
-#: gio/gsocks5proxy.c:177
+#: ../gio/gsocks5proxy.c:177
 msgid ""
 "The SOCKSv5 proxy requires an authentication method that is not supported by "
 "GLib."
@@ -4254,1370 +3445,960 @@ msgstr ""
 "Lo protocòl SOCKSv5 necessita un metòde d'autentificacion qu'es pas presa en "
 "carga per GLib."
 
-#: gio/gsocks5proxy.c:206
+#: ../gio/gsocks5proxy.c:206
 msgid "Username or password is too long for SOCKSv5 protocol."
 msgstr "Lo nom d'utilizaire o lo senhal es tròp long pel protocòl SOCKSv5."
 
-#: gio/gsocks5proxy.c:236
+#: ../gio/gsocks5proxy.c:236
 msgid "SOCKSv5 authentication failed due to wrong username or password."
 msgstr ""
 "L'autentificacion SOCKSv5 a fracassat a causa d'un marrit nom d'utilizaire o "
 "senhal."
 
-#: gio/gsocks5proxy.c:286
-#, c-format, c-format
-#| msgid "Hostname '%s' is too long for SOCKSv5 protocol"
-msgid "Hostname “%s” is too long for SOCKSv5 protocol"
-msgstr "Lo nom d’òste « %s » es tròp long pel protocòl SOCKSv5"
+#: ../gio/gsocks5proxy.c:286
+msgid "Hostname '%s' is too long for SOCKSv5 protocol"
+msgstr "Lo nom d'òste « %s » es tròp long pel protocòl SOCKSv5"
 
-#: gio/gsocks5proxy.c:348
+#: ../gio/gsocks5proxy.c:348
 msgid "The SOCKSv5 proxy server uses unknown address type."
 msgstr "Lo servidor mandatari SOCKSv5 utiliza un tipe d'adreça desconegut."
 
-#: gio/gsocks5proxy.c:355
+#: ../gio/gsocks5proxy.c:355
 msgid "Internal SOCKSv5 proxy server error."
 msgstr "Error intèrna de servidor mandatari SOCKSv5."
 
-#: gio/gsocks5proxy.c:361
+#: ../gio/gsocks5proxy.c:361
 msgid "SOCKSv5 connection not allowed by ruleset."
 msgstr "La connexion SOCKSv5 es pas autorizada per la règla."
 
-#: gio/gsocks5proxy.c:368
+#: ../gio/gsocks5proxy.c:368
 msgid "Host unreachable through SOCKSv5 server."
 msgstr "L'òste es pas accessible a travèrs lo servidor SOCKSv5."
 
-#: gio/gsocks5proxy.c:374
+#: ../gio/gsocks5proxy.c:374
 msgid "Network unreachable through SOCKSv5 proxy."
 msgstr "La ret es pas accessibla a travèrs lo proxy SOCKSv5."
 
-#: gio/gsocks5proxy.c:380
+#: ../gio/gsocks5proxy.c:380
 msgid "Connection refused through SOCKSv5 proxy."
 msgstr "Connexion a travèrs lo servidor mandatari SOCKSv5 refusada."
 
-#: gio/gsocks5proxy.c:386
-#| msgid "SOCKSv5 proxy does not support 'connect' command."
-msgid "SOCKSv5 proxy does not support “connect” command."
-msgstr ""
-"Lo servidor mandatari SOCKSv5 pren pas en carga la comanda « connect »."
+#: ../gio/gsocks5proxy.c:386
+msgid "SOCKSv5 proxy does not support 'connect' command."
+msgstr "Lo servidor mandatari SOCKSv5 pren pas en carga la comanda « connect »."
 
-#: gio/gsocks5proxy.c:392
+#: ../gio/gsocks5proxy.c:392
 msgid "SOCKSv5 proxy does not support provided address type."
 msgstr ""
 "Lo servidor mandatari SOCKSv5 pren pas en carga lo tipe d'adreça provesit."
 
-#: gio/gsocks5proxy.c:398
+#: ../gio/gsocks5proxy.c:398
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Error desconeguda del servidor mandatari SOCKSv5."
 
-#: gio/gthemedicon.c:595
-#, c-format, c-format
-#| msgid "Can't handle version %d of GThemedIcon encoding"
-msgid "Can’t handle version %d of GThemedIcon encoding"
+#: ../gio/gthemedicon.c:518
+msgid "Can't handle version %d of GThemedIcon encoding"
 msgstr "Impossible de gerir la version %d de l'encodatge GThemedIcon"
 
-#: gio/gthreadedresolver.c:118
+#: ../gio/gthreadedresolver.c:118
 msgid "No valid addresses were found"
 msgstr "Cap d'adreça valida es pas estada trobada"
 
-#: gio/gthreadedresolver.c:213
-#, c-format, c-format
-#| msgid "Error reverse-resolving '%s': %s"
-msgid "Error reverse-resolving “%s”: %s"
+#: ../gio/gthreadedresolver.c:213
+msgid "Error reverse-resolving '%s': %s"
 msgstr "Error de resolucion invèrsa de « %s » : %s"
 
-#: gio/gthreadedresolver.c:549 gio/gthreadedresolver.c:628
-#: gio/gthreadedresolver.c:726 gio/gthreadedresolver.c:776
-#, c-format, c-format
-#| msgid "No DNS record of the requested type for '%s'"
-msgid "No DNS record of the requested type for “%s”"
-msgstr "Pas cap d'enregistrament DNS del tipe demandat per « %s »"
-
-#: gio/gthreadedresolver.c:554 gio/gthreadedresolver.c:731
-#, c-format, c-format
-#| msgid "Temporarily unable to resolve '%s'"
-msgid "Temporarily unable to resolve “%s”"
+#: ../gio/gthreadedresolver.c:550 ../gio/gthreadedresolver.c:630
+#: ../gio/gthreadedresolver.c:728 ../gio/gthreadedresolver.c:778
+msgid "No DNS record of the requested type for '%s'"
+msgstr "Cap d'enregistrament DNS del tipe pas demandat per « %s »"
+
+#: ../gio/gthreadedresolver.c:555 ../gio/gthreadedresolver.c:733
+msgid "Temporarily unable to resolve '%s'"
 msgstr "Impossible temporàriament de resòlvre « %s »"
 
-#: gio/gthreadedresolver.c:559 gio/gthreadedresolver.c:736
-#: gio/gthreadedresolver.c:844
-#, c-format, c-format
-#| msgid "Error resolving '%s'"
-msgid "Error resolving “%s”"
+#: ../gio/gthreadedresolver.c:560 ../gio/gthreadedresolver.c:738
+msgid "Error resolving '%s'"
 msgstr "Error de resolucion de « %s »"
 
-#: gio/gtlscertificate.c:250
+#: ../gio/gtlscertificate.c:250
 msgid "Cannot decrypt PEM-encoded private key"
 msgstr "Impossible de deschifrar la clau privada encodada-PEM"
 
-#: gio/gtlscertificate.c:255
+#: ../gio/gtlscertificate.c:255
 msgid "No PEM-encoded private key found"
 msgstr "Cap de clau privada pas encodada PEM trobada"
 
-#: gio/gtlscertificate.c:265
+#: ../gio/gtlscertificate.c:265
 msgid "Could not parse PEM-encoded private key"
 msgstr "Impossible d'analisar la clau privada encodada-PEM"
 
-#: gio/gtlscertificate.c:290
+#: ../gio/gtlscertificate.c:290
 msgid "No PEM-encoded certificate found"
 msgstr "Cap de certificat encodat-PEM pas trobat"
 
-#: gio/gtlscertificate.c:299
+#: ../gio/gtlscertificate.c:299
 msgid "Could not parse PEM-encoded certificate"
 msgstr "Impossible d'analisar lo certificat encodat-PEM"
 
-#: gio/gtlspassword.c:111
+#: ../gio/gtlspassword.c:111
 msgid ""
-"This is the last chance to enter the password correctly before your access "
-"is locked out."
+"This is the last chance to enter the password correctly before your access is "
+"locked out."
 msgstr ""
 "Aquò es vòstra darrièra chança de picar un senhal corrècte abans que vòstre "
 "accès siá blocat."
 
-#. 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:113
 msgid ""
-"Several passwords entered have been incorrect, and your access will be "
-"locked out after further failures."
+"Several password entered have been incorrect, and your access will be locked "
+"out after further failures."
 msgstr ""
-"Mantun senhal son estats incorrèctes, vòstre accès serà blocat "
-"aprèp qualques fracasses mai."
+"Mantun senhal picats son estats incorrèctes, vòstre accès serà blocat aprèp "
+"qualques fracasses mai."
 
-#: gio/gtlspassword.c:117
+#: ../gio/gtlspassword.c:115
 msgid "The password entered is incorrect."
 msgstr "Lo senhal picat es incorrècte."
 
-#: gio/gunixconnection.c:166 gio/gunixconnection.c:563
-#, c-format
+#: ../gio/gunixconnection.c:166 ../gio/gunixconnection.c:561
 msgid "Expecting 1 control message, got %d"
 msgid_plural "Expecting 1 control message, got %d"
-msgstr[0] "1 messatge de contròle esperat, %d recebut"
-msgstr[1] "1 messatge de contròle esperat, %d recebuts"
+msgstr[0] "1 messatge de contraròtle esperat, %d recebut"
+msgstr[1] "1 messatge de contraròtle esperat, %d recebuts"
 
-#: gio/gunixconnection.c:182 gio/gunixconnection.c:575
+#: ../gio/gunixconnection.c:182 ../gio/gunixconnection.c:573
 msgid "Unexpected type of ancillary data"
 msgstr "Tipe de donadas auxiliaras inesperat"
 
-#: gio/gunixconnection.c:200
-#, c-format
+#: ../gio/gunixconnection.c:200
 msgid "Expecting one fd, but got %d\n"
 msgid_plural "Expecting one fd, but got %d\n"
 msgstr[0] "Un descriptor de fichièr esperat, %d obtengut\n"
 msgstr[1] "Un descriptor de fichièr esperat, %d obtenguts\n"
 
-#: gio/gunixconnection.c:219
+#: ../gio/gunixconnection.c:219
 msgid "Received invalid fd"
 msgstr "Lo descriptor de fichièr recebut es pas valid"
 
-#: gio/gunixconnection.c:355
+#: ../gio/gunixconnection.c:355
 msgid "Error sending credentials: "
 msgstr "Error al moment del mandadís de l'identificacion : "
 
-#: gio/gunixconnection.c:504
-#, c-format
+#: ../gio/gunixconnection.c:503
 msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
 msgstr ""
 "Error al moment de la verificacion de l'activacion de SO_PASSCRED pel "
 "connector : %s"
 
-#: gio/gunixconnection.c:520
-#, c-format
+#: ../gio/gunixconnection.c:518
 msgid "Error enabling SO_PASSCRED: %s"
 msgstr "Error al moment de l'activacion de SO_PASSCRED : %s"
 
-#: gio/gunixconnection.c:549
+#: ../gio/gunixconnection.c:547
 msgid ""
 "Expecting to read a single byte for receiving credentials but read zero bytes"
 msgstr ""
 "Lectura d'un unic octet esperada a la recepcion de l'identificacion, mas pas "
-"cap d'octet legit"
+"cap d'octet lu"
 
-#: gio/gunixconnection.c:589
-#, c-format
+#: ../gio/gunixconnection.c:587
 msgid "Not expecting control message, but got %d"
-msgstr "Pas de messatge de contròle esperat, %d recebut(s)"
+msgstr "Pas de messatge de contraròtle esperat, %d recebut(s)"
 
-#: gio/gunixconnection.c:614
-#, c-format
+#: ../gio/gunixconnection.c:611
 msgid "Error while disabling SO_PASSCRED: %s"
 msgstr "Error al moment de la desactivacion de SO_PASSCRED : %s"
 
-#: gio/gunixinputstream.c:372 gio/gunixinputstream.c:393
-#, c-format
+#: ../gio/gunixinputstream.c:369 ../gio/gunixinputstream.c:390
 msgid "Error reading from file descriptor: %s"
 msgstr "Error de lectura a partir del descriptor de fichièr : %s"
 
-#: gio/gunixinputstream.c:426 gio/gunixoutputstream.c:411
-#: gio/gwin32inputstream.c:217 gio/gwin32outputstream.c:204
-#, c-format
+#: ../gio/gunixinputstream.c:423 ../gio/gunixoutputstream.c:409
+#: ../gio/gwin32inputstream.c:217 ../gio/gwin32outputstream.c:204
 msgid "Error closing file descriptor: %s"
 msgstr "Error de tampadura del descriptor de fichièr : %s"
 
-#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
+#: ../gio/gunixmounts.c:2329 ../gio/gunixmounts.c:2382
 msgid "Filesystem root"
 msgstr "Raiç del sistèma de fichièrs"
 
-#: gio/gunixoutputstream.c:358 gio/gunixoutputstream.c:378
-#, c-format
+#: ../gio/gunixoutputstream.c:355 ../gio/gunixoutputstream.c:376
 msgid "Error writing to file descriptor: %s"
 msgstr "Error d'escritura cap a lo descriptor de fichièr : %s"
 
-#: gio/gunixsocketaddress.c:243
+#: ../gio/gunixsocketaddress.c:239
 msgid "Abstract UNIX domain socket addresses not supported on this system"
 msgstr ""
 "Las adreças abstraitas de connector ret de domeni UNIX son pas presas en "
 "carga sus aqueste sistèma"
 
-#: gio/gvolume.c:438
-#| msgid "volume doesn't implement eject"
-msgid "volume doesn’t implement eject"
-msgstr "lo volum implementa pas l’ejeccion (« eject »)"
+#: ../gio/gvolume.c:437
+msgid "volume doesn't implement eject"
+msgstr "lo volum implementa pas l'ejeccion (« 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
-#| msgid "volume doesn't implement eject or eject_with_operation"
-msgid "volume doesn’t implement eject or eject_with_operation"
+#: ../gio/gvolume.c:514
+msgid "volume doesn't implement eject or eject_with_operation"
 msgstr ""
-"lo volum implementa pas lejeccion (« eject » o « eject_with_operation »)"
+"lo volum implementa pas l'ejeccion (« eject » o « eject_with_operation »)"
 
-#: gio/gwin32inputstream.c:185
-#, c-format
+#: ../gio/gwin32inputstream.c:185
 msgid "Error reading from handle: %s"
 msgstr "Error de lectura a partir de l'identificador : %s"
 
-#: gio/gwin32inputstream.c:232 gio/gwin32outputstream.c:219
-#, c-format
+#: ../gio/gwin32inputstream.c:232 ../gio/gwin32outputstream.c:219
 msgid "Error closing handle: %s"
 msgstr "Error de tampadura de l'identificador : %s"
 
-#: gio/gwin32outputstream.c:172
-#, c-format
+#: ../gio/gwin32outputstream.c:172
 msgid "Error writing to handle: %s"
 msgstr "Error al moment de l'escritura cap a l'identificador : %s"
 
-#: gio/gzlibcompressor.c:394 gio/gzlibdecompressor.c:347
+#: ../gio/gzlibcompressor.c:394 ../gio/gzlibdecompressor.c:347
 msgid "Not enough memory"
 msgstr "Memòria insufisenta"
 
-#: gio/gzlibcompressor.c:401 gio/gzlibdecompressor.c:354
-#, c-format
+#: ../gio/gzlibcompressor.c:401 ../gio/gzlibdecompressor.c:354
 msgid "Internal error: %s"
 msgstr "Error intèrna : %s"
 
-#: gio/gzlibcompressor.c:414 gio/gzlibdecompressor.c:368
+#: ../gio/gzlibcompressor.c:414 ../gio/gzlibdecompressor.c:368
 msgid "Need more input"
 msgstr "Entrada que necessita mai de donadas"
 
-#: gio/gzlibdecompressor.c:340
+#: ../gio/gzlibdecompressor.c:340
 msgid "Invalid compressed data"
 msgstr "Donadas compressadas invalidas"
 
-#: gio/tests/gdbus-daemon.c:18
+#: ../gio/tests/gdbus-daemon.c:18
 msgid "Address to listen on"
 msgstr "Adreça a escotar"
 
-#: gio/tests/gdbus-daemon.c:19
+#: ../gio/tests/gdbus-daemon.c:19
 msgid "Ignored, for compat with GTestDbus"
 msgstr "Ignorat, per compatibilitat amb GTestDbus"
 
-#: gio/tests/gdbus-daemon.c:20
+#: ../gio/tests/gdbus-daemon.c:20
 msgid "Print address"
 msgstr "Imprimir l'adreça"
 
-#: gio/tests/gdbus-daemon.c:21
+#: ../gio/tests/gdbus-daemon.c:21
 msgid "Print address in shell mode"
 msgstr "Imprimir l'adreça en mòde shell"
 
-#: gio/tests/gdbus-daemon.c:28
+#: ../gio/tests/gdbus-daemon.c:28
 msgid "Run a dbus service"
 msgstr "Executar un servici dbus"
 
-#: gio/tests/gdbus-daemon.c:42
+#: ../gio/tests/gdbus-daemon.c:42
 msgid "Wrong args\n"
 msgstr "Arguments incorrèctes\n"
 
-#: glib/gbookmarkfile.c:754
-#, c-format, c-format
-#| msgid "Unexpected attribute '%s' for element '%s'"
-msgid "Unexpected attribute “%s” for element “%s”"
-msgstr "Atribut « %s » inesperat per l’element « %s »"
-
-#: glib/gbookmarkfile.c:765 glib/gbookmarkfile.c:836 glib/gbookmarkfile.c:846
-#: glib/gbookmarkfile.c:955
-#, c-format, c-format
-#| msgid "Attribute '%s' of element '%s' not found"
-msgid "Attribute “%s” of element “%s” not found"
-msgstr "L’atribut « %s » de l’element « %s » es introbable"
-
-#: glib/gbookmarkfile.c:1164 glib/gbookmarkfile.c:1229
-#: glib/gbookmarkfile.c:1293 glib/gbookmarkfile.c:1303
-#, c-format, c-format
-#| msgid "Unexpected tag '%s', tag '%s' expected"
-msgid "Unexpected tag “%s”, tag “%s” expected"
+#: ../glib/gbookmarkfile.c:755
+msgid "Unexpected attribute '%s' for element '%s'"
+msgstr "Atribut « %s » inesperat per l'element « %s »"
+
+#: ../glib/gbookmarkfile.c:766 ../glib/gbookmarkfile.c:837
+#: ../glib/gbookmarkfile.c:847 ../glib/gbookmarkfile.c:954
+msgid "Attribute '%s' of element '%s' not found"
+msgstr "L'atribut « %s » de l'element « %s » es introbable"
+
+#: ../glib/gbookmarkfile.c:1124 ../glib/gbookmarkfile.c:1189
+#: ../glib/gbookmarkfile.c:1253 ../glib/gbookmarkfile.c:1263
+msgid "Unexpected tag '%s', tag '%s' expected"
 msgstr "Balisa « %s » inesperada. La balisa « %s » èra esperada"
 
-#: glib/gbookmarkfile.c:1189 glib/gbookmarkfile.c:1203
-#: glib/gbookmarkfile.c:1271 glib/gbookmarkfile.c:1317
-#, c-format, c-format
-#| msgid "Unexpected tag '%s' inside '%s'"
-msgid "Unexpected tag “%s” inside “%s”"
-msgstr "Balisa « %s » inesperada a l’interior de « %s »"
+#: ../glib/gbookmarkfile.c:1149 ../glib/gbookmarkfile.c:1163
+#: ../glib/gbookmarkfile.c:1231
+msgid "Unexpected tag '%s' inside '%s'"
+msgstr "Balisa « %s » inesperada a l'interior de « %s »"
 
-#: glib/gbookmarkfile.c:1813
+#: ../glib/gbookmarkfile.c:1757
 msgid "No valid bookmark file found in data dirs"
 msgstr ""
 "Impossible de trobar un fichièr de signets valid dins los repertòris de "
 "donadas"
 
-#: glib/gbookmarkfile.c:2014
-#, c-format, c-format
-#| msgid "A bookmark for URI '%s' already exists"
-msgid "A bookmark for URI “%s” already exists"
-msgstr "Un signet per l’URI « %s » existís ja"
-
-#: glib/gbookmarkfile.c:2060 glib/gbookmarkfile.c:2218
-#: glib/gbookmarkfile.c:2303 glib/gbookmarkfile.c:2383
-#: glib/gbookmarkfile.c:2468 glib/gbookmarkfile.c:2551
-#: glib/gbookmarkfile.c:2629 glib/gbookmarkfile.c:2708
-#: glib/gbookmarkfile.c:2750 glib/gbookmarkfile.c:2847
-#: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
-#: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
-#, c-format, c-format
-#| msgid "No bookmark found for URI '%s'"
-msgid "No bookmark found for URI “%s”"
-msgstr "Cap de signet pas trobat per l’URI « %s »"
-
-#: glib/gbookmarkfile.c:2392
-#, c-format, 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 "Cap de tipe MIME pas definit dins lo signet per l’URI « %s »"
-
-#: glib/gbookmarkfile.c:2477
-#, c-format, 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 "Cap d'indicator privat es pas definit dins lo signet per l’URI « %s »"
-
-#: glib/gbookmarkfile.c:2856
-#, c-format, c-format
-#| msgid "No groups set in bookmark for URI '%s'"
-msgid "No groups set in bookmark for URI “%s”"
-msgstr "Cap de grop es pas definit dins lo signet per l’URI « %s »"
-
-#: glib/gbookmarkfile.c:3255 glib/gbookmarkfile.c:3412
-#, c-format, c-format
-#| msgid "No application with name '%s' registered a bookmark for '%s'"
-msgid "No application with name “%s” registered a bookmark for “%s”"
+#: ../glib/gbookmarkfile.c:1958
+msgid "A bookmark for URI '%s' already exists"
+msgstr "Un signet per l'URI « %s » existís ja"
+
+#: ../glib/gbookmarkfile.c:2004 ../glib/gbookmarkfile.c:2162
+#: ../glib/gbookmarkfile.c:2247 ../glib/gbookmarkfile.c:2327
+#: ../glib/gbookmarkfile.c:2412 ../glib/gbookmarkfile.c:2495
+#: ../glib/gbookmarkfile.c:2573 ../glib/gbookmarkfile.c:2652
+#: ../glib/gbookmarkfile.c:2694 ../glib/gbookmarkfile.c:2791
+#: ../glib/gbookmarkfile.c:2911 ../glib/gbookmarkfile.c:3101
+#: ../glib/gbookmarkfile.c:3177 ../glib/gbookmarkfile.c:3345
+#: ../glib/gbookmarkfile.c:3434 ../glib/gbookmarkfile.c:3523
+#: ../glib/gbookmarkfile.c:3639
+msgid "No bookmark found for URI '%s'"
+msgstr "Cap de signet pas trobat per l'URI « %s »"
+
+#: ../glib/gbookmarkfile.c:2336
+msgid "No MIME type defined in the bookmark for URI '%s'"
+msgstr "Cap de tipe MIME pas definit dins lo signet per l'URI « %s »"
+
+#: ../glib/gbookmarkfile.c:2421
+msgid "No private flag has been defined in bookmark for URI '%s'"
+msgstr "Cap d'indicator privat es pas definit dins lo signet per l'URI « %s »"
+
+#: ../glib/gbookmarkfile.c:2800
+msgid "No groups set in bookmark for URI '%s'"
+msgstr "Cap de grop es pas definit dins lo signet per l'URI « %s »"
+
+#: ../glib/gbookmarkfile.c:3198 ../glib/gbookmarkfile.c:3355
+msgid "No application with name '%s' registered a bookmark for '%s'"
 msgstr "Cap d'aplicacion nomenada « %s » a pas enregistrat un signet per « %s »"
 
-#: glib/gbookmarkfile.c:3435
-#, c-format, c-format
-#| msgid "Failed to expand exec line '%s' with URI '%s'"
-msgid "Failed to expand exec line “%s” with URI “%s”"
-msgstr "Fracàs del desvolopament de la linha de comanda « %s » per l’URI « %s »"
-
-#: glib/gconvert.c:473
-#| msgid "Invalid sequence in conversion input"
-msgid "Unrepresentable character in conversion input"
-msgstr "Caractèr non afichable dins l’entrada del convertidor"
+#: ../glib/gbookmarkfile.c:3378
+msgid "Failed to expand exec line '%s' with URI '%s'"
+msgstr "Fracàs del desvolopament de la linha de comanda « %s » per l'URI « %s »"
 
-#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
-#: glib/gutf8.c:1318
+#: ../glib/gconvert.c:477 ../glib/gutf8.c:851 ../glib/gutf8.c:1063
+#: ../glib/gutf8.c:1200 ../glib/gutf8.c:1304
 msgid "Partial character sequence at end of input"
 msgstr "Sequéncia de caractèrs incompleta en fin d'entrada"
 
-#: glib/gconvert.c:769
-#, c-format, c-format
-#| msgid "Cannot convert fallback '%s' to codeset '%s'"
-msgid "Cannot convert fallback “%s” to codeset “%s”"
-msgstr ""
-"Impossible de convertir lo caractèr de replec « %s » dins lo jòc de còdis « %"
-"s »"
-
-#: glib/gconvert.c:940
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion input"
-msgstr "Octet nul imbricat dins l’entrada del convertidor"
-
-#: glib/gconvert.c:961
-#| msgid "Invalid byte sequence in conversion input"
-msgid "Embedded NUL byte in conversion output"
-msgstr "Octet nul imbricat dins la sortida del convertidor"
-
-#: glib/gconvert.c:1649
-#, c-format, 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 "L’URI « %s » es pas una URI absoluta qu'utilize lo protocòl « file »"
-
-#: glib/gconvert.c:1659
-#, c-format, c-format
-#| msgid "The local file URI '%s' may not include a '#'"
-msgid "The local file URI “%s” may not include a “#”"
-msgstr "L’URI de fichièr local « %s » pòt pas inclure un caractèr « # »"
-
-#: glib/gconvert.c:1676
-#, c-format, c-format
-#| msgid "The URI '%s' is invalid"
-msgid "The URI “%s” is invalid"
-msgstr "L’URI « %s » es pas valida"
-
-#: glib/gconvert.c:1688
-#, c-format, c-format
-#| msgid "The hostname of the URI '%s' is invalid"
-msgid "The hostname of the URI “%s” is invalid"
-msgstr "Lo nom d’òste de l’URI « %s » es pas valid"
-
-#: glib/gconvert.c:1704
-#, c-format, c-format
-#| msgid "The URI '%s' contains invalidly escaped characters"
-msgid "The URI “%s” contains invalidly escaped characters"
-msgstr "L’URI « %s » conten de caractèrs d’escapament incorrèctes"
-
-#: glib/gconvert.c:1776
-#, c-format, c-format
-#| msgid "The pathname '%s' is not an absolute path"
-msgid "The pathname “%s” is not an absolute path"
-msgstr "Lo nom de camin « %s » es pas un camin absolut"
+#: ../glib/gconvert.c:742
+msgid "Cannot convert fallback '%s' to codeset '%s'"
+msgstr ""
+"Impossible de convertir lo caractèr de replec « %s » dins lo jòc de còdis « "
+"%s »"
+
+#: ../glib/gconvert.c:1567
+msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
+msgstr "L'URI « %s » es pas una URI absoluda qu'utiliza lo protocòl « file »"
+
+#: ../glib/gconvert.c:1577
+msgid "The local file URI '%s' may not include a '#'"
+msgstr "L'URI de fichièr local « %s » pòt pas inclure un caractèr « # »"
+
+#: ../glib/gconvert.c:1594
+msgid "The URI '%s' is invalid"
+msgstr "L'URI « %s » es pas valid"
+
+#: ../glib/gconvert.c:1606
+msgid "The hostname of the URI '%s' is invalid"
+msgstr "Lo nom d'òste de l'URI « %s » es pas valid"
+
+#: ../glib/gconvert.c:1622
+msgid "The URI '%s' contains invalidly escaped characters"
+msgstr "L'URI « %s » conten de caractèrs d'escapament incorrèctes"
+
+#: ../glib/gconvert.c:1717
+msgid "The pathname '%s' is not an absolute path"
+msgstr "Lo camin « %s » es pas un camin absolu"
+
+#: ../glib/gconvert.c:1727
+msgid "Invalid hostname"
+msgstr "Nom d'òste invalid"
+
+#. Translators: 'before midday' indicator
+#: ../glib/gdatetime.c:201
+msgctxt "GDateTime"
+msgid "AM"
+msgstr "AM"
+
+#. Translators: 'after midday' indicator
+#: ../glib/gdatetime.c:203
+msgctxt "GDateTime"
+msgid "PM"
+msgstr "PM"
 
 #. Translators: this is the preferred format for expressing the date and the time
-#: glib/gdatetime.c:213
+#: ../glib/gdatetime.c:206
 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:216
+#: ../glib/gdatetime.c:209
 msgctxt "GDateTime"
 msgid "%m/%d/%y"
 msgstr "%d/%m/%y"
 
 #. Translators: this is the preferred format for expressing the time
-#: glib/gdatetime.c:219
+#: ../glib/gdatetime.c:212
 msgctxt "GDateTime"
 msgid "%H:%M:%S"
 msgstr "%H:%M:%S"
 
 #. Translators: this is the preferred format for expressing 12 hour time
-#: glib/gdatetime.c:222
+#: ../glib/gdatetime.c:215
 msgctxt "GDateTime"
 msgid "%I:%M:%S %p"
 msgstr "%I:%M:%S %p"
 
-#. 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:261
+#: ../glib/gdatetime.c:228
 msgctxt "full month name"
 msgid "January"
 msgstr "genièr"
 
-#: glib/gdatetime.c:263
+#: ../glib/gdatetime.c:230
 msgctxt "full month name"
 msgid "February"
 msgstr "febrièr"
 
-#: glib/gdatetime.c:265
+#: ../glib/gdatetime.c:232
 msgctxt "full month name"
 msgid "March"
 msgstr "març"
 
-#: glib/gdatetime.c:267
+#: ../glib/gdatetime.c:234
 msgctxt "full month name"
 msgid "April"
 msgstr "abril"
 
-#: glib/gdatetime.c:269
+#: ../glib/gdatetime.c:236
 msgctxt "full month name"
 msgid "May"
 msgstr "mai"
 
-#: glib/gdatetime.c:271
+#: ../glib/gdatetime.c:238
 msgctxt "full month name"
 msgid "June"
 msgstr "junh"
 
-#: glib/gdatetime.c:273
+#: ../glib/gdatetime.c:240
 msgctxt "full month name"
 msgid "July"
 msgstr "julhet"
 
-#: glib/gdatetime.c:275
+#: ../glib/gdatetime.c:242
 msgctxt "full month name"
 msgid "August"
 msgstr "agost"
 
-#: glib/gdatetime.c:277
+#: ../glib/gdatetime.c:244
 msgctxt "full month name"
 msgid "September"
 msgstr "setembre"
 
-#: glib/gdatetime.c:279
+#: ../glib/gdatetime.c:246
 msgctxt "full month name"
 msgid "October"
 msgstr "octobre"
 
-#: glib/gdatetime.c:281
+#: ../glib/gdatetime.c:248
 msgctxt "full month name"
 msgid "November"
 msgstr "novembre"
 
-#: glib/gdatetime.c:283
+#: ../glib/gdatetime.c:250
 msgctxt "full month name"
 msgid "December"
 msgstr "decembre"
 
-#. 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:315
+#: ../glib/gdatetime.c:265
 msgctxt "abbreviated month name"
 msgid "Jan"
 msgstr "gen."
 
-#: glib/gdatetime.c:317
+#: ../glib/gdatetime.c:267
 msgctxt "abbreviated month name"
 msgid "Feb"
 msgstr "febr."
 
-#: glib/gdatetime.c:319
+#: ../glib/gdatetime.c:269
 msgctxt "abbreviated month name"
 msgid "Mar"
 msgstr "març"
 
-#: glib/gdatetime.c:321
+#: ../glib/gdatetime.c:271
 msgctxt "abbreviated month name"
 msgid "Apr"
 msgstr "abril"
 
-#: glib/gdatetime.c:323
+#: ../glib/gdatetime.c:273
 msgctxt "abbreviated month name"
 msgid "May"
 msgstr "mai"
 
-#: glib/gdatetime.c:325
+#: ../glib/gdatetime.c:275
 msgctxt "abbreviated month name"
 msgid "Jun"
 msgstr "junh"
 
-#: glib/gdatetime.c:327
+#: ../glib/gdatetime.c:277
 msgctxt "abbreviated month name"
 msgid "Jul"
 msgstr "julh."
 
-#: glib/gdatetime.c:329
+#: ../glib/gdatetime.c:279
 msgctxt "abbreviated month name"
 msgid "Aug"
 msgstr "agost"
 
-#: glib/gdatetime.c:331
+#: ../glib/gdatetime.c:281
 msgctxt "abbreviated month name"
 msgid "Sep"
 msgstr "set."
 
-#: glib/gdatetime.c:333
+#: ../glib/gdatetime.c:283
 msgctxt "abbreviated month name"
 msgid "Oct"
 msgstr "oct."
 
-#: glib/gdatetime.c:335
+#: ../glib/gdatetime.c:285
 msgctxt "abbreviated month name"
 msgid "Nov"
 msgstr "nov."
 
-#: glib/gdatetime.c:337
+#: ../glib/gdatetime.c:287
 msgctxt "abbreviated month name"
 msgid "Dec"
 msgstr "dec."
 
-#: glib/gdatetime.c:352
+#: ../glib/gdatetime.c:302
 msgctxt "full weekday name"
 msgid "Monday"
 msgstr "diluns"
 
-#: glib/gdatetime.c:354
+#: ../glib/gdatetime.c:304
 msgctxt "full weekday name"
 msgid "Tuesday"
 msgstr "dimars"
 
-#: glib/gdatetime.c:356
+#: ../glib/gdatetime.c:306
 msgctxt "full weekday name"
 msgid "Wednesday"
 msgstr "dimècres"
 
-#: glib/gdatetime.c:358
+#: ../glib/gdatetime.c:308
 msgctxt "full weekday name"
 msgid "Thursday"
 msgstr "dijòus"
 
-#: glib/gdatetime.c:360
+#: ../glib/gdatetime.c:310
 msgctxt "full weekday name"
 msgid "Friday"
 msgstr "divendres"
 
-#: glib/gdatetime.c:362
+#: ../glib/gdatetime.c:312
 msgctxt "full weekday name"
 msgid "Saturday"
 msgstr "dissabte"
 
-#: glib/gdatetime.c:364
+#: ../glib/gdatetime.c:314
 msgctxt "full weekday name"
 msgid "Sunday"
 msgstr "dimenge"
 
-#: glib/gdatetime.c:379
+#: ../glib/gdatetime.c:329
 msgctxt "abbreviated weekday name"
 msgid "Mon"
 msgstr "lun."
 
-#: glib/gdatetime.c:381
+#: ../glib/gdatetime.c:331
 msgctxt "abbreviated weekday name"
 msgid "Tue"
 msgstr "mar."
 
-#: glib/gdatetime.c:383
+#: ../glib/gdatetime.c:333
 msgctxt "abbreviated weekday name"
 msgid "Wed"
 msgstr "mèr."
 
-#: glib/gdatetime.c:385
+#: ../glib/gdatetime.c:335
 msgctxt "abbreviated weekday name"
 msgid "Thu"
 msgstr "jòu."
 
-#: glib/gdatetime.c:387
+#: ../glib/gdatetime.c:337
 msgctxt "abbreviated weekday name"
 msgid "Fri"
 msgstr "ven."
 
-#: glib/gdatetime.c:389
+#: ../glib/gdatetime.c:339
 msgctxt "abbreviated weekday name"
 msgid "Sat"
 msgstr "sab."
 
-#: glib/gdatetime.c:391
+#: ../glib/gdatetime.c:341
 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:455
-msgctxt "full month name with day"
-msgid "January"
-msgstr "genièr"
-
-#: glib/gdatetime.c:457
-msgctxt "full month name with day"
-msgid "February"
-msgstr "febrièr"
-
-#: glib/gdatetime.c:459
-msgctxt "full month name with day"
-msgid "March"
-msgstr "març"
-
-#: glib/gdatetime.c:461
-msgctxt "full month name with day"
-msgid "April"
-msgstr "abril"
-
-#: glib/gdatetime.c:463
-msgctxt "full month name with day"
-msgid "May"
-msgstr "mai"
-
-#: glib/gdatetime.c:465
-msgctxt "full month name with day"
-msgid "June"
-msgstr "junh"
-
-#: glib/gdatetime.c:467
-msgctxt "full month name with day"
-msgid "July"
-msgstr "julhet"
-
-#: glib/gdatetime.c:469
-msgctxt "full month name with day"
-msgid "August"
-msgstr "agost"
-
-#: glib/gdatetime.c:471
-msgctxt "full month name with day"
-msgid "September"
-msgstr "setembre"
-
-#: glib/gdatetime.c:473
-msgctxt "full month name with day"
-msgid "October"
-msgstr "octobre"
-
-#: glib/gdatetime.c:475
-msgctxt "full month name with day"
-msgid "November"
-msgstr "novembre"
-
-#: glib/gdatetime.c:477
-msgctxt "full month name with day"
-msgid "December"
-msgstr "decembre"
-
-#. 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:542
-msgctxt "abbreviated month name with day"
-msgid "Jan"
-msgstr "gen."
-
-#: glib/gdatetime.c:544
-msgctxt "abbreviated month name with day"
-msgid "Feb"
-msgstr "febr."
-
-#: glib/gdatetime.c:546
-msgctxt "abbreviated month name with day"
-msgid "Mar"
-msgstr "març"
-
-#: glib/gdatetime.c:548
-msgctxt "abbreviated month name with day"
-msgid "Apr"
-msgstr "abril"
-
-#: glib/gdatetime.c:550
-msgctxt "abbreviated month name with day"
-msgid "May"
-msgstr "mai"
-
-#: glib/gdatetime.c:552
-msgctxt "abbreviated month name with day"
-msgid "Jun"
-msgstr "junh"
-
-#: glib/gdatetime.c:554
-msgctxt "abbreviated month name with day"
-msgid "Jul"
-msgstr "julh."
-
-#: glib/gdatetime.c:556
-msgctxt "abbreviated month name with day"
-msgid "Aug"
-msgstr "agost"
-
-#: glib/gdatetime.c:558
-msgctxt "abbreviated month name with day"
-msgid "Sep"
-msgstr "set."
-
-#: glib/gdatetime.c:560
-msgctxt "abbreviated month name with day"
-msgid "Oct"
-msgstr "oct."
-
-#: glib/gdatetime.c:562
-msgctxt "abbreviated month name with day"
-msgid "Nov"
-msgstr "nov."
-
-#: glib/gdatetime.c:564
-msgctxt "abbreviated month name with day"
-msgid "Dec"
-msgstr "dec."
-
-#. Translators: 'before midday' indicator
-#: glib/gdatetime.c:581
-msgctxt "GDateTime"
-msgid "AM"
-msgstr "AM"
-
-#. Translators: 'after midday' indicator
-#: glib/gdatetime.c:584
-msgctxt "GDateTime"
-msgid "PM"
-msgstr "PM"
-
-#: glib/gdir.c:155
-#, c-format, c-format
-#| msgid "Error opening directory '%s': %s"
-msgid "Error opening directory “%s”: %s"
+#: ../glib/gdir.c:155
+msgid "Error opening directory '%s': %s"
 msgstr "Error a la dobertura del repertòri « %s » : %s"
 
-#: glib/gfileutils.c:716 glib/gfileutils.c:808
-#, c-format, 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] "Impossible d'atribuir %lu octet per legir lo fichièr « %s »"
-msgstr[1] "Impossible d'atribuir %lu octets per legir lo fichièr « %s »"
-
-#: glib/gfileutils.c:733
-#, c-format, c-format
-#| msgid "Error reading file %s: %s"
-msgid "Error reading file “%s”: %s"
+#: ../glib/gfileutils.c:701 ../glib/gfileutils.c:793
+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'alogar %lu octet per legir lo fichièr « %s »"
+msgstr[1] "Impossible d'alogar %lu octets per legir lo fichièr « %s »"
+
+#: ../glib/gfileutils.c:718
+msgid "Error reading file '%s': %s"
 msgstr "Error de lectura del fichièr « %s » : %s"
 
-#: glib/gfileutils.c:769
-#, c-format, c-format
-#| msgid "File \"%s\" is too large"
-msgid "File “%s” is too large"
+#: ../glib/gfileutils.c:754
+msgid "File \"%s\" is too large"
 msgstr "Lo fichièr « %s » es tròp grand"
 
-#: glib/gfileutils.c:833
-#, c-format, c-format
-#| msgid "Failed to read from file '%s': %s"
-msgid "Failed to read from file “%s”: %s"
+#: ../glib/gfileutils.c:818
+msgid "Failed to read from file '%s': %s"
 msgstr "La lectura dempuèi lo fichièr « %s » a fracassat : %s"
 
-#: glib/gfileutils.c:881 glib/gfileutils.c:953
-#, c-format, c-format
-#| msgid "Failed to open file '%s': %s"
-msgid "Failed to open file “%s”: %s"
+#: ../glib/gfileutils.c:866 ../glib/gfileutils.c:938
+msgid "Failed to open file '%s': %s"
 msgstr "La dobertura del fichièr « %s » a fracassat : %s"
 
-#: glib/gfileutils.c:893
-#, c-format, c-format
-#| msgid "Failed to get attributes of file '%s': fstat() failed: %s"
-msgid "Failed to get attributes of file “%s”: fstat() failed: %s"
+#: ../glib/gfileutils.c:878
+msgid "Failed to get attributes of file '%s': fstat() failed: %s"
 msgstr ""
-"L’obtencion dels atributs del fichièr « %s » a fracassat : fracàs de fstat() : %s"
+"L'obtencion dels atributs del fichièr « %s » a fracassat : fracàs de "
+"fstat() : %s"
 
-#: glib/gfileutils.c:923
-#, c-format, c-format
-#| msgid "Failed to open file '%s': fdopen() failed: %s"
-msgid "Failed to open file “%s”: fdopen() failed: %s"
+#: ../glib/gfileutils.c:908
+msgid "Failed to open file '%s': fdopen() failed: %s"
 msgstr "La dobertura del fichièr « %s » a fracassat : fracàs de fdopen() : %s"
 
-#: glib/gfileutils.c:1022
-#, c-format, 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"
+#: ../glib/gfileutils.c:1007
+msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
 msgstr ""
-"Lo cambiament de nom del fichièr « %s » cap a « %s » a fracassat : fracàs de g_rename() : "
-"%s"
+"Lo cambiament de nom del fichièr « %s » cap a « %s » a fracassat : fracàs de "
+"g_rename() : %s"
 
-#: glib/gfileutils.c:1057 glib/gfileutils.c:1575
-#, c-format, c-format
-#| msgid "Failed to create file '%s': %s"
-msgid "Failed to create file “%s”: %s"
+#: ../glib/gfileutils.c:1042 ../glib/gfileutils.c:1541
+msgid "Failed to create file '%s': %s"
 msgstr "La creacion del fichièr « %s » a fracassat : %s"
 
-#: glib/gfileutils.c:1084
-#, c-format, c-format
-#| msgid "Failed to write file '%s': write() failed: %s"
-msgid "Failed to write file “%s”: write() failed: %s"
-msgstr "L’escritura dins lo fichièr « %s » a fracassat : fracàs de write() : %s"
+#: ../glib/gfileutils.c:1069
+msgid "Failed to write file '%s': write() failed: %s"
+msgstr "L'escritura dins lo fichièr « %s » a fracassat : fracàs de write() : %s"
 
-#: glib/gfileutils.c:1127
-#, c-format, c-format
-#| msgid "Failed to write file '%s': fsync() failed: %s"
-msgid "Failed to write file “%s”: fsync() failed: %s"
-msgstr "L’escritura dins lo fichièr « %s » a fracassat : fracàs de fsync() : %s"
+#: ../glib/gfileutils.c:1112
+msgid "Failed to write file '%s': fsync() failed: %s"
+msgstr "L'escritura dins lo fichièr « %s » a fracassat : fracàs de fsync() : %s"
 
-#: glib/gfileutils.c:1262
-#, c-format, 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"
+#: ../glib/gfileutils.c:1236
+msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
 msgstr ""
-"Lo fichièr existent « %s » pòt pas èsser suprimit : fracàs de g_unlink() : "
-"%s"
+"Lo fichièr existent « %s » pòt pas èsser suprimit : fracàs de g_unlink() : %s"
 
-#: glib/gfileutils.c:1541
-#, c-format, c-format
-#| msgid "Template '%s' invalid, should not contain a '%s'"
-msgid "Template “%s” invalid, should not contain a “%s”"
+#: ../glib/gfileutils.c:1507
+msgid "Template '%s' invalid, should not contain a '%s'"
 msgstr "Lo modèl « %s » es pas valid, deuriá pas conténer un « %s »"
 
-#: glib/gfileutils.c:1554
-#, c-format, c-format
-#| msgid "Template '%s' doesn't contain XXXXXX"
-msgid "Template “%s” doesn’t contain XXXXXX"
+#: ../glib/gfileutils.c:1520
+msgid "Template '%s' doesn't contain XXXXXX"
 msgstr "Lo modèl « %s » conten pas XXXXXX"
 
-#: glib/gfileutils.c:2116
-#, c-format, c-format
-#| msgid "Failed to read the symbolic link '%s': %s"
-msgid "Failed to read the symbolic link “%s”: %s"
+#: ../glib/gfileutils.c:2045
+msgid "Failed to read the symbolic link '%s': %s"
 msgstr "La lectura del ligam simbolic « %s » a fracassat : %s"
 
-#: glib/giochannel.c:1389
-#, c-format, c-format
-#| msgid "Could not open converter from '%s' to '%s': %s"
-msgid "Could not open converter from “%s” to “%s”: %s"
+#: ../glib/giochannel.c:1388
+msgid "Could not open converter from '%s' to '%s': %s"
 msgstr "Impossible de dobrir lo convertidor de « %s » cap a « %s » : %s"
 
-#: glib/giochannel.c:1734
-#| 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"
+#: ../glib/giochannel.c:1733
+msgid "Can't do a raw read in g_io_channel_read_line_string"
 msgstr "Lectura de donadas brutas impossibla dins g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
+#: ../glib/giochannel.c:1780 ../glib/giochannel.c:2038 ../glib/giochannel.c:2125
 msgid "Leftover unconverted data in read buffer"
 msgstr "Donadas restantas pas convertidas dins lo tampon de lectura"
 
-#: glib/giochannel.c:1862 glib/giochannel.c:1939
+#: ../glib/giochannel.c:1861 ../glib/giochannel.c:1938
 msgid "Channel terminates in a partial character"
 msgstr "La canal s'acaba amb un caractèr parcial"
 
-#: glib/giochannel.c:1925
-#| 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"
+#: ../glib/giochannel.c:1924
+msgid "Can't do a raw read in g_io_channel_read_to_end"
 msgstr "Lectura de donadas brutas impossibla dins g_io_channel_read_to_end"
 
-#: glib/gkeyfile.c:788
+#: ../glib/gkeyfile.c:737
 msgid "Valid key file could not be found in search dirs"
 msgstr ""
 "Impossible de trobar un fichièr de claus valid dins los repertòris de recèrca"
 
-#: glib/gkeyfile.c:825
+#: ../glib/gkeyfile.c:773
 msgid "Not a regular file"
 msgstr "Es pas un fichièr estandard"
 
-#: glib/gkeyfile.c:1270
-#, c-format, c-format
-#| msgid ""
-#| "Key file contains line '%s' which is not a key-value pair, group, or "
-#| "comment"
+#: ../glib/gkeyfile.c:1204
 msgid ""
-"Key file contains line “%s” which is not a key-value pair, group, or comment"
+"Key file contains line '%s' which is not a key-value pair, group, or comment"
 msgstr ""
-"Lo fichièr de claus conten la linha « %s » qu’es pas ni una para de "
-"valors de clau, ni un grop, ni un comentari"
+"Lo fichièr de claus conten la linha « %s » qu'es pas ni una para de valors de "
+"clau, ni un grop, ni un comentari"
 
-#: glib/gkeyfile.c:1327
-#, c-format
+#: ../glib/gkeyfile.c:1261
 msgid "Invalid group name: %s"
 msgstr "Nom de grop invalid : %s"
 
-#: glib/gkeyfile.c:1349
+#: ../glib/gkeyfile.c:1283
 msgid "Key file does not start with a group"
 msgstr "Lo fichièr de claus comença pas per un grop"
 
-#: glib/gkeyfile.c:1375
-#, c-format
+#: ../glib/gkeyfile.c:1309
 msgid "Invalid key name: %s"
 msgstr "Nom de clau invalid : %s"
 
-#: glib/gkeyfile.c:1402
-#, c-format, c-format
-#| msgid "Key file contains unsupported encoding '%s'"
-msgid "Key file contains unsupported encoding “%s”"
+#: ../glib/gkeyfile.c:1336
+msgid "Key file contains unsupported encoding '%s'"
 msgstr ""
-"Lo fichièr de claus conten un encodatge de caractèrs pas pres en carga « %s »"
+"Lo fichièr de claus conten un encodatge de caractèrs pas preses en carga « %s "
+"»"
 
-#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
-#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
-#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
-#, c-format, c-format
-#| msgid "Key file does not have group '%s'"
-msgid "Key file does not have group “%s”"
+#: ../glib/gkeyfile.c:1579 ../glib/gkeyfile.c:1752 ../glib/gkeyfile.c:3130
+#: ../glib/gkeyfile.c:3193 ../glib/gkeyfile.c:3323 ../glib/gkeyfile.c:3453
+#: ../glib/gkeyfile.c:3597 ../glib/gkeyfile.c:3826 ../glib/gkeyfile.c:3893
+msgid "Key file does not have group '%s'"
 msgstr "Lo fichièr de claus a pas de grop « %s »"
 
-#: glib/gkeyfile.c:1773
-#, c-format, c-format
-#| msgid "Key file does not have key '%s' in group '%s'"
-msgid "Key file does not have key “%s” in group “%s”"
+#: ../glib/gkeyfile.c:1707
+msgid "Key file does not have key '%s' in group '%s'"
 msgstr "Lo fichièr de claus conten pas de clau « %s » dins lo grop « %s »"
 
-#: glib/gkeyfile.c:1935 glib/gkeyfile.c:2051
-#, c-format, 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"
+#: ../glib/gkeyfile.c:1869 ../glib/gkeyfile.c:1985
+msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
 msgstr ""
-"Lo fichièr de claus conten la clau « %s » amb la valor « %s » qu’es "
-"pas encodat en UTF-8"
+"Lo fichièr de claus conten la clau « %s » amb la valor « %s » qu'es pas "
+"encodat en UTF-8"
 
-#: glib/gkeyfile.c:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
-#, c-format, 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."
+#: ../glib/gkeyfile.c:1889 ../glib/gkeyfile.c:2005 ../glib/gkeyfile.c:2374
+msgid "Key file contains key '%s' which has a value that cannot be interpreted."
 msgstr ""
-"Lo fichièr de claus conten la clau « %s » qu'una valor n'es impossibla d'"
+"Lo fichièr de claus conten la clau « %s » qu'una valor n'es impossibla "
 "interpretar."
 
-#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
-#, c-format, c-format
-#| msgid ""
-#| "Key file contains key '%s' in group '%s' which has a value that cannot be "
-#| "interpreted."
+#: ../glib/gkeyfile.c:2591 ../glib/gkeyfile.c:2959
 msgid ""
-"Key file contains key “%s” in group “%s” which has a value that cannot be "
+"Key file contains key '%s' in group '%s' which has a value that cannot be "
 "interpreted."
 msgstr ""
-"Lo fichièr de claus conten la clau « %s » dins lo grop « %s » qu'a una "
-"valor impossibla d'interpretar."
+"Lo fichièr de claus conten la clau « %s » dins lo grop « %s » qu'a una valor "
+"impossibla a interpretar."
 
-#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
-#, c-format, 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"
+#: ../glib/gkeyfile.c:2669 ../glib/gkeyfile.c:2746
+msgid "Key '%s' in group '%s' has value '%s' where %s was expected"
 msgstr ""
 "La clau « %s » dins lo grop « %s » a una valor « %s » mentre que %s èra "
 "esperat"
 
-#: glib/gkeyfile.c:4274
+#: ../glib/gkeyfile.c:4133
 msgid "Key file contains escape character at end of line"
 msgstr "Lo fichièr de claus conten un caractèr d'escapament en fin de linha"
 
-#: glib/gkeyfile.c:4296
-#, c-format, c-format
-#| msgid "Key file contains invalid escape sequence '%s'"
-msgid "Key file contains invalid escape sequence “%s”"
-msgstr "Lo fichièr de claus conten una sequéncia d’escapament invalida « %s »"
+#: ../glib/gkeyfile.c:4155
+msgid "Key file contains invalid escape sequence '%s'"
+msgstr "Lo fichièr de claus conten una sequéncia d'escapament invalida « %s »"
 
-#: glib/gkeyfile.c:4440
-#, c-format, c-format
-#| msgid "Value '%s' cannot be interpreted as a number."
-msgid "Value “%s” cannot be interpreted as a number."
+#: ../glib/gkeyfile.c:4297
+msgid "Value '%s' cannot be interpreted as a number."
 msgstr "La valor « %s » pòt pas èsser interpretada coma un nombre."
 
-#: glib/gkeyfile.c:4454
-#, c-format, c-format
-#| msgid "Integer value '%s' out of range"
-msgid "Integer value “%s” out of range"
+#: ../glib/gkeyfile.c:4311
+msgid "Integer value '%s' out of range"
 msgstr "La valor entièra « %s » es fòra plaja"
 
-#: glib/gkeyfile.c:4487
-#, c-format, c-format
-#| msgid "Value '%s' cannot be interpreted as a float number."
-msgid "Value “%s” cannot be interpreted as a float number."
+#: ../glib/gkeyfile.c:4344
+msgid "Value '%s' cannot be interpreted as a float number."
 msgstr ""
-"La valor « %s » pòt pas èsser interpretada coma un nombre amb virgula "
-"flotanta."
+"La valor « %s » pòt pas èsser interpretada coma un nombre a virgula flotanta."
 
-#: glib/gkeyfile.c:4526
-#, c-format, c-format
-#| msgid "Value '%s' cannot be interpreted as a boolean."
-msgid "Value “%s” cannot be interpreted as a boolean."
+#: ../glib/gkeyfile.c:4383
+msgid "Value '%s' cannot be interpreted as a boolean."
 msgstr "La valor « %s » pòt pas èsser interpretada coma un boolean."
 
-#: glib/gmappedfile.c:129
-#, c-format, 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"
+#: ../glib/gmappedfile.c:129
+msgid "Failed to get attributes of file '%s%s%s%s': fstat() failed: %s"
 msgstr ""
-"L’obtencion dels atributs del fichièr « %s%s%s%s » a fracassat : fracàs de fstat()"
-" : %s"
+"L'obtencion dels atributs del fichièr « %s%s%s%s » a fracassat : fracàs de "
+"fstat() : %s"
 
-#: glib/gmappedfile.c:195
-#, c-format
+#: ../glib/gmappedfile.c:195
 msgid "Failed to map %s%s%s%s: mmap() failed: %s"
 msgstr "Lo mappage %s%s%s%s a fracassat : fracàs de mmap() : %s"
 
-#: glib/gmappedfile.c:262
-#, c-format, c-format
-#| msgid "Failed to open file '%s': open() failed: %s"
-msgid "Failed to open file “%s”: open() failed: %s"
+#: ../glib/gmappedfile.c:262
+msgid "Failed to open file '%s': open() failed: %s"
 msgstr "La dobertura del fichièr « %s » a fracassat : fracàs de open() : %s"
 
-#: glib/gmarkup.c:397 glib/gmarkup.c:439
-#, c-format
+#: ../glib/gmarkup.c:398 ../glib/gmarkup.c:440
 msgid "Error on line %d char %d: "
 msgstr "Error a la linha %d, caractèr %d : "
 
-#: glib/gmarkup.c:461 glib/gmarkup.c:544
-#, 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 "Encodatge UTF-8 invalid dins lo nom — « %s » es pas valid"
+#: ../glib/gmarkup.c:462 ../glib/gmarkup.c:545
+msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
+msgstr "Encodatge UTF-8 invalid dins lo nom - « %s » es pas valid"
 
-#: glib/gmarkup.c:472
-#, c-format, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not a valid name"
+#: ../glib/gmarkup.c:473
+msgid "'%s' is not a valid name"
 msgstr "« %s » es pas un nom valid"
 
-#: glib/gmarkup.c:488
-#, c-format, c-format
-#| msgid "'%s' is not a valid name: '%c'"
-msgid "“%s” is not a valid name: “%c”"
+#: ../glib/gmarkup.c:489
+msgid "'%s' is not a valid name: '%c'"
 msgstr "« %s » es pas un nom valid : « %c »"
 
-#: glib/gmarkup.c:610
-#, c-format
+#: ../glib/gmarkup.c:599
 msgid "Error on line %d: %s"
 msgstr "Error a la linha %d : %s"
 
-#: glib/gmarkup.c:687
-#, 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"
+#: ../glib/gmarkup.c:676
 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 ""
-"Fracàs de l’analisi de « %-.*s » que deuriá èsser un nombre dins la plaja de "
-"referéncia dels caractèrs (&#234; per exemple) — benlèu que lo nombre es "
-"tròp grand"
-
-#: glib/gmarkup.c:699
-#| 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;"
+"Failed to parse '%-.*s', which should have been a digit inside a character "
+"reference (&#234; for example) - perhaps the digit is too large"
+msgstr ""
+"Fracàs de l'analisi de « %-.*s » que deuriá èsser un nombre dins la plaja de "
+"referéncia dels caractèrs (&#234; per exemple) - benlèu que lo nombre es tròp "
+"grand"
+
+#: ../glib/gmarkup.c:688
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
-"ampersand character without intending to start an entity  escape ampersand "
+"ampersand character without intending to start an entity - escape ampersand "
 "as &amp;"
 msgstr ""
 "La referéncia del caractèr s'acaba pas per un punt-virgula ; avètz "
-"versemblablament utilizat una esperlueta sens intencion d’escriure una "
-"entitat — escapatz l’esperlueta amb &amp;"
+"vraisemblablement utilizat una esperlueta sens intention d'escriure una "
+"entitat - escapatz l'esperlueta amb &amp;"
 
-#: glib/gmarkup.c:725
-#, c-format, c-format
-#| msgid "Character reference '%-.*s' does not encode a permitted character"
-msgid "Character reference “%-.*s” does not encode a permitted character"
+#: ../glib/gmarkup.c:714
+msgid "Character reference '%-.*s' does not encode a permitted character"
 msgstr "La referéncia al caractèr « %-.*s » encòda pas un caractèr autorizat"
 
-#: glib/gmarkup.c:763
-#| msgid ""
-#| "Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+#: ../glib/gmarkup.c:752
 msgid ""
-"Empty entity “&;” seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
+"Empty entity '&;' seen; valid entities are: &amp; &quot; &lt; &gt; &apos;"
 msgstr ""
-"Entitat voida « &; » rencontrada ; las entitats validas son : &amp; &quot; &lt; "
-"&gt; &apos;"
+"Entitat voida « &; » rencontrada : las entitats validas son : &amp; &quot; "
+"&lt; &gt; &apos;"
 
-#: glib/gmarkup.c:771
-#, c-format, c-format
-#| msgid "Entity name '%-.*s' is not known"
-msgid "Entity name “%-.*s” is not known"
-msgstr "L’entitat nomenada « %-.*s » es desconeguda"
+#: ../glib/gmarkup.c:760
+msgid "Entity name '%-.*s' is not known"
+msgstr "L'entitat nomenada « %-.*s » es desconeguda"
 
-#: glib/gmarkup.c:776
-#| 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;"
+#: ../glib/gmarkup.c:765
 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;"
+"character without intending to start an entity - escape ampersand as &amp;"
 msgstr ""
-"L’entitat s'acaba pas per un punt-virgula ; avètz probablament "
-"utilizat una esperlueta sens intencion d’escriure una entitat — escapatz l’"
-"esperlueta amb &amp;"
+"L'entitat s'acaba pas per un punt-virgula ; avètz probablament utilizat una "
+"esperlueta sens intention d'escriure una entitat - escapatz l'esperlueta amb "
+"&amp;"
 
-#: glib/gmarkup.c:1182
+#: ../glib/gmarkup.c:1171
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Lo document deu començar amb un element (per ex. <book>)"
 
-#: glib/gmarkup.c:1222
-#, c-format, c-format
-#| msgid ""
-#| "'%s' is not a valid character following a '<' character; it may not begin "
-#| "an element name"
+#: ../glib/gmarkup.c:1211
 msgid ""
-"“%s” is not a valid character following a “<” character; it may not begin an "
+"'%s' is not a valid character following a '<' character; it may not begin an "
 "element name"
 msgstr ""
-"« %s » es pas un caractèr valid a la seguida del caractèr « < » ; "
-"sembla que comença pas un nom d’element"
+"« %s » es pas un caractèr valid en seguida del caractèr « < » ; sembla que "
+"comença pas un nom d'element"
 
-#: glib/gmarkup.c:1264
-#, c-format, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '>' character to end the empty-element tag "
-#| "'%s'"
+#: ../glib/gmarkup.c:1253
 msgid ""
-"Odd character “%s”, expected a “>” character to end the empty-element tag "
-"“%s”"
+"Odd character '%s', expected a '>' character to end the empty-element tag '%s'"
 msgstr ""
-"Caractèr anormal « %s », un caractèr « > » es requesit per acabar la "
-"balisa d’element void « %s »"
+"Caractèr anormal « %s », un caractèr « > » es requesit per acabar la balisa "
+"d'element void « %s »"
 
-#: glib/gmarkup.c:1345
-#, c-format, c-format
-#| msgid ""
-#| "Odd character '%s', expected a '=' after attribute name '%s' of element "
-#| "'%s'"
+#: ../glib/gmarkup.c:1334
 msgid ""
-"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
+"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
 msgstr ""
-"Caractèr anormal « %s », un caractèr « = » es requesit aprèp lo nom de l’"
-"atribut « %s » de l’element « %s »"
+"Caractèr anormal « %s », un caractèr « = » es requesit aprèp lo nom de "
+"l'atribut « %s » de l'element « %s »"
 
-#: glib/gmarkup.c:1386
-#, c-format, 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"
+#: ../glib/gmarkup.c:1375
 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 "
+"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 ""
 "Caractèr anormal « %s », es requesit un caractèr « > » o « / », o "
-"opcionalament un attribut, per clasusurar la balisa de començament de l’element « %s "
-"» ; benlèu qu'avètz utilizat un caractèr invalid dins un nom "
-"d’atribut"
-
-#: glib/gmarkup.c:1430
-#, c-format, c-format
-#| msgid ""
-#| "Odd character '%s', expected an open quote mark after the equals sign "
-#| "when giving value for attribute '%s' of element '%s'"
+"opcionalament un atribut, per clore la balisa de començament de l'element « "
+"%s » ; benlèu qu'avètz utilizat un caractèr invalid dins un nom d'atribut"
+
+#: ../glib/gmarkup.c:1419
 msgid ""
-"Odd character “%s”, expected an open quote mark after the equals sign when "
-"giving value for attribute “%s” of element “%s”"
+"Odd character '%s', expected an open quote mark after the equals sign when "
+"giving value for attribute '%s' of element '%s'"
 msgstr ""
 "Caractèr anormal « %s », una vergueta de dobertura aprèp lo signe egal es "
-"requesida quand s'afècta una valor a l’atribut « %s » de l’element « %s »"
+"requesit quand s'afècta una valor a l'atribut « %s » de l'element « %s »"
 
-#: glib/gmarkup.c:1563
-#, c-format, c-format
-#| msgid ""
-#| "'%s' is not a valid character following the characters '</'; '%s' may not "
-#| "begin an element name"
+#: ../glib/gmarkup.c:1552
 msgid ""
-"“%s” is not a valid character following the characters “</”; “%s” may not "
+"'%s' is not a valid character following the characters '</'; '%s' may not "
 "begin an element name"
 msgstr ""
-"« %s » es pas un caractèr valid a la seguida dels caractèrs « </ » ; « %s "
-"» pòt pas començar un nom d’element"
+"« %s » es pas un caractèr valid a la seguida dels caractèrs « </ » ; « %s » "
+"pòt pas començar un nom d'element"
 
-#: glib/gmarkup.c:1599
-#, c-format, c-format
-#| msgid ""
-#| "'%s' is not a valid character following the close element name '%s'; the "
-#| "allowed character is '>'"
+#: ../glib/gmarkup.c:1588
 msgid ""
-"“%s” is not a valid character following the close element name “%s”; the "
-"allowed character is “>”"
+"'%s' is not a valid character following the close element name '%s'; the "
+"allowed character is '>'"
 msgstr ""
-"« %s » es pas un caractèr valid a la seguida del nom d’element « %s » de "
+"« %s » es pas un caractèr valid en seguida del nom d'element « %s » a "
 "tampar ; lo caractèr autorizat es « > »"
 
-#: glib/gmarkup.c:1610
-#, c-format, c-format
-#| msgid "Element '%s' was closed, no element is currently open"
-msgid "Element “%s” was closed, no element is currently open"
-msgstr "L’element « %s » es estat tampat, cap d'element es pas dobèrt actualament"
+#: ../glib/gmarkup.c:1599
+msgid "Element '%s' was closed, no element is currently open"
+msgstr ""
+"L'element « %s » es estat tampat, cap d'element es pas actualament dobèrt"
 
-#: glib/gmarkup.c:1619
-#, c-format, 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”"
+#: ../glib/gmarkup.c:1608
+msgid "Element '%s' was closed, but the currently open element is '%s'"
 msgstr ""
-"L’element « %s » es estat tampat, mas l’element actualament dobèrt es « %s »"
+"L'element « %s » es estat tampat, mas l'element actualament dobèrt es « %s »"
 
-#: glib/gmarkup.c:1772
+#: ../glib/gmarkup.c:1761
 msgid "Document was empty or contained only whitespace"
 msgstr "Lo document èra void o conteniá pas que d'espacis"
 
-#: glib/gmarkup.c:1786
-#| msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgid "Document ended unexpectedly just after an open angle bracket “<”"
+#: ../glib/gmarkup.c:1775
+msgid "Document ended unexpectedly just after an open angle bracket '<'"
 msgstr ""
-"Lo document s’es acabat d'un biais imprevist just aprèp un croquet "
-"dobrent « < »"
+"Lo document s'es acabat d'un biais imprevist juste aprèp un crochet ouvrant « "
+"< »"
 
-#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
-#, c-format, c-format
-#| msgid ""
-#| "Document ended unexpectedly with elements still open - '%s' was the last "
-#| "element opened"
+#: ../glib/gmarkup.c:1783 ../glib/gmarkup.c:1828
 msgid ""
-"Document ended unexpectedly with elements still open — “%s” was the last "
+"Document ended unexpectedly with elements still open - '%s' was the last "
 "element opened"
 msgstr ""
-"Lo document s’es acabat d'un biais imprevist amb d'elements encara "
-"dobèrts — « %s » èra lo darrièr element dobèrt"
+"Lo document s'es acabat d'un biais imprevist amb d'elements encara dobèrts - "
+"« %s » èra lo darrièr element dobèrt"
 
-#: glib/gmarkup.c:1802
-#, c-format
+#: ../glib/gmarkup.c:1791
 msgid ""
-"Document ended unexpectedly, expected to see a close angle bracket ending "
-"the tag <%s/>"
+"Document ended unexpectedly, expected to see a close angle bracket ending the "
+"tag <%s/>"
 msgstr ""
-"Lo document s'es acabat d'un biais imprevist, un croquet tampant per la "
+"Lo document s'es acabat d'un biais imprevist, un crochet fermant per la "
 "balisa <%s/> es requesit"
 
-#: glib/gmarkup.c:1808
+#: ../glib/gmarkup.c:1797
 msgid "Document ended unexpectedly inside an element name"
 msgstr ""
 "Lo document s'es acabat d'un biais imprevist a l'interior d'un nom d'element"
 
-#: glib/gmarkup.c:1814
+#: ../glib/gmarkup.c:1803
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr ""
 "Lo document s'es acabat d'un biais imprevist a l'interior d'un nom d'atribut"
 
-#: glib/gmarkup.c:1819
+#: ../glib/gmarkup.c:1808
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr ""
 "Lo document s'es acabat d'un biais imprevist a l'interior d'una balisa de "
 "dobertura d'element."
 
-#: glib/gmarkup.c:1825
+#: ../glib/gmarkup.c:1814
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5625,336 +4406,314 @@ msgstr ""
 "Lo document s'es acabat d'un biais imprevist aprèp lo signe egal que seguis "
 "un nom d'atribut ; pas cap de valor d'atribut"
 
-#: glib/gmarkup.c:1832
+#: ../glib/gmarkup.c:1821
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr ""
-"Lo document s'es acabat d'un biais imprevist mentre qu'èra a l'interior "
-"d'una valor d'atribut"
+"Lo document s'es acabat d'un biais imprevist mentre qu'èra a l'interior d'una "
+"valor d'atribut"
 
-#: glib/gmarkup.c:1849
-#, c-format, c-format
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid "Document ended unexpectedly inside the close tag for element “%s”"
+#: ../glib/gmarkup.c:1837
+msgid "Document ended unexpectedly inside the close tag for element '%s'"
 msgstr ""
-"Lo document s’es acabat d'un biais imprevist a l’interior de la balisa "
-"de tampadura per l’element « %s »"
+"Lo document s'es acabat d'un biais imprevist a l'interior de la balisa de "
+"tampadura per l'element « %s »"
 
-#: glib/gmarkup.c:1853
-#| msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgid ""
-"Document ended unexpectedly inside the close tag for an unopened element"
-msgstr ""
-"Lo document s’es acabat d'un biais imprevist a l’interior de la balisa "
-"de tampadura per un element non dobèrt"
-
-#: glib/gmarkup.c:1859
+#: ../glib/gmarkup.c:1843
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Lo document s'es acabat d'un biais imprevist a l'interior d'un comentari o "
 "d'una instruccion de tractament"
 
-#: glib/goption.c:861
-#| msgid "[OPTION...]"
-msgid "[OPTION…]"
-msgstr "[OPCION…]"
+#: ../glib/goption.c:861
+msgid "[OPTION...]"
+msgstr "[OPCION...]"
 
-#: glib/goption.c:977
+#: ../glib/goption.c:977
 msgid "Help Options:"
 msgstr "Opcions de l'ajuda :"
 
-#: glib/goption.c:978
+#: ../glib/goption.c:978
 msgid "Show help options"
 msgstr "Aficha las opcions de l'ajuda"
 
-#: glib/goption.c:984
+#: ../glib/goption.c:984
 msgid "Show all help options"
 msgstr "Aficha totas las opcions de l'ajuda"
 
-#: glib/goption.c:1047
+#: ../glib/goption.c:1047
 msgid "Application Options:"
 msgstr "Opcions de l'aplicacion :"
 
-#: glib/goption.c:1049
+#: ../glib/goption.c:1049
 msgid "Options:"
 msgstr "Opcions :"
 
-#: glib/goption.c:1113 glib/goption.c:1183
-#, c-format, c-format
-#| msgid "Cannot parse integer value '%s' for %s"
-msgid "Cannot parse integer value “%s” for %s"
-msgstr "Impossible d’analisar la valor entièra « %s » per %s"
+#: ../glib/goption.c:1113 ../glib/goption.c:1183
+msgid "Cannot parse integer value '%s' for %s"
+msgstr "Impossible d'analisar la valor entièra « %s » per %s"
 
-#: glib/goption.c:1123 glib/goption.c:1191
-#, c-format, c-format
-#| msgid "Integer value '%s' for %s out of range"
-msgid "Integer value “%s” for %s out of range"
+#: ../glib/goption.c:1123 ../glib/goption.c:1191
+msgid "Integer value '%s' for %s out of range"
 msgstr "La valor entièra « %s » per %s es fòra plaja"
 
-#: glib/goption.c:1148
-#, c-format, c-format
-#| msgid "Cannot parse double value '%s' for %s"
-msgid "Cannot parse double value “%s” for %s"
-msgstr "Impossible d’analisar la valor dobla « %s » per %s"
+#: ../glib/goption.c:1148
+msgid "Cannot parse double value '%s' for %s"
+msgstr "Impossible d'analisar la valor dobla « %s » per %s"
 
-#: glib/goption.c:1156
-#, c-format, c-format
-#| msgid "Double value '%s' for %s out of range"
-msgid "Double value “%s” for %s out of range"
+#: ../glib/goption.c:1156
+msgid "Double value '%s' for %s out of range"
 msgstr "La valor dobla « %s » per %s es fòra plaja"
 
-#: glib/goption.c:1448 glib/goption.c:1527
-#, c-format
+#: ../glib/goption.c:1448 ../glib/goption.c:1527
 msgid "Error parsing option %s"
 msgstr "Error al moment de l'analisi de l'opcion %s"
 
-#: glib/goption.c:1558 glib/goption.c:1671
-#, c-format
+#: ../glib/goption.c:1558 ../glib/goption.c:1671
 msgid "Missing argument for %s"
 msgstr "Argument mancant per %s"
 
-#: glib/goption.c:2132
-#, c-format
+#: ../glib/goption.c:2132
 msgid "Unknown option %s"
 msgstr "Opcion desconeguda %s"
 
-#: glib/gregex.c:257
+#: ../glib/gregex.c:258
 msgid "corrupted object"
 msgstr "objècte damatjat"
 
-#: glib/gregex.c:259
+#: ../glib/gregex.c:260
 msgid "internal error or corrupted object"
 msgstr "error intèrna o objècte damatjat"
 
-#: glib/gregex.c:261
+#: ../glib/gregex.c:262
 msgid "out of memory"
 msgstr "memòria insufisenta"
 
-#: glib/gregex.c:266
+#: ../glib/gregex.c:267
 msgid "backtracking limit reached"
 msgstr "limit de seguiment arrièr atent"
 
-#: glib/gregex.c:278 glib/gregex.c:286
+#: ../glib/gregex.c:279 ../glib/gregex.c:287
 msgid "the pattern contains items not supported for partial matching"
 msgstr ""
 "lo motiu conten d'elements pas preses en carga per una correspondéncia "
 "parciala"
 
-#: glib/gregex.c:280
+#: ../glib/gregex.c:281
 msgid "internal error"
 msgstr "error intèrna"
 
-#: glib/gregex.c:288
+#: ../glib/gregex.c:289
 msgid "back references as conditions are not supported for partial matching"
 msgstr ""
 "las referéncias inverses utilizadas coma condicions son pas presas en carga "
 "per una correspondéncia parciala"
 
-#: glib/gregex.c:297
+#: ../glib/gregex.c:298
 msgid "recursion limit reached"
 msgstr "limit de recursivitat atent"
 
-#: glib/gregex.c:299
+#: ../glib/gregex.c:300
 msgid "invalid combination of newline flags"
 msgstr "combinason de marcadors de novèla linha invalida"
 
-#: glib/gregex.c:301
+#: ../glib/gregex.c:302
 msgid "bad offset"
-msgstr "marrit descalatge"
+msgstr "marrit décalage"
 
-#: glib/gregex.c:303
+#: ../glib/gregex.c:304
 msgid "short utf8"
 msgstr "utf8 cort"
 
-#: glib/gregex.c:305
+#: ../glib/gregex.c:306
 msgid "recursion loop"
 msgstr "bocla recursiva"
 
-#: glib/gregex.c:309
+#: ../glib/gregex.c:310
 msgid "unknown error"
 msgstr "error desconeguda"
 
-#: glib/gregex.c:329
+#: ../glib/gregex.c:330
 msgid "\\ at end of pattern"
 msgstr "\\ a la fin del motiu"
 
-#: glib/gregex.c:332
+#: ../glib/gregex.c:333
 msgid "\\c at end of pattern"
 msgstr "\\c a la fin del motiu"
 
-#: glib/gregex.c:335
+#: ../glib/gregex.c:336
 msgid "unrecognized character following \\"
 msgstr "un caractèr pas reconegut suit \\"
 
-#: glib/gregex.c:338
+#: ../glib/gregex.c:339
 msgid "numbers out of order in {} quantifier"
 msgstr "nombres en desòrdre dins lo quantificador {}"
 
-#: glib/gregex.c:341
+#: ../glib/gregex.c:342
 msgid "number too big in {} quantifier"
 msgstr "nombre tròp grand dins lo quantificador {}"
 
-#: glib/gregex.c:344
+#: ../glib/gregex.c:345
 msgid "missing terminating ] for character class"
 msgstr "caractèr terminason ] mancant per la classa de caractèr"
 
-#: glib/gregex.c:347
+#: ../glib/gregex.c:348
 msgid "invalid escape sequence in character class"
 msgstr "sequéncia d'escapament invalida dins la classa de caractèr"
 
-#: glib/gregex.c:350
+#: ../glib/gregex.c:351
 msgid "range out of order in character class"
-msgstr "plaja desclassada dins la classa de caractèr"
+msgstr "plaja déclassada dins la classa de caractèr"
 
-#: glib/gregex.c:353
+#: ../glib/gregex.c:354
 msgid "nothing to repeat"
 msgstr "pas res de repetir"
 
-#: glib/gregex.c:357
+#: ../glib/gregex.c:358
 msgid "unexpected repeat"
 msgstr "repeticion inesperada"
 
-#: glib/gregex.c:360
+#: ../glib/gregex.c:361
 msgid "unrecognized character after (? or (?-"
 msgstr "caractèr pas reconegut aprèp (? o (?-"
 
-#: glib/gregex.c:363
+#: ../glib/gregex.c:364
 msgid "POSIX named classes are supported only within a class"
 msgstr ""
-"Las classas nomenadas segon la nòrma POSIX son unicament presas en carga "
-"dins una classa"
+"Las classas nomenadas segon la nòrma POSIX son unicament presas en carga dins "
+"una classa"
 
-#: glib/gregex.c:366
+#: ../glib/gregex.c:367
 msgid "missing terminating )"
 msgstr ") de terminason mancanta"
 
-#: glib/gregex.c:369
+#: ../glib/gregex.c:370
 msgid "reference to non-existent subpattern"
 msgstr "referéncia a un sosmotiu inexistent"
 
-#: glib/gregex.c:372
+#: ../glib/gregex.c:373
 msgid "missing ) after comment"
 msgstr "« ) » mancanta aprèp un comentari"
 
-#: glib/gregex.c:375
+#: ../glib/gregex.c:376
 msgid "regular expression is too large"
 msgstr "l'expression regulara es tròp granda"
 
-#: glib/gregex.c:378
+#: ../glib/gregex.c:379
 msgid "failed to get memory"
 msgstr "l'obtencion de la memòria a fracassat"
 
-#: glib/gregex.c:382
+#: ../glib/gregex.c:383
 msgid ") without opening ("
 msgstr ") sens ( de dobertura"
 
-#: glib/gregex.c:386
+#: ../glib/gregex.c:387
 msgid "code overflow"
 msgstr "depassament de còdi"
 
-#: glib/gregex.c:390
+#: ../glib/gregex.c:391
 msgid "unrecognized character after (?<"
 msgstr "caractèr pas reconegut aprèp (?<"
 
-#: glib/gregex.c:393
+#: ../glib/gregex.c:394
 msgid "lookbehind assertion is not fixed length"
 msgstr "l'assercion « lookbehind » a pas de longor fixe"
 
-#: glib/gregex.c:396
+#: ../glib/gregex.c:397
 msgid "malformed number or name after (?("
 msgstr "nom o nombre non confòrme aprèp (?("
 
-#: glib/gregex.c:399
+#: ../glib/gregex.c:400
 msgid "conditional group contains more than two branches"
 msgstr "un grop condicional conten mai de doas brancas"
 
-#: glib/gregex.c:402
+#: ../glib/gregex.c:403
 msgid "assertion expected after (?("
 msgstr "une assercion es esperada aprèp (?("
 
 #. 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
+#: ../glib/gregex.c:410
 msgid "(?R or (?[+-]digits must be followed by )"
 msgstr "« (?R » o « (?[+-]chifras » devon èsser seguits d'una « ) »"
 
-#: glib/gregex.c:412
+#: ../glib/gregex.c:413
 msgid "unknown POSIX class name"
 msgstr "nom de classa POSIX desconegut"
 
-#: glib/gregex.c:415
+#: ../glib/gregex.c:416
 msgid "POSIX collating elements are not supported"
 msgstr "los elements d'interclassament POSIX son pas preses en carga"
 
-#: glib/gregex.c:418
+#: ../glib/gregex.c:419
 msgid "character value in \\x{...} sequence is too large"
 msgstr "la valor del caractèr dins la sequéncia \\x{...} es tròp granda"
 
-#: glib/gregex.c:421
+#: ../glib/gregex.c:422
 msgid "invalid condition (?(0)"
 msgstr "condicion (?(0) invalida"
 
-#: glib/gregex.c:424
+#: ../glib/gregex.c:425
 msgid "\\C not allowed in lookbehind assertion"
 msgstr "\\C es pas autorizat dins l'assercion « lookbehind »"
 
-#: glib/gregex.c:431
+#: ../glib/gregex.c:432
 msgid "escapes \\L, \\l, \\N{name}, \\U, and \\u are not supported"
 msgstr "los escapaments \\L, \\l, \\N{name}, \\U e \\u son pas preses en carga"
 
-#: glib/gregex.c:434
+#: ../glib/gregex.c:435
 msgid "recursive call could loop indefinitely"
 msgstr "un apèl recursiu pòt efectuar de boclas indefinidament"
 
-#: glib/gregex.c:438
+#: ../glib/gregex.c:439
 msgid "unrecognized character after (?P"
 msgstr "caractèr pas reconegut aprèp (?P"
 
-#: glib/gregex.c:441
+#: ../glib/gregex.c:442
 msgid "missing terminator in subpattern name"
 msgstr "terminason mancanta dins lo nom del sosmotiu"
 
-#: glib/gregex.c:444
+#: ../glib/gregex.c:445
 msgid "two named subpatterns have the same name"
 msgstr "dos sosmotius nomenats possedisson lo meteis nom"
 
-#: glib/gregex.c:447
+#: ../glib/gregex.c:448
 msgid "malformed \\P or \\p sequence"
 msgstr "sequéncia \\P o \\p mal formada"
 
-#: glib/gregex.c:450
+#: ../glib/gregex.c:451
 msgid "unknown property name after \\P or \\p"
 msgstr "nom de proprietat desconegut aprèp \\P o \\p"
 
-#: glib/gregex.c:453
+#: ../glib/gregex.c:454
 msgid "subpattern name is too long (maximum 32 characters)"
 msgstr "lo nom del sosmotiu es tròp long (32 caractèrs maximum)"
 
-#: glib/gregex.c:456
+#: ../glib/gregex.c:457
 msgid "too many named subpatterns (maximum 10,000)"
 msgstr "tròp de sosmotius nomenats (10 000 maximum)"
 
-#: glib/gregex.c:459
+#: ../glib/gregex.c:460
 msgid "octal value is greater than \\377"
 msgstr "la valor octala es mai granda que \\377"
 
-#: glib/gregex.c:463
+#: ../glib/gregex.c:464
 msgid "overran compiling workspace"
 msgstr "depassament de capacitat en compilant l'espaci de trabalh"
 
-#: glib/gregex.c:467
+#: ../glib/gregex.c:468
 msgid "previously-checked referenced subpattern not found"
 msgstr "un sosmotiu referenciat e precedentament verificat es pas estat trobat"
 
-#: glib/gregex.c:470
+#: ../glib/gregex.c:471
 msgid "DEFINE group contains more than one branch"
 msgstr "lo grop DEFINE conten mai d'una branca"
 
-#: glib/gregex.c:473
+#: ../glib/gregex.c:474
 msgid "inconsistent NEWLINE options"
 msgstr "opcions NEWLINE inconsistentas"
 
-#: glib/gregex.c:476
+#: ../glib/gregex.c:477
 msgid ""
 "\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
 "or by a plain number"
@@ -5962,586 +4721,468 @@ msgstr ""
 "\\g es pas seguit d'un nom o nombre entre acoladas, cabirons, verguetas "
 "simplas o d'un nombre simple"
 
-#: glib/gregex.c:480
+#: ../glib/gregex.c:481
 msgid "a numbered reference must not be zero"
 msgstr "une referéncia numerotada deu pas èsser zèro"
 
-#: glib/gregex.c:483
+#: ../glib/gregex.c:484
 msgid "an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT)"
 msgstr "un argument es pas permés per (*ACCEPT), (*FAIL) o (*COMMIT)"
 
-#: glib/gregex.c:486
+#: ../glib/gregex.c:487
 msgid "(*VERB) not recognized"
 msgstr "(*VERB) pas reconegut"
 
-#: glib/gregex.c:489
+#: ../glib/gregex.c:490
 msgid "number is too big"
 msgstr "lo nombre es tròp grand"
 
-#: glib/gregex.c:492
+#: ../glib/gregex.c:493
 msgid "missing subpattern name after (?&"
 msgstr "nom de sosmotiu mancant aprèp (?&"
 
-#: glib/gregex.c:495
+#: ../glib/gregex.c:496
 msgid "digit expected after (?+"
 msgstr "chifra esperat aprèp (?+"
 
-#: glib/gregex.c:498
+#: ../glib/gregex.c:499
 msgid "] is an invalid data character in JavaScript compatibility mode"
 msgstr ""
 "] es un caractèr de donadas invalid en mòde de compatibilitat JavaScript"
 
-#: glib/gregex.c:501
+#: ../glib/gregex.c:502
 msgid "different names for subpatterns of the same number are not allowed"
 msgstr ""
 "es pas permés d'aver de noms diferents per de sosmotius del meteis nombre"
 
-#: glib/gregex.c:504
+#: ../glib/gregex.c:505
 msgid "(*MARK) must have an argument"
 msgstr "(*MARK) deu aver un argument"
 
-#: glib/gregex.c:507
+#: ../glib/gregex.c:508
 msgid "\\c must be followed by an ASCII character"
 msgstr "\\c deu èsser seguit d'un caractèr ASCII"
 
-#: glib/gregex.c:510
+#: ../glib/gregex.c:511
 msgid "\\k is not followed by a braced, angle-bracketed, or quoted name"
 msgstr ""
-"\\k es pas seguit d'un nom entre acoladas, cabirons o verguetas simplas"
+"\\k es pas seguit d'un nom entre accolades, chevrons o verguetas simplas"
 
-#: glib/gregex.c:513
+#: ../glib/gregex.c:514
 msgid "\\N is not supported in a class"
 msgstr "\\N es pas pres en carga dins una classa"
 
-#: glib/gregex.c:516
+#: ../glib/gregex.c:517
 msgid "too many forward references"
 msgstr "tròp de referéncias en avant"
 
-#: glib/gregex.c:519
+#: ../glib/gregex.c:520
 msgid "name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN)"
 msgstr "lo nom es tròp long dins (*MARK), (*PRUNE), (*SKIP) o (*THEN)"
 
-#: glib/gregex.c:522
+#: ../glib/gregex.c:523
 msgid "character value in \\u.... sequence is too large"
 msgstr "la valor del caractèr dins la sequéncia \\u.... es tròp granda"
 
-#: glib/gregex.c:745 glib/gregex.c:1983
-#, c-format
+#: ../glib/gregex.c:746 ../glib/gregex.c:1977
 msgid "Error while matching regular expression %s: %s"
 msgstr "Error al moment de la correspondéncia de l'expression regulara %s : %s"
 
-#: glib/gregex.c:1316
+#: ../glib/gregex.c:1317
 msgid "PCRE library is compiled without UTF8 support"
 msgstr "La bibliotèca PCRE es compilada sens la presa en carga UTF-8"
 
-#: glib/gregex.c:1320
+#: ../glib/gregex.c:1321
 msgid "PCRE library is compiled without UTF8 properties support"
 msgstr ""
 "La bibliotèca PCRE es compilada sens la presa en carga de las proprietats "
 "UTF-8"
 
-#: glib/gregex.c:1328
+#: ../glib/gregex.c:1329
 msgid "PCRE library is compiled with incompatible options"
 msgstr "La bibliotèca PCRE es compilada amb d'opcions incompatiblas"
 
-#: glib/gregex.c:1357
-#, c-format
+#: ../glib/gregex.c:1358
 msgid "Error while optimizing regular expression %s: %s"
 msgstr "Error al moment de l'optimizacion de l'expression regulara %s : %s"
 
-#: glib/gregex.c:1437
-#, c-format
+#: ../glib/gregex.c:1438
 msgid "Error while compiling regular expression %s at char %d: %s"
-msgstr "Error a la compilacion de l'expression regulara %s al caractèr %d : %s"
+msgstr "Error a la compilation de l'expression regulara %s al caractèr %d : %s"
 
-#: glib/gregex.c:2419
-#| msgid "hexadecimal digit or '}' expected"
-msgid "hexadecimal digit or “}” expected"
+#: ../glib/gregex.c:2413
+msgid "hexadecimal digit or '}' expected"
 msgstr "chifra exadecimala o « } » esperat"
 
-#: glib/gregex.c:2435
+#: ../glib/gregex.c:2429
 msgid "hexadecimal digit expected"
 msgstr "chifra exadecimala esperat"
 
-#: glib/gregex.c:2475
-#| msgid "missing '<' in symbolic reference"
-msgid "missing “<” in symbolic reference"
+#: ../glib/gregex.c:2469
+msgid "missing '<' in symbolic reference"
 msgstr "« < » mancant dins la referéncia simbolica"
 
-#: glib/gregex.c:2484
+#: ../glib/gregex.c:2478
 msgid "unfinished symbolic reference"
 msgstr "referéncia simbolica pas acabada"
 
-#: glib/gregex.c:2491
+#: ../glib/gregex.c:2485
 msgid "zero-length symbolic reference"
 msgstr "referéncia simbolica de longor nulla"
 
-#: glib/gregex.c:2502
+#: ../glib/gregex.c:2496
 msgid "digit expected"
 msgstr "chifra esperada"
 
-#: glib/gregex.c:2520
+#: ../glib/gregex.c:2514
 msgid "illegal symbolic reference"
 msgstr "referéncia simbolica illegala"
 
-#: glib/gregex.c:2582
-#| msgid "stray final '\\'"
-msgid "stray final “\\”"
+#: ../glib/gregex.c:2576
+msgid "stray final '\\'"
 msgstr "terminason parasita « \\ »"
 
-#: glib/gregex.c:2586
+#: ../glib/gregex.c:2580
 msgid "unknown escape sequence"
 msgstr "sequéncia d'escapament desconeguda"
 
-#: glib/gregex.c:2596
-#, c-format, c-format
-#| msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
-msgid "Error while parsing replacement text “%s” at char %lu: %s"
+#: ../glib/gregex.c:2590
+msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
 msgstr ""
-"Error al moment de l’analisi del tèxte de substitucion « %s » al caractèr %lu : "
-"%s"
+"Error al moment de l'analisi del tèxte de substitucion « %s » al caractèr "
+"%lu : %s"
 
-#: glib/gshell.c:94
-#| msgid "Quoted text doesn't begin with a quotation mark"
-msgid "Quoted text doesn’t begin with a quotation mark"
+#: ../glib/gshell.c:96
+msgid "Quoted text doesn't begin with a quotation mark"
 msgstr "Lo tèxte citat comença pas per de verguetas"
 
-#: glib/gshell.c:184
+#: ../glib/gshell.c:186
 msgid "Unmatched quotation mark in command line or other shell-quoted text"
 msgstr ""
 "Verguetas de tampadura introbablas dins la linha de comanda o autre tèxte "
-"raportat"
+"rapporté"
 
-#: glib/gshell.c:580
-#, c-format, c-format
-#| msgid "Text ended just after a '\\' character. (The text was '%s')"
-msgid "Text ended just after a “\\” character. (The text was “%s”)"
+#: ../glib/gshell.c:582
+msgid "Text ended just after a '\\' character. (The text was '%s')"
 msgstr ""
-"Lo tèxte s’es acabat just aprèp un caractèr « \\ » (lo tèxte èra « %s "
-"»)."
+"Lo tèxte s'es acabat juste aprèp un caractèr « \\ » (lo tèxte èra « %s »)."
 
-#: glib/gshell.c:587
-#, c-format, 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”)"
+#: ../glib/gshell.c:589
+msgid "Text ended before matching quote was found for %c. (The text was '%s')"
 msgstr ""
-"Lo tèxte s’es acabat abans que de verguetas correspondentas sián "
-"rencontradas per %c (lo tèxte èra « %s »)."
+"Lo tèxte s'es acabat abans que de verguetas correspondentas sián rencontrats "
+"per %c (lo tèxte èra « %s »)."
 
-#: glib/gshell.c:599
+#: ../glib/gshell.c:601
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Lo tèxte èra void (o conteniá pas que d'espacis)"
 
-#: glib/gspawn.c:308
-#, c-format
+#: ../glib/gspawn.c:209
 msgid "Failed to read data from child process (%s)"
 msgstr "La lectura de las donadas dempuèi lo processus filh a fracassat (%s)"
 
-#: glib/gspawn.c:456
-#, c-format
+#: ../glib/gspawn.c:353
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr ""
 "Error inesperada dins select() a la lectura de las donadas dempuèi un "
 "processus filh (%s)"
 
-#: glib/gspawn.c:541
-#, c-format
+#: ../glib/gspawn.c:438
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Error inesperada dins waitpid() (%s)"
 
-#: glib/gspawn.c:1049 glib/gspawn-win32.c:1318
-#, c-format
+#: ../glib/gspawn.c:844 ../glib/gspawn-win32.c:1233
 msgid "Child process exited with code %ld"
 msgstr "Lo processus filh s'es acabat amb lo còdi %ld"
 
-#: glib/gspawn.c:1057
-#, c-format
+#: ../glib/gspawn.c:852
 msgid "Child process killed by signal %ld"
 msgstr "Lo processus filh es estat tuat pel senhal %ld"
 
-#: glib/gspawn.c:1064
-#, c-format
+#: ../glib/gspawn.c:859
 msgid "Child process stopped by signal %ld"
 msgstr "Lo processus filh es estat arrestat pel senhal %ld"
 
-#: glib/gspawn.c:1071
-#, c-format
+#: ../glib/gspawn.c:866
 msgid "Child process exited abnormally"
 msgstr "Lo processus filh s'es acabat anormalement"
 
-#: glib/gspawn.c:1366 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
-#, c-format
+#: ../glib/gspawn.c:1271 ../glib/gspawn-win32.c:339 ../glib/gspawn-win32.c:347
 msgid "Failed to read from child pipe (%s)"
 msgstr "La lectura dempuèi un tub filh a fracassat (%s)"
 
-#: glib/gspawn.c:1614
-#, c-format, c-format
-#| msgid "Failed to fork child process (%s)"
-msgid "Failed to spawn child process “%s” (%s)"
-msgstr "L’execucion del processus filh « %s » a fracassat (%s)"
-
-#: glib/gspawn.c:1653
-#, c-format
+#: ../glib/gspawn.c:1341
 msgid "Failed to fork (%s)"
 msgstr "Lo clonatge a fracassat (%s)"
 
-#: glib/gspawn.c:1802 glib/gspawn-win32.c:370
-#, c-format, c-format
-#| msgid "Failed to change to directory '%s' (%s)"
-msgid "Failed to change to directory “%s” (%s)"
+#: ../glib/gspawn.c:1490 ../glib/gspawn-win32.c:370
+msgid "Failed to change to directory '%s' (%s)"
 msgstr "Lo cambiament de repertòri « %s » a fracassat (%s)"
 
-#: glib/gspawn.c:1812
-#, c-format, c-format
-#| msgid "Failed to execute child process \"%s\" (%s)"
-msgid "Failed to execute child process “%s” (%s)"
-msgstr "L’execucion del processus filh « %s » a fracassat (%s)"
+#: ../glib/gspawn.c:1500
+msgid "Failed to execute child process \"%s\" (%s)"
+msgstr "L'execucion del processus filh « %s » a fracassat (%s)"
 
-#: glib/gspawn.c:1822
-#, c-format
+#: ../glib/gspawn.c:1510
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr ""
 "La redireccion de la sortida o de l'entrada del processus filh a fracassat "
 "(%s)"
 
-#: glib/gspawn.c:1831
-#, c-format
+#: ../glib/gspawn.c:1519
 msgid "Failed to fork child process (%s)"
 msgstr "Lo clonatge del processus filh a fracassat (%s)"
 
-#: glib/gspawn.c:1839
-#, c-format, c-format
-#| msgid "Unknown error executing child process \"%s\""
-msgid "Unknown error executing child process “%s”"
-msgstr "Error desconeguda a l’execucion del processus filh « %s »"
+#: ../glib/gspawn.c:1527
+msgid "Unknown error executing child process \"%s\""
+msgstr "Error desconeguda a l'execucion del processus filh « %s »"
 
-#: glib/gspawn.c:1863
-#, c-format
+#: ../glib/gspawn.c:1551
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr ""
 "Impossible de legir pro de donadas dempuèi lo tub del processus filh de pid "
 "(%s)"
 
-#: glib/gspawn-win32.c:283
+#: ../glib/gspawn-win32.c:283
 msgid "Failed to read data from child process"
 msgstr "La lectura de las donadas dempuèi lo processus filh a fracassat"
 
-#: glib/gspawn-win32.c:300
-#, c-format
+#: ../glib/gspawn-win32.c:300
 msgid "Failed to create pipe for communicating with child process (%s)"
 msgstr ""
 "La creacion del tub de comunicacion amb lo processus filh a fracassat (%s)"
 
-#: glib/gspawn-win32.c:376 glib/gspawn-win32.c:381 glib/gspawn-win32.c:500
-#, c-format
+#: ../glib/gspawn-win32.c:376 ../glib/gspawn-win32.c:495
 msgid "Failed to execute child process (%s)"
 msgstr "L'execucion del processus filh a fracassat (%s)"
 
-#: glib/gspawn-win32.c:450
-#, c-format
+#: ../glib/gspawn-win32.c:445
 msgid "Invalid program name: %s"
 msgstr "Nom de programa invalid : %s"
 
-#: glib/gspawn-win32.c:460 glib/gspawn-win32.c:714
-#, c-format
+#: ../glib/gspawn-win32.c:455 ../glib/gspawn-win32.c:722
+#: ../glib/gspawn-win32.c:1297
 msgid "Invalid string in argument vector at %d: %s"
 msgstr "Cadena invalida dins l'argument vector a %d : %s"
 
-#: glib/gspawn-win32.c:471 glib/gspawn-win32.c:729
-#, c-format
+#: ../glib/gspawn-win32.c:466 ../glib/gspawn-win32.c:737
+#: ../glib/gspawn-win32.c:1330
 msgid "Invalid string in environment: %s"
 msgstr "Cadena invalida dins l'environament : %s"
 
-#: glib/gspawn-win32.c:710
-#, c-format
+#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1278
 msgid "Invalid working directory: %s"
 msgstr "Repertòri de trabalh invalid : %s"
 
-#: glib/gspawn-win32.c:772
-#, c-format
+#: ../glib/gspawn-win32.c:783
 msgid "Failed to execute helper program (%s)"
 msgstr "L'execucion del programa d'ajuda a fracassat (%s)"
 
-#: glib/gspawn-win32.c:1045
+#: ../glib/gspawn-win32.c:997
 msgid ""
 "Unexpected error in g_io_channel_win32_poll() reading data from a child "
 "process"
 msgstr ""
 "Error inesperada dins g_io_channel_win32_poll() al moment de la lectura de "
-"las donadas dempuèi un processus filh"
-
-#: glib/gstrfuncs.c:3247 glib/gstrfuncs.c:3348
-msgid "Empty string is not a number"
-msgstr "Una cadena voida es pas un nombre"
-
-#: glib/gstrfuncs.c:3271
-#, c-format, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not a signed number"
-msgstr "« %s » es pas un nom valid"
-
-#: glib/gstrfuncs.c:3281 glib/gstrfuncs.c:3384
-#, c-format
-msgid "Number “%s” is out of bounds [%s, %s]"
-msgstr "Lo nombre « %s » es fòra limits [%s, %s]"
+"las donadas dempuèi un processus fils"
 
-#: glib/gstrfuncs.c:3374
-#, c-format, c-format
-#| msgid "'%s' is not a valid name"
-msgid "“%s” is not an unsigned number"
-msgstr "« %s » es pas un nombre non signat"
-
-#: glib/gutf8.c:811
+#: ../glib/gutf8.c:797
 msgid "Failed to allocate memory"
 msgstr "Impossible d'alogar de la memòria"
 
-#: glib/gutf8.c:944
+#: ../glib/gutf8.c:930
 msgid "Character out of range for UTF-8"
 msgstr "Caractèr fòra plaja per 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:1031 ../glib/gutf8.c:1040 ../glib/gutf8.c:1170
+#: ../glib/gutf8.c:1179 ../glib/gutf8.c:1318 ../glib/gutf8.c:1415
 msgid "Invalid sequence in conversion input"
 msgstr "Sequéncia invalida dins l'entrada del convertidor"
 
-#: glib/gutf8.c:1343 glib/gutf8.c:1440
+#: ../glib/gutf8.c:1329 ../glib/gutf8.c:1426
 msgid "Character out of range for UTF-16"
 msgstr "Caractèr fòra plaja per UTF-16"
 
-#: glib/gutils.c:2244
-#, c-format
-msgid "%.1f kB"
-msgstr "%.1f ko"
-
-#: glib/gutils.c:2245 glib/gutils.c:2451
-#, c-format
-msgid "%.1f MB"
-msgstr "%.1f Mo"
-
-#: glib/gutils.c:2246 glib/gutils.c:2456
-#, c-format
-msgid "%.1f GB"
-msgstr "%.1f Go"
-
-#: glib/gutils.c:2247 glib/gutils.c:2461
-#, c-format
-msgid "%.1f TB"
-msgstr "%.1f To"
-
-#: glib/gutils.c:2248 glib/gutils.c:2466
+#: ../glib/gutils.c:2139 ../glib/gutils.c:2166 ../glib/gutils.c:2272
 #, c-format
-msgid "%.1f PB"
-msgstr "%.1f Po"
-
-#: glib/gutils.c:2249 glib/gutils.c:2471
-#, c-format
-msgid "%.1f EB"
-msgstr "%.1f Eo"
+msgid "%u byte"
+msgid_plural "%u bytes"
+msgstr[0] "%u octet"
+msgstr[1] "%u octets"
 
-#: glib/gutils.c:2252
+#: ../glib/gutils.c:2145
 #, c-format
 msgid "%.1f KiB"
 msgstr "%.1f Kio"
 
-#: glib/gutils.c:2253
+#: ../glib/gutils.c:2147
 #, c-format
 msgid "%.1f MiB"
 msgstr "%.1f Mio"
 
-#: glib/gutils.c:2254
+#: ../glib/gutils.c:2150
 #, c-format
 msgid "%.1f GiB"
 msgstr "%.1f Gio"
 
-#: glib/gutils.c:2255
+#: ../glib/gutils.c:2153
 #, c-format
 msgid "%.1f TiB"
 msgstr "%.1f Tio"
 
-#: glib/gutils.c:2256
+#: ../glib/gutils.c:2156
 #, c-format
 msgid "%.1f PiB"
 msgstr "%.1f Pio"
 
-#: glib/gutils.c:2257
+#: ../glib/gutils.c:2159
 #, c-format
 msgid "%.1f EiB"
 msgstr "%.1f Eio"
 
-#: glib/gutils.c:2260
-#, c-format, c-format
-#| msgid "%.1f kB"
-msgid "%.1f kb"
-msgstr "%.1f kb"
-
-#: glib/gutils.c:2261
-#, c-format, c-format
-#| msgid "%.1f MB"
-msgid "%.1f Mb"
-msgstr "%.1f Mb"
-
-#: glib/gutils.c:2262
-#, c-format, c-format
-#| msgid "%.1f GB"
-msgid "%.1f Gb"
-msgstr "%.1f Gb"
-
-#: glib/gutils.c:2263
-#, c-format, c-format
-#| msgid "%.1f TB"
-msgid "%.1f Tb"
-msgstr "%.1f Tb"
-
-#: glib/gutils.c:2264
-#, c-format, c-format
-#| msgid "%.1f PB"
-msgid "%.1f Pb"
-msgstr "%.1f Pb"
-
-#: glib/gutils.c:2265
-#, c-format, c-format
-#| msgid "%.1f EB"
-msgid "%.1f Eb"
-msgstr "%.1f Eb"
-
-#: glib/gutils.c:2268
-#, c-format, c-format
-#| msgid "%.1f KiB"
-msgid "%.1f Kib"
-msgstr "%.1f Kib"
-
-#: glib/gutils.c:2269
-#, c-format, c-format
-#| msgid "%.1f MiB"
-msgid "%.1f Mib"
-msgstr "%.1f Mib"
-
-#: glib/gutils.c:2270
-#, c-format, c-format
-#| msgid "%.1f GiB"
-msgid "%.1f Gib"
-msgstr "%.1f Gib"
-
-#: glib/gutils.c:2271
-#, c-format, c-format
-#| msgid "%.1f TiB"
-msgid "%.1f Tib"
-msgstr "%.1f Tib"
-
-#: glib/gutils.c:2272
-#, c-format, c-format
-#| msgid "%.1f PiB"
-msgid "%.1f Pib"
-msgstr "%.1f Pib"
-
-#: glib/gutils.c:2273
-#, c-format, c-format
-#| msgid "%.1f EiB"
-msgid "%.1f Eib"
-msgstr "%.1f Eib"
-
-#: glib/gutils.c:2307 glib/gutils.c:2433
+#: ../glib/gutils.c:2172
 #, c-format
-msgid "%u byte"
-msgid_plural "%u bytes"
-msgstr[0] "%u octet"
-msgstr[1] "%u octets"
+msgid "%.1f kB"
+msgstr "%.1f ko"
+
+#: ../glib/gutils.c:2175 ../glib/gutils.c:2290
+#, c-format
+msgid "%.1f MB"
+msgstr "%.1f Mo"
+
+#: ../glib/gutils.c:2178 ../glib/gutils.c:2295
+#, c-format
+msgid "%.1f GB"
+msgstr "%.1f Go"
+
+#: ../glib/gutils.c:2180 ../glib/gutils.c:2300
+#, c-format
+msgid "%.1f TB"
+msgstr "%.1f To"
+
+#: ../glib/gutils.c:2183 ../glib/gutils.c:2305
+#, c-format
+msgid "%.1f PB"
+msgstr "%.1f Po"
 
-#: glib/gutils.c:2311
-#, c-format, c-format
-#| msgid "%u byte"
-#| msgid_plural "%u bytes"
-msgid "%u bit"
-msgid_plural "%u bits"
-msgstr[0] "%u bit"
-msgstr[1] "%u bits"
+#: ../glib/gutils.c:2186 ../glib/gutils.c:2310
+#, c-format
+msgid "%.1f EB"
+msgstr "%.1f Eo"
 
 #. Translators: the %s in "%s bytes" will always be replaced by a number.
-#: glib/gutils.c:2378
+#: ../glib/gutils.c:2223
 #, c-format
 msgid "%s byte"
 msgid_plural "%s bytes"
 msgstr[0] "%s octet"
 msgstr[1] "%s octets"
 
-#. Translators: the %s in "%s bits" will always be replaced by a number.
-#: glib/gutils.c:2383
-#, c-format, c-format
-#| msgid "%s byte"
-#| msgid_plural "%s bytes"
-msgid "%s bit"
-msgid_plural "%s bits"
-msgstr[0] "%s bit"
-msgstr[1] "%s bits"
-
 #. 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:2446
+#: ../glib/gutils.c:2285
 #, c-format
 msgid "%.1f KB"
 msgstr "%.1f Ko"
 
-#~ msgid "Error creating directory '%s': %s"
-#~ msgstr "Error a la creacion del repertòri « %s » : %s"
+msgctxt "full month name with day"
+msgid "January"
+msgstr "genièr"
 
-#~ msgid "No such interface"
-#~ msgstr "Interfàcia pas reconeguda"
+msgctxt "full month name with day"
+msgid "February"
+msgstr "febrièr"
 
-#~ msgid ""
-#~ "Message has %d file descriptors but the header field indicates %d file "
-#~ "descriptors"
-#~ msgstr ""
-#~ "Lo messatge compòrta %d descriptors de fichièrs mentre que lo camp "
-#~ "d'entèsta indica %d descriptors de fichièrs"
+msgctxt "full month name with day"
+msgid "March"
+msgstr "març"
 
-#~ msgid "Error: signal not specified.\n"
-#~ msgstr "Error : lo senhal es pas precisat.\n"
+msgctxt "full month name with day"
+msgid "April"
+msgstr "abril"
 
-#~ msgid "Error: signal must be the fully-qualified name.\n"
-#~ msgstr "Error : lo senhal deu èsser lo nom completament qualificat.\n"
+msgctxt "full month name with day"
+msgid "May"
+msgstr "mai"
 
-#~ msgid "No files given"
-#~ msgstr "Cap de fichièr pas indicat"
+msgctxt "full month name with day"
+msgid "June"
+msgstr "junh"
 
-#~ msgid "Error getting writable attributes: %s\n"
-#~ msgstr "Error al moment de l'obtencion dels atributs en escritura : %s\n"
+msgctxt "full month name with day"
+msgid "July"
+msgstr "julhet"
 
-#~ msgid "Error mounting location: %s\n"
-#~ msgstr "Error de montatge d'emplaçament : %s\n"
+msgctxt "full month name with day"
+msgid "August"
+msgstr "agost"
 
-#~ msgid "Error unmounting mount: %s\n"
-#~ msgstr "Error de desmontatge : %s\n"
+msgctxt "full month name with day"
+msgid "September"
+msgstr "setembre"
 
-#~ msgid "Error finding enclosing mount: %s\n"
-#~ msgstr "Error de descoberta del montatge de basa : %s\n"
+msgctxt "full month name with day"
+msgid "October"
+msgstr "octobre"
 
-#~ msgid "Error ejecting mount: %s\n"
-#~ msgstr "Error d'ejeccion del montatge : %s\n"
+msgctxt "full month name with day"
+msgid "November"
+msgstr "novembre"
+
+msgctxt "full month name with day"
+msgid "December"
+msgstr "decembre"
+
+msgctxt "abbreviated month name with day"
+msgid "Jan"
+msgstr "gen."
+
+msgctxt "abbreviated month name with day"
+msgid "Feb"
+msgstr "febr."
+
+msgctxt "abbreviated month name with day"
+msgid "Mar"
+msgstr "març"
+
+msgctxt "abbreviated month name with day"
+msgid "Apr"
+msgstr "abril"
+
+msgctxt "abbreviated month name with day"
+msgid "May"
+msgstr "mai"
 
-#~ msgid "Error mounting %s: %s\n"
-#~ msgstr "Error de montatge de %s : %s\n"
+msgctxt "abbreviated month name with day"
+msgid "Jun"
+msgstr "junh"
 
-#~ msgid "No files to open"
-#~ msgstr "Pas cap de fichièr de dobrir"
+msgctxt "abbreviated month name with day"
+msgid "Jul"
+msgstr "julh."
 
-#~ msgid "No files to delete"
-#~ msgstr "Pas cap de fichièr de suprimir"
+msgctxt "abbreviated month name with day"
+msgid "Aug"
+msgstr "agost"
 
-#~ msgid "Error setting attribute: %s\n"
-#~ msgstr "Error al moment de la definicion de l'atribut : %s\n"
+msgctxt "abbreviated month name with day"
+msgid "Sep"
+msgstr "set."
 
-#~ msgid "Failed to create temp file: %s"
-#~ msgstr "La creacion del fichièr temporari a fracassat : %s"
+msgctxt "abbreviated month name with day"
+msgid "Oct"
+msgstr "oct."
 
-#~ msgid "Error opening file '%s': %s"
-#~ msgstr "Error al moment de la dobertura del fichièr « %s » : %s"
+msgctxt "abbreviated month name with day"
+msgid "Nov"
+msgstr "nov."
 
-#~ msgid "Error reading file '%s': %s"
-#~ msgstr "Error de lectura del fichièr « %s » : %s"
+msgctxt "abbreviated month name with day"
+msgid "Dec"
+msgstr "dec."
 
 #~ msgid "Error getting filesystem info: %s"
 #~ msgstr "Impossible d'obténer las informacions del sistèma de fichièrs : %s"
@@ -6624,14 +5265,14 @@ msgstr "%.1f Ko"
 #~ "  reset-recursively         Restablís totas las valors dins un esquèma "
 #~ "donat\n"
 #~ "  writable                  Tèsta se la clau es inscriptible\n"
-#~ "  monitor                   Contròla las modificacions\n"
+#~ "  monitor                   Contraròtla las modificacions\n"
 #~ "\n"
 #~ "Picatz 'gsettings help COMANDA' per una ajuda detalhada.\n"
 #~ "\n"
 
 #~ msgid "association changes not supported on win32"
 #~ msgstr ""
-#~ "Las modificacions d'associacion son pas presas en carga sus win32"
+#~ "Les modifications d'association ne son pas prises en en carga sus win32"
 
 #~ msgid "Association creation not supported on win32"
 #~ msgstr "La creacion d'associacions es pas presa en carga sus win32"
index 9829db6..2cfd8c1 100644 (file)
@@ -20,8 +20,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-07 18:33+0000\n"
-"PO-Revision-Date: 2018-11-08 04:00-0200\n"
+"POT-Creation-Date: 2018-08-30 18:47+0000\n"
+"PO-Revision-Date: 2018-09-01 12:21-0200\n"
 "Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
 "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
 "Language: pt_BR\n"
@@ -43,8 +43,8 @@ msgstr "Mostra as opções do GApplication"
 #: gio/gapplication.c:541
 msgid "Enter GApplication service mode (use from D-Bus service files)"
 msgstr ""
-"Digite o modo de serviço do GApplication (usar dos arquivos de serviços do D-"
-"Bus)"
+"Digite o modo de serviço do GApplication (usar dos arquivos de serviços do "
+"D-Bus)"
 
 #: gio/gapplication.c:553
 msgid "Override the application’s ID"
@@ -73,8 +73,7 @@ msgstr "Lista aplicativos"
 
 #: gio/gapplication-tool.c:53
 msgid "List the installed D-Bus activatable applications (by .desktop files)"
-msgstr ""
-"Lista os aplicativos instalados que ativam D-Bus (por arquivos .desktop)"
+msgstr "Lista os aplicativos instalados que ativam D-Bus (por arquivos .desktop)"
 
 #: gio/gapplication-tool.c:55
 msgid "Launch an application"
@@ -123,8 +122,7 @@ msgstr "O comando para exibir ajuda detalhada para"
 
 #: gio/gapplication-tool.c:71
 msgid "Application identifier in D-Bus format (eg: org.example.viewer)"
-msgstr ""
-"Identificador do aplicativo em formato D-Bus (ex: org.exemplo.visualizador)"
+msgstr "Identificador do aplicativo em formato D-Bus (ex: org.exemplo.visualizador)"
 
 #: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:737
 #: gio/glib-compile-resources.c:743 gio/glib-compile-resources.c:770
@@ -236,8 +234,7 @@ msgid ""
 "action names must consist of only alphanumerics, “-” and “.”\n"
 msgstr ""
 "nome da ação inválido: “%s”\n"
-"os nomes de ações devem consistir de apenas caracteres alfanuméricos, “-” e "
-"“.”\n"
+"os nomes de ações devem consistir de apenas caracteres alfanuméricos, “-” e “.”\n"
 
 #: gio/gapplication-tool.c:344
 #, c-format
@@ -312,13 +309,13 @@ msgstr "Espaço insuficiente no destino"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Sequência de bytes inválida na entrada de conversão"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Erro durante a conversão: %s"
@@ -327,7 +324,7 @@ msgstr "Erro durante a conversão: %s"
 msgid "Cancellable initialization not supported"
 msgstr "Sem suporte a inicialização cancelável"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr "Não há suporte à conversão do conjunto de caracteres “%s” para “%s”"
@@ -365,9 +362,7 @@ msgstr "GCredentials não contém um ID de processo neste SO"
 
 #: gio/gcredentials.c:568
 msgid "Credentials spoofing is not possible on this OS"
-msgstr ""
-"Não é possível fazer uso de falsificação de credenciais neste sistema "
-"operacional"
+msgstr "Não é possível fazer uso de falsificação de credenciais neste sistema operacional"
 
 #: gio/gdatainputstream.c:304
 msgid "Unexpected early end-of-stream"
@@ -380,17 +375,13 @@ msgstr "Não há suporte a chave “%s” na entrada de endereço “%s”"
 
 #: gio/gdbusaddress.c:185
 #, c-format
-msgid ""
-"Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
-msgstr ""
-"O endereço “%s” é inválido (é necessário exatamente um dentre: caminho, "
-"diretório temporário ou chaves abstratas)"
+msgid "Address “%s” is invalid (need exactly one of path, tmpdir or abstract keys)"
+msgstr "O endereço “%s” é inválido (é necessário exatamente um dentre: caminho, diretório temporário ou chaves abstratas)"
 
 #: gio/gdbusaddress.c:198
 #, 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”"
+msgstr "Combinação de pares chave/valor sem sentido na entrada de endereço “%s”"
 
 #: gio/gdbusaddress.c:261 gio/gdbusaddress.c:342
 #, c-format
@@ -414,36 +405,23 @@ msgstr "O elemento endereço “%s” não contém um caractere de dois-pontos (
 
 #: gio/gdbusaddress.c:488
 #, c-format
-msgid ""
-"Key/Value pair %d, “%s”, in address element “%s” does not contain an equal "
-"sign"
-msgstr ""
-"O par chave/valor %d, “%s”, no elemento endereço “%s”, não contém um sinal "
-"de igual"
+msgid "Key/Value pair %d, “%s”, in address element “%s” does not contain an equal sign"
+msgstr "O par chave/valor %d, “%s”, no elemento endereço “%s”, não contém um sinal de igual"
 
 #: gio/gdbusaddress.c:502
 #, c-format
-msgid ""
-"Error unescaping key or value in Key/Value pair %d, “%s”, in address element "
-"“%s”"
-msgstr ""
-"Erro ao distinguir a chave sem escape ou valor no par chave/valor %d, “%s”, "
-"no elemento endereço “%s”"
+msgid "Error unescaping key or value in Key/Value pair %d, “%s”, in address element “%s”"
+msgstr "Erro ao distinguir a chave sem escape ou valor no par chave/valor %d, “%s”, no elemento endereço “%s”"
 
 #: gio/gdbusaddress.c:580
 #, c-format
-msgid ""
-"Error in address “%s” — the unix transport requires exactly one of the keys "
-"“path” or “abstract” to be set"
-msgstr ""
-"Erro no endereço “%s” — o transporte Unix requer exatamente uma das chaves "
-"“path” ou “abstract” sejam definidas"
+msgid "Error in address “%s” — the unix transport requires exactly one of the keys “path” or “abstract” to be set"
+msgstr "Erro no endereço “%s” — o transporte Unix requer exatamente uma das chaves “path” ou “abstract” sejam definidas"
 
 #: gio/gdbusaddress.c:616
 #, c-format
 msgid "Error in address “%s” — the host attribute is missing or malformed"
-msgstr ""
-"Erro no endereço “%s” — o atributo servidor está faltando ou malformado"
+msgstr "Erro no endereço “%s” — o atributo servidor está faltando ou malformado"
 
 #: gio/gdbusaddress.c:630
 #, c-format
@@ -453,9 +431,7 @@ msgstr "Erro no endereço “%s” — o atributo porta está faltando ou malfor
 #: gio/gdbusaddress.c:644
 #, c-format
 msgid "Error in address “%s” — the noncefile attribute is missing or malformed"
-msgstr ""
-"Erro no endereço “%s” — o atributo do arquivo de valor de uso único está "
-"faltando ou malformado"
+msgstr "Erro no endereço “%s” — o atributo do arquivo de valor de uso único está faltando ou malformado"
 
 #: gio/gdbusaddress.c:665
 msgid "Error auto-launching: "
@@ -474,9 +450,7 @@ msgstr "Erro ao ler arquivo de valor de uso único “%s”: %s"
 #: gio/gdbusaddress.c:746
 #, c-format
 msgid "Error reading from nonce file “%s”, expected 16 bytes, got %d"
-msgstr ""
-"Erro ao ler o arquivo de valor de uso único “%s”; era esperado 16 bytes, mas "
-"foi obtido %d"
+msgstr "Erro ao ler o arquivo de valor de uso único “%s”; era esperado 16 bytes, mas foi obtido %d"
 
 #: gio/gdbusaddress.c:764
 #, c-format
@@ -494,8 +468,7 @@ msgstr "Não foi possível chamar um barramento de mensagens com setuid"
 
 #: gio/gdbusaddress.c:1093
 msgid "Cannot spawn a message bus without a machine-id: "
-msgstr ""
-"Não foi possível chamar um barramento de mensagens sem um ID de máquina: "
+msgstr "Não foi possível chamar um barramento de mensagens sem um ID de máquina: "
 
 #: gio/gdbusaddress.c:1100
 #, c-format
@@ -520,26 +493,16 @@ msgstr "A sessão dbus não está em execução, e o início automático falhou"
 #: gio/gdbusaddress.c:1524
 #, c-format
 msgid "Cannot determine session bus address (not implemented for this OS)"
-msgstr ""
-"Não foi possível determinar o endereço de barramento da sessão (sem "
-"implementação para este SO)"
+msgstr "Não foi possível determinar o endereço de barramento da sessão (sem implementação para este SO)"
 
 #: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7142
 #, c-format
-msgid ""
-"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"— unknown value “%s”"
-msgstr ""
-"Não foi possível determinar o endereço de barramento da variável de ambiente "
-"DBUS_STARTER_BUS_TYPE — valor desconhecido “%s”"
+msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable — unknown value “%s”"
+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:1671 gio/gdbusconnection.c:7151
-msgid ""
-"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
-"variable is not set"
-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"
+msgid "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment variable is not set"
+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:1681
 #, c-format
@@ -556,11 +519,8 @@ msgstr "Falta de conteúdo inesperada ao tentar (seguramente) ler uma linha"
 
 #: gio/gdbusauth.c:481
 #, c-format
-msgid ""
-"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
-msgstr ""
-"Foram esgotados todos mecanismos de autenticação disponíveis (tentado: %s) "
-"(disponível: %s)"
+msgid "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
+msgstr "Foram esgotados todos mecanismos de autenticação disponíveis (tentado: %s) (disponível: %s)"
 
 #: gio/gdbusauth.c:1144
 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
@@ -573,11 +533,8 @@ msgstr "Erro ao obter informação para o diretório “%s”: %s"
 
 #: gio/gdbusauthmechanismsha1.c:274
 #, c-format
-msgid ""
-"Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
-msgstr ""
-"As permissões no diretório “%s” estão malformadas. É esperado 0700, mas foi "
-"obtido 0%o"
+msgid "Permissions on directory “%s” are malformed. Expected mode 0700, got 0%o"
+msgstr "As permissões no diretório “%s” estão malformadas. É esperado 0700, mas foi obtido 0%o"
 
 #: gio/gdbusauthmechanismsha1.c:299
 #, c-format
@@ -596,19 +553,13 @@ msgstr "A linha %d do chaveiro em “%s” com o conteúdo “%s” está malfor
 
 #: gio/gdbusauthmechanismsha1.c:383 gio/gdbusauthmechanismsha1.c:701
 #, c-format
-msgid ""
-"First token of line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr ""
-"O primeiro símbolo da linha %d do chaveiro em “%s” com o conteúdo “%s” está "
-"malformado"
+msgid "First token of line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr "O primeiro símbolo da linha %d do chaveiro em “%s” com o conteúdo “%s” está malformado"
 
 #: gio/gdbusauthmechanismsha1.c:397 gio/gdbusauthmechanismsha1.c:715
 #, c-format
-msgid ""
-"Second token of line %d of the keyring at “%s” with content “%s” is malformed"
-msgstr ""
-"O segundo símbolo da linha %d do chaveiro em “%s” com o conteúdo “%s” está "
-"malformado"
+msgid "Second token of line %d of the keyring at “%s” with content “%s” is malformed"
+msgstr "O segundo símbolo da linha %d do chaveiro em “%s” com o conteúdo “%s” está malformado"
 
 #: gio/gdbusauthmechanismsha1.c:421
 #, c-format
@@ -654,18 +605,13 @@ msgid "Timeout was reached"
 msgstr "O tempo limite foi alcançado"
 
 #: gio/gdbusconnection.c:2491
-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"
+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:4115 gio/gdbusconnection.c:4462
 #, 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"
+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:4257
 #, c-format
@@ -685,8 +631,7 @@ msgstr "A propriedade “%s” não pode ser escrita"
 #: gio/gdbusconnection.c:4300
 #, 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”"
+msgstr "Erro ao definir a propriedade “%s”: o tipo esperado é “%s”, mas obteve “%s”"
 
 #: gio/gdbusconnection.c:4405 gio/gdbusconnection.c:4613
 #: gio/gdbusconnection.c:6582
@@ -739,88 +684,65 @@ msgstr "O método “%s” na interface “%s” com a assinatura “%s” não
 msgid "A subtree is already exported for %s"
 msgstr "Uma subárvore já foi exportada para %s"
 
-#: gio/gdbusmessage.c:1251
+#: gio/gdbusmessage.c:1248
 msgid "type is INVALID"
 msgstr "o tipo é INVALID"
 
-#: gio/gdbusmessage.c:1262
+#: gio/gdbusmessage.c:1259
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
-msgstr ""
-"Mensagem de METHOD_CALL: O campo de cabeçalho PATH ou MEMBER está faltando"
+msgstr "Mensagem de METHOD_CALL: O campo de cabeçalho PATH ou MEMBER está faltando"
 
-#: gio/gdbusmessage.c:1273
+#: gio/gdbusmessage.c:1270
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
-msgstr ""
-"Mensagem de METHOD_RETURN: O campo de cabeçalho REPLY_SERIAL está faltando"
+msgstr "Mensagem de METHOD_RETURN: O campo de cabeçalho REPLY_SERIAL está faltando"
 
-#: gio/gdbusmessage.c:1285
+#: gio/gdbusmessage.c:1282
 msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
-msgstr ""
-"Mensagem de ERROR: O campo de cabeçalho REPLY_SERIAL ou ERROR_NAME está "
-"faltando"
+msgstr "Mensagem de ERROR: O campo de cabeçalho REPLY_SERIAL ou ERROR_NAME está faltando"
 
-#: gio/gdbusmessage.c:1298
+#: gio/gdbusmessage.c:1295
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
-msgstr ""
-"Mensagem de SIGNAL: O campo de cabeçalho PATH, INTERFACE ou MEMBER está "
-"faltando"
+msgstr "Mensagem de SIGNAL: O campo de cabeçalho PATH, INTERFACE ou MEMBER está faltando"
 
-#: gio/gdbusmessage.c:1306
-msgid ""
-"SIGNAL message: The PATH header field is using the reserved value /org/"
-"freedesktop/DBus/Local"
-msgstr ""
-"Mensagem de SIGNAL: O campo de cabeçalho PATH está usando o valor reservado /"
-"org/freedesktop/DBus/Local"
+#: gio/gdbusmessage.c:1303
+msgid "SIGNAL message: The PATH header field is using the reserved value /org/freedesktop/DBus/Local"
+msgstr "Mensagem de SIGNAL: O campo de cabeçalho PATH está usando o valor reservado /org/freedesktop/DBus/Local"
 
-#: gio/gdbusmessage.c:1314
-msgid ""
-"SIGNAL message: The INTERFACE header field is using the reserved value org."
-"freedesktop.DBus.Local"
-msgstr ""
-"Mensagem de SIGNAL: O campo de cabeçalho INTERFACE está usando o valor "
-"reservado org.freedesktop.DBus.Local"
+#: gio/gdbusmessage.c:1311
+msgid "SIGNAL message: The INTERFACE header field is using the reserved value org.freedesktop.DBus.Local"
+msgstr "Mensagem de SIGNAL: O campo de cabeçalho INTERFACE está usando o valor reservado org.freedesktop.DBus.Local"
 
-#: gio/gdbusmessage.c:1362 gio/gdbusmessage.c:1422
+#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
 #, 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:1376
+#: gio/gdbusmessage.c:1373
 #, 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"
+msgstr "Era esperado um byte NUL (nulo) após o texto “%s”, mas foi localizado o byte %d"
 
-#: gio/gdbusmessage.c:1395
+#: gio/gdbusmessage.c:1392
 #, 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 ""
-"Era esperado um texto UTF-8 válido, mas foi localizado bytes inválidos na "
-"posição %d (tamanho do texto é %d). O texto UTF-8 válido até este ponto era "
-"“%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 "Era esperado um texto UTF-8 válido, mas foi localizado bytes inválidos na posição %d (tamanho do texto é %d). O texto UTF-8 válido até este ponto era “%s”"
 
-#: gio/gdbusmessage.c:1598
+#: gio/gdbusmessage.c:1595
 #, 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:1620
+#: gio/gdbusmessage.c:1617
 #, 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:1667
+#: gio/gdbusmessage.c:1664
 #, 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)."
+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] ""
 "Foi encontrado um vetor com tamanho de %u byte. O tamanho máximo é de 2<<26 "
 "bytes (64 MiB)."
@@ -828,126 +750,87 @@ msgstr[1] ""
 "Foi encontrado um vetor com tamanho de %u bytes. O tamanho máximo é de 2<<26 "
 "bytes (64 MiB)."
 
-#: gio/gdbusmessage.c:1687
+#: gio/gdbusmessage.c:1684
 #, 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 ""
-"Foi encontrado um vetor de tipo “a%c”, esperava-se que tivesse um "
-"comprimento múltiplo de %u bytes, porém foi localizado %u bytes em "
-"comprimento"
+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 "Foi encontrado um vetor de tipo “a%c”, esperava-se que tivesse um comprimento múltiplo de %u bytes, porém foi localizado %u bytes em comprimento"
 
-#: gio/gdbusmessage.c:1857
+#: gio/gdbusmessage.c:1851
 #, 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:1881
+#: gio/gdbusmessage.c:1875
 #, c-format
-msgid ""
-"Error deserializing GVariant with type string “%s” from the D-Bus wire format"
-msgstr ""
-"Erro ao desserializar GVariant com o texto de tipo “%s” do formato "
-"delimitado pelo D-Bus"
+msgid "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
+msgstr "Erro ao desserializar GVariant com o texto de tipo “%s” do formato delimitado pelo D-Bus"
 
-#: gio/gdbusmessage.c:2066
+#: gio/gdbusmessage.c:2057
 #, c-format
-msgid ""
-"Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
-"0x%02x"
-msgstr ""
-"Valor identificador de endian inválido. Era esperado 0x6c (“l”) ou 0x42 "
-"(“B”), mas foi localizado o valor 0x%02x"
+msgid "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value 0x%02x"
+msgstr "Valor identificador de endian inválido. Era esperado 0x6c (“l”) ou 0x42 (“B”), mas foi localizado o valor 0x%02x"
 
-#: gio/gdbusmessage.c:2079
+#: gio/gdbusmessage.c:2070
 #, 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"
+msgstr "Versão majoritária de protocolo inválida. Era esperado 1, mas foi localizado %d"
 
-#: gio/gdbusmessage.c:2132 gio/gdbusmessage.c:2722
-msgid "Signature header found but is not of type signature"
-msgstr "Cabeçalho de assinatura encontrado, mas não é do tipo assinatura"
-
-#: gio/gdbusmessage.c:2144
+#: gio/gdbusmessage.c:2126
 #, 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"
+msgstr "O cabeçalho de assinatura foi localizado com a assinatura “%s”, mas o corpo da mensagem está vazio"
 
-#: gio/gdbusmessage.c:2158
+#: gio/gdbusmessage.c:2140
 #, 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)"
+msgstr "O valor “%s” analisado não é uma assinatura D-Bus válida (para o corpo)"
 
-#: gio/gdbusmessage.c:2188
+#: gio/gdbusmessage.c:2170
 #, 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] ""
-"Nenhum cabeçalho de assinatura na mensagem, mas o corpo da mensagem tem %u "
-"byte"
-msgstr[1] ""
-"Nenhum cabeçalho de assinatura na mensagem, mas o corpo da mensagem tem %u "
-"bytes"
+msgstr[0] "Nenhum cabeçalho de assinatura na mensagem, mas o corpo da mensagem tem %u byte"
+msgstr[1] "Nenhum cabeçalho de assinatura na mensagem, mas o corpo da mensagem tem %u bytes"
 
-#: gio/gdbusmessage.c:2198
+#: gio/gdbusmessage.c:2180
 msgid "Cannot deserialize message: "
 msgstr "Não foi possível desserializar a mensagem: "
 
-#: gio/gdbusmessage.c:2539
+#: gio/gdbusmessage.c:2521
 #, c-format
-msgid ""
-"Error serializing GVariant with type string “%s” to the D-Bus wire format"
-msgstr ""
-"Erro ao serializar GVariant com o texto de tipo “%s” para o formato "
-"delimitado pelo D-Bus"
+msgid "Error serializing GVariant with type string “%s” to the D-Bus wire format"
+msgstr "Erro ao serializar GVariant com o texto de tipo “%s” para o formato delimitado pelo D-Bus"
 
-#: gio/gdbusmessage.c:2676
+#: gio/gdbusmessage.c:2658
 #, c-format
-msgid ""
-"Number of file descriptors in message (%d) differs from header field (%d)"
-msgstr ""
-"O número de descritores de arquivo na mensagem (%d) difere do campo de "
-"cabeçalho (%d)"
+msgid "Number of file descriptors in message (%d) differs from header field (%d)"
+msgstr "O número de descritores de arquivo na mensagem (%d) difere do campo de cabeçalho (%d)"
 
-#: gio/gdbusmessage.c:2684
+#: gio/gdbusmessage.c:2666
 msgid "Cannot serialize message: "
 msgstr "Não foi possível serializar a mensagem: "
 
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2710
 #, 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"
+msgstr "O corpo da mensagem tem a assinatura “%s”, mas não há um cabeçalho de assinatura"
 
-#: gio/gdbusmessage.c:2748
+#: gio/gdbusmessage.c:2720
 #, c-format
-msgid ""
-"Message body has type signature “%s” but signature in the header field is "
-"“%s”"
-msgstr ""
-"O corpo da mensagem tem o tipo de assinatura “%s”, mas a assinatura no campo "
-"de cabeçalho é “%s”"
+msgid "Message body has type signature “%s” but signature in the header field is “%s”"
+msgstr "O corpo da mensagem tem o tipo de assinatura “%s”, mas a assinatura no campo de cabeçalho é “%s”"
 
-#: gio/gdbusmessage.c:2764
+#: gio/gdbusmessage.c:2736
 #, 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)”"
+msgstr "O corpo da mensagem está vazio, mas a assinatura no campo de cabeçalho é “(%s)”"
 
-#: gio/gdbusmessage.c:3317
+#: gio/gdbusmessage.c:3289
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Retorno de erro com o corpo de tipo “%s”"
 
-#: gio/gdbusmessage.c:3325
+#: gio/gdbusmessage.c:3297
 msgid "Error return with empty body"
 msgstr "Retorno de erro com o corpo vazio"
 
@@ -958,8 +841,7 @@ msgstr "Não foi possível obter o perfil da máquina: %s"
 
 #: gio/gdbusprivate.c:2111
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
-msgstr ""
-"Não foi possível carregar /var/lib/dbus/machine-id ou /etc/machine-id: "
+msgstr "Não foi possível carregar /var/lib/dbus/machine-id ou /etc/machine-id: "
 
 #: gio/gdbusproxy.c:1612
 #, c-format
@@ -972,13 +854,8 @@ msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Resposta %d inesperada do método StartServiceByName(\"%s\")"
 
 #: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
-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 ""
-"Não foi possível chamar método; o proxy é para um nome conhecido sem um dono "
-"e o proxy foi construído com o sinalizador "
-"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
+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 "Não foi possível chamar método; o proxy é para um nome conhecido sem um dono e o proxy foi construído com o sinalizador G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
 
 #: gio/gdbusserver.c:708
 msgid "Abstract name space not supported"
@@ -986,9 +863,7 @@ msgstr "Não há suporte a espaço de nome abstrato"
 
 #: gio/gdbusserver.c:795
 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"
+msgstr "Não foi possível especificar o arquivo de valor de uso único ao criar um servidor"
 
 #: gio/gdbusserver.c:876
 #, c-format
@@ -1077,19 +952,13 @@ msgstr "Múltiplas conexões de ponto final especificadas"
 
 #: gio/gdbus-tool.c:497
 #, 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"
+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:506
 #, c-format
-msgid ""
-"Warning: According to introspection data, method “%s” does not exist on "
-"interface “%s”\n"
-msgstr ""
-"Aviso: De acordo com os dados de introspecção o método “%s” não existe na "
-"interface “%s”\n"
+msgid "Warning: According to introspection data, method “%s” does not exist on interface “%s”\n"
+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:568
 msgid "Optional destination for signal (unique name)"
@@ -1239,21 +1108,15 @@ msgstr "Monitora um objeto remoto."
 
 #: gio/gdbus-tool.c:1954
 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"
+msgstr "Erro: não é possível monitorar uma conexão que não seja de barramento de mensagem\n"
 
 #: gio/gdbus-tool.c:2078
 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:2081
-msgid ""
-"Timeout to wait for before exiting with an error (seconds); 0 for no timeout "
-"(default)"
-msgstr ""
-"Tempo limite de espera antes de sair com um erro (segundos); 0 para nenhum "
-"tempo limite (padrão)"
+msgid "Timeout to wait for before exiting with an error (seconds); 0 for no timeout (default)"
+msgstr "Tempo limite de espera antes de sair com um erro (segundos); 0 para nenhum tempo limite (padrão)"
 
 #: gio/gdbus-tool.c:2129
 msgid "[OPTION…] BUS-NAME"
@@ -1295,8 +1158,7 @@ msgstr "Não é possível localizar o terminal requerido para o aplicativo"
 #: gio/gdesktopappinfo.c:3202
 #, 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"
+msgstr "Não é possível criar pasta de configuração do aplicativo do usuário %s: %s"
 
 #: gio/gdesktopappinfo.c:3206
 #, c-format
@@ -1391,7 +1253,7 @@ msgstr "Operação sem suporte"
 msgid "Containing mount does not exist"
 msgstr "Ponto de montagem contido não existe"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2441
+#: gio/gfile.c:2622 gio/glocalfile.c:2399
 msgid "Can’t copy over directory"
 msgstr "Não é possível copiar sobre diretório"
 
@@ -1524,37 +1386,37 @@ msgstr "Falha na conexão com o proxy HTTP: %i"
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "O servidor proxy HTTP fechou a conexão de forma inesperada."
 
-#: gio/gicon.c:298
+#: gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Número errado de tokens (%d)"
 
-#: gio/gicon.c:318
+#: gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Sem tipo para a classe chamada %s"
 
-#: gio/gicon.c:328
+#: gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "O tipo %s não implementa a interface GIcon"
 
-#: gio/gicon.c:339
+#: gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "O tipo %s não tem classe"
 
-#: gio/gicon.c:353
+#: gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Número de versão malformado: %s"
 
-#: gio/gicon.c:367
+#: gio/gicon.c:359
 #, 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:469
+#: gio/gicon.c:461
 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"
 
@@ -2003,8 +1865,7 @@ msgstr "Monitora um arquivo diretamente, mas não relata alterações"
 
 #: gio/gio-tool-monitor.c:45
 msgid "Report moves and renames as simple deleted/created events"
-msgstr ""
-"Relata movimentos e renomeação como eventos de exclusão/criação simples"
+msgstr "Relata movimentos e renomeação como eventos de exclusão/criação simples"
 
 #: gio/gio-tool-monitor.c:47
 msgid "Watch for mount events"
@@ -2302,9 +2163,7 @@ msgstr "Opção de processamento “%s” desconhecida"
 #: gio/glib-compile-resources.c:427
 #, c-format
 msgid "%s preprocessing requested, but %s is not set, and %s is not in PATH"
-msgstr ""
-"Pré-processamento de %s requisitado, mas %s não está definida e %s não está "
-"no PATH"
+msgstr "Pré-processamento de %s requisitado, mas %s não está definida e %s não está no PATH"
 
 #: gio/glib-compile-resources.c:460
 #, c-format
@@ -2330,12 +2189,8 @@ msgid "Name of the output file"
 msgstr "Nome do arquivo de saída"
 
 #: gio/glib-compile-resources.c:738
-msgid ""
-"The directories to load files referenced in FILE from (default: current "
-"directory)"
-msgstr ""
-"Os diretórios do quais serão carregados arquivos referenciados em ARQUIVO "
-"(padrão: diretório atual)"
+msgid "The directories to load files referenced in FILE from (default: current directory)"
+msgstr "Os diretórios do quais serão carregados arquivos referenciados em ARQUIVO (padrão: diretório atual)"
 
 #: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2140
 #: gio/glib-compile-schemas.c:2169
@@ -2343,8 +2198,7 @@ msgid "DIRECTORY"
 msgstr "DIRETÓRIO"
 
 #: gio/glib-compile-resources.c:739
-msgid ""
-"Generate output in the format selected for by the target filename extension"
+msgid "Generate output in the format selected for by the target filename extension"
 msgstr "Gera a saída no formato definido pela extensão do arquivo alvo"
 
 #: gio/glib-compile-resources.c:740
@@ -2476,11 +2330,8 @@ msgid "Failed to parse <default> value of type “%s”: "
 msgstr "Falha ao analisar o valor <default> de tipo “%s”: "
 
 #: 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"
+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:503
 msgid "<choices> already specified for this key"
@@ -2506,25 +2357,18 @@ msgid "<aliases> already specified for this key"
 msgstr "<aliases> já especificado para essa chave"
 
 #: gio/glib-compile-schemas.c:564
-msgid ""
-"<aliases> can only be specified for keys with enumerated or flags types or "
-"after <choices>"
-msgstr ""
-"<aliases> só pode ser especificado para chaves com tipos enumerados ou "
-"sinalizadores ou após <choices>"
+msgid "<aliases> can only be specified for keys with enumerated or flags types or after <choices>"
+msgstr "<aliases> só pode ser especificado para chaves com tipos enumerados ou sinalizadores ou após <choices>"
 
 #: gio/glib-compile-schemas.c:583
 #, c-format
-msgid ""
-"<alias value='%s'/> given when “%s” is already a member of the enumerated "
-"type"
+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: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"
+msgstr "<alias value='%s'/> dado quando <choice value='%s'/> já tinha sido dado"
 
 #: gio/glib-compile-schemas.c:597
 #, c-format
@@ -2557,12 +2401,8 @@ msgstr "Nome inválido “%s”: nomes precisam começar com uma letra minúscul
 
 #: gio/glib-compile-schemas.c:820
 #, c-format
-msgid ""
-"Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers "
-"and hyphen (“-”) are permitted"
-msgstr ""
-"Nome inválido “%s”: caractere inválido “%c”; apenas é permitido letras "
-"minúsculas, números e traços (”-”)"
+msgid "Invalid name “%s”: invalid character “%c”; only lowercase letters, numbers and hyphen (“-”) are permitted"
+msgstr "Nome inválido “%s”: caractere inválido “%c”; apenas é permitido letras minúsculas, números e traços (”-”)"
 
 #: gio/glib-compile-schemas.c:829
 #, c-format
@@ -2595,21 +2435,13 @@ msgstr "<key name='%s'> já especificado"
 
 #: gio/glib-compile-schemas.c:973
 #, c-format
-msgid ""
-"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
-"to modify value"
-msgstr ""
-"<key name='%s'> oculta <key name='%s'> em <schema id='%s'>; use <override> "
-"para modificar o valor"
+msgid "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> to modify value"
+msgstr "<key name='%s'> oculta <key name='%s'> em <schema id='%s'>; use <override> para modificar o valor"
 
 #: gio/glib-compile-schemas.c:984
 #, c-format
-msgid ""
-"Exactly one of “type”, “enum” or “flags” must be specified as an attribute "
-"to <key>"
-msgstr ""
-"Apenas um entre “type”, “enum” ou “flags” deve ser especificado como "
-"atributo para <key>"
+msgid "Exactly one of “type”, “enum” or “flags” must be specified as an attribute to <key>"
+msgstr "Apenas um entre “type”, “enum” ou “flags” deve ser especificado como atributo para <key>"
 
 #: gio/glib-compile-schemas.c:1003
 #, c-format
@@ -2662,19 +2494,13 @@ msgstr "Não é possível estender um esquema com um caminho"
 
 #: gio/glib-compile-schemas.c:1198
 #, 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"
+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:1208
 #, 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'> estende <schema id='%s' list-of='%s'>, mas "
-"“%s” não estende “%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'> estende <schema id='%s' list-of='%s'>, mas “%s” não estende “%s”"
 
 #: gio/glib-compile-schemas.c:1225
 #, c-format
@@ -2688,12 +2514,8 @@ msgstr "O caminho de uma lista precisa terminar com “:/”"
 
 #: gio/glib-compile-schemas.c:1241
 #, c-format
-msgid ""
-"Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/"
-"desktop/” or “/system/” are deprecated."
-msgstr ""
-"Aviso: Esquema “%s” possui caminho “%s”. Caminhos iniciando com “/apps/”, “/"
-"desktop/” ou “/system/” são obsoletos."
+msgid "Warning: Schema “%s” has path “%s”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated."
+msgstr "Aviso: Esquema “%s” possui caminho “%s”. Caminhos iniciando com “/apps/”, “/desktop/” ou “/system/” são obsoletos."
 
 #: gio/glib-compile-schemas.c:1271
 #, c-format
@@ -2744,9 +2566,7 @@ msgstr "Ignorando este arquivo.\n"
 #: gio/glib-compile-schemas.c:1959
 #, c-format
 msgid "No such key “%s” in schema “%s” as specified in override file “%s”"
-msgstr ""
-"Nenhuma chave “%s” no esquema “%s” como especificado no arquivo de "
-"sobrescrita “%s”"
+msgstr "Nenhuma chave “%s” no esquema “%s” como especificado no arquivo de sobrescrita “%s”"
 
 #: gio/glib-compile-schemas.c:1965 gio/glib-compile-schemas.c:1990
 #: gio/glib-compile-schemas.c:2050 gio/glib-compile-schemas.c:2079
@@ -2762,20 +2582,13 @@ msgstr " e --strict foi especificado; saindo.\n"
 
 #: gio/glib-compile-schemas.c:1984
 #, c-format
-msgid ""
-"cannot provide per-desktop overrides for localised key “%s” in schema "
-"“%s” (override file “%s”)"
-msgstr ""
-"não foi possível fornecer substituição por-desktop para chave localizada "
-"“%s” no esquema “%s” (arquivo de substituição “%s”)"
+msgid "cannot provide per-desktop overrides for localised key “%s” in schema “%s” (override file “%s”)"
+msgstr "não foi possível fornecer substituição por-desktop para chave localizada “%s” no esquema “%s” (arquivo de substituição “%s”)"
 
 #: gio/glib-compile-schemas.c:2011
 #, c-format
-msgid ""
-"error parsing key “%s” in schema “%s” as specified in override file “%s”: %s."
-msgstr ""
-"erro ao analisar chave “%s” no esquema “%s” como especificado no arquivo de "
-"sobrescrita “%s”: %s."
+msgid "error parsing key “%s” in schema “%s” as specified in override file “%s”: %s."
+msgstr "erro ao analisar chave “%s” no esquema “%s” como especificado no arquivo de sobrescrita “%s”: %s."
 
 #: gio/glib-compile-schemas.c:2021
 #, c-format
@@ -2784,21 +2597,13 @@ msgstr "Ignorando sobrescrita para esta chave.\n"
 
 #: gio/glib-compile-schemas.c:2040
 #, c-format
-msgid ""
-"override for key “%s” in schema “%s” in override file “%s” is outside the "
-"range given in the schema"
-msgstr ""
-"sobrescrita para chave “%s” no esquema “%s” no arquivo de sobrescrita “%s” "
-"está fora dos limites dado pelo esquema"
+msgid "override for key “%s” in schema “%s” in override file “%s” is outside the range given in the schema"
+msgstr "sobrescrita para chave “%s” no esquema “%s” no arquivo de sobrescrita “%s” está fora dos limites dado pelo esquema"
 
 #: gio/glib-compile-schemas.c:2069
 #, c-format
-msgid ""
-"override for key “%s” in schema “%s” in override file “%s” is not in the "
-"list of valid choices"
-msgstr ""
-"sobrescrita para a chave “%s” no esquema “%s” no arquivo de sobrescrita “%s” "
-"não está na lista de escolhas válidas"
+msgid "override for key “%s” in schema “%s” in override file “%s” is not in the list of valid choices"
+msgstr "sobrescrita para a chave “%s” no esquema “%s” no arquivo de sobrescrita “%s” não está na lista de escolhas válidas"
 
 #: gio/glib-compile-schemas.c:2140
 msgid "where to store the gschemas.compiled file"
@@ -2878,8 +2683,8 @@ msgstr "Erro ao renomear arquivo %s: %s"
 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:1211 gio/glocalfile.c:2317 gio/glocalfile.c:2345
-#: gio/glocalfile.c:2502 gio/glocalfileoutputstream.c:551
+#: gio/glocalfile.c:1211 gio/glocalfile.c:2275 gio/glocalfile.c:2303
+#: gio/glocalfile.c:2460 gio/glocalfileoutputstream.c:551
 msgid "Invalid filename"
 msgstr "Nome de arquivo inválido"
 
@@ -2893,97 +2698,95 @@ msgstr "Erro ao abrir arquivo %s: %s"
 msgid "Error removing file %s: %s"
 msgstr "Erro ao remover arquivo %s: %s"
 
-#: gio/glocalfile.c:1958
+#: gio/glocalfile.c:1916
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Erro ao mover para a lixeira o arquivo %s: %s"
 
-#: gio/glocalfile.c:1999
+#: gio/glocalfile.c:1957
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Não é possível criar o diretório da lixeira %s: %s"
 
-#: gio/glocalfile.c:2020
+#: gio/glocalfile.c:1978
 #, 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:2029
+#: gio/glocalfile.c:1987
 #, 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:2113 gio/glocalfile.c:2133
+#: gio/glocalfile.c:2071 gio/glocalfile.c:2091
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Não é possível localizar ou criar o diretório da lixeira para %s"
 
-#: gio/glocalfile.c:2168
+#: gio/glocalfile.c:2126
 #, 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:2228
+#: gio/glocalfile.c:2186
 #, 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"
+msgstr "Não é possível mover para a lixeira o arquivo %s entre os limites de sistema de arquivos"
 
-#: gio/glocalfile.c:2232 gio/glocalfile.c:2288
+#: gio/glocalfile.c:2190 gio/glocalfile.c:2246
 #, 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:2294
+#: gio/glocalfile.c:2252
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Não é possível mover para a lixeira o arquivo %s"
 
-#: gio/glocalfile.c:2320
+#: gio/glocalfile.c:2278
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Erro ao criar o diretório %s: %s"
 
-#: gio/glocalfile.c:2349
+#: gio/glocalfile.c:2307
 #, 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:2352
+#: gio/glocalfile.c:2310
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Erro ao criar link simbólico %s: %s"
 
-#: gio/glocalfile.c:2358 glib/gfileutils.c:2138
+#: gio/glocalfile.c:2316 glib/gfileutils.c:2138
 msgid "Symbolic links not supported"
 msgstr "Não há suporte a links simbólicos"
 
-#: gio/glocalfile.c:2413 gio/glocalfile.c:2448 gio/glocalfile.c:2505
+#: gio/glocalfile.c:2371 gio/glocalfile.c:2406 gio/glocalfile.c:2463
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Erro ao mover arquivo %s: %s"
 
-#: gio/glocalfile.c:2436
+#: gio/glocalfile.c:2394
 msgid "Can’t move directory over directory"
 msgstr "Não é possível mover diretório sobre diretório"
 
-#: gio/glocalfile.c:2462 gio/glocalfileoutputstream.c:935
+#: gio/glocalfile.c:2420 gio/glocalfileoutputstream.c:935
 #: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
 #: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
 msgid "Backup file creation failed"
 msgstr "Falha ao criar arquivo de backup"
 
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2439
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Erro ao remover arquivo alvo: %s"
 
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2453
 msgid "Move between mounts not supported"
 msgstr "Não há suporte a mover entre montagens"
 
-#: gio/glocalfile.c:2686
+#: gio/glocalfile.c:2644
 #, 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"
@@ -3014,70 +2817,70 @@ msgstr " (codificação inválida)"
 msgid "Error when getting information for file “%s”: %s"
 msgstr "Erro ao obter informação para o arquivo “%s”: %s"
 
-#: gio/glocalfileinfo.c:2059
+#: gio/glocalfileinfo.c:2053
 #, 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:2104
+#: gio/glocalfileinfo.c:2098
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Tipo de atributo inválido (esperado uint32)"
 
-#: gio/glocalfileinfo.c:2122
+#: gio/glocalfileinfo.c:2116
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Tipo de atributo inválido (esperado uint64)"
 
-#: gio/glocalfileinfo.c:2141 gio/glocalfileinfo.c:2160
+#: gio/glocalfileinfo.c:2135 gio/glocalfileinfo.c:2154
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Tipo de atributo inválido (expressão de byte esperada)"
 
-#: gio/glocalfileinfo.c:2207
+#: gio/glocalfileinfo.c:2201
 msgid "Cannot set permissions on symlinks"
 msgstr "Não foi possível definir permissões aos links simbólicos"
 
-#: gio/glocalfileinfo.c:2223
+#: gio/glocalfileinfo.c:2217
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Erro ao definir permissões: %s"
 
-#: gio/glocalfileinfo.c:2274
+#: gio/glocalfileinfo.c:2268
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Erro ao definir proprietário: %s"
 
-#: gio/glocalfileinfo.c:2297
+#: gio/glocalfileinfo.c:2291
 msgid "symlink must be non-NULL"
 msgstr "o link simbólico deve ser não-NULO"
 
-#: gio/glocalfileinfo.c:2307 gio/glocalfileinfo.c:2326
-#: gio/glocalfileinfo.c:2337
+#: gio/glocalfileinfo.c:2301 gio/glocalfileinfo.c:2320
+#: gio/glocalfileinfo.c:2331
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Erro ao definir link simbólico: %s"
 
-#: gio/glocalfileinfo.c:2316
+#: gio/glocalfileinfo.c:2310
 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:2442
+#: gio/glocalfileinfo.c:2436
 #, 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:2465
+#: gio/glocalfileinfo.c:2459
 msgid "SELinux context must be non-NULL"
 msgstr "O contexto SELinux deve ser não-NULO"
 
-#: gio/glocalfileinfo.c:2480
+#: gio/glocalfileinfo.c:2474
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Erro ao definir o contexto SELinux: %s"
 
-#: gio/glocalfileinfo.c:2487
+#: gio/glocalfileinfo.c:2481
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux não está habilitado neste sistema"
 
-#: gio/glocalfileinfo.c:2579
+#: gio/glocalfileinfo.c:2573
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Não há suporte à definição do atributo %s"
@@ -3174,12 +2977,8 @@ msgid "Failed to resize memory output stream"
 msgstr "Falha ao redimensionar fluxo de saída da memória"
 
 #: gio/gmemoryoutputstream.c:673
-msgid ""
-"Amount of memory required to process the write is larger than available "
-"address space"
-msgstr ""
-"Quantidade de memória necessária para processar a escrita é maior que a "
-"disponível"
+msgid "Amount of memory required to process the write is larger than available address space"
+msgstr "Quantidade de memória necessária para processar a escrita é maior que a disponível"
 
 #: gio/gmemoryoutputstream.c:782
 msgid "Requested seek before the beginning of the stream"
@@ -3208,8 +3007,7 @@ msgstr "objeto de montagem não implementa “eject”"
 #. * don't implement any of unmount or unmount_with_operation.
 #: gio/gmount.c:553
 msgid "mount doesn’t implement “unmount” or “unmount_with_operation”"
-msgstr ""
-"objeto de montagem não implementa “unmount” ou “unmount_with_operation”"
+msgstr "objeto de montagem não implementa “unmount” ou “unmount_with_operation”"
 
 #. Translators: This is an error
 #. * message for mount objects that
@@ -3237,8 +3035,7 @@ msgstr "objeto de montagem não implementa estimativa de tipo de conteúdo"
 #. * don't implement content type guessing.
 #: gio/gmount.c:895
 msgid "mount doesn’t implement synchronous content type guessing"
-msgstr ""
-"objeto de montagem não implementa estimativa de tipo de conteúdo síncrono"
+msgstr "objeto de montagem não implementa estimativa de tipo de conteúdo síncrono"
 
 #: gio/gnetworkaddress.c:378
 #, c-format
@@ -3595,8 +3392,7 @@ msgstr ""
 "  get                       Obtém o valor de uma chave\n"
 "  set                       Define o valor de uma chave\n"
 "  reset                     Redefine o valor de uma chave\n"
-"  reset-recursively         Restaura todas as chaves em um determinado "
-"esquema\n"
+"  reset-recursively         Restaura todas as chaves em um determinado esquema\n"
 "  writable                  Verifica se uma chave é gravável\n"
 "  monitor                   Monitora alterações\n"
 "\n"
@@ -3698,15 +3494,12 @@ msgstr "Foi especificado um protocolo desconhecido"
 #: gio/gsocket.c:1130
 #, c-format
 msgid "Cannot use datagram operations on a non-datagram socket."
-msgstr ""
-"Não foi possível usar operações de datagrama em um soquete não-datagrama."
+msgstr "Não foi possível usar operações de datagrama em um soquete não-datagrama."
 
 #: gio/gsocket.c:1147
 #, c-format
 msgid "Cannot use datagram operations on a socket with a timeout set."
-msgstr ""
-"Não foi possível usar operações de datagrama em um soquete com um tempo "
-"limite definido."
+msgstr "Não foi possível usar operações de datagrama em um soquete com um tempo limite definido."
 
 #: gio/gsocket.c:1954
 #, c-format
@@ -3897,20 +3690,16 @@ msgid "The SOCKSv5 proxy requires authentication."
 msgstr "O proxy SOCKSv5 requer autenticação."
 
 #: gio/gsocks5proxy.c:177
-msgid ""
-"The SOCKSv5 proxy requires an authentication method that is not supported by "
-"GLib."
+msgid "The SOCKSv5 proxy requires an authentication method that is not supported by GLib."
 msgstr "O SOCKSv5 requer um método de autenticação sem suporte pelo GLib."
 
 #: gio/gsocks5proxy.c:206
 msgid "Username or password is too long for SOCKSv5 protocol."
-msgstr ""
-"O nome de usuário ou a senha são muito longos para o protocolo SOCKSv5."
+msgstr "O nome de usuário ou a senha são muito longos para o protocolo SOCKSv5."
 
 #: gio/gsocks5proxy.c:236
 msgid "SOCKSv5 authentication failed due to wrong username or password."
-msgstr ""
-"A autenticação SOCKSv5 falhou devido a um nome de usuário ou senha errados."
+msgstr "A autenticação SOCKSv5 falhou devido a um nome de usuário ou senha errados."
 
 #: gio/gsocks5proxy.c:286
 #, c-format
@@ -4005,22 +3794,14 @@ msgid "Could not parse PEM-encoded certificate"
 msgstr "Não foi possível analisar certificado codificado com PEM"
 
 #: gio/gtlspassword.c:111
-msgid ""
-"This is the last chance to enter the password correctly before your access "
-"is locked out."
-msgstr ""
-"Esta é a última chance para digitar a senha corretamente antes de seu acesso "
-"ser bloqueado."
+msgid "This is the last chance to enter the password correctly before your access is locked out."
+msgstr "Esta é a última chance para digitar a senha corretamente antes de seu acesso ser bloqueado."
 
 #. 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 passwords entered have been incorrect, and your access will be "
-"locked out after further failures."
-msgstr ""
-"Várias das senhas digitadas estavam incorretas, e o seu acesso será "
-"bloqueado se houverem mais falhas."
+msgid "Several passwords entered have been incorrect, and your access will be locked out after further failures."
+msgstr "Várias das senhas digitadas estavam incorretas, e o seu acesso será bloqueado se houverem mais falhas."
 
 #: gio/gtlspassword.c:117
 msgid "The password entered is incorrect."
@@ -4063,11 +3844,8 @@ msgid "Error enabling SO_PASSCRED: %s"
 msgstr "Erro ao habilitar SO_PASSCRED: %s"
 
 #: gio/gunixconnection.c:549
-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"
+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:589
 #, c-format
@@ -4090,7 +3868,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
 msgid "Filesystem root"
 msgstr "Sistema de arquivos root"
 
@@ -4101,9 +3879,7 @@ msgstr "Erro ao gravar o descritor de arquivo: %s"
 
 #: gio/gunixsocketaddress.c:243
 msgid "Abstract UNIX domain socket addresses not supported on this system"
-msgstr ""
-"Não há suporte a endereços de soquetes de domínio UNIX abstratos neste "
-"sistema"
+msgstr "Não há suporte a endereços de soquetes de domínio UNIX abstratos neste sistema"
 
 #: gio/gvolume.c:438
 msgid "volume doesn’t implement eject"
@@ -4197,8 +3973,7 @@ msgstr "Marca “%s” inesperada dentro de “%s”"
 
 #: glib/gbookmarkfile.c:1813
 msgid "No valid bookmark file found in data dirs"
-msgstr ""
-"Nenhum arquivo de marcadores válido foi localizado nos diretórios de dados"
+msgstr "Nenhum arquivo de marcadores válido foi localizado nos diretórios de dados"
 
 #: glib/gbookmarkfile.c:2014
 #, c-format
@@ -4247,16 +4022,15 @@ msgstr "Falha em expandir linha de execução “%s” com URI “%s”"
 msgid "Unrepresentable character in conversion input"
 msgstr "Caractere não representável na conversão da entrada"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Sequência de caracteres parcial no final da entrada"
 
 #: glib/gconvert.c:769
 #, c-format
 msgid "Cannot convert fallback “%s” to codeset “%s”"
-msgstr ""
-"Não é possível converter a sequência “%s” para conjunto caracteres “%s”"
+msgstr "Não é possível converter a sequência “%s” para conjunto caracteres “%s”"
 
 #: glib/gconvert.c:940
 msgid "Embedded NUL byte in conversion input"
@@ -4791,127 +4565,116 @@ msgstr "Modelo “%s” não contém XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Falha ao ler link simbólico “%s”: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Não foi possível abrir conversor de “%s” para “%s”: %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
-msgstr ""
-"Não é possível fazer uma leitura em bruto em g_io_channel_read_line_string"
+msgstr "Não é possível fazer uma leitura em bruto em g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Dados residuais não convertidos no buffer de leitura"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Canal termina em um caractere parcial"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 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:788
 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"
+msgstr "Não foi possível localizar arquivo de chave válido nos diretórios pesquisados"
 
 #: glib/gkeyfile.c:825
 msgid "Not a regular file"
 msgstr "Não é um arquivo comum"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1270
 #, c-format
-msgid ""
-"Key file contains line “%s” which is not a key-value pair, group, or comment"
-msgstr ""
-"Arquivo de chave contém a linha “%s” que não é um par chave-valor, grupo ou "
-"comentário"
+msgid "Key file contains line “%s” which is not a key-value pair, group, or comment"
+msgstr "Arquivo de chave contém a linha “%s” que não é um par chave-valor, grupo ou comentário"
 
-#: glib/gkeyfile.c:1331
+#: glib/gkeyfile.c:1327
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Nome de grupo inválido: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1349
 msgid "Key file does not start with a group"
 msgstr "Arquivo de chave não começa com um grupo"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1375
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Nome de chave inválido: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1402
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Arquivo de chave contém codificação “%s” sem suporte"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
+#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
+#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Arquivo de chave não tem grupo “%s”"
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1773
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1935 glib/gkeyfile.c:2051
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
 #, 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."
+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:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
 #, c-format
-msgid ""
-"Key file contains key “%s” in group “%s” which has a value that cannot be "
-"interpreted."
-msgstr ""
-"Arquivo de chave contém chave “%s” no grupo “%s” que tem um valor que não "
-"pode ser interpretado."
+msgid "Key file contains key “%s” in group “%s” which has a value that cannot be interpreted."
+msgstr "Arquivo de chave contém chave “%s” no grupo “%s” que tem um valor que não pode ser interpretado."
 
-#: glib/gkeyfile.c:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
 #, 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:4278
+#: glib/gkeyfile.c:4274
 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:4300
+#: glib/gkeyfile.c:4296
 #, 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:4444
+#: glib/gkeyfile.c:4440
 #, 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:4458
+#: glib/gkeyfile.c:4454
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Valor inteiro “%s” fora dos limites"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4487
 #, 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:4530
+#: glib/gkeyfile.c:4526
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "O valor “%s” não pode ser interpretado como um booleano."
@@ -4931,223 +4694,157 @@ msgstr "Falha ao mapear arquivo “%s%s%s%s”: mmap() falhou: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Falha ao abrir arquivo “%s”: open() falhou: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Erro na linha %d caractere %d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "“%s” não é um nome válido"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "“%s” não é um nome válido: “%c”"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:610
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Erro na linha %d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:687
 #, 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 ""
-"Falha ao analisar “%-.*s”, que deveria ter sido um dígito dentro de uma "
-"referência de caractere (&#234; por exemplo) — talvez o dígito seja grande "
-"demais"
+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 "Falha ao analisar “%-.*s”, que deveria ter sido um dígito dentro de uma referência de caractere (&#234; por exemplo) — talvez o dígito seja grande demais"
 
-#: 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 ""
-"Referência de caractere não terminou com um ponto e vírgula; provavelmente "
-"utilizou um caractere “e comercial” sem desejar iniciar uma entidade — "
-"escape-o com &amp;"
+#: glib/gmarkup.c:699
+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 "Referência de caractere não terminou com um ponto e vírgula; provavelmente utilizou um caractere “e comercial” sem desejar iniciar uma entidade — escape-o com &amp;"
 
-#: glib/gmarkup.c:728
+#: glib/gmarkup.c:725
 #, 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: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:763
+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:774
+#: glib/gmarkup.c:771
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Nome de entidade “%-.*s” não é conhecido"
 
-#: 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 ""
-"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:776
+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 "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:1187
+#: glib/gmarkup.c:1182
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Documento tem de começar com um elemento (ex. <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1222
 #, c-format
-msgid ""
-"“%s” is not a valid character following a “<” character; it may not begin an "
-"element name"
-msgstr ""
-"“%s” não é um caractere válido após um caractere “<”; não poderá começar um "
-"nome de elemento"
+msgid "“%s” is not a valid character following a “<” character; it may not begin an element name"
+msgstr "“%s” não é um caractere válido após um caractere “<”; não poderá começar um nome de elemento"
 
-#: glib/gmarkup.c:1270
+#: glib/gmarkup.c:1264
 #, c-format
-msgid ""
-"Odd character “%s”, expected a “>” character to end the empty-element tag "
-"“%s”"
-msgstr ""
-"Caractere estranho “%s”, esperado um caractere “>” para finalizar a marca "
-"“%s” de elemento vazio"
+msgid "Odd character “%s”, expected a “>” character to end the empty-element tag “%s”"
+msgstr "Caractere estranho “%s”, esperado um caractere “>” para finalizar a marca “%s” de elemento vazio"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1345
 #, c-format
-msgid ""
-"Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
-msgstr ""
-"Caractere estranho “%s”, esperava-se um “=” após o nome do atributo “%s” do "
-"elemento “%s”"
+msgid "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
+msgstr "Caractere estranho “%s”, esperava-se um “=” após o nome do atributo “%s” do elemento “%s”"
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1386
 #, 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 ""
-"Caractere estranho “%s”, esperava-se um caractere “>” ou “/” para terminar a "
-"marca inicial do elemento “%s”, ou opcionalmente um atributo; talvez tenha "
-"utilizado um caractere inválido no nome de atributo"
+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 "Caractere estranho “%s”, esperava-se um caractere “>” ou “/” para terminar a marca inicial do elemento “%s”, ou opcionalmente um atributo; talvez tenha utilizado um caractere inválido no nome de atributo"
 
-#: glib/gmarkup.c:1439
+#: glib/gmarkup.c:1430
 #, 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 ""
-"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”"
+msgid "Odd character “%s”, expected an open quote mark after the equals sign when giving value for attribute “%s” of element “%s”"
+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:1573
+#: glib/gmarkup.c:1563
 #, c-format
-msgid ""
-"“%s” is not a valid character following the characters “</”; “%s” may not "
-"begin an element name"
-msgstr ""
-"“%s” não é um caractere válido após os caracteres “</”; “%s” não poderá "
-"começar o nome de um elemento"
+msgid "“%s” is not a valid character following the characters “</”; “%s” may not begin an element name"
+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:1611
+#: glib/gmarkup.c:1599
 #, c-format
-msgid ""
-"“%s” is not a valid character following the close element name “%s”; the "
-"allowed character is “>”"
-msgstr ""
-"“%s” não é um caractere válido após o nome do elemento de fecho “%s”; o "
-"caractere permitido é “>”"
+msgid "“%s” is not a valid character following the close element name “%s”; the allowed character is “>”"
+msgstr "“%s” não é um caractere válido após o nome do elemento de fecho “%s”; o caractere permitido é “>”"
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1610
 #, 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:1632
+#: glib/gmarkup.c:1619
 #, 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:1785
+#: glib/gmarkup.c:1772
 msgid "Document was empty or contained only whitespace"
 msgstr "Documento estava vazio ou apenas continha espaços"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1786
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr "Documento terminou inesperadamente logo após um menor que “<”"
 
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
 #, c-format
-msgid ""
-"Document ended unexpectedly with elements still open — “%s” was the last "
-"element opened"
-msgstr ""
-"Documento terminou inesperadamente com elementos ainda abertos — “%s” foi o "
-"último elemento aberto"
+msgid "Document ended unexpectedly with elements still open — “%s” was the last element opened"
+msgstr "Documento terminou inesperadamente com elementos ainda abertos — “%s” foi o último elemento aberto"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1802
 #, c-format
-msgid ""
-"Document ended unexpectedly, expected to see a close angle bracket ending "
-"the tag <%s/>"
-msgstr ""
-"Documento terminou inesperadamente, esperava-se ver um sinal de maior (“>”) "
-"para terminar a marca <%s/>"
+msgid "Document ended unexpectedly, expected to see a close angle bracket ending the tag <%s/>"
+msgstr "Documento terminou inesperadamente, esperava-se ver um sinal de maior (“>”) para terminar a marca <%s/>"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1808
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Documento terminou inesperadamente dentro de um nome de elemento"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1814
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Documento terminou inesperadamente dentro de um nome de atributo"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1819
 msgid "Document ended unexpectedly inside an element-opening tag."
-msgstr ""
-"Documento terminou inesperadamente dentro de uma marca de abertura de "
-"elemento."
+msgstr "Documento terminou inesperadamente dentro de uma marca de abertura de elemento."
 
-#: glib/gmarkup.c:1838
-msgid ""
-"Document ended unexpectedly after the equals sign following an attribute "
-"name; no attribute value"
-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:1825
+msgid "Document ended unexpectedly after the equals sign following an attribute name; no attribute value"
+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:1845
+#: glib/gmarkup.c:1832
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Documento terminou inesperadamente dentro de um valor de atributo"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1849
 #, 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”"
+msgstr "Documento terminou inesperadamente dentro da marca de fechamento do elemento “%s”"
 
-#: glib/gmarkup.c:1866
-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:1853
+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:1872
+#: glib/gmarkup.c:1859
 msgid "Document ended unexpectedly inside a comment or processing instruction"
-msgstr ""
-"Documento terminou inesperadamente dentro de um comentário ou instrução de "
-"processamento"
+msgstr "Documento terminou inesperadamente dentro de um comentário ou instrução de processamento"
 
 #: glib/goption.c:861
 msgid "[OPTION…]"
@@ -5186,8 +4883,7 @@ msgstr "Valor inteiro “%s” para %s fora dos limites"
 #: glib/goption.c:1148
 #, c-format
 msgid "Cannot parse double value “%s” for %s"
-msgstr ""
-"Não é possível converter o ponto flutuante com dupla precisão “%s” para %s"
+msgstr "Não é possível converter o ponto flutuante com dupla precisão “%s” para %s"
 
 #: glib/goption.c:1156
 #, c-format
@@ -5235,9 +4931,7 @@ msgstr "erro interno"
 
 #: glib/gregex.c:288
 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"
+msgstr "não há suporte à referência retroativa como condição para correspondência parcial"
 
 #: glib/gregex.c:297
 msgid "recursion limit reached"
@@ -5444,12 +5138,8 @@ msgstr "opções do NEWLINE inconsistentes"
 
 # obs.: "angle-brackets" não existe no Brasil, mas existe brackets, que é '<' e '>'
 #: glib/gregex.c:476
-msgid ""
-"\\g is not followed by a braced, angle-bracketed, or quoted name or number, "
-"or by a plain number"
-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"
+msgid "\\g is not followed by a braced, angle-bracketed, or quoted name or number, or by a plain number"
+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:480
 msgid "a numbered reference must not be zero"
@@ -5477,8 +5167,7 @@ msgstr "esperava-se dígito após (?+"
 
 #: glib/gregex.c:498
 msgid "] is an invalid data character in JavaScript compatibility mode"
-msgstr ""
-"] é um caractere de dados inválido no modo de compatibilidade do JavaScript"
+msgstr "] é um caractere de dados inválido no modo de compatibilidade do JavaScript"
 
 #: glib/gregex.c:501
 msgid "different names for subpatterns of the same number are not allowed"
@@ -5495,9 +5184,7 @@ 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:510
 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"
+msgstr "\\k não é seguido por um nome entre aspas, chaves ou sinais de menor que ou maior que"
 
 #: glib/gregex.c:513
 msgid "\\N is not supported in a class"
@@ -5599,90 +5286,88 @@ msgstr "Texto terminou logo após um caractere “\\”. (O texto era “%s”)"
 #: glib/gshell.c:587
 #, c-format
 msgid "Text ended before matching quote was found for %c. (The text was “%s”)"
-msgstr ""
-"Texto terminou antes da aspa equivalente ter sido localizada para %c. (texto "
-"era “%s”)"
+msgstr "Texto terminou antes da aspa equivalente ter sido localizada para %c. (texto era “%s”)"
 
 #: glib/gshell.c:599
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Texto estava vazio (ou apenas continha espaços)"
 
-#: glib/gspawn.c:311
+#: glib/gspawn.c:308
 #, c-format
 msgid "Failed to read data from child process (%s)"
 msgstr "Falha ao ler dados de processo filho (%s)"
 
-#: glib/gspawn.c:459
+#: glib/gspawn.c:456
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr "Erro inesperado no select() ao ler dados de processo filho (%s)"
 
-#: glib/gspawn.c:544
+#: glib/gspawn.c:541
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Erro inesperado em waitpid() (%s)"
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: glib/gspawn.c:1049 glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Processo filho concluiu com código %ld"
 
-#: glib/gspawn.c:1060
+#: glib/gspawn.c:1057
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Processo filho foi terminado pelo sinal %ld"
 
-#: glib/gspawn.c:1067
+#: glib/gspawn.c:1064
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Processo filho foi parado pelo sinal %ld"
 
-#: glib/gspawn.c:1074
+#: glib/gspawn.c:1071
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "Processo filho concluiu anormalmente"
 
-#: glib/gspawn.c:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: glib/gspawn.c:1366 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Falha ao ler de canal filho (%s)"
 
-#: glib/gspawn.c:1617
+#: glib/gspawn.c:1614
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr "Falha ao criar processo filho “%s” (%s)"
 
-#: glib/gspawn.c:1656
+#: glib/gspawn.c:1653
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Falha no fork (%s)"
 
-#: glib/gspawn.c:1805 glib/gspawn-win32.c:370
+#: glib/gspawn.c:1802 glib/gspawn-win32.c:370
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Falha ao ir para diretório “%s” (%s)"
 
-#: glib/gspawn.c:1815
+#: glib/gspawn.c:1812
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Falha ao executar processo filho “%s” (%s)"
 
-#: glib/gspawn.c:1825
+#: glib/gspawn.c:1822
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Falha ao redirecionar saída ou entrada do processo filho (%s)"
 
-#: glib/gspawn.c:1834
+#: glib/gspawn.c:1831
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Falha no fork de processo filho (%s)"
 
-#: glib/gspawn.c:1842
+#: glib/gspawn.c:1839
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Erro desconhecido ao executar processo filho “%s”"
 
-#: glib/gspawn.c:1866
+#: glib/gspawn.c:1863
 #, 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)"
@@ -5727,12 +5412,8 @@ msgid "Failed to execute helper program (%s)"
 msgstr "Falha ao executar programa auxiliar (%s)"
 
 #: glib/gspawn-win32.c:1045
-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 processo "
-"filho"
+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 processo filho"
 
 #: glib/gstrfuncs.c:3247 glib/gstrfuncs.c:3348
 msgid "Empty string is not a number"
@@ -5753,20 +5434,20 @@ msgstr "O número “%s” está fora dos limites [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "“%s” não é um número não assinado"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Falha ao alocar memória"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Caractere fora do limite para UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Sequência inválida na conversão da entrada"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Caractere fora do limite para UTF-16"
 
@@ -5933,12 +5614,8 @@ msgstr "%.1f KB"
 #~ msgid "No such method '%s'"
 #~ msgstr "Método “%s” inexistente"
 
-#~ msgid ""
-#~ "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment "
-#~ "variable - unknown value '%s'"
-#~ msgstr ""
-#~ "Não foi possível determinar o endereço de barramento da variável de "
-#~ "ambiente DBUS_STARTER_BUS_TYPE - valor desconhecido “%s”"
+#~ msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable - unknown value '%s'"
+#~ msgstr "Não foi possível determinar o endereço de barramento da variável de ambiente DBUS_STARTER_BUS_TYPE - valor desconhecido “%s”"
 
 #~ msgid "[ARGS...]"
 #~ msgstr "[ARGUMENTOS…]"
@@ -5946,12 +5623,8 @@ msgstr "%.1f KB"
 #~ msgid "Failed to create temp file: %s"
 #~ msgstr "Falha ao criar um arquivo temporário: %s"
 
-#~ msgid ""
-#~ "Message has %d file descriptors but the header field indicates %d file "
-#~ "descriptors"
-#~ msgstr ""
-#~ "A mensagem possui %d descritores de arquivos, mas o campo de cabeçalho "
-#~ "indica %d descritores de arquivos"
+#~ msgid "Message has %d file descriptors but the header field indicates %d file descriptors"
+#~ msgstr "A mensagem possui %d descritores de arquivos, mas o campo de cabeçalho indica %d descritores de arquivos"
 
 #~ msgid "Error: object path not specified.\n"
 #~ msgstr "Erro: caminho do objeto não especificado.\n"
@@ -6057,20 +5730,14 @@ msgstr "%.1f KB"
 #~ msgid "Incomplete data received for '%s'"
 #~ msgstr "Dados incompletos recebidos para \"%s\""
 
-#~ msgid ""
-#~ "Unexpected option length while checking if SO_PASSCRED is enabled for "
-#~ "socket. Expected %d bytes, got %d"
-#~ msgstr ""
-#~ "Tamanho inesperado de opção ao verificar se SO_PASSCRED está habilitado "
-#~ "pelo soquete. Esperado %d bytes, mas obteve %d"
+#~ msgid "Unexpected option length while checking if SO_PASSCRED is enabled for socket. Expected %d bytes, got %d"
+#~ msgstr "Tamanho inesperado de opção ao verificar se SO_PASSCRED está habilitado pelo soquete. Esperado %d bytes, mas obteve %d"
 
 #~ msgid "Abnormal program termination spawning command line '%s': %s"
-#~ msgstr ""
-#~ "Término anormal de programa ao chamar a linha de comandos \"%s\": %s"
+#~ msgstr "Término anormal de programa ao chamar a linha de comandos \"%s\": %s"
 
 #~ msgid "Command line '%s' exited with non-zero exit status %d: %s"
-#~ msgstr ""
-#~ "A linha de comandos \"%s\" saiu com status de saída não-zero, %d: %s"
+#~ msgstr "A linha de comandos \"%s\" saiu com status de saída não-zero, %d: %s"
 
 #~ msgid "No service record for '%s'"
 #~ msgstr "Nenhum serviço de registro para \"%s\""
@@ -6079,9 +5746,7 @@ msgstr "%.1f KB"
 #~ msgstr "limite de espaço de trabalho para substrings vazias alcançado"
 
 #~ msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here"
-#~ msgstr ""
-#~ "escapes de alteração de maiusculização (\\l, \\L, \\u, \\U) não são "
-#~ "permitidos aqui"
+#~ msgstr "escapes de alteração de maiusculização (\\l, \\L, \\u, \\U) não são permitidos aqui"
 
 #~ msgid "repeating a DEFINE group is not allowed"
 #~ msgstr "repetição de um grupo DEFINE não é permitida"
@@ -6102,8 +5767,7 @@ msgstr "%.1f KB"
 #~ msgstr "A implementação SOCKSv4 limita o nome de usuário a %i caracteres"
 
 #~ msgid "SOCKSv4a implementation limits hostname to %i characters"
-#~ msgstr ""
-#~ "A implementação SOCKSv4a limita o nome de servidor para %i caracteres"
+#~ msgstr "A implementação SOCKSv4a limita o nome de servidor para %i caracteres"
 
 #~ msgid "Error reading from unix: %s"
 #~ msgstr "Erro ao ler do unix: %s"
@@ -6111,11 +5775,8 @@ msgstr "%.1f KB"
 #~ msgid "Error writing to unix: %s"
 #~ msgstr "Erro ao escrever para unix: %s"
 
-#~ msgid ""
-#~ "Key file contains key '%s' which has value that cannot be interpreted."
-#~ msgstr ""
-#~ "Arquivo de chave contém chave \"%s\" que tem valor que não pode ser "
-#~ "interpretado."
+#~ msgid "Key file contains key '%s' which has value that cannot be interpreted."
+#~ msgstr "Arquivo de chave contém chave \"%s\" que tem valor que não pode ser interpretado."
 
 #~ msgid "Error stating file '%s': %s"
 #~ msgstr "Erro ao iniciar arquivo \"%s\": %s"
@@ -6129,16 +5790,10 @@ msgstr "%.1f KB"
 #~ msgstr "pm"
 
 #~ msgid "Type of return value is incorrect, got '%s', expected '%s'"
-#~ msgstr ""
-#~ "O tipo do valor de retorno está incorreto, obtido \"%s\", era esperado "
-#~ "\"%s\""
+#~ msgstr "O tipo do valor de retorno está incorreto, obtido \"%s\", era esperado \"%s\""
 
-#~ msgid ""
-#~ "Trying to set property %s of type %s but according to the expected "
-#~ "interface the type is %s"
-#~ msgstr ""
-#~ "Tentando definir a propriedade %s do tipo %s, mas de acordo com a "
-#~ "interface esperada o tipo é %s"
+#~ msgid "Trying to set property %s of type %s but according to the expected interface the type is %s"
+#~ msgstr "Tentando definir a propriedade %s do tipo %s, mas de acordo com a interface esperada o tipo é %s"
 
 #~ msgid "No such schema '%s' specified in override file '%s'"
 #~ msgstr "Nenhum esquema \"%s\" especificado no arquivo de sobrescrita \"%s\""
@@ -6176,8 +5831,7 @@ msgstr "%.1f KB"
 #~ "Argumentos:\n"
 #~ "  ESQUEMA     A identificação do esquema\n"
 #~ "  CHAVE       O nome da chave\n"
-#~ "  VALOR       O valor para definir na chave, como um GVariant "
-#~ "serializado\n"
+#~ "  VALOR       O valor para definir na chave, como um GVariant serializado\n"
 
 #~ msgid ""
 #~ "Monitor KEY for changes and print the changed values.\n"
index 22ba871..8fabda3 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-28 11:27+0000\n"
-"PO-Revision-Date: 2018-12-01 22:04+0100\n"
+"POT-Creation-Date: 2018-12-04 18:15+0000\n"
+"PO-Revision-Date: 2018-12-04 20:45+0100\n"
 "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
 "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
 "Language: sl_SI\n"
@@ -22,22 +22,26 @@ msgstr ""
 "X-Poedit-SourceCharset: utf-8\n"
 "X-Generator: Poedit 2.1.1\n"
 
-#: gio/gapplication.c:496
+#: gio/gapplication.c:499
 msgid "GApplication options"
 msgstr "Možnosti programa"
 
-#: gio/gapplication.c:496
+#: gio/gapplication.c:499
 msgid "Show GApplication options"
 msgstr "Prikaže možnosti programa"
 
-#: gio/gapplication.c:541
+#: gio/gapplication.c:544
 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:553
+#: gio/gapplication.c:556
 msgid "Override the application’s ID"
 msgstr "Prepiši ID programa"
 
+#: gio/gapplication.c:568
+msgid "Replace the running instance"
+msgstr "Zamenjaj trenutno zagnan primerek"
+
 #: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
 #: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
 msgid "Print help"
@@ -298,14 +302,14 @@ msgid "Not enough space in destination"
 msgstr "Ni dovolj prostora za cilju"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:884
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Neveljavno zaporedje bajtov na vhodu pretvorbe"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:798
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Napaka med pretvorbo: %s"
@@ -314,7 +318,7 @@ msgstr "Napaka med pretvorbo: %s"
 msgid "Cancellable initialization not supported"
 msgstr "Dejanje prekinitve zagona ni podprto"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr "Pretvorba iz nabora znakov »%s« v »%s« ni podprta"
@@ -506,7 +510,7 @@ msgstr "Vodilo seje DBus ni zagnano, zato je samodejni zagon spodletel"
 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:1662 gio/gdbusconnection.c:7142
+#: gio/gdbusaddress.c:1662 gio/gdbusconnection.c:7147
 #, c-format
 msgid ""
 "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -515,7 +519,7 @@ msgstr ""
 "Ni mogoče določiti naslova vodila iz okoljske spremenljivke "
 "DBUS_STARTER_BUS_TYPE – neznana vrednost »%s«"
 
-#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7151
+#: gio/gdbusaddress.c:1671 gio/gdbusconnection.c:7156
 msgid ""
 "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
 "variable is not set"
@@ -642,82 +646,82 @@ msgstr ""
 "Med izgrajevanjem povezave s strani odjemalca so bile odkrite nepodprte "
 "zastavice"
 
-#: gio/gdbusconnection.c:4115 gio/gdbusconnection.c:4462
+#: gio/gdbusconnection.c:4120 gio/gdbusconnection.c:4467
 #, 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:4257
+#: gio/gdbusconnection.c:4262
 #, c-format
 msgid "No such property “%s”"
 msgstr "Lastnost »%s« ne obstaja"
 
-#: gio/gdbusconnection.c:4269
+#: gio/gdbusconnection.c:4274
 #, c-format
 msgid "Property “%s” is not readable"
 msgstr "Lastnost »%s« ni berljiva"
 
-#: gio/gdbusconnection.c:4280
+#: gio/gdbusconnection.c:4285
 #, c-format
 msgid "Property “%s” is not writable"
 msgstr "Lastnost »%s« ni zapisljiva"
 
-#: gio/gdbusconnection.c:4300
+#: gio/gdbusconnection.c:4305
 #, 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:4405 gio/gdbusconnection.c:4613
-#: gio/gdbusconnection.c:6582
+#: gio/gdbusconnection.c:4410 gio/gdbusconnection.c:4618
+#: gio/gdbusconnection.c:6587
 #, c-format
 msgid "No such interface “%s”"
 msgstr "Vmesnik »%s« ne obstaja"
 
-#: gio/gdbusconnection.c:4831 gio/gdbusconnection.c:7091
+#: gio/gdbusconnection.c:4836 gio/gdbusconnection.c:7096
 #, 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:4929
+#: gio/gdbusconnection.c:4934
 #, c-format
 msgid "No such method “%s”"
 msgstr "Način »%s« ne obstaja"
 
-#: gio/gdbusconnection.c:4960
+#: gio/gdbusconnection.c:4965
 #, 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:5158
+#: gio/gdbusconnection.c:5163
 #, 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:5384
+#: gio/gdbusconnection.c:5389
 #, c-format
 msgid "Unable to retrieve property %s.%s"
 msgstr "Ni mogoče pridobiti lastnosti %s.%s"
 
-#: gio/gdbusconnection.c:5440
+#: gio/gdbusconnection.c:5445
 #, c-format
 msgid "Unable to set property %s.%s"
 msgstr "Ni mogoče določiti lastnosti %s.%s"
 
-#: gio/gdbusconnection.c:5618
+#: gio/gdbusconnection.c:5623
 #, 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:6693
+#: gio/gdbusconnection.c:6698
 #, 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:6814
+#: gio/gdbusconnection.c:6819
 #, c-format
 msgid "A subtree is already exported for %s"
 msgstr "Podrejeno drevo je že izvoženo za %s"
@@ -850,7 +854,7 @@ msgstr ""
 "Neveljavna večja različica protokola. Pričakovana je 1, najdenih pa jih je "
 "več (%d)"
 
-#: gio/gdbusmessage.c:2132 gio/gdbusmessage.c:2722
+#: gio/gdbusmessage.c:2132 gio/gdbusmessage.c:2724
 msgid "Signature header found but is not of type signature"
 msgstr "Glava podpisa je najdena, vendar ni ustrezno oblikovana"
 
@@ -860,12 +864,12 @@ 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:2158
+#: gio/gdbusmessage.c:2159
 #, 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:2188
+#: gio/gdbusmessage.c:2190
 #, 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"
@@ -878,11 +882,11 @@ msgstr[2] ""
 msgstr[3] ""
 "V sporočilu ni glave podpisa, vendar je telo sporočila dolgo %u bajte"
 
-#: gio/gdbusmessage.c:2198
+#: gio/gdbusmessage.c:2200
 msgid "Cannot deserialize message: "
 msgstr "Sporočila ni mogoče ločiti iz zaporedja:"
 
-#: gio/gdbusmessage.c:2539
+#: gio/gdbusmessage.c:2541
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -890,22 +894,22 @@ msgstr ""
 "Napaka pri združevanju GVariant v zaporedje z vrsto niza »%s« v D-Bus žično "
 "obliko"
 
-#: gio/gdbusmessage.c:2676
+#: gio/gdbusmessage.c:2678
 #, 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:2684
+#: gio/gdbusmessage.c:2686
 msgid "Cannot serialize message: "
 msgstr "Sporočila ni bilo mogoče združiti v zaporedje:"
 
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2740
 #, 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:2748
+#: gio/gdbusmessage.c:2750
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -913,17 +917,17 @@ msgid ""
 msgstr ""
 "Telo sporočila ima podpis vrste »%s«, vendar je podpis v polju glave »%s«"
 
-#: gio/gdbusmessage.c:2764
+#: gio/gdbusmessage.c:2766
 #, 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:3317
+#: gio/gdbusmessage.c:3319
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Napaka vrnjena s telesom vrste »%s«"
 
-#: gio/gdbusmessage.c:3325
+#: gio/gdbusmessage.c:3327
 msgid "Error return with empty body"
 msgstr "Napaka vrnjena s praznim telesom"
 
@@ -936,23 +940,24 @@ msgstr "Ni mogoče pridobiti strojnega profila: %s"
 msgid "Unable to load /var/lib/dbus/machine-id or /etc/machine-id: "
 msgstr "Ni mogoče naložiti /var/lib/dbus/machine-id oziroma /etc/machine-id: "
 
-#: gio/gdbusproxy.c:1612
+#: gio/gdbusproxy.c:1611
 #, c-format
 msgid "Error calling StartServiceByName for %s: "
 msgstr "Napaka med klicanjem predmeta StartServiceByName za %s: "
 
-#: gio/gdbusproxy.c:1635
+#: gio/gdbusproxy.c:1634
 #, c-format
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "Nepričakovan odgovor %d iz načina StartServiceByName(»%s«)"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: gio/gdbusproxy.c:2733 gio/gdbusproxy.c:2868
+#, 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"
+"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 ""
-"Ni mogoče sklicati načina; posredniški strežnik za znano ime brez lastnika "
-"je bil zgrajen z zastavico  G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
+"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:708
 msgid "Abstract name space not supported"
@@ -1251,7 +1256,7 @@ msgstr "Napaka: navedenih je preveč argumentov.\n"
 msgid "Error: %s is not a valid well-known bus name.\n"
 msgstr "Napaka: %s ni veljavno enoznačno ime vodila.\n"
 
-#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4633
+#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4660
 msgid "Unnamed"
 msgstr "Neimenovano"
 
@@ -1466,7 +1471,7 @@ msgid "Truncate not supported on stream"
 msgstr "Razčlenitev ni podprta na pretoku"
 
 #: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
+#: glib/gconvert.c:1787
 msgid "Invalid hostname"
 msgstr "Neveljavno ime gostitelja"
 
@@ -3069,7 +3074,7 @@ msgstr "Napaka med iskanjem v datoteki: %s"
 msgid "Error closing file: %s"
 msgstr "Napaka med zapiranjem datoteke: %s"
 
-#: gio/glocalfilemonitor.c:854
+#: gio/glocalfilemonitor.c:856
 msgid "Unable to find default local file monitor type"
 msgstr "Ni mogoče najti privzete krajevne datoteke nadzora"
 
@@ -3220,21 +3225,26 @@ msgstr "Omrežje ni dosegljivo"
 msgid "Host unreachable"
 msgstr "Gostitelj ni dosegljiv"
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
+#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
+#: gio/gnetworkmonitornetlink.c:130
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr "Ni mogoče ustvariti nadzornika omrežja: %s"
 
-#: gio/gnetworkmonitornetlink.c:118
+#: gio/gnetworkmonitornetlink.c:120
 msgid "Could not create network monitor: "
 msgstr "Ni mogoče ustvariti nadzornika omrežja:"
 
-#: gio/gnetworkmonitornetlink.c:176
+#: gio/gnetworkmonitornetlink.c:183
 msgid "Could not get network status: "
 msgstr "Ni mogoče pridobiti stanja omrežja:"
 
-#: gio/gnetworkmonitornm.c:322
+#: gio/gnetworkmonitornm.c:313
+#, c-format
+msgid "NetworkManager not running"
+msgstr "Program NetworkManager ni zagnan"
+
+#: gio/gnetworkmonitornm.c:324
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "Različica programa NetworkManager je prestara"
@@ -4058,7 +4068,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2651 gio/gunixmounts.c:2704
 msgid "Filesystem root"
 msgstr "Koren datotečnega sistema"
 
@@ -4212,8 +4222,8 @@ msgstr "Razširjanje ukazne vrstice »%s« z naslovom URI »%s« je spodletelo."
 msgid "Unrepresentable character in conversion input"
 msgstr "Nepredstavljiv znak na dovodu pretvorbe"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Nedokončano zaporedje znakov na koncu vhoda"
 
@@ -4222,40 +4232,40 @@ msgstr "Nedokončano zaporedje znakov na koncu vhoda"
 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:941
 msgid "Embedded NUL byte in conversion input"
 msgstr "Vstavljeno je prazno zaporedje bajtov na dovod pretvorbe"
 
-#: glib/gconvert.c:961
+#: glib/gconvert.c:962
 msgid "Embedded NUL byte in conversion output"
 msgstr "Vstavljeno je prazno zaporedje bajtov na odvod pretvorbe"
 
-#: glib/gconvert.c:1649
+#: glib/gconvert.c:1650
 #, 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:1659
+#: glib/gconvert.c:1660
 #, 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:1676
+#: glib/gconvert.c:1677
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr "Naslov URI »%s« je neveljaven"
 
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1689
 #, c-format
 msgid "The hostname of the URI “%s” is invalid"
 msgstr "Ime gostitelja naslova URI »%s« ni veljavno"
 
-#: glib/gconvert.c:1704
+#: glib/gconvert.c:1705
 #, c-format
 msgid "The URI “%s” contains invalidly escaped characters"
 msgstr "Naslov URI »%s« vsebuje neveljavne ubežne znake"
 
-#: glib/gconvert.c:1776
+#: glib/gconvert.c:1777
 #, c-format
 msgid "The pathname “%s” is not an absolute path"
 msgstr "Pot »%s« ni absolutna pot"
@@ -4763,36 +4773,36 @@ msgstr "Predloga »%s« ne vsebuje XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Branje simbolne povezave »%s« je spodletelo: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Ni mogoče odpreti pretvornika iz »%s« v »%s«: %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "Ni mogoče prebrati g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Preostanek nepretvorjenih podatkov v bralnem medpomnilniku"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Kanal je prekinjen v delnem znaku"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 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:788
+#: glib/gkeyfile.c:789
 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:825
+#: glib/gkeyfile.c:826
 msgid "Not a regular file"
 msgstr "Ni običajna datoteka"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1275
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4800,52 +4810,52 @@ msgstr ""
 "Datoteka ključa vsebuje vrstico »%s«, ki ni par ključ-vrednost, skupina ali "
 "opomba"
 
-#: glib/gkeyfile.c:1331
+#: glib/gkeyfile.c:1332
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Neveljavno ime skupine: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1354
 msgid "Key file does not start with a group"
 msgstr "Datoteka s ključem se ne začne s skupino"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1380
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Neveljavno ime ključa: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1407
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Datoteka ključa vsebuje nepodprto kodiranje »%s«"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: 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
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Datoteka s ključem ni del skupine »%s«"
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1778
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1940 glib/gkeyfile.c:2056
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1960 glib/gkeyfile.c:2076 glib/gkeyfile.c:2518
 #, 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:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2736 glib/gkeyfile.c:3105
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4854,37 +4864,37 @@ msgstr ""
 "Datoteka ključa vsebuje ključ »%s« v skupini »%s« z vrednostjo, ki je ni "
 "mogoče tolmačiti."
 
-#: glib/gkeyfile.c:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2814 glib/gkeyfile.c:2891
 #, 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:4278
+#: glib/gkeyfile.c:4283
 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:4300
+#: glib/gkeyfile.c:4305
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Datoteka ključa vsebuje neveljavno ubežno zaporedje »%s«"
 
-#: glib/gkeyfile.c:4444
+#: glib/gkeyfile.c:4449
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Vrednosti »%s« ni mogoče obravnavati kot število."
 
-#: glib/gkeyfile.c:4458
+#: glib/gkeyfile.c:4463
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Celoštevilska vrednost »%s« je izven obsega"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4496
 #, 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:4530
+#: glib/gkeyfile.c:4535
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "Vrednosti »%s« ni mogoče obravnavati kot logično Boolovo vrednost."
@@ -4907,32 +4917,32 @@ 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:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Napaka v vrstici %d, znak %d:"
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "»%s« ni veljavno ime"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "»%s« ni veljavno ime: »%c«"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:612
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Napaka v vrstici %d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:689
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4941,7 +4951,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:702
+#: glib/gmarkup.c:701
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -4950,24 +4960,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:728
+#: glib/gmarkup.c:727
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr "Sklic znaka »%-.*s« ne kodira dovoljenega znaka"
 
-#: glib/gmarkup.c:766
+#: glib/gmarkup.c:765
 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:774
+#: glib/gmarkup.c:773
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Ime predmeta »%-.*s« ni prepoznano"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:778
 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;"
@@ -4975,11 +4985,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:1187
+#: glib/gmarkup.c:1186
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokument se mora začeti z predmetom (na primer <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1226
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -4988,7 +4998,7 @@ msgstr ""
 "»%s« ni veljaven znak, ki lahko sledi znaku » < «;. Morda se ne začne z "
 "imenom predmeta."
 
-#: glib/gmarkup.c:1270
+#: glib/gmarkup.c:1269
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -4997,7 +5007,7 @@ msgstr ""
 "Nenavaden znak »%s«; pričakovan znak je » > «, da zaključi oznako predmeta "
 "»%s«"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1351
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -5005,7 +5015,7 @@ msgstr ""
 "Nenavaden znak »%s«; za imenom atributa »%s« (predmeta »%s«) je pričakovan "
 "znak » = «."
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1393
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -5016,7 +5026,7 @@ msgstr ""
 "predmeta »%s« ali pogojno atribut. Morda je uporabljen neveljaven znak v "
 "imenu atributa."
 
-#: glib/gmarkup.c:1439
+#: glib/gmarkup.c:1438
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -5025,7 +5035,7 @@ msgstr ""
 "Nenavaden znak »%s«; za enačajem je pričakovan narekovaj, znotraj katerega "
 "je podana vrednost atributa »%s« predmeta »%s«."
 
-#: glib/gmarkup.c:1573
+#: glib/gmarkup.c:1572
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -5034,7 +5044,7 @@ msgstr ""
 "»%s« ni veljaven znak za znakoma » </ «; imena predmeta ni mogoče začeti z "
 "»%s«"
 
-#: glib/gmarkup.c:1611
+#: glib/gmarkup.c:1610
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5043,25 +5053,25 @@ msgstr ""
 "Znak »%s« ni veljaven, kadar sledi zaprtju imena predmeta »%s«; dovoljen "
 "znak je » > «."
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1622
 #, 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:1632
+#: glib/gmarkup.c:1631
 #, 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:1785
+#: glib/gmarkup.c:1784
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokument je prazen ali pa vsebuje le presledne znake"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1798
 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:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1806 glib/gmarkup.c:1851
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5070,7 +5080,7 @@ msgstr ""
 "Dokument je nepričakovano zaključen s še odprtimi predmeti – »%s« je zadnji "
 "odprt predmet"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1814
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5079,19 +5089,19 @@ msgstr ""
 "Dokument nepričakovano zaključen, pričakovan je zaključni zaklepaj oznake <"
 "%s/>"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1820
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokument nepričakovano zaključen sredi imena predmeta"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1826
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokument nepričakovano zaključen sredi imena atributa"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1831
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr "Dokument nepričakovano zaključen sredi oznake za odprtje predmeta."
 
-#: glib/gmarkup.c:1838
+#: glib/gmarkup.c:1837
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5099,23 +5109,23 @@ msgstr ""
 "Dokument nepričakovano zaključen za enačajem, ki sledil imenu atributa; ni "
 "določena vrednosti atributa"
 
-#: glib/gmarkup.c:1845
+#: glib/gmarkup.c:1844
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokument nepričakovano zaključen sredi vrednosti atributa"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1861
 #, 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:1866
+#: glib/gmarkup.c:1865
 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:1872
+#: glib/gmarkup.c:1871
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr "Dokument nepričakovano zaključen sredi opombe ali ukaza"
 
@@ -5532,15 +5542,15 @@ msgstr "pričakovano število"
 msgid "illegal symbolic reference"
 msgstr "neveljavna simbolna povezava"
 
-#: glib/gregex.c:2582
+#: glib/gregex.c:2583
 msgid "stray final “\\”"
 msgstr "obidi končna » \\ «"
 
-#: glib/gregex.c:2586
+#: glib/gregex.c:2587
 msgid "unknown escape sequence"
 msgstr "neznano ubežno zaporedje"
 
-#: glib/gregex.c:2596
+#: glib/gregex.c:2597
 #, 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"
@@ -5568,84 +5578,84 @@ msgstr ""
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Besedilo je bilo prazno (ali pa vsebuje le presledne znake)"
 
-#: glib/gspawn.c:311
+#: glib/gspawn.c:315
 #, c-format
 msgid "Failed to read data from child process (%s)"
 msgstr "Ni mogoče prebrati podatkov podrejenega procesa (%s)"
 
-#: glib/gspawn.c:459
+#: glib/gspawn.c:463
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr ""
 "Nepričakovana napaka branja podatkov v opravilu select() podrejenega "
 "opravila (%s)"
 
-#: glib/gspawn.c:544
+#: glib/gspawn.c:548
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Nepričakovana napaka v waitpid() (%s)"
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: glib/gspawn.c:1056 glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Podrejeni proces se je zaključil s kodo %ld"
 
-#: glib/gspawn.c:1060
+#: glib/gspawn.c:1064
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Podrejeni proces je uničen s signalom %ld"
 
-#: glib/gspawn.c:1067
+#: glib/gspawn.c:1071
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Podrejeni proces se je ustavil s signalom %ld"
 
-#: glib/gspawn.c:1074
+#: glib/gspawn.c:1078
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "Podrejeni proces se je zaključil nenaravno"
 
-#: glib/gspawn.c:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: glib/gspawn.c:1405 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
 #, c-format
 msgid "Failed to read from child pipe (%s)"
 msgstr "Ni mogoče prebrati iz cevi podrejenega procesa (%s)"
 
-#: glib/gspawn.c:1617
+#: glib/gspawn.c:1653
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr "Ni mogoče ustvariti podrejenega opravila »%s« (%s)"
 
-#: glib/gspawn.c:1656
+#: glib/gspawn.c:1692
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Ni mogoča razvejitev (%s)"
 
-#: glib/gspawn.c:1805 glib/gspawn-win32.c:370
+#: glib/gspawn.c:1841 glib/gspawn-win32.c:370
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Ni mogoče spremeniti v mapo »%s« (%s)"
 
-#: glib/gspawn.c:1815
+#: glib/gspawn.c:1851
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Ni mogoče izvesti podrejenega opravila »%s« (%s)"
 
-#: glib/gspawn.c:1825
+#: glib/gspawn.c:1861
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr "Ni mogoče preusmeriti vhoda ali izhoda podrejenega procesa (%s)"
 
-#: glib/gspawn.c:1834
+#: glib/gspawn.c:1870
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Ni mogoče razvejiti podrejenega procesa (%s)"
 
-#: glib/gspawn.c:1842
+#: glib/gspawn.c:1878
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Neznana napaka med izvajanjem podrejenega opravila »%s«"
 
-#: glib/gspawn.c:1866
+#: glib/gspawn.c:1902
 #, 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)"
@@ -5716,20 +5726,20 @@ msgstr "Število »%s« je izven območja [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "»%s« ni nepodpisano število"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Ni mogoče dodeliti pomnilnika"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Znak izven območja za UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Neveljavno zaporedje na vhodu pretvorbe"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Znak izven območja za UTF-16"
 
index e9269e3..a3c154a 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,8 +9,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
-"POT-Creation-Date: 2018-11-07 17:20+0000\n"
-"PO-Revision-Date: 2018-11-07 19:32+0100\n"
+"POT-Creation-Date: 2018-07-30 18:46+0000\n"
+"PO-Revision-Date: 2018-08-28 11:45+0200\n"
 "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "Language: sv\n"
@@ -18,7 +18,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: Poedit 2.2\n"
+"X-Generator: Poedit 2.1.1\n"
 
 #: gio/gapplication.c:496
 msgid "GApplication options"
@@ -37,11 +37,11 @@ msgid "Override the application’s ID"
 msgstr "Åsidosätt programmets ID"
 
 #: gio/gapplication-tool.c:45 gio/gapplication-tool.c:46 gio/gio-tool.c:227
-#: gio/gresource-tool.c:495 gio/gsettings-tool.c:569
+#: gio/gresource-tool.c:488 gio/gsettings-tool.c:569
 msgid "Print help"
 msgstr "Skriv ut hjälp"
 
-#: gio/gapplication-tool.c:47 gio/gresource-tool.c:496 gio/gresource-tool.c:564
+#: gio/gapplication-tool.c:47 gio/gresource-tool.c:489 gio/gresource-tool.c:557
 msgid "[COMMAND]"
 msgstr "[KOMMANDO]"
 
@@ -113,7 +113,7 @@ msgstr "Programidentifierare i D-Bus-format (t.ex: org.example.viewer)"
 
 #: gio/gapplication-tool.c:72 gio/glib-compile-resources.c:737
 #: gio/glib-compile-resources.c:743 gio/glib-compile-resources.c:770
-#: gio/gresource-tool.c:502 gio/gresource-tool.c:568
+#: gio/gresource-tool.c:495 gio/gresource-tool.c:561
 msgid "FILE"
 msgstr "FIL"
 
@@ -137,7 +137,7 @@ msgstr "PARAMETER"
 msgid "Optional parameter to the action invocation, in GVariant format"
 msgstr "Frivillig parameter till åtgärdsstarten, i GVariant-format"
 
-#: gio/gapplication-tool.c:96 gio/gresource-tool.c:533 gio/gsettings-tool.c:661
+#: gio/gapplication-tool.c:96 gio/gresource-tool.c:526 gio/gsettings-tool.c:661
 #, c-format
 msgid ""
 "Unknown command %s\n"
@@ -150,7 +150,7 @@ msgstr ""
 msgid "Usage:\n"
 msgstr "Användning:\n"
 
-#: gio/gapplication-tool.c:114 gio/gresource-tool.c:558
+#: gio/gapplication-tool.c:114 gio/gresource-tool.c:551
 #: gio/gsettings-tool.c:696
 msgid "Arguments:\n"
 msgstr "Argument:\n"
@@ -294,13 +294,13 @@ msgstr "Inte tillräckligt med utrymme i målet"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
 #: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Ogiltig bytesekvens i konverteringsindata"
 
 #: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Fel vid konvertering: %s"
@@ -309,7 +309,7 @@ msgstr "Fel vid konvertering: %s"
 msgid "Cancellable initialization not supported"
 msgstr "Avbrytningsbar initiering stöds inte"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, c-format
 msgid "Conversion from character set “%s” to “%s” is not supported"
 msgstr "Konvertering från teckentabellen ”%s” till ”%s” stöds inte"
@@ -714,27 +714,27 @@ msgstr "Metoden ”%s” på gränssnittet ”%s” med signaturen ”%s” finn
 msgid "A subtree is already exported for %s"
 msgstr "Ett underträd har redan exporterats för %s"
 
-#: gio/gdbusmessage.c:1251
+#: gio/gdbusmessage.c:1248
 msgid "type is INVALID"
 msgstr "typ är OGILTIG"
 
-#: gio/gdbusmessage.c:1262
+#: gio/gdbusmessage.c:1259
 msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
 msgstr "METHOD_CALL-meddelande: rubrikfältet PATH eller MEMBER saknas"
 
-#: gio/gdbusmessage.c:1273
+#: gio/gdbusmessage.c:1270
 msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
 msgstr "METHOD_RETURN-meddelande: rubrikfältet REPLY_SERIAL saknas"
 
-#: gio/gdbusmessage.c:1285
+#: gio/gdbusmessage.c:1282
 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:1298
+#: gio/gdbusmessage.c:1295
 msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
 msgstr "SIGNAL-meddelande: rubrikfältet PATH, INTERFACE eller MEMBER saknas"
 
-#: gio/gdbusmessage.c:1306
+#: gio/gdbusmessage.c:1303
 msgid ""
 "SIGNAL message: The PATH header field is using the reserved value /org/"
 "freedesktop/DBus/Local"
@@ -742,7 +742,7 @@ msgstr ""
 "SIGNAL-meddelande: Rubrikfältet PATH använder det reserverade värdet /org/"
 "freedesktop/DBus/Local"
 
-#: gio/gdbusmessage.c:1314
+#: gio/gdbusmessage.c:1311
 msgid ""
 "SIGNAL message: The INTERFACE header field is using the reserved value org."
 "freedesktop.DBus.Local"
@@ -750,19 +750,19 @@ msgstr ""
 "SIGNAL-meddelande: Rubrikfältet INTERFACE använder det reserverade värdet "
 "org.freedesktop.DBus.Local"
 
-#: gio/gdbusmessage.c:1362 gio/gdbusmessage.c:1422
+#: gio/gdbusmessage.c:1359 gio/gdbusmessage.c:1419
 #, 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:1376
+#: gio/gdbusmessage.c:1373
 #, 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:1395
+#: gio/gdbusmessage.c:1392
 #, c-format
 msgid ""
 "Expected valid UTF-8 string but found invalid bytes at byte offset %d "
@@ -772,17 +772,17 @@ msgstr ""
 "(längd av strängen är %d). Den giltiga UTF-8-strängen fram till den punkten "
 "var ”%s”"
 
-#: gio/gdbusmessage.c:1598
+#: gio/gdbusmessage.c:1595
 #, 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:1620
+#: gio/gdbusmessage.c:1617
 #, 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:1667
+#: gio/gdbusmessage.c:1664
 #, c-format
 msgid ""
 "Encountered array of length %u byte. Maximum length is 2<<26 bytes (64 MiB)."
@@ -793,7 +793,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:1687
+#: gio/gdbusmessage.c:1684
 #, c-format
 msgid ""
 "Encountered array of type “a%c”, expected to have a length a multiple of %u "
@@ -802,12 +802,12 @@ 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:1857
+#: gio/gdbusmessage.c:1851
 #, 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:1881
+#: gio/gdbusmessage.c:1875
 #, c-format
 msgid ""
 "Error deserializing GVariant with type string “%s” from the D-Bus wire format"
@@ -815,7 +815,7 @@ msgstr ""
 "Fel vid deserialisering av GVariant med typsträngen ”%s” från D-Bus-"
 "transportformatet"
 
-#: gio/gdbusmessage.c:2066
+#: gio/gdbusmessage.c:2057
 #, c-format
 msgid ""
 "Invalid endianness value. Expected 0x6c (“l”) or 0x42 (“B”) but found value "
@@ -824,38 +824,34 @@ msgstr ""
 "Ogiltigt värde för byteordning. Förväntade 0x6c (”l”) eller 0x42 (”B”) men "
 "hittade värdet 0x%02x"
 
-#: gio/gdbusmessage.c:2079
+#: gio/gdbusmessage.c:2070
 #, 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:2132 gio/gdbusmessage.c:2722
-msgid "Signature header found but is not of type signature"
-msgstr "Signaturrubrik hittades men är inte av typen signatur"
-
-#: gio/gdbusmessage.c:2144
+#: gio/gdbusmessage.c:2126
 #, 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:2158
+#: gio/gdbusmessage.c:2140
 #, 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:2188
+#: gio/gdbusmessage.c:2170
 #, 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:2198
+#: gio/gdbusmessage.c:2180
 msgid "Cannot deserialize message: "
 msgstr "Kan inte deserialisera meddelande: "
 
-#: gio/gdbusmessage.c:2539
+#: gio/gdbusmessage.c:2521
 #, c-format
 msgid ""
 "Error serializing GVariant with type string “%s” to the D-Bus wire format"
@@ -863,23 +859,23 @@ msgstr ""
 "Fel vid serialisering av GVariant med typsträngen ”%s” till D-Bus-"
 "transportformatet"
 
-#: gio/gdbusmessage.c:2676
+#: gio/gdbusmessage.c:2658
 #, 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:2684
+#: gio/gdbusmessage.c:2666
 msgid "Cannot serialize message: "
 msgstr "Kan inte serialisera meddelandet: "
 
-#: gio/gdbusmessage.c:2738
+#: gio/gdbusmessage.c:2710
 #, 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:2748
+#: gio/gdbusmessage.c:2720
 #, c-format
 msgid ""
 "Message body has type signature “%s” but signature in the header field is "
@@ -888,17 +884,17 @@ msgstr ""
 "Meddelandekroppen har typsignaturen ”%s” men signaturen i rubrikfältet är "
 "”%s”"
 
-#: gio/gdbusmessage.c:2764
+#: gio/gdbusmessage.c:2736
 #, 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:3317
+#: gio/gdbusmessage.c:3289
 #, c-format
 msgid "Error return with body of type “%s”"
 msgstr "Fel returnerades med kropp av typen ”%s”"
 
-#: gio/gdbusmessage.c:3325
+#: gio/gdbusmessage.c:3297
 msgid "Error return with empty body"
 msgstr "Fel returnerade med tom kropp"
 
@@ -1334,7 +1330,7 @@ msgstr "Åtgärden stöds inte"
 msgid "Containing mount does not exist"
 msgstr "Innefattande montering finns inte"
 
-#: gio/gfile.c:2622 gio/glocalfile.c:2441
+#: gio/gfile.c:2622 gio/glocalfile.c:2391
 msgid "Can’t copy over directory"
 msgstr "Kan inte kopiera över katalog"
 
@@ -1467,37 +1463,37 @@ msgstr "HTTP-proxyanslutning misslyckades: %i"
 msgid "HTTP proxy server closed connection unexpectedly."
 msgstr "HTTP-proxyservern stängde oväntat anslutningen."
 
-#: gio/gicon.c:298
+#: gio/gicon.c:290
 #, c-format
 msgid "Wrong number of tokens (%d)"
 msgstr "Fel antal token (%d)"
 
-#: gio/gicon.c:318
+#: gio/gicon.c:310
 #, c-format
 msgid "No type for class name %s"
 msgstr "Ingen typ för klassnamnet %s"
 
-#: gio/gicon.c:328
+#: gio/gicon.c:320
 #, c-format
 msgid "Type %s does not implement the GIcon interface"
 msgstr "Typen %s implementerar inte GIcon-gränssnittet"
 
-#: gio/gicon.c:339
+#: gio/gicon.c:331
 #, c-format
 msgid "Type %s is not classed"
 msgstr "Typen %s är inte klassad"
 
-#: gio/gicon.c:353
+#: gio/gicon.c:345
 #, c-format
 msgid "Malformed version number: %s"
 msgstr "Felformaterat versionsnummer: %s"
 
-#: gio/gicon.c:367
+#: gio/gicon.c:359
 #, 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:469
+#: gio/gicon.c:461
 msgid "Can’t handle the supplied version of the icon encoding"
 msgstr "Kan inte hantera angiven version av ikonkodningen"
 
@@ -1643,7 +1639,7 @@ msgstr "Fel vid skrivning till standard ut"
 #: 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:113
+#: gio/gio-tool-monitor.c:203 gio/gio-tool-mount.c:1235 gio/gio-tool-open.c:113
 #: 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 "LOCATION"
@@ -1664,7 +1660,7 @@ msgstr ""
 "något liknande smb://server/resurs/fil.txt som plats."
 
 #: 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:139
+#: gio/gio-tool-monitor.c:228 gio/gio-tool-mount.c:1285 gio/gio-tool-open.c:139
 #: gio/gio-tool-remove.c:72 gio/gio-tool-trash.c:136
 msgid "No locations given"
 msgstr "Inga platser angivna"
@@ -1956,93 +1952,93 @@ msgstr "Bevaka monteringshändelser"
 msgid "Monitor files or directories for changes."
 msgstr "Övervaka filer och kataloger efter förändringar."
 
-#: gio/gio-tool-mount.c:63
+#: gio/gio-tool-mount.c:62
 msgid "Mount as mountable"
 msgstr "Montera som monteringsbar"
 
-#: gio/gio-tool-mount.c:64
+#: gio/gio-tool-mount.c:63
 msgid "Mount volume with device file"
 msgstr "Montera volym med enhetsfil"
 
-#: gio/gio-tool-mount.c:64 gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:63 gio/gio-tool-mount.c:66
 msgid "DEVICE"
 msgstr "ENHET"
 
-#: gio/gio-tool-mount.c:65
+#: gio/gio-tool-mount.c:64
 msgid "Unmount"
 msgstr "Avmontera"
 
-#: gio/gio-tool-mount.c:66
+#: gio/gio-tool-mount.c:65
 msgid "Eject"
 msgstr "Mata ut"
 
-#: gio/gio-tool-mount.c:67
+#: gio/gio-tool-mount.c:66
 msgid "Stop drive with device file"
 msgstr "Stoppa enhet med enhetsfil"
 
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:67
 msgid "Unmount all mounts with the given scheme"
 msgstr "Avmontera alla monteringar med angivet schema"
 
-#: gio/gio-tool-mount.c:68
+#: gio/gio-tool-mount.c:67
 msgid "SCHEME"
 msgstr "SCHEMA"
 
-#: gio/gio-tool-mount.c:69
+#: gio/gio-tool-mount.c:68
 msgid "Ignore outstanding file operations when unmounting or ejecting"
 msgstr "Ignorera kvarstående filåtgärder vid avmontering eller utmatning"
 
-#: gio/gio-tool-mount.c:70
+#: gio/gio-tool-mount.c:69
 msgid "Use an anonymous user when authenticating"
 msgstr "Använd en anonym användare vid autentisering"
 
 #. Translator: List here is a verb as in 'List all mounts'
-#: gio/gio-tool-mount.c:72
+#: gio/gio-tool-mount.c:71
 msgid "List"
 msgstr "Lista"
 
-#: gio/gio-tool-mount.c:73
+#: gio/gio-tool-mount.c:72
 msgid "Monitor events"
 msgstr "Övervaka händelser"
 
-#: gio/gio-tool-mount.c:74
+#: gio/gio-tool-mount.c:73
 msgid "Show extra information"
 msgstr "Visa extra information"
 
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:74
 msgid "The numeric PIM when unlocking a VeraCrypt volume"
 msgstr "Numerisk PIM då en VeraCrypt-volym låses upp"
 
-#: gio/gio-tool-mount.c:75
+#: gio/gio-tool-mount.c:74
 msgid "PIM"
 msgstr "PIM"
 
-#: gio/gio-tool-mount.c:76
+#: gio/gio-tool-mount.c:75
 msgid "Mount a TCRYPT hidden volume"
 msgstr "Montera en dold TCRYPT-volym"
 
-#: gio/gio-tool-mount.c:77
+#: gio/gio-tool-mount.c:76
 msgid "Mount a TCRYPT system volume"
 msgstr "Montera en TCRYPT-systemvolym"
 
-#: gio/gio-tool-mount.c:265 gio/gio-tool-mount.c:297
+#: gio/gio-tool-mount.c:264 gio/gio-tool-mount.c:296
 msgid "Anonymous access denied"
 msgstr "Anonym åtkomst nekad"
 
-#: gio/gio-tool-mount.c:522
+#: gio/gio-tool-mount.c:524
 msgid "No drive for device file"
 msgstr "Ingen enhet för enhetsfil"
 
-#: gio/gio-tool-mount.c:975
+#: gio/gio-tool-mount.c:989
 #, c-format
 msgid "Mounted %s at %s\n"
 msgstr "Monterade %s på %s\n"
 
-#: gio/gio-tool-mount.c:1027
+#: gio/gio-tool-mount.c:1044
 msgid "No volume for device file"
 msgstr "Ingen volym för enhetsfil"
 
-#: gio/gio-tool-mount.c:1216
+#: gio/gio-tool-mount.c:1239
 msgid "Mount or unmount the locations."
 msgstr "Montera eller avmontera platserna."
 
@@ -2262,7 +2258,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:736 gio/glib-compile-schemas.c:2139
+#: gio/glib-compile-resources.c:736 gio/glib-compile-schemas.c:2138
 msgid "Show program version and exit"
 msgstr "Visa programversion och avsluta"
 
@@ -2278,8 +2274,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:738 gio/glib-compile-schemas.c:2140
-#: gio/glib-compile-schemas.c:2169
+#: gio/glib-compile-resources.c:738 gio/glib-compile-schemas.c:2139
+#: gio/glib-compile-schemas.c:2168
 msgid "DIRECTORY"
 msgstr "KATALOG"
 
@@ -2742,23 +2738,23 @@ msgstr ""
 "åsidosättning för nyckeln ”%s” i schemat ”%s” i åsidosättningsfilen ”%s” "
 "finns inte i listan över giltiga val"
 
-#: gio/glib-compile-schemas.c:2140
+#: gio/glib-compile-schemas.c:2139
 msgid "where to store the gschemas.compiled file"
 msgstr "var filen gschemas.compiled ska lagras"
 
-#: gio/glib-compile-schemas.c:2141
+#: gio/glib-compile-schemas.c:2140
 msgid "Abort on any errors in schemas"
 msgstr "Avbryt vid alla fel i scheman"
 
-#: gio/glib-compile-schemas.c:2142
+#: gio/glib-compile-schemas.c:2141
 msgid "Do not write the gschema.compiled file"
 msgstr "Skriv inte filen gschema.compiled"
 
-#: gio/glib-compile-schemas.c:2143
+#: gio/glib-compile-schemas.c:2142
 msgid "Do not enforce key name restrictions"
 msgstr "Tvinga inte igenom begränsningar för nyckelnamn"
 
-#: gio/glib-compile-schemas.c:2172
+#: gio/glib-compile-schemas.c:2171
 msgid ""
 "Compile all GSettings schema files into a schema cache.\n"
 "Schema files are required to have the extension .gschema.xml,\n"
@@ -2768,22 +2764,22 @@ msgstr ""
 "Schemafiler måste ha filändelsen .gschema.xml,\n"
 "och cachefilen kallas för gschemas.compiled."
 
-#: gio/glib-compile-schemas.c:2193
+#: gio/glib-compile-schemas.c:2192
 #, c-format
 msgid "You should give exactly one directory name\n"
 msgstr "Du bör ange exakt ett katalognamn\n"
 
-#: gio/glib-compile-schemas.c:2235
+#: gio/glib-compile-schemas.c:2234
 #, c-format
 msgid "No schema files found: "
 msgstr "Inga schemafiler hittades: "
 
-#: gio/glib-compile-schemas.c:2238
+#: gio/glib-compile-schemas.c:2237
 #, c-format
 msgid "doing nothing.\n"
 msgstr "gör ingenting.\n"
 
-#: gio/glib-compile-schemas.c:2241
+#: gio/glib-compile-schemas.c:2240
 #, c-format
 msgid "removed existing output file.\n"
 msgstr "tog bort befintlig utmatningsfil.\n"
@@ -2793,7 +2789,7 @@ msgstr "tog bort befintlig utmatningsfil.\n"
 msgid "Invalid filename %s"
 msgstr "Ogiltigt filnamn %s"
 
-#: gio/glocalfile.c:1011
+#: gio/glocalfile.c:1006
 #, c-format
 msgid "Error getting filesystem info for %s: %s"
 msgstr "Fel vid hämtning av filsystemsinformation för %s: %s"
@@ -2802,128 +2798,128 @@ 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:1150
+#: gio/glocalfile.c:1145
 #, c-format
 msgid "Containing mount for file %s not found"
 msgstr "Innefattande montering för filen %s hittades inte"
 
-#: gio/glocalfile.c:1173
+#: gio/glocalfile.c:1168
 msgid "Can’t rename root directory"
 msgstr "Kan inte byta namn på rotkatalog"
 
-#: gio/glocalfile.c:1191 gio/glocalfile.c:1214
+#: gio/glocalfile.c:1186 gio/glocalfile.c:1209
 #, c-format
 msgid "Error renaming file %s: %s"
 msgstr "Fel vid namnbyte av filen %s: %s"
 
-#: gio/glocalfile.c:1198
+#: gio/glocalfile.c:1193
 msgid "Can’t rename file, filename already exists"
 msgstr "Kan inte byta namn på filen, filnamnet finns redan"
 
-#: gio/glocalfile.c:1211 gio/glocalfile.c:2317 gio/glocalfile.c:2345
-#: gio/glocalfile.c:2502 gio/glocalfileoutputstream.c:551
+#: gio/glocalfile.c:1206 gio/glocalfile.c:2267 gio/glocalfile.c:2295
+#: gio/glocalfile.c:2452 gio/glocalfileoutputstream.c:551
 msgid "Invalid filename"
 msgstr "Ogiltigt filnamn"
 
-#: gio/glocalfile.c:1379 gio/glocalfile.c:1394
+#: gio/glocalfile.c:1374 gio/glocalfile.c:1389
 #, c-format
 msgid "Error opening file %s: %s"
 msgstr "Fel vid öppning av filen %s: %s"
 
-#: gio/glocalfile.c:1519
+#: gio/glocalfile.c:1514
 #, c-format
 msgid "Error removing file %s: %s"
 msgstr "Fel vid borttagning av filen %s: %s"
 
-#: gio/glocalfile.c:1958
+#: gio/glocalfile.c:1925
 #, c-format
 msgid "Error trashing file %s: %s"
 msgstr "Fel vid kastande av filen %s: %s"
 
-#: gio/glocalfile.c:1999
+#: gio/glocalfile.c:1948
 #, c-format
 msgid "Unable to create trash dir %s: %s"
 msgstr "Kunde inte skapa papperskorgskatalogen %s: %s"
 
-#: gio/glocalfile.c:2020
+#: gio/glocalfile.c:1970
 #, 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:2029
+#: gio/glocalfile.c:1979
 #, 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:2113 gio/glocalfile.c:2133
+#: gio/glocalfile.c:2063 gio/glocalfile.c:2083
 #, c-format
 msgid "Unable to find or create trash directory for %s"
 msgstr "Kunde inte hitta eller skapa papperskorgskatalog för %s"
 
-#: gio/glocalfile.c:2168
+#: gio/glocalfile.c:2118
 #, 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:2228
+#: gio/glocalfile.c:2178
 #, c-format
 msgid "Unable to trash file %s across filesystem boundaries"
 msgstr "Kunde inte kasta filen %s över filsystemsgränser"
 
-#: gio/glocalfile.c:2232 gio/glocalfile.c:2288
+#: gio/glocalfile.c:2182 gio/glocalfile.c:2238
 #, c-format
 msgid "Unable to trash file %s: %s"
 msgstr "Kunde inte kasta filen %s: %s"
 
-#: gio/glocalfile.c:2294
+#: gio/glocalfile.c:2244
 #, c-format
 msgid "Unable to trash file %s"
 msgstr "Kunde inte kasta filen %s"
 
-#: gio/glocalfile.c:2320
+#: gio/glocalfile.c:2270
 #, c-format
 msgid "Error creating directory %s: %s"
 msgstr "Fel vid skapandet av katalogen %s: %s"
 
-#: gio/glocalfile.c:2349
+#: gio/glocalfile.c:2299
 #, c-format
 msgid "Filesystem does not support symbolic links"
 msgstr "Filsystemet saknar stöd för symboliska länkar"
 
-#: gio/glocalfile.c:2352
+#: gio/glocalfile.c:2302
 #, c-format
 msgid "Error making symbolic link %s: %s"
 msgstr "Fel vid skapande av symboliska länken %s: %s"
 
-#: gio/glocalfile.c:2358 glib/gfileutils.c:2138
+#: gio/glocalfile.c:2308 glib/gfileutils.c:2138
 msgid "Symbolic links not supported"
 msgstr "Symboliska länkar stöds inte"
 
-#: gio/glocalfile.c:2413 gio/glocalfile.c:2448 gio/glocalfile.c:2505
+#: gio/glocalfile.c:2363 gio/glocalfile.c:2398 gio/glocalfile.c:2455
 #, c-format
 msgid "Error moving file %s: %s"
 msgstr "Fel vid flyttning av filen %s: %s"
 
-#: gio/glocalfile.c:2436
+#: gio/glocalfile.c:2386
 msgid "Can’t move directory over directory"
 msgstr "Kan inte flytta katalog över katalog"
 
-#: gio/glocalfile.c:2462 gio/glocalfileoutputstream.c:935
+#: gio/glocalfile.c:2412 gio/glocalfileoutputstream.c:935
 #: gio/glocalfileoutputstream.c:949 gio/glocalfileoutputstream.c:964
 #: gio/glocalfileoutputstream.c:981 gio/glocalfileoutputstream.c:995
 msgid "Backup file creation failed"
 msgstr "Misslyckades med att skapa säkerhetskopiefil"
 
-#: gio/glocalfile.c:2481
+#: gio/glocalfile.c:2431
 #, c-format
 msgid "Error removing target file: %s"
 msgstr "Fel vid borttagning av målfil: %s"
 
-#: gio/glocalfile.c:2495
+#: gio/glocalfile.c:2445
 msgid "Move between mounts not supported"
 msgstr "Flyttning mellan monteringar stöds inte"
 
-#: gio/glocalfile.c:2686
+#: gio/glocalfile.c:2636
 #, c-format
 msgid "Could not determine the disk usage of %s: %s"
 msgstr "Kunde inte bestämma diskanvändningen för %s: %s"
@@ -2945,79 +2941,79 @@ msgstr "Ogiltigt utökat attributnamn"
 msgid "Error setting extended attribute “%s”: %s"
 msgstr "Fel vid inställning av utökat attribut ”%s”: %s"
 
-#: gio/glocalfileinfo.c:1625
+#: gio/glocalfileinfo.c:1619
 msgid " (invalid encoding)"
 msgstr " (ogiltig kodning)"
 
-#: gio/glocalfileinfo.c:1789 gio/glocalfileoutputstream.c:813
+#: gio/glocalfileinfo.c:1783 gio/glocalfileoutputstream.c:813
 #, 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:2059
+#: gio/glocalfileinfo.c:2045
 #, c-format
 msgid "Error when getting information for file descriptor: %s"
 msgstr "Fel vid hämtning av information om filhandtag: %s"
 
-#: gio/glocalfileinfo.c:2104
+#: gio/glocalfileinfo.c:2090
 msgid "Invalid attribute type (uint32 expected)"
 msgstr "Ogiltig attributtyp (uint32 förväntades)"
 
-#: gio/glocalfileinfo.c:2122
+#: gio/glocalfileinfo.c:2108
 msgid "Invalid attribute type (uint64 expected)"
 msgstr "Ogiltig attributtyp (uint64 förväntades)"
 
-#: gio/glocalfileinfo.c:2141 gio/glocalfileinfo.c:2160
+#: gio/glocalfileinfo.c:2127 gio/glocalfileinfo.c:2146
 msgid "Invalid attribute type (byte string expected)"
 msgstr "Ogiltig attributtyp (bytesträng förväntades)"
 
-#: gio/glocalfileinfo.c:2207
+#: gio/glocalfileinfo.c:2191
 msgid "Cannot set permissions on symlinks"
 msgstr "Kan inte ställa in rättigheter på symboliska länkar"
 
-#: gio/glocalfileinfo.c:2223
+#: gio/glocalfileinfo.c:2207
 #, c-format
 msgid "Error setting permissions: %s"
 msgstr "Fel vid inställning av rättigheter: %s"
 
-#: gio/glocalfileinfo.c:2274
+#: gio/glocalfileinfo.c:2258
 #, c-format
 msgid "Error setting owner: %s"
 msgstr "Fel vid inställning av ägare: %s"
 
-#: gio/glocalfileinfo.c:2297
+#: gio/glocalfileinfo.c:2281
 msgid "symlink must be non-NULL"
 msgstr "symbolisk länk måste vara icke-NULL"
 
-#: gio/glocalfileinfo.c:2307 gio/glocalfileinfo.c:2326
-#: gio/glocalfileinfo.c:2337
+#: gio/glocalfileinfo.c:2291 gio/glocalfileinfo.c:2310
+#: gio/glocalfileinfo.c:2321
 #, c-format
 msgid "Error setting symlink: %s"
 msgstr "Fel vid inställning av symbolisk länk: %s"
 
-#: gio/glocalfileinfo.c:2316
+#: gio/glocalfileinfo.c:2300
 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:2442
+#: gio/glocalfileinfo.c:2426
 #, c-format
 msgid "Error setting modification or access time: %s"
 msgstr "Fel vid inställning av ändrings- eller åtkomsttid: %s"
 
-#: gio/glocalfileinfo.c:2465
+#: gio/glocalfileinfo.c:2449
 msgid "SELinux context must be non-NULL"
 msgstr "SELinux-kontext måste vara icke-NULL"
 
-#: gio/glocalfileinfo.c:2480
+#: gio/glocalfileinfo.c:2464
 #, c-format
 msgid "Error setting SELinux context: %s"
 msgstr "Fel vid inställning av SELinux-kontext: %s"
 
-#: gio/glocalfileinfo.c:2487
+#: gio/glocalfileinfo.c:2471
 msgid "SELinux is not enabled on this system"
 msgstr "SELinux är inte aktiverat på detta system"
 
-#: gio/glocalfileinfo.c:2579
+#: gio/glocalfileinfo.c:2563
 #, c-format
 msgid "Setting attribute %s not supported"
 msgstr "Inställning av attributet %s stöds inte"
@@ -3227,15 +3223,15 @@ msgstr "Fel vid uppslag av ”%s”: %s"
 msgid "Invalid domain"
 msgstr "Ogiltig domän"
 
-#: gio/gresource.c:644 gio/gresource.c:903 gio/gresource.c:942
-#: gio/gresource.c:1066 gio/gresource.c:1138 gio/gresource.c:1211
-#: gio/gresource.c:1281 gio/gresourcefile.c:476 gio/gresourcefile.c:599
+#: gio/gresource.c:622 gio/gresource.c:881 gio/gresource.c:920
+#: gio/gresource.c:1044 gio/gresource.c:1116 gio/gresource.c:1189
+#: gio/gresource.c:1259 gio/gresourcefile.c:476 gio/gresourcefile.c:599
 #: gio/gresourcefile.c:736
 #, c-format
 msgid "The resource at “%s” does not exist"
 msgstr "Resursen på ”%s” finns inte"
 
-#: gio/gresource.c:809
+#: gio/gresource.c:787
 #, c-format
 msgid "The resource at “%s” failed to decompress"
 msgstr "Resursen på ”%s” gick inte att dekomprimera"
@@ -3249,11 +3245,11 @@ msgstr "Resursen på ”%s” är inte en katalog"
 msgid "Input stream doesn’t implement seek"
 msgstr "Inmatningsströmmen har inte implementerat spolning"
 
-#: gio/gresource-tool.c:501
+#: gio/gresource-tool.c:494
 msgid "List sections containing resources in an elf FILE"
 msgstr "Lista sektioner som innehåller resurser i en elf-FIL"
 
-#: gio/gresource-tool.c:507
+#: gio/gresource-tool.c:500
 msgid ""
 "List resources\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3263,15 +3259,15 @@ msgstr ""
 "Om SEKTION anges, lista endast resurser i denna sektion\n"
 "Om SÖKVÄG anges, lista endast matchande resurser"
 
-#: gio/gresource-tool.c:510 gio/gresource-tool.c:520
+#: gio/gresource-tool.c:503 gio/gresource-tool.c:513
 msgid "FILE [PATH]"
 msgstr "FIL [SÖKVÄG]"
 
-#: gio/gresource-tool.c:511 gio/gresource-tool.c:521 gio/gresource-tool.c:528
+#: gio/gresource-tool.c:504 gio/gresource-tool.c:514 gio/gresource-tool.c:521
 msgid "SECTION"
 msgstr "SEKTION"
 
-#: gio/gresource-tool.c:516
+#: gio/gresource-tool.c:509
 msgid ""
 "List resources with details\n"
 "If SECTION is given, only list resources in this section\n"
@@ -3283,15 +3279,15 @@ msgstr ""
 "Om SÖKVÄG anges, lista endast matchande resurser\n"
 "Detaljer inkluderar sektionen, storlek och komprimering"
 
-#: gio/gresource-tool.c:526
+#: gio/gresource-tool.c:519
 msgid "Extract a resource file to stdout"
 msgstr "Extrahera en resursfil till standard ut"
 
-#: gio/gresource-tool.c:527
+#: gio/gresource-tool.c:520
 msgid "FILE PATH"
 msgstr "FIL SÖKVÄG"
 
-#: gio/gresource-tool.c:541
+#: gio/gresource-tool.c:534
 msgid ""
 "Usage:\n"
 "  gresource [--section SECTION] COMMAND [ARGS…]\n"
@@ -3319,7 +3315,7 @@ msgstr ""
 "Använd ”gresource help KOMMANDO” för detaljerad hjälp.\n"
 "\n"
 
-#: gio/gresource-tool.c:555
+#: gio/gresource-tool.c:548
 #, c-format
 msgid ""
 "Usage:\n"
@@ -3334,19 +3330,19 @@ msgstr ""
 "%s\n"
 "\n"
 
-#: gio/gresource-tool.c:562
+#: gio/gresource-tool.c:555
 msgid "  SECTION   An (optional) elf section name\n"
 msgstr "  SEKTION   Ett (eventuellt) elf-sektionsnamn\n"
 
-#: gio/gresource-tool.c:566 gio/gsettings-tool.c:703
+#: gio/gresource-tool.c:559 gio/gsettings-tool.c:703
 msgid "  COMMAND   The (optional) command to explain\n"
 msgstr "  KOMMANDO  (Eventuellt) kommando att förklara\n"
 
-#: gio/gresource-tool.c:572
+#: gio/gresource-tool.c:565
 msgid "  FILE      An elf file (a binary or a shared library)\n"
 msgstr "  FIL       En elf-fil (en binär eller ett delat bibliotek)\n"
 
-#: gio/gresource-tool.c:575
+#: gio/gresource-tool.c:568
 msgid ""
 "  FILE      An elf file (a binary or a shared library)\n"
 "            or a compiled resource file\n"
@@ -3354,19 +3350,19 @@ msgstr ""
 "  FIL       En elf-fil (en binär eller ett delat bibliotek)\n"
 "            eller en kompilerad resursfil\n"
 
-#: gio/gresource-tool.c:579
+#: gio/gresource-tool.c:572
 msgid "[PATH]"
 msgstr "[SÖKVÄG]"
 
-#: gio/gresource-tool.c:581
+#: gio/gresource-tool.c:574
 msgid "  PATH      An (optional) resource path (may be partial)\n"
 msgstr "  SÖKVÄG    En (eventuell) resurssökväg (kan vara partiell)\n"
 
-#: gio/gresource-tool.c:582
+#: gio/gresource-tool.c:575
 msgid "PATH"
 msgstr "SÖKVÄG"
 
-#: gio/gresource-tool.c:584
+#: gio/gresource-tool.c:577
 msgid "  PATH      A resource path\n"
 msgstr "  SÖKVÄG    En resurssökväg\n"
 
@@ -3888,7 +3884,7 @@ msgstr "SOCKSv5-proxyservern saknar stöd för angiven adresstyp."
 msgid "Unknown SOCKSv5 proxy error."
 msgstr "Okänt fel i SOCKSv5-proxyserver."
 
-#: gio/gthemedicon.c:595
+#: gio/gthemedicon.c:518
 #, c-format
 msgid "Can’t handle version %d of GThemedIcon encoding"
 msgstr "Kan inte hantera version %d av GThemedIcon-kodning"
@@ -4025,7 +4021,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2589 gio/gunixmounts.c:2642
 msgid "Filesystem root"
 msgstr "Filsystemsrot"
 
@@ -4111,66 +4107,66 @@ msgid "Unexpected attribute “%s” for element “%s”"
 msgstr "Oväntat attribut ”%s” för elementet ”%s”"
 
 #: glib/gbookmarkfile.c:765 glib/gbookmarkfile.c:836 glib/gbookmarkfile.c:846
-#: glib/gbookmarkfile.c:955
+#: glib/gbookmarkfile.c:953
 #, c-format
 msgid "Attribute “%s” of element “%s” not found"
 msgstr "Attributet ”%s” för elementet ”%s” hittades inte"
 
-#: glib/gbookmarkfile.c:1164 glib/gbookmarkfile.c:1229
-#: glib/gbookmarkfile.c:1293 glib/gbookmarkfile.c:1303
+#: glib/gbookmarkfile.c:1123 glib/gbookmarkfile.c:1188
+#: glib/gbookmarkfile.c:1252 glib/gbookmarkfile.c:1262
 #, c-format
 msgid "Unexpected tag “%s”, tag “%s” expected"
 msgstr "Oväntad tagg ”%s”, taggen ”%s” förväntades"
 
-#: glib/gbookmarkfile.c:1189 glib/gbookmarkfile.c:1203
-#: glib/gbookmarkfile.c:1271 glib/gbookmarkfile.c:1317
+#: glib/gbookmarkfile.c:1148 glib/gbookmarkfile.c:1162
+#: glib/gbookmarkfile.c:1230
 #, c-format
 msgid "Unexpected tag “%s” inside “%s”"
 msgstr "Oväntad tagg ”%s” inom ”%s”"
 
-#: glib/gbookmarkfile.c:1813
+#: glib/gbookmarkfile.c:1757
 msgid "No valid bookmark file found in data dirs"
 msgstr "Ingen giltig bokmärkesfil hittades i datakataloger"
 
-#: glib/gbookmarkfile.c:2014
+#: glib/gbookmarkfile.c:1958
 #, c-format
 msgid "A bookmark for URI “%s” already exists"
 msgstr "Ett bokmärke för URI ”%s” finns redan"
 
-#: glib/gbookmarkfile.c:2060 glib/gbookmarkfile.c:2218
-#: glib/gbookmarkfile.c:2303 glib/gbookmarkfile.c:2383
-#: glib/gbookmarkfile.c:2468 glib/gbookmarkfile.c:2551
-#: glib/gbookmarkfile.c:2629 glib/gbookmarkfile.c:2708
-#: glib/gbookmarkfile.c:2750 glib/gbookmarkfile.c:2847
-#: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
-#: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
-#: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
+#: glib/gbookmarkfile.c:2004 glib/gbookmarkfile.c:2162
+#: glib/gbookmarkfile.c:2247 glib/gbookmarkfile.c:2327
+#: glib/gbookmarkfile.c:2412 glib/gbookmarkfile.c:2495
+#: glib/gbookmarkfile.c:2573 glib/gbookmarkfile.c:2652
+#: glib/gbookmarkfile.c:2694 glib/gbookmarkfile.c:2791
+#: glib/gbookmarkfile.c:2912 glib/gbookmarkfile.c:3102
+#: glib/gbookmarkfile.c:3178 glib/gbookmarkfile.c:3346
+#: glib/gbookmarkfile.c:3435 glib/gbookmarkfile.c:3524
+#: glib/gbookmarkfile.c:3640
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "Inget bokmärke hittades för URI ”%s”"
 
-#: glib/gbookmarkfile.c:2392
+#: glib/gbookmarkfile.c:2336
 #, 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:2477
+#: glib/gbookmarkfile.c:2421
 #, 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:2856
+#: glib/gbookmarkfile.c:2800
 #, 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:3255 glib/gbookmarkfile.c:3412
+#: glib/gbookmarkfile.c:3199 glib/gbookmarkfile.c:3356
 #, 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:3435
+#: glib/gbookmarkfile.c:3379
 #, c-format
 msgid "Failed to expand exec line “%s” with URI “%s”"
 msgstr "Misslyckades med att expandera exec-raden ”%s” med URI ”%s”"
@@ -4179,8 +4175,8 @@ msgstr "Misslyckades med att expandera exec-raden ”%s” med URI ”%s”"
 msgid "Unrepresentable character in conversion input"
 msgstr "Tecken som ej går att uttrycka i konverteringsindata"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Ofullständig teckensekvens vid slutet av indata"
 
@@ -4727,24 +4723,24 @@ msgstr "Mallen ”%s” innehåller inte XXXXXX"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "Misslyckades med att läsa den symboliska länken ”%s”: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "Kunde inte öppna konverteraren från ”%s” till ”%s”: %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "Kan inte göra en rå läsning i g_io_channel_read_line_string"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Överbliven okonverterad data i läsbufferten"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Kanalen slutar med ett ofullständigt tecken"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 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"
 
@@ -4756,7 +4752,7 @@ msgstr "Giltig nyckelfil kunde inte hittas i sökkatalogerna"
 msgid "Not a regular file"
 msgstr "Inte en vanlig fil"
 
-#: glib/gkeyfile.c:1274
+#: glib/gkeyfile.c:1270
 #, c-format
 msgid ""
 "Key file contains line “%s” which is not a key-value pair, group, or comment"
@@ -4764,43 +4760,43 @@ msgstr ""
 "Nyckelfilen innehåller raden ”%s” som inte är ett nyckel-värde-par, grupp "
 "eller kommentar"
 
-#: glib/gkeyfile.c:1331
+#: glib/gkeyfile.c:1327
 #, c-format
 msgid "Invalid group name: %s"
 msgstr "Ogiltigt gruppnamn: %s"
 
-#: glib/gkeyfile.c:1353
+#: glib/gkeyfile.c:1349
 msgid "Key file does not start with a group"
 msgstr "Nyckelfilen börjar inte med en grupp"
 
-#: glib/gkeyfile.c:1379
+#: glib/gkeyfile.c:1375
 #, c-format
 msgid "Invalid key name: %s"
 msgstr "Ogiltigt nyckelnamn: %s"
 
-#: glib/gkeyfile.c:1406
+#: glib/gkeyfile.c:1402
 #, c-format
 msgid "Key file contains unsupported encoding “%s”"
 msgstr "Nyckelfilen innehåller kodningen ”%s” som inte stöds"
 
-#: glib/gkeyfile.c:1649 glib/gkeyfile.c:1822 glib/gkeyfile.c:3275
-#: glib/gkeyfile.c:3338 glib/gkeyfile.c:3468 glib/gkeyfile.c:3598
-#: glib/gkeyfile.c:3742 glib/gkeyfile.c:3971 glib/gkeyfile.c:4038
+#: glib/gkeyfile.c:1645 glib/gkeyfile.c:1818 glib/gkeyfile.c:3271
+#: glib/gkeyfile.c:3334 glib/gkeyfile.c:3464 glib/gkeyfile.c:3594
+#: glib/gkeyfile.c:3738 glib/gkeyfile.c:3967 glib/gkeyfile.c:4034
 #, c-format
 msgid "Key file does not have group “%s”"
 msgstr "Nyckelfilen har inte gruppen ”%s”"
 
-#: glib/gkeyfile.c:1777
+#: glib/gkeyfile.c:1773
 #, 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:1939 glib/gkeyfile.c:2055
+#: glib/gkeyfile.c:1935 glib/gkeyfile.c:2051
 #, 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:1959 glib/gkeyfile.c:2075 glib/gkeyfile.c:2517
+#: glib/gkeyfile.c:1955 glib/gkeyfile.c:2071 glib/gkeyfile.c:2513
 #, c-format
 msgid ""
 "Key file contains key “%s” which has a value that cannot be interpreted."
@@ -4808,7 +4804,7 @@ msgstr ""
 "Nyckelfilen innehåller nyckeln ”%s” som innehåller ett värde som inte kan "
 "tolkas."
 
-#: glib/gkeyfile.c:2735 glib/gkeyfile.c:3104
+#: glib/gkeyfile.c:2731 glib/gkeyfile.c:3100
 #, c-format
 msgid ""
 "Key file contains key “%s” in group “%s” which has a value that cannot be "
@@ -4817,36 +4813,36 @@ msgstr ""
 "Nyckelfilen innehåller nyckeln ”%s” i gruppen ”%s” vilken innehåller ett "
 "värde som inte kan tolkas."
 
-#: glib/gkeyfile.c:2813 glib/gkeyfile.c:2890
+#: glib/gkeyfile.c:2809 glib/gkeyfile.c:2886
 #, 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:4278
+#: glib/gkeyfile.c:4274
 msgid "Key file contains escape character at end of line"
 msgstr "Nyckelfilen innehåller kontrolltecken i slutet på en rad"
 
-#: glib/gkeyfile.c:4300
+#: glib/gkeyfile.c:4296
 #, c-format
 msgid "Key file contains invalid escape sequence “%s”"
 msgstr "Nyckelfilen innehåller ogiltiga kontrollsekvensen ”%s”"
 
-#: glib/gkeyfile.c:4444
+#: glib/gkeyfile.c:4440
 #, c-format
 msgid "Value “%s” cannot be interpreted as a number."
 msgstr "Värdet ”%s” kan inte tolkas som ett tal."
 
-#: glib/gkeyfile.c:4458
+#: glib/gkeyfile.c:4454
 #, c-format
 msgid "Integer value “%s” out of range"
 msgstr "Heltalsvärdet ”%s” är utanför intervallet"
 
-#: glib/gkeyfile.c:4491
+#: glib/gkeyfile.c:4487
 #, 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:4530
+#: glib/gkeyfile.c:4526
 #, c-format
 msgid "Value “%s” cannot be interpreted as a boolean."
 msgstr "Värdet ”%s” kan inte tolkas som ett booleskt värde."
@@ -4868,32 +4864,32 @@ msgstr "Misslyckades med att mappa %s%s%s%s: mmap() misslyckades: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "Misslyckades med att öppna filen ”%s”: open() misslyckades: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Fel på rad %d tecken %d: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "”%s” är inte ett giltigt namn"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "”%s” är inte ett giltigt namn: ”%c”"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:610
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Fel på rad %d: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:687
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4902,7 +4898,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:702
+#: glib/gmarkup.c:699
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -4911,24 +4907,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:728
+#: glib/gmarkup.c:725
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr "Teckenreferensen ”%-.*s” kodar inte ett tillåtet tecken"
 
-#: glib/gmarkup.c:766
+#: glib/gmarkup.c:763
 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:774
+#: glib/gmarkup.c:771
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Entitetsnamnet ”%-.*s” är okänt"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:776
 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;"
@@ -4936,11 +4932,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:1187
+#: glib/gmarkup.c:1182
 msgid "Document must begin with an element (e.g. <book>)"
 msgstr "Dokumentet måste börja med ett element (exempelvis <book>)"
 
-#: glib/gmarkup.c:1227
+#: glib/gmarkup.c:1222
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -4949,7 +4945,7 @@ msgstr ""
 "”%s” är inte ett giltigt tecken efter ett ”<”-tecken. Det får inte inleda "
 "ett elementnamn"
 
-#: glib/gmarkup.c:1270
+#: glib/gmarkup.c:1264
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -4958,7 +4954,7 @@ msgstr ""
 "Konstigt tecken ”%s”, ett ”>”-tecken förväntades för att avsluta tomma "
 "elementtaggen ”%s”"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1345
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -4966,7 +4962,7 @@ msgstr ""
 "Konstigt tecken ”%s”, ett ”=” förväntades efter attributnamnet ”%s” till "
 "elementet ”%s”"
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1386
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -4977,7 +4973,7 @@ msgstr ""
 "starttaggen för elementet ”%s”, eller möjligtvis ett attribut. Du kanske "
 "använde ett ogiltigt tecken i ett attributnamn"
 
-#: glib/gmarkup.c:1439
+#: glib/gmarkup.c:1430
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -4986,7 +4982,7 @@ msgstr ""
 "Konstigt tecken ”%s”, ett startcitationstecken förväntades efter "
 "likhetstecknet när värdet av attributet ”%s” till elementet ”%s” tilldelades"
 
-#: glib/gmarkup.c:1573
+#: glib/gmarkup.c:1563
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -4995,7 +4991,7 @@ msgstr ""
 "”%s” är inte ett giltigt tecken efter tecknen ”</”. ”%s” får inte inleda ett "
 "elementnamn"
 
-#: glib/gmarkup.c:1611
+#: glib/gmarkup.c:1599
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5004,26 +5000,26 @@ msgstr ""
 "”%s” är inte ett giltigt tecken efter stängelementnamnet ”%s”. Det tillåtna "
 "tecknet är ”>”"
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1610
 #, 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:1632
+#: glib/gmarkup.c:1619
 #, 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:1785
+#: glib/gmarkup.c:1772
 msgid "Document was empty or contained only whitespace"
 msgstr "Dokumentet var tomt eller innehöll endast tomrum"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1786
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr "Dokumentet tog oväntat slut efter ett öppningsklammer ”<”"
 
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1794 glib/gmarkup.c:1839
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5032,7 +5028,7 @@ msgstr ""
 "Dokumentet tog oväntat slut då element fortfarande var öppna. ”%s” var det "
 "senast öppnade elementet"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1802
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5041,19 +5037,19 @@ msgstr ""
 "Dokumentet tog oväntat slut, en stängningsklammer förväntades för att "
 "avsluta taggen <%s/>"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1808
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Dokumentet tog oväntat slut inuti ett elementnamn"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1814
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Dokumentet tog oväntat slut inuti ett attributnamn"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1819
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr "Dokumentet tog oväntat slut inuti en elementöppnande tagg."
 
-#: glib/gmarkup.c:1838
+#: glib/gmarkup.c:1825
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5061,22 +5057,22 @@ msgstr ""
 "Dokumentet tog oväntat slut efter likhetstecknet som följde ett "
 "attributnamn. Inget attributvärde"
 
-#: glib/gmarkup.c:1845
+#: glib/gmarkup.c:1832
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Dokumentet tog oväntat slut inuti ett attributvärde"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1849
 #, 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:1866
+#: glib/gmarkup.c:1853
 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:1872
+#: glib/gmarkup.c:1859
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Dokumentet tog oväntat slut inuti en kommentar eller behandlingsinstruktion"
@@ -5533,83 +5529,83 @@ msgstr ""
 msgid "Text was empty (or contained only whitespace)"
 msgstr "Texten var tom (eller innehöll bara tomrum)"
 
-#: glib/gspawn.c:311
+#: glib/gspawn.c:302
 #, 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:459
+#: glib/gspawn.c:450
 #, c-format
 msgid "Unexpected error in select() reading data from a child process (%s)"
 msgstr "Oväntat fel i select() vid läsning av data från en barnprocess (%s)"
 
-#: glib/gspawn.c:544
+#: glib/gspawn.c:535
 #, c-format
 msgid "Unexpected error in waitpid() (%s)"
 msgstr "Oväntat fel i waitpid() (%s)"
 
-#: glib/gspawn.c:1052 glib/gspawn-win32.c:1318
+#: glib/gspawn.c:1043 glib/gspawn-win32.c:1318
 #, c-format
 msgid "Child process exited with code %ld"
 msgstr "Barnprocess avslutades med kod %ld"
 
-#: glib/gspawn.c:1060
+#: glib/gspawn.c:1051
 #, c-format
 msgid "Child process killed by signal %ld"
 msgstr "Barnprocess dödat av signal %ld"
 
-#: glib/gspawn.c:1067
+#: glib/gspawn.c:1058
 #, c-format
 msgid "Child process stopped by signal %ld"
 msgstr "Barnprocess stoppad av signal %ld"
 
-#: glib/gspawn.c:1074
+#: glib/gspawn.c:1065
 #, c-format
 msgid "Child process exited abnormally"
 msgstr "Barnprocess avslutades onormalt"
 
-#: glib/gspawn.c:1369 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
+#: glib/gspawn.c:1360 glib/gspawn-win32.c:339 glib/gspawn-win32.c:347
 #, 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:1617
+#: glib/gspawn.c:1596
 #, c-format
 msgid "Failed to spawn child process “%s” (%s)"
 msgstr "Misslyckades med att starta barnprocessen ”%s” (%s)"
 
-#: glib/gspawn.c:1656
+#: glib/gspawn.c:1635
 #, c-format
 msgid "Failed to fork (%s)"
 msgstr "Misslyckades med att grena (%s)"
 
-#: glib/gspawn.c:1805 glib/gspawn-win32.c:370
+#: glib/gspawn.c:1784 glib/gspawn-win32.c:370
 #, c-format
 msgid "Failed to change to directory “%s” (%s)"
 msgstr "Misslyckades med att byta till katalogen ”%s” (%s)"
 
-#: glib/gspawn.c:1815
+#: glib/gspawn.c:1794
 #, c-format
 msgid "Failed to execute child process “%s” (%s)"
 msgstr "Misslyckades med att köra barnprocessen ”%s” (%s)"
 
-#: glib/gspawn.c:1825
+#: glib/gspawn.c:1804
 #, c-format
 msgid "Failed to redirect output or input of child process (%s)"
 msgstr ""
 "Misslyckades med att dirigera om utdata eller indata från barnprocess (%s)"
 
-#: glib/gspawn.c:1834
+#: glib/gspawn.c:1813
 #, c-format
 msgid "Failed to fork child process (%s)"
 msgstr "Misslyckades med att skapa barnprocess (%s)"
 
-#: glib/gspawn.c:1842
+#: glib/gspawn.c:1821
 #, c-format
 msgid "Unknown error executing child process “%s”"
 msgstr "Okänt fel vid körning av barnprocessen ”%s”"
 
-#: glib/gspawn.c:1866
+#: glib/gspawn.c:1845
 #, c-format
 msgid "Failed to read enough data from child pid pipe (%s)"
 msgstr ""
@@ -5682,20 +5678,20 @@ msgstr "Talet ”%s” är utanför gränserna [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "”%s” är inte ett teckenlöst tal"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Misslyckades med att allokera minne"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Tecknet är utanför intervallet för UTF-8"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Ogiltig sekvens i konverteringsindata"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Tecknet är utanför intervallet för UTF-16"
 
index fade38f..9d16a39 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -16,7 +16,7 @@ msgstr ""
 "Project-Id-Version: glib\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/glib/issues\n"
 "POT-Creation-Date: 2018-11-06 16:23+0000\n"
-"PO-Revision-Date: 2018-11-06 22:47+0300\n"
+"PO-Revision-Date: 2018-11-06 22:51+0300\n"
 "Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
 "Language-Team: Türkçe <gnome-turk@gnome.org>\n"
 "Language: tr\n"
@@ -300,14 +300,14 @@ msgid "Not enough space in destination"
 msgstr "Hedefte yeterli alan yok"
 
 #: gio/gcharsetconverter.c:342 gio/gdatainputstream.c:848
-#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:883
-#: glib/giochannel.c:1558 glib/giochannel.c:1600 glib/giochannel.c:2444
-#: glib/gutf8.c:870 glib/gutf8.c:1323
+#: gio/gdatainputstream.c:1261 glib/gconvert.c:454 glib/gconvert.c:884
+#: glib/giochannel.c:1557 glib/giochannel.c:1599 glib/giochannel.c:2443
+#: glib/gutf8.c:869 glib/gutf8.c:1322
 msgid "Invalid byte sequence in conversion input"
 msgstr "Dönüşüm girdisinde geçersiz bayt dizisi"
 
-#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:797
-#: glib/giochannel.c:1565 glib/giochannel.c:2456
+#: gio/gcharsetconverter.c:347 glib/gconvert.c:462 glib/gconvert.c:798
+#: glib/giochannel.c:1564 glib/giochannel.c:2455
 #, c-format
 msgid "Error during conversion: %s"
 msgstr "Dönüşüm sırasında hata oluştu: %s"
@@ -316,7 +316,7 @@ msgstr "Dönüşüm sırasında hata oluştu: %s"
 msgid "Cancellable initialization not supported"
 msgstr "İptal edilebilir başlatma desteklenmiyor"
 
-#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1386
+#: gio/gcharsetconverter.c:456 glib/gconvert.c:327 glib/giochannel.c:1385
 #, 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"
@@ -916,12 +916,16 @@ msgstr "%s için StartServiceByName çağrısında hata: "
 msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
 msgstr "StartServiceByName %d yönteminden beklenmeyen yanıt (\"%s\")"
 
-#: gio/gdbusproxy.c:2726 gio/gdbusproxy.c:2860
+#: gio/gdbusproxy.c:2734 gio/gdbusproxy.c:2869
+#, 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 a well-known name without an owner and "
-"proxy was constructed with the G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag"
+"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 ""
-"Yöntem çağrılamıyor; vekil sunucu, sahibi olmayan bilindik bir ad için "
+"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:708
@@ -1217,7 +1221,7 @@ msgstr "Hata: Çok fazla argüman.\n"
 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/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4633
+#: gio/gdesktopappinfo.c:2023 gio/gdesktopappinfo.c:4660
 msgid "Unnamed"
 msgstr "Adlandırılmamış"
 
@@ -1433,7 +1437,7 @@ msgid "Truncate not supported on stream"
 msgstr "Akış üzerinde sonunun kesilmesi desteklenmiyor"
 
 #: gio/ghttpproxy.c:91 gio/gresolver.c:410 gio/gresolver.c:476
-#: glib/gconvert.c:1786
+#: glib/gconvert.c:1787
 msgid "Invalid hostname"
 msgstr "Geçersiz makine adı"
 
@@ -3038,7 +3042,7 @@ msgstr "Dosya içinde atlama yapılırken hata: %s"
 msgid "Error closing file: %s"
 msgstr "Dosya kapatılırken hata: %s"
 
-#: gio/glocalfilemonitor.c:854
+#: gio/glocalfilemonitor.c:856
 msgid "Unable to find default local file monitor type"
 msgstr "Öntanımlı yerel dosya izleme türü bulunamadı"
 
@@ -3191,21 +3195,27 @@ msgstr "Ağa erişilemiyor"
 msgid "Host unreachable"
 msgstr "Makineye erişilemiyor"
 
-#: gio/gnetworkmonitornetlink.c:97 gio/gnetworkmonitornetlink.c:109
-#: gio/gnetworkmonitornetlink.c:128
+#: gio/gnetworkmonitornetlink.c:99 gio/gnetworkmonitornetlink.c:111
+#: gio/gnetworkmonitornetlink.c:130
 #, c-format
 msgid "Could not create network monitor: %s"
 msgstr "Ağ izleme oluşturulamadı: %s"
 
-#: gio/gnetworkmonitornetlink.c:118
+#: gio/gnetworkmonitornetlink.c:120
 msgid "Could not create network monitor: "
 msgstr "Ağ izleme oluşturulamadı: "
 
-#: gio/gnetworkmonitornetlink.c:176
+#: gio/gnetworkmonitornetlink.c:183
 msgid "Could not get network status: "
 msgstr "Ağ durumu alınamadı: "
 
-#: gio/gnetworkmonitornm.c:322
+#: gio/gnetworkmonitornm.c:313
+#, c-format
+#| msgid "NetworkManager version too old"
+msgid "NetworkManager not running"
+msgstr "NetworkManager çalışmıyor"
+
+#: gio/gnetworkmonitornm.c:324
 #, c-format
 msgid "NetworkManager version too old"
 msgstr "NetworkManager sürümü çok eski"
@@ -4025,7 +4035,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:2606 gio/gunixmounts.c:2659
+#: gio/gunixmounts.c:2651 gio/gunixmounts.c:2704
 msgid "Filesystem root"
 msgstr "Dosya sistemi kök dizini"
 
@@ -4145,7 +4155,7 @@ msgstr "“%s” URI’si için bir yer imi zaten var"
 #: glib/gbookmarkfile.c:2968 glib/gbookmarkfile.c:3158
 #: glib/gbookmarkfile.c:3234 glib/gbookmarkfile.c:3402
 #: glib/gbookmarkfile.c:3491 glib/gbookmarkfile.c:3580
-#: glib/gbookmarkfile.c:3696
+#: glib/gbookmarkfile.c:3699
 #, c-format
 msgid "No bookmark found for URI “%s”"
 msgstr "“%s” URI’si için bir yer imi bulunamadı"
@@ -4179,8 +4189,8 @@ msgstr "Exec satırı “%s”, “%s” URI’si ile genişletilirken başarıs
 msgid "Unrepresentable character in conversion input"
 msgstr "Dönüşüm girdisi içinde temsil edilemez karakter"
 
-#: glib/gconvert.c:500 glib/gutf8.c:866 glib/gutf8.c:1078 glib/gutf8.c:1215
-#: glib/gutf8.c:1319
+#: glib/gconvert.c:500 glib/gutf8.c:865 glib/gutf8.c:1077 glib/gutf8.c:1214
+#: glib/gutf8.c:1318
 msgid "Partial character sequence at end of input"
 msgstr "Girdinin sonunda parçalı karakter dizisi"
 
@@ -4190,40 +4200,40 @@ 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:941
 msgid "Embedded NUL byte in conversion input"
 msgstr "Dönüşüm girdisinde gömülü NUL baytı"
 
-#: glib/gconvert.c:961
+#: glib/gconvert.c:962
 msgid "Embedded NUL byte in conversion output"
 msgstr "Dönüşüm çıktısında gömülü NUL baytı"
 
-#: glib/gconvert.c:1649
+#: glib/gconvert.c:1650
 #, 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:1659
+#: glib/gconvert.c:1660
 #, c-format
 msgid "The local file URI “%s” may not include a “#”"
 msgstr "Yerel dosya URI’si “%s”, “#” içeremez"
 
-#: glib/gconvert.c:1676
+#: glib/gconvert.c:1677
 #, c-format
 msgid "The URI “%s” is invalid"
 msgstr "“%s” URI’si geçersiz"
 
-#: glib/gconvert.c:1688
+#: glib/gconvert.c:1689
 #, c-format
 msgid "The hostname of the URI “%s” is invalid"
 msgstr "“%s” URI’sinin ana makine adı geçersiz"
 
-#: glib/gconvert.c:1704
+#: glib/gconvert.c:1705
 #, 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:1776
+#: glib/gconvert.c:1777
 #, c-format
 msgid "The pathname “%s” is not an absolute path"
 msgstr "Yol adı “%s”, kesin bir yol değil"
@@ -4725,24 +4735,24 @@ msgstr "“%s” şablonu XXXXXX içermiyor"
 msgid "Failed to read the symbolic link “%s”: %s"
 msgstr "“%s” simgesel bağını okuma başarısız: %s"
 
-#: glib/giochannel.c:1390
+#: glib/giochannel.c:1389
 #, c-format
 msgid "Could not open converter from “%s” to “%s”: %s"
 msgstr "“%s”-“%s” dönüştürücüsü açılamıyor: %s"
 
-#: glib/giochannel.c:1735
+#: glib/giochannel.c:1734
 msgid "Can’t do a raw read in g_io_channel_read_line_string"
 msgstr "g_io_channel_read_line_string içinde okuma yapılamıyor"
 
-#: glib/giochannel.c:1782 glib/giochannel.c:2040 glib/giochannel.c:2127
+#: glib/giochannel.c:1781 glib/giochannel.c:2039 glib/giochannel.c:2126
 msgid "Leftover unconverted data in read buffer"
 msgstr "Okuma tampon belleğinde kalıntı çevrilmemiş veri"
 
-#: glib/giochannel.c:1863 glib/giochannel.c:1940
+#: glib/giochannel.c:1862 glib/giochannel.c:1939
 msgid "Channel terminates in a partial character"
 msgstr "Kanal kısmi bir karakterde sonlanıyor"
 
-#: glib/giochannel.c:1926
+#: glib/giochannel.c:1925
 msgid "Can’t do a raw read in g_io_channel_read_to_end"
 msgstr "g_io_channel_read_to_end içinde okuma başarısız"
 
@@ -4865,32 +4875,32 @@ msgstr "%s%s%s%s için eşleme oluşturulamadı: mmap() hatası: %s"
 msgid "Failed to open file “%s”: open() failed: %s"
 msgstr "“%s” dosyası açılamadı: open() başarısızlığı: %s"
 
-#: glib/gmarkup.c:398 glib/gmarkup.c:440
+#: glib/gmarkup.c:397 glib/gmarkup.c:439
 #, c-format
 msgid "Error on line %d char %d: "
 msgstr "Satır %d karakter %d hatalı: "
 
-#: glib/gmarkup.c:462 glib/gmarkup.c:545
+#: glib/gmarkup.c:461 glib/gmarkup.c:544
 #, 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:473
+#: glib/gmarkup.c:472
 #, c-format
 msgid "“%s” is not a valid name"
 msgstr "“%s” geçerli bir ad değil"
 
-#: glib/gmarkup.c:489
+#: glib/gmarkup.c:488
 #, c-format
 msgid "“%s” is not a valid name: “%c”"
 msgstr "“%s” geçerli bir ad değil: “%c”"
 
-#: glib/gmarkup.c:613
+#: glib/gmarkup.c:612
 #, c-format
 msgid "Error on line %d: %s"
 msgstr "Satır %d hata içeriyor: %s"
 
-#: glib/gmarkup.c:690
+#: glib/gmarkup.c:689
 #, c-format
 msgid ""
 "Failed to parse “%-.*s”, which should have been a digit inside a character "
@@ -4899,7 +4909,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:702
+#: glib/gmarkup.c:701
 msgid ""
 "Character reference did not end with a semicolon; most likely you used an "
 "ampersand character without intending to start an entity — escape ampersand "
@@ -4909,23 +4919,23 @@ msgstr ""
 "özvarlık başlatmak istemeksizin “ve” işareti kullandınız — “ve” işaretini "
 "&amp; olarak kullanabilirsiniz"
 
-#: glib/gmarkup.c:728
+#: glib/gmarkup.c:727
 #, c-format
 msgid "Character reference “%-.*s” does not encode a permitted character"
 msgstr "Karakter referansı “%-.*s” izin verilen karakteri kodlamıyor"
 
-#: glib/gmarkup.c:766
+#: glib/gmarkup.c:765
 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:774
+#: glib/gmarkup.c:773
 #, c-format
 msgid "Entity name “%-.*s” is not known"
 msgstr "Varlık adı “%-.*s” bilinmiyor"
 
-#: glib/gmarkup.c:779
+#: glib/gmarkup.c:778
 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;"
@@ -4934,11 +4944,11 @@ msgstr ""
 "başlatmak istemeksizin “ve” işareti kullandınız — “ve” işaretini &amp; "
 "olarak kullanabilirsiniz"
 
-#: glib/gmarkup.c:1187
+#: glib/gmarkup.c:1186
 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:1227
+#: glib/gmarkup.c:1226
 #, c-format
 msgid ""
 "“%s” is not a valid character following a “<” character; it may not begin an "
@@ -4947,7 +4957,7 @@ msgstr ""
 "“<” karakterinden sonra gelen “%s” geçerli bir karakter değil; bir öge adı "
 "başlatmamalı"
 
-#: glib/gmarkup.c:1270
+#: glib/gmarkup.c:1269
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” character to end the empty-element tag "
@@ -4955,7 +4965,7 @@ msgid ""
 msgstr ""
 "Tuhaf karakter “%s”, “%s” boş öge etiketinin sonunda “>” karakteri bekledi"
 
-#: glib/gmarkup.c:1352
+#: glib/gmarkup.c:1351
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “=” after attribute name “%s” of element “%s”"
@@ -4963,7 +4973,7 @@ msgstr ""
 "Tuhaf karakter “%1$s”, “%3$s” ögesinin “%2$s” özniteliğinin sonunda “=” "
 "karakteri bekledi"
 
-#: glib/gmarkup.c:1394
+#: glib/gmarkup.c:1393
 #, c-format
 msgid ""
 "Odd character “%s”, expected a “>” or “/” character to end the start tag of "
@@ -4974,7 +4984,7 @@ msgstr ""
 "“>”, “/” karakteri veya bir öznitelik bekledi; öznitelik adında geçersiz bir "
 "karakter kullanmış olabilirsiniz"
 
-#: glib/gmarkup.c:1439
+#: glib/gmarkup.c:1438
 #, c-format
 msgid ""
 "Odd character “%s”, expected an open quote mark after the equals sign when "
@@ -4983,7 +4993,7 @@ msgstr ""
 "Tuhaf karakter “%1$s”, “%3$s” ögesindeki “%2$s” özniteliği için değer "
 "verildiğinde eşittir işaretinden sonra tırnak işareti beklendi"
 
-#: glib/gmarkup.c:1573
+#: glib/gmarkup.c:1572
 #, c-format
 msgid ""
 "“%s” is not a valid character following the characters “</”; “%s” may not "
@@ -4992,7 +5002,7 @@ msgstr ""
 "“</” karakterlerini takip eden “%s” geçerli bir karakter değildir; “%s”, öge "
 "adı ile başlamamalı"
 
-#: glib/gmarkup.c:1611
+#: glib/gmarkup.c:1610
 #, c-format
 msgid ""
 "“%s” is not a valid character following the close element name “%s”; the "
@@ -5001,27 +5011,27 @@ msgstr ""
 "“%s”, kapalı öge adı “%s” ardından gelebilecek bir karakter değil; izin "
 "verilen karakter ise “>”"
 
-#: glib/gmarkup.c:1623
+#: glib/gmarkup.c:1622
 #, 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:1632
+#: glib/gmarkup.c:1631
 #, 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:1785
+#: glib/gmarkup.c:1784
 msgid "Document was empty or contained only whitespace"
 msgstr "Belge boş veya yalnızca boşluk karakteri içeriyor"
 
-#: glib/gmarkup.c:1799
+#: glib/gmarkup.c:1798
 msgid "Document ended unexpectedly just after an open angle bracket “<”"
 msgstr ""
 "Belge, açık açı parantezi “<” işaretinden hemen sonra beklenmedik bir "
 "şekilde bitti"
 
-#: glib/gmarkup.c:1807 glib/gmarkup.c:1852
+#: glib/gmarkup.c:1806 glib/gmarkup.c:1851
 #, c-format
 msgid ""
 "Document ended unexpectedly with elements still open — “%s” was the last "
@@ -5030,7 +5040,7 @@ msgstr ""
 "Belge, ögeleri hala açıkken beklenmedik bir şekilde bitti - son açılan öge: "
 "“%s”"
 
-#: glib/gmarkup.c:1815
+#: glib/gmarkup.c:1814
 #, c-format
 msgid ""
 "Document ended unexpectedly, expected to see a close angle bracket ending "
@@ -5039,19 +5049,19 @@ msgstr ""
 "Belge beklenmedik bir şekilde bitti, etiketi bitiren kapalı açı parantezi "
 "ile biten <%s/> beklendi"
 
-#: glib/gmarkup.c:1821
+#: glib/gmarkup.c:1820
 msgid "Document ended unexpectedly inside an element name"
 msgstr "Belge bir öge adının içinde beklenmedik bir şekilde bitti"
 
-#: glib/gmarkup.c:1827
+#: glib/gmarkup.c:1826
 msgid "Document ended unexpectedly inside an attribute name"
 msgstr "Belge bir öznitelik adı içinde beklenmedik bir şekilde bitti"
 
-#: glib/gmarkup.c:1832
+#: glib/gmarkup.c:1831
 msgid "Document ended unexpectedly inside an element-opening tag."
 msgstr "Belge bir öge-açma etiketi içinde beklenmedik bir şekilde bitti."
 
-#: glib/gmarkup.c:1838
+#: glib/gmarkup.c:1837
 msgid ""
 "Document ended unexpectedly after the equals sign following an attribute "
 "name; no attribute value"
@@ -5059,24 +5069,24 @@ msgstr ""
 "Belge öznitelik adını takip eden eşittir işaretinden sonra beklenmedik bir "
 "şekilde bitti; öznitelik değeri yok"
 
-#: glib/gmarkup.c:1845
+#: glib/gmarkup.c:1844
 msgid "Document ended unexpectedly while inside an attribute value"
 msgstr "Belge bir öznitelik değeri içinde iken beklenmedik bir şekilde bitti"
 
-#: glib/gmarkup.c:1862
+#: glib/gmarkup.c:1861
 #, c-format
 msgid "Document ended unexpectedly inside the close tag for element “%s”"
 msgstr ""
 "Belge, “%s” ögesinin kapatma etiketi içinde beklenmedik bir şekilde bitti"
 
-#: glib/gmarkup.c:1866
+#: glib/gmarkup.c:1865
 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 bir "
 "şekilde bitti"
 
-#: glib/gmarkup.c:1872
+#: glib/gmarkup.c:1871
 msgid "Document ended unexpectedly inside a comment or processing instruction"
 msgstr ""
 "Belge bir yorum veya işlem talimatı içindeyken beklenmedik bir şekilde bitti"
@@ -5496,15 +5506,15 @@ msgstr "rakam beklendi"
 msgid "illegal symbolic reference"
 msgstr "geçersiz simgesel referans"
 
-#: glib/gregex.c:2582
+#: glib/gregex.c:2583
 msgid "stray final “\\”"
 msgstr "son “\\” kayıp"
 
-#: glib/gregex.c:2586
+#: glib/gregex.c:2587
 msgid "unknown escape sequence"
 msgstr "geçersiz çıkış dizisi"
 
-#: glib/gregex.c:2596
+#: glib/gregex.c:2597
 #, c-format
 msgid "Error while parsing replacement text “%s” at char %lu: %s"
 msgstr "Yerine koyma metni “%s” işlenirken karakter %lu hatalı: %s"
@@ -5678,20 +5688,20 @@ msgstr "“%s” sayısı sınırların dışındadır [%s, %s]"
 msgid "“%s” is not an unsigned number"
 msgstr "“%s” işaretsiz bir sayı değil"
 
-#: glib/gutf8.c:812
+#: glib/gutf8.c:811
 msgid "Failed to allocate memory"
 msgstr "Bellek ayrılamadı"
 
-#: glib/gutf8.c:945
+#: glib/gutf8.c:944
 msgid "Character out of range for UTF-8"
 msgstr "Karakter UTF-8 için sınırlarının dışında"
 
-#: glib/gutf8.c:1046 glib/gutf8.c:1055 glib/gutf8.c:1185 glib/gutf8.c:1194
-#: glib/gutf8.c:1333 glib/gutf8.c:1430
+#: glib/gutf8.c:1045 glib/gutf8.c:1054 glib/gutf8.c:1184 glib/gutf8.c:1193
+#: glib/gutf8.c:1332 glib/gutf8.c:1429
 msgid "Invalid sequence in conversion input"
 msgstr "Dönüşüm girdisi içinde geçersiz dizi"
 
-#: glib/gutf8.c:1344 glib/gutf8.c:1441
+#: glib/gutf8.c:1343 glib/gutf8.c:1440
 msgid "Character out of range for UTF-16"
 msgstr "Karakter UTF-16 sınırlarının dışında"
 
index cee484e..3d15e2a 100644 (file)
@@ -1,4 +1,4 @@
 [wrap-git]
 directory=libffi
 url=https://github.com/centricular/libffi.git
-revision=3.2.9999
+revision=meson
index d9bd7e3..03472ac 100644 (file)
@@ -113,13 +113,11 @@ recv_message (GIOChannel  *channel,
   gint fd = g_io_channel_unix_get_fd (channel);
   gboolean retval = TRUE;
 
-#ifdef VERBOSE
-  g_print ("gio-test: ...from %d:%s%s%s%s\n", fd,
+  g_debug ("gio-test: ...from %d:%s%s%s%s", fd,
           (cond & G_IO_ERR) ? " ERR" : "",
           (cond & G_IO_HUP) ? " HUP" : "",
           (cond & G_IO_IN)  ? " IN"  : "",
           (cond & G_IO_PRI) ? " PRI" : "");
-#endif
 
   if (cond & (G_IO_ERR | G_IO_HUP))
     {
@@ -140,9 +138,7 @@ recv_message (GIOChannel  *channel,
        {
          if (nb == 0)
            {
-#ifdef VERBOSE
-             g_print ("gio-test: ...from %d: EOF\n", fd);
-#endif
+             g_debug ("gio-test: ...from %d: EOF", fd);
              shutdown_source (data);
              return FALSE;
            }
@@ -165,9 +161,7 @@ recv_message (GIOChannel  *channel,
       
       if (nb == 0)
        {
-#ifdef VERBOSE
-         g_print ("gio-test: ...from %d: EOF\n", fd);
-#endif
+         g_debug ("gio-test: ...from %d: EOF", fd);
          shutdown_source (data);
          return FALSE;
        }
@@ -176,9 +170,7 @@ recv_message (GIOChannel  *channel,
 
       g_assert_cmpint (nbytes, <, BUFSIZE);
       g_assert (nbytes >= 0 && nbytes < BUFSIZE);
-#ifdef VERBOSE      
-      g_print ("gio-test: ...from %d: %d bytes\n", fd, nbytes);
-#endif      
+      g_debug ("gio-test: ...from %d: %d bytes", fd, nbytes);
       if (nbytes > 0)
        {
          error = read_all (fd, channel, buf, nbytes, &nb);
@@ -188,18 +180,14 @@ recv_message (GIOChannel  *channel,
 
          if (nb == 0)
            {
-#ifdef VERBOSE
-             g_print ("gio-test: ...from %d: EOF\n", fd);
-#endif
+             g_debug ("gio-test: ...from %d: EOF", fd);
              shutdown_source (data);
              return FALSE;
            }
       
          for (j = 0; j < nbytes; j++)
             g_assert (buf[j] == ' ' + ((nbytes + j) % 95));
-#ifdef VERBOSE
-         g_print ("gio-test: ...from %d: OK\n", fd);
-#endif
+         g_debug ("gio-test: ...from %d: OK", fd);
        }
     }
   return retval;
@@ -266,7 +254,6 @@ main (int    argc,
       
       GIOChannel *my_read_channel;
       gchar *cmdline;
-      guint *id;
       int i;
 #ifdef G_OS_WIN32
       GTimeVal start, end;
@@ -316,6 +303,7 @@ main (int    argc,
       for (i = 0; i < nkiddies; i++)
        {
          int pipe_to_sub[2], pipe_from_sub[2];
+         guint *id;
          
          if (pipe (pipe_to_sub) == -1 ||
              pipe (pipe_from_sub) == -1)
@@ -328,10 +316,11 @@ main (int    argc,
          
          id = g_new (guint, 1);
          *id =
-           g_io_add_watch (my_read_channel,
-                           G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP,
-                           recv_message,
-                           id);
+           g_io_add_watch_full (my_read_channel,
+                                G_PRIORITY_DEFAULT,
+                                G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP,
+                                recv_message,
+                                id, g_free);
          
          nrunning++;
          
@@ -372,7 +361,6 @@ main (int    argc,
 
       g_main_loop_unref (main_loop);
       g_free (seqtab);
-      g_free (id);
     }
   else if (argc == 3)
     {
@@ -404,10 +392,8 @@ main (int    argc,
          buflen = rand() % BUFSIZE;
          for (j = 0; j < buflen; j++)
            buf[j] = ' ' + ((buflen + j) % 95);
-#ifdef VERBOSE
-         g_print ("gio-test: child writing %d+%d bytes to %d\n",
+         g_debug ("gio-test: child writing %d+%d bytes to %d",
                   (int)(sizeof(i) + sizeof(buflen)), buflen, writefd);
-#endif
          write (writefd, &i, sizeof (i));
          write (writefd, &buflen, sizeof (buflen));
          write (writefd, buf, buflen);
@@ -424,9 +410,7 @@ main (int    argc,
            }
 #endif
        }
-#ifdef VERBOSE
-      g_print ("gio-test: child exiting, closing %d\n", writefd);
-#endif
+      g_debug ("gio-test: child exiting, closing %d", writefd);
       close (writefd);
     }
   else
index 43ad6ac..4b1c690 100644 (file)
@@ -26,9 +26,7 @@ testmarshal_c = custom_target('testmarshal_c',
   ],
 )
 
-# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0
-# that supports '+=' operator on dictionnaries.
-gobject_tests = [{
+gobject_tests = {
   'gvalue-test' : {'tap' : true},
   'paramspec-test' : {'tap' : true},
   'deftype' : {},
@@ -46,51 +44,49 @@ gobject_tests = [{
   'accumulator' : {
     'extra_sources' : [testmarshal_c, testmarshal_h],
   },
-}]
+}
 
 if host_system != 'windows'
-  gobject_tests += [{
+  gobject_tests += {
     'timeloop-closure' : {},
-  }]
+  }
 endif
 
 common_c_args = test_cargs + ['-DGLIB_DISABLE_DEPRECATION_WARNINGS']
 common_deps = [libm, thread_dep, libglib_dep, libgobject_dep]
 
-foreach test_dict : gobject_tests
-  foreach test_name, extra_args : test_dict
-    source = extra_args.get('source', test_name + '.c')
-    extra_sources = extra_args.get('extra_sources', [])
-    install = installed_tests_enabled and extra_args.get('install', true)
-    template = extra_args.get('tap', false) ? installed_tests_template_tap : installed_tests_template
-    test_command_args = extra_args.get('tap', false) ? ['--tap'] : []
+foreach test_name, extra_args : gobject_tests
+  source = extra_args.get('source', test_name + '.c')
+  extra_sources = extra_args.get('extra_sources', [])
+  install = installed_tests_enabled and extra_args.get('install', true)
+  template = extra_args.get('tap', false) ? installed_tests_template_tap : installed_tests_template
+  test_command_args = extra_args.get('tap', false) ? ['--tap'] : []
 
-    if install
-      test_conf = configuration_data()
-      test_conf.set('installed_tests_dir', installed_tests_execdir)
-      test_conf.set('program', test_name)
-      configure_file(
-        input: template,
-        output: test_name + '.test',
-        install_dir: installed_tests_metadir,
-        configuration: test_conf
-      )
-    endif
-
-    # FIXME? $(GLIB_DEBUG_FLAGS)
-    exe = executable(test_name, [source, extra_sources],
-      c_args : common_c_args + extra_args.get('c_args', []),
-      dependencies : common_deps + extra_args.get('dependencies', []),
-      install_dir: installed_tests_execdir,
-      install: install,
+  if install
+    test_conf = configuration_data()
+    test_conf.set('installed_tests_dir', installed_tests_execdir)
+    test_conf.set('program', test_name)
+    configure_file(
+      input: template,
+      output: test_name + '.test',
+      install_dir: installed_tests_metadir,
+      configuration: test_conf
     )
+  endif
+
+  # FIXME? $(GLIB_DEBUG_FLAGS)
+  exe = executable(test_name, [source, extra_sources],
+    c_args : common_c_args + extra_args.get('c_args', []),
+    dependencies : common_deps + extra_args.get('dependencies', []),
+    install_dir: installed_tests_execdir,
+    install: install,
+  )
 
-    suite = ['gobject'] + extra_args.get('suite', [])
-    timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
-    # FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset
-    test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
-      args : test_command_args)
-  endforeach
+  suite = ['gobject'] + extra_args.get('suite', [])
+  timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+  # FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset
+  test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
+    args : test_command_args)
 endforeach
 
 # Don't install these ones, and keep them out of 'make check' because they take too long...
index f35f59b..5a3e6c9 100644 (file)
@@ -263,10 +263,10 @@ adder_response (GIOChannel   *source,
   return TRUE;
 }
 
-static void
+static GThread *
 create_adder_thread (void)
 {
-  GError *err = NULL;
+  GThread *thread;
   TestData *test_data;
   
   GIOChannel *in_channels[2];
@@ -282,13 +282,7 @@ create_adder_thread (void)
   sub_channels[0] = in_channels[0];
   sub_channels[1] = out_channels[1];
 
-  g_thread_create (adder_thread, sub_channels, FALSE, &err);
-
-  if (err)
-    {
-      g_warning ("Cannot create thread: %s", err->message);
-      exit (1);
-    }
+  thread = g_thread_new ("adder", adder_thread, sub_channels);
 
   test_data = g_new (TestData, 1);
   test_data->in = in_channels[1];
@@ -299,6 +293,8 @@ create_adder_thread (void)
                  adder_response, test_data);
   
   do_add (test_data->in, test_data->current_val, INCREMENT);
+
+  return thread;
 }
 
 static void create_crawler (void);
@@ -389,12 +385,15 @@ recurser_start (gpointer data)
   GSource *source;
   
   g_mutex_lock (&context_array_mutex);
-  context = context_array->pdata[g_random_int_range (0, context_array->len)];
-  source = g_idle_source_new ();
-  g_source_set_name (source, "Recursing idle source");
-  g_source_set_callback (source, recurser_idle, context, NULL);
-  g_source_attach (source, context);
-  g_source_unref (source);
+  if (context_array->len > 0)
+    {
+      context = context_array->pdata[g_random_int_range (0, context_array->len)];
+      source = g_idle_source_new ();
+      g_source_set_name (source, "Recursing idle source");
+      g_source_set_callback (source, recurser_idle, context, NULL);
+      g_source_attach (source, context);
+      g_source_unref (source);
+    }
   g_mutex_unlock (&context_array_mutex);
 
   return TRUE;
@@ -405,6 +404,7 @@ main (int   argc,
       char *argv[])
 {
   gint i;
+  GThread *threads[NTHREADS];
 
   context_array = g_ptr_array_new ();
 
@@ -413,13 +413,13 @@ main (int   argc,
   main_loop = g_main_loop_new (NULL, FALSE);
 
   for (i = 0; i < NTHREADS; i++)
-    create_adder_thread ();
+    threads[i] = create_adder_thread ();
 
   /* Wait for all threads to start
    */
   g_mutex_lock (&context_array_mutex);
   
-  if (context_array->len < NTHREADS)
+  while (context_array->len < NTHREADS)
     g_cond_wait (&context_array_cond, &context_array_mutex);
   
   g_mutex_unlock (&context_array_mutex);
@@ -432,6 +432,9 @@ main (int   argc,
   g_main_loop_run (main_loop);
   g_main_loop_unref (main_loop);
 
+  for (i = 0; i < NTHREADS; i++)
+    g_thread_join (threads[i]);
+
   g_ptr_array_unref (crawler_array);
   g_ptr_array_unref (context_array);
 
index 80e45d7..8dcb712 100644 (file)
@@ -15,9 +15,7 @@ test_cargs = ['-DG_LOG_DOMAIN="GLib"']
 subdir('gobject')
 subdir('refcount')
 
-# FIXME: We are using list of dictionnaries until we can depend on Meson 0.48.0
-# that supports '+=' operator on dictionnaries.
-tests = [{
+tests = {
   'testglib' : {'tap' : true},
   'testgdate' : {},
   'datetime' : {},
@@ -54,7 +52,7 @@ tests = [{
     'include_directories' : gmoduleinc,
     'dependencies' : [libgio_dep],
   },
-}]
+}
 
 test_extra_programs = {
   'slice-test' : {
@@ -68,11 +66,11 @@ test_extra_programs = {
 }
 
 if host_machine.system() != 'windows'
-  tests += [{
+  tests += {
     'timeloop' : {},
     'spawn-test' : {},
     'iochannel-test' : {},
-  }]
+  }
 endif
 
 if installed_tests_enabled
@@ -96,42 +94,40 @@ endforeach
 common_c_args = test_cargs + ['-DGLIB_DISABLE_DEPRECATION_WARNINGS']
 common_deps = [libm, thread_dep, libglib_dep]
 
-foreach test_dict : tests
-  foreach test_name, extra_args : test_dict
-    source = extra_args.get('source', test_name + '.c')
-    extra_sources = extra_args.get('extra_sources', [])
-    install = installed_tests_enabled and extra_args.get('install', true)
-    template = extra_args.get('tap', false) ? installed_tests_template_tap : installed_tests_template
-    test_command_args = extra_args.get('tap', false) ? ['--tap'] : []
-
-    if install
-      test_conf = configuration_data()
-      test_conf.set('installed_tests_dir', installed_tests_execdir)
-      test_conf.set('program', test_name)
-      configure_file(
-        input: template,
-        output: test_name + '.test',
-        install_dir: installed_tests_metadir,
-        configuration: test_conf
-      )
-    endif
+foreach test_name, extra_args : tests
+  source = extra_args.get('source', test_name + '.c')
+  extra_sources = extra_args.get('extra_sources', [])
+  install = installed_tests_enabled and extra_args.get('install', true)
+  template = extra_args.get('tap', false) ? installed_tests_template_tap : installed_tests_template
+  test_command_args = extra_args.get('tap', false) ? ['--tap'] : []
 
-    # FIXME? $(GLIB_DEBUG_FLAGS)
-    exe = executable(test_name, [source, extra_sources],
-      c_args : common_c_args + extra_args.get('c_args', []),
-      dependencies : common_deps + extra_args.get('dependencies', []),
-      export_dynamic : extra_args.get('export_dynamic', false),
-      include_directories : extra_args.get('include_directories', []),
-      install_dir: installed_tests_execdir,
-      install: install,
+  if install
+    test_conf = configuration_data()
+    test_conf.set('installed_tests_dir', installed_tests_execdir)
+    test_conf.set('program', test_name)
+    configure_file(
+      input: template,
+      output: test_name + '.test',
+      install_dir: installed_tests_metadir,
+      configuration: test_conf
     )
+  endif
+
+  # FIXME? $(GLIB_DEBUG_FLAGS)
+  exe = executable(test_name, [source, extra_sources],
+    c_args : common_c_args + extra_args.get('c_args', []),
+    dependencies : common_deps + extra_args.get('dependencies', []),
+    export_dynamic : extra_args.get('export_dynamic', false),
+    include_directories : extra_args.get('include_directories', []),
+    install_dir: installed_tests_execdir,
+    install: install,
+  )
 
-    suite = ['glib'] + extra_args.get('suite', [])
-    timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
-    # FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset
-    test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
-      args : test_command_args)
-  endforeach
+  suite = ['glib'] + extra_args.get('suite', [])
+  timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+  # FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset
+  test(test_name, exe, env : test_env, timeout : timeout, suite : suite,
+    args : test_command_args)
 endforeach
 
 foreach program_name, extra_args : test_extra_programs
index 25b0a27..a4c2831 100644 (file)
@@ -153,19 +153,11 @@ my_test_class_init (GTestClass *klass)
   klass->test_signal2 = my_test_test_signal2;
 }
 
-static inline guint32
-quick_rand32 (void)
-{
-  static guint32 accu = 2147483563;
-  accu = 1664525 * accu + 1013904223;
-  return accu;
-}
-
 static void
 test_closure (GClosure *closure)
 {
   /* try to produce high contention in closure->ref_count */
-  guint i = 0, n = quick_rand32() % 199;
+  guint i = 0, n = g_random_int () % 199;
   for (i = 0; i < n; i++)
     g_closure_ref (closure);
   g_closure_sink (closure); /* NOP */
@@ -259,7 +251,19 @@ main (int    argc,
   thread1 = g_thread_create (thread1_main, closure, TRUE, NULL);
   thread2 = g_thread_create (thread2_main, closure, TRUE, NULL);
 
+  /* The 16-bit compare-and-swap operations currently used for closure
+   * refcounts are really slow on some ARM CPUs, notably Cortex-A57.
+   * Reduce the number of iterations so that the test completes in a
+   * finite time, but don't reduce it so much that the main thread
+   * starves the other threads and causes a test failure.
+   *
+   * https://gitlab.gnome.org/GNOME/glib/issues/1316
+   * aka https://bugs.debian.org/880883 */
+#if defined(__aarch64__) || defined(__arm__)
+  for (i = 0; i < 100000; i++)
+#else
   for (i = 0; i < 1000000; i++)
+#endif
     {
       static guint count = 0;
       test_emissions (object);
index 68c23cc..22b9655 100644 (file)
@@ -54,6 +54,13 @@ foreach test_name, extra_args : refcount_tests
 
   suite = ['refcount'] + extra_args.get('suite', [])
   timeout = suite.contains('slow') ? test_timeout_slow : test_timeout
+
+  # https://gitlab.gnome.org/GNOME/glib/issues/1316
+  # aka https://bugs.debian.org/880883
+  if test_name == 'closures' and ['arm', 'aarch64'].contains(host_cpu_family)
+    timeout = timeout * 10
+  endif
+
   # FIXME? TESTS_ENVIRONMENT = LIBCHARSET_ALIAS_DIR=$(top_builddir)/glib/libcharset
   test(test_name, exe, env : test_env, timeout : timeout, suite : suite)
 endforeach
index d1a0447..f714ac0 100644 (file)
@@ -12,8 +12,6 @@
 #define MY_IS_TEST_CLASS(tclass)   (G_TYPE_CHECK_CLASS_TYPE ((tclass), G_TYPE_TEST))
 #define MY_TEST_GET_CLASS(test)    (G_TYPE_INSTANCE_GET_CLASS ((test), G_TYPE_TEST, GTestClass))
 
-static GRand *grand;
-
 typedef struct _GTest GTest;
 typedef struct _GTestClass GTestClass;
 
@@ -34,7 +32,7 @@ struct _GTestClass
 };
 
 static GType my_test_get_type (void);
-static volatile gboolean stopping;
+static gboolean stopping;
 
 /* Element signals and args */
 enum
@@ -87,8 +85,6 @@ my_test_get_type (void)
       NULL
     };
 
-    grand = g_rand_new();
-
     test_type = g_type_register_static (G_TYPE_OBJECT, "GTest",
         &test_info, 0);
   }
@@ -221,7 +217,7 @@ my_test_do_signal3 (GTest * test)
 static void
 my_test_do_prop (GTest * test)
 {
-  test->value = g_rand_int (grand);
+  test->value = g_random_int ();
   g_object_notify (G_OBJECT (test), "test-prop");
 }
 
@@ -230,7 +226,7 @@ run_thread (GTest * test)
 {
   gint i = 1;
 
-  while (!stopping) {
+  while (!g_atomic_int_get (&stopping)) {
     if (TESTNUM == 1)
       my_test_do_signal1 (test);
     if (TESTNUM == 2)
@@ -290,7 +286,7 @@ main (int argc, char **argv)
   }
   g_usleep (5000000);
 
-  stopping = TRUE;
+  g_atomic_int_set (&stopping, TRUE);
 
   g_print ("\nstopping\n");