Merge branch 'master' into wip/gsettings-list
diff --git a/Makefile.decl b/Makefile.decl
index d07e6d2..163fd8b 100644
--- a/Makefile.decl
+++ b/Makefile.decl
@@ -46,17 +46,23 @@
GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
ignore_logdir=false ; \
fi ; \
+ if test -d "$(top_srcdir)/.git" ; then \
+ REVISION=`git describe` ; \
+ else \
+ REVISION=$(VERSION) ; \
+ fi ; \
for subdir in $(SUBDIRS) . ; do \
test "$$subdir" = "." -o "$$subdir" = "po" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
done ; \
$$ignore_logdir || { \
- echo '<?xml version="1.0"?>' > $@.xml ; \
- echo '<report-collection>' >> $@.xml ; \
- echo '<info>' >> $@.xml ; \
- echo ' <package>$(PACKAGE)</package>' >> $@.xml ; \
- echo ' <version>$(VERSION)</version>' >> $@.xml ; \
- echo '</info>' >> $@.xml ; \
+ echo '<?xml version="1.0"?>' > $@.xml ; \
+ echo '<report-collection>' >> $@.xml ; \
+ echo '<info>' >> $@.xml ; \
+ echo ' <package>$(PACKAGE)</package>' >> $@.xml ; \
+ echo ' <version>$(VERSION)</version>' >> $@.xml ; \
+ echo " <revision>$$REVISION</revision>" >> $@.xml ; \
+ echo '</info>' >> $@.xml ; \
for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
done ; \
diff --git a/NEWS b/NEWS
index 84cb200..7509821 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,92 @@
+Overview of Changes from GLib 2.27.5 to 2.27.90
+===============================================
+
+* Test reports created by gtester-report can now
+ include revision information
+
+* The g_desktop_app_info_launch_* family of functions
+ now emit a DBus signal when an application is launched.
+ Additionally, there is a new variant
+ g_desktop_app_info_launch_uris_as_manager(), which
+ gives more control over the launched process.
+
+* The memory and null GSettings backends are now available
+ as public API
+
+* g_get_locale_variants() is a new function that returns a
+ list of variants of a locale identifier
+
+* Bugs fixed:
+ 587898 I/O timeouts for GSocket
+ 606960 gio: Add extension point for informing parties...
+ 631980 Handle an optional <revision> node in the report...
+ 634569 Document that g_variant_builder_add_value consumes...
+ 635998 Make _g_compute_locale_variants public
+ 636806 Add g_{memory,null}_settings_backend_get_default
+ 637262 Need a binary DER version of ::accepted-cas
+ 637544 Skip fsync() on btrfs
+ 637720 void functions should not return a value.
+ 637738 object_interface_check_properties never actually...
+ 637759 GIOChannel: fix a crash in g_io_channel_read_chars()
+ 637852 Updates to glib.vsprops file for MSVC 2008 builds...
+ 637858 Updates to test/testglib.c...
+ 638349 parameter name of g_variant_new_* may conflict...
+
+* Translation updates:
+ Hebrew
+ Norwegian bokmål
+ Simplified Chinese
+ Spanish
+ Swedish
+ Uyghur
+ Vietnamese
+
+
+Overview of Changes from GLib 2.27.4 to 2.27.5
+==============================================
+
+* Network support:
+ - Add g_tls_certificate_verify() to verify a certificate
+ - Add GTlsConnection:use-system-certdb
+ - Other TLS api additions
+
+* GIO:
+ - Add g_io_stream_splice_async()/_finish() to splice two iostreams
+ - Add g_emblemed_icon_clear_emblems() and make GEmblemedIcon derivable
+ - Remove GPeriodic; it did not receive the necessary review and
+ integration work to declare it stable
+
+* GSequence:
+ - New methods g_sequence_lookup() and g_sequence_lookup_iter()
+
+* Bugs fixed:
+ 617254 Missing g_sequence_lookup
+ 632544 g_dbus_connection_send_message can not send a locked message...
+ 633350 g_hostname_to_ascii() ignores non-ascii dots
+ 634583 Better error reporting for g_variant_parse()
+ 635007 gsetting enum rule don't work for out-of-srcdir builds
+ 635626 GDBus message idle can execute while flushes are pending
+ 636100 Can't read GSettings:backend property
+ 636305 Typo on g_queue_remove_all() function description
+ 636311 appinfo: tweak application positioning for content-types
+ 636351 g_simple_async_result_is_valid lacks a version tag
+ 636387 gdb autoload files shadow the "dir" builtin
+ 636673 g_simple_async_report_error_in_idle should allow object...
+ 637147 Add a "delay-apply" property to GSettings
+ 637171 emblemedicon: add g_emblemed_icon_clear_emblems()
+ 637237 gapplication: plug a memory leak
+
+* Translation updates:
+ Estonian
+ Galician
+ Hebrew
+ Norwegian bokmål
+ Simplified Chinese
+ Spanish
+ Traditional Chinese
+ Vietnamese
+
+
Overview of Changes from GLib 2.27.3 to 2.27.4
==============================================
diff --git a/build/win32/vs9/glib.vsprops b/build/win32/vs9/glib.vsprops
index ba098d4..302ce32 100644
--- a/build/win32/vs9/glib.vsprops
+++ b/build/win32/vs9/glib.vsprops
@@ -205,8 +205,9 @@
copy ..\..\..\gio\gnetworkaddress.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gnetworkservice.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\goutputstream.h $(OutDir)\include\glib-2.0\gio

-copy ..\..\..\gio\gperiodic.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gpermission.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gpollableinputstream.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gpollableoutputstream.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gproxy.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gproxyaddress.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gproxyaddressenumerator.h $(OutDir)\include\glib-2.0\gio

@@ -229,8 +230,14 @@
copy ..\..\..\gio\gsocketservice.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gsrvtarget.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gtcpconnection.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gtcpwrapperconnection.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gthemedicon.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gthreadedsocketservice.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gtlsbackend.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gtlscertificate.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gtlsclientconnection.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gtlsconnection.h $(OutDir)\include\glib-2.0\gio

+copy ..\..\..\gio\gtlsserverconnection.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gvfs.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gvolume.h $(OutDir)\include\glib-2.0\gio

copy ..\..\..\gio\gvolumemonitor.h $(OutDir)\include\glib-2.0\gio

diff --git a/configure.ac b/configure.ac
index 28a1f39..e901270 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
#
m4_define([glib_major_version], [2])
m4_define([glib_minor_version], [27])
-m4_define([glib_micro_version], [5])
+m4_define([glib_micro_version], [91])
m4_define([glib_interface_age], [0])
m4_define([glib_binary_age],
[m4_eval(100 * glib_minor_version + glib_micro_version)])
@@ -49,6 +49,7 @@
AC_CONFIG_HEADER([config.h])
AC_CONFIG_SRCDIR([glib/glib.h])
+AC_CONFIG_MACRO_DIR([m4macros])
# Save this value here, since automake will set cflags later
cflags_set=${CFLAGS+set}
@@ -224,10 +225,6 @@
[AC_HELP_STRING([--disable-rebuilds],
[disable all source autogeneration rules])],,
[enable_rebuilds=yes])
-AC_ARG_ENABLE(visibility,
- [AC_HELP_STRING([--disable-visibility],
- [don't use ELF visibility attributes])],,
- [enable_visibility=yes])
if test "x$enable_threads" != "xyes"; then
enable_threads=no
@@ -296,10 +293,6 @@
fi
fi
-if test "x$enable_visibility" = "xno"; then
- GLIB_DEBUG_FLAGS="$GLIB_DEBUG_FLAGS -DDISABLE_VISIBILITY"
-fi
-
# Ensure MSVC-compatible struct packing convention is used when
# compiling for Win32 with gcc.
# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
diff --git a/docs/reference/gio/gio-docs.xml b/docs/reference/gio/gio-docs.xml
index ce75643..ad1aee5 100644
--- a/docs/reference/gio/gio-docs.xml
+++ b/docs/reference/gio/gio-docs.xml
@@ -184,10 +184,6 @@
<xi:include href="xml/gapplication.xml"/>
<xi:include href="xml/gapplicationcommandline.xml"/>
</chapter>
- <chapter id="periodic">
- <title>Periodic Timer</title>
- <xi:include href="xml/gperiodic.xml"/>
- </chapter>
<chapter id="extending">
<title>Extending GIO</title>
<xi:include href="xml/gvfs.xml"/>
diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt
index b49d501..3448e8c 100644
--- a/docs/reference/gio/gio-sections.txt
+++ b/docs/reference/gio/gio-sections.txt
@@ -506,6 +506,7 @@
g_emblemed_icon_get_icon
g_emblemed_icon_get_emblems
g_emblemed_icon_add_emblem
+g_emblemed_icon_clear_emblems
<SUBSECTION Standard>
GEmblemedIconClass
G_EMBLEMED_ICON
@@ -892,9 +893,12 @@
<SECTION>
<FILE>giostream</FILE>
<TITLE>GIOStream</TITLE>
+GIOStreamSpliceFlags
GIOStream
g_io_stream_get_input_stream
g_io_stream_get_output_stream
+g_io_stream_splice_async
+g_io_stream_splice_finish
g_io_stream_close
g_io_stream_close_async
g_io_stream_close_finish
@@ -1252,6 +1256,7 @@
g_app_info_reset_type_associations
g_app_info_set_as_default_for_type
g_app_info_set_as_default_for_extension
+g_app_info_set_as_last_used_for_type
g_app_info_add_supports_type
g_app_info_can_remove_supports_type
g_app_info_remove_supports_type
@@ -2153,6 +2158,7 @@
GSettingsBackend
GSettingsBackendClass
G_SETTINGS_BACKEND_EXTENSION_POINT_NAME
+g_settings_backend_get_default
g_settings_backend_changed
g_settings_backend_path_changed
g_settings_backend_keys_changed
@@ -2161,6 +2167,8 @@
g_settings_backend_changed_tree
g_settings_backend_flatten_tree
g_keyfile_settings_backend_new
+g_memory_settings_backend_new
+g_null_settings_backend_new
<SUBSECTION Standard>
G_IS_SETTINGS_BACKEND
@@ -2933,32 +2941,6 @@
</SECTION>
<SECTION>
-<FILE>gperiodic</FILE>
-<TITLE>GPeriodic</TITLE>
-GPeriodic
-<SUBSECTION>
-g_periodic_new
-g_periodic_get_hz
-g_periodic_get_high_priority
-g_periodic_get_low_priority
-<SUBSECTION>
-GPeriodicTickFunc
-g_periodic_add
-g_periodic_remove
-<SUBSECTION>
-g_periodic_block
-g_periodic_unblock
-<SUBSECTION>
-g_periodic_damaged
-<SUBSECTION Standard>
-G_TYPE_PERIODIC
-G_PERIODIC
-G_IS_PERIODIC
-<SUBSECTION Private>
-g_periodic_get_type
-</SECTION>
-
-<SECTION>
<FILE>gpollableinputstream</FILE>
<TITLE>GPollableInputStream</TITLE>
GPollableInputStream
@@ -3038,6 +3020,7 @@
g_tls_certificate_new_from_files
g_tls_certificate_list_new_from_file
g_tls_certificate_get_issuer
+g_tls_certificate_verify
<SUBSECTION Standard>
GTlsCertificateClass
GTlsCertificatePrivate
@@ -3058,19 +3041,20 @@
g_tls_connection_set_certificate
g_tls_connection_get_certificate
g_tls_connection_get_peer_certificate
+g_tls_connection_get_peer_certificate_errors
g_tls_connection_set_require_close_notify
g_tls_connection_get_require_close_notify
GTlsRehandshakeMode
g_tls_connection_set_rehandshake_mode
g_tls_connection_get_rehandshake_mode
+g_tls_connection_set_use_system_certdb
+g_tls_connection_get_use_system_certdb
<SUBSECTION>
g_tls_connection_handshake
g_tls_connection_handshake_async
g_tls_connection_handshake_finish
<SUBSECTION>
-g_tls_connection_set_peer_certificate
g_tls_connection_emit_accept_certificate
-g_tls_connection_emit_need_certificate
<SUBSECTION Standard>
GTlsConnectionClass
GTlsConnectionPrivate
diff --git a/docs/reference/gio/gio.types b/docs/reference/gio/gio.types
index 76eb7e0..d631517 100644
--- a/docs/reference/gio/gio.types
+++ b/docs/reference/gio/gio.types
@@ -74,7 +74,6 @@
g_output_stream_get_type
g_output_stream_splice_flags_get_type
g_password_save_get_type
-g_periodic_get_type
g_permission_get_type
g_pollable_input_stream_get_type
g_pollable_output_stream_get_type
diff --git a/docs/reference/gio/overview.xml b/docs/reference/gio/overview.xml
index 58ce317..a6e327b 100644
--- a/docs/reference/gio/overview.xml
+++ b/docs/reference/gio/overview.xml
@@ -247,14 +247,13 @@
</formalpara>
<formalpara>
- <title><envar>GIO_USE_URI_ASSOCIATION</envar></title>
+ <title><envar>GIO_USE_TLS</envar></title>
<para>
- This variable can be set to the name of a #GDesktopAppInfoLookup
+ This variable can be set to the name of a #GTlsBackend
implementation to override the default for debugging purposes.
- GIO does not include a #GDesktopAppInfoLookup implementation,
- the GConf-based implementation in the gvfs module has the name
- "gconf".
+ GIO does not include a #GTlsBackend implementation, the gnutls-based
+ implementation in the glib-networking module has the name "gnutls".
</para>
</formalpara>
diff --git a/docs/reference/glib/building.sgml b/docs/reference/glib/building.sgml
index 6ba280a..8b643e0 100644
--- a/docs/reference/glib/building.sgml
+++ b/docs/reference/glib/building.sgml
@@ -232,8 +232,8 @@
<arg>--enable-included-printf</arg>
</group>
<group>
- <arg>--disable-visibility</arg>
- <arg>--enable-visibility</arg>
+ <arg>--disable-Bsymbolic</arg>
+ <arg>--enable-Bsymbolic</arg>
</group>
<group>
<arg>--disable-gtk-doc</arg>
@@ -510,19 +510,18 @@
</formalpara>
<formalpara>
- <title><systemitem>--disable-visibility</systemitem> and
- <systemitem>--enable-visibility</systemitem></title>
+ <title><systemitem>--disable-Bsymbolic</systemitem> and
+ <systemitem>--enable-Bsymbolic</systemitem></title>
<para>
- By default, GLib uses ELF visibility attributes to optimize
- PLT table entries if the compiler supports ELF visibility
- attributes. A side-effect of the way in which this is currently
- implemented is that any header change forces a full
- recompilation, and missing includes may go unnoticed.
- Therefore, it makes sense to turn this feature off while
- doing GLib development, even if the compiler supports ELF
- visibility attributes. The <option>--disable-visibility</option>
- option allows to do that.
+ By default, GLib uses the -Bsymbolic-functions linker
+ flag to avoid intra-library PLT jumps. A side-effect
+ of this is that it is no longer possible to override
+ internal uses of GLib functions with
+ <envvar>LD_PRELOAD</envvar>. Therefore, it may make
+ sense to turn this feature off in some situations.
+ The <option>--disable-Bsymbolic</option> option allows
+ to do that.
</para>
</formalpara>
diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt
index 6540fe8..c45ee67 100644
--- a/docs/reference/glib/glib-sections.txt
+++ b/docs/reference/glib/glib-sections.txt
@@ -2166,6 +2166,8 @@
g_sequence_move_range
g_sequence_search
g_sequence_search_iter
+g_sequence_lookup
+g_sequence_lookup_iter
<SUBSECTION>
g_sequence_get
@@ -2728,6 +2730,7 @@
g_strip_context
<SUBSECTION>
g_get_language_names
+g_get_locale_variants
</SECTION>
<SECTION>
diff --git a/gio/Makefile.am b/gio/Makefile.am
index 89aa162..0fa675f 100644
--- a/gio/Makefile.am
+++ b/gio/Makefile.am
@@ -116,9 +116,7 @@
gdelayedsettingsbackend.h \
gdelayedsettingsbackend.c \
gkeyfilesettingsbackend.c \
- gmemorysettingsbackend.h \
gmemorysettingsbackend.c \
- gnullsettingsbackend.h \
gnullsettingsbackend.c \
gsettingsbackendinternal.h \
gsettingsbackend.c \
@@ -348,7 +346,6 @@
gnetworkingprivate.h \
gnetworkservice.c \
goutputstream.c \
- gperiodic.c \
gpermission.c \
gpollableinputstream.c \
gpollableoutputstream.c \
@@ -510,7 +507,6 @@
gnetworkaddress.h \
gnetworkservice.h \
goutputstream.h \
- gperiodic.h \
gpermission.h \
gpollableinputstream.h \
gpollableoutputstream.h \
diff --git a/gio/gaction.c b/gio/gaction.c
index 6c2ee1d..15fe23a 100644
--- a/gio/gaction.c
+++ b/gio/gaction.c
@@ -77,7 +77,8 @@
P_("Action Name"),
P_("The name used to invoke the action"),
NULL,
- G_PARAM_READABLE |
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
/**
@@ -93,7 +94,8 @@
P_("Parameter Type"),
P_("The type of GVariant passed to activate()"),
G_TYPE_VARIANT_TYPE,
- G_PARAM_READABLE |
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
/**
@@ -111,7 +113,8 @@
P_("Enabled"),
P_("If the action can be activated"),
TRUE,
- G_PARAM_READABLE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS));
/**
diff --git a/gio/gappinfo.c b/gio/gappinfo.c
index 755731e..7557ce5 100644
--- a/gio/gappinfo.c
+++ b/gio/gappinfo.c
@@ -308,6 +308,33 @@
return (* iface->set_as_default_for_type) (appinfo, content_type, error);
}
+/**
+ * g_app_info_set_as_last_used_for_type:
+ * @appinfo: a #GAppInfo.
+ * @content_type: the content type.
+ * @error: a #GError.
+ *
+ * Sets the application as the last used application for a given type.
+ * This will make the application appear as first in the list returned by
+ * #g_app_info_get_recommended_for_type, regardless of the default application
+ * for that content type.
+ *
+ * Returns: %TRUE on success, %FALSE on error.
+ **/
+gboolean
+g_app_info_set_as_last_used_for_type (GAppInfo *appinfo,
+ const char *content_type,
+ GError **error)
+{
+ GAppInfoIface *iface;
+
+ g_return_val_if_fail (G_IS_APP_INFO (appinfo), FALSE);
+ g_return_val_if_fail (content_type != NULL, FALSE);
+
+ iface = G_APP_INFO_GET_IFACE (appinfo);
+
+ return (* iface->set_as_last_used_for_type) (appinfo, content_type, error);
+}
/**
* g_app_info_set_as_default_for_extension:
@@ -548,7 +575,7 @@
/**
* g_app_info_launch_uris:
* @appinfo: a #GAppInfo
- * @uris: (element-type char*): a #GList containing URIs to launch.
+ * @uris: (element-type utf8): a #GList containing URIs to launch.
* @launch_context: (allow-none): a #GAppLaunchContext or %NULL
* @error: a #GError
*
@@ -605,7 +632,7 @@
/**
* g_app_info_launch_default_for_uri:
* @uri: the uri to show
- * @launch_context: an optional #GAppLaunchContext.
+ * @launch_context: (allow-none): an optional #GAppLaunchContext.
* @error: a #GError.
*
* Utility function that launches the default application
diff --git a/gio/gappinfo.h b/gio/gappinfo.h
index a52e216..d752d44 100644
--- a/gio/gappinfo.h
+++ b/gio/gappinfo.h
@@ -99,7 +99,7 @@
const char * (* get_executable) (GAppInfo *appinfo);
GIcon * (* get_icon) (GAppInfo *appinfo);
gboolean (* launch) (GAppInfo *appinfo,
- GList *filenames,
+ GList *files,
GAppLaunchContext *launch_context,
GError **error);
gboolean (* supports_uris) (GAppInfo *appinfo);
@@ -128,6 +128,9 @@
gboolean (* do_delete) (GAppInfo *appinfo);
const char * (* get_commandline) (GAppInfo *appinfo);
const char * (* get_display_name) (GAppInfo *appinfo);
+ gboolean (* set_as_last_used_for_type) (GAppInfo *appinfo,
+ const char *content_type,
+ GError **error);
};
GType g_app_info_get_type (void) G_GNUC_CONST;
@@ -173,6 +176,10 @@
gboolean g_app_info_can_delete (GAppInfo *appinfo);
gboolean g_app_info_delete (GAppInfo *appinfo);
+gboolean g_app_info_set_as_last_used_for_type (GAppInfo *appinfo,
+ const char *content_type,
+ GError **error);
+
GList * g_app_info_get_all (void);
GList * g_app_info_get_all_for_type (const char *content_type);
GList * g_app_info_get_recommended_for_type (const gchar *content_type);
diff --git a/gio/gapplication.c b/gio/gapplication.c
index da9d54d..6ad23d0 100644
--- a/gio/gapplication.c
+++ b/gio/gapplication.c
@@ -357,7 +357,7 @@
/**
* g_application_set_action_group:
* @application: a #GApplication
- * @action_group: a #GActionGroup, or %NULL
+ * @action_group: (allow-none): a #GActionGroup, or %NULL
*
* Sets or unsets the group of actions associated with the application.
*
@@ -545,7 +545,7 @@
/**
* GApplication::open:
* @application: the application
- * @files: an array of #GFile objects
+ * @files: (array length=n_files) (element-type GFile): an array of #GFiles
* @n_files: the length of @files
* @hint: a hint provided by the calling instance
*
@@ -1047,7 +1047,7 @@
/**
* g_application_open:
* @application: a #GApplication
- * @files: an array of #GFiles to open
+ * @files: (array length=n_files): an array of #GFiles to open
* @n_files: the length of the @files array
* @hint: a hint (or ""), but never %NULL
*
@@ -1094,7 +1094,7 @@
* g_application_run:
* @application: a #GApplication
* @argc: the argc from main()
- * @argv: the argv from main()
+ * @argv: (array length=argc): the argv from main()
* @returns: the exit status
*
* Runs the application.
diff --git a/gio/gapplicationcommandline.c b/gio/gapplicationcommandline.c
index c52398c..b8d788a 100644
--- a/gio/gapplicationcommandline.c
+++ b/gio/gapplicationcommandline.c
@@ -249,7 +249,7 @@
/**
* g_application_command_line_get_arguments:
* @cmdline: a #GApplicationCommandLine
- * @argc: the length of the arguments array, or %NULL
+ * @argc: (out): the length of the arguments array, or %NULL
*
* Gets the list of arguments that was passed on the command line.
*
@@ -258,7 +258,8 @@
* The return value is %NULL-terminated and should be freed using
* g_strfreev().
*
- * Returns: the string array containing the arguments (the argv)
+ * Returns: (array length=argc) (transfer full): the string array
+ * containing the arguments (the argv)
*
* Since: 2.28
**/
@@ -321,7 +322,8 @@
* The return value should not be modified or freed and is valid for as
* long as @cmdline exists.
*
- * Returns: the environment strings, or %NULL if they were not sent
+ * Returns: (array zero-terminated=1) (transfer none): the environment
+ * strings, or %NULL if they were not sent
*
* Since: 2.28
**/
diff --git a/gio/gapplicationimpl-dbus.c b/gio/gapplicationimpl-dbus.c
index c9f4306..406b839 100644
--- a/gio/gapplicationimpl-dbus.c
+++ b/gio/gapplicationimpl-dbus.c
@@ -328,6 +328,8 @@
g_dbus_method_invocation_return_value (invocation,
g_variant_builder_end (&builder));
+
+ g_strfreev (actions);
}
else if (strcmp (method_name, "SetState") == 0)
@@ -666,7 +668,7 @@
g_free (impl->object_path);
g_slice_free (GApplicationImpl, impl);
- impl = NULL;
+ return NULL;
}
}
@@ -674,7 +676,7 @@
* This also serves as a mechanism to ensure that the primary exists
* (ie: DBus service files installed correctly, etc).
*/
- impl->signal_id =
+ impl->signal_id =
g_dbus_connection_signal_subscribe (impl->session_bus, impl->bus_name,
"org.gtk.Actions", NULL,
impl->object_path, NULL,
diff --git a/gio/gasyncresult.h b/gio/gasyncresult.h
index 1614586..ade63c4 100644
--- a/gio/gasyncresult.h
+++ b/gio/gasyncresult.h
@@ -59,8 +59,8 @@
/* Virtual Table */
- gpointer (* get_user_data) (GAsyncResult *async_result);
- GObject * (* get_source_object) (GAsyncResult *async_result);
+ gpointer (* get_user_data) (GAsyncResult *res);
+ GObject * (* get_source_object) (GAsyncResult *res);
};
GType g_async_result_get_type (void) G_GNUC_CONST;
diff --git a/gio/gbufferedinputstream.c b/gio/gbufferedinputstream.c
index f79787c..711c8d3 100644
--- a/gio/gbufferedinputstream.c
+++ b/gio/gbufferedinputstream.c
@@ -360,7 +360,7 @@
* g_buffered_input_stream_fill:
* @stream: a #GBufferedInputStream
* @count: the number of bytes that will be read from the stream
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: location to store the error occuring, or %NULL to ignore
*
* Tries to read @count bytes from the stream into the buffer.
@@ -447,9 +447,9 @@
* @count: the number of bytes that will be read from the stream
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request
- * @cancellable: optional #GCancellable object
- * @callback: a #GAsyncReadyCallback
- * @user_data: a #gpointer
+ * @cancellable: (allow-none): optional #GCancellable object
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): a #gpointer
*
* Reads data into @stream's buffer asynchronously, up to @count size.
* @io_priority can be used to prioritize reads. For the synchronous
@@ -602,13 +602,14 @@
/**
* g_buffered_input_stream_peek_buffer:
* @stream: a #GBufferedInputStream
- * @count: a #gsize to get the number of bytes available in the buffer
+ * @count: (out): a #gsize to get the number of bytes available in the buffer
*
* Returns the buffer with the currently available bytes. The returned
* buffer must not be modified and will become invalid when reading from
* the stream or filling the buffer.
*
- * Returns: read-only buffer
+ * Returns: (array length=count) (element-type guint8) (transfer none):
+ * read-only buffer
*/
const void*
g_buffered_input_stream_peek_buffer (GBufferedInputStream *stream,
@@ -839,7 +840,7 @@
/**
* g_buffered_input_stream_read_byte:
* @stream: a #GBufferedInputStream
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: location to store the error occuring, or %NULL to ignore
*
* Tries to read a single byte from the stream or the buffer. Will block
diff --git a/gio/gcancellable.c b/gio/gcancellable.c
index 65e15bc..c37baff 100644
--- a/gio/gcancellable.c
+++ b/gio/gcancellable.c
@@ -288,7 +288,7 @@
* @cancellable: a #GCancellable object
*
* Pushes @cancellable onto the cancellable stack. The current
- * cancllable can then be recieved using g_cancellable_get_current().
+ * cancellable can then be recieved using g_cancellable_get_current().
*
* This is useful when implementing cancellable operations in
* code that does not allow you to pass down the cancellable object.
@@ -852,7 +852,7 @@
};
/**
- * g_cancellable_source_new:
+ * g_cancellable_source_new: (skip)
* @cancellable: a #GCancellable, or %NULL
*
* Creates a source that triggers if @cancellable is cancelled and
@@ -863,7 +863,7 @@
* For convenience, you can call this with a %NULL #GCancellable,
* in which case the source will never trigger.
*
- * Return value: the new #GSource.
+ * Return value: (transfer full): the new #GSource.
*
* Since: 2.28
*/
diff --git a/gio/gcontenttype.c b/gio/gcontenttype.c
index dfbe868..3856a2d 100644
--- a/gio/gcontenttype.c
+++ b/gio/gcontenttype.c
@@ -1651,8 +1651,8 @@
* This function is useful in the implementation of
* g_mount_guess_content_type().
*
- * Returns: (transfer full): an %NULL-terminated array of zero or more content types,
- * or %NULL. Free with g_strfreev()
+ * Returns: (transfer full) (array zero-terminated=1): an %NULL-terminated
+ * array of zero or more content types, or %NULL. Free with g_strfreev()
*
* Since: 2.18
*/
diff --git a/gio/gconverter.c b/gio/gconverter.c
index 74e90c2..1dcf6aa 100644
--- a/gio/gconverter.c
+++ b/gio/gconverter.c
@@ -54,13 +54,14 @@
/**
* g_converter_convert:
* @converter: a #GConverter.
- * @inbuf: the buffer containing the data to convert.
+ * @inbuf: (array length=inbuf_size) (element-type guint8): the buffer
+ * containing the data to convert.
* @inbuf_size: the number of bytes in @inbuf
* @outbuf: a buffer to write converted data in.
* @outbuf_size: the number of bytes in @outbuf, must be at least one
* @flags: a #GConvertFlags controlling the conversion details
- * @bytes_read: will be set to the number of bytes read from @inbuf on success
- * @bytes_written: will be set to the number of bytes written to @outbuf on success
+ * @bytes_read: (out): will be set to the number of bytes read from @inbuf on success
+ * @bytes_written: (out): will be set to the number of bytes written to @outbuf on success
* @error: location to store the error occuring, or %NULL to ignore
*
* This is the main operation used when converting data. It is to be called
diff --git a/gio/gdatainputstream.c b/gio/gdatainputstream.c
index 7a7af9a..2ab6bd6 100644
--- a/gio/gdatainputstream.c
+++ b/gio/gdatainputstream.c
@@ -325,7 +325,7 @@
/**
* g_data_input_stream_read_byte:
* @stream: a given #GDataInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads an unsigned 8-bit/1-byte value from @stream.
@@ -352,7 +352,7 @@
/**
* g_data_input_stream_read_int16:
* @stream: a given #GDataInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads a 16-bit/2-byte value from @stream.
@@ -396,7 +396,7 @@
/**
* g_data_input_stream_read_uint16:
* @stream: a given #GDataInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads an unsigned 16-bit/2-byte value from @stream.
@@ -440,7 +440,7 @@
/**
* g_data_input_stream_read_int32:
* @stream: a given #GDataInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads a signed 32-bit/4-byte value from @stream.
@@ -488,7 +488,7 @@
/**
* g_data_input_stream_read_uint32:
* @stream: a given #GDataInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads an unsigned 32-bit/4-byte value from @stream.
@@ -536,7 +536,7 @@
/**
* g_data_input_stream_read_int64:
* @stream: a given #GDataInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads a 64-bit/8-byte value from @stream.
@@ -584,7 +584,7 @@
/**
* g_data_input_stream_read_uint64:
* @stream: a given #GDataInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads an unsigned 64-bit/8-byte value from @stream.
@@ -730,8 +730,8 @@
/**
* g_data_input_stream_read_line:
* @stream: a given #GDataInputStream.
- * @length: a #gsize to get the length of the data read in.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @length: (out): a #gsize to get the length of the data read in.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads a line from the data input stream.
@@ -740,10 +740,11 @@
* triggering the cancellable object from another thread. If the operation
* was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
*
- * Returns: a string with the line that was read in (without the newlines).
- * Set @length to a #gsize to get the length of the read line.
- * On an error, it will return %NULL and @error will be set. If there's no
- * content to read, it will still return %NULL, but @error won't be set.
+ * Returns: (transfer full): a string with the line that was read in
+ * (without the newlines). Set @length to a #gsize to get the
+ * length of the read line. On an error, it will return %NULL and
+ * @error will be set. If there's no content to read, it will
+ * still return %NULL, but @error won't be set.
**/
char *
g_data_input_stream_read_line (GDataInputStream *stream,
@@ -852,8 +853,8 @@
* g_data_input_stream_read_until:
* @stream: a given #GDataInputStream.
* @stop_chars: characters to terminate the read.
- * @length: a #gsize to get the length of the data read in.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @length: (out): a #gsize to get the length of the data read in.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Reads a string from the data input stream, up to the first
@@ -868,9 +869,10 @@
* g_data_input_stream_read_upto() instead, but note that that function
* does not consume the stop character.
*
- * Returns: a string with the data that was read before encountering
- * any of the stop characters. Set @length to a #gsize to get the length
- * of the string. This function will return %NULL on an error.
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error.
*/
char *
g_data_input_stream_read_until (GDataInputStream *stream,
@@ -1099,9 +1101,9 @@
* @stream: a given #GDataInputStream.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied.
- * @user_data: the data to pass to callback function.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied.
+ * @user_data: (closure): the data to pass to callback function.
*
* The asynchronous version of g_data_input_stream_read_line(). It is
* an error to have two outstanding calls to this function.
@@ -1133,9 +1135,9 @@
* @stop_chars: characters to terminate the read.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied.
- * @user_data: the data to pass to callback function.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied.
+ * @user_data: (closure): the data to pass to callback function.
*
* The asynchronous version of g_data_input_stream_read_until().
* It is an error to have two outstanding calls to this function.
@@ -1176,16 +1178,17 @@
* g_data_input_stream_read_line_finish:
* @stream: a given #GDataInputStream.
* @result: the #GAsyncResult that was provided to the callback.
- * @length: a #gsize to get the length of the data read in.
+ * @length: (out): a #gsize to get the length of the data read in.
* @error: #GError for error reporting.
*
* Finish an asynchronous call started by
* g_data_input_stream_read_line_async().
*
- * Returns: a string with the line that was read in (without the newlines).
- * Set @length to a #gsize to get the length of the read line.
- * On an error, it will return %NULL and @error will be set. If there's no
- * content to read, it will still return %NULL, but @error won't be set.
+ * Returns: (transfer full): a string with the line that was read in
+ * (without the newlines). Set @length to a #gsize to get the
+ * length of the read line. On an error, it will return %NULL and
+ * @error will be set. If there's no content to read, it will
+ * still return %NULL, but @error won't be set.
*
* Since: 2.20
*/
@@ -1206,7 +1209,7 @@
* g_data_input_stream_read_until_finish:
* @stream: a given #GDataInputStream.
* @result: the #GAsyncResult that was provided to the callback.
- * @length: a #gsize to get the length of the data read in.
+ * @length: (out): a #gsize to get the length of the data read in.
* @error: #GError for error reporting.
*
* Finish an asynchronous call started by
@@ -1214,9 +1217,10 @@
*
* Since: 2.20
*
- * Returns: a string with the data that was read before encountering
- * any of the stop characters. Set @length to a #gsize to get the length
- * of the string. This function will return %NULL on an error.
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error.
*/
gchar *
g_data_input_stream_read_until_finish (GDataInputStream *stream,
@@ -1237,8 +1241,8 @@
* @stop_chars: characters to terminate the read
* @stop_chars_len: length of @stop_chars. May be -1 if @stop_chars is
* nul-terminated
- * @length: a #gsize to get the length of the data read in
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @length: (out): a #gsize to get the length of the data read in
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: #GError for error reporting
*
* Reads a string from the data input stream, up to the first
@@ -1252,9 +1256,10 @@
* Note that @stop_chars may contain '\0' if @stop_chars_len is
* specified.
*
- * Returns: a string with the data that was read before encountering
- * any of the stop characters. Set @length to a #gsize to get the length
- * of the string. This function will return %NULL on an error
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error
*
* Since: 2.24
*/
@@ -1330,9 +1335,9 @@
* nul-terminated
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* The asynchronous version of g_data_input_stream_read_upto().
* It is an error to have two outstanding calls to this function.
@@ -1373,7 +1378,7 @@
* g_data_input_stream_read_upto_finish:
* @stream: a #GDataInputStream
* @result: the #GAsyncResult that was provided to the callback
- * @length: a #gsize to get the length of the data read in
+ * @length: (out): a #gsize to get the length of the data read in
* @error: #GError for error reporting
*
* Finish an asynchronous call started by
@@ -1383,9 +1388,10 @@
* stop character. You have to use g_data_input_stream_read_byte() to
* get it before calling g_data_input_stream_read_upto_async() again.
*
- * Returns: a string with the data that was read before encountering
- * any of the stop characters. Set @length to a #gsize to get the length
- * of the string. This function will return %NULL on an error.
+ * Returns: (transfer full): a string with the data that was read
+ * before encountering any of the stop characters. Set @length to
+ * a #gsize to get the length of the string. This function will
+ * return %NULL on an error.
*
* Since: 2.24
*/
diff --git a/gio/gdataoutputstream.c b/gio/gdataoutputstream.c
index b700523..e03003b 100644
--- a/gio/gdataoutputstream.c
+++ b/gio/gdataoutputstream.c
@@ -210,7 +210,7 @@
* g_data_output_stream_put_byte:
* @stream: a #GDataOutputStream.
* @data: a #guchar.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts a byte into the output stream.
@@ -237,7 +237,7 @@
* g_data_output_stream_put_int16:
* @stream: a #GDataOutputStream.
* @data: a #gint16.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts a signed 16-bit integer into the output stream.
@@ -277,7 +277,7 @@
* g_data_output_stream_put_uint16:
* @stream: a #GDataOutputStream.
* @data: a #guint16.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts an unsigned 16-bit integer into the output stream.
@@ -317,7 +317,7 @@
* g_data_output_stream_put_int32:
* @stream: a #GDataOutputStream.
* @data: a #gint32.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts a signed 32-bit integer into the output stream.
@@ -357,7 +357,7 @@
* g_data_output_stream_put_uint32:
* @stream: a #GDataOutputStream.
* @data: a #guint32.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts an unsigned 32-bit integer into the stream.
@@ -397,7 +397,7 @@
* g_data_output_stream_put_int64:
* @stream: a #GDataOutputStream.
* @data: a #gint64.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts a signed 64-bit integer into the stream.
@@ -437,7 +437,7 @@
* g_data_output_stream_put_uint64:
* @stream: a #GDataOutputStream.
* @data: a #guint64.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts an unsigned 64-bit integer into the stream.
@@ -477,7 +477,7 @@
* g_data_output_stream_put_string:
* @stream: a #GDataOutputStream.
* @str: a string.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Puts a string into the output stream.
diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c
index 7c6a2d0..809f976 100644
--- a/gio/gdbusconnection.c
+++ b/gio/gdbusconnection.c
@@ -1452,7 +1452,8 @@
if (out_serial != NULL)
*out_serial = serial_to_use;
- g_dbus_message_set_serial (message, serial_to_use);
+ if (!(flags & G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL))
+ g_dbus_message_set_serial (message, serial_to_use);
g_dbus_message_lock (message);
_g_dbus_worker_send_message (connection->worker,
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index 43804a4..5f8f1f4 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -430,6 +430,7 @@
gint num_writes_pending;
guint64 write_num_messages_written;
GList *write_pending_flushes;
+ gboolean flush_pending;
};
/* ---------------------------------------------------------------------------------------------------- */
@@ -1155,6 +1156,12 @@
if (error != NULL)
g_error_free (error);
+ /* Make sure we tell folks that we don't have additional
+ flushes pending */
+ g_mutex_lock (data->worker->write_lock);
+ data->worker->flush_pending = FALSE;
+ g_mutex_unlock (data->worker->write_lock);
+
/* OK, cool, finally kick off the next write */
maybe_write_next_message (data->worker);
@@ -1207,6 +1214,10 @@
worker->write_pending_flushes = g_list_delete_link (worker->write_pending_flushes, l);
}
}
+ if (flushers != NULL)
+ {
+ worker->flush_pending = TRUE;
+ }
g_mutex_unlock (worker->write_lock);
if (flushers != NULL)
@@ -1341,7 +1352,7 @@
write_message_in_idle_cb (gpointer user_data)
{
GDBusWorker *worker = user_data;
- if (worker->num_writes_pending == 0)
+ if (worker->num_writes_pending == 0 && !worker->flush_pending)
maybe_write_next_message (worker);
return FALSE;
}
@@ -1424,6 +1435,7 @@
worker->stream = g_object_ref (stream);
worker->capabilities = capabilities;
worker->cancellable = g_cancellable_new ();
+ worker->flush_pending = FALSE;
worker->frozen = initially_frozen;
worker->received_messages_while_frozen = g_queue_new ();
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
index a7648c9..f557538 100644
--- a/gio/gdesktopappinfo.c
+++ b/gio/gdesktopappinfo.c
@@ -69,7 +69,8 @@
static void g_desktop_app_info_iface_init (GAppInfoIface *iface);
static GList * get_all_desktop_entries_for_mime_type (const char *base_mime_type,
const char **except,
- gboolean include_fallback);
+ gboolean include_fallback,
+ char **explicit_default);
static void mime_info_cache_reload (const char *dir);
static gboolean g_desktop_app_info_ensure_saved (GDesktopAppInfo *info,
GError **error);
@@ -107,6 +108,14 @@
/* FIXME: what about StartupWMClass ? */
};
+typedef enum {
+ UPDATE_MIME_NONE = 1 << 0,
+ UPDATE_MIME_SET_DEFAULT = 1 << 1,
+ UPDATE_MIME_SET_NON_DEFAULT = 1 << 2,
+ UPDATE_MIME_REMOVE = 1 << 3,
+ UPDATE_MIME_SET_LAST_USED = 1 << 4,
+} UpdateMimeFlags;
+
G_DEFINE_TYPE_WITH_CODE (GDesktopAppInfo, g_desktop_app_info, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (G_TYPE_APP_INFO,
g_desktop_app_info_iface_init))
@@ -871,18 +880,17 @@
}
static GList *
-uri_list_segment_to_files (GList *start,
- GList *end)
+create_files_for_uris (GList *uris)
{
GList *res;
- GFile *file;
+ GList *iter;
res = NULL;
- while (start != NULL && start != end)
+
+ for (iter = uris; iter; iter = iter->next)
{
- file = g_file_new_for_uri ((char *)start->data);
+ GFile *file = g_file_new_for_uri ((char *)iter->data);
res = g_list_prepend (res, file);
- start = start->next;
}
return g_list_reverse (res);
@@ -890,6 +898,8 @@
typedef struct
{
+ GSpawnChildSetupFunc user_setup;
+ gpointer user_setup_data;
char *display;
char *sn_id;
char *desktop_file;
@@ -915,18 +925,79 @@
g_snprintf (pid, 20, "%ld", (long)getpid ());
g_setenv ("GIO_LAUNCHED_DESKTOP_FILE_PID", pid, TRUE);
}
+
+ if (data->user_setup)
+ data->user_setup (data->user_setup_data);
}
+static void
+notify_desktop_launch (GDBusConnection *session_bus,
+ GDesktopAppInfo *info,
+ long pid,
+ const char *display,
+ const char *sn_id,
+ GList *uris)
+{
+ GDBusMessage *msg;
+ GVariantBuilder uri_variant;
+ GVariantBuilder extras_variant;
+ GList *iter;
+ const char *desktop_file_id;
+
+ if (session_bus == NULL)
+ return;
+
+ g_variant_builder_init (&uri_variant, G_VARIANT_TYPE ("as"));
+ for (iter = uris; iter; iter = iter->next)
+ g_variant_builder_add (&uri_variant, "s", iter->data);
+
+ g_variant_builder_init (&extras_variant, G_VARIANT_TYPE ("a{sv}"));
+ if (sn_id != NULL && g_utf8_validate (sn_id, -1, NULL))
+ g_variant_builder_add (&extras_variant, "{sv}",
+ "startup-id",
+ g_variant_new ("s",
+ sn_id));
+
+ if (info->filename)
+ desktop_file_id = info->filename;
+ else if (info->desktop_id)
+ desktop_file_id = info->desktop_id;
+ else
+ desktop_file_id = "";
+
+ msg = g_dbus_message_new_signal ("/org/gtk/gio/DesktopAppInfo",
+ "org.gtk.gio.DesktopAppInfo",
+ "Launched");
+ g_dbus_message_set_body (msg, g_variant_new ("(@aysxasa{sv})",
+ g_variant_new_bytestring (desktop_file_id),
+ display ? display : "",
+ (gint64)pid,
+ &uri_variant,
+ &extras_variant));
+ g_dbus_connection_send_message (session_bus,
+ msg, 0,
+ NULL,
+ NULL);
+ g_object_unref (msg);
+}
+
+#define _SPAWN_FLAGS_DEFAULT (G_SPAWN_SEARCH_PATH)
+
static gboolean
-g_desktop_app_info_launch_uris (GAppInfo *appinfo,
- GList *uris,
- GAppLaunchContext *launch_context,
- GError **error)
+_g_desktop_app_info_launch_uris_internal (GAppInfo *appinfo,
+ GList *uris,
+ GAppLaunchContext *launch_context,
+ GSpawnFlags spawn_flags,
+ GSpawnChildSetupFunc user_setup,
+ gpointer user_setup_data,
+ GDesktopAppLaunchCallback pid_callback,
+ gpointer pid_callback_data,
+ GError **error)
{
GDesktopAppInfo *info = G_DESKTOP_APP_INFO (appinfo);
+ GDBusConnection *session_bus;
gboolean completed = FALSE;
GList *old_uris;
- GList *launched_files;
char **argv;
int argc;
ChildSetupData data;
@@ -935,12 +1006,24 @@
argv = NULL;
+ session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+
do
{
+ GPid pid;
+ GList *launched_uris;
+ GList *iter;
+
old_uris = uris;
if (!expand_application_parameters (info, &uris,
&argc, &argv, error))
goto out;
+
+ /* Get the subset of URIs we're launching with this process */
+ launched_uris = NULL;
+ for (iter = old_uris; iter != NULL && iter != uris; iter = iter->next)
+ launched_uris = g_list_prepend (launched_uris, iter->data);
+ launched_uris = g_list_reverse (launched_uris);
if (info->terminal && !prepend_terminal_to_vector (&argc, &argv))
{
@@ -949,13 +1032,15 @@
goto out;
}
+ data.user_setup = user_setup;
+ data.user_setup_data = user_setup_data;
data.display = NULL;
data.sn_id = NULL;
data.desktop_file = info->filename;
if (launch_context)
{
- launched_files = uri_list_segment_to_files (old_uris, uris);
+ GList *launched_files = create_files_for_uris (launched_uris);
data.display = g_app_launch_context_get_display (launch_context,
appinfo,
@@ -972,10 +1057,10 @@
if (!g_spawn_async (info->path,
argv,
NULL,
- G_SPAWN_SEARCH_PATH,
+ spawn_flags,
child_setup,
&data,
- NULL,
+ &pid,
error))
{
if (data.sn_id)
@@ -983,18 +1068,36 @@
g_free (data.sn_id);
g_free (data.display);
+ g_list_free (launched_uris);
goto out;
}
+ if (pid_callback != NULL)
+ pid_callback (info, pid, pid_callback_data);
+
+ notify_desktop_launch (session_bus,
+ info,
+ pid,
+ data.display,
+ data.sn_id,
+ launched_uris);
+
g_free (data.sn_id);
g_free (data.display);
+ g_list_free (launched_uris);
g_strfreev (argv);
argv = NULL;
}
while (uris != NULL);
+ /* TODO - need to handle the process exiting immediately
+ * after launching an app. See http://bugzilla.gnome.org/606960
+ */
+ if (session_bus != NULL)
+ g_object_unref (session_bus);
+
completed = TRUE;
out:
@@ -1004,6 +1107,19 @@
}
static gboolean
+g_desktop_app_info_launch_uris (GAppInfo *appinfo,
+ GList *uris,
+ GAppLaunchContext *launch_context,
+ GError **error)
+{
+ return _g_desktop_app_info_launch_uris_internal (appinfo, uris,
+ launch_context,
+ _SPAWN_FLAGS_DEFAULT,
+ NULL, NULL, NULL, NULL,
+ error);
+}
+
+static gboolean
g_desktop_app_info_supports_uris (GAppInfo *appinfo)
{
GDesktopAppInfo *info = G_DESKTOP_APP_INFO (appinfo);
@@ -1051,6 +1167,56 @@
return res;
}
+/**
+ * g_desktop_app_info_launch_uris_as_manager:
+ * @appinfo: a #GDesktopAppInfo
+ * @uris: (element-type utf8): List of URIs
+ * @launch_context: a #GAppLaunchContext
+ * @spawn_flags: #GSpawnFlags, used for each process
+ * @user_setup: (scope call): a #GSpawnChildSetupFunc, used once for
+ * each process.
+ * @user_setup_data: (closure user_setup): User data for @user_setup
+ * @pid_callback: (scope call): Callback for child processes
+ * @pid_callback_data: (closure pid_callback): User data for @callback
+ * @error: a #GError
+ *
+ * This function performs the equivalent of g_app_info_launch_uris(),
+ * but is intended primarily for operating system components that
+ * launch applications. Ordinary applications should use
+ * g_app_info_launch_uris().
+ *
+ * In contrast to g_app_info_launch_uris(), all processes created will
+ * always be run directly as children as if by the UNIX fork()/exec()
+ * calls.
+ *
+ * This guarantee allows additional control over the exact environment
+ * of the child processes, which is provided via a setup function
+ * @setup, as well as the process identifier of each child process via
+ * @pid_callback. See g_spawn_async() for more information about the
+ * semantics of the @setup function.
+ */
+gboolean
+g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo,
+ GList *uris,
+ GAppLaunchContext *launch_context,
+ GSpawnFlags spawn_flags,
+ GSpawnChildSetupFunc user_setup,
+ gpointer user_setup_data,
+ GDesktopAppLaunchCallback pid_callback,
+ gpointer pid_callback_data,
+ GError **error)
+{
+ return _g_desktop_app_info_launch_uris_internal ((GAppInfo*)appinfo,
+ uris,
+ launch_context,
+ spawn_flags,
+ user_setup,
+ user_setup_data,
+ pid_callback,
+ pid_callback_data,
+ error);
+}
+
G_LOCK_DEFINE_STATIC (g_desktop_env);
static gchar *g_desktop_env = NULL;
@@ -1169,25 +1335,24 @@
static gboolean
update_mimeapps_list (const char *desktop_id,
- const char *content_type,
- gboolean add_as_default,
- gboolean add_non_default,
- gboolean remove,
+ const char *content_type,
+ UpdateMimeFlags flags,
GError **error)
{
- char *dirname, *filename;
+ char *dirname, *filename, *string;
GKeyFile *key_file;
- gboolean load_succeeded, res;
+ gboolean load_succeeded, res, explicit_default;
char **old_list, **list;
- GList *system_list, *l;
+ GList *system_list;
gsize length, data_size;
char *data;
int i, j, k;
char **content_types;
/* Don't add both at start and end */
- g_assert (!(add_as_default && add_non_default));
-
+ g_assert (!((flags & UPDATE_MIME_SET_DEFAULT) &&
+ (flags & UPDATE_MIME_SET_NON_DEFAULT)));
+
dirname = ensure_dir (APP_DIR, error);
if (!dirname)
return FALSE;
@@ -1211,9 +1376,57 @@
}
else
{
- content_types = g_key_file_get_keys (key_file, ADDED_ASSOCIATIONS_GROUP, NULL, NULL);
+ content_types = g_key_file_get_keys (key_file, DEFAULT_APPLICATIONS_GROUP, NULL, NULL);
}
+ explicit_default = FALSE;
+
+ for (k = 0; content_types && content_types[k]; k++)
+ {
+ /* set as default, if requested so */
+ string = g_key_file_get_string (key_file,
+ DEFAULT_APPLICATIONS_GROUP,
+ content_types[k],
+ NULL);
+
+ if (g_strcmp0 (string, desktop_id) != 0 &&
+ (flags & UPDATE_MIME_SET_DEFAULT))
+ {
+ g_free (string);
+ string = g_strdup (desktop_id);
+
+ /* add in the non-default list too, if it's not already there */
+ flags |= UPDATE_MIME_SET_NON_DEFAULT;
+ }
+
+ if (string == NULL || desktop_id == NULL)
+ g_key_file_remove_key (key_file,
+ DEFAULT_APPLICATIONS_GROUP,
+ content_types[k],
+ NULL);
+ else
+ {
+ g_key_file_set_string (key_file,
+ DEFAULT_APPLICATIONS_GROUP,
+ content_types[k],
+ string);
+
+ explicit_default = TRUE;
+ }
+
+ g_free (string);
+ }
+
+ if (content_type)
+ {
+ /* reuse the list from above */
+ }
+ else
+ {
+ g_strfreev (content_types);
+ content_types = g_key_file_get_keys (key_file, ADDED_ASSOCIATIONS_GROUP, NULL, NULL);
+ }
+
for (k = 0; content_types && content_types[k]; k++)
{
/* Add to the right place in the list */
@@ -1225,48 +1438,41 @@
list = g_new (char *, 1 + length + 1);
i = 0;
- if (add_as_default)
- list[i++] = g_strdup (desktop_id);
+
+ /* if we're adding a last-used hint, just put the application in front of the list */
+ if (flags & UPDATE_MIME_SET_LAST_USED)
+ {
+ /* avoid adding this again as non-default later */
+ if (flags & UPDATE_MIME_SET_NON_DEFAULT)
+ flags ^= UPDATE_MIME_SET_NON_DEFAULT;
+
+ list[i++] = g_strdup (desktop_id);
+ }
+
if (old_list)
{
for (j = 0; old_list[j] != NULL; j++)
{
if (g_strcmp0 (old_list[j], desktop_id) != 0)
- list[i++] = g_strdup (old_list[j]);
- else if (add_non_default)
+ {
+ /* rewrite other entries if they're different from the new one */
+ list[i++] = g_strdup (old_list[j]);
+ }
+ else if (flags & UPDATE_MIME_SET_NON_DEFAULT)
{
- /* If adding as non-default, and it's already in,
- don't change order of desktop ids */
- add_non_default = FALSE;
+ /* we encountered an old entry which is equal to the one we're adding as non-default,
+ * don't change its position in the list.
+ */
+ flags ^= UPDATE_MIME_SET_NON_DEFAULT;
list[i++] = g_strdup (old_list[j]);
}
}
}
-
- if (add_non_default)
- {
- /* We're adding as non-default, and it wasn't already in the list,
- so we add at the end. But to avoid listing the app before the
- current system default (thus changing the default) we have to
- add the current list of (not yet listed) apps before it. */
- list[i] = NULL; /* Terminate current list so we can use it */
- system_list = get_all_desktop_entries_for_mime_type (content_type, (const char **)list, FALSE);
+ /* add it at the end of the list */
+ if (flags & UPDATE_MIME_SET_NON_DEFAULT)
+ list[i++] = g_strdup (desktop_id);
- list = g_renew (char *, list, 1 + length + g_list_length (system_list) + 1);
-
- for (l = system_list; l != NULL; l = l->next)
- {
- list[i++] = l->data; /* no strdup, taking ownership */
- if (g_strcmp0 (l->data, desktop_id) == 0)
- add_non_default = FALSE;
- }
- g_list_free (system_list);
-
- if (add_non_default)
- list[i++] = g_strdup (desktop_id);
- }
-
list[i] = NULL;
g_strfreev (old_list);
@@ -1277,10 +1483,32 @@
content_types[k],
NULL);
else
- g_key_file_set_string_list (key_file,
- ADDED_ASSOCIATIONS_GROUP,
- content_types[k],
- (const char * const *)list, i);
+ {
+ g_key_file_set_string_list (key_file,
+ ADDED_ASSOCIATIONS_GROUP,
+ content_types[k],
+ (const char * const *)list, i);
+
+ /* if we had no explicit default set, we should add the system default to the
+ * list, to avoid overriding it with applications from this list.
+ */
+ if (!explicit_default)
+ {
+ system_list = get_all_desktop_entries_for_mime_type (content_type, (const char **) list, FALSE, NULL);
+
+ if (system_list != NULL)
+ {
+ string = system_list->data;
+
+ g_key_file_set_string (key_file,
+ DEFAULT_APPLICATIONS_GROUP,
+ content_types[k],
+ string);
+ }
+
+ g_list_free_full (system_list, g_free);
+ }
+ }
g_strfreev (list);
}
@@ -1306,7 +1534,7 @@
list = g_new (char *, 1 + length + 1);
i = 0;
- if (remove)
+ if (flags & UPDATE_MIME_REMOVE)
list[i++] = g_strdup (desktop_id);
if (old_list)
{
@@ -1333,7 +1561,7 @@
g_strfreev (list);
}
-
+
g_strfreev (content_types);
data = g_key_file_to_data (key_file, &data_size, error);
@@ -1350,6 +1578,23 @@
}
static gboolean
+g_desktop_app_info_set_as_last_used_for_type (GAppInfo *appinfo,
+ const char *content_type,
+ GError **error)
+{
+ GDesktopAppInfo *info = G_DESKTOP_APP_INFO (appinfo);
+
+ if (!g_desktop_app_info_ensure_saved (info, error))
+ return FALSE;
+
+ /* both add support for the content type and set as last used */
+ return update_mimeapps_list (info->desktop_id, content_type,
+ UPDATE_MIME_SET_NON_DEFAULT |
+ UPDATE_MIME_SET_LAST_USED,
+ error);
+}
+
+static gboolean
g_desktop_app_info_set_as_default_for_type (GAppInfo *appinfo,
const char *content_type,
GError **error)
@@ -1359,7 +1604,9 @@
if (!g_desktop_app_info_ensure_saved (info, error))
return FALSE;
- return update_mimeapps_list (info->desktop_id, content_type, TRUE, FALSE, FALSE, error);
+ return update_mimeapps_list (info->desktop_id, content_type,
+ UPDATE_MIME_SET_DEFAULT,
+ error);
}
static void
@@ -1476,7 +1723,9 @@
if (!g_desktop_app_info_ensure_saved (G_DESKTOP_APP_INFO (info), error))
return FALSE;
- return update_mimeapps_list (info->desktop_id, content_type, FALSE, TRUE, FALSE, error);
+ return update_mimeapps_list (info->desktop_id, content_type,
+ UPDATE_MIME_SET_NON_DEFAULT,
+ error);
}
static gboolean
@@ -1495,7 +1744,9 @@
if (!g_desktop_app_info_ensure_saved (G_DESKTOP_APP_INFO (info), error))
return FALSE;
- return update_mimeapps_list (info->desktop_id, content_type, FALSE, FALSE, TRUE, error);
+ return update_mimeapps_list (info->desktop_id, content_type,
+ UPDATE_MIME_REMOVE,
+ error);
}
static gboolean
@@ -1616,7 +1867,9 @@
{
if (g_remove (info->filename) == 0)
{
- update_mimeapps_list (info->desktop_id, NULL, FALSE, FALSE, FALSE, NULL);
+ update_mimeapps_list (info->desktop_id, NULL,
+ UPDATE_MIME_NONE,
+ NULL);
g_free (info->filename);
info->filename = NULL;
@@ -1709,6 +1962,7 @@
iface->do_delete = g_desktop_app_info_delete;
iface->get_commandline = g_desktop_app_info_get_commandline;
iface->get_display_name = g_desktop_app_info_get_display_name;
+ iface->set_as_last_used_for_type = g_desktop_app_info_set_as_last_used_for_type;
}
static gboolean
@@ -1731,6 +1985,9 @@
* Gets a list of recommended #GAppInfos for a given content type, i.e.
* those applications which claim to support the given content type exactly,
* and not by MIME type subclassing.
+ * Note that the first application of the list is the last used one, i.e.
+ * the last one for which #g_app_info_set_as_last_used_for_type has been
+ * called.
*
* Returns: (element-type GAppInfo) (transfer full): #GList of #GAppInfos
* for given @content_type or %NULL on error.
@@ -1746,7 +2003,7 @@
g_return_val_if_fail (content_type != NULL, NULL);
- desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, FALSE);
+ desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, FALSE, NULL);
infos = NULL;
for (l = desktop_entries; l != NULL; l = l->next)
@@ -1765,7 +2022,7 @@
}
g_list_free (desktop_entries);
-
+
return g_list_reverse (infos);
}
@@ -1791,7 +2048,7 @@
g_return_val_if_fail (content_type != NULL, NULL);
- desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE);
+ desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE, NULL);
recommended_infos = g_app_info_get_recommended_for_type (content_type);
infos = NULL;
@@ -1831,13 +2088,25 @@
{
GList *desktop_entries, *l;
GList *infos;
+ char *user_default = NULL;
GDesktopAppInfo *info;
g_return_val_if_fail (content_type != NULL, NULL);
- desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE);
-
+ desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE, &user_default);
infos = NULL;
+
+ /* put the user default in front of the list, for compatibility */
+ if (user_default != NULL)
+ {
+ info = g_desktop_app_info_new (user_default);
+
+ if (info != NULL)
+ infos = g_list_prepend (infos, info);
+ }
+
+ g_free (user_default);
+
for (l = desktop_entries; l != NULL; l = l->next)
{
char *desktop_entry = l->data;
@@ -1872,7 +2141,9 @@
void
g_app_info_reset_type_associations (const char *content_type)
{
- update_mimeapps_list (NULL, content_type, FALSE, FALSE, FALSE, NULL);
+ update_mimeapps_list (NULL, content_type,
+ UPDATE_MIME_NONE,
+ NULL);
}
/**
@@ -1883,20 +2154,48 @@
*
* Gets the #GAppInfo that corresponds to a given content type.
*
- * Returns: #GAppInfo for given @content_type or %NULL on error.
+ * Returns: (transfer full): #GAppInfo for given @content_type or
+ * %NULL on error.
**/
GAppInfo *
g_app_info_get_default_for_type (const char *content_type,
gboolean must_support_uris)
{
GList *desktop_entries, *l;
+ char *user_default = NULL;
GAppInfo *info;
g_return_val_if_fail (content_type != NULL, NULL);
- desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE);
+ desktop_entries = get_all_desktop_entries_for_mime_type (content_type, NULL, TRUE, &user_default);
info = NULL;
+
+ if (user_default != NULL)
+ {
+ info = (GAppInfo *) g_desktop_app_info_new (user_default);
+
+ if (info)
+ {
+ if (must_support_uris && !g_app_info_supports_uris (info))
+ {
+ g_object_unref (info);
+ info = NULL;
+ }
+ }
+ }
+
+ g_free (user_default);
+
+ if (info != NULL)
+ {
+ g_list_free_full (desktop_entries, g_free);
+ return info;
+ }
+
+ /* pick the first from the other list that matches our URI
+ * requirements.
+ */
for (l = desktop_entries; l != NULL; l = l->next)
{
char *desktop_entry = l->data;
@@ -1914,9 +2213,8 @@
}
}
- g_list_foreach (desktop_entries, (GFunc)g_free, NULL);
- g_list_free (desktop_entries);
-
+ g_list_free_full (desktop_entries, g_free);
+
return info;
}
@@ -1929,7 +2227,7 @@
* of the URI, up to but not including the ':', e.g. "http",
* "ftp" or "sip".
*
- * Returns: #GAppInfo for given @uri_scheme or %NULL on error.
+ * Returns: (transfer full): #GAppInfo for given @uri_scheme or %NULL on error.
**/
GAppInfo *
g_app_info_get_default_for_uri_scheme (const char *uri_scheme)
@@ -2066,6 +2364,7 @@
GHashTable *defaults_list_map;
GHashTable *mimeapps_list_added_map;
GHashTable *mimeapps_list_removed_map;
+ GHashTable *mimeapps_list_defaults_map;
time_t mime_info_cache_timestamp;
time_t defaults_list_timestamp;
time_t mimeapps_list_timestamp;
@@ -2318,6 +2617,7 @@
gchar *filename, **mime_types;
char *unaliased_type;
char **desktop_file_ids;
+ char *desktop_id;
int i;
struct stat buf;
@@ -2339,6 +2639,11 @@
dir->mimeapps_list_removed_map = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, (GDestroyNotify)g_strfreev);
+ if (dir->mimeapps_list_defaults_map != NULL)
+ g_hash_table_destroy (dir->mimeapps_list_defaults_map);
+ dir->mimeapps_list_defaults_map = g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, g_free);
+
key_file = g_key_file_new ();
filename = g_build_filename (dir->path, "mimeapps.list", NULL);
@@ -2403,6 +2708,28 @@
g_strfreev (mime_types);
}
+ mime_types = g_key_file_get_keys (key_file, DEFAULT_APPLICATIONS_GROUP,
+ NULL, NULL);
+ if (mime_types != NULL)
+ {
+ for (i = 0; mime_types[i] != NULL; i++)
+ {
+ desktop_id = g_key_file_get_string (key_file,
+ DEFAULT_APPLICATIONS_GROUP,
+ mime_types[i],
+ NULL);
+ if (desktop_id == NULL)
+ continue;
+
+ unaliased_type = _g_unix_content_type_unalias (mime_types[i]);
+ g_hash_table_replace (dir->mimeapps_list_defaults_map,
+ unaliased_type,
+ desktop_id);
+ }
+
+ g_strfreev (mime_types);
+ }
+
g_key_file_free (key_file);
return;
@@ -2458,7 +2785,13 @@
g_hash_table_destroy (dir->mimeapps_list_removed_map);
dir->mimeapps_list_removed_map = NULL;
}
-
+
+ if (dir->mimeapps_list_defaults_map != NULL)
+ {
+ g_hash_table_destroy (dir->mimeapps_list_defaults_map);
+ dir->mimeapps_list_defaults_map = NULL;
+ }
+
g_free (dir);
}
@@ -2635,13 +2968,15 @@
* to handle @mime_type.
*/
static GList *
-get_all_desktop_entries_for_mime_type (const char *base_mime_type,
+get_all_desktop_entries_for_mime_type (const char *base_mime_type,
const char **except,
- gboolean include_fallback)
+ gboolean include_fallback,
+ char **explicit_default)
{
GList *desktop_entries, *removed_entries, *list, *dir_list, *tmp;
MimeInfoCacheDir *dir;
- char *mime_type;
+ char *mime_type, *default_entry = NULL;
+ const char *entry;
char **mime_types;
char **default_entries;
char **removed_associations;
@@ -2696,17 +3031,27 @@
{
mime_type = mime_types[i];
- /* Go through all apps listed as defaults */
+ /* Go through all apps listed in user and system dirs */
for (dir_list = mime_info_cache->dirs;
dir_list != NULL;
dir_list = dir_list->next)
{
dir = dir_list->data;
- /* First added associations from mimeapps.list */
+ /* Pick the explicit default application */
+ entry = g_hash_table_lookup (dir->mimeapps_list_defaults_map, mime_type);
+
+ if (entry != NULL)
+ {
+ /* Save the default entry if it's the first one we encounter */
+ if (default_entry == NULL)
+ default_entry = g_strdup (entry);
+ }
+
+ /* Then added associations from mimeapps.list */
default_entries = g_hash_table_lookup (dir->mimeapps_list_added_map, mime_type);
for (j = 0; default_entries != NULL && default_entries[j] != NULL; j++)
- desktop_entries = append_desktop_entry (desktop_entries, default_entries[j], removed_entries);
+ desktop_entries = append_desktop_entry (desktop_entries, default_entries[j], removed_entries);
/* Then removed associations from mimeapps.list */
removed_associations = g_hash_table_lookup (dir->mimeapps_list_removed_map, mime_type);
@@ -2736,9 +3081,14 @@
g_strfreev (mime_types);
+ if (explicit_default != NULL)
+ *explicit_default = default_entry;
+ else
+ g_free (default_entry);
+
g_list_foreach (removed_entries, (GFunc)g_free, NULL);
g_list_free (removed_entries);
-
+
desktop_entries = g_list_reverse (desktop_entries);
return desktop_entries;
diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h
index 6be9369..162cbb6 100644
--- a/gio/gdesktopappinfo.h
+++ b/gio/gdesktopappinfo.h
@@ -93,6 +93,30 @@
GAppInfo *g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup,
const char *uri_scheme);
+/**
+ * GDesktopAppLaunchCallback:
+ * @appinfo: a #GDesktopAppInfo
+ * @pid: Process identifier
+ * @user_data: User data
+ *
+ * During invocation, g_desktop_app_info_launch_uris_as_manager() may
+ * create one or more child processes. This callback is invoked once
+ * for each, providing the process ID.
+ */
+typedef void (*GDesktopAppLaunchCallback) (GDesktopAppInfo *appinfo,
+ GPid pid,
+ gpointer user_data);
+
+gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo,
+ GList *uris,
+ GAppLaunchContext *launch_context,
+ GSpawnFlags spawn_flags,
+ GSpawnChildSetupFunc user_setup,
+ gpointer user_setup_data,
+ GDesktopAppLaunchCallback pid_callback,
+ gpointer pid_callback_data,
+ GError **error);
+
#endif /* G_DISABLE_DEPRECATED */
G_END_DECLS
diff --git a/gio/gdrive.c b/gio/gdrive.c
index 5d6efdc..b4a6164 100644
--- a/gio/gdrive.c
+++ b/gio/gdrive.c
@@ -331,8 +331,8 @@
* g_drive_eject:
* @drive: a #GDrive.
* @flags: flags affecting the unmount if required for eject
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data to pass to @callback
*
* Asynchronously ejects a drive.
@@ -407,9 +407,10 @@
* g_drive_eject_with_operation:
* @drive: a #GDrive.
* @flags: flags affecting the unmount if required for eject
- * @mount_operation: a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data passed to @callback.
*
* Ejects a drive. This is an asynchronous operation, and is
@@ -491,8 +492,8 @@
/**
* g_drive_poll_for_media:
* @drive: a #GDrive.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data to pass to @callback
*
* Asynchronously polls @drive to see if media has been inserted or removed.
@@ -594,8 +595,9 @@
* Use g_drive_get_identifer() to obtain the identifiers
* themselves.
*
- * Returns: (transfer full): a %NULL-terminated array of strings containing
- * kinds of identifiers. Use g_strfreev() to free.
+ * Returns: (transfer full) (array zero-terminated=1): a %NULL-terminated
+ * array of strings containing kinds of identifiers. Use g_strfreev()
+ * to free.
*/
char **
g_drive_enumerate_identifiers (GDrive *drive)
@@ -691,9 +693,10 @@
* g_drive_start:
* @drive: a #GDrive.
* @flags: flags affecting the start operation.
- * @mount_operation: a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data to pass to @callback
*
* Asynchronously starts a drive.
@@ -793,9 +796,10 @@
* g_drive_stop:
* @drive: a #GDrive.
* @flags: flags affecting the unmount if required for stopping.
- * @mount_operation: a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data to pass to @callback
*
* Asynchronously stops a drive.
diff --git a/gio/gdummytlsbackend.c b/gio/gdummytlsbackend.c
index fd55aa9..f297f74 100644
--- a/gio/gdummytlsbackend.c
+++ b/gio/gdummytlsbackend.c
@@ -92,10 +92,11 @@
{
PROP_CERTIFICATE_0,
- PROP_CERTIFICATE,
- PROP_CERTIFICATE_PEM,
- PROP_PRIVATE_KEY,
- PROP_PRIVATE_KEY_PEM
+ PROP_CERT_CERTIFICATE,
+ PROP_CERT_CERTIFICATE_PEM,
+ PROP_CERT_PRIVATE_KEY,
+ PROP_CERT_PRIVATE_KEY_PEM,
+ PROP_CERT_ISSUER
};
static void g_dummy_tls_certificate_initable_iface_init (GInitableIface *iface);
@@ -134,10 +135,11 @@
gobject_class->get_property = g_dummy_tls_certificate_get_property;
gobject_class->set_property = g_dummy_tls_certificate_set_property;
- g_object_class_override_property (gobject_class, PROP_CERTIFICATE, "certificate");
- g_object_class_override_property (gobject_class, PROP_CERTIFICATE_PEM, "certificate-pem");
- g_object_class_override_property (gobject_class, PROP_PRIVATE_KEY, "private-key");
- g_object_class_override_property (gobject_class, PROP_PRIVATE_KEY_PEM, "private-key-pem");
+ g_object_class_override_property (gobject_class, PROP_CERT_CERTIFICATE, "certificate");
+ g_object_class_override_property (gobject_class, PROP_CERT_CERTIFICATE_PEM, "certificate-pem");
+ g_object_class_override_property (gobject_class, PROP_CERT_PRIVATE_KEY, "private-key");
+ g_object_class_override_property (gobject_class, PROP_CERT_PRIVATE_KEY_PEM, "private-key-pem");
+ g_object_class_override_property (gobject_class, PROP_CERT_ISSUER, "issuer");
}
static void
@@ -150,7 +152,7 @@
GCancellable *cancellable,
GError **error)
{
- g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_MISC,
+ g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_UNAVAILABLE,
_("TLS support is not available"));
return FALSE;
}
@@ -181,14 +183,18 @@
{
PROP_CONNECTION_0,
- PROP_BASE_IO_STREAM,
- PROP_REQUIRE_CLOSE_NOTIFY,
- PROP_REHANDSHAKE_MODE,
- PROP_VALIDATION_FLAGS,
- PROP_SERVER_IDENTITY,
- PROP_USE_SSL3,
- PROP_ACCEPTED_CAS,
- PROP_AUTHENTICATION_MODE
+ PROP_CONN_BASE_IO_STREAM,
+ PROP_CONN_USE_SYSTEM_CERTDB,
+ PROP_CONN_REQUIRE_CLOSE_NOTIFY,
+ PROP_CONN_REHANDSHAKE_MODE,
+ PROP_CONN_CERTIFICATE,
+ PROP_CONN_PEER_CERTIFICATE,
+ PROP_CONN_PEER_CERTIFICATE_ERRORS,
+ PROP_CONN_VALIDATION_FLAGS,
+ PROP_CONN_SERVER_IDENTITY,
+ PROP_CONN_USE_SSL3,
+ PROP_CONN_ACCEPTED_CAS,
+ PROP_CONN_AUTHENTICATION_MODE
};
static void g_dummy_tls_connection_initable_iface_init (GInitableIface *iface);
@@ -240,15 +246,18 @@
*/
io_stream_class->close_fn = g_dummy_tls_connection_close;
- g_object_class_override_property (gobject_class, PROP_BASE_IO_STREAM, "base-io-stream");
- g_object_class_override_property (gobject_class, PROP_REQUIRE_CLOSE_NOTIFY, "require-close-notify");
- g_object_class_override_property (gobject_class, PROP_REHANDSHAKE_MODE, "rehandshake-mode");
- g_object_class_override_property (gobject_class, PROP_VALIDATION_FLAGS, "validation-flags");
- g_object_class_override_property (gobject_class, PROP_SERVER_IDENTITY, "server-identity");
- g_object_class_override_property (gobject_class, PROP_USE_SSL3, "use-ssl3");
- g_object_class_override_property (gobject_class, PROP_ACCEPTED_CAS, "accepted-cas");
- g_object_class_override_property (gobject_class, PROP_AUTHENTICATION_MODE, "authentication-mode");
-
+ g_object_class_override_property (gobject_class, PROP_CONN_BASE_IO_STREAM, "base-io-stream");
+ g_object_class_override_property (gobject_class, PROP_CONN_USE_SYSTEM_CERTDB, "use-system-certdb");
+ g_object_class_override_property (gobject_class, PROP_CONN_REQUIRE_CLOSE_NOTIFY, "require-close-notify");
+ g_object_class_override_property (gobject_class, PROP_CONN_REHANDSHAKE_MODE, "rehandshake-mode");
+ g_object_class_override_property (gobject_class, PROP_CONN_CERTIFICATE, "certificate");
+ g_object_class_override_property (gobject_class, PROP_CONN_PEER_CERTIFICATE, "peer-certificate");
+ g_object_class_override_property (gobject_class, PROP_CONN_PEER_CERTIFICATE_ERRORS, "peer-certificate-errors");
+ g_object_class_override_property (gobject_class, PROP_CONN_VALIDATION_FLAGS, "validation-flags");
+ g_object_class_override_property (gobject_class, PROP_CONN_SERVER_IDENTITY, "server-identity");
+ g_object_class_override_property (gobject_class, PROP_CONN_USE_SSL3, "use-ssl3");
+ g_object_class_override_property (gobject_class, PROP_CONN_ACCEPTED_CAS, "accepted-cas");
+ g_object_class_override_property (gobject_class, PROP_CONN_AUTHENTICATION_MODE, "authentication-mode");
}
static void
@@ -261,7 +270,7 @@
GCancellable *cancellable,
GError **error)
{
- g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_MISC,
+ g_set_error_literal (error, G_TLS_ERROR, G_TLS_ERROR_UNAVAILABLE,
_("TLS support is not available"));
return FALSE;
}
diff --git a/gio/gemblem.c b/gio/gemblem.c
index 68afbab..1df712b 100644
--- a/gio/gemblem.c
+++ b/gio/gemblem.c
@@ -220,8 +220,8 @@
*
* Gives back the icon from @emblem.
*
- * Returns: (transfer full): a #GIcon. The returned object belongs to the emblem
- * and should not be modified or freed.
+ * Returns: (transfer none): a #GIcon. The returned object belongs to
+ * the emblem and should not be modified or freed.
*
* Since: 2.18
*/
@@ -240,7 +240,7 @@
*
* Gets the origin of the emblem.
*
- * Returns: the origin of the emblem
+ * Returns: (transfer none): the origin of the emblem
*
* Since: 2.18
*/
diff --git a/gio/gemblemedicon.c b/gio/gemblemedicon.c
index 0364cba..6f7af0e 100644
--- a/gio/gemblemedicon.c
+++ b/gio/gemblemedicon.c
@@ -46,20 +46,19 @@
* of the emblems. See also #GEmblem for more information.
**/
-static void g_emblemed_icon_icon_iface_init (GIconIface *iface);
+enum {
+ PROP_GICON = 1,
+ NUM_PROPERTIES
+};
-struct _GEmblemedIcon
-{
- GObject parent_instance;
-
+struct _GEmblemedIconPrivate {
GIcon *icon;
GList *emblems;
};
-struct _GEmblemedIconClass
-{
- GObjectClass parent_class;
-};
+static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
+
+static void g_emblemed_icon_icon_iface_init (GIconIface *iface);
G_DEFINE_TYPE_WITH_CODE (GEmblemedIcon, g_emblemed_icon, G_TYPE_OBJECT,
G_IMPLEMENT_INTERFACE (G_TYPE_ICON,
@@ -73,23 +72,78 @@
emblemed = G_EMBLEMED_ICON (object);
- g_object_unref (emblemed->icon);
- g_list_foreach (emblemed->emblems, (GFunc) g_object_unref, NULL);
- g_list_free (emblemed->emblems);
+ g_object_unref (emblemed->priv->icon);
+ g_list_foreach (emblemed->priv->emblems, (GFunc) g_object_unref, NULL);
+ g_list_free (emblemed->priv->emblems);
(*G_OBJECT_CLASS (g_emblemed_icon_parent_class)->finalize) (object);
}
static void
+g_emblemed_icon_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GEmblemedIcon *self = G_EMBLEMED_ICON (object);
+
+ switch (property_id)
+ {
+ case PROP_GICON:
+ self->priv->icon = g_value_dup_object (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+g_emblemed_icon_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GEmblemedIcon *self = G_EMBLEMED_ICON (object);
+
+ switch (property_id)
+ {
+ case PROP_GICON:
+ g_value_set_object (value, self->priv->icon);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
g_emblemed_icon_class_init (GEmblemedIconClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
gobject_class->finalize = g_emblemed_icon_finalize;
+ gobject_class->set_property = g_emblemed_icon_set_property;
+ gobject_class->get_property = g_emblemed_icon_get_property;
+
+ properties[PROP_GICON] =
+ g_param_spec_object ("gicon",
+ P_("The base GIcon"),
+ P_("The GIcon to attach emblems to"),
+ G_TYPE_ICON,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (gobject_class, NUM_PROPERTIES, properties);
+
+ g_type_class_add_private (klass, sizeof (GEmblemedIconPrivate));
}
static void
g_emblemed_icon_init (GEmblemedIcon *emblemed)
{
+ emblemed->priv =
+ G_TYPE_INSTANCE_GET_PRIVATE (emblemed, G_TYPE_EMBLEMED_ICON,
+ GEmblemedIconPrivate);
}
/**
@@ -112,8 +166,9 @@
g_return_val_if_fail (G_IS_ICON (icon), NULL);
g_return_val_if_fail (!G_IS_EMBLEM (icon), NULL);
- emblemed = G_EMBLEMED_ICON (g_object_new (G_TYPE_EMBLEMED_ICON, NULL));
- emblemed->icon = g_object_ref (icon);
+ emblemed = G_EMBLEMED_ICON (g_object_new (G_TYPE_EMBLEMED_ICON,
+ "gicon", icon,
+ NULL));
if (emblem != NULL)
g_emblemed_icon_add_emblem (emblemed, emblem);
@@ -128,7 +183,7 @@
*
* Gets the main icon for @emblemed.
*
- * Returns: (transfer full): a #GIcon that is owned by @emblemed
+ * Returns: (transfer none): a #GIcon that is owned by @emblemed
*
* Since: 2.18
**/
@@ -137,7 +192,7 @@
{
g_return_val_if_fail (G_IS_EMBLEMED_ICON (emblemed), NULL);
- return emblemed->icon;
+ return emblemed->priv->icon;
}
/**
@@ -146,8 +201,8 @@
*
* Gets the list of emblems for the @icon.
*
- * Returns: (element-type utf8) (transfer none): a #GList of #GEmblem <!-- -->s that
- * is owned by @emblemed
+ * Returns: (element-type Gio.Emblem) (transfer none): a #GList of
+ * #GEmblem <!-- -->s that is owned by @emblemed
*
* Since: 2.18
**/
@@ -157,7 +212,27 @@
{
g_return_val_if_fail (G_IS_EMBLEMED_ICON (emblemed), NULL);
- return emblemed->emblems;
+ return emblemed->priv->emblems;
+}
+
+/**
+ * g_emblemed_icon_clear_emblems:
+ * @emblemed: a #GEmblemedIcon
+ *
+ * Removes all the emblems from @icon.
+ *
+ * Since: 2.28
+ **/
+void
+g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed)
+{
+ g_return_if_fail (G_IS_EMBLEMED_ICON (emblemed));
+
+ if (emblemed->priv->emblems == NULL)
+ return;
+
+ g_list_free_full (emblemed->priv->emblems, g_object_unref);
+ emblemed->priv->emblems = NULL;
}
static gint
@@ -193,8 +268,8 @@
g_return_if_fail (G_IS_EMBLEM (emblem));
g_object_ref (emblem);
- emblemed->emblems = g_list_insert_sorted (emblemed->emblems, emblem,
- (GCompareFunc) g_emblem_comp);
+ emblemed->priv->emblems = g_list_insert_sorted (emblemed->priv->emblems, emblem,
+ (GCompareFunc) g_emblem_comp);
}
static guint
@@ -202,9 +277,9 @@
{
GEmblemedIcon *emblemed = G_EMBLEMED_ICON (icon);
GList *list;
- guint hash = g_icon_hash (emblemed->icon);
+ guint hash = g_icon_hash (emblemed->priv->icon);
- for (list = emblemed->emblems; list != NULL; list = list->next)
+ for (list = emblemed->priv->emblems; list != NULL; list = list->next)
hash ^= g_icon_hash (G_ICON (list->data));
return hash;
@@ -218,11 +293,11 @@
GEmblemedIcon *emblemed2 = G_EMBLEMED_ICON (icon2);
GList *list1, *list2;
- if (!g_icon_equal (emblemed1->icon, emblemed2->icon))
+ if (!g_icon_equal (emblemed1->priv->icon, emblemed2->priv->icon))
return FALSE;
- list1 = emblemed1->emblems;
- list2 = emblemed2->emblems;
+ list1 = emblemed1->priv->emblems;
+ list2 = emblemed2->priv->emblems;
while (list1 && list2)
{
@@ -254,13 +329,13 @@
*out_version = 0;
- s = g_icon_to_string (emblemed_icon->icon);
+ s = g_icon_to_string (emblemed_icon->priv->icon);
if (s == NULL)
return FALSE;
g_ptr_array_add (tokens, s);
- for (l = emblemed_icon->emblems; l != NULL; l = l->next)
+ for (l = emblemed_icon->priv->emblems; l != NULL; l = l->next)
{
GIcon *emblem_icon = G_ICON (l->data);
@@ -306,8 +381,8 @@
}
emblemed_icon = g_object_new (G_TYPE_EMBLEMED_ICON, NULL);
- emblemed_icon->icon = g_icon_new_for_string (tokens[0], error);
- if (emblemed_icon->icon == NULL)
+ emblemed_icon->priv->icon = g_icon_new_for_string (tokens[0], error);
+ if (emblemed_icon->priv->icon == NULL)
goto fail;
for (n = 1; n < num_tokens; n++)
@@ -328,7 +403,7 @@
goto fail;
}
- emblemed_icon->emblems = g_list_append (emblemed_icon->emblems, emblem);
+ emblemed_icon->priv->emblems = g_list_append (emblemed_icon->priv->emblems, emblem);
}
return G_ICON (emblemed_icon);
diff --git a/gio/gemblemedicon.h b/gio/gemblemedicon.h
index 7a5dc4d..ded6928 100644
--- a/gio/gemblemedicon.h
+++ b/gio/gemblemedicon.h
@@ -47,6 +47,20 @@
**/
typedef struct _GEmblemedIcon GEmblemedIcon;
typedef struct _GEmblemedIconClass GEmblemedIconClass;
+typedef struct _GEmblemedIconPrivate GEmblemedIconPrivate;
+
+struct _GEmblemedIcon
+{
+ GObject parent_instance;
+
+ /*< private >*/
+ GEmblemedIconPrivate *priv;
+};
+
+struct _GEmblemedIconClass
+{
+ GObjectClass parent_class;
+};
GType g_emblemed_icon_get_type (void) G_GNUC_CONST;
@@ -56,6 +70,7 @@
GList *g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed);
void g_emblemed_icon_add_emblem (GEmblemedIcon *emblemed,
GEmblem *emblem);
+void g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed);
G_END_DECLS
diff --git a/gio/gfile.c b/gio/gfile.c
index 4cfec8f..da3477b 100644
--- a/gio/gfile.c
+++ b/gio/gfile.c
@@ -822,7 +822,7 @@
* @file: input #GFile.
* @attributes: an attribute query string.
* @flags: a set of #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting.
*
* Gets the requested information about the files in a directory. The result
@@ -884,9 +884,10 @@
* @flags: a set of #GFileQueryInfoFlags.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the
+ * request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously gets the requested information about the files in a directory. The result
* is a #GFileEnumerator object that will give out #GFileInfo objects for
@@ -957,7 +958,7 @@
/**
* g_file_query_exists:
* @file: input #GFile.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
*
* Utility function to check if a particular file exists. This is
* implemented using g_file_query_info() and as such does blocking I/O.
@@ -1007,7 +1008,7 @@
* g_file_query_file_type:
* @file: input #GFile.
* @flags: a set of #GFileQueryInfoFlags passed to g_file_query_info().
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
*
* Utility function to inspect the #GFileType of a file. This is
* implemented using g_file_query_info() and as such does blocking I/O.
@@ -1047,7 +1048,7 @@
* @file: input #GFile.
* @attributes: an attribute query string.
* @flags: a set of #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError.
*
* Gets the requested information about specified @file. The result
@@ -1113,9 +1114,9 @@
* @flags: a set of #GFileQueryInfoFlags.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously gets the requested information about specified @file. The result
* is a #GFileInfo object that contains key-value attributes (such as type or size
@@ -1187,7 +1188,7 @@
* g_file_query_filesystem_info:
* @file: input #GFile.
* @attributes: an attribute query string.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError.
*
* Similar to g_file_query_info(), but obtains information
@@ -1247,9 +1248,9 @@
* @attributes: an attribute query string.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously gets the requested information about the filesystem
* that the specified @file is on. The result is a #GFileInfo object
@@ -1320,7 +1321,7 @@
/**
* g_file_find_enclosing_mount:
* @file: input #GFile.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError.
*
* Gets a #GMount for the #GFile.
@@ -1367,9 +1368,9 @@
* @file: a #GFile
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously gets the mount for the file.
*
@@ -1435,7 +1436,7 @@
/**
* g_file_read:
* @file: #GFile to read.
- * @cancellable: a #GCancellable
+ * @cancellable: (allow-none): a #GCancellable
* @error: a #GError, or %NULL
*
* Opens a file for reading. The result is a #GFileInputStream that
@@ -1482,7 +1483,7 @@
* g_file_append_to:
* @file: input #GFile.
* @flags: a set of #GFileCreateFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Gets an output stream for appending data to the file. If
@@ -1536,7 +1537,7 @@
* g_file_create:
* @file: input #GFile.
* @flags: a set of #GFileCreateFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Creates a new file and returns an output stream for writing to it.
@@ -1596,7 +1597,7 @@
* current #GFile, or #NULL to ignore.
* @make_backup: %TRUE if a backup should be created.
* @flags: a set of #GFileCreateFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Returns an output stream for overwriting the file, possibly
@@ -1680,7 +1681,7 @@
/**
* g_file_open_readwrite:
* @file: #GFile to open
- * @cancellable: a #GCancellable
+ * @cancellable: (allow-none): a #GCancellable
* @error: a #GError, or %NULL
*
* Opens an existing file for reading and writing. The result is
@@ -1731,7 +1732,7 @@
* g_file_create_readwrite:
* @file: a #GFile
* @flags: a set of #GFileCreateFlags
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: return location for a #GError, or %NULL
*
* Creates a new file and returns a stream for reading and writing to it.
@@ -1794,7 +1795,7 @@
* current #GFile, or #NULL to ignore
* @make_backup: %TRUE if a backup should be created
* @flags: a set of #GFileCreateFlags
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: return location for a #GError, or %NULL
*
* Returns an output stream for overwriting the file in readwrite mode,
@@ -1846,9 +1847,9 @@
* @file: input #GFile
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously opens @file for reading.
*
@@ -1916,9 +1917,9 @@
* @flags: a set of #GFileCreateFlags.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously opens @file for appending.
*
@@ -1988,9 +1989,9 @@
* @flags: a set of #GFileCreateFlags.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously creates a new file and returns an output stream for writing to it.
* The file must not already exist.
@@ -2064,9 +2065,9 @@
* @flags: a set of #GFileCreateFlags.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously overwrites the file, replacing the contents, possibly
* creating a backup copy of the file first.
@@ -2141,9 +2142,9 @@
* @file: input #GFile.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously opens @file for reading and writing.
*
@@ -2216,9 +2217,9 @@
* @flags: a set of #GFileCreateFlags
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request
- * @cancellable: optional #GCancellable object, %NULL to ignore
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously creates a new file and returns a stream for reading and
* writing to it. The file must not already exist.
@@ -2296,9 +2297,9 @@
* @flags: a set of #GFileCreateFlags.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously overwrites the file in read-write mode, replacing the
* contents, possibly creating a backup copy of the file first.
@@ -2570,7 +2571,7 @@
* @source: a #GFile with attributes.
* @destination: a #GFile to copy attributes to.
* @flags: a set of #GFileCopyFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Copies the file attributes from @source to @destination.
@@ -2988,7 +2989,7 @@
* @source: input #GFile.
* @destination: destination #GFile
* @flags: set of #GFileCopyFlags
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @progress_callback: (scope call): function to callback with progress information
* @progress_callback_data: (closure): user data to pass to @progress_callback
* @error: #GError to set on error, or %NULL
@@ -3105,7 +3106,7 @@
}
/**
- * g_file_copy_async:
+ * g_file_copy_async: (skip)
* @source: input #GFile.
* @destination: destination #GFile
* @flags: set of #GFileCopyFlags
@@ -3193,7 +3194,7 @@
* @source: #GFile pointing to the source location.
* @destination: #GFile pointing to the destination location.
* @flags: set of #GFileCopyFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @progress_callback: (scope call): #GFileProgressCallback function for updates.
* @progress_callback_data: (closure): gpointer to user data for the callback function.
* @error: #GError for returning error conditions, or %NULL
@@ -3320,7 +3321,7 @@
/**
* g_file_make_directory
* @file: input #GFile.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Creates a directory. Note that this will only create a child directory of
@@ -3368,7 +3369,7 @@
/**
* g_file_make_directory_with_parents:
* @file: input #GFile.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Creates a directory and any parent directories that may not exist similar to
@@ -3450,7 +3451,7 @@
* g_file_make_symbolic_link:
* @file: a #GFile with the name of the symlink to create
* @symlink_value: a string with the path for the target of the new symlink
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError.
*
* Creates a symbolic link named @file which contains the string
@@ -3500,7 +3501,7 @@
/**
* g_file_delete:
* @file: input #GFile.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Deletes a file. If the @file is a directory, it will only be deleted if it
@@ -3541,7 +3542,7 @@
/**
* g_file_trash:
* @file: #GFile to send to trash.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sends @file to the "Trashcan", if possible. This is similar to
@@ -3585,7 +3586,7 @@
* g_file_set_display_name:
* @file: input #GFile.
* @display_name: a string.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Renames @file to the specified display name.
@@ -3641,9 +3642,9 @@
* @display_name: a string.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously sets the display name for a given #GFile.
*
@@ -3711,7 +3712,7 @@
/**
* g_file_query_settable_attributes:
* @file: input #GFile.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Obtain the list of settable attributes for the file.
@@ -3767,7 +3768,7 @@
/**
* g_file_query_writable_namespaces:
* @file: input #GFile.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Obtain the list of attribute namespaces where new attributes
@@ -3824,7 +3825,7 @@
* @type: The type of the attribute
* @value_p: a pointer to the value (or the pointer itself if the type is a pointer type)
* @flags: a set of #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sets an attribute in the file with attribute name @attribute to @value.
@@ -3870,7 +3871,7 @@
* @file: input #GFile.
* @info: a #GFileInfo.
* @flags: #GFileQueryInfoFlags
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Tries to set all attributes in the #GFileInfo on the target values,
@@ -3963,9 +3964,9 @@
* @flags: a #GFileQueryInfoFlags.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback.
- * @user_data: a #gpointer.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): a #gpointer.
*
* Asynchronously sets the attributes of @file with @info.
*
@@ -4034,7 +4035,7 @@
* @attribute: a string containing the attribute's name.
* @value: a string containing the attribute's value.
* @flags: #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_STRING to @value.
@@ -4065,7 +4066,7 @@
* @attribute: a string containing the attribute's name.
* @value: a string containing the attribute's new value.
* @flags: a #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING to @value.
@@ -4098,7 +4099,7 @@
* @attribute: a string containing the attribute's name.
* @value: a #guint32 containing the attribute's new value.
* @flags: a #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT32 to @value.
@@ -4130,7 +4131,7 @@
* @attribute: a string containing the attribute's name.
* @value: a #gint32 containing the attribute's new value.
* @flags: a #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT32 to @value.
@@ -4162,7 +4163,7 @@
* @attribute: a string containing the attribute's name.
* @value: a #guint64 containing the attribute's new value.
* @flags: a #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_UINT64 to @value.
@@ -4194,7 +4195,7 @@
* @attribute: a string containing the attribute's name.
* @value: a #guint64 containing the attribute's new value.
* @flags: a #GFileQueryInfoFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL
*
* Sets @attribute of type %G_FILE_ATTRIBUTE_TYPE_INT64 to @value.
@@ -4224,9 +4225,9 @@
* @file: input #GFile.
* @flags: flags affecting the operation
* @mount_operation: a #GMountOperation, or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
+ * @user_data: (closure): the data to pass to callback function
*
* Mounts a file of type G_FILE_TYPE_MOUNTABLE.
* Using @mount_operation, you can request callbacks when, for instance,
@@ -4311,9 +4312,9 @@
* g_file_unmount_mountable:
* @file: input #GFile.
* @flags: flags affecting the operation
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
+ * @user_data: (closure): the data to pass to callback function
*
* Unmounts a file of type G_FILE_TYPE_MOUNTABLE.
*
@@ -4399,9 +4400,9 @@
* @file: input #GFile.
* @flags: flags affecting the operation
* @mount_operation: a #GMountOperation, or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
+ * @user_data: (closure): the data to pass to callback function
*
* Unmounts a file of type G_FILE_TYPE_MOUNTABLE.
*
@@ -4498,9 +4499,9 @@
* g_file_eject_mountable:
* @file: input #GFile.
* @flags: flags affecting the operation
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
+ * @user_data: (closure): the data to pass to callback function
*
* Starts an asynchronous eject on a mountable.
* When this operation has completed, @callback will be called with
@@ -4584,9 +4585,9 @@
* @file: input #GFile.
* @flags: flags affecting the operation
* @mount_operation: a #GMountOperation, or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied, or %NULL.
+ * @user_data: (closure): the data to pass to callback function
*
* Starts an asynchronous eject on a mountable.
* When this operation has completed, @callback will be called with
@@ -4681,7 +4682,7 @@
* g_file_monitor_directory:
* @file: input #GFile.
* @flags: a set of #GFileMonitorFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL.
*
* Obtains a directory monitor for the given file.
@@ -4725,7 +4726,7 @@
* g_file_monitor_file:
* @file: input #GFile.
* @flags: a set of #GFileMonitorFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, or %NULL.
*
* Obtains a file monitor for the given file. If no file notification
@@ -4770,7 +4771,7 @@
* g_file_monitor:
* @file: input #GFile
* @flags: a set of #GFileMonitorFlags
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: a #GError, or %NULL
*
* Obtains a file or directory monitor for the given file, depending
@@ -6379,7 +6380,7 @@
}
/**
- * g_file_load_partial_contents_async:
+ * g_file_load_partial_contents_async: (skip)
* @file: input #GFile.
* @cancellable: optional #GCancellable object, %NULL to ignore.
* @read_more_callback: a #GFileReadMoreCallback to receive partial data and to specify whether further data should be read.
diff --git a/gio/gfileenumerator.c b/gio/gfileenumerator.c
index ac7a724..b8e7339 100644
--- a/gio/gfileenumerator.c
+++ b/gio/gfileenumerator.c
@@ -173,7 +173,7 @@
/**
* g_file_enumerator_next_file:
* @enumerator: a #GFileEnumerator.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: location to store the error occuring, or %NULL to ignore
*
* Returns information for the next file in the enumerated object.
@@ -238,7 +238,7 @@
/**
* g_file_enumerator_close:
* @enumerator: a #GFileEnumerator.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: location to store the error occuring, or %NULL to ignore
*
* Releases all resources used by this enumerator, making the
@@ -305,9 +305,9 @@
* @num_files: the number of file info objects to request
* @io_priority: the <link linkend="gioscheduler">io priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Request information for a number of files from the enumerator asynchronously.
* When all i/o for the operation is finished the @callback will be called with
@@ -439,9 +439,9 @@
* @enumerator: a #GFileEnumerator.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously closes the file enumerator.
*
diff --git a/gio/gfileenumerator.h b/gio/gfileenumerator.h
index a0cfaaf..9cd2f3e 100644
--- a/gio/gfileenumerator.h
+++ b/gio/gfileenumerator.h
@@ -74,7 +74,7 @@
GAsyncReadyCallback callback,
gpointer user_data);
GList * (* next_files_finish) (GFileEnumerator *enumerator,
- GAsyncResult *res,
+ GAsyncResult *result,
GError **error);
void (* close_async) (GFileEnumerator *enumerator,
int io_priority,
@@ -82,7 +82,7 @@
GAsyncReadyCallback callback,
gpointer user_data);
gboolean (* close_finish) (GFileEnumerator *enumerator,
- GAsyncResult *res,
+ GAsyncResult *result,
GError **error);
/*< private >*/
diff --git a/gio/gfileinputstream.c b/gio/gfileinputstream.c
index 685d768..42942b4 100644
--- a/gio/gfileinputstream.c
+++ b/gio/gfileinputstream.c
@@ -112,7 +112,7 @@
* g_file_input_stream_query_info:
* @stream: a #GFileInputStream.
* @attributes: a file attribute query string.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
@@ -180,9 +180,9 @@
* @attributes: a file attribute query string.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Queries the stream information asynchronously.
* When the operation is finished @callback will be called.
diff --git a/gio/gfileinputstream.h b/gio/gfileinputstream.h
index 3c162c7..08c056e 100644
--- a/gio/gfileinputstream.h
+++ b/gio/gfileinputstream.h
@@ -79,7 +79,7 @@
GAsyncReadyCallback callback,
gpointer user_data);
GFileInfo * (* query_info_finish) (GFileInputStream *stream,
- GAsyncResult *res,
+ GAsyncResult *result,
GError **error);
/*< private >*/
diff --git a/gio/gfileiostream.c b/gio/gfileiostream.c
index 1e5f17f..85a8dd9 100644
--- a/gio/gfileiostream.c
+++ b/gio/gfileiostream.c
@@ -115,7 +115,7 @@
* g_file_io_stream_query_info:
* @stream: a #GFileIOStream.
* @attributes: a file attribute query string.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError, %NULL to ignore.
*
* Queries a file io stream for the given @attributes.
@@ -196,9 +196,9 @@
* @attributes: a file attribute query string.
* @io_priority: the <link linkend="gio-GIOScheduler">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously queries the @stream for a #GFileInfo. When completed,
* @callback will be called with a #GAsyncResult which can be used to
diff --git a/gio/gfileiostream.h b/gio/gfileiostream.h
index 09c9922..31497e3 100644
--- a/gio/gfileiostream.h
+++ b/gio/gfileiostream.h
@@ -84,7 +84,7 @@
GAsyncReadyCallback callback,
gpointer user_data);
GFileInfo * (* query_info_finish) (GFileIOStream *stream,
- GAsyncResult *res,
+ GAsyncResult *result,
GError **error);
char * (* get_etag) (GFileIOStream *stream);
diff --git a/gio/gfileoutputstream.h b/gio/gfileoutputstream.h
index b2c27f5..3b5f85d 100644
--- a/gio/gfileoutputstream.h
+++ b/gio/gfileoutputstream.h
@@ -84,7 +84,7 @@
GAsyncReadyCallback callback,
gpointer user_data);
GFileInfo * (* query_info_finish) (GFileOutputStream *stream,
- GAsyncResult *res,
+ GAsyncResult *result,
GError **error);
char * (* get_etag) (GFileOutputStream *stream);
diff --git a/gio/gicon.c b/gio/gicon.c
index 115a3f5..c78acd3 100644
--- a/gio/gicon.c
+++ b/gio/gicon.c
@@ -397,8 +397,8 @@
* implementations you need to ensure that each #GType is registered
* with the type system prior to calling g_icon_new_for_string().
*
- * Returns: An object implementing the #GIcon interface or %NULL if
- * @error is set.
+ * Returns: (transfer full): An object implementing the #GIcon
+ * interface or %NULL if @error is set.
*
* Since: 2.20
**/
diff --git a/gio/ginetaddress.c b/gio/ginetaddress.c
index 429cac2..0f67e4f 100644
--- a/gio/ginetaddress.c
+++ b/gio/ginetaddress.c
@@ -570,7 +570,7 @@
}
/**
- * g_inet_address_to_bytes:
+ * g_inet_address_to_bytes: (skip)
* @address: a #GInetAddress
*
* Gets the raw binary address data from @address.
diff --git a/gio/ginetsocketaddress.c b/gio/ginetsocketaddress.c
index 3f0935b..071c49f 100644
--- a/gio/ginetsocketaddress.c
+++ b/gio/ginetsocketaddress.c
@@ -289,7 +289,7 @@
*
* Gets @address's #GInetAddress.
*
- * Returns: (transfer full): the #GInetAddress for @address, which must be
+ * Returns: (transfer none): the #GInetAddress for @address, which must be
* g_object_ref()'d if it will be stored
*
* Since: 2.22
diff --git a/gio/ginputstream.c b/gio/ginputstream.c
index 3071a47..53e84a0 100644
--- a/gio/ginputstream.c
+++ b/gio/ginputstream.c
@@ -139,7 +139,7 @@
* @stream: a #GInputStream.
* @buffer: a buffer to read data into (which should be at least count bytes long).
* @count: the number of bytes that will be read from the stream
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: location to store the error occuring, or %NULL to ignore
*
* Tries to read @count bytes from the stream into the buffer starting at
@@ -216,8 +216,8 @@
* @stream: a #GInputStream.
* @buffer: a buffer to read data into (which should be at least count bytes long).
* @count: the number of bytes that will be read from the stream
- * @bytes_read: location to store the number of bytes that was read from the stream
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @bytes_read: (out): location to store the number of bytes that was read from the stream
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: location to store the error occuring, or %NULL to ignore
*
* Tries to read @count bytes from the stream into the buffer starting at
@@ -277,7 +277,7 @@
* g_input_stream_skip:
* @stream: a #GInputStream.
* @count: the number of bytes that will be skipped from the stream
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: location to store the error occuring, or %NULL to ignore
*
* Tries to skip @count bytes from the stream. Will block during the operation.
@@ -393,7 +393,7 @@
/**
* g_input_stream_close:
* @stream: A #GInputStream.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: location to store the error occuring, or %NULL to ignore
*
* Closes the stream, releasing resources related to it.
@@ -492,9 +492,9 @@
* @count: the number of bytes that will be read from the stream
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Request an asynchronous read of @count bytes from the stream into the buffer
* starting at @buffer. When the operation is finished @callback will be called.
@@ -617,9 +617,9 @@
* @count: the number of bytes that will be skipped from the stream
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Request an asynchronous skip of @count bytes from the stream.
* When the operation is finished @callback will be called.
@@ -740,9 +740,9 @@
* @stream: A #GInputStream.
* @io_priority: the <link linkend="io-priority">I/O priority</link>
* of the request.
- * @cancellable: optional cancellable object
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional cancellable object
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Requests an asynchronous closes of the stream, releasing resources related to it.
* When the operation is finished @callback will be called.
diff --git a/gio/gio.h b/gio/gio.h
index 306012f..6dcccfe 100644
--- a/gio/gio.h
+++ b/gio/gio.h
@@ -93,7 +93,6 @@
#include <gio/gnetworkaddress.h>
#include <gio/gnetworkservice.h>
#include <gio/goutputstream.h>
-#include <gio/gperiodic.h>
#include <gio/gpermission.h>
#include <gio/gpollableinputstream.h>
#include <gio/gpollableoutputstream.h>
diff --git a/gio/gio.symbols b/gio/gio.symbols
index 13d1e8a..fc4b590 100644
--- a/gio/gio.symbols
+++ b/gio/gio.symbols
@@ -84,6 +84,7 @@
g_app_info_should_show
g_app_info_set_as_default_for_type
g_app_info_set_as_default_for_extension
+g_app_info_set_as_last_used_for_type
g_app_info_add_supports_type
g_app_info_can_remove_supports_type
g_app_info_remove_supports_type
@@ -130,11 +131,12 @@
g_desktop_app_info_new_from_keyfile
g_desktop_app_info_new
g_desktop_app_info_get_filename
-g_desktop_app_info_get_type G_GNUC_CONST
g_desktop_app_info_get_is_hidden
-g_desktop_app_info_set_desktop_env
+g_desktop_app_info_get_type G_GNUC_CONST
+g_desktop_app_info_launch_uris_as_manager
g_desktop_app_info_lookup_get_type G_GNUC_CONST
g_desktop_app_info_lookup_get_default_for_uri_scheme
+g_desktop_app_info_set_desktop_env
#endif
#endif
#endif
@@ -663,6 +665,8 @@
g_io_stream_has_pending
g_io_stream_set_pending
g_io_stream_clear_pending
+g_io_stream_splice_async
+g_io_stream_splice_finish
#endif
#endif
@@ -1033,6 +1037,7 @@
g_file_type_get_type G_GNUC_CONST
g_filesystem_preview_type_get_type G_GNUC_CONST
g_io_error_enum_get_type G_GNUC_CONST
+g_io_stream_splice_flags_get_type G_GNUC_CONST
g_mount_mount_flags_get_type G_GNUC_CONST
g_mount_operation_result_get_type G_GNUC_CONST
g_drive_start_flags_get_type G_GNUC_CONST
@@ -1081,6 +1086,7 @@
g_emblemed_icon_get_icon
g_emblemed_icon_get_emblems
g_emblemed_icon_add_emblem
+g_emblemed_icon_clear_emblems
#endif
#endif
@@ -1539,13 +1545,20 @@
g_settings_backend_path_writable_changed
g_settings_backend_writable_changed
g_settings_backend_changed_tree
-#endif
+g_settings_backend_get_default
#endif
-#if IN_HEADER(__G_SETTINGS_BACKEND_H__)
#if IN_FILE(__G_KEYFILE_SETTINGS_BACKEND_C__)
g_keyfile_settings_backend_new
#endif
+
+#if IN_FILE(__G_MEMORY_SETTINGS_BACKEND_C__)
+g_memory_settings_backend_new
+#endif
+
+#if IN_FILE(__G_NULL_SETTINGS_BACKEND_C__)
+g_null_settings_backend_new
+#endif
#endif
#if IN_HEADER(__G_SETTINGS_H__)
@@ -1971,21 +1984,6 @@
#endif
#endif
-#if IN_HEADER(__G_PERIODIC_H__)
-#if IN_FILE(__G_PERIODIC_C__)
-g_periodic_block
-g_periodic_damaged
-g_periodic_get_hz
-g_periodic_get_high_priority
-g_periodic_get_low_priority
-g_periodic_get_type
-g_periodic_new
-g_periodic_add
-g_periodic_remove
-g_periodic_unblock
-#endif
-#endif
-
#if IN_HEADER(__G_POLLABLE_INPUT_STREAM_H__)
#if IN_FILE(__G_POLLABLE_INPUT_STREAM_C__)
g_pollable_input_stream_get_type G_GNUC_CONST
@@ -2036,25 +2034,27 @@
g_tls_certificate_new_from_file
g_tls_certificate_new_from_files
g_tls_certificate_new_from_pem
+g_tls_certificate_verify
#endif
#endif
#if IN_HEADER(__G_TLS_CONNECTION_H__)
#if IN_FILE(__G_TLS_CONNECTION_C__)
g_tls_connection_emit_accept_certificate
-g_tls_connection_emit_need_certificate
g_tls_connection_get_certificate
g_tls_connection_get_peer_certificate
+g_tls_connection_get_peer_certificate_errors
g_tls_connection_get_rehandshake_mode
g_tls_connection_get_require_close_notify
+g_tls_connection_get_use_system_certdb
g_tls_connection_get_type G_GNUC_CONST
g_tls_connection_handshake
g_tls_connection_handshake_async
g_tls_connection_handshake_finish
g_tls_connection_set_certificate
-g_tls_connection_set_peer_certificate
g_tls_connection_set_rehandshake_mode
g_tls_connection_set_require_close_notify
+g_tls_connection_set_use_system_certdb
#endif
#endif
diff --git a/gio/gioenums.h b/gio/gioenums.h
index 039b5dc..0b2c576 100644
--- a/gio/gioenums.h
+++ b/gio/gioenums.h
@@ -572,6 +572,27 @@
/**
+ * GIOStreamSpliceFlags:
+ * @G_IO_STREAM_SPLICE_NONE: Do not close either stream.
+ * @G_IO_STREAM_SPLICE_CLOSE_STREAM1: Close the first stream after
+ * the splice.
+ * @G_IO_STREAM_SPLICE_CLOSE_STREAM2: Close the second stream after
+ * the splice.
+ * @G_IO_STREAM_SPLICE_WAIT_FOR_BOTH: Wait for both splice operations to finish
+ * before calling the callback.
+ *
+ * GIOStreamSpliceFlags determine how streams should be spliced.
+ *
+ * Since: 2.28
+ **/
+typedef enum {
+ G_IO_STREAM_SPLICE_NONE = 0,
+ G_IO_STREAM_SPLICE_CLOSE_STREAM1 = (1 << 0),
+ G_IO_STREAM_SPLICE_CLOSE_STREAM2 = (1 << 1),
+ G_IO_STREAM_SPLICE_WAIT_FOR_BOTH = (1 << 2)
+} GIOStreamSpliceFlags;
+
+/**
* GEmblemOrigin:
* @G_EMBLEM_ORIGIN_UNKNOWN: Emblem of unknown origin
* @G_EMBLEM_ORIGIN_DEVICE: Emblem adds device-specific information
@@ -1251,6 +1272,7 @@
/**
* GTlsError:
+ * @G_TLS_ERROR_UNAVAILABLE: No TLS provider is available
* @G_TLS_ERROR_MISC: Miscellaneous TLS error
* @G_TLS_ERROR_BAD_CERTIFICATE: A certificate could not be parsed
* @G_TLS_ERROR_NOT_TLS: The TLS handshake failed because the
@@ -1259,7 +1281,7 @@
* peer's certificate was not acceptable.
* @G_TLS_ERROR_CERTIFICATE_REQUIRED: The TLS handshake failed because
* the server requested a client-side certificate, but none was
- * provided. See #GTlsConnection::need-certificate.
+ * provided. See g_tls_connection_set_certificate().
* @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().
@@ -1270,6 +1292,7 @@
* Since: 2.28
*/
typedef enum {
+ G_TLS_ERROR_UNAVAILABLE,
G_TLS_ERROR_MISC,
G_TLS_ERROR_BAD_CERTIFICATE,
G_TLS_ERROR_NOT_TLS,
diff --git a/gio/giomodule.c b/gio/giomodule.c
index cb05270..00e8c48 100644
--- a/gio/giomodule.c
+++ b/gio/giomodule.c
@@ -26,12 +26,12 @@
#include "giomodule.h"
#include "giomodule-priv.h"
-#include "gmemorysettingsbackend.h"
#include "glocalfilemonitor.h"
#include "glocaldirectorymonitor.h"
#include "gnativevolumemonitor.h"
#include "gproxyresolver.h"
#include "gproxy.h"
+#include "gsettingsbackendinternal.h"
#include "gsocks4proxy.h"
#include "gsocks4aproxy.h"
#include "gsocks5proxy.h"
@@ -598,6 +598,7 @@
}
/* Initialize types from built-in "modules" */
+ g_null_settings_backend_get_type ();
g_memory_settings_backend_get_type ();
#if defined(HAVE_SYS_INOTIFY_H) || defined(HAVE_LINUX_INOTIFY_H)
_g_inotify_directory_monitor_get_type ();
diff --git a/gio/giostream.c b/gio/giostream.c
index 7c5bdf0..db3cd92 100644
--- a/gio/giostream.c
+++ b/gio/giostream.c
@@ -361,7 +361,7 @@
/**
* g_io_stream_close:
* @stream: a #GIOStream
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: location to store the error occuring, or %NULL to ignore
*
* Closes the stream, releasing resources related to it. This will also
@@ -454,9 +454,9 @@
* g_io_stream_close_async:
* @stream: a #GIOStream
* @io_priority: the io priority of the request
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
- * @cancellable: optional cancellable object
+ * @cancellable: (allow-none): optional cancellable object
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Requests an asynchronous close of the stream, releasing resources
* related to it. When the operation is finished @callback will be
@@ -606,3 +606,255 @@
g_io_stream_real_close_async);
return TRUE;
}
+
+typedef struct
+{
+ GIOStream *stream1;
+ GIOStream *stream2;
+ GIOStreamSpliceFlags flags;
+ gint io_priority;
+ GCancellable *cancellable;
+ gulong cancelled_id;
+ GCancellable *op1_cancellable;
+ GCancellable *op2_cancellable;
+ guint completed;
+ GError *error;
+} SpliceContext;
+
+static void
+splice_context_free (SpliceContext *ctx)
+{
+ g_object_unref (ctx->stream1);
+ g_object_unref (ctx->stream2);
+ if (ctx->cancellable != NULL)
+ g_object_unref (ctx->cancellable);
+ g_object_unref (ctx->op1_cancellable);
+ g_object_unref (ctx->op2_cancellable);
+ g_clear_error (&ctx->error);
+ g_slice_free (SpliceContext, ctx);
+}
+
+static void
+splice_complete (GSimpleAsyncResult *simple,
+ SpliceContext *ctx)
+{
+ if (ctx->cancelled_id != 0)
+ g_cancellable_disconnect (ctx->cancellable, ctx->cancelled_id);
+ ctx->cancelled_id = 0;
+
+ if (ctx->error != NULL)
+ g_simple_async_result_set_from_error (simple, ctx->error);
+ g_simple_async_result_complete (simple);
+}
+
+static void
+splice_close_cb (GObject *iostream,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple = user_data;
+ SpliceContext *ctx;
+ GError *error = NULL;
+
+ g_io_stream_close_finish (G_IO_STREAM (iostream), res, &error);
+
+ ctx = g_simple_async_result_get_op_res_gpointer (simple);
+ ctx->completed++;
+
+ /* Keep the first error that occured */
+ if (error != NULL && ctx->error == NULL)
+ ctx->error = error;
+ else
+ g_clear_error (&error);
+
+ /* If all operations are done, complete now */
+ if (ctx->completed == 4)
+ splice_complete (simple, ctx);
+
+ g_object_unref (simple);
+}
+
+static void
+splice_cb (GObject *ostream,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple = user_data;
+ SpliceContext *ctx;
+ GError *error = NULL;
+
+ g_output_stream_splice_finish (G_OUTPUT_STREAM (ostream), res, &error);
+
+ ctx = g_simple_async_result_get_op_res_gpointer (simple);
+ ctx->completed++;
+
+ /* ignore cancellation error if it was not requested by the user */
+ if (error != NULL &&
+ g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) &&
+ (ctx->cancellable == NULL ||
+ !g_cancellable_is_cancelled (ctx->cancellable)))
+ g_clear_error (&error);
+
+ /* Keep the first error that occured */
+ if (error != NULL && ctx->error == NULL)
+ ctx->error = error;
+ else
+ g_clear_error (&error);
+
+ if (ctx->completed == 1 &&
+ (ctx->flags & G_IO_STREAM_SPLICE_WAIT_FOR_BOTH) == 0)
+ {
+ /* We don't want to wait for the 2nd operation to finish, cancel it */
+ g_cancellable_cancel (ctx->op1_cancellable);
+ g_cancellable_cancel (ctx->op2_cancellable);
+ }
+ else if (ctx->completed == 2)
+ {
+ if (ctx->cancellable == NULL ||
+ !g_cancellable_is_cancelled (ctx->cancellable))
+ {
+ g_cancellable_reset (ctx->op1_cancellable);
+ g_cancellable_reset (ctx->op2_cancellable);
+ }
+
+ /* Close the IO streams if needed */
+ if ((ctx->flags & G_IO_STREAM_SPLICE_CLOSE_STREAM1) != 0)
+ g_io_stream_close_async (ctx->stream1, ctx->io_priority,
+ ctx->op1_cancellable, splice_close_cb, g_object_ref (simple));
+ else
+ ctx->completed++;
+
+ if ((ctx->flags & G_IO_STREAM_SPLICE_CLOSE_STREAM2) != 0)
+ g_io_stream_close_async (ctx->stream2, ctx->io_priority,
+ ctx->op2_cancellable, splice_close_cb, g_object_ref (simple));
+ else
+ ctx->completed++;
+
+ /* If all operations are done, complete now */
+ if (ctx->completed == 4)
+ splice_complete (simple, ctx);
+ }
+
+ g_object_unref (simple);
+}
+
+static void
+splice_cancelled_cb (GCancellable *cancellable,
+ GSimpleAsyncResult *simple)
+{
+ SpliceContext *ctx;
+
+ ctx = g_simple_async_result_get_op_res_gpointer (simple);
+ g_cancellable_cancel (ctx->op1_cancellable);
+ g_cancellable_cancel (ctx->op2_cancellable);
+}
+
+/**
+ * g_io_stream_splice_async:
+ * @stream1: a #GIOStream.
+ * @stream2: a #GIOStream.
+ * @flags: a set of #GIOStreamSpliceFlags.
+ * @io_priority: the io priority of the request.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
+ *
+ * Asyncronously splice the output stream of @stream1 to the input stream of
+ * @stream2, and splice the output stream of @stream2 to the input stream of
+ * @stream1.
+ *
+ * When the operation is finished @callback will be called.
+ * You can then call g_io_stream_splice_finish() to get the
+ * result of the operation.
+ *
+ * Since: 2.28
+ **/
+void
+g_io_stream_splice_async (GIOStream *stream1,
+ GIOStream *stream2,
+ GIOStreamSpliceFlags flags,
+ gint io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple;
+ SpliceContext *ctx;
+ GInputStream *istream;
+ GOutputStream *ostream;
+
+ if (cancellable != NULL && g_cancellable_is_cancelled (cancellable))
+ {
+ g_simple_async_report_error_in_idle (NULL, callback,
+ user_data, G_IO_ERROR, G_IO_ERROR_CANCELLED,
+ "Operation has been cancelled");
+ return;
+ }
+
+ ctx = g_slice_new0 (SpliceContext);
+ ctx->stream1 = g_object_ref (stream1);
+ ctx->stream2 = g_object_ref (stream2);
+ ctx->flags = flags;
+ ctx->io_priority = io_priority;
+ ctx->op1_cancellable = g_cancellable_new ();
+ ctx->op2_cancellable = g_cancellable_new ();
+ ctx->completed = 0;
+
+ simple = g_simple_async_result_new (NULL, callback, user_data,
+ g_io_stream_splice_finish);
+ g_simple_async_result_set_op_res_gpointer (simple, ctx,
+ (GDestroyNotify) splice_context_free);
+
+ if (cancellable != NULL)
+ {
+ ctx->cancellable = g_object_ref (cancellable);
+ ctx->cancelled_id = g_cancellable_connect (cancellable,
+ G_CALLBACK (splice_cancelled_cb), g_object_ref (simple),
+ g_object_unref);
+ }
+
+ istream = g_io_stream_get_input_stream (stream1);
+ ostream = g_io_stream_get_output_stream (stream2);
+ g_output_stream_splice_async (ostream, istream, G_OUTPUT_STREAM_SPLICE_NONE,
+ io_priority, ctx->op1_cancellable, splice_cb,
+ g_object_ref (simple));
+
+ istream = g_io_stream_get_input_stream (stream2);
+ ostream = g_io_stream_get_output_stream (stream1);
+ g_output_stream_splice_async (ostream, istream, G_OUTPUT_STREAM_SPLICE_NONE,
+ io_priority, ctx->op2_cancellable, splice_cb,
+ g_object_ref (simple));
+
+ g_object_unref (simple);
+}
+
+/**
+ * g_io_stream_splice_finish:
+ * @result: a #GAsyncResult.
+ * @error: a #GError location to store the error occuring, or %NULL to
+ * ignore.
+ *
+ * Finishes an asynchronous io stream splice operation.
+ *
+ * Returns: %TRUE on success, %FALSE otherwise.
+ *
+ * Since: 2.28
+ **/
+gboolean
+g_io_stream_splice_finish (GAsyncResult *result,
+ GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
+
+ simple = G_SIMPLE_ASYNC_RESULT (result);
+
+ if (g_simple_async_result_propagate_error (simple, error))
+ return FALSE;
+
+ g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL,
+ g_io_stream_splice_finish), FALSE);
+
+ return TRUE;
+}
diff --git a/gio/giostream.h b/gio/giostream.h
index 048fd4f..90283dd 100644
--- a/gio/giostream.h
+++ b/gio/giostream.h
@@ -88,6 +88,17 @@
GInputStream * g_io_stream_get_input_stream (GIOStream *stream);
GOutputStream *g_io_stream_get_output_stream (GIOStream *stream);
+void g_io_stream_splice_async (GIOStream *stream1,
+ GIOStream *stream2,
+ GIOStreamSpliceFlags flags,
+ int io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+gboolean g_io_stream_splice_finish (GAsyncResult *result,
+ GError **error);
+
gboolean g_io_stream_close (GIOStream *stream,
GCancellable *cancellable,
GError **error);
diff --git a/gio/gloadableicon.c b/gio/gloadableicon.c
index 1cad7fc..db86fd0 100644
--- a/gio/gloadableicon.c
+++ b/gio/gloadableicon.c
@@ -62,8 +62,9 @@
* g_loadable_icon_load:
* @icon: a #GLoadableIcon.
* @size: an integer.
- * @type: a location to store the type of the loaded icon, %NULL to ignore.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @type: (out) (allow-none): a location to store the type of the
+ * loaded icon, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
@@ -92,9 +93,10 @@
* g_loadable_icon_load_async:
* @icon: a #GLoadableIcon.
* @size: an integer.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the
+ * request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Loads an icon asynchronously. To finish this function, see
* g_loadable_icon_load_finish(). For the synchronous, blocking
diff --git a/gio/glocalfile.c b/gio/glocalfile.c
index 4641f2e..9e4aace 100644
--- a/gio/glocalfile.c
+++ b/gio/glocalfile.c
@@ -701,6 +701,8 @@
return "xfs";
case 0x012FD16D:
return "xiafs";
+ case 0x52345362:
+ return "reiser4";
default:
return NULL;
}
diff --git a/gio/gmemoryinputstream.c b/gio/gmemoryinputstream.c
index 397c6a5..9107b22 100644
--- a/gio/gmemoryinputstream.c
+++ b/gio/gmemoryinputstream.c
@@ -203,9 +203,9 @@
/**
* g_memory_input_stream_new_from_data:
- * @data: input data
+ * @data: (array length=len) (element-type guint8): input data
* @len: length of the data, may be -1 if @data is a nul-terminated string
- * @destroy: function that is called to free @data, or %NULL
+ * @destroy: (allow-none): function that is called to free @data, or %NULL
*
* Creates a new #GMemoryInputStream with data in memory of a given size.
*
@@ -229,9 +229,9 @@
/**
* g_memory_input_stream_add_data:
* @stream: a #GMemoryInputStream
- * @data: input data
+ * @data: (array length=len) (element-type guint8): input data
* @len: length of the data, may be -1 if @data is a nul-terminated string
- * @destroy: function that is called to free @data, or %NULL
+ * @destroy: (allow-none): function that is called to free @data, or %NULL
*
* Appends @data to data that can be read from the input stream
*/
diff --git a/gio/gmemoryoutputstream.c b/gio/gmemoryoutputstream.c
index 3291be4..b6b532d 100644
--- a/gio/gmemoryoutputstream.c
+++ b/gio/gmemoryoutputstream.c
@@ -194,7 +194,7 @@
G_PARAM_STATIC_STRINGS));
/**
- * GMemoryOutputStream:realloc-function:
+ * GMemoryOutputStream:realloc-function: (skip)
*
* Function with realloc semantics called to enlarge the buffer.
*
@@ -209,7 +209,7 @@
G_PARAM_STATIC_STRINGS));
/**
- * GMemoryOutputStream:destroy-function:
+ * GMemoryOutputStream:destroy-function: (skip)
*
* Function called with the buffer as argument when the stream is destroyed.
*
@@ -328,7 +328,7 @@
}
/**
- * g_memory_output_stream_new:
+ * g_memory_output_stream_new: (skip)
* @data: pointer to a chunk of memory to use, or %NULL
* @size: the size of @data
* @realloc_function: a function with realloc() semantics (like g_realloc())
@@ -376,7 +376,7 @@
}
/**
- * g_memory_output_stream_get_data: (skip)
+ * g_memory_output_stream_get_data:
* @ostream: a #GMemoryOutputStream
*
* Gets any loaded data from the @ostream.
@@ -384,7 +384,7 @@
* Note that the returned pointer may become invalid on the next
* write or truncate operation on the stream.
*
- * Returns: pointer to the stream's data
+ * Returns: (transfer none): pointer to the stream's data
**/
gpointer
g_memory_output_stream_get_data (GMemoryOutputStream *ostream)
@@ -398,7 +398,7 @@
* g_memory_output_stream_get_size:
* @ostream: a #GMemoryOutputStream
*
- * Gets the size of the currently allocated data area (availible from
+ * Gets the size of the currently allocated data area (available from
* g_memory_output_stream_get_data()). If the stream isn't
* growable (no realloc was passed to g_memory_output_stream_new()) then
* this is the maximum size of the stream and further writes
diff --git a/gio/gmemorysettingsbackend.c b/gio/gmemorysettingsbackend.c
index 8176b60..eceebc1 100644
--- a/gio/gmemorysettingsbackend.c
+++ b/gio/gmemorysettingsbackend.c
@@ -22,9 +22,8 @@
#include "config.h"
-#include "gmemorysettingsbackend.h"
#include "gsimplepermission.h"
-#include "gsettingsbackend.h"
+#include "gsettingsbackendinternal.h"
#include "giomodule.h"
@@ -370,3 +369,9 @@
backend_class->remove = g_memory_settings_backend_remove;
object_class->finalize = g_memory_settings_backend_finalize;
}
+
+GSettingsBackend *
+g_memory_settings_backend_new (void)
+{
+ return g_object_new (G_TYPE_MEMORY_SETTINGS_BACKEND, NULL);
+}
diff --git a/gio/gmemorysettingsbackend.h b/gio/gmemorysettingsbackend.h
deleted file mode 100644
index 9b7756c..0000000
--- a/gio/gmemorysettingsbackend.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright © 2010 Codethink Limited
- *
- * 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 of the licence, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Author: Ryan Lortie <desrt@desrt.ca>
- */
-
-#ifndef __GMEMORY_SETTINGS_BACKEND_H__
-#define __GMEMORY_SETTINGS_BACKEND_H__
-
-#include <glib-object.h>
-
-G_GNUC_INTERNAL
-GType g_memory_settings_backend_get_type (void);
-
-#endif /* __G_MEMORY_SETTINGS_BACKEND_H__ */
diff --git a/gio/gmount.c b/gio/gmount.c
index 983a9fe..4868fad 100644
--- a/gio/gmount.c
+++ b/gio/gmount.c
@@ -329,8 +329,8 @@
* g_mount_unmount:
* @mount: a #GMount.
* @flags: flags affecting the operation
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data passed to @callback.
*
* Unmounts a mount. This is an asynchronous operation, and is
@@ -408,8 +408,8 @@
* g_mount_eject:
* @mount: a #GMount.
* @flags: flags affecting the unmount if required for eject
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data passed to @callback.
*
* Ejects a mount. This is an asynchronous operation, and is
@@ -486,9 +486,10 @@
* g_mount_unmount_with_operation:
* @mount: a #GMount.
* @flags: flags affecting the operation
- * @mount_operation: a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data passed to @callback.
*
* Unmounts a mount. This is an asynchronous operation, and is
@@ -573,9 +574,10 @@
* g_mount_eject_with_operation:
* @mount: a #GMount.
* @flags: flags affecting the unmount if required for eject
- * @mount_operation: a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data passed to @callback.
*
* Ejects a mount. This is an asynchronous operation, and is
@@ -658,9 +660,10 @@
* g_mount_remount:
* @mount: a #GMount.
* @flags: flags affecting the operation
- * @mount_operation: a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid
+ * user interaction.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data passed to @callback.
*
* Remounts a mount. This is an asynchronous operation, and is
@@ -741,7 +744,7 @@
* @mount: a #GMount
* @force_rescan: Whether to force a rescan of the content.
* Otherwise a cached result will be used if available
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @callback: a #GAsyncReadyCallback
* @user_data: user data passed to @callback
*
@@ -831,7 +834,7 @@
* @mount: a #GMount
* @force_rescan: Whether to force a rescan of the content.
* Otherwise a cached result will be used if available
- * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore
* @error: a #GError location to store the error occuring, or %NULL to
* ignore
*
diff --git a/gio/gnetworkaddress.c b/gio/gnetworkaddress.c
index 3f3962d..3a58325 100644
--- a/gio/gnetworkaddress.c
+++ b/gio/gnetworkaddress.c
@@ -781,7 +781,8 @@
GSocketAddressEnumerator parent_instance;
GNetworkAddress *addr;
- GList *a;
+ GList *addresses;
+ GList *next;
} GNetworkAddressAddressEnumerator;
typedef struct {
@@ -811,31 +812,34 @@
G_NETWORK_ADDRESS_ADDRESS_ENUMERATOR (enumerator);
GSocketAddress *sockaddr;
- if (!addr_enum->addr->priv->sockaddrs)
+ if (addr_enum->addresses == NULL)
{
- GResolver *resolver = g_resolver_get_default ();
- GList *addresses;
+ if (!addr_enum->addr->priv->sockaddrs)
+ {
+ GResolver *resolver = g_resolver_get_default ();
+ GList *addresses;
- addresses = g_resolver_lookup_by_name (resolver,
- addr_enum->addr->priv->hostname,
- cancellable, error);
- g_object_unref (resolver);
+ addresses = g_resolver_lookup_by_name (resolver,
+ addr_enum->addr->priv->hostname,
+ cancellable, error);
+ g_object_unref (resolver);
- if (!addresses)
- return NULL;
+ if (!addresses)
+ return NULL;
- g_network_address_set_addresses (addr_enum->addr, addresses);
- addr_enum->a = addr_enum->addr->priv->sockaddrs;
+ g_network_address_set_addresses (addr_enum->addr, addresses);
+ }
+
+ addr_enum->addresses = addr_enum->addr->priv->sockaddrs;
+ addr_enum->next = addr_enum->addresses;
}
- if (!addr_enum->a)
+ if (addr_enum->next == NULL)
return NULL;
- else
- {
- sockaddr = addr_enum->a->data;
- addr_enum->a = addr_enum->a->next;
- return g_object_ref (sockaddr);
- }
+
+ sockaddr = addr_enum->next->data;
+ addr_enum->next = addr_enum->next->next;
+ return g_object_ref (sockaddr);
}
static void
@@ -850,24 +854,21 @@
GList *addresses;
GError *error = NULL;
- addresses = g_resolver_lookup_by_name_finish (resolver, result, &error);
if (!addr_enum->addr->priv->sockaddrs)
{
+ addresses = g_resolver_lookup_by_name_finish (resolver, result, &error);
+
if (error)
- {
- g_simple_async_result_take_error (simple, error);
- }
+ g_simple_async_result_take_error (simple, error);
else
- {
- g_network_address_set_addresses (addr_enum->addr, addresses);
- addr_enum->a = addr_enum->addr->priv->sockaddrs;
- }
+ g_network_address_set_addresses (addr_enum->addr, addresses);
}
- else if (error)
- g_error_free (error);
g_object_unref (resolver);
+ addr_enum->addresses = addr_enum->addr->priv->sockaddrs;
+ addr_enum->next = addr_enum->addresses;
+
g_simple_async_result_complete (simple);
g_object_unref (simple);
}
@@ -886,21 +887,26 @@
callback, user_data,
g_network_address_address_enumerator_next_async);
- if (!addr_enum->addr->priv->sockaddrs)
+ if (addr_enum->addresses == NULL)
{
- GResolver *resolver = g_resolver_get_default ();
+ if (!addr_enum->addr->priv->sockaddrs)
+ {
+ GResolver *resolver = g_resolver_get_default ();
- g_simple_async_result_set_op_res_gpointer (simple, g_object_ref (addr_enum), g_object_unref);
- g_resolver_lookup_by_name_async (resolver,
- addr_enum->addr->priv->hostname,
- cancellable,
- got_addresses, simple);
+ g_simple_async_result_set_op_res_gpointer (simple, g_object_ref (addr_enum), g_object_unref);
+ g_resolver_lookup_by_name_async (resolver,
+ addr_enum->addr->priv->hostname,
+ cancellable,
+ got_addresses, simple);
+ return;
+ }
+
+ addr_enum->addresses = addr_enum->addr->priv->sockaddrs;
+ addr_enum->next = addr_enum->addresses;
}
- else
- {
- g_simple_async_result_complete_in_idle (simple);
- g_object_unref (simple);
- }
+
+ g_simple_async_result_complete_in_idle (simple);
+ g_object_unref (simple);
}
static GSocketAddress *
@@ -915,12 +921,12 @@
if (g_simple_async_result_propagate_error (simple, error))
return NULL;
- else if (!addr_enum->a)
+ else if (!addr_enum->next)
return NULL;
else
{
- sockaddr = addr_enum->a->data;
- addr_enum->a = addr_enum->a->next;
+ sockaddr = addr_enum->next->data;
+ addr_enum->next = addr_enum->next->next;
return g_object_ref (sockaddr);
}
}
diff --git a/gio/gnullsettingsbackend.c b/gio/gnullsettingsbackend.c
index a2bead0..507aa8c 100644
--- a/gio/gnullsettingsbackend.c
+++ b/gio/gnullsettingsbackend.c
@@ -21,7 +21,8 @@
#include "config.h"
-#include "gnullsettingsbackend.h"
+#include "gsettingsbackendinternal.h"
+#include "giomodule.h"
#include "gsimplepermission.h"
@@ -34,10 +35,11 @@
typedef GSettingsBackendClass GNullSettingsBackendClass;
typedef GSettingsBackend GNullSettingsBackend;
-static GType g_null_settings_backend_get_type (void);
-G_DEFINE_TYPE (GNullSettingsBackend,
- g_null_settings_backend,
- G_TYPE_SETTINGS_BACKEND)
+G_DEFINE_TYPE_WITH_CODE (GNullSettingsBackend,
+ g_null_settings_backend,
+ G_TYPE_SETTINGS_BACKEND,
+ g_io_extension_point_implement (G_SETTINGS_BACKEND_EXTENSION_POINT_NAME,
+ g_define_type_id, "null", 10))
static GVariant *
g_null_settings_backend_read (GSettingsBackend *backend,
diff --git a/gio/gnullsettingsbackend.h b/gio/gnullsettingsbackend.h
deleted file mode 100644
index ea07f52..0000000
--- a/gio/gnullsettingsbackend.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright © 2010 Codethink Limited
- *
- * 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 of the licence, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * Author: Ryan Lortie <desrt@desrt.ca>
- */
-
-#ifndef __G_NULL_SETTINGS_BACKEND_H__
-#define __G_NULL_SETTINGS_BACKEND_H__
-
-#include <gio/gsettingsbackend.h>
-
-G_GNUC_INTERNAL
-GSettingsBackend * g_null_settings_backend_new (void);
-
-#endif /* __G_NULL_SETTINGS_BACKEND_H__ */
diff --git a/gio/goutputstream.c b/gio/goutputstream.c
index 5152de5..02f013e 100644
--- a/gio/goutputstream.c
+++ b/gio/goutputstream.c
@@ -150,7 +150,7 @@
* @stream: a #GOutputStream.
* @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
* @count: the number of bytes to write
- * @cancellable: optional cancellable object
+ * @cancellable: (allow-none): optional cancellable object
* @error: location to store the error occuring, or %NULL to ignore
*
* Tries to write @count bytes from @buffer into the stream. Will block
@@ -229,9 +229,9 @@
* @stream: a #GOutputStream.
* @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
* @count: the number of bytes to write
- * @bytes_written: location to store the number of bytes that was
+ * @bytes_written: (out): location to store the number of bytes that was
* written to the stream
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: location to store the error occuring, or %NULL to ignore
*
* Tries to write @count bytes from @buffer into the stream. Will block
@@ -290,7 +290,7 @@
/**
* g_output_stream_flush:
* @stream: a #GOutputStream.
- * @cancellable: optional cancellable object
+ * @cancellable: (allow-none): optional cancellable object
* @error: location to store the error occuring, or %NULL to ignore
*
* Flushed any outstanding buffers in the stream. Will block during
@@ -341,7 +341,7 @@
* @stream: a #GOutputStream.
* @source: a #GInputStream.
* @flags: a set of #GOutputStreamSpliceFlags.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
@@ -468,7 +468,7 @@
/**
* g_output_stream_close:
* @stream: A #GOutputStream.
- * @cancellable: optional cancellable object
+ * @cancellable: (allow-none): optional cancellable object
* @error: location to store the error occuring, or %NULL to ignore
*
* Closes the stream, releasing resources related to it.
@@ -655,9 +655,9 @@
* @buffer: (array length=count) (element-type guint8): the buffer containing the data to write.
* @count: the number of bytes to write
* @io_priority: the io priority of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Request an asynchronous write of @count bytes from @buffer into
* the stream. When the operation is finished @callback will be called.
@@ -812,9 +812,9 @@
* @source: a #GInputStream.
* @flags: a set of #GOutputStreamSpliceFlags.
* @io_priority: the io priority of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback.
- * @user_data: user data passed to @callback.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
*
* Splices a stream asynchronously.
* When the operation is finished @callback will be called.
@@ -908,9 +908,9 @@
* g_output_stream_flush_async:
* @stream: a #GOutputStream.
* @io_priority: the io priority of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Flushes a stream asynchronously.
* For behaviour details see g_output_stream_flush().
@@ -1003,9 +1003,9 @@
* g_output_stream_close_async:
* @stream: A #GOutputStream.
* @io_priority: the io priority of the request.
- * @callback: callback to call when the request is satisfied
- * @user_data: the data to pass to callback function
- * @cancellable: optional cancellable object
+ * @cancellable: (allow-none): optional cancellable object
+ * @callback: (scope async): callback to call when the request is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Requests an asynchronous close of the stream, releasing resources
* related to it. When the operation is finished @callback will be
diff --git a/gio/goutputstream.h b/gio/goutputstream.h
index e28bded..995d0dd 100644
--- a/gio/goutputstream.h
+++ b/gio/goutputstream.h
@@ -100,7 +100,7 @@
int io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
- gpointer data);
+ gpointer user_data);
gssize (* splice_finish) (GOutputStream *stream,
GAsyncResult *result,
GError **error);
diff --git a/gio/gperiodic.c b/gio/gperiodic.c
deleted file mode 100644
index af7a2d5..0000000
--- a/gio/gperiodic.c
+++ /dev/null
@@ -1,765 +0,0 @@
-/*
- * Copyright © 2010 Codethink Limited
- *
- * 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 of the
- * licence, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- *
- * Author: Ryan Lortie <desrt@desrt.ca>
- */
-
-#include "config.h"
-
-#include "gperiodic.h"
-
-#include "gio-marshal.h"
-
-/**
- * SECTION:gperiodic
- * @title: GPeriodic
- * @short_description: a periodic event clock
- *
- * #GPeriodic is a periodic event clock that fires a configurable number
- * of times per second and is capable of being put into synch with an
- * external time source.
- *
- * A number of #GPeriodicTickFuncs are registered with
- * g_periodic_add() and are called each time the clock "ticks".
- *
- * The tick functions can report "damage" (ie: updates that need to be
- * performed) that are handled in a "repair" phase that follows all the
- * tick functions having been run. It is also possible to report damage
- * while the clock is not running, in which case the rate of repairs
- * will be rate limited as if the clock were running.
- *
- * #GPeriodic has a configurable priority range consisting of a high and
- * low value. Other sources with a priority higher than the high value
- * might starve #GPeriodic and sources with the priority lower than the
- * low value may be starved by #GPeriodic.
- *
- * #GPeriodic will engage in dynamic scheduling with respect to sources
- * that have their priorities within the high to low range. A given
- * #GPeriodic will ensure that the events dispatched from itself are
- * generally using less than 50% of the CPU (on average) if other tasks
- * are pending. If no other sources within the range are pending then
- * #GPeriodic will use up to all of the available CPU (which can lead to
- * starvation of lower-priority sources, as mentioned above). The 50%
- * figure is entirely arbitrary and may change or become configurable in
- * the future.
- *
- * For example, if a #GPeriodic has been set to run at 10Hz and a
- * particular iteration uses 140ms of time, then 2 ticks will be
- * "skipped" to give other sources a chance to run (ie: the next tick
- * will occur 300ms later rather than 100ms later, giving 160ms of time
- * for other sources).
- *
- * This means that the high priority value for #GPeriodic should be set
- * quite high (above anything else) and the low priority value for
- * #GPeriodic should be set lower than everything except true "idle"
- * handlers (ie: things that you want to run only when the program is
- * truly idle).
- *
- * #GPeriodic generally assumes that although the things attached to it
- * may be poorly behaved in terms of non-yielding behaviour (either
- * individually or in aggregate), the other sources on the main loop
- * should be "well behaved". Other sources should try not to block the
- * CPU for a substantial portion of the periodic interval.
- *
- * The sources attached to a #GPeriodic are permitted to be somewhat
- * less well-behaved because they are generally rendering the UI for the
- * user (which should be done smoothly) and also because they will be
- * throttled by #GPeriodic.
- *
- * #GPeriodic is intended to be used as a paint clock for managing
- * geometry updates and painting of windows.
- *
- * Since: 2.28
- **/
-
-/**
- * GPeriodic:
- *
- * #GPeriodic is an opaque structure type.
- *
- * Since: 2.28
- **/
-
-typedef struct
-{
- GPeriodicTickFunc callback;
- gpointer user_data;
- GDestroyNotify notify;
- guint id;
-} GPeriodicTick;
-
-typedef struct
-{
- GSource source;
- GPeriodic *periodic;
-} GPeriodicSource;
-
-struct _GPeriodicPrivate
-{
- GSource *source; /* GPeriodicSource */
- guint64 last_run;
- guint blocked;
- guint hz;
- guint skip_frames;
- guint stop_skip_id;
- gint low_priority;
-
- GSList *ticks; /* List<GPeriodicTick> */
-
- guint damaged : 1;
-
- /* debug */
- guint in_tick : 1;
- guint in_repair : 1;
-};
-
-G_DEFINE_TYPE (GPeriodic, g_periodic, G_TYPE_OBJECT)
-
-#define PERIODIC_FROM_SOURCE(src) (((GPeriodicSource *) (src))->periodic)
-
-enum
-{
- PROP_NONE,
- PROP_HZ,
- PROP_HIGH_PRIORITY,
- PROP_LOW_PRIORITY
-};
-
-static guint g_periodic_tick;
-static guint g_periodic_repair;
-
-static guint64
-g_periodic_get_microticks (GPeriodic *periodic)
-{
- return g_source_get_time (periodic->priv->source) * periodic->priv->hz;
-}
-
-static gboolean
-g_periodic_stop_skip (gpointer data)
-{
- GPeriodic *periodic = data;
-
- periodic->priv->skip_frames = 0;
-
- g_message ("Skipping frames ends");
-
- periodic->priv->stop_skip_id = 0;
-
- return FALSE;
-}
-
-static void
-g_periodic_real_tick (GPeriodic *periodic,
- gint64 timestamp)
-{
- GSList *iter;
-
- for (iter = periodic->priv->ticks; iter; iter = iter->next)
- {
- GPeriodicTick *tick = iter->data;
-
- tick->callback (periodic, timestamp, tick->user_data);
- }
-}
-
-static void
-g_periodic_real_repair (GPeriodic *periodic)
-{
- periodic->priv->damaged = FALSE;
-}
-
-static void
-g_periodic_run (GPeriodic *periodic)
-{
- gint64 start, usec;
-
- g_assert (periodic->priv->blocked == 0);
-
- start = g_get_monotonic_time ();
-
- if (periodic->priv->ticks)
- {
- guint64 microseconds;
-
- periodic->priv->in_tick = TRUE;
- microseconds = periodic->priv->last_run / periodic->priv->hz;
- g_signal_emit (periodic, g_periodic_tick, 0, microseconds);
- periodic->priv->in_tick = FALSE;
- }
-
- g_assert (periodic->priv->blocked == 0);
-
- if (periodic->priv->damaged)
- {
- periodic->priv->in_repair = TRUE;
- g_signal_emit (periodic, g_periodic_repair, 0);
- periodic->priv->in_repair = FALSE;
- }
-
- g_assert (!periodic->priv->damaged);
-
- usec = g_get_monotonic_time () - start;
- g_assert (usec >= 0);
-
- /* Take the time it took to render, multiply by two and round down to
- * a whole number of frames. This ensures that we don't take more
- * than 50% of the CPU with rendering.
- *
- * Examples (at 10fps for easy math. 1 frame = 100ms):
- *
- * 0-49ms to render: no frames skipped
- *
- * We used less than half of the time to render. OK. We will run
- * the next frame 100ms after this one ran (no skips).
- *
- * 50-99ms to render: 1 frame skipped
- *
- * We used more than half the time. Skip one frame so that we run
- * 200ms later rather than 100ms later. We already used up to
- * 99ms worth of that 200ms window, so that gives 101ms for other
- * things to run (50%). For figures closer to 50ms the other
- * stuff will actually get more than 50%.
- *
- * 100-150ms to render: 2 frames skipped, etc.
- */
- periodic->priv->skip_frames = 2 * usec * periodic->priv->hz / 1000000;
-
- if (periodic->priv->skip_frames)
- {
- g_message ("Slow painting; (possibly) skipping %d frames\n",
- periodic->priv->skip_frames);
-
- if (periodic->priv->stop_skip_id == 0)
- periodic->priv->stop_skip_id =
- g_idle_add_full (periodic->priv->low_priority,
- g_periodic_stop_skip,
- periodic, NULL);
- }
-}
-
-static gboolean
-g_periodic_prepare (GSource *source,
- gint *timeout)
-{
- GPeriodic *periodic = PERIODIC_FROM_SOURCE (source);
-
- if ((periodic->priv->ticks || periodic->priv->damaged) && !periodic->priv->blocked)
- /* We need to run. */
- {
- gint64 remaining;
-
- remaining = periodic->priv->last_run + 1000000 * (1 + periodic->priv->skip_frames) -
- g_periodic_get_microticks (periodic);
-
- if (remaining > 0)
- /* It's too soon. Wait some more before running. */
- {
- /* Round-up the timeout.
- *
- * If we round down, then we will quite often wake to discover
- * that not enough time has passed and want to sleep again, so
- * save ourselves the future bother.
- */
- *timeout = (remaining + periodic->priv->hz - 1) / periodic->priv->hz / 1000;
-
- return FALSE;
- }
-
- else
- /* Enough time has passed. Run now. */
- {
- *timeout = 0;
- return TRUE;
- }
- }
- else
- /* We shouldn't be running now at all. */
- {
- *timeout = -1;
- return FALSE;
- }
-}
-
-static gboolean
-g_periodic_check (GSource *source)
-{
- GPeriodic *periodic = PERIODIC_FROM_SOURCE (source);
-
- if ((periodic->priv->ticks || periodic->priv->damaged) && !periodic->priv->blocked)
- /* We need to run. */
- {
- guint64 now = g_periodic_get_microticks (periodic);
-
- /* Run if it's not too soon. */
- return !(now < periodic->priv->last_run + 1000000 * (periodic->priv->skip_frames + 1));
- }
-
- else
- /* We shouldn't be running now at all. */
- return FALSE;
-}
-
-static gboolean
-g_periodic_dispatch (GSource *source,
- GSourceFunc callback,
- gpointer user_data)
-{
- GPeriodic *periodic = PERIODIC_FROM_SOURCE (source);
- guint64 elapsed_ticks;
- guint64 now;
-
- g_assert (periodic->priv->blocked == 0);
-
- /* Update the last_run.
- *
- * In the normal case we want to add exactly 1 tick to it. This
- * ensures that the clock runs at the proper rate in the normal case
- * (ie: the dispatch overhead time is not lost).
- *
- * If more than one tick has elapsed, we set it equal to the current
- * time. This has two purposes:
- *
- * - sets last_run to something reasonable if the clock is running
- * for the first time or after a long period of inactivity
- *
- * - resets our stride if we missed a frame
- */
- now = g_periodic_get_microticks (periodic);
- elapsed_ticks = (now - periodic->priv->last_run) / 1000000;
- g_assert (elapsed_ticks > 0);
-
- if G_LIKELY (elapsed_ticks == 1)
- periodic->priv->last_run += 1000000;
- else
- periodic->priv->last_run = now;
-
- g_periodic_run (periodic);
-
- return TRUE;
-}
-
-static void
-g_periodic_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GPeriodic *periodic = G_PERIODIC (object);
-
- switch (prop_id)
- {
- case PROP_HIGH_PRIORITY:
- g_value_set_int (value, g_source_get_priority (periodic->priv->source));
- break;
-
- case PROP_LOW_PRIORITY:
- g_value_set_int (value, periodic->priv->low_priority);
- break;
-
- case PROP_HZ:
- g_value_set_uint (value, periodic->priv->hz);
- break;
-
- default:
- g_assert_not_reached ();
- }
-}
-
-static void
-g_periodic_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GPeriodic *periodic = G_PERIODIC (object);
-
- switch (prop_id)
- {
- case PROP_HIGH_PRIORITY:
- g_source_set_priority (periodic->priv->source, g_value_get_int (value));
- break;
-
- case PROP_LOW_PRIORITY:
- periodic->priv->low_priority = g_value_get_int (value);
- break;
-
- case PROP_HZ:
- periodic->priv->hz = g_value_get_uint (value);
- break;
-
- default:
- g_assert_not_reached ();
- }
-}
-
-static void
-g_periodic_finalize (GObject *object)
-{
- GPeriodic *periodic = G_PERIODIC (object);
-
- g_source_destroy (periodic->priv->source);
- g_source_unref (periodic->priv->source);
-
- G_OBJECT_CLASS (g_periodic_parent_class)
- ->finalize (object);
-}
-
-static void
-g_periodic_init (GPeriodic *periodic)
-{
- static GSourceFuncs source_funcs = {
- g_periodic_prepare, g_periodic_check, g_periodic_dispatch
- };
-
- periodic->priv = G_TYPE_INSTANCE_GET_PRIVATE (periodic,
- G_TYPE_PERIODIC,
- GPeriodicPrivate);
-
- periodic->priv->source = g_source_new (&source_funcs,
- sizeof (GPeriodicSource));
- ((GPeriodicSource *) periodic->priv->source)->periodic = periodic;
- g_source_attach (periodic->priv->source,
- g_main_context_get_thread_default ());
-}
-
-static void
-g_periodic_class_init (GPeriodicClass *class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (class);
-
- class->tick = g_periodic_real_tick;
- class->repair = g_periodic_real_repair;
-
- object_class->get_property = g_periodic_get_property;
- object_class->set_property = g_periodic_set_property;
- object_class->finalize = g_periodic_finalize;
-
- /**
- * GPeriodic::tick
- * @periodic: the #GPeriodic on which the signal was emitted
- * @timestamp: the timestamp at the time of the tick
- *
- * The ::tick signal gets emitted whenever the clock "fires".
- */
- g_periodic_tick = g_signal_new ("tick", G_TYPE_PERIODIC,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GPeriodicClass, tick),
- NULL, NULL, _gio_marshal_VOID__INT64,
- G_TYPE_NONE, 1, G_TYPE_INT64);
-
- /**
- * GPeriodic::repair:
- * @periodic: the #GPeriodic on which the signal was emitted
- *
- * The ::repair signal gets emitted to start the "repair" phase.
- */
- g_periodic_repair = g_signal_new ("repair", G_TYPE_PERIODIC,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GPeriodicClass, repair),
- NULL, NULL, g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- g_object_class_install_property (object_class, PROP_HZ,
- g_param_spec_uint ("hz", "ticks per second",
- "rate (in Hz) at which the 'tick' signal is emitted",
- 1, 120, 1, G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (object_class, PROP_HIGH_PRIORITY,
- g_param_spec_int ("high-priority", "high priority level",
- "the GSource priority level to run at",
- G_MININT, G_MAXINT, 0, G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (object_class, PROP_LOW_PRIORITY,
- g_param_spec_int ("low-priority", "low priority level",
- "ignore tasks below this priority level",
- G_MININT, G_MAXINT, 0, G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
-
- g_type_class_add_private (class, sizeof (GPeriodicPrivate));
-}
-
-/**
- * g_periodic_block:
- * @periodic: a #GPeriodic clock
- *
- * Temporarily blocks @periodic from running in order to bring it in
- * synch with an external time source.
- *
- * This function must be called from a handler of the #GPeriodic::repair
- * signal.
- *
- * If this function is called, emission of the #GPeriodic::tick signal
- * will be suspended until g_periodic_unblock() is called an equal number
- * of times. Once that happens, the ::tick signal will run immediately
- * and future ::tick signals will be emitted relative to the time at
- * which the last call to g_periodic_unblock() occured.
- *
- * Since: 2.28
- **/
-void
-g_periodic_block (GPeriodic *periodic)
-{
- g_return_if_fail (G_IS_PERIODIC (periodic));
- g_return_if_fail (periodic->priv->in_repair);
-
- periodic->priv->blocked++;
-}
-
-/**
- * g_periodic_unblock:
- * @periodic: a #GPeriodic clock
- * @unblock_time: the unblock time
- *
- * Reverses the effect of a previous call to g_periodic_block().
- *
- * If this call removes the last block, the ::tick signal is
- * immediately run. The ::repair signal may also be run if the clock
- * is marked as damaged.
- *
- * @unblock_time is the monotonic time, as per g_get_monotonic_time(),
- * at which the event causing the unblock occured.
- *
- * This function may not be called from handlers of any signal emitted
- * by @periodic.
- *
- * Since: 2.28
- **/
-void
-g_periodic_unblock (GPeriodic *periodic,
- gint64 unblock_time)
-{
- g_return_if_fail (G_IS_PERIODIC (periodic));
- g_return_if_fail (!periodic->priv->in_repair);
- g_return_if_fail (!periodic->priv->in_tick);
- g_return_if_fail (periodic->priv->blocked);
-
- if (--periodic->priv->blocked)
- {
- periodic->priv->last_run = unblock_time * periodic->priv->hz;
- g_periodic_run (periodic);
- }
-}
-
-/**
- * g_periodic_add:
- * @periodic: a #GPeriodic clock
- * @callback: a #GPeriodicTickFunc function
- * @user_data: data for @callback
- * @notify: for freeing @user_data when it is no longer needed
- *
- * Request periodic calls to @callback to start. The periodicity of
- * the calls is determined by the #GPeriodic:hz property.
- *
- * This function may not be called from a handler of the ::repair
- * signal, but it is perfectly reasonable to call it from a handler
- * of the ::tick signal.
- *
- * The callback may be cancelled later by using g_periodic_remove()
- * on the return value of this function.
- *
- * Returns: a non-zero tag identifying this callback
- *
- * Since: 2.28
- **/
-
-/**
- * GPeriodicTickFunc:
- * @periodic: the #GPeriodic clock that is ticking
- * @timestamp: the timestamp at the time of the tick
- * @user_data: the user data given to g_periodic_add()
- *
- * The signature of the callback function that is called when the
- * #GPeriodic clock ticks.
- *
- * The @timestamp parameter is equal for all callbacks called during
- * a particular tick on a given clock.
- *
- * Since: 2.28
- **/
-guint
-g_periodic_add (GPeriodic *periodic,
- GPeriodicTickFunc callback,
- gpointer user_data,
- GDestroyNotify notify)
-{
- GPeriodicTick *tick;
- static guint id;
-
- g_return_val_if_fail (G_IS_PERIODIC (periodic), 0);
- g_return_val_if_fail (!periodic->priv->in_repair, 0);
-
- tick = g_slice_new (GPeriodicTick);
- tick->callback = callback;
- tick->user_data = user_data;
- tick->notify = notify;
- tick->id = ++id;
-
- periodic->priv->ticks = g_slist_prepend (periodic->priv->ticks, tick);
-
- return tick->id;
-}
-
-/**
- * g_periodic_remove:
- * @periodic: a #GPeriodic clock
- * @tag: the ID of the callback to remove
- *
- * Reverse the effect of a previous call to g_periodic_start().
- *
- * @tag is the ID returned by that function.
- *
- * This function may not be called from a handler of the ::repair
- * signal, but it is perfectly reasonable to call it from a handler
- * of the ::tick signal.
- *
- * Since: 2.28
- **/
-void
-g_periodic_remove (GPeriodic *periodic,
- guint tag)
-{
- GSList **iter;
-
- g_return_if_fail (G_IS_PERIODIC (periodic));
- g_return_if_fail (!periodic->priv->in_repair);
-
- for (iter = &periodic->priv->ticks; *iter; iter = &(*iter)->next)
- {
- GPeriodicTick *tick = (*iter)->data;
-
- if (tick->id == tag)
- {
- /* do this first, in case the destroy notify re-enters */
- *iter = g_slist_remove (*iter, tick);
-
- if (tick->notify)
- tick->notify (tick->user_data);
-
- g_slice_free (GPeriodicTick, tick);
- return;
- }
- }
-
- g_critical ("GPeriodic: tag %u not registered", tag);
-}
-
-/**
- * g_periodic_damaged:
- * @periodic: a #GPeriodic clock
- *
- * Report damage and schedule the ::repair signal to be emitted
- * during the next repair phase.
- *
- * You may not call this function during the repair phase.
- *
- * Since: 2.28
- **/
-void
-g_periodic_damaged (GPeriodic *periodic)
-{
- g_return_if_fail (G_IS_PERIODIC (periodic));
- g_return_if_fail (!periodic->priv->in_repair);
-
- periodic->priv->damaged = TRUE;
-}
-
-/**
- * g_periodic_get_hz:
- * @periodic: a #GPeriodic clock
- *
- * Gets the frequency of the clock.
- *
- * Returns: the frequency of the clock, in Hz
- *
- * Since: 2.28
- **/
-guint
-g_periodic_get_hz (GPeriodic *periodic)
-{
- return periodic->priv->hz;
-}
-
-/**
- * g_periodic_get_high_priority:
- * @periodic: a #GPeriodic clock
- *
- * Gets the #GSource priority of the clock.
- *
- * Returns: the high priority level
- *
- * Since: 2.28
- **/
-gint
-g_periodic_get_high_priority (GPeriodic *periodic)
-{
- return g_source_get_priority (periodic->priv->source);
-}
-
-/**
- * g_periodic_get_low_priority:
- * @periodic: a #GPeriodic clock
- *
- * Gets the priority level that #GPeriodic uses to check for mainloop
- * inactivity. Other sources scheduled below this level of priority are
- * effectively ignored by #GPeriodic and may be starved.
- *
- * Returns: the low priority level
- *
- * Since: 2.28
- **/
-gint
-g_periodic_get_low_priority (GPeriodic *periodic)
-{
- return periodic->priv->low_priority;
-}
-
-/**
- * g_periodic_new:
- * @hz: the frequency of the new clock in Hz (between 1 and 120)
- * @high_priority: the #GSource priority to run at
- * @low_priority: ignore tasks below this priority
- *
- * Creates a new #GPeriodic clock.
- *
- * The created clock is attached to the thread-default main context
- * in effect at the time of the call to this function.
- * See g_main_context_push_thread_default() for more information.
- *
- * Due to the fact that #GMainContext is only accurate to the nearest
- * millisecond, the frequency can not meaningfully get too close to
- * 1000. For this reason, it is arbitrarily bounded at 120.
- *
- * Returns: a new #GPeriodic
- *
- * Since: 2.28
- **/
-GPeriodic *
-g_periodic_new (guint hz,
- gint high_priority,
- gint low_priority)
-{
- g_return_val_if_fail (1 <= hz && hz <= 120, NULL);
-
- return g_object_new (G_TYPE_PERIODIC,
- "hz", hz,
- "high-priority", high_priority,
- "low-priority", low_priority,
- NULL);
-}
diff --git a/gio/gperiodic.h b/gio/gperiodic.h
deleted file mode 100644
index 3f61fc7..0000000
--- a/gio/gperiodic.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright © 2010 Codethink Limited
- *
- * 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 of the
- * licence, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- *
- * Author: Ryan Lortie <desrt@desrt.ca>
- */
-
-#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
-#error "Only <gio/gio.h> can be included directly."
-#endif
-
-#ifndef __G_PERIODIC_H__
-#define __G_PERIODIC_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define G_TYPE_PERIODIC (g_periodic_get_type ())
-#define G_PERIODIC(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
- G_TYPE_PERIODIC, GPeriodic))
-#define G_IS_PERIODIC(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_PERIODIC))
-
-typedef struct _GPeriodicPrivate GPeriodicPrivate;
-typedef struct _GPeriodicClass GPeriodicClass;
-typedef struct _GPeriodic GPeriodic;
-
-struct _GPeriodicClass
-{
- GObjectClass parent_class;
-
- void (*tick) (GPeriodic *periodic,
- gint64 timestamp);
- void (*repair) (GPeriodic *periodic);
-
- /*< private >*/
- gpointer padding[14];
-};
-
-struct _GPeriodic
-{
- GObject parent_instance;
- /*< private >*/
- GPeriodicPrivate *priv;
-};
-
-typedef void (* GPeriodicTickFunc) (GPeriodic *periodic,
- gint64 timestamp,
- gpointer user_data);
-
-GType g_periodic_get_type (void);
-GPeriodic * g_periodic_new (guint hz,
- gint high_priority,
- gint low_priority);
-guint g_periodic_get_hz (GPeriodic *periodic);
-gint g_periodic_get_high_priority (GPeriodic *periodic);
-gint g_periodic_get_low_priority (GPeriodic *periodic);
-
-guint g_periodic_add (GPeriodic *periodic,
- GPeriodicTickFunc callback,
- gpointer user_data,
- GDestroyNotify notify);
-void g_periodic_remove (GPeriodic *periodic,
- guint tag);
-
-void g_periodic_block (GPeriodic *periodic);
-void g_periodic_unblock (GPeriodic *periodic,
- gint64 unblock_time);
-
-void g_periodic_damaged (GPeriodic *periodic);
-
-G_END_DECLS
-
-#endif /* __G_PERIODIC_H__ */
diff --git a/gio/gpollableinputstream.c b/gio/gpollableinputstream.c
index d6937d8..912eaea 100644
--- a/gio/gpollableinputstream.c
+++ b/gio/gpollableinputstream.c
@@ -115,9 +115,9 @@
}
/**
- * g_pollable_input_stream_create_source:
+ * g_pollable_input_stream_create_source: (skip)
* @stream: a #GPollableInputStream.
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
*
* Creates a #GSource that triggers when @stream can be read, or
* @cancellable is triggered or an error occurs. The callback on the
@@ -128,7 +128,7 @@
* triggers, so you should use g_pollable_input_stream_read_nonblocking()
* rather than g_input_stream_read() from the callback.
*
- * Returns: a new #GSource
+ * Returns: (transfer full): a new #GSource
*
* Since: 2.28
*/
@@ -165,7 +165,7 @@
* @buffer: a buffer to read data into (which should be at least @size
* bytes long).
* @size: the number of bytes you want to read
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Attempts to read up to @size bytes from @stream into @buffer, as
@@ -180,6 +180,7 @@
* may happen if you call this method after a source triggers due
* to having been cancelled.
*
+ * Virtual: read_nonblocking
* Return value: the number of bytes read, or -1 on error (including
* %G_IO_ERROR_WOULD_BLOCK).
*/
@@ -275,7 +276,7 @@
};
/**
- * g_pollable_source_new:
+ * g_pollable_source_new: (skip)
* @pollable_stream: the stream associated with the new source
*
* Utility method for #GPollableInputStream and #GPollableOutputStream
@@ -284,7 +285,7 @@
* anything on its own; use g_source_add_child_source() to add other
* sources to it to cause it to trigger.
*
- * Return value: the new #GSource.
+ * Return value: (transfer full): the new #GSource.
*
* Since: 2.28
*/
diff --git a/gio/gpollableoutputstream.c b/gio/gpollableoutputstream.c
index b4efb3f..7879e88 100644
--- a/gio/gpollableoutputstream.c
+++ b/gio/gpollableoutputstream.c
@@ -116,9 +116,9 @@
}
/**
- * g_pollable_output_stream_create_source:
+ * g_pollable_output_stream_create_source: (skip)
* @stream: a #GPollableOutputStream.
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
*
* Creates a #GSource that triggers when @stream can be written, or
* @cancellable is triggered or an error occurs. The callback on the
@@ -129,7 +129,7 @@
* triggers, so you should use g_pollable_output_stream_write_nonblocking()
* rather than g_output_stream_write() from the callback.
*
- * Returns: a new #GSource
+ * Returns: (transfer full): a new #GSource
*
* Since: 2.28
*/
@@ -163,9 +163,10 @@
/**
* g_pollable_output_stream_write_nonblocking:
* @stream: a #GPollableOutputStream
- * @buffer: a buffer to write data from
+ * @buffer: (array length=size) (element-type guint8): a buffer to write
+ * data from
* @size: the number of bytes you want to write
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Attempts to write up to @size bytes from @buffer to @stream, as
@@ -180,6 +181,7 @@
* may happen if you call this method after a source triggers due
* to having been cancelled.
*
+ * Virtual: write_nonblocking
* Return value: the number of bytes written, or -1 on error (including
* %G_IO_ERROR_WOULD_BLOCK).
*/
diff --git a/gio/gproxy.c b/gio/gproxy.c
index b40e23c..d24e86e 100644
--- a/gio/gproxy.c
+++ b/gio/gproxy.c
@@ -56,7 +56,8 @@
* Lookup "gio-proxy" extension point for a proxy implementation that supports
* specified protocol.
*
- * Return value: return a #GProxy or NULL if protocol is not supported.
+ * Return value: (transfer full): return a #GProxy or NULL if protocol
+ * is not supported.
*
* Since: 2.26
**/
@@ -84,7 +85,7 @@
* @proxy: a #GProxy
* @connection: a #GIOStream
* @proxy_address: a #GProxyAddress
- * @cancellable: a #GCancellable
+ * @cancellable: (allow-none): a #GCancellable
* @error: return #GError
*
* Given @connection to communicate with a proxy (eg, a
@@ -123,9 +124,9 @@
* @proxy: a #GProxy
* @connection: a #GIOStream
* @proxy_address: a #GProxyAddress
- * @cancellable: a #GCancellable
- * @callback: a #GAsyncReadyCallback
- * @user_data: callback data
+ * @cancellable: (allow-none): a #GCancellable
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): callback data
*
* Asynchronous version of g_proxy_connect().
*
diff --git a/gio/gproxyaddress.c b/gio/gproxyaddress.c
index 61dfc7d..68ef294 100644
--- a/gio/gproxyaddress.c
+++ b/gio/gproxyaddress.c
@@ -233,8 +233,10 @@
* @protocol: The proxy protocol to support, in lower case (e.g. socks, http).
* @dest_hostname: The destination hostname the the proxy should tunnel to.
* @dest_port: The destination port to tunnel to.
- * @username: The username to authenticate to the proxy server (or %NULL).
- * @password: The password to authenticate to the proxy server (or %NULL).
+ * @username: (allow-none): The username to authenticate to the proxy server
+ * (or %NULL).
+ * @password: (allow-none): The password to authenticate to the proxy server
+ * (or %NULL).
*
* Creates a new #GProxyAddress for @inetaddr with @protocol that should
* tunnel through @dest_hostname and @dest_port.
diff --git a/gio/gproxyresolver.c b/gio/gproxyresolver.c
index f6b6001..f273ecf 100644
--- a/gio/gproxyresolver.c
+++ b/gio/gproxyresolver.c
@@ -141,7 +141,7 @@
* g_proxy_resolver_lookup:
* @resolver: a #GProxyResolver
* @uri: a URI representing the destination to connect to
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: return location for a #GError, or %NULL
*
* Looks into the system proxy configuration to determine what proxy,
@@ -160,8 +160,9 @@
* Direct connection should not be attempted unless it is part of the
* returned array of proxies.
*
- * Return value: (transfer full) (element-type utf8): A NULL-terminated array of proxy URIs. Must be freed with
- * g_strfreev().
+ * Return value: (transfer full) (array zero-terminated=1): A
+ * NULL-terminated array of proxy URIs. Must be freed
+ * with g_strfreev().
*
* Since: 2.26
*/
@@ -185,9 +186,9 @@
* g_proxy_resolver_lookup_async:
* @resolver: a #GProxyResolver
* @uri: a URI representing the destination to connect to
- * @cancellable: a #GCancellable, or %NULL
- * @callback: callback to call after resolution completes
- * @user_data: data for @callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
* Asynchronous lookup of proxy. See g_proxy_resolver_lookup() for more
* details.
@@ -221,8 +222,9 @@
* g_proxy_resolver_lookup_async() is complete. See
* g_proxy_resolver_lookup() for more details.
*
- * Return value: (transfer full) (element-type utf8): A NULL-terminated array of proxy URIs. Must be freed with
- * g_strfreev().
+ * Return value: (transfer full) (array zero-terminated=1): A
+ * NULL-terminated array of proxy URIs. Must be freed
+ * with g_strfreev().
*
* Since: 2.26
*/
diff --git a/gio/gresolver.c b/gio/gresolver.c
index 01c6db0..657505b 100644
--- a/gio/gresolver.c
+++ b/gio/gresolver.c
@@ -215,7 +215,7 @@
* g_resolver_lookup_by_name:
* @resolver: a #GResolver
* @hostname: the hostname to look up
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: return location for a #GError, or %NULL
*
* Synchronously resolves @hostname to determine its associated IP
@@ -279,9 +279,9 @@
* g_resolver_lookup_by_name_async:
* @resolver: a #GResolver
* @hostname: the hostname to look up the address of
- * @cancellable: a #GCancellable, or %NULL
- * @callback: callback to call after resolution completes
- * @user_data: data for @callback
+ * @cancellable: (allow-none): 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
@@ -401,7 +401,7 @@
* g_resolver_lookup_by_address:
* @resolver: a #GResolver
* @address: the address to reverse-resolve
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: return location for a #GError, or %NULL
*
* Synchronously reverse-resolves @address to determine its
@@ -437,9 +437,9 @@
* g_resolver_lookup_by_address_async:
* @resolver: a #GResolver
* @address: the address to reverse-resolve
- * @cancellable: a #GCancellable, or %NULL
- * @callback: callback to call after resolution completes
- * @user_data: data for @callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
* Begins asynchronously reverse-resolving @address to determine its
* associated hostname, and eventually calls @callback, which must
@@ -521,7 +521,7 @@
* @service: the service type to look up (eg, "ldap")
* @protocol: the networking protocol to use for @service (eg, "tcp")
* @domain: the DNS domain to look up the service in
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: return location for a #GError, or %NULL
*
* Synchronously performs a DNS SRV lookup for the given @service and
@@ -585,9 +585,9 @@
* @service: the service type to look up (eg, "ldap")
* @protocol: the networking protocol to use for @service (eg, "tcp")
* @domain: the DNS domain to look up the service in
- * @cancellable: a #GCancellable, or %NULL
- * @callback: callback to call after resolution completes
- * @user_data: data for @callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): callback to call after resolution completes
+ * @user_data: (closure): data for @callback
*
* Begins asynchronously performing a DNS SRV lookup for the given
* @service and @protocol in the given @domain, and eventually calls
diff --git a/gio/gschema.dtd b/gio/gschema.dtd
index 218b544..96ff014 100644
--- a/gio/gschema.dtd
+++ b/gio/gschema.dtd
@@ -1,10 +1,12 @@
<!ELEMENT schemalist (schema|enum)* >
<!ATTLIST schemalist gettext-domain #IMPLIED >
-<!ELEMENT schema (key|child)* >
+<!ELEMENT schema (key|child|override)* >
<!ATTLIST schema id CDATA #REQUIRED
path CDATA #IMPLIED
- gettext-domain CDATA #IMPLIED >
+ gettext-domain CDATA #IMPLIED
+ extends CDATA #IMPLIED
+ list-of CDATA #IMPLIED >
<!-- enumerated and flags types -->
<!-- each value element maps a nick to a numeric value -->
@@ -64,3 +66,8 @@
<!ELEMENT child EMPTY >
<!ATTLIST child name CDATA #REQUIRED
schema CDATA #REQUIRED >
+
+<!ELEMENT override (#PCDATA) >
+<!ATTLIST override name CDATA #REQUIRED
+ l10n CDATA #IMPLIED
+ context CDATA #IMPLIED >
diff --git a/gio/gseekable.c b/gio/gseekable.c
index 976243d..cde639b 100644
--- a/gio/gseekable.c
+++ b/gio/gseekable.c
@@ -89,7 +89,7 @@
* @seekable: a #GSeekable.
* @offset: a #goffset.
* @type: a #GSeekType.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
@@ -143,7 +143,7 @@
* g_seekable_truncate:
* @seekable: a #GSeekable.
* @offset: a #goffset.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
diff --git a/gio/gsettings-tool.c b/gio/gsettings-tool.c
index a7447ae..de43782 100644
--- a/gio/gsettings-tool.c
+++ b/gio/gsettings-tool.c
@@ -408,7 +408,9 @@
* To handle this case, try to parse again with an extra level
* of quotes.
*/
- if (new == NULL && strstr (error->message, "unknown keyword"))
+ if (new == NULL &&
+ g_error_matches (error, G_VARIANT_PARSE_ERROR,
+ G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD))
{
value = freeme = g_strdup_printf ("\"%s\"", value);
new = g_variant_parse (type, value, NULL, NULL, NULL);
diff --git a/gio/gsettings.c b/gio/gsettings.c
index b31f462..c9a23b7 100644
--- a/gio/gsettings.c
+++ b/gio/gsettings.c
@@ -223,6 +223,7 @@
PROP_BACKEND,
PROP_PATH,
PROP_HAS_UNAPPLIED,
+ PROP_DELAY_APPLY
};
enum
@@ -448,6 +449,10 @@
g_value_set_boolean (value, g_settings_get_has_unapplied (settings));
break;
+ case PROP_DELAY_APPLY:
+ g_value_set_boolean (value, settings->priv->delayed != NULL);
+ break;
+
default:
g_assert_not_reached ();
}
@@ -567,7 +572,8 @@
/**
* GSettings::change-event:
* @settings: the object on which the signal was emitted
- * @keys: an array of #GQuark<!-- -->s for the changed keys, or %NULL
+ * @keys: (array length=n_keys) (element-type GQuark) (allow-none):
+ * an array of #GQuark<!-- -->s for the changed keys, or %NULL
* @n_keys: the length of the @keys array, or 0
* @returns: %TRUE to stop other handlers from being invoked for the
* event. FALSE to propagate the event further.
@@ -612,7 +618,7 @@
g_settings_signals[SIGNAL_WRITABLE_CHANGED] =
g_signal_new ("writable-changed", G_TYPE_SETTINGS,
G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED,
- G_STRUCT_OFFSET (GSettingsClass, changed),
+ G_STRUCT_OFFSET (GSettingsClass, writable_changed),
NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE,
1, G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE);
@@ -701,6 +707,20 @@
FALSE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GSettings:delay-apply:
+ *
+ * Whether the #GSettings object is in 'delay-apply' mode. See
+ * g_settings_delay() for details.
+ *
+ * Since: 2.28
+ */
+ g_object_class_install_property (object_class, PROP_DELAY_APPLY,
+ g_param_spec_boolean ("delay-apply",
+ P_("Delay-apply mode"),
+ P_("Whether this settings object is in 'delay-apply' mode"),
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
}
/* Construction (new, new_with_path, etc.) {{{1 */
@@ -1588,8 +1608,8 @@
* g_settings_get_mapped:
* @settings: a #GSettings object
* @key: the key to get the value for
- * @mapping: the function to map the value in the settings database to
- * the value used by the application
+ * @mapping: (scope call): the function to map the value in the
+ * settings database to the value used by the application
* @user_data: user data for @mapping
* @returns: (transfer full): the result, which may be %NULL
*
@@ -1887,16 +1907,15 @@
* g_settings_get_strv:
* @settings: a #GSettings object
* @key: the key to get the value for
- * @returns: a newly-allocated, %NULL-terminated array of strings
+ * @returns: (array zero-terminated=1) (transfer full): a
+ * newly-allocated, %NULL-terminated array of strings, the value that
+ * is stored at @key in @settings.
*
* A convenience variant of g_settings_get() for string arrays.
*
* It is a programmer error to give a @key that isn't specified as
* having an array of strings type in the schema for @settings.
*
- * Returns: (array zero-terminated=1) (transfer full): the value that is
- * stored at @key in @settings.
- *
* Since: 2.26
*/
gchar **
@@ -1976,6 +1995,8 @@
g_settings_backend_watch (settings->priv->backend,
&listener_vtable, G_OBJECT (settings),
settings->priv->main_context);
+
+ g_object_notify (G_OBJECT (settings), "delay-apply");
}
/**
@@ -2119,7 +2140,7 @@
* @returns: (transfer full): a 'child' settings object
*
* Creates a 'child' settings object which has a base path of
- * <replaceable>base-path</replaceable>/@name", where
+ * <replaceable>base-path</replaceable>/@name, where
* <replaceable>base-path</replaceable> is the base path of @settings.
*
* The schema for the child settings object must have been declared
@@ -2558,7 +2579,7 @@
* g_settings_bind:
* @settings: a #GSettings object
* @key: the key to bind
- * @object: a #GObject
+ * @object: (type GObject.Object): a #GObject
* @property: the name of the property to bind
* @flags: flags for the binding
*
@@ -2609,10 +2630,10 @@
}
/**
- * g_settings_bind_with_mapping:
+ * g_settings_bind_with_mapping: (skip)
* @settings: a #GSettings object
* @key: the key to bind
- * @object: a #GObject
+ * @object: (type GObject.Object): a #GObject
* @property: the name of the property to bind
* @flags: flags for the binding
* @get_mapping: a function that gets called to convert values
@@ -2825,7 +2846,7 @@
* g_settings_bind_writable:
* @settings: a #GSettings object
* @key: the key to bind
- * @object: a #GObject
+ * @object: (type GObject.Object):a #GObject
* @property: the name of a boolean property to bind
* @inverted: whether to 'invert' the value
*
diff --git a/gio/gsettings.h b/gio/gsettings.h
index 57c15f6..f30c44a 100644
--- a/gio/gsettings.h
+++ b/gio/gsettings.h
@@ -188,8 +188,9 @@
/**
* GSettingsGetMapping:
* @value: the #GVariant to map, or %NULL
- * @result: the result of the mapping
- * @user_data: the user data that was passed to g_settings_get_mapped()
+ * @result: (out): the result of the mapping
+ * @user_data: (closure): the user data that was passed to
+ * g_settings_get_mapped()
* @returns: %TRUE if the conversion succeeded, %FALSE in case of an error
*
* The type of the function that is used to convert from a value stored
diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c
index 954a4ac..ee0a93f 100644
--- a/gio/gsettingsbackend.c
+++ b/gio/gsettingsbackend.c
@@ -24,7 +24,6 @@
#include "config.h"
#include "gsettingsbackendinternal.h"
-#include "gnullsettingsbackend.h"
#include "gsimplepermission.h"
#include "giomodule-priv.h"
#include "gio-marshal.h"
@@ -402,7 +401,7 @@
* g_settings_backend_keys_changed:
* @backend: a #GSettingsBackend implementation
* @path: the path containing the changes
- * @items: the %NULL-terminated list of changed keys
+ * @items: (array zero-terminated=1): the %NULL-terminated list of changed keys
* @origin_tag: the origin tag
*
* Signals that a list of keys have possibly changed. Backend
@@ -610,9 +609,11 @@
/**
* g_settings_backend_flatten_tree:
* @tree: a #GTree containing the changes
- * @path: the location to save the path
- * @keys: the location to save the relative keys
- * @values: the location to save the values, or %NULL
+ * @path: (out): the location to save the path
+ * @keys: (out) (transfer container) (array zero-terminated=1): the
+ * location to save the relative keys
+ * @values: (out) (allow-none) (transfer container) (array zero-terminated=1):
+ * the location to save the values, or %NULL
*
* Calculate the longest common prefix of all keys in a tree and write
* out an array of the key names relative to that prefix and,
@@ -925,15 +926,17 @@
g_free, (GDestroyNotify) g_variant_unref);
}
-/*< private >
+/**
* g_settings_backend_get_default:
- * @returns: the default #GSettingsBackend
+ * @returns: (transfer full): the default #GSettingsBackend
*
* Returns the default #GSettingsBackend. It is possible to override
* the default by setting the <envar>GSETTINGS_BACKEND</envar>
* environment variable to the name of a settings backend.
*
* The user gets a reference to the backend.
+ *
+ * Since: 2.28
*/
GSettingsBackend *
g_settings_backend_get_default (void)
diff --git a/gio/gsettingsbackend.h b/gio/gsettingsbackend.h
index 2f4aeaa..2854529 100644
--- a/gio/gsettingsbackend.h
+++ b/gio/gsettingsbackend.h
@@ -148,10 +148,16 @@
GTree *tree,
gpointer origin_tag);
+GSettingsBackend * g_settings_backend_get_default (void);
+
GSettingsBackend * g_keyfile_settings_backend_new (const gchar *filename,
const gchar *root_path,
const gchar *root_group);
+GSettingsBackend * g_null_settings_backend_new (void);
+
+GSettingsBackend * g_memory_settings_backend_new (void);
+
G_END_DECLS
#endif /* __G_SETTINGS_BACKEND_H__ */
diff --git a/gio/gsettingsbackendinternal.h b/gio/gsettingsbackendinternal.h
index 6a4230c..8a423e0 100644
--- a/gio/gsettingsbackendinternal.h
+++ b/gio/gsettingsbackendinternal.h
@@ -126,8 +126,12 @@
const gchar *id);
G_GNUC_INTERNAL
-GSettingsBackend * g_settings_backend_get_default (void);
-G_GNUC_INTERNAL
void g_settings_backend_sync_default (void);
+G_GNUC_INTERNAL
+GType g_null_settings_backend_get_type (void);
+
+G_GNUC_INTERNAL
+GType g_memory_settings_backend_get_type (void);
+
#endif /* __G_SETTINGS_BACKEND_INTERNAL_H__ */
diff --git a/gio/gsimpleactiongroup.c b/gio/gsimpleactiongroup.c
index ecc1dce..df359b9 100644
--- a/gio/gsimpleactiongroup.c
+++ b/gio/gsimpleactiongroup.c
@@ -160,7 +160,7 @@
if (action == NULL)
return;
- return g_action_set_state (action, value);
+ g_action_set_state (action, value);
}
static void
@@ -176,7 +176,7 @@
if (action == NULL)
return;
- return g_action_activate (action, parameter);
+ g_action_activate (action, parameter);
}
static void
diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c
index 2166bea..b58b2e5 100644
--- a/gio/gsimpleasyncresult.c
+++ b/gio/gsimpleasyncresult.c
@@ -187,7 +187,7 @@
* return;
* }
*
- * _baker_prepare_cake (self, radius, baked_cb, user_data);
+ * _baker_prepare_cake (self, radius, baked_cb, simple);
* }
*
* Cake *
@@ -299,10 +299,9 @@
/**
* g_simple_async_result_new:
- * @source_object: a #GObject the asynchronous function was called with,
- * or %NULL.
- * @callback: a #GAsyncReadyCallback.
- * @user_data: user data passed to @callback.
+ * @source_object: (allow-none): a #GObject, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
* @source_tag: the asynchronous function.
*
* Creates a #GSimpleAsyncResult.
@@ -333,9 +332,9 @@
/**
* g_simple_async_result_new_from_error:
- * @source_object: a #GObject, or %NULL.
- * @callback: a #GAsyncReadyCallback.
- * @user_data: user data passed to @callback.
+ * @source_object: (allow-none): a #GObject, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
* @error: a #GError
*
* Creates a #GSimpleAsyncResult from an error condition.
@@ -361,10 +360,10 @@
}
/**
- * g_simple_async_result_new_take_error:
+ * g_simple_async_result_new_take_error: (skip)
* @source_object: (allow-none): a #GObject, or %NULL
- * @callback: a #GAsyncReadyCallback
- * @user_data: (allow-none): user data passed to @callback
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data passed to @callback
* @error: a #GError
*
* Creates a #GSimpleAsyncResult from an error condition, and takes over the
@@ -394,9 +393,9 @@
/**
* g_simple_async_result_new_error:
- * @source_object: a #GObject, or %NULL.
- * @callback: a #GAsyncReadyCallback.
- * @user_data: user data passed to @callback.
+ * @source_object: (allow-none): a #GObject, or %NULL.
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
* @domain: a #GQuark.
* @code: an error code.
* @format: a string with format characters.
@@ -489,7 +488,7 @@
/**
* g_simple_async_result_propagate_error:
* @simple: a #GSimpleAsyncResult.
- * @dest: a location to propegate the error to.
+ * @dest: (out): a location to propagate the error to.
*
* Propagates an error from within the simple asynchronous result to
* a given destination.
@@ -513,7 +512,7 @@
}
/**
- * g_simple_async_result_set_op_res_gpointer:
+ * g_simple_async_result_set_op_res_gpointer: (skip)
* @simple: a #GSimpleAsyncResult.
* @op_res: a pointer result from an asynchronous function.
* @destroy_op_res: a #GDestroyNotify function.
@@ -632,7 +631,7 @@
}
/**
- * g_simple_async_result_take_error:
+ * g_simple_async_result_take_error: (skip)
* @simple: a #GSimpleAsyncResult
* @error: a #GError
*
@@ -655,7 +654,7 @@
}
/**
- * g_simple_async_result_set_error_va:
+ * g_simple_async_result_set_error_va: (skip)
* @simple: a #GSimpleAsyncResult.
* @domain: a #GQuark (usually #G_IO_ERROR).
* @code: an error code.
@@ -683,7 +682,7 @@
}
/**
- * g_simple_async_result_set_error:
+ * g_simple_async_result_set_error: (skip)
* @simple: a #GSimpleAsyncResult.
* @domain: a #GQuark (usually #G_IO_ERROR).
* @code: an error code.
@@ -851,11 +850,11 @@
}
/**
- * g_simple_async_result_run_in_thread:
+ * g_simple_async_result_run_in_thread: (skip)
* @simple: a #GSimpleAsyncResult.
* @func: a #GSimpleAsyncThreadFunc.
* @io_priority: the io priority of the request.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
*
* Runs the asynchronous job in a separate thread and then calls
* g_simple_async_result_complete_in_idle() on @simple to return
@@ -934,8 +933,8 @@
}
/**
- * g_simple_async_report_error_in_idle:
- * @object: a #GObject.
+ * g_simple_async_report_error_in_idle: (skip)
+ * @object: (allow-none): a #GObject, or %NULL.
* @callback: a #GAsyncReadyCallback.
* @user_data: user data passed to @callback.
* @domain: a #GQuark containing the error domain (usually #G_IO_ERROR).
@@ -959,7 +958,7 @@
GSimpleAsyncResult *simple;
va_list args;
- g_return_if_fail (G_IS_OBJECT (object));
+ g_return_if_fail (!object || G_IS_OBJECT (object));
g_return_if_fail (domain != 0);
g_return_if_fail (format != NULL);
@@ -976,9 +975,9 @@
/**
* g_simple_async_report_gerror_in_idle:
- * @object: a #GObject.
- * @callback: a #GAsyncReadyCallback.
- * @user_data: user data passed to @callback.
+ * @object: (allow-none): a #GObject, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback.
+ * @user_data: (closure): user data passed to @callback.
* @error: the #GError to report
*
* Reports an error in an idle function. Similar to
@@ -993,7 +992,7 @@
{
GSimpleAsyncResult *simple;
- g_return_if_fail (G_IS_OBJECT (object));
+ g_return_if_fail (!object || G_IS_OBJECT (object));
g_return_if_fail (error != NULL);
simple = g_simple_async_result_new_from_error (object,
@@ -1005,8 +1004,8 @@
}
/**
- * g_simple_async_report_take_gerror_in_idle:
- * @object: a #GObject.
+ * g_simple_async_report_take_gerror_in_idle: (skip)
+ * @object: (allow-none): a #GObject, or %NULL
* @callback: a #GAsyncReadyCallback.
* @user_data: user data passed to @callback.
* @error: the #GError to report
@@ -1025,7 +1024,7 @@
{
GSimpleAsyncResult *simple;
- g_return_if_fail (G_IS_OBJECT (object));
+ g_return_if_fail (!object || G_IS_OBJECT (object));
g_return_if_fail (error != NULL);
simple = g_simple_async_result_new_take_error (object,
diff --git a/gio/gsocket.c b/gio/gsocket.c
index ae45802..01792a7 100644
--- a/gio/gsocket.c
+++ b/gio/gsocket.c
@@ -1479,7 +1479,7 @@
/**
* g_socket_accept:
* @socket: a #GSocket.
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Accept incoming connections on a connection-based socket. This removes
@@ -1591,7 +1591,7 @@
* g_socket_connect:
* @socket: a #GSocket.
* @address: a #GSocketAddress specifying the remote address.
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Connect the socket to the specified remote address.
@@ -1737,7 +1737,7 @@
* @buffer: a buffer to read data into (which should be at least @size
* bytes long).
* @size: the number of bytes you want to read from the socket
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Receive data (up to @size bytes) from a socket. This is mainly used by
@@ -1786,7 +1786,7 @@
* bytes long).
* @size: the number of bytes you want to read from the socket
* @blocking: whether to do blocking or non-blocking I/O
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* This behaves exactly the same as g_socket_receive(), except that
@@ -1864,7 +1864,7 @@
* @buffer: a buffer to read data into (which should be at least @size
* bytes long).
* @size: the number of bytes you want to read from the socket
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Receive data (up to @size bytes) from a socket.
@@ -1913,9 +1913,9 @@
/**
* g_socket_send:
* @socket: a #GSocket
- * @buffer: the buffer containing the data to send.
+ * @buffer: (array length=size): the buffer containing the data to send.
* @size: the number of bytes to send
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Tries to send @size bytes from @buffer on the socket. This is
@@ -1953,10 +1953,10 @@
/**
* g_socket_send_with_blocking:
* @socket: a #GSocket
- * @buffer: the buffer containing the data to send.
+ * @buffer: (array length=size): the buffer containing the data to send.
* @size: the number of bytes to send
* @blocking: whether to do blocking or non-blocking I/O
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* This behaves exactly the same as g_socket_send(), except that
@@ -2032,9 +2032,9 @@
* g_socket_send_to:
* @socket: a #GSocket
* @address: a #GSocketAddress, or %NULL
- * @buffer: the buffer containing the data to send.
+ * @buffer: (array length=size): the buffer containing the data to send.
* @size: the number of bytes to send
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Tries to send @size bytes from @buffer to @address. If @address is
@@ -2468,6 +2468,10 @@
GSocketSourceFunc func = (GSocketSourceFunc)callback;
GSocketSource *socket_source = (GSocketSource *)source;
+#ifdef G_OS_WIN32
+ socket_source->pollfd.revents = update_condition (socket_source->socket);
+#endif
+
return (*func) (socket_source->socket,
socket_source->pollfd.revents & socket_source->condition,
user_data);
@@ -2588,10 +2592,10 @@
}
/**
- * g_socket_create_source:
+ * g_socket_create_source: (skip)
* @socket: a #GSocket
* @condition: a #GIOCondition mask to monitor
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
*
* Creates a %GSource that can be attached to a %GMainContext to monitor
* for the availibility of the specified @condition on the socket.
@@ -2692,7 +2696,7 @@
* g_socket_condition_wait:
* @socket: a #GSocket
* @condition: a #GIOCondition mask to wait for
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: a #GError pointer, or %NULL
*
* Waits for @condition to become true on @socket. When the condition
@@ -2819,13 +2823,13 @@
* g_socket_send_message:
* @socket: a #GSocket
* @address: a #GSocketAddress, or %NULL
- * @vectors: an array of #GOutputVector structs
+ * @vectors: (array length=num_vectors): an array of #GOutputVector structs
* @num_vectors: the number of elements in @vectors, or -1
- * @messages: a pointer to an array of #GSocketControlMessages, or
- * %NULL.
+ * @messages: (array length=num_messages) (allow-none): a pointer to an
+ * array of #GSocketControlMessages, or %NULL.
* @num_messages: number of elements in @messages, or -1.
* @flags: an int containing #GSocketMsgFlags flags
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: #GError for error reporting, or %NULL to ignore.
*
* Send data to @address on @socket. This is the most complicated and
@@ -3117,14 +3121,14 @@
* g_socket_receive_message:
* @socket: a #GSocket
* @address: a pointer to a #GSocketAddress pointer, or %NULL
- * @vectors: an array of #GInputVector structs
+ * @vectors: (array length=num_vectors): an array of #GInputVector structs
* @num_vectors: the number of elements in @vectors, or -1
- * @messages: a pointer which may be filled with an array of
- * #GSocketControlMessages, or %NULL
+ * @messages: (array length=num_messages) (allow-none): a pointer which
+ * may be filled with an array of #GSocketControlMessages, or %NULL
* @num_messages: a pointer which will be filled with the number of
* elements in @messages, or %NULL
* @flags: a pointer to an int containing #GSocketMsgFlags flags
- * @cancellable: a %GCancellable or %NULL
+ * @cancellable: (allow-none): a %GCancellable or %NULL
* @error: a #GError pointer, or %NULL
*
* Receive data from a socket. This is the most complicated and
diff --git a/gio/gsocketaddressenumerator.c b/gio/gsocketaddressenumerator.c
index 1886f36..2193860 100644
--- a/gio/gsocketaddressenumerator.c
+++ b/gio/gsocketaddressenumerator.c
@@ -50,7 +50,7 @@
/**
* g_socket_address_enumerator_next:
* @enumerator: a #GSocketAddressEnumerator
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: a #GError.
*
* Retrieves the next #GSocketAddress from @enumerator. Note that this
@@ -115,9 +115,10 @@
/**
* g_socket_address_enumerator_next_async:
* @enumerator: a #GSocketAddressEnumerator
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the request is satisfied
- * @user_data: the data to pass to callback function
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (scope async): a #GAsyncReadyCallback to call when the request
+ * is satisfied
+ * @user_data: (closure): the data to pass to callback function
*
* Asynchronously retrieves the next #GSocketAddress from @enumerator
* and then calls @callback, which must call
diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c
index 0464322..bb60fcc 100644
--- a/gio/gsocketclient.c
+++ b/gio/gsocketclient.c
@@ -723,7 +723,7 @@
* g_socket_client_connect:
* @client: a #GSocketClient.
* @connectable: a #GSocketConnectable specifying the remote address.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting, or %NULL to ignore.
*
* Tries to resolve the @connectable and make a network connection to it..
@@ -864,15 +864,16 @@
if (connection && client->priv->tls)
{
- GTlsClientConnection *tlsconn;
+ GIOStream *tlsconn;
tlsconn = g_tls_client_connection_new (connection, connectable, &last_error);
g_object_unref (connection);
- connection = (GIOStream *)tlsconn;
+ connection = tlsconn;
if (tlsconn)
{
- g_tls_client_connection_set_validation_flags (tlsconn, client->priv->tls_validation_flags);
+ g_tls_client_connection_set_validation_flags (G_TLS_CLIENT_CONNECTION (tlsconn),
+ client->priv->tls_validation_flags);
if (!g_tls_connection_handshake (G_TLS_CONNECTION (tlsconn),
cancellable, &last_error))
{
@@ -904,7 +905,7 @@
* @client: a #GSocketClient
* @host_and_port: the name and optionally port of the host to connect to
* @default_port: the default port to connect to
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: a pointer to a #GError, or %NULL
*
* This is a helper function for g_socket_client_connect().
@@ -968,7 +969,7 @@
* @client: a #GSocketConnection
* @domain: a domain name
* @service: the name of the service to connect to
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: a pointer to a #GError, or %NULL
* @returns: (transfer full): a #GSocketConnection if successful, or %NULL on error
*
@@ -1010,7 +1011,7 @@
* @client: a #GSocketClient
* @uri: A network URI
* @default_port: the default port to connect to
- * @cancellable: a #GCancellable, or %NULL
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
* @error: a pointer to a #GError, or %NULL
*
* This is a helper function for g_socket_client_connect().
@@ -1019,7 +1020,9 @@
*
* @uri may be any valid URI containing an "authority" (hostname/port)
* component. If a port is not specified in the URI, @default_port
- * will be used.
+ * will be used. TLS will be negotiated if #GSocketClient:tls is %TRUE.
+ * (#GSocketClient does not know to automatically assume TLS for
+ * certain URI schemes.)
*
* Using this rather than g_socket_client_connect() or
* g_socket_client_connect_to_host() allows #GSocketClient to
@@ -1166,7 +1169,7 @@
static void
g_socket_client_tls_handshake (GSocketClientAsyncConnectData *data)
{
- GTlsClientConnection *tlsconn;
+ GIOStream *tlsconn;
if (!data->client->priv->tls)
{
@@ -1179,7 +1182,8 @@
&data->last_error);
if (tlsconn)
{
- g_tls_client_connection_set_validation_flags (tlsconn, data->client->priv->tls_validation_flags);
+ g_tls_client_connection_set_validation_flags (G_TLS_CLIENT_CONNECTION (tlsconn),
+ data->client->priv->tls_validation_flags);
g_tls_connection_handshake_async (G_TLS_CONNECTION (tlsconn),
G_PRIORITY_DEFAULT,
data->cancellable,
@@ -1418,9 +1422,9 @@
* g_socket_client_connect_async:
* @client: a #GTcpClient
* @connectable: a #GSocketConnectable specifying the remote address.
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback
- * @user_data: user data for the callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
* This is the asynchronous version of g_socket_client_connect().
*
@@ -1467,9 +1471,9 @@
* @client: a #GTcpClient
* @host_and_port: the name and optionally the port of the host to connect to
* @default_port: the default port to connect to
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback
- * @user_data: user data for the callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
* This is the asynchronous version of g_socket_client_connect_to_host().
*
@@ -1512,9 +1516,9 @@
* @client: a #GSocketClient
* @domain: a domain name
* @service: the name of the service to connect to
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback
- * @user_data: user data for the callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
* This is the asynchronous version of
* g_socket_client_connect_to_service().
@@ -1543,9 +1547,9 @@
* @client: a #GSocketClient
* @uri: a network uri
* @default_port: the default port to connect to
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback
- * @user_data: user data for the callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
* This is the asynchronous version of g_socket_client_connect_to_uri().
*
diff --git a/gio/gsocketcontrolmessage.c b/gio/gsocketcontrolmessage.c
index cce8258..a2a6f44 100644
--- a/gio/gsocketcontrolmessage.c
+++ b/gio/gsocketcontrolmessage.c
@@ -153,7 +153,7 @@
* @level: a socket level
* @type: a socket control message type for the given @level
* @size: the size of the data in bytes
- * @data: pointer to the message data
+ * @data: (array length=size) (element-type guint8): pointer to the message data
*
* Tries to deserialize a socket control message of a given
* @level and @type. This will ask all known (to GType) subclasses
diff --git a/gio/gsocketlistener.c b/gio/gsocketlistener.c
index babefcd..ddfbffa 100644
--- a/gio/gsocketlistener.c
+++ b/gio/gsocketlistener.c
@@ -199,7 +199,7 @@
* g_socket_listener_add_socket:
* @listener: a #GSocketListener
* @socket: a listening #GSocket
- * @source_object: Optional #GObject identifying this source
+ * @source_object: (allow-none): Optional #GObject identifying this source
* @error: #GError for error reporting, or %NULL to ignore.
*
* Adds @socket to the set of sockets that we try to accept
@@ -253,7 +253,7 @@
* @address: a #GSocketAddress
* @type: a #GSocketType
* @protocol: a #GSocketProtocol
- * @source_object: Optional #GObject identifying this source
+ * @source_object: (allow-none): Optional #GObject identifying this source
* @effective_address: (out) (allow-none): location to store the address that was bound to, or %NULL.
* @error: #GError for error reporting, or %NULL to ignore.
*
@@ -344,7 +344,7 @@
* g_socket_listener_add_inet_port:
* @listener: a #GSocketListener
* @port: an IP port number (non-zero)
- * @source_object: Optional #GObject identifying this source
+ * @source_object: (allow-none): Optional #GObject identifying this source
* @error: #GError for error reporting, or %NULL to ignore.
*
* Helper function for g_socket_listener_add_address() that
@@ -563,7 +563,7 @@
* g_socket_listener_accept_socket:
* @listener: a #GSocketListener
* @source_object: (out) (transfer none) (allow-none): location where #GObject pointer will be stored, or %NULL.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting, or %NULL to ignore.
*
* Blocks waiting for a client to connect to any of the sockets added
@@ -640,7 +640,7 @@
* g_socket_listener_accept:
* @listener: a #GSocketListener
* @source_object: (out) (transfer none) (allow-none): location where #GObject pointer will be stored, or %NULL
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @error: #GError for error reporting, or %NULL to ignore.
*
* Blocks waiting for a client to connect to any of the sockets added
@@ -724,9 +724,9 @@
/**
* g_socket_listener_accept_socket_async:
* @listener: a #GSocketListener
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback
- * @user_data: user data for the callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
* This is the asynchronous version of g_socket_listener_accept_socket().
*
@@ -769,7 +769,7 @@
* g_socket_listener_accept_socket_finish:
* @listener: a #GSocketListener
* @result: a #GAsyncResult.
- * @source_object: Optional #GObject identifying this source
+ * @source_object: (out) (transfer none) (allow-none): Optional #GObject identifying this source
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
@@ -808,9 +808,9 @@
/**
* g_socket_listener_accept_async:
* @listener: a #GSocketListener
- * @cancellable: a #GCancellable, or %NULL
- * @callback: a #GAsyncReadyCallback
- * @user_data: user data for the callback
+ * @cancellable: (allow-none): a #GCancellable, or %NULL
+ * @callback: (scope async): a #GAsyncReadyCallback
+ * @user_data: (closure): user data for the callback
*
* This is the asynchronous version of g_socket_listener_accept().
*
@@ -836,7 +836,7 @@
* g_socket_listener_accept_finish:
* @listener: a #GSocketListener
* @result: a #GAsyncResult.
- * @source_object: Optional #GObject identifying this source
+ * @source_object: (out) (transfer none) (allow-none): Optional #GObject identifying this source
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
@@ -927,7 +927,7 @@
/**
* g_socket_listener_add_any_inet_port:
* @listener: a #GSocketListener
- * @source_object: Optional #GObject identifying this source
+ * @source_object: (allow-none): Optional #GObject identifying this source
* @error: a #GError location to store the error occuring, or %NULL to
* ignore.
*
diff --git a/gio/gsocks5proxy.c b/gio/gsocks5proxy.c
index 07fc8ce..a4da21e 100644
--- a/gio/gsocks5proxy.c
+++ b/gio/gsocks5proxy.c
@@ -399,7 +399,7 @@
default: /* Unknown error */
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_PROXY_FAILED,
- _("Unkown SOCKSv5 proxy error."));
+ _("Unknown SOCKSv5 proxy error."));
return FALSE;
break;
}
diff --git a/gio/gthemedicon.c b/gio/gthemedicon.c
index f6cde15..e723a49 100644
--- a/gio/gthemedicon.c
+++ b/gio/gthemedicon.c
@@ -275,7 +275,7 @@
/**
* g_themed_icon_new_from_names:
- * @iconnames: an array of strings containing icon names.
+ * @iconnames: (array length=len): an array of strings containing icon names.
* @len: the length of the @iconnames array, or -1 if @iconnames is
* %NULL-terminated
*
diff --git a/gio/gtlscertificate.c b/gio/gtlscertificate.c
index be1f9af..8e0067c 100644
--- a/gio/gtlscertificate.c
+++ b/gio/gtlscertificate.c
@@ -53,11 +53,6 @@
G_DEFINE_ABSTRACT_TYPE (GTlsCertificate, g_tls_certificate, G_TYPE_OBJECT);
-struct _GTlsCertificatePrivate
-{
- GTlsCertificate *issuer;
-};
-
enum
{
PROP_0,
@@ -72,9 +67,6 @@
static void
g_tls_certificate_init (GTlsCertificate *cert)
{
- cert->priv = G_TYPE_INSTANCE_GET_PRIVATE (cert,
- G_TYPE_TLS_CERTIFICATE,
- GTlsCertificatePrivate);
}
static void
@@ -83,17 +75,7 @@
GValue *value,
GParamSpec *pspec)
{
- GTlsCertificate *cert = G_TLS_CERTIFICATE (object);
-
- switch (prop_id)
- {
- case PROP_ISSUER:
- g_value_set_object (value, cert->priv->issuer);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
static void
@@ -102,28 +84,7 @@
const GValue *value,
GParamSpec *pspec)
{
- GTlsCertificate *cert = G_TLS_CERTIFICATE (object);
-
- switch (prop_id)
- {
- case PROP_ISSUER:
- cert->priv->issuer = g_value_dup_object (value);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-g_tls_certificate_finalize (GObject *object)
-{
- GTlsCertificate *cert = G_TLS_CERTIFICATE (object);
-
- if (cert->priv->issuer)
- g_object_unref (cert->priv->issuer);
-
- G_OBJECT_CLASS (g_tls_certificate_parent_class)->finalize (object);
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
static void
@@ -131,11 +92,8 @@
{
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
- g_type_class_add_private (class, sizeof (GTlsCertificatePrivate));
-
gobject_class->set_property = g_tls_certificate_set_property;
gobject_class->get_property = g_tls_certificate_get_property;
- gobject_class->finalize = g_tls_certificate_finalize;
/**
* GTlsCertificate:certificate:
@@ -482,5 +440,49 @@
GTlsCertificate *
g_tls_certificate_get_issuer (GTlsCertificate *cert)
{
- return cert->priv->issuer;
+ GTlsCertificate *issuer;
+
+ g_object_get (G_OBJECT (cert), "issuer", &issuer, NULL);
+ if (issuer)
+ g_object_unref (issuer);
+
+ return issuer;
+}
+
+/**
+ * g_tls_certificate_verify:
+ * @cert: a #GTlsCertificate
+ * @identity: (allow-none): the expected peer identity
+ * @trusted_ca: (allow-none): the certificate of a trusted authority
+ *
+ * This verifies @cert and returns a set of #GTlsCertificateFlags
+ * indicating any problems found with it. This can be used to verify a
+ * certificate outside the context of making a connection, or to
+ * check a certificate against a CA that is not part of the system
+ * CA database.
+ *
+ * If @identity is not %NULL, @cert's name(s) will be compared against
+ * it, and %G_TLS_CERTIFICATE_BAD_IDENTITY will be set in the return
+ * value if it does not match. If @identity is %NULL, that bit will
+ * never be set in the return value.
+ *
+ * If @trusted_ca is not %NULL, then @cert (or one of the certificates
+ * in its chain) must be signed by it, or else
+ * %G_TLS_CERTIFICATE_UNKNOWN_CA will be set in the return value. If
+ * @trusted_ca is %NULL, that bit will never be set in the return
+ * value.
+ *
+ * (All other #GTlsCertificateFlags values will always be set or unset
+ * as appropriate.)
+ *
+ * Return value: the appropriate #GTlsCertificateFlags
+ *
+ * Since: 2.28
+ */
+GTlsCertificateFlags
+g_tls_certificate_verify (GTlsCertificate *cert,
+ GSocketConnectable *identity,
+ GTlsCertificate *trusted_ca)
+{
+ return G_TLS_CERTIFICATE_GET_CLASS (cert)->verify (cert, identity, trusted_ca);
}
diff --git a/gio/gtlscertificate.h b/gio/gtlscertificate.h
index f8a7fd1..40cabf9 100644
--- a/gio/gtlscertificate.h
+++ b/gio/gtlscertificate.h
@@ -49,26 +49,34 @@
{
GObjectClass parent_class;
+ GTlsCertificateFlags (* verify) (GTlsCertificate *cert,
+ GSocketConnectable *identity,
+ GTlsCertificate *trusted_ca);
+
/*< private >*/
/* Padding for future expansion */
gpointer padding[8];
};
-GType g_tls_certificate_get_type (void) G_GNUC_CONST;
+GType g_tls_certificate_get_type (void) G_GNUC_CONST;
-GTlsCertificate *g_tls_certificate_new_from_pem (const gchar *data,
- gssize length,
- GError **error);
+GTlsCertificate *g_tls_certificate_new_from_pem (const gchar *data,
+ gssize length,
+ GError **error);
-GTlsCertificate *g_tls_certificate_new_from_file (const gchar *file,
- GError **error);
-GTlsCertificate *g_tls_certificate_new_from_files (const gchar *cert_file,
- const gchar *key_file,
- GError **error);
-GList *g_tls_certificate_list_new_from_file (const gchar *file,
- GError **error);
+GTlsCertificate *g_tls_certificate_new_from_file (const gchar *file,
+ GError **error);
+GTlsCertificate *g_tls_certificate_new_from_files (const gchar *cert_file,
+ const gchar *key_file,
+ GError **error);
+GList *g_tls_certificate_list_new_from_file (const gchar *file,
+ GError **error);
-GTlsCertificate *g_tls_certificate_get_issuer (GTlsCertificate *cert);
+GTlsCertificate *g_tls_certificate_get_issuer (GTlsCertificate *cert);
+
+GTlsCertificateFlags g_tls_certificate_verify (GTlsCertificate *cert,
+ GSocketConnectable *identity,
+ GTlsCertificate *trusted_ca);
G_END_DECLS
diff --git a/gio/gtlsclientconnection.c b/gio/gtlsclientconnection.c
index 1faea96..4b87b60 100644
--- a/gio/gtlsclientconnection.c
+++ b/gio/gtlsclientconnection.c
@@ -38,8 +38,6 @@
*
* #GTlsClientConnection is the client-side subclass of
* #GTlsConnection, representing a client-side TLS connection.
- *
- * Since: 2.28
*/
/**
@@ -131,18 +129,19 @@
* A list of the distinguished names of the Certificate Authorities
* that the server will accept client certificates signed by. If the
* server requests a client certificate during the handshake, then
- * this property will be set by the time the
- * #GTlsConnection::need-certificate signal is emitted.
+ * this property will be set after the handshake completes.
+ *
+ * Each item in the list is a #GByteArray which contains the complete
+ * subject DN of the certificate authority.
*
* Since: 2.28
*/
g_object_interface_install_property (iface,
- g_param_spec_boxed ("accepted-cas",
- P_("Accepted CAs"),
- P_("Distinguished names of the CAs the server accepts certificates from"),
- G_TYPE_STRV,
- G_PARAM_READABLE |
- G_PARAM_STATIC_STRINGS));
+ g_param_spec_pointer ("accepted-cas",
+ P_("Accepted CAs"),
+ P_("Distinguished names of the CAs the server accepts certificates from"),
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
}
/**
@@ -159,7 +158,7 @@
*
* Since: 2.28
*/
-GTlsClientConnection *
+GIOStream *
g_tls_client_connection_new (GIOStream *base_io_stream,
GSocketConnectable *server_identity,
GError **error)
@@ -173,7 +172,7 @@
"base-io-stream", base_io_stream,
"server-identity", server_identity,
NULL);
- return G_TLS_CLIENT_CONNECTION (conn);
+ return G_IO_STREAM (conn);
}
/**
@@ -200,10 +199,11 @@
/**
* g_tls_client_connection_set_validation_flags:
* @conn: the #GTlsClientConnection
- * @flags: the #GTlsCertificatelags to use
+ * @flags: the #GTlsCertificateFlags to use
*
* Sets @conn's validation flags, to override the default set of
- * checks performed when validating a server certificate.
+ * checks performed when validating a server certificate. By default,
+ * %G_TLS_CERTIFICATE_VALIDATE_ALL is used.
*
* Since: 2.28
*/
@@ -316,15 +316,19 @@
* during the TLS handshake if the server requests a certificate.
* Otherwise, it will be %NULL.
*
- * Return value: (transfer full) (array zero-terminated=1): the list
- * of CA names, which you must free (eg, with g_strfreev()).
+ * Each item in the list is a #GByteArray which contains the complete
+ * subject DN of the certificate authority.
+ *
+ * Return value: (element-type GByteArray) (transfer full): the list of
+ * CA DNs. You should unref each element with g_byte_array_unref() and then
+ * the free the list with g_list_free().
*
* Since: 2.28
*/
-char **
+GList *
g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn)
{
- char **accepted_cas = NULL;
+ GList *accepted_cas = NULL;
g_return_val_if_fail (G_IS_TLS_CLIENT_CONNECTION (conn), NULL);
diff --git a/gio/gtlsclientconnection.h b/gio/gtlsclientconnection.h
index 2bfa8c4..fd6088a 100644
--- a/gio/gtlsclientconnection.h
+++ b/gio/gtlsclientconnection.h
@@ -52,7 +52,7 @@
GType g_tls_client_connection_get_type (void) G_GNUC_CONST;
-GTlsClientConnection *g_tls_client_connection_new (GIOStream *base_io_stream,
+GIOStream * g_tls_client_connection_new (GIOStream *base_io_stream,
GSocketConnectable *server_identity,
GError **error);
@@ -65,7 +65,7 @@
gboolean g_tls_client_connection_get_use_ssl3 (GTlsClientConnection *conn);
void g_tls_client_connection_set_use_ssl3 (GTlsClientConnection *conn,
gboolean use_ssl3);
-char ** g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn);
+GList * g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn);
G_END_DECLS
diff --git a/gio/gtlsconnection.c b/gio/gtlsconnection.c
index e55f6f5..b358778 100644
--- a/gio/gtlsconnection.c
+++ b/gio/gtlsconnection.c
@@ -63,15 +63,8 @@
guint prop_id,
const GValue *value,
GParamSpec *pspec);
-static void g_tls_connection_finalize (GObject *object);
-
-static gboolean g_tls_connection_certificate_accumulator (GSignalInvocationHint *ihint,
- GValue *return_accu,
- const GValue *handler_return,
- gpointer dummy);
enum {
- NEED_CERTIFICATE,
ACCEPT_CERTIFICATE,
LAST_SIGNAL
@@ -84,12 +77,10 @@
PROP_BASE_IO_STREAM,
PROP_REQUIRE_CLOSE_NOTIFY,
PROP_REHANDSHAKE_MODE,
+ PROP_USE_SYSTEM_CERTDB,
PROP_CERTIFICATE,
- PROP_PEER_CERTIFICATE
-};
-
-struct _GTlsConnectionPrivate {
- GTlsCertificate *certificate, *peer_certificate;
+ PROP_PEER_CERTIFICATE,
+ PROP_PEER_CERTIFICATE_ERRORS
};
static void
@@ -97,11 +88,8 @@
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (GTlsConnectionPrivate));
-
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:
@@ -119,6 +107,23 @@
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS));
/**
+ * GTlsConnection:use-system-certdb:
+ *
+ * Whether or not the system certificate database will be used to
+ * verify peer certificates. See
+ * g_tls_connection_set_use_system_certdb().
+ *
+ * Since: 2.28
+ */
+ g_object_class_install_property (gobject_class, PROP_USE_SYSTEM_CERTDB,
+ g_param_spec_boolean ("use-system-certdb",
+ P_("Use system certificate database"),
+ P_("Whether to verify peer certificates against the system certificate database"),
+ TRUE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
+ G_PARAM_STATIC_STRINGS));
+ /**
* GTlsConnection:require-close-notify:
*
* Whether or not proper TLS close notification is required.
@@ -132,6 +137,7 @@
P_("Whether to require proper TLS close notification"),
TRUE,
G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
G_PARAM_STATIC_STRINGS));
/**
* GTlsConnection:rehandshake-mode:
@@ -148,6 +154,7 @@
G_TYPE_TLS_REHANDSHAKE_MODE,
G_TLS_REHANDSHAKE_SAFELY,
G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT |
G_PARAM_STATIC_STRINGS));
/**
* GTlsConnection:certificate:
@@ -167,8 +174,13 @@
/**
* GTlsConnection:peer-certificate:
*
- * The connection's peer's certificate, after it has been set during
- * the TLS handshake.
+ * The connection's peer's certificate, after the TLS handshake has
+ * completed and the certificate has been accepted. Note in
+ * particular that this is not yet set during the emission of
+ * #GTlsConnection::accept-certificate.
+ *
+ * (You can watch for a #GObject::notify signal on this property to
+ * detect when a handshake has occurred.)
*
* Since: 2.28
*/
@@ -179,56 +191,26 @@
G_TYPE_TLS_CERTIFICATE,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
-
/**
- * GTlsConnection::need-certificate:
- * @conn: a #GTlsConnection
+ * GTlsConnection:peer-certificate-errors:
*
- * Emitted during the TLS handshake if a certificate is needed and
- * one has not been set via g_tls_connection_set_certificate().
- *
- * For server-side connections, a certificate is always needed, and
- * the connection will fail if none is provided.
- *
- * For client-side connections, the signal will be emitted only if
- * the server has requested a certificate; you can call
- * g_tls_client_connection_get_accepted_cas() to get a list of
- * Certificate Authorities that the server will accept certificates
- * from. If you do not return a certificate (and have not provided
- * one via g_tls_connection_set_certificate()) then the server may
- * reject the handshake, in which case the operation will eventually
- * fail with %G_TLS_ERROR_CERTIFICATE_REQUIRED.
- *
- * Note that if this signal is emitted as part of asynchronous I/O
- * in the main thread, then you should not attempt to interact with
- * the user before returning from the signal handler. If you want to
- * let the user choose a certificate to return, you would have to
- * return %NULL from the signal handler on the first attempt, and
- * then after the connection attempt returns a
- * %G_TLS_ERROR_CERTIFICATE_REQUIRED, you can interact with the
- * user, create a new connection, and call
- * g_tls_connection_set_certificate() on it before handshaking (or
- * just connect to the signal again and return the certificate the
- * next time).
- *
- * If you are doing I/O in another thread, you do not
- * need to worry about this, and can simply block in the signal
- * handler until the UI thread returns an answer.
- *
- * Return value: the certificate to send to the peer, or %NULL to
- * send no certificate. If you return a certificate, the signal
- * emission will be stopped and further handlers will not be called.
+ * The errors noticed-and-ignored while verifying
+ * #GTlsConnection:peer-certificate. Normally this should be %0, but
+ * it may not be if #GTlsClientConnection::validation-flags is not
+ * %G_TLS_CERTIFICATE_VALIDATE_ALL, or if
+ * #GTlsConnection::accept-certificate overrode the default
+ * behavior.
*
* Since: 2.28
*/
- signals[NEED_CERTIFICATE] =
- g_signal_new (I_("need-certificate"),
- G_TYPE_TLS_CONNECTION,
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GTlsConnectionClass, need_certificate),
- g_tls_connection_certificate_accumulator, NULL,
- _gio_marshal_OBJECT__VOID,
- G_TYPE_TLS_CERTIFICATE, 0);
+ g_object_class_install_property (gobject_class, PROP_PEER_CERTIFICATE_ERRORS,
+ g_param_spec_flags ("peer-certificate-errors",
+ P_("Peer Certificate Errors"),
+ P_("Errors found with the peer's certificate"),
+ G_TYPE_TLS_CERTIFICATE_FLAGS,
+ 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
/**
* GTlsConnection::accept-certificate:
@@ -255,10 +237,20 @@
* certificate, and the certificate will only be accepted if a
* handler returns %TRUE.
*
- * As with #GTlsConnection::need_certificate, you should not
- * interact with the user during the signal emission if the signal
- * was emitted as part of an asynchronous operation in the main
- * thread.
+ * Note that if this signal is emitted as part of asynchronous I/O
+ * in the main thread, then you should not attempt to interact with
+ * the user before returning from the signal handler. If you want to
+ * let the user decide whether or not to accept the certificate, you
+ * would have to return %FALSE from the signal handler on the first
+ * attempt, and then after the connection attempt returns a
+ * %G_TLS_ERROR_HANDSHAKE, you can interact with the user, and if
+ * the user decides to accept the certificate, remember that fact,
+ * create a new connection, and return %TRUE from the signal handler
+ * the next time.
+ *
+ * If you are doing I/O in another thread, you do not
+ * need to worry about this, and can simply block in the signal
+ * handler until the UI thread returns an answer.
*
* Return value: %TRUE to accept @peer_cert (which will also
* immediately end the signal emission). %FALSE to allow the signal
@@ -282,20 +274,6 @@
static void
g_tls_connection_init (GTlsConnection *conn)
{
- conn->priv = G_TYPE_INSTANCE_GET_PRIVATE (conn, G_TYPE_TLS_CONNECTION, GTlsConnectionPrivate);
-}
-
-static void
-g_tls_connection_finalize (GObject *object)
-{
- GTlsConnection *conn = G_TLS_CONNECTION (object);
-
- if (conn->priv->certificate)
- g_object_unref (conn->priv->certificate);
- if (conn->priv->peer_certificate)
- g_object_unref (conn->priv->peer_certificate);
-
- G_OBJECT_CLASS (g_tls_connection_parent_class)->finalize (object);
}
static void
@@ -304,22 +282,7 @@
GValue *value,
GParamSpec *pspec)
{
- GTlsConnection *conn = G_TLS_CONNECTION (object);
-
- switch (prop_id)
- {
- case PROP_CERTIFICATE:
- g_value_set_object (value, conn->priv->certificate);
- break;
-
- case PROP_PEER_CERTIFICATE:
- g_value_set_object (value, conn->priv->peer_certificate);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
static void
@@ -328,18 +291,57 @@
const GValue *value,
GParamSpec *pspec)
{
- GTlsConnection *conn = G_TLS_CONNECTION (object);
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+}
- switch (prop_id)
- {
- case PROP_CERTIFICATE:
- g_tls_connection_set_certificate (conn, g_value_get_object (value));
- break;
+/**
+ * g_tls_connection_set_use_system_certdb:
+ * @conn: a #GTlsConnection
+ * @use_system_certdb: whether to use the system certificate database
+ *
+ * Sets whether @conn uses the system certificate database to verify
+ * peer certificates. This is %TRUE by default. If set to %FALSE, then
+ * peer certificate validation will always set the
+ * %G_TLS_CERTIFICATE_UNKNOWN_CA error (meaning
+ * #GTlsConnection::accept-certificate will always be emitted on
+ * client-side connections, unless that bit is not set in
+ * #GTlsClientConnection:validation-flags).
+ *
+ * Since: 2.28
+ */
+void
+g_tls_connection_set_use_system_certdb (GTlsConnection *conn,
+ gboolean use_system_certdb)
+{
+ g_return_if_fail (G_IS_TLS_CONNECTION (conn));
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ g_object_set (G_OBJECT (conn),
+ "use-system-certdb", use_system_certdb,
+ NULL);
+}
+
+/**
+ * g_tls_connection_get_use_system_certdb:
+ * @conn: a #GTlsConnection
+ *
+ * Gets whether @conn uses the system certificate database to verify
+ * peer certificates. See g_tls_connection_set_use_system_certdb().
+ *
+ * Return value: whether @conn uses the system certificate database
+ *
+ * Since: 2.28
+ */
+gboolean
+g_tls_connection_get_use_system_certdb (GTlsConnection *conn)
+{
+ gboolean use_system_certdb;
+
+ g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), TRUE);
+
+ g_object_get (G_OBJECT (conn),
+ "use-system-certdb", &use_system_certdb,
+ NULL);
+ return use_system_certdb;
}
/**
@@ -348,9 +350,23 @@
* @certificate: the certificate to use for @conn
*
* This sets the certificate that @conn will present to its peer
- * during the TLS handshake. If this is not set,
- * #GTlsConnection::need-certificate will be emitted during the
- * handshake if needed.
+ * during the TLS handshake. For a #GTlsServerConnection, it is
+ * mandatory to set this, and that will normally be done at construct
+ * time.
+ *
+ * For a #GTlsClientConnection, this is optional. If a handshake fails
+ * with %G_TLS_ERROR_CERTIFICATE_REQUIRED, that means that the server
+ * requires a certificate, and if you try connecting again, you should
+ * call this method first. You can call
+ * g_tls_client_connection_get_accepted_cas() on the failed connection
+ * to get a list of Certificate Authorities that the server will
+ * accept certificates from.
+ *
+ * (It is also possible that a server will allow the connection with
+ * or without a certificate; in that case, if you don't provide a
+ * certificate, you can tell that the server requested one by the fact
+ * that g_tls_client_connection_get_accepted_cas() will return
+ * non-%NULL.)
*
* Since: 2.28
*/
@@ -361,10 +377,7 @@
g_return_if_fail (G_IS_TLS_CONNECTION (conn));
g_return_if_fail (G_IS_TLS_CERTIFICATE (certificate));
- if (conn->priv->certificate)
- g_object_unref (conn->priv->certificate);
- conn->priv->certificate = certificate ? g_object_ref (certificate) : NULL;
- g_object_notify (G_OBJECT (conn), "certificate");
+ g_object_set (G_OBJECT (conn), "certificate", certificate, NULL);
}
/**
@@ -372,38 +385,73 @@
* @conn: a #GTlsConnection
*
* Gets @conn's certificate, as set by
- * g_tls_connection_set_certificate() or returned from one of the
- * signals.
+ * g_tls_connection_set_certificate().
*
- * Return value: @conn's certificate, or %NULL
+ * Return value: (transfer none): @conn's certificate, or %NULL
*
* Since: 2.28
*/
GTlsCertificate *
g_tls_connection_get_certificate (GTlsConnection *conn)
{
+ GTlsCertificate *certificate;
+
g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), NULL);
- return conn->priv->certificate;
+ g_object_get (G_OBJECT (conn), "certificate", &certificate, NULL);
+ if (certificate)
+ g_object_unref (certificate);
+
+ return certificate;
}
/**
* g_tls_connection_get_peer_certificate:
* @conn: a #GTlsConnection
*
- * Gets @conn's peer's certificate after it has been set during the
- * handshake.
+ * Gets @conn's peer's certificate after the handshake has completed.
+ * (It is not set during the emission of
+ * #GTlsConnection::accept-certificate.)
*
- * Return value: @conn's peer's certificate, or %NULL
+ * Return value: (transfer none): @conn's peer's certificate, or %NULL
*
* Since: 2.28
*/
GTlsCertificate *
g_tls_connection_get_peer_certificate (GTlsConnection *conn)
{
+ GTlsCertificate *peer_certificate;
+
g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), NULL);
- return conn->priv->peer_certificate;
+ g_object_get (G_OBJECT (conn), "peer-certificate", &peer_certificate, NULL);
+ if (peer_certificate)
+ g_object_unref (peer_certificate);
+
+ return peer_certificate;
+}
+
+/**
+ * g_tls_connection_get_peer_certificate_errors:
+ * @conn: a #GTlsConnection
+ *
+ * Gets the errors associated with validating @conn's peer's
+ * certificate, after the handshake has completed. (It is not set
+ * during the emission of #GTlsConnection::accept-certificate.)
+ *
+ * Return value: @conn's peer's certificate errors
+ *
+ * Since: 2.28
+ */
+GTlsCertificateFlags
+g_tls_connection_get_peer_certificate_errors (GTlsConnection *conn)
+{
+ GTlsCertificateFlags errors;
+
+ g_return_val_if_fail (G_IS_TLS_CONNECTION (conn), 0);
+
+ g_object_get (G_OBJECT (conn), "peer-certificate-errors", &errors, NULL);
+ return errors;
}
/**
@@ -411,13 +459,12 @@
* @conn: a #GTlsConnection
* @require_close_notify: whether or not to require close notification
*
- * Sets whether or not @conn requires a proper TLS close notification
- * before closing the connection. If this is %TRUE (the default), then
- * calling g_io_stream_close() on @conn will send a TLS close
- * notification, and likewise it will expect to receive a close
- * notification before the connection is closed when reading, and will
- * return a %G_TLS_ERROR_EOF error if the connection is closed without
- * proper notification (since this may indicate a network error, or
+ * Sets whether or not @conn expects a proper TLS close notification
+ * before the connection is closed. If this is %TRUE (the default),
+ * then @conn will expect to receive a TLS close notification from its
+ * peer before the connection is closed, and will return a
+ * %G_TLS_ERROR_EOF error if the connection is closed without proper
+ * notification (since this may indicate a network error, or
* man-in-the-middle attack).
*
* In some protocols, the application will know whether or not the
@@ -426,9 +473,18 @@
* somehow self-delimiting); in this case, the close notify is
* redundant and sometimes omitted. (TLS 1.1 explicitly allows this;
* in TLS 1.0 it is technically an error, but often done anyway.) You
- * can use g_tls_connection_set_require_close_notify() to tell @conn to
- * allow an "unannounced" connection close, in which case it is up to
- * the application to check that the data has been fully received.
+ * can use g_tls_connection_set_require_close_notify() to tell @conn
+ * to allow an "unannounced" connection close, in which case the close
+ * will show up as a 0-length read, as in a non-TLS
+ * #GSocketConnection, and it is up to the application to check that
+ * the data has been fully received.
+ *
+ * Note that this only affects the behavior when the peer closes the
+ * connection; when the application calls g_io_stream_close() itself
+ * on @conn, this will send a close notification regardless of the
+ * setting of this property. If you explicitly want to do an unclean
+ * close, you can close @conn's #GTlsConnection:base-io-stream rather
+ * than closing @conn itself.
*
* Since: 2.28
*/
@@ -447,8 +503,8 @@
* g_tls_connection_get_require_close_notify:
* @conn: a #GTlsConnection
*
- * Tests whether or not @conn requires a proper TLS close notification
- * before closing the connection. See
+ * Tests whether or not @conn expects a proper TLS close notification
+ * when the connection is closed. See
* g_tls_connection_set_require_close_notify() for details.
*
* Return value: %TRUE if @conn requires a proper TLS close
@@ -558,8 +614,7 @@
* However, you may call g_tls_connection_handshake() later on to
* renegotiate parameters (encryption methods, etc) with the client.
*
- * #GTlsConnection::accept_certificate and
- * #GTlsConnection::need_certificate may be emitted during the
+ * #GTlsConnection::accept_certificate may be emitted during the
* handshake.
*
* Return value: success or failure
@@ -599,9 +654,9 @@
{
g_return_if_fail (G_IS_TLS_CONNECTION (conn));
- return G_TLS_CONNECTION_GET_CLASS (conn)->handshake_async (conn, io_priority,
- cancellable,
- callback, user_data);
+ G_TLS_CONNECTION_GET_CLASS (conn)->handshake_async (conn, io_priority,
+ cancellable,
+ callback, user_data);
}
/**
@@ -644,42 +699,6 @@
}
-static gboolean
-g_tls_connection_certificate_accumulator (GSignalInvocationHint *ihint,
- GValue *return_accu,
- const GValue *handler_return,
- gpointer dummy)
-{
- GTlsCertificate *cert;
-
- cert = g_value_get_object (handler_return);
- if (cert)
- g_value_set_object (return_accu, cert);
-
- return cert != NULL;
-}
-
-/**
- * g_tls_connection_emit_need_certificate:
- * @conn: a #GTlsConnection
- *
- * Used by #GTlsConnection implementations to emit the
- * #GTlsConnection::need-certificate signal.
- *
- * Returns: a new #GTlsCertificate
- *
- * Since: 2.28
- */
-GTlsCertificate *
-g_tls_connection_emit_need_certificate (GTlsConnection *conn)
-{
- GTlsCertificate *cert = NULL;
-
- g_signal_emit (conn, signals[NEED_CERTIFICATE], 0,
- &cert);
- return cert;
-}
-
/**
* g_tls_connection_emit_accept_certificate:
* @conn: a #GTlsConnection
@@ -705,23 +724,3 @@
peer_cert, errors, &accept);
return accept;
}
-
-/**
- * g_tls_connection_set_peer_certificate:
- * @conn: a #GTlsConnection
- * @certificate: the peer certificate
- *
- * Used by #GTlsConnection implementations to set the connection's
- * peer certificate.
- *
- * Since: 2.28
- */
-void
-g_tls_connection_set_peer_certificate (GTlsConnection *conn,
- GTlsCertificate *certificate)
-{
- if (conn->priv->peer_certificate)
- g_object_unref (conn->priv->peer_certificate);
- conn->priv->peer_certificate = certificate ? g_object_ref (certificate) : NULL;
- g_object_notify (G_OBJECT (conn), "peer-certificate");
-}
diff --git a/gio/gtlsconnection.h b/gio/gtlsconnection.h
index 86f1f68..7786c43 100644
--- a/gio/gtlsconnection.h
+++ b/gio/gtlsconnection.h
@@ -58,8 +58,6 @@
GIOStreamClass parent_class;
/* signals */
- GTlsCertificate * ( *need_certificate) (GTlsConnection *connection);
-
gboolean ( *accept_certificate) (GTlsConnection *connection,
GTlsCertificate *peer_cert,
GTlsCertificateFlags errors);
@@ -83,34 +81,39 @@
gpointer padding[8];
};
-GType g_tls_connection_get_type (void) G_GNUC_CONST;
+GType g_tls_connection_get_type (void) G_GNUC_CONST;
-void g_tls_connection_set_certificate (GTlsConnection *conn,
- GTlsCertificate *certificate);
-GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn);
+void g_tls_connection_set_use_system_certdb (GTlsConnection *conn,
+ gboolean use_system_certdb);
+gboolean g_tls_connection_get_use_system_certdb (GTlsConnection *conn);
-GTlsCertificate *g_tls_connection_get_peer_certificate (GTlsConnection *conn);
+void g_tls_connection_set_certificate (GTlsConnection *conn,
+ GTlsCertificate *certificate);
+GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn);
-void g_tls_connection_set_require_close_notify (GTlsConnection *conn,
- gboolean require_close_notify);
-gboolean g_tls_connection_get_require_close_notify (GTlsConnection *conn);
+GTlsCertificate *g_tls_connection_get_peer_certificate (GTlsConnection *conn);
+GTlsCertificateFlags g_tls_connection_get_peer_certificate_errors (GTlsConnection *conn);
-void g_tls_connection_set_rehandshake_mode (GTlsConnection *conn,
- GTlsRehandshakeMode mode);
-GTlsRehandshakeMode g_tls_connection_get_rehandshake_mode (GTlsConnection *conn);
+void g_tls_connection_set_require_close_notify (GTlsConnection *conn,
+ gboolean require_close_notify);
+gboolean g_tls_connection_get_require_close_notify (GTlsConnection *conn);
-gboolean g_tls_connection_handshake (GTlsConnection *conn,
- GCancellable *cancellable,
- GError **error);
+void g_tls_connection_set_rehandshake_mode (GTlsConnection *conn,
+ GTlsRehandshakeMode mode);
+GTlsRehandshakeMode g_tls_connection_get_rehandshake_mode (GTlsConnection *conn);
-void g_tls_connection_handshake_async (GTlsConnection *conn,
- int io_priority,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-gboolean g_tls_connection_handshake_finish (GTlsConnection *conn,
- GAsyncResult *result,
- GError **error);
+gboolean g_tls_connection_handshake (GTlsConnection *conn,
+ GCancellable *cancellable,
+ GError **error);
+
+void g_tls_connection_handshake_async (GTlsConnection *conn,
+ int io_priority,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean g_tls_connection_handshake_finish (GTlsConnection *conn,
+ GAsyncResult *result,
+ GError **error);
/**
* G_TLS_ERROR:
@@ -124,13 +127,9 @@
/*< protected >*/
-GTlsCertificate *g_tls_connection_emit_need_certificate (GTlsConnection *conn);
-gboolean g_tls_connection_emit_accept_certificate (GTlsConnection *conn,
- GTlsCertificate *peer_cert,
- GTlsCertificateFlags errors);
-
-void g_tls_connection_set_peer_certificate (GTlsConnection *conn,
- GTlsCertificate *certificate);
+gboolean g_tls_connection_emit_accept_certificate (GTlsConnection *conn,
+ GTlsCertificate *peer_cert,
+ GTlsCertificateFlags errors);
G_END_DECLS
diff --git a/gio/gtlsserverconnection.c b/gio/gtlsserverconnection.c
index 791a0dd..4965656 100644
--- a/gio/gtlsserverconnection.c
+++ b/gio/gtlsserverconnection.c
@@ -78,7 +78,7 @@
*
* Since: 2.28
*/
-GTlsServerConnection *
+GIOStream *
g_tls_server_connection_new (GIOStream *base_io_stream,
GTlsCertificate *certificate,
GError **error)
@@ -92,5 +92,5 @@
"base-io-stream", base_io_stream,
"certificate", certificate,
NULL);
- return G_TLS_SERVER_CONNECTION (conn);
+ return G_IO_STREAM (conn);
}
diff --git a/gio/gtlsserverconnection.h b/gio/gtlsserverconnection.h
index 976996e..c909d55 100644
--- a/gio/gtlsserverconnection.h
+++ b/gio/gtlsserverconnection.h
@@ -52,7 +52,7 @@
GType g_tls_server_connection_get_type (void) G_GNUC_CONST;
-GTlsServerConnection *g_tls_server_connection_new (GIOStream *base_io_stream,
+GIOStream * g_tls_server_connection_new (GIOStream *base_io_stream,
GTlsCertificate *certificate,
GError **error);
diff --git a/gio/gunixconnection.c b/gio/gunixconnection.c
index 82510f5..7106fb7 100644
--- a/gio/gunixconnection.c
+++ b/gio/gunixconnection.c
@@ -304,7 +304,7 @@
/**
* g_unix_connection_send_credentials:
* @connection: A #GUnixConnection.
- * @cancellable: A #GCancellable or %NULL.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
* Passes the credentials of the current user the receiving side
@@ -372,7 +372,7 @@
/**
* g_unix_connection_receive_credentials:
* @connection: A #GUnixConnection.
- * @cancellable: A #GCancellable or %NULL.
+ * @cancellable: (allow-none): A #GCancellable or %NULL.
* @error: Return location for error or %NULL.
*
* Receives credentials from the sending end of the connection. The
diff --git a/gio/gunixfdlist.c b/gio/gunixfdlist.c
index e9425db..68af47e 100644
--- a/gio/gunixfdlist.c
+++ b/gio/gunixfdlist.c
@@ -161,7 +161,7 @@
/**
* g_unix_fd_list_new_from_array:
- * @fds: the initial list of file descriptors
+ * @fds: (array length=n_fds): the initial list of file descriptors
* @n_fds: the length of #fds, or -1
*
* Creates a new #GUnixFDList containing the file descriptors given in
@@ -201,7 +201,8 @@
/**
* g_unix_fd_list_steal_fds:
* @list: a #GUnixFDList
- * @length: pointer to the length of the returned array, or %NULL
+ * @length: (out) (allow-none): pointer to the length of the returned
+ * array, or %NULL
*
* Returns the array of file descriptors that is contained in this
* object.
@@ -222,7 +223,8 @@
* This function never returns %NULL. In case there are no file
* descriptors contained in @list, an empty array is returned.
*
- * Returns: an array of file descriptors
+ * Returns: (array length=length) (transfer full): an array of file
+ * descriptors
*
* Since: 2.24
*/
@@ -255,7 +257,8 @@
/**
* g_unix_fd_list_peek_fds:
* @list: a #GUnixFDList
- * @length: pointer to the length of the returned array, or %NULL
+ * @length: (out) (allow-none): pointer to the length of the returned
+ * array, or %NULL
*
* Returns the array of file descriptors that is contained in this
* object.
@@ -271,7 +274,8 @@
* This function never returns %NULL. In case there are no file
* descriptors contained in @list, an empty array is returned.
*
- * Returns: an array of file descriptors
+ * Returns: (array length=length) (transfer none): an array of file
+ * descriptors
*
* Since: 2.24
*/
diff --git a/gio/gunixfdmessage.c b/gio/gunixfdmessage.c
index 7dc0f8b..aaf749b 100644
--- a/gio/gunixfdmessage.c
+++ b/gio/gunixfdmessage.c
@@ -257,7 +257,8 @@
/**
* g_unix_fd_message_steal_fds:
* @message: a #GUnixFDMessage
- * @length: pointer to the length of the returned array, or %NULL
+ * @length: (out) (allow-none): pointer to the length of the returned
+ * array, or %NULL
*
* Returns the array of file descriptors that is contained in this
* object.
@@ -277,7 +278,8 @@
* This function never returns %NULL. In case there are no file
* descriptors contained in @message, an empty array is returned.
*
- * Returns: an array of file descriptors
+ * Returns: (array length=length) (transfer full): an array of file
+ * descriptors
*
* Since: 2.22
**/
diff --git a/gio/gunixmounts.c b/gio/gunixmounts.c
index f110351..054bfe7 100644
--- a/gio/gunixmounts.c
+++ b/gio/gunixmounts.c
@@ -1075,15 +1075,16 @@
}
/**
- * g_unix_mounts_get:
- * @time_read: (allow-none): guint64 to contain a timestamp, or %NULL
+ * g_unix_mounts_get: (skip)
+ * @time_read: (out) (allow-none): guint64 to contain a timestamp, or %NULL
*
* Gets a #GList of #GUnixMountEntry containing the unix mounts.
* If @time_read is set, it will be filled with the mount
* timestamp, allowing for checking if the mounts have changed
* with g_unix_mounts_changed_since().
*
- * Returns: (element-type utf8) (transfer full): a #GList of the UNIX mounts.
+ * Returns: (element-type GUnixMountEntry) (transfer full):
+ * a #GList of the UNIX mounts.
**/
GList *
g_unix_mounts_get (guint64 *time_read)
@@ -1095,15 +1096,15 @@
}
/**
- * g_unix_mount_at:
+ * g_unix_mount_at: (skip)
* @mount_path: path for a possible unix mount.
- * @time_read: guint64 to contain a timestamp.
+ * @time_read: (out) (allow-none): guint64 to contain a timestamp.
*
* Gets a #GUnixMountEntry for a given mount path. If @time_read
* is set, it will be filled with a unix timestamp for checking
* if the mounts have changed since with g_unix_mounts_changed_since().
*
- * Returns: (transfer full): a #GUnixMount.
+ * Returns: (transfer full): a #GUnixMountEntry.
**/
GUnixMountEntry *
g_unix_mount_at (const char *mount_path,
@@ -1130,15 +1131,16 @@
}
/**
- * g_unix_mount_points_get:
- * @time_read: (allow-none): guint64 to contain a timestamp.
+ * g_unix_mount_points_get: (skip)
+ * @time_read: (out) (allow-none): guint64 to contain a timestamp.
*
* Gets a #GList of #GUnixMountPoint containing the unix mount points.
* If @time_read is set, it will be filled with the mount timestamp,
* allowing for checking if the mounts have changed with
* g_unix_mounts_points_changed_since().
*
- * Returns: (element-type utf8) (transfer full): a #GList of the UNIX mountpoints.
+ * Returns: (element-type GUnixMountPoint) (transfer full):
+ * a #GList of the UNIX mountpoints.
**/
GList *
g_unix_mount_points_get (guint64 *time_read)
diff --git a/gio/gunixsocketaddress.c b/gio/gunixsocketaddress.c
index a1e06b1..440ab25 100644
--- a/gio/gunixsocketaddress.c
+++ b/gio/gunixsocketaddress.c
@@ -349,7 +349,7 @@
/**
* g_unix_socket_address_new_abstract:
- * @path: the abstract name
+ * @path: (array length=path_len) (element-type gchar): the abstract name
* @path_len: the length of @path, or -1
*
* Creates a new %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED
@@ -369,7 +369,7 @@
/**
* g_unix_socket_address_new_with_type:
- * @path: the name
+ * @path: (array length=path_len) (element-type gchar): the name
* @path_len: the length of @path, or -1
* @type: a #GUnixSocketAddressType
*
diff --git a/gio/gvolume.c b/gio/gvolume.c
index df1b78d..8e96288 100644
--- a/gio/gvolume.c
+++ b/gio/gvolume.c
@@ -301,8 +301,8 @@
* @volume: a #GVolume.
* @flags: flags affecting the operation
* @mount_operation: (allow-none): a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data that gets passed to @callback
*
* Mounts a volume. This is an asynchronous operation, and is
@@ -378,8 +378,8 @@
* g_volume_eject:
* @volume: a #GVolume.
* @flags: flags affecting the unmount if required for eject
- * @cancellable: optional #GCancellable object, %NULL to ignore.
- * @callback: a #GAsyncReadyCallback, or %NULL.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
+ * @callback: (allow-none): a #GAsyncReadyCallback, or %NULL.
* @user_data: user data that gets passed to @callback
*
* Ejects a volume. This is an asynchronous operation, and is
@@ -451,8 +451,9 @@
* g_volume_eject_with_operation:
* @volume: a #GVolume.
* @flags: flags affecting the unmount if required for eject
- * @mount_operation: a #GMountOperation or %NULL to avoid user interaction.
- * @cancellable: optional #GCancellable object, %NULL to ignore.
+ * @mount_operation: (allow-none): a #GMountOperation or %NULL to
+ * avoid user interaction.
+ * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore.
* @callback: a #GAsyncReadyCallback, or %NULL.
* @user_data: user data passed to @callback.
*
diff --git a/gio/tests/.gitignore b/gio/tests/.gitignore
index 0663fef..7e201bb 100644
--- a/gio/tests/.gitignore
+++ b/gio/tests/.gitignore
@@ -55,6 +55,7 @@
gsettings.store
httpd
icons
+io-stream
live-g-file
memory-input-stream
memory-output-stream
diff --git a/gio/tests/Makefile.am b/gio/tests/Makefile.am
index def7392..5f49e6c 100644
--- a/gio/tests/Makefile.am
+++ b/gio/tests/Makefile.am
@@ -18,6 +18,7 @@
$(top_builddir)/gio/libgio-2.0.la
TEST_PROGS += \
+ io-stream \
actions \
memory-input-stream \
memory-output-stream \
@@ -102,6 +103,9 @@
TEST_PROGS += win32-streams
endif
+io_stream_SOURCES = io-stream.c
+io_stream_LDADD = $(progs_ldadd)
+
actions_LDADD = $(progs_ldadd)
memory_input_stream_SOURCES = memory-input-stream.c
diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c
index 9d9e181..6c6e313 100644
--- a/gio/tests/desktop-app-info.c
+++ b/gio/tests/desktop-app-info.c
@@ -82,7 +82,7 @@
if (g_file_test ("/usr/share/applications/gedit.desktop", G_FILE_TEST_EXISTS))
{
- info = (GAppInfo*)g_desktop_app_info_new ("gedit.desktop");
+ info = (GAppInfo*)g_desktop_app_info_new_from_filename ("/usr/share/applications/gedit.desktop");
g_assert (info);
res = g_app_info_can_delete (info);
@@ -205,9 +205,6 @@
app = g_list_nth_data (apps, 0);
g_assert (g_app_info_equal (info1, app));
- app = g_list_nth_data (apps, 1);
- g_assert (g_app_info_equal (info2, app));
-
/* check that Test1 is the first recommended app */
recomm = g_app_info_get_recommended_for_type ("text/x-python");
g_assert (recomm != NULL);
@@ -246,6 +243,56 @@
}
static void
+test_last_used (void)
+{
+ GList *applications;
+ GAppInfo *info1, *info2, *default_app;
+ GError *error = NULL;
+
+ info1 = create_app_info ("Test1");
+ info2 = create_app_info ("Test2");
+
+ g_app_info_set_as_default_for_type (info1, "application/x-test", &error);
+ g_assert (error == NULL);
+
+ g_app_info_add_supports_type (info2, "application/x-test", &error);
+ g_assert (error == NULL);
+
+ applications = g_app_info_get_recommended_for_type ("application/x-test");
+ g_assert (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_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);
+
+ applications = g_app_info_get_recommended_for_type ("application/x-test");
+ g_assert (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));
+
+ /* 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_list_free_full (applications, g_object_unref);
+
+ g_app_info_reset_type_associations ("application/x-test");
+
+ g_app_info_delete (info1);
+ g_app_info_delete (info2);
+
+ g_object_unref (info1);
+ g_object_unref (info2);
+ g_object_unref (default_app);
+}
+
+static void
cleanup_dir_recurse (GFile *parent, GFile *root)
{
gboolean res;
@@ -322,6 +369,7 @@
g_test_add_func ("/desktop-app-info/delete", test_delete);
g_test_add_func ("/desktop-app-info/default", test_default);
g_test_add_func ("/desktop-app-info/fallback", test_fallback);
+ g_test_add_func ("/desktop-app-info/lastused", test_last_used);
result = g_test_run ();
diff --git a/gio/tests/gdbus-connection.c b/gio/tests/gdbus-connection.c
index 866e27c..5c2939e 100644
--- a/gio/tests/gdbus-connection.c
+++ b/gio/tests/gdbus-connection.c
@@ -880,6 +880,18 @@
m2 = g_dbus_message_copy (m, &error);
g_assert_no_error (error);
+ g_dbus_message_set_serial (m2, data.serial);
+ /* lock the message to test PRESERVE_SERIAL flag. */
+ g_dbus_message_lock (m2);
+ g_dbus_connection_send_message (c, m2, G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL, &data.serial, &error);
+ g_object_unref (m2);
+ g_assert_no_error (error);
+
+ while (data.num_handled == 2)
+ g_thread_yield ();
+
+ m2 = g_dbus_message_copy (m, &error);
+ g_assert_no_error (error);
r = g_dbus_connection_send_message_with_reply_sync (c,
m2,
G_DBUS_SEND_MESSAGE_FLAGS_NONE,
@@ -891,7 +903,7 @@
g_assert_no_error (error);
g_assert (r != NULL);
g_object_unref (r);
- g_assert_cmpint (data.num_handled, ==, 3);
+ g_assert_cmpint (data.num_handled, ==, 4);
g_dbus_connection_remove_filter (c, filter_id);
@@ -908,8 +920,8 @@
g_assert_no_error (error);
g_assert (r != NULL);
g_object_unref (r);
- g_assert_cmpint (data.num_handled, ==, 3);
- g_assert_cmpint (data.num_outgoing, ==, 3);
+ g_assert_cmpint (data.num_handled, ==, 4);
+ g_assert_cmpint (data.num_outgoing, ==, 4);
/* this is safe; testserver will exit once the bus goes away */
g_assert (g_spawn_command_line_async (SRCDIR "/gdbus-testserver.py", NULL));
diff --git a/gio/tests/io-stream.c b/gio/tests/io-stream.c
new file mode 100644
index 0000000..dbac08b
--- /dev/null
+++ b/gio/tests/io-stream.c
@@ -0,0 +1,185 @@
+/* GLib testing framework examples and tests
+ * Copyright (C) 2010 Collabora Ltd.
+ * Authors: Xavier Claessens <xclaesse@gmail.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/glib.h>
+#include <gio/gio.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct
+{
+ GIOStream parent;
+ GInputStream *input_stream;
+ GOutputStream *output_stream;
+} GTestIOStream;
+
+typedef struct
+{
+ GIOStreamClass parent_class;
+} GTestIOStreamClass;
+
+G_DEFINE_TYPE (GTestIOStream, g_test_io_stream, G_TYPE_IO_STREAM);
+
+
+static GInputStream *
+get_input_stream (GIOStream *io_stream)
+{
+ GTestIOStream *self = (GTestIOStream *) io_stream;
+
+ return self->input_stream;
+}
+
+static GOutputStream *
+get_output_stream (GIOStream *io_stream)
+{
+ GTestIOStream *self = (GTestIOStream *) io_stream;
+
+ return self->output_stream;
+}
+
+static void
+finalize (GObject *object)
+{
+ GTestIOStream *self = (GTestIOStream *) object;
+
+ if (self->input_stream != NULL)
+ g_object_unref (self->input_stream);
+
+ if (self->output_stream != NULL)
+ g_object_unref (self->output_stream);
+
+ G_OBJECT_CLASS (g_test_io_stream_parent_class)->finalize (object);
+}
+
+static void
+g_test_io_stream_class_init (GTestIOStreamClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GIOStreamClass *io_class = G_IO_STREAM_CLASS (klass);
+
+ object_class->finalize = finalize;
+
+ io_class->get_input_stream = get_input_stream;
+ io_class->get_output_stream = get_output_stream;
+}
+
+static void
+g_test_io_stream_init (GTestIOStream *self)
+{
+}
+
+static GIOStream *
+g_test_io_stream_new (GInputStream *input, GOutputStream *output)
+{
+ GTestIOStream *self;
+
+ self = g_object_new (g_test_io_stream_get_type (), NULL);
+ self->input_stream = g_object_ref (input);
+ self->output_stream = g_object_ref (output);
+
+ return G_IO_STREAM (self);
+}
+
+typedef struct
+{
+ GMainLoop *main_loop;
+ const gchar *data1;
+ const gchar *data2;
+ GIOStream *iostream1;
+ GIOStream *iostream2;
+} TestCopyChunksData;
+
+static void
+test_copy_chunks_splice_cb (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ TestCopyChunksData *data = user_data;
+ GMemoryOutputStream *ostream;
+ gchar *received_data;
+ GError *error = NULL;
+
+ g_io_stream_splice_finish (res, &error);
+ g_assert_no_error (error);
+
+ ostream = G_MEMORY_OUTPUT_STREAM (((GTestIOStream *) data->iostream1)->output_stream);
+ received_data = g_memory_output_stream_get_data (ostream);
+ g_assert_cmpstr (received_data, ==, data->data2);
+
+ ostream = G_MEMORY_OUTPUT_STREAM (((GTestIOStream *) data->iostream2)->output_stream);
+ received_data = g_memory_output_stream_get_data (ostream);
+ g_assert_cmpstr (received_data, ==, data->data1);
+
+ g_assert (g_io_stream_is_closed (data->iostream1));
+ g_assert (g_io_stream_is_closed (data->iostream2));
+
+ g_main_loop_quit (data->main_loop);
+}
+
+static void
+test_copy_chunks (void)
+{
+ TestCopyChunksData data;
+ GInputStream *istream;
+ GOutputStream *ostream;
+
+ data.main_loop = g_main_loop_new (NULL, FALSE);
+ data.data1 = "abcdefghijklmnopqrstuvwxyz";
+ data.data2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ istream = g_memory_input_stream_new_from_data (data.data1, -1, NULL);
+ ostream = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
+ data.iostream1 = g_test_io_stream_new (istream, ostream);
+ g_object_unref (istream);
+ g_object_unref (ostream);
+
+ istream = g_memory_input_stream_new_from_data (data.data2, -1, NULL);
+ ostream = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
+ data.iostream2 = g_test_io_stream_new (istream, ostream);
+ g_object_unref (istream);
+ g_object_unref (ostream);
+
+ g_io_stream_splice_async (data.iostream1, data.iostream2,
+ G_IO_STREAM_SPLICE_CLOSE_STREAM1 | G_IO_STREAM_SPLICE_CLOSE_STREAM2 |
+ G_IO_STREAM_SPLICE_WAIT_FOR_BOTH, G_PRIORITY_DEFAULT,
+ NULL, test_copy_chunks_splice_cb, &data);
+
+ /* We do not hold a ref in data struct, this is to make sure the operation
+ * keeps the iostream objects alive until it finishes */
+ g_object_unref (data.iostream1);
+ g_object_unref (data.iostream2);
+
+ g_main_loop_run (data.main_loop);
+ g_main_loop_unref (data.main_loop);
+}
+
+int
+main (int argc,
+ char *argv[])
+{
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/io-stream/copy-chunks", test_copy_chunks);
+
+ return g_test_run();
+}
diff --git a/gio/tests/resolver.c b/gio/tests/resolver.c
index 64bc67e..0b2a3fd 100644
--- a/gio/tests/resolver.c
+++ b/gio/tests/resolver.c
@@ -41,11 +41,12 @@
usage (void)
{
fprintf (stderr, "Usage: resolver [-t] [-s] [hostname | IP | service/protocol/domain ] ...\n");
- fprintf (stderr, " resolver [-t] [-s] -c [hostname | IP | service/protocol/domain ]\n");
+ fprintf (stderr, " resolver [-t] [-s] -c NUMBER [hostname | IP | service/protocol/domain ]\n");
fprintf (stderr, " Use -t to enable threading.\n");
fprintf (stderr, " Use -s to do synchronous lookups.\n");
fprintf (stderr, " Both together will result in simultaneous lookups in multiple threads\n");
- fprintf (stderr, " Use -c (and only a single resolvable argument) to test GSocketConnectable.\n");
+ fprintf (stderr, " Use -c NUMBER(and only a single resolvable argument) to test GSocketConnectable.\n");
+ fprintf (stderr, " The given NUMBER determines how often the connectable will be enumerated.\n");
exit (1);
}
@@ -360,7 +361,7 @@
}
static void
-do_connectable (const char *arg, gboolean synchronous)
+do_connectable (const char *arg, gboolean synchronous, guint count)
{
char **parts;
GSocketConnectable *connectable;
@@ -400,13 +401,17 @@
connectable = g_network_address_new (arg, port);
}
- enumerator = g_socket_connectable_enumerate (connectable);
- g_object_unref (connectable);
+ while (count--)
+ {
+ enumerator = g_socket_connectable_enumerate (connectable);
- if (synchronous)
- do_sync_connectable (enumerator);
- else
- do_async_connectable (enumerator);
+ if (synchronous)
+ do_sync_connectable (enumerator);
+ else
+ do_async_connectable (enumerator);
+ }
+
+ g_object_unref (connectable);
}
#ifdef G_OS_UNIX
@@ -434,7 +439,7 @@
main (int argc, char **argv)
{
gboolean threaded = FALSE, synchronous = FALSE;
- gboolean use_connectable = FALSE;
+ guint connectable_count = 0;
#ifdef G_OS_UNIX
GIOChannel *chan;
guint watch;
@@ -453,7 +458,11 @@
else if (!strcmp (argv[1], "-s"))
synchronous = TRUE;
else if (!strcmp (argv[1], "-c"))
- use_connectable = TRUE;
+ {
+ connectable_count = atoi (argv[2]);
+ argv++;
+ argc--;
+ }
else
usage ();
@@ -462,7 +471,7 @@
}
g_type_init ();
- if (argc < 2 || (argc > 2 && use_connectable))
+ if (argc < 2 || (argc > 2 && connectable_count))
usage ();
resolver = g_resolver_get_default ();
@@ -488,8 +497,11 @@
nlookups = argc - 1;
loop = g_main_loop_new (NULL, TRUE);
- if (use_connectable)
- do_connectable (argv[1], synchronous);
+ if (connectable_count)
+ {
+ nlookups = connectable_count;
+ do_connectable (argv[1], synchronous, connectable_count);
+ }
else
{
if (threaded && synchronous)
diff --git a/gio/tests/socket-client.c b/gio/tests/socket-client.c
index 61997da..6068034 100644
--- a/gio/tests/socket-client.c
+++ b/gio/tests/socket-client.c
@@ -203,7 +203,7 @@
if (tls)
{
- GTlsClientConnection *tls_conn;
+ GIOStream *tls_conn;
tls_conn = g_tls_client_connection_new (connection, connectable, &error);
if (!tls_conn)
diff --git a/gio/tests/socket-server.c b/gio/tests/socket-server.c
index f151681..a44b158 100644
--- a/gio/tests/socket-server.c
+++ b/gio/tests/socket-server.c
@@ -211,7 +211,7 @@
if (tlscert)
{
- GTlsServerConnection *tls_conn;
+ GIOStream *tls_conn;
tls_conn = g_tls_server_connection_new (connection, tlscert, &error);
if (!tls_conn)
@@ -230,7 +230,7 @@
}
g_object_unref (connection);
- connection = G_IO_STREAM (tls_conn);
+ connection = tls_conn;
}
if (connection)
diff --git a/glib/gfileutils.c b/glib/gfileutils.c
index 185a756..a87f0e9 100644
--- a/glib/gfileutils.c
+++ b/glib/gfileutils.c
@@ -53,6 +53,10 @@
#include "gstdio.h"
#include "glibintl.h"
+#ifdef __linux__ /* for btrfs check */
+#include <linux/magic.h>
+#include <sys/vfs.h>
+#endif
/**
* g_mkdir_with_parents:
@@ -963,6 +967,20 @@
goto out;
}
+
+#ifdef BTRFS_SUPER_MAGIC
+ {
+ struct statfs buf;
+
+ /* On Linux, on btrfs, skip the fsync since rename-over-existing is
+ * guaranteed to be atomic and this is the only case in which we
+ * would fsync() anyway.
+ */
+
+ if (fstatfs (fd, &buf) == 0 && buf.f_type == BTRFS_SUPER_MAGIC)
+ goto no_fsync;
+ }
+#endif
#ifdef HAVE_FSYNC
{
@@ -994,6 +1012,7 @@
}
}
#endif
+ no_fsync:
errno = 0;
if (fclose (file) == EOF)
diff --git a/glib/ghostutils.c b/glib/ghostutils.c
index c036195..99afe9a 100644
--- a/glib/ghostutils.c
+++ b/glib/ghostutils.c
@@ -303,7 +303,8 @@
/* RFC 3491 IDN cleanup algorithm. */
static gchar *
nameprep (const gchar *hostname,
- gint len)
+ gint len,
+ gboolean *is_unicode)
{
gchar *name, *tmp = NULL, *p;
@@ -336,12 +337,15 @@
/* If there are no UTF8 characters, we're done. */
if (!contains_non_ascii (name, len))
{
+ *is_unicode = FALSE;
if (name == (gchar *)hostname)
return len == -1 ? g_strdup (hostname) : g_strndup (hostname, len);
else
return name;
}
+ *is_unicode = TRUE;
+
/* Normalize */
name = g_utf8_normalize (name, len, G_NORMALIZE_NFKC);
g_free (tmp);
@@ -383,6 +387,26 @@
return name;
}
+/* RFC 3490, section 3.1 says '.', 0x3002, 0xFF0E, and 0xFF61 count as
+ * label-separating dots. @str must be '\0'-terminated.
+ */
+#define idna_is_dot(str) ( \
+ ((guchar)(str)[0] == '.') || \
+ ((guchar)(str)[0] == 0xE3 && (guchar)(str)[1] == 0x80 && (guchar)(str)[2] == 0x82) || \
+ ((guchar)(str)[0] == 0xEF && (guchar)(str)[1] == 0xBC && (guchar)(str)[2] == 0x8E) || \
+ ((guchar)(str)[0] == 0xEF && (guchar)(str)[1] == 0xBD && (guchar)(str)[2] == 0xA1) )
+
+static const gchar *
+idna_end_of_label (const gchar *str)
+{
+ for (; *str; str = g_utf8_next_char (str))
+ {
+ if (idna_is_dot (str))
+ return str;
+ }
+ return str;
+}
+
/**
* g_hostname_to_ascii:
* @hostname: a valid UTF-8 or ASCII hostname
@@ -404,16 +428,16 @@
gssize llen, oldlen;
gboolean unicode;
- label = name = nameprep (hostname, -1);
- if (!name)
- return NULL;
+ label = name = nameprep (hostname, -1, &unicode);
+ if (!name || !unicode)
+ return name;
out = g_string_new (NULL);
do
{
unicode = FALSE;
- for (p = label; *p && *p != '.'; p++)
+ for (p = label; *p && !idna_is_dot (p); p++)
{
if ((guchar)*p > 0x80)
unicode = TRUE;
@@ -437,7 +461,9 @@
goto fail;
label += llen;
- if (*label && *++label)
+ if (*label)
+ label = g_utf8_next_char (label);
+ if (*label)
g_string_append_c (out, '.');
}
while (*label);
@@ -585,7 +611,7 @@
do
{
- llen = strcspn (hostname, ".");
+ llen = idna_end_of_label (hostname) - hostname;
if (!g_ascii_strncasecmp (hostname, IDNA_ACE_PREFIX, IDNA_ACE_PREFIX_LEN))
{
hostname += IDNA_ACE_PREFIX_LEN;
@@ -598,7 +624,8 @@
}
else
{
- gchar *canonicalized = nameprep (hostname, llen);
+ gboolean unicode;
+ gchar *canonicalized = nameprep (hostname, llen, &unicode);
if (!canonicalized)
{
@@ -610,7 +637,9 @@
}
hostname += llen;
- if (*hostname && *++hostname)
+ if (*hostname)
+ hostname = g_utf8_next_char (hostname);
+ if (*hostname)
g_string_append_c (out, '.');
}
while (*hostname);
@@ -643,8 +672,10 @@
{
if (!g_ascii_strncasecmp (hostname, IDNA_ACE_PREFIX, IDNA_ACE_PREFIX_LEN))
return TRUE;
- hostname = strchr (hostname, '.');
- if (!hostname++)
+ hostname = idna_end_of_label (hostname);
+ if (*hostname)
+ hostname = g_utf8_next_char (hostname);
+ if (!*hostname)
return FALSE;
}
}
diff --git a/glib/giochannel.c b/glib/giochannel.c
index e70e40a..8b74386 100644
--- a/glib/giochannel.c
+++ b/glib/giochannel.c
@@ -1987,39 +1987,38 @@
* g_io_channel_read_chars:
* @channel: a #GIOChannel
* @buf: a buffer to read data into
- * @count: the size of the buffer. Note that the buffer may
- * not be complelely filled even if there is data
- * in the buffer if the remaining data is not a
- * complete character.
- * @bytes_read: The number of bytes read. This may be zero even on
- * success if count < 6 and the channel's encoding is non-%NULL.
- * This indicates that the next UTF-8 character is too wide for
- * the buffer.
+ * @count: the size of the buffer. Note that the buffer may not be
+ * complelely filled even if there is data in the buffer if the
+ * remaining data is not a complete character.
+ * @bytes_read: (allow-none): The number of bytes read. This may be
+ * zero even on success if count < 6 and the channel's encoding
+ * is non-%NULL. This indicates that the next UTF-8 character is
+ * too wide for the buffer.
* @error: a location to return an error of type #GConvertError
- * or #GIOChannelError.
+ * or #GIOChannelError.
*
* Replacement for g_io_channel_read() with the new API.
*
* Return value: the status of the operation.
- **/
+ */
GIOStatus
g_io_channel_read_chars (GIOChannel *channel,
- gchar *buf,
- gsize count,
- gsize *bytes_read,
+ gchar *buf,
+ gsize count,
+ gsize *bytes_read,
GError **error)
{
GIOStatus status;
gsize got_bytes;
g_return_val_if_fail (channel != NULL, G_IO_STATUS_ERROR);
- g_return_val_if_fail ((error == NULL) || (*error == NULL),
- G_IO_STATUS_ERROR);
+ g_return_val_if_fail ((error == NULL) || (*error == NULL), G_IO_STATUS_ERROR);
g_return_val_if_fail (channel->is_readable, G_IO_STATUS_ERROR);
if (count == 0)
{
- *bytes_read = 0;
+ if (bytes_read)
+ *bytes_read = 0;
return G_IO_STATUS_NORMAL;
}
g_return_val_if_fail (buf != NULL, G_IO_STATUS_ERROR);
@@ -2027,13 +2026,13 @@
if (!channel->use_buffer)
{
gsize tmp_bytes;
-
+
g_assert (!channel->read_buf || channel->read_buf->len == 0);
status = channel->funcs->io_read (channel, buf, count, &tmp_bytes, error);
-
+
if (bytes_read)
- *bytes_read = tmp_bytes;
+ *bytes_read = tmp_bytes;
return status;
}
diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c
index 10ca2a2..1f2a856 100644
--- a/glib/gkeyfile.c
+++ b/glib/gkeyfile.c
@@ -26,6 +26,7 @@
#include "config.h"
#include "gkeyfile.h"
+#include "gutils.h"
#include <errno.h>
#include <fcntl.h>
@@ -1630,8 +1631,6 @@
g_free (value);
}
-extern GSList *_g_compute_locale_variants (const gchar *locale);
-
/**
* g_key_file_get_locale_string:
* @key_file: a #GKeyFile
@@ -1677,16 +1676,7 @@
if (locale)
{
- GSList *l, *list;
-
- list = _g_compute_locale_variants (locale);
-
- languages = g_new (gchar *, g_slist_length (list) + 1);
- for (l = list, i = 0; l; l = l->next, i++)
- languages[i] = l->data;
- languages[i] = NULL;
-
- g_slist_free (list);
+ languages = g_get_locale_variants (locale);
free_languages = TRUE;
}
else
diff --git a/glib/glib.symbols b/glib/glib.symbols
index 9bb0419..4591ecd 100644
--- a/glib/glib.symbols
+++ b/glib/glib.symbols
@@ -1122,6 +1122,8 @@
g_sequence_move_range
g_sequence_search
g_sequence_search_iter
+g_sequence_lookup
+g_sequence_lookup_iter
g_sequence_get
g_sequence_set
g_sequence_iter_is_begin
@@ -1655,6 +1657,7 @@
g_get_home_dir_utf8
#endif
g_get_language_names
+g_get_locale_variants
g_get_prgname
#ifndef _WIN64
g_get_real_name PRIVATE
diff --git a/glib/grand.c b/glib/grand.c
index a70ce7b..e86afa7 100644
--- a/glib/grand.c
+++ b/glib/grand.c
@@ -68,8 +68,8 @@
* pseudo-random number generator (PRNG). It uses the Mersenne Twister
* PRNG, which was originally developed by Makoto Matsumoto and Takuji
* Nishimura. Further information can be found at
- * <ulink url="http://www.math.keio.ac.jp/~matumoto/emt.html">
- * www.math.keio.ac.jp/~matumoto/emt.html</ulink>.
+ * <ulink url="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html">
+ * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html</ulink>.
*
* If you just need a random number, you simply call the
* <function>g_random_*</function> functions, which will create a
diff --git a/glib/grand.h b/glib/grand.h
index 07907df..0397992 100644
--- a/glib/grand.h
+++ b/glib/grand.h
@@ -38,7 +38,7 @@
typedef struct _GRand GRand;
/* GRand - a good and fast random number generator: Mersenne Twister
- * see http://www.math.keio.ac.jp/~matumoto/emt.html for more info.
+ * see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for more info.
* The range functions return a value in the intervall [begin, end).
* int -> [0..2^32-1]
* int_range -> [begin..end-1]
diff --git a/glib/gsequence.c b/glib/gsequence.c
index 8b28ce7..40b3294 100644
--- a/glib/gsequence.c
+++ b/glib/gsequence.c
@@ -133,6 +133,11 @@
static gint node_get_pos (GSequenceNode *node);
static GSequenceNode *node_get_by_pos (GSequenceNode *node,
gint pos);
+static GSequenceNode *node_find (GSequenceNode *haystack,
+ GSequenceNode *needle,
+ GSequenceNode *end,
+ GSequenceIterCompareFunc cmp,
+ gpointer user_data);
static GSequenceNode *node_find_closest (GSequenceNode *haystack,
GSequenceNode *needle,
GSequenceNode *end,
@@ -756,6 +761,9 @@
* Returns an iterator pointing to the position where @data would
* be inserted according to @cmp_func and @cmp_data.
*
+ * If you are simply searching for an existing element of the sequence,
+ * consider using g_sequence_lookup().
+ *
* Return value: an #GSequenceIter pointing to the position where @data
* would have been inserted according to @cmp_func and @cmp_data.
*
@@ -780,6 +788,46 @@
}
/**
+ * g_sequence_lookup:
+ * @seq: a #GSequence
+ * @data: data to lookup
+ * @cmp_func: the #GCompareDataFunc used to compare items in the sequence. It
+ * is called with two items of the @seq and @user_data. It should
+ * return 0 if the items are equal, a negative value if the first
+ * item comes before the second, and a positive value if the second
+ * item comes before the first.
+ * @cmp_data: user data passed to @cmp_func.
+ *
+ * Returns an iterator pointing to the position of the first item found
+ * equal to @data according to @cmp_func and @cmp_data. If more than one item
+ * is equal, it is not guaranteed that it is the first which is returned.
+ * In that case, you can use g_sequence_iter_next() and g_sequence_iter_prev()
+ * to get others.
+ *
+ * Return value: an #GSequenceIter pointing to the position of the first item
+ * found equal to @data according to @cmp_func and @cmp_data.
+ *
+ * Since: 2.26
+ **/
+GSequenceIter *
+g_sequence_lookup (GSequence *seq,
+ gpointer data,
+ GCompareDataFunc cmp_func,
+ gpointer cmp_data)
+{
+ SortInfo info;
+
+ g_return_val_if_fail (seq != NULL, NULL);
+
+ info.cmp_func = cmp_func;
+ info.cmp_data = cmp_data;
+ info.end_node = seq->end_node;
+ check_seq_access (seq);
+
+ return g_sequence_lookup_iter (seq, data, iter_compare, &info);
+}
+
+/**
* g_sequence_sort_iter:
* @seq: a #GSequence
* @cmp_func: the #GSequenceItercompare used to compare iterators in the
@@ -970,6 +1018,9 @@
* a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as
* the compare function.
*
+ * If you are simply searching for an existing element of the sequence,
+ * consider using g_sequence_lookup_iter().
+ *
* Return value: a #GSequenceIter pointing to the position in @seq
* where @data would have been inserted according to @iter_cmp and @cmp_data.
*
@@ -1007,6 +1058,57 @@
}
/**
+ * g_sequence_lookup_iter:
+ * @seq: a #GSequence
+ * @data: data to lookup
+ * @iter_cmp: the #GSequenceIterCompare function used to compare iterators
+ * in the sequence. It is called with two iterators pointing into @seq.
+ * It should return 0 if the iterators are equal, a negative value if the
+ * first iterator comes before the second, and a positive value if the
+ * second iterator comes before the first.
+ * @cmp_data: user data passed to @iter_cmp
+ *
+ * Like g_sequence_lookup(), but uses
+ * a #GSequenceIterCompareFunc instead of a #GCompareDataFunc as
+ * the compare function.
+ *
+ * Return value: an #GSequenceIter pointing to the position of the first item
+ * found equal to @data according to @cmp_func and @cmp_data.
+ *
+ * Since: 2.26
+ **/
+GSequenceIter *
+g_sequence_lookup_iter (GSequence *seq,
+ gpointer data,
+ GSequenceIterCompareFunc iter_cmp,
+ gpointer cmp_data)
+{
+ GSequenceNode *node;
+ GSequenceNode *dummy;
+ GSequence *tmp_seq;
+
+ g_return_val_if_fail (seq != NULL, NULL);
+
+ check_seq_access (seq);
+
+ seq->access_prohibited = TRUE;
+
+ tmp_seq = g_sequence_new (NULL);
+ tmp_seq->real_sequence = seq;
+
+ dummy = g_sequence_append (tmp_seq, data);
+
+ node = node_find (seq->end_node, dummy,
+ seq->end_node, iter_cmp, cmp_data);
+
+ g_sequence_free (tmp_seq);
+
+ seq->access_prohibited = FALSE;
+
+ return node;
+}
+
+/**
* g_sequence_iter_get_sequence:
* @iter: a #GSequenceIter
*
@@ -1549,6 +1651,40 @@
}
static GSequenceNode *
+node_find (GSequenceNode *haystack,
+ GSequenceNode *needle,
+ GSequenceNode *end,
+ GSequenceIterCompareFunc iter_cmp,
+ gpointer cmp_data)
+{
+ gint c;
+
+ haystack = find_root (haystack);
+
+ do
+ {
+ /* iter_cmp can't be passed the end node, since the function may
+ * be user-supplied
+ */
+ if (haystack == end)
+ c = 1;
+ else
+ c = iter_cmp (haystack, needle, cmp_data);
+
+ if (c == 0)
+ break;
+
+ if (c > 0)
+ haystack = haystack->left;
+ else
+ haystack = haystack->right;
+ }
+ while (haystack != NULL);
+
+ return haystack;
+}
+
+static GSequenceNode *
node_find_closest (GSequenceNode *haystack,
GSequenceNode *needle,
GSequenceNode *end,
@@ -1572,7 +1708,7 @@
else
c = iter_cmp (haystack, needle, cmp_data);
- /* In the following we don't break even if c == 0. Instaed we go on
+ /* In the following we don't break even if c == 0. Instead we go on
* searching along the 'bigger' nodes, so that we find the last one
* that is equal to the needle.
*/
diff --git a/glib/gsequence.h b/glib/gsequence.h
index fa79066..6a21c3e 100644
--- a/glib/gsequence.h
+++ b/glib/gsequence.h
@@ -99,6 +99,14 @@
gpointer data,
GSequenceIterCompareFunc iter_cmp,
gpointer cmp_data);
+GSequenceIter *g_sequence_lookup (GSequence *seq,
+ gpointer data,
+ GCompareDataFunc cmp_func,
+ gpointer cmp_data);
+GSequenceIter *g_sequence_lookup_iter (GSequence *seq,
+ gpointer data,
+ GSequenceIterCompareFunc iter_cmp,
+ gpointer cmp_data);
/* Dereferencing */
diff --git a/glib/gtester-report b/glib/gtester-report
index 3bce548..0fcdd9a 100755
--- a/glib/gtester-report
+++ b/glib/gtester-report
@@ -135,6 +135,9 @@
self.info['package'] = node_as_text (dn)
dn = find_child (node, 'version')
self.info['version'] = node_as_text (dn)
+ dn = find_child (node, 'revision')
+ if dn is not None:
+ self.info['revision'] = node_as_text (dn)
def handle_testcase (self, node):
self.last_binary.testcases += [ node ]
result = attribute_as_text (node, 'result', 'status')
@@ -239,6 +242,8 @@
self.lastchar = message[-1]
def handle_info (self):
self.oprint ('<h3>Package: %(package)s, version: %(version)s</h3>\n' % self.info)
+ if self.info['revision']:
+ self.oprint ('<h5>Report generated from: %(revision)s</h5>\n' % self.info)
def handle_text (self, node):
self.oprint (node.nodeValue)
def handle_testcase (self, node, binary):
diff --git a/glib/gutils.c b/glib/gutils.c
index 73165ba..5512fd4 100644
--- a/glib/gutils.c
+++ b/glib/gutils.c
@@ -68,6 +68,7 @@
#include "gtestutils.h"
#include "gunicode.h"
#include "gstrfuncs.h"
+#include "garray.h"
#include "glibintl.h"
#ifdef G_PLATFORM_WIN32
@@ -3157,36 +3158,39 @@
* but it is big, ugly, and complicated, so I'm reluctant
* to do so when this should handle 99% of the time...
*/
-GSList *
-_g_compute_locale_variants (const gchar *locale)
+static void
+append_locale_variants (GPtrArray *array,
+ const gchar *locale)
{
- GSList *retval = NULL;
-
gchar *language = NULL;
gchar *territory = NULL;
gchar *codeset = NULL;
gchar *modifier = NULL;
guint mask;
- guint i;
+ guint i, j;
- g_return_val_if_fail (locale != NULL, NULL);
+ g_return_if_fail (locale != NULL);
mask = explode_locale (locale, &language, &territory, &codeset, &modifier);
/* Iterate through all possible combinations, from least attractive
* to most attractive.
*/
- for (i = 0; i <= mask; i++)
- if ((i & ~mask) == 0)
- {
- gchar *val = g_strconcat (language,
- (i & COMPONENT_TERRITORY) ? territory : "",
- (i & COMPONENT_CODESET) ? codeset : "",
- (i & COMPONENT_MODIFIER) ? modifier : "",
- NULL);
- retval = g_slist_prepend (retval, val);
- }
+ for (j = 0; j <= mask; ++j)
+ {
+ i = mask - j;
+
+ if ((i & ~mask) == 0)
+ {
+ gchar *val = g_strconcat (language,
+ (i & COMPONENT_TERRITORY) ? territory : "",
+ (i & COMPONENT_CODESET) ? codeset : "",
+ (i & COMPONENT_MODIFIER) ? modifier : "",
+ NULL);
+ g_ptr_array_add (array, val);
+ }
+ }
g_free (language);
if (mask & COMPONENT_CODESET)
@@ -3195,8 +3199,41 @@
g_free (territory);
if (mask & COMPONENT_MODIFIER)
g_free (modifier);
+}
- return retval;
+/**
+ * g_get_locale_variants:
+ * @locale: a locale identifier
+ *
+ * Returns a list of derived variants of @locale, which can be used to
+ * e.g. construct locale-dependent filenames or search paths. The returned
+ * list is sorted from most desirable to least desirable.
+ * This function handles territory, charset and extra locale modifiers.
+ *
+ * For example, if @locale is "fr_BE", then the returned list
+ * is "fr_BE", "fr".
+ *
+ * If you need the list of variants for the <emphasis>current locale</emphasis>,
+ * use g_get_language_names().
+ *
+ * Returns: (transfer full) (array zero-terminated="1") (element-type utf8): a newly
+ * allocated array of newly allocated strings with the locale variants. Free with
+ * g_strfreev().
+ *
+ * Since: 2.28
+ */
+gchar **
+g_get_locale_variants (const gchar *locale)
+{
+ GPtrArray *array;
+
+ g_return_val_if_fail (locale != NULL, NULL);
+
+ array = g_ptr_array_sized_new (8);
+ append_locale_variants (array, locale);
+ g_ptr_array_add (array, NULL);
+
+ return (gchar **) g_ptr_array_free (array, FALSE);
}
/* The following is (partly) taken from the gettext package.
@@ -3305,31 +3342,23 @@
if (!(cache->languages && strcmp (cache->languages, value) == 0))
{
- gchar **languages;
+ GPtrArray *array;
gchar **alist, **a;
- GSList *list, *l;
- gint i;
g_free (cache->languages);
g_strfreev (cache->language_names);
cache->languages = g_strdup (value);
+ array = g_ptr_array_sized_new (8);
+
alist = g_strsplit (value, ":", 0);
- list = NULL;
for (a = alist; *a; a++)
- {
- gchar *b = unalias_lang (*a);
- list = g_slist_concat (list, _g_compute_locale_variants (b));
- }
+ append_locale_variants (array, unalias_lang (*a));
g_strfreev (alist);
- list = g_slist_append (list, g_strdup ("C"));
+ g_ptr_array_add (array, g_strdup ("C"));
+ g_ptr_array_add (array, NULL);
- cache->language_names = languages = g_new (gchar *, g_slist_length (list) + 1);
- for (l = list, i = 0; l; l = l->next, i++)
- languages[i] = l->data;
- languages[i] = NULL;
-
- g_slist_free (list);
+ cache->language_names = (gchar **) g_ptr_array_free (array, FALSE);
}
return (G_CONST_RETURN gchar * G_CONST_RETURN *) cache->language_names;
diff --git a/glib/gutils.h b/glib/gutils.h
index e4d8277..6b94efd 100644
--- a/glib/gutils.h
+++ b/glib/gutils.h
@@ -157,6 +157,8 @@
G_CONST_RETURN gchar* G_CONST_RETURN * g_get_language_names (void);
+gchar **g_get_locale_variants (const gchar *locale);
+
/**
* GUserDirectory:
* @G_USER_DIRECTORY_DESKTOP: the user's Desktop directory
diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c
index c38732d..ca69dfb 100644
--- a/glib/gvariant-parser.c
+++ b/glib/gvariant-parser.c
@@ -48,10 +48,26 @@
**/
/**
* GVariantParseError:
- * @G_VARIANT_PARSE_ERROR_FAILED: generic error
+ * @G_VARIANT_PARSE_ERROR_FAILED: generic error (unused)
+ * @G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED: a non-basic #GVariantType was given where a basic type was expected
+ * @G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE: cannot infer the #GVariantType
+ * @G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED: an indefinite #GVariantType was given where a definite type was expected
+ * @G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END: extra data after parsing finished
+ * @G_VARIANT_PARSE_ERROR_INVALID_CHARACTER: invalid character in number or unicode escape
+ * @G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING: not a valid #GVariant format string
+ * @G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH: not a valid object path
+ * @G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE: not a valid type signature
+ * @G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING: not a valid #GVariant type string
+ * @G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE: could not find a common type for array entries
+ * @G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE: the numerical value is out of range of the given type
+ * @G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG: the numerical value is out of range for any type
+ * @G_VARIANT_PARSE_ERROR_TYPE_ERROR: cannot parse as variant of the specified type
+ * @G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN: an unexpected token was encountered
+ * @G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD: an unknown keyword was encountered
+ * @G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT: unterminated string constant
+ * @G_VARIANT_PARSE_ERROR_VALUE_EXPECTED: no value given
*
- * Error codes returned by parsing text-format GVariants. Currently the
- * parser makes no distinction between different types of error.
+ * Error codes returned by parsing text-format GVariants.
**/
GQuark
g_variant_parser_get_error_quark (void)
@@ -73,6 +89,7 @@
parser_set_error_va (GError **error,
SourceRef *location,
SourceRef *other,
+ gint code,
const gchar *format,
va_list ap)
{
@@ -91,7 +108,7 @@
g_string_append_c (msg, ':');
g_string_append_vprintf (msg, format, ap);
- g_set_error_literal (error, G_VARIANT_PARSE_ERROR, 0, msg->str);
+ g_set_error_literal (error, G_VARIANT_PARSE_ERROR, code, msg->str);
g_string_free (msg, TRUE);
}
@@ -99,13 +116,14 @@
parser_set_error (GError **error,
SourceRef *location,
SourceRef *other,
+ gint code,
const gchar *format,
...)
{
va_list ap;
va_start (ap, format);
- parser_set_error_va (error, location, other, format, ap);
+ parser_set_error_va (error, location, other, code, format, ap);
va_end (ap);
}
@@ -123,6 +141,7 @@
token_stream_set_error (TokenStream *stream,
GError **error,
gboolean this_token,
+ gint code,
const gchar *format,
...)
{
@@ -137,7 +156,7 @@
ref.end = ref.start;
va_start (ap, format);
- parser_set_error_va (error, &ref, NULL, format, ap);
+ parser_set_error_va (error, &ref, NULL, code, format, ap);
va_end (ap);
}
@@ -305,6 +324,7 @@
if (!token_stream_consume (stream, token))
{
token_stream_set_error (stream, error, FALSE,
+ G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN,
"expected `%s'%s", token, purpose);
return FALSE;
}
@@ -505,6 +525,7 @@
ast_set_error (AST *ast,
GError **error,
AST *other_ast,
+ gint code,
const gchar *format,
...)
{
@@ -513,6 +534,7 @@
va_start (ap, format);
parser_set_error_va (error, &ast->source_ref,
other_ast ? & other_ast->source_ref : NULL,
+ code,
format, ap);
va_end (ap);
}
@@ -526,6 +548,7 @@
typestr = g_variant_type_dup_string (type);
ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_TYPE_ERROR,
"can not parse as value of type `%s'",
typestr);
g_free (typestr);
@@ -556,7 +579,9 @@
switch (pattern[i])
{
case '*':
- ast_set_error (ast, error, NULL, "unable to infer type");
+ ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE,
+ "unable to infer type");
g_free (pattern);
return NULL;
@@ -669,6 +694,7 @@
* report the error. note: 'j' is first.
*/
ast_set_error (array[j], error, array[i],
+ G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE,
"unable to find a common type");
g_free (tmp);
return NULL;
@@ -776,7 +802,9 @@
else if (!token_stream_consume (stream, "nothing"))
{
- token_stream_set_error (stream, error, TRUE, "unknown keyword");
+ token_stream_set_error (stream, error, TRUE,
+ G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD,
+ "unknown keyword");
return NULL;
}
@@ -1187,6 +1215,7 @@
if (!strchr ("bynqiuxthdsogNS", key_char))
{
ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED,
"dictionary keys must have basic types");
return NULL;
}
@@ -1422,7 +1451,9 @@
{
if (!g_variant_is_object_path (string->string))
{
- ast_set_error (ast, error, NULL, "not a valid object path");
+ ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH,
+ "not a valid object path");
return NULL;
}
@@ -1433,7 +1464,9 @@
{
if (!g_variant_is_signature (string->string))
{
- ast_set_error (ast, error, NULL, "not a valid signature");
+ ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE,
+ "not a valid signature");
return NULL;
}
@@ -1477,6 +1510,7 @@
if (value == 0 || end != buffer + length)
{
parser_set_error (error, ref, NULL,
+ G_VARIANT_PARSE_ERROR_INVALID_CHARACTER,
"invalid %d-character unicode escape", length);
return FALSE;
}
@@ -1522,6 +1556,7 @@
{
case '\0':
parser_set_error (error, &ref, NULL,
+ G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT,
"unterminated string constant");
g_free (token);
g_free (str);
@@ -1532,6 +1567,7 @@
{
case '\0':
parser_set_error (error, &ref, NULL,
+ G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT,
"unterminated string constant");
g_free (token);
g_free (str);
@@ -1648,6 +1684,7 @@
{
case '\0':
parser_set_error (error, &ref, NULL,
+ G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT,
"unterminated string constant");
g_free (token);
return NULL;
@@ -1657,6 +1694,7 @@
{
case '\0':
parser_set_error (error, &ref, NULL,
+ G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT,
"unterminated string constant");
g_free (token);
return NULL;
@@ -1728,7 +1766,9 @@
const GVariantType *type,
GError **error)
{
- ast_set_error (ast, error, NULL, "number out of range for type `%c'",
+ ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE,
+ "number out of range for type `%c'",
g_variant_type_peek_string (type)[0]);
return NULL;
}
@@ -1756,7 +1796,9 @@
dbl_val = g_ascii_strtod (token, &end);
if (dbl_val != 0.0 && errno == ERANGE)
{
- ast_set_error (ast, error, NULL, "number too big for any type");
+ ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG,
+ "number too big for any type");
return NULL;
}
@@ -1775,7 +1817,9 @@
abs_val = g_ascii_strtoull (token, &end, 0);
if (abs_val == G_MAXUINT64 && errno == ERANGE)
{
- ast_set_error (ast, error, NULL, "integer too big for any type");
+ ast_set_error (ast, error, NULL,
+ G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG,
+ "integer too big for any type");
return NULL;
}
@@ -1795,6 +1839,7 @@
ref.end = ref.start + 1;
parser_set_error (error, &ref, NULL,
+ G_VARIANT_PARSE_ERROR_INVALID_CHARACTER,
"invalid character in number");
return NULL;
}
@@ -2005,6 +2050,7 @@
if (*endptr || positional->value == NULL)
{
token_stream_set_error (stream, error, TRUE,
+ G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING,
"invalid GVariant format string");
/* memory management doesn't matter in case of programmer error. */
return NULL;
@@ -2076,6 +2122,7 @@
if (!g_variant_type_string_is_valid (token + 1))
{
token_stream_set_error (stream, error, TRUE,
+ G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING,
"invalid type declaration");
g_free (token);
@@ -2087,6 +2134,7 @@
if (!g_variant_type_is_definite (type))
{
token_stream_set_error (stream, error, TRUE,
+ G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED,
"type declarations must be definite");
g_variant_type_free (type);
g_free (token);
@@ -2140,7 +2188,9 @@
else
{
- token_stream_set_error (stream, error, TRUE, "unknown keyword");
+ token_stream_set_error (stream, error, TRUE,
+ G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD,
+ "unknown keyword");
return NULL;
}
}
@@ -2212,7 +2262,9 @@
else
{
- token_stream_set_error (stream, error, FALSE, "expected value");
+ token_stream_set_error (stream, error, FALSE,
+ G_VARIANT_PARSE_ERROR_VALUE_EXPECTED,
+ "expected value");
return NULL;
}
@@ -2304,6 +2356,7 @@
stream.stream - text };
parser_set_error (error, &ref, NULL,
+ G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END,
"expected end of input");
g_variant_unref (result);
diff --git a/glib/gvariant.c b/glib/gvariant.c
index 8937445..fd1163e 100644
--- a/glib/gvariant.c
+++ b/glib/gvariant.c
@@ -315,7 +315,7 @@
/**
* g_variant_new_boolean:
- * @boolean: a #gboolean value
+ * @value: a #gboolean value
* @returns: a floating reference to a new boolean #GVariant instance
*
* Creates a new boolean #GVariant instance -- either %TRUE or %FALSE.
@@ -373,7 +373,7 @@
/**
* g_variant_new_byte:
- * @byte: a #guint8 value
+ * @value: a #guint8 value
* @returns: a floating reference to a new byte #GVariant instance
*
* Creates a new byte #GVariant instance.
@@ -396,7 +396,7 @@
/**
* g_variant_new_int16:
- * @int16: a #gint16 value
+ * @value: a #gint16 value
* @returns: a floating reference to a new int16 #GVariant instance
*
* Creates a new int16 #GVariant instance.
@@ -419,7 +419,7 @@
/**
* g_variant_new_uint16:
- * @uint16: a #guint16 value
+ * @value: a #guint16 value
* @returns: a floating reference to a new uint16 #GVariant instance
*
* Creates a new uint16 #GVariant instance.
@@ -442,7 +442,7 @@
/**
* g_variant_new_int32:
- * @int32: a #gint32 value
+ * @value: a #gint32 value
* @returns: a floating reference to a new int32 #GVariant instance
*
* Creates a new int32 #GVariant instance.
@@ -465,7 +465,7 @@
/**
* g_variant_new_uint32:
- * @uint32: a #guint32 value
+ * @value: a #guint32 value
* @returns: a floating reference to a new uint32 #GVariant instance
*
* Creates a new uint32 #GVariant instance.
@@ -488,7 +488,7 @@
/**
* g_variant_new_int64:
- * @int64: a #gint64 value
+ * @value: a #gint64 value
* @returns: a floating reference to a new int64 #GVariant instance
*
* Creates a new int64 #GVariant instance.
@@ -511,7 +511,7 @@
/**
* g_variant_new_uint64:
- * @uint64: a #guint64 value
+ * @value: a #guint64 value
* @returns: a floating reference to a new uint64 #GVariant instance
*
* Creates a new uint64 #GVariant instance.
@@ -565,7 +565,7 @@
/**
* g_variant_new_double:
- * @floating: a #gdouble floating point value
+ * @value: a #gdouble floating point value
* @returns: a floating reference to a new double #GVariant instance
*
* Creates a new double #GVariant instance.
@@ -3058,6 +3058,9 @@
* types or number of items in a tuple, putting more than one value into
* a variant, etc.
*
+ * If @value is a floating reference (see g_variant_ref_sink()),
+ * the @builder instance takes ownership of @value.
+ *
* Since: 2.24
**/
void
diff --git a/glib/gvariant.h b/glib/gvariant.h
index 9519d97..9a67f2c 100644
--- a/glib/gvariant.h
+++ b/glib/gvariant.h
@@ -199,7 +199,24 @@
typedef enum
{
- G_VARIANT_PARSE_ERROR_FAILED
+ G_VARIANT_PARSE_ERROR_FAILED,
+ G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED,
+ G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE,
+ G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED,
+ G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END,
+ G_VARIANT_PARSE_ERROR_INVALID_CHARACTER,
+ G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING,
+ G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH,
+ G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE,
+ G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING,
+ G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE,
+ G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE,
+ G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG,
+ G_VARIANT_PARSE_ERROR_TYPE_ERROR,
+ G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN,
+ G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD,
+ G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT,
+ G_VARIANT_PARSE_ERROR_VALUE_EXPECTED
} GVariantParseError;
#define G_VARIANT_PARSE_ERROR (g_variant_parser_get_error_quark ())
diff --git a/glib/tests/hostutils.c b/glib/tests/hostutils.c
index 622a0ce..218f516 100644
--- a/glib/tests/hostutils.c
+++ b/glib/tests/hostutils.c
@@ -19,6 +19,7 @@
#include <glib/glib.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -48,6 +49,23 @@
};
static const gint num_idn_test_domains = G_N_ELEMENTS (idn_test_domains);
+static const struct {
+ const gchar *orig_name, *ascii_name;
+ gboolean orig_is_unicode, ascii_is_encoded;
+} non_round_trip_names[] = {
+ /* uppercase characters */
+ { "EXAMPLE.COM", "example.com", FALSE, FALSE },
+ { "\xc3\x89XAMPLE.COM", "xn--xample-9ua.com", TRUE, TRUE },
+
+ /* unicode that decodes to ascii */
+ { "\xe2\x93\x94\xe2\x93\xa7\xe2\x93\x90\xe2\x93\x9c\xe2\x93\x9f\xe2\x93\x9b\xe2\x93\x94.com", "example.com", TRUE, FALSE },
+
+ /* non-standard dot characters */
+ { "example\xe3\x80\x82" "com", "example.com", TRUE, FALSE },
+ { "\xc3\xa9xample\xe3\x80\x82" "com", "xn--xample-9ua.com", TRUE, TRUE }
+};
+static const gint num_non_round_trip_names = G_N_ELEMENTS (non_round_trip_names);
+
static const gchar *bad_names[] = {
"disallowed\xef\xbf\xbd" "character",
"non-utf\x88",
@@ -73,6 +91,27 @@
g_free (ascii);
}
+ for (i = 0; i < num_non_round_trip_names; i++)
+ {
+ if (non_round_trip_names[i].orig_is_unicode)
+ g_assert (g_hostname_is_non_ascii (non_round_trip_names[i].orig_name));
+ else
+ g_assert (!g_hostname_is_non_ascii (non_round_trip_names[i].orig_name));
+
+ if (non_round_trip_names[i].ascii_is_encoded)
+ g_assert (g_hostname_is_ascii_encoded (non_round_trip_names[i].ascii_name));
+ else
+ g_assert (!g_hostname_is_ascii_encoded (non_round_trip_names[i].ascii_name));
+
+ ascii = g_hostname_to_ascii (non_round_trip_names[i].orig_name);
+ g_assert_cmpstr (non_round_trip_names[i].ascii_name, ==, ascii);
+ g_free (ascii);
+
+ ascii = g_hostname_to_ascii (non_round_trip_names[i].ascii_name);
+ g_assert_cmpstr (non_round_trip_names[i].ascii_name, ==, ascii);
+ g_free (ascii);
+ }
+
for (i = 0; i < num_bad_names; i++)
{
ascii = g_hostname_to_ascii (bad_names[i]);
@@ -278,6 +317,28 @@
{
g_test_init (&argc, &argv, NULL);
+ if (argc == 2 && argv[1][0] != '-')
+ {
+ const gchar *hostname = argv[1];
+ gchar *converted;
+
+ if (g_hostname_is_non_ascii (hostname))
+ {
+ converted = g_hostname_to_ascii (hostname);
+ printf ("to_ascii: %s\n", converted);
+ g_free (converted);
+ }
+ else if (g_hostname_is_ascii_encoded (hostname))
+ {
+ converted = g_hostname_to_unicode (hostname);
+ printf ("to_unicode: %s\n", converted);
+ g_free (converted);
+ }
+ else
+ printf ("hostname is neither unicode nor ACE encoded\n");
+ return 0;
+ }
+
g_test_add_func ("/hostutils/to_ascii", test_to_ascii);
g_test_add_func ("/hostutils/to_unicode", test_to_unicode);
g_test_add_func ("/hostutils/is_ip_addr", test_is_ip_addr);
diff --git a/glib/tests/rand.c b/glib/tests/rand.c
index 62b5f75..f1ff08d 100644
--- a/glib/tests/rand.c
+++ b/glib/tests/rand.c
@@ -22,7 +22,8 @@
#include "glib.h"
/* Outputs tested against the reference implementation mt19937ar.c from
- http://www.math.keio.ac.jp/~matumoto/MT2002/emt19937ar.html */
+ * http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html
+ */
/* Tests for a simple seed, first number is the seed */
const guint32 first_numbers[] =
diff --git a/glib/tests/regex.c b/glib/tests/regex.c
index bd46a5e..6e015e9 100644
--- a/glib/tests/regex.c
+++ b/glib/tests/regex.c
@@ -2357,6 +2357,8 @@
TEST_SPLIT_SIMPLE3(",\\s*", "a, b, c", "a", "b", "c");
TEST_SPLIT_SIMPLE3("(,)\\s*", "a,b", "a", ",", "b");
TEST_SPLIT_SIMPLE3("(,)\\s*", "a, b", "a", ",", "b");
+ TEST_SPLIT_SIMPLE2("\\s", "ab c", "ab", "c");
+ TEST_SPLIT_SIMPLE3("\\s*", "ab c", "a", "b", "c");
/* Not matched sub-strings. */
TEST_SPLIT_SIMPLE2("a|(b)", "xay", "x", "y");
TEST_SPLIT_SIMPLE3("a|(b)", "xby", "x", "b", "y");
diff --git a/glib/tests/sequence.c b/glib/tests/sequence.c
index f46761a..e2a58f3 100644
--- a/glib/tests/sequence.c
+++ b/glib/tests/sequence.c
@@ -81,6 +81,7 @@
GET_BEGIN_ITER, GET_END_ITER, GET_ITER_AT_POS, APPEND, PREPEND,
INSERT_BEFORE, MOVE, SWAP, INSERT_SORTED, INSERT_SORTED_ITER, SORT_CHANGED,
SORT_CHANGED_ITER, REMOVE, REMOVE_RANGE, MOVE_RANGE, SEARCH, SEARCH_ITER,
+ LOOKUP, LOOKUP_ITER,
/* dereferencing */
GET, SET,
@@ -200,6 +201,42 @@
}
static gint
+simple_items_cmp (gconstpointer a,
+ gconstpointer b,
+ gpointer data)
+{
+ const Item *item_a = fix_pointer (a);
+ const Item *item_b = fix_pointer (b);
+
+ if (item_a->number > item_b->number)
+ return +1;
+ else if (item_a->number < item_b->number)
+ return -1;
+ else
+ return 0;
+}
+
+static gint
+simple_iters_cmp (gconstpointer a,
+ gconstpointer b,
+ gpointer data)
+{
+ GSequence *seq = data;
+ GSequenceIter *iter_a = (GSequenceIter *)a;
+ GSequenceIter *iter_b = (GSequenceIter *)b;
+ gpointer item_a = g_sequence_get (iter_a);
+ gpointer item_b = g_sequence_get (iter_b);
+
+ if (seq)
+ {
+ g_assert (g_sequence_iter_get_sequence (iter_a) == seq);
+ g_assert (g_sequence_iter_get_sequence (iter_b) == seq);
+ }
+
+ return simple_items_cmp (item_a, item_b, data);
+}
+
+static gint
compare_items (gconstpointer a,
gconstpointer b,
gpointer data)
@@ -884,6 +921,45 @@
g_queue_insert_sorted (seq->queue, insert_iter, compare_iters, NULL);
}
break;
+ case LOOKUP:
+ {
+ Item *item;
+ GSequenceIter *lookup_iter;
+ GSequenceIter *insert_iter;
+
+ g_sequence_sort (seq->sequence, compare_items, NULL);
+ g_queue_sort (seq->queue, compare_iters, NULL);
+
+ check_sorted (seq);
+
+ item = new_item (seq);
+ insert_iter = g_sequence_insert_sorted (seq->sequence, item, compare_items, NULL);
+ g_queue_insert_sorted (seq->queue, insert_iter, compare_iters, NULL);
+
+ lookup_iter = g_sequence_lookup (seq->sequence, item, simple_items_cmp, NULL);
+ g_assert (simple_iters_cmp (insert_iter, lookup_iter, NULL) == 0);
+ }
+ break;
+ case LOOKUP_ITER:
+ {
+ Item *item;
+ GSequenceIter *lookup_iter;
+ GSequenceIter *insert_iter;
+
+ g_sequence_sort (seq->sequence, compare_items, NULL);
+ g_queue_sort (seq->queue, compare_iters, NULL);
+
+ check_sorted (seq);
+
+ item = new_item (seq);
+ insert_iter = g_sequence_insert_sorted (seq->sequence, item, compare_items, NULL);
+ g_queue_insert_sorted (seq->queue, insert_iter, compare_iters, NULL);
+
+ lookup_iter = g_sequence_lookup_iter (seq->sequence, item,
+ (GSequenceIterCompareFunc) simple_iters_cmp, NULL);
+ g_assert (simple_iters_cmp (insert_iter, lookup_iter, NULL) == 0);
+ }
+ break;
/* dereferencing */
case GET:
diff --git a/glib/tests/utils.c b/glib/tests/utils.c
index f586aa1..cf7d8dd 100644
--- a/glib/tests/utils.c
+++ b/glib/tests/utils.c
@@ -73,6 +73,20 @@
}
static void
+test_locale_variants (void)
+{
+ char **v;
+
+ v = g_get_locale_variants ("fr_BE");
+ g_assert (strv_check ((const gchar * const *) v, "fr_BE", "fr", NULL));
+ g_strfreev (v);
+
+ v = g_get_locale_variants ("sr_SR@latin");
+ g_assert (strv_check ((const gchar * const *) v, "sr_SR@latin", "sr@latin", "sr_SR", "sr", NULL));
+ g_strfreev (v);
+}
+
+static void
test_version (void)
{
g_print ("(header %d.%d.%d library %d.%d.%d) ",
@@ -152,6 +166,7 @@
g_test_bug_base ("http://bugzilla.gnome.org/");
g_test_add_func ("/utils/language-names", test_language_names);
+ g_test_add_func ("/utils/locale-variants", test_locale_variants);
g_test_add_func ("/utils/version", test_version);
g_test_add_func ("/utils/appname", test_appname);
g_test_add_func ("/utils/tmpdir", test_tmpdir);
diff --git a/gobject/gboxed.c b/gobject/gboxed.c
index e6f2274..06b3cf2 100644
--- a/gobject/gboxed.c
+++ b/gobject/gboxed.c
@@ -402,7 +402,7 @@
*
* Get the contents of a %G_TYPE_BOXED derived #GValue.
*
- * Returns: boxed contents of @value
+ * Returns: (transfer none): boxed contents of @value
*/
gpointer
g_value_get_boxed (const GValue *value)
@@ -414,7 +414,7 @@
}
/**
- * g_value_dup_boxed:
+ * g_value_dup_boxed: (skip)
* @value: a valid #GValue of %G_TYPE_BOXED derived type
*
* Get the contents of a %G_TYPE_BOXED derived #GValue. Upon getting,
diff --git a/gobject/gclosure.c b/gobject/gclosure.c
index 8a6b0f7..a415182 100644
--- a/gobject/gclosure.c
+++ b/gobject/gclosure.c
@@ -186,7 +186,7 @@
* }
* ]|
*
- * Returns: a newly allocated #GClosure
+ * Returns: (transfer full): a newly allocated #GClosure
*/
GClosure*
g_closure_new_simple (guint sizeof_closure,
@@ -293,7 +293,7 @@
}
/**
- * g_closure_set_meta_marshal:
+ * g_closure_set_meta_marshal: (skip)
* @closure: a #GClosure
* @marshal_data: context-dependent data to pass to @meta_marshal
* @meta_marshal: a #GClosureMarshal function
@@ -343,7 +343,7 @@
}
/**
- * g_closure_add_marshal_guards:
+ * g_closure_add_marshal_guards: (skip)
* @closure: a #GClosure
* @pre_marshal_data: data to pass to @pre_marshal_notify
* @pre_marshal_notify: a function to call before the closure callback
@@ -401,7 +401,7 @@
}
/**
- * g_closure_add_finalize_notifier:
+ * g_closure_add_finalize_notifier: (skip)
* @closure: a #GClosure
* @notify_data: data to pass to @notify_func
* @notify_func: the callback function to register
@@ -437,7 +437,7 @@
}
/**
- * g_closure_add_invalidate_notifier:
+ * g_closure_add_invalidate_notifier: (skip)
* @closure: a #GClosure
* @notify_data: data to pass to @notify_func
* @notify_func: the callback function to register
@@ -517,7 +517,7 @@
* Increments the reference count on a closure to force it staying
* alive while the caller holds a pointer to it.
*
- * Returns: The @closure passed in, for convenience
+ * Returns: (transfer none): The @closure passed in, for convenience
*/
GClosure*
g_closure_ref (GClosure *closure)
@@ -665,7 +665,7 @@
}
/**
- * g_closure_remove_invalidate_notifier:
+ * g_closure_remove_invalidate_notifier: (skip)
* @closure: a #GClosure
* @notify_data: data which was passed to g_closure_add_invalidate_notifier()
* when registering @notify_func
@@ -693,7 +693,7 @@
}
/**
- * g_closure_remove_finalize_notifier:
+ * g_closure_remove_finalize_notifier: (skip)
* @closure: a #GClosure
* @notify_data: data which was passed to g_closure_add_finalize_notifier()
* when registering @notify_func
@@ -726,8 +726,9 @@
* @return_value: a #GValue to store the return value. May be %NULL if the
* callback of @closure doesn't return a value.
* @n_param_values: the length of the @param_values array
- * @param_values: an array of #GValue<!-- -->s holding the arguments on
- * which to invoke the callback of @closure
+ * @param_values: (array length=n_param_values): an array of
+ * #GValue<!-- -->s holding the arguments on which to
+ * invoke the callback of @closure
* @invocation_hint: a context-dependent invocation hint
*
* Invokes the closure, i.e. executes the callback represented by the @closure.
@@ -776,7 +777,7 @@
}
/**
- * g_closure_set_marshal:
+ * g_closure_set_marshal: (skip)
* @closure: a #GClosure
* @marshal: a #GClosureMarshal function
*
@@ -802,7 +803,7 @@
}
/**
- * g_cclosure_new:
+ * g_cclosure_new: (skip)
* @callback_func: the function to invoke
* @user_data: user data to pass to @callback_func
* @destroy_data: destroy notify to be called when @user_data is no longer used
@@ -830,7 +831,7 @@
}
/**
- * g_cclosure_new_swap:
+ * g_cclosure_new_swap: (skip)
* @callback_func: the function to invoke
* @user_data: user data to pass to @callback_func
* @destroy_data: destroy notify to be called when @user_data is no longer used
@@ -838,7 +839,7 @@
* Creates a new closure which invokes @callback_func with @user_data as
* the first parameter.
*
- * Returns: a new #GCClosure
+ * Returns: (transfer full): a new #GCClosure
*/
GClosure*
g_cclosure_new_swap (GCallback callback_func,
diff --git a/gobject/gobject.c b/gobject/gobject.c
index 8b427fa..686d33d 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -617,8 +617,8 @@
*
* Looks up the #GParamSpec for a property of a class.
*
- * Returns: the #GParamSpec for the property, or %NULL if the class
- * doesn't have a property of that name
+ * Returns: (transfer none): the #GParamSpec for the property, or
+ * %NULL if the class doesn't have a property of that name
*/
GParamSpec*
g_object_class_find_property (GObjectClass *class,
@@ -660,8 +660,9 @@
*
* Since: 2.4
*
- * Returns: the #GParamSpec for the property of the interface with the
- * name @property_name, or %NULL if no such property exists.
+ * Returns: (transfer none): the #GParamSpec for the property of the
+ * interface with the name @property_name, or %NULL if no
+ * such property exists.
*/
GParamSpec*
g_object_interface_find_property (gpointer g_iface,
@@ -760,11 +761,11 @@
/**
* g_object_class_list_properties:
* @oclass: a #GObjectClass
- * @n_properties: return location for the length of the returned array
+ * @n_properties: (out): return location for the length of the returned array
*
* Get an array of #GParamSpec* for all properties of a class.
*
- * Returns: (array length=n_properties) (transfer full): an array of
+ * Returns: (array length=n_properties) (transfer container): an array of
* #GParamSpec* which should be freed after use
*/
GParamSpec** /* free result */
@@ -789,7 +790,7 @@
* g_object_interface_list_properties:
* @g_iface: any interface vtable for the interface, or the default
* vtable for the interface
- * @n_properties_p: location to store number of properties returned.
+ * @n_properties_p: (out): location to store number of properties returned.
*
* Lists the properties of an interface.Generally, the interface
* vtable passed in as @g_iface will be the default vtable from
@@ -798,7 +799,8 @@
*
* Since: 2.4
*
- * Returns: a pointer to an array of pointers to #GParamSpec
+ * Returns: (array length=n_properties_p) (transfer container): a
+ * pointer to an array of pointers to #GParamSpec
* structures. The paramspecs are owned by GLib, but the
* array should be freed with g_free() when you are done with
* it.
@@ -1187,11 +1189,13 @@
gpointer g_iface)
{
GTypeInterface *iface_class = g_iface;
- GObjectClass *class = g_type_class_peek (iface_class->g_instance_type);
+ GObjectClass *class;
GType iface_type = iface_class->g_type;
GParamSpec **pspecs;
guint n;
+ class = g_type_class_ref (iface_class->g_instance_type);
+
if (!G_IS_OBJECT_CLASS (class))
return;
@@ -1203,7 +1207,7 @@
pspecs[n]->name,
G_OBJECT_CLASS_TYPE (class),
TRUE);
-
+
if (!class_pspec)
{
g_critical ("Object class %s doesn't implement property "
@@ -1235,9 +1239,9 @@
g_type_name (G_PARAM_SPEC_VALUE_TYPE (pspecs[n])),
g_type_name (iface_type));
}
-
+
#define SUBSET(a,b,mask) (((a) & ~(b) & (mask)) == 0)
-
+
/* CONSTRUCT and CONSTRUCT_ONLY add restrictions.
* READABLE and WRITABLE remove restrictions. The implementation
* paramspec must have less restrictive flags.
@@ -1257,10 +1261,12 @@
g_type_name (G_OBJECT_CLASS_TYPE (class)),
g_type_name (iface_type));
}
-#undef SUBSET
+#undef SUBSET
}
-
+
g_free (pspecs);
+
+ g_type_class_unref (class);
}
GType
@@ -1270,7 +1276,7 @@
}
/**
- * g_object_new:
+ * g_object_new: (skip)
* @object_type: the type id of the #GObject subtype to instantiate
* @first_property_name: the name of the first property
* @...: the value of the first property, followed optionally by more
@@ -1281,7 +1287,7 @@
* Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
* which are not explicitly specified are set to their default values.
*
- * Returns: a new instance of @object_type
+ * Returns: (transfer full): a new instance of @object_type
*/
gpointer
g_object_new (GType object_type,
@@ -1340,14 +1346,16 @@
* g_object_newv:
* @object_type: the type id of the #GObject subtype to instantiate
* @n_parameters: the length of the @parameters array
- * @parameters: an array of #GParameter
+ * @parameters: (array length=n_parameters): an array of #GParameter
*
* Creates a new instance of a #GObject subtype and sets its properties.
*
* Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
* which are not explicitly specified are set to their default values.
*
- * Returns: a new instance of @object_type
+ * Rename to: g_object_new
+ * Returns: (type GObject.Object) (transfer full): a new instance of
+ * @object_type
*/
gpointer
g_object_newv (GType object_type,
@@ -1513,7 +1521,7 @@
}
/**
- * g_object_new_valist:
+ * g_object_new_valist: (skip)
* @object_type: the type id of the #GObject subtype to instantiate
* @first_property_name: the name of the first property
* @var_args: the value of the first property, followed optionally by more
@@ -1627,7 +1635,7 @@
}
/**
- * g_object_set_valist:
+ * g_object_set_valist: (skip)
* @object: a #GObject
* @first_property_name: name of the first property to set
* @var_args: value for the first property, followed optionally by more
@@ -1703,7 +1711,7 @@
}
/**
- * g_object_get_valist:
+ * g_object_get_valist: (skip)
* @object: a #GObject
* @first_property_name: name of the first property to get
* @var_args: return location for the first property, followed optionally by more
@@ -1779,7 +1787,7 @@
}
/**
- * g_object_set:
+ * g_object_set: (skip)
* @object: a #GObject
* @first_property_name: name of the first property to set
* @...: value for the first property, followed optionally by more
@@ -1803,7 +1811,7 @@
}
/**
- * g_object_get:
+ * g_object_get: (skip)
* @object: a #GObject
* @first_property_name: name of the first property to get
* @...: return location for the first property, followed optionally by more
@@ -1906,7 +1914,9 @@
* @property_name: the name of the property to get
* @value: return location for the property value
*
- * Gets a property of an object.
+ * Gets a property of an object. @value must have been initialized to the
+ * expected type of the property (or a type to which the expected type can be
+ * transformed) using g_value_init().
*
* In general, a copy is made of the property contents and the caller is
* responsible for freeing the memory by calling g_value_unset().
@@ -1978,7 +1988,7 @@
}
/**
- * g_object_connect:
+ * g_object_connect: (skip)
* @object: a #GObject
* @signal_spec: the spec for the first signal
* @...: #GCallback for the first signal, followed by data for the
@@ -2058,7 +2068,7 @@
* NULL);
* ]|
*
- * Returns: @object
+ * Returns: (transfer none): @object
*/
gpointer
g_object_connect (gpointer _object,
@@ -2130,7 +2140,7 @@
}
/**
- * g_object_disconnect:
+ * g_object_disconnect: (skip)
* @object: a #GObject
* @signal_spec: the spec for the first signal
* @...: #GCallback for the first signal, followed by data for the first signal,
@@ -2213,7 +2223,7 @@
}
/**
- * g_object_weak_ref:
+ * g_object_weak_ref: (skip)
* @object: #GObject to reference weakly
* @notify: callback to invoke before the object is freed
* @data: extra data to pass to notify
@@ -2257,7 +2267,7 @@
}
/**
- * g_object_weak_unref:
+ * g_object_weak_unref: (skip)
* @object: #GObject to remove a weak reference from
* @notify: callback to search for
* @data: data to search for
@@ -2299,7 +2309,7 @@
}
/**
- * g_object_add_weak_pointer:
+ * g_object_add_weak_pointer: (skip)
* @object: The object that should be weak referenced.
* @weak_pointer_location: (inout): The memory address of a pointer.
*
@@ -2321,7 +2331,7 @@
}
/**
- * g_object_remove_weak_pointer:
+ * g_object_remove_weak_pointer: (skip)
* @object: The object that is weak referenced.
* @weak_pointer_location: (inout): The memory address of a pointer.
*
@@ -2367,7 +2377,7 @@
/**
* g_object_is_floating:
- * @object: a #GObject
+ * @object: (type GObject.Object): a #GObject
*
* Checks wether @object has a <link linkend="floating-ref">floating</link>
* reference.
@@ -2386,7 +2396,7 @@
/**
* g_object_ref_sink:
- * @object: a #GObject
+ * @object: (type GObject.Object): a #GObject
*
* Increase the reference count of @object, and possibly remove the
* <link linkend="floating-ref">floating</link> reference, if @object
@@ -2400,7 +2410,7 @@
*
* Since: 2.10
*
- * Returns: @object
+ * Returns: (type GObject.Object) (transfer none): @object
*/
gpointer
g_object_ref_sink (gpointer _object)
@@ -2466,7 +2476,7 @@
}
/**
- * g_object_add_toggle_ref:
+ * g_object_add_toggle_ref: (skip)
* @object: a #GObject
* @notify: a function to call when this reference is the
* last reference to the object, or is no longer
@@ -2547,7 +2557,7 @@
}
/**
- * g_object_remove_toggle_ref:
+ * g_object_remove_toggle_ref: (skip)
* @object: a #GObject
* @notify: a function to call when this reference is the
* last reference to the object, or is no longer
@@ -2601,11 +2611,11 @@
/**
* g_object_ref:
- * @object: a #GObject
+ * @object: (type GObject.Object): a #GObject
*
* Increases the reference count of @object.
*
- * Returns: the same @object
+ * Returns: (type GObject.Object) (transfer none): the same @object
*/
gpointer
g_object_ref (gpointer _object)
@@ -2634,7 +2644,7 @@
/**
* g_object_unref:
- * @object: a #GObject
+ * @object: (type GObject.Object): a #GObject
*
* Decreases the reference count of @object. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
@@ -2730,7 +2740,7 @@
}
/**
- * g_clear_object:
+ * g_clear_object: (skip)
* @object_ptr: a pointer to a #GObject reference
*
* Clears a reference to a #GObject.
@@ -2775,7 +2785,7 @@
* This function gets back user data pointers stored via
* g_object_set_qdata().
*
- * Returns: The user data pointer set, or %NULL
+ * Returns: (transfer none): The user data pointer set, or %NULL
*/
gpointer
g_object_get_qdata (GObject *object,
@@ -2787,7 +2797,7 @@
}
/**
- * g_object_set_qdata:
+ * g_object_set_qdata: (skip)
* @object: The GObject to set store a user data pointer
* @quark: A #GQuark, naming the user data pointer
* @data: An opaque user data pointer
@@ -2813,7 +2823,7 @@
}
/**
- * g_object_set_qdata_full:
+ * g_object_set_qdata_full: (skip)
* @object: The GObject to set store a user data pointer
* @quark: A #GQuark, naming the user data pointer
* @data: An opaque user data pointer
@@ -2880,7 +2890,7 @@
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
*
- * Returns: The user data pointer set, or %NULL
+ * Returns: (transfer full): The user data pointer set, or %NULL
*/
gpointer
g_object_steal_qdata (GObject *object,
@@ -2899,7 +2909,7 @@
*
* Gets a named field from the objects table of associations (see g_object_set_data()).
*
- * Returns: the data if found, or %NULL if no such data exists.
+ * Returns: (transfer none): the data if found, or %NULL if no such data exists.
*/
gpointer
g_object_get_data (GObject *object,
@@ -2939,7 +2949,7 @@
}
/**
- * g_object_set_data_full:
+ * g_object_set_data_full: (skip)
* @object: #GObject containing the associations
* @key: name of the key
* @data: data to associate with that key
@@ -2972,7 +2982,7 @@
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
*
- * Returns: the data if found, or %NULL if no such data exists.
+ * Returns: (transfer full): the data if found, or %NULL if no such data exists.
*/
gpointer
g_object_steal_data (GObject *object,
@@ -3082,7 +3092,7 @@
/**
* g_value_set_object:
* @value: a valid #GValue of %G_TYPE_OBJECT derived type
- * @v_object: object value to be set
+ * @v_object: (type GObject.Object): object value to be set
*
* Set the contents of a %G_TYPE_OBJECT derived #GValue to @v_object.
*
@@ -3122,7 +3132,7 @@
}
/**
- * g_value_set_object_take_ownership:
+ * g_value_set_object_take_ownership: (skip)
* @value: a valid #GValue of %G_TYPE_OBJECT derived type
* @v_object: object value to be set
*
@@ -3138,7 +3148,7 @@
}
/**
- * g_value_take_object:
+ * g_value_take_object: (skip)
* @value: a valid #GValue of %G_TYPE_OBJECT derived type
* @v_object: object value to be set
*
@@ -3179,7 +3189,7 @@
*
* Get the contents of a %G_TYPE_OBJECT derived #GValue.
*
- * Returns: object contents of @value
+ * Returns: (type GObject.Object) (transfer none): object contents of @value
*/
gpointer
g_value_get_object (const GValue *value)
@@ -3196,8 +3206,8 @@
* Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing
* its reference count.
*
- * Returns: object content of @value, should be unreferenced when no
- * longer needed.
+ * Returns: (type GObject.Object) (transfer full): object content of @value,
+ * should be unreferenced when no longer needed.
*/
gpointer
g_value_dup_object (const GValue *value)
@@ -3208,7 +3218,7 @@
}
/**
- * g_signal_connect_object:
+ * g_signal_connect_object: (skip)
* @instance: the instance to connect to.
* @detailed_signal: a string of the form "signal-name::detail".
* @c_handler: the #GCallback to connect.
@@ -3395,7 +3405,7 @@
* @object and the created closure. This function is mainly useful
* when implementing new types of closures.
*
- * Returns: a newly allocated #GClosure
+ * Returns: (transfer full): a newly allocated #GClosure
*/
GClosure*
g_closure_new_object (guint sizeof_closure,
@@ -3413,7 +3423,7 @@
}
/**
- * g_cclosure_new_object:
+ * g_cclosure_new_object: (skip)
* @callback_func: the function to invoke
* @object: a #GObject pointer to pass to @callback_func
*
@@ -3442,7 +3452,7 @@
}
/**
- * g_cclosure_new_object_swap:
+ * g_cclosure_new_object_swap: (skip)
* @callback_func: the function to invoke
* @object: a #GObject pointer to pass to @callback_func
*
diff --git a/gobject/gparam.c b/gobject/gparam.c
index f91e587..bca47d2 100644
--- a/gobject/gparam.c
+++ b/gobject/gparam.c
@@ -187,7 +187,7 @@
}
/**
- * g_param_spec_ref:
+ * g_param_spec_ref: (skip)
* @pspec: a valid #GParamSpec
*
* Increments the reference count of @pspec.
@@ -206,7 +206,7 @@
}
/**
- * g_param_spec_unref:
+ * g_param_spec_unref: (skip)
* @pspec: a valid #GParamSpec
*
* Decrements the reference count of a @pspec.
@@ -255,7 +255,7 @@
}
/**
- * g_param_spec_ref_sink:
+ * g_param_spec_ref_sink: (skip)
* @pspec: a valid #GParamSpec
*
* Convenience function to ref and sink a #GParamSpec.
@@ -381,7 +381,7 @@
}
/**
- * g_param_spec_internal:
+ * g_param_spec_internal: (skip)
* @param_type: the #GType for the property; must be derived from #G_TYPE_PARAM
* @name: the canonical name of the property
* @nick: the nickname of the property
@@ -459,7 +459,7 @@
*
* Gets back user data pointers stored via g_param_spec_set_qdata().
*
- * Returns: the user data pointer set, or %NULL
+ * Returns: (transfer none): the user data pointer set, or %NULL
*/
gpointer
g_param_spec_get_qdata (GParamSpec *pspec,
@@ -495,7 +495,7 @@
}
/**
- * g_param_spec_set_qdata_full:
+ * g_param_spec_set_qdata_full: (skip)
* @pspec: the #GParamSpec to set store a user data pointer
* @quark: a #GQuark, naming the user data pointer
* @data: an opaque user data pointer
@@ -530,7 +530,7 @@
* function (if any was set). Usually, calling this function is only
* required to update user data pointers with a destroy notifier.
*
- * Returns: the user data pointer set, or %NULL
+ * Returns: (transfer none): the user data pointer set, or %NULL
*/
gpointer
g_param_spec_steal_qdata (GParamSpec *pspec,
@@ -556,8 +556,8 @@
*
* Since: 2.4
*
- * Returns: paramspec to which requests on this paramspec should
- * be redirected, or %NULL if none.
+ * Returns: (transfer none): paramspec to which requests on this
+ * paramspec should be redirected, or %NULL if none.
*/
GParamSpec*
g_param_spec_get_redirect_target (GParamSpec *pspec)
@@ -887,7 +887,7 @@
* property name, like "GtkContainer:border-width". This feature is
* deprecated, so you should always set @type_prefixing to %FALSE.
*
- * Returns: a newly allocated #GParamSpecPool.
+ * Returns: (transfer none): a newly allocated #GParamSpecPool.
*/
GParamSpecPool*
g_param_spec_pool_new (gboolean type_prefixing)
@@ -1030,7 +1030,8 @@
*
* Looks up a #GParamSpec in the pool.
*
- * Returns: The found #GParamSpec, or %NULL if no matching #GParamSpec was found.
+ * Returns: (transfer none): The found #GParamSpec, or %NULL if no
+ * matching #GParamSpec was found.
*/
GParamSpec*
g_param_spec_pool_lookup (GParamSpecPool *pool,
@@ -1117,8 +1118,9 @@
* Gets an #GList of all #GParamSpec<!-- -->s owned by @owner_type in
* the pool.
*
- * Returns: a #GList of all #GParamSpec<!-- -->s owned by @owner_type
- * in the pool#GParamSpec<!-- -->s.
+ * Returns: (transfer container) (element-type GObject.ParamSpec): a
+ * #GList of all #GParamSpec<!-- -->s owned by @owner_type in
+ * the pool#GParamSpec<!-- -->s.
*/
GList*
g_param_spec_pool_list_owned (GParamSpecPool *pool,
@@ -1253,13 +1255,14 @@
* g_param_spec_pool_list:
* @pool: a #GParamSpecPool
* @owner_type: the owner to look for
- * @n_pspecs_p: return location for the length of the returned array
+ * @n_pspecs_p: (out): return location for the length of the returned array
*
* Gets an array of all #GParamSpec<!-- -->s owned by @owner_type in
* the pool.
*
- * Returns: a newly allocated array containing pointers to all
- * #GParamSpec<!-- -->s owned by @owner_type in the pool
+ * Returns: (array length=n_pspecs_p) (transfer container): a newly
+ * allocated array containing pointers to all #GParamSpecs
+ * owned by @owner_type in the pool
*/
GParamSpec**
g_param_spec_pool_list (GParamSpecPool *pool,
@@ -1429,7 +1432,7 @@
}
/**
- * g_value_set_param_take_ownership:
+ * g_value_set_param_take_ownership: (skip)
* @value: a valid #GValue of type %G_TYPE_PARAM
* @param: the #GParamSpec to be set
*
@@ -1445,7 +1448,7 @@
}
/**
- * g_value_take_param:
+ * g_value_take_param: (skip)
* @value: a valid #GValue of type %G_TYPE_PARAM
* @param: the #GParamSpec to be set
*
@@ -1474,7 +1477,7 @@
*
* Get the contents of a %G_TYPE_PARAM #GValue.
*
- * Returns: #GParamSpec content of @value
+ * Returns: (transfer none): #GParamSpec content of @value
*/
GParamSpec*
g_value_get_param (const GValue *value)
@@ -1485,7 +1488,7 @@
}
/**
- * g_value_dup_param:
+ * g_value_dup_param: (skip)
* @value: a valid #GValue whose type is derived from %G_TYPE_PARAM
*
* Get the contents of a %G_TYPE_PARAM #GValue, increasing its
diff --git a/gobject/gparamspecs.c b/gobject/gparamspecs.c
index 9e07cfe..f49936b 100644
--- a/gobject/gparamspecs.c
+++ b/gobject/gparamspecs.c
@@ -1591,7 +1591,7 @@
/* --- GParamSpec initialization --- */
/**
- * g_param_spec_char:
+ * g_param_spec_char: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1631,7 +1631,7 @@
}
/**
- * g_param_spec_uchar:
+ * g_param_spec_uchar: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1671,7 +1671,7 @@
}
/**
- * g_param_spec_boolean:
+ * g_param_spec_boolean: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1708,7 +1708,7 @@
}
/**
- * g_param_spec_int:
+ * g_param_spec_int: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1750,7 +1750,7 @@
}
/**
- * g_param_spec_uint:
+ * g_param_spec_uint: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1792,7 +1792,7 @@
}
/**
- * g_param_spec_long:
+ * g_param_spec_long: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1834,7 +1834,7 @@
}
/**
- * g_param_spec_ulong:
+ * g_param_spec_ulong: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1877,7 +1877,7 @@
}
/**
- * g_param_spec_int64:
+ * g_param_spec_int64: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1919,7 +1919,7 @@
}
/**
- * g_param_spec_uint64:
+ * g_param_spec_uint64: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1962,7 +1962,7 @@
}
/**
- * g_param_spec_unichar:
+ * g_param_spec_unichar: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -1998,7 +1998,7 @@
}
/**
- * g_param_spec_enum:
+ * g_param_spec_enum: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2044,7 +2044,7 @@
}
/**
- * g_param_spec_flags:
+ * g_param_spec_flags: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2090,7 +2090,7 @@
}
/**
- * g_param_spec_float:
+ * g_param_spec_float: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2132,7 +2132,7 @@
}
/**
- * g_param_spec_double:
+ * g_param_spec_double: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2175,7 +2175,7 @@
}
/**
- * g_param_spec_string:
+ * g_param_spec_string: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2207,7 +2207,7 @@
}
/**
- * g_param_spec_param:
+ * g_param_spec_param: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2243,7 +2243,7 @@
}
/**
- * g_param_spec_boxed:
+ * g_param_spec_boxed: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2280,7 +2280,7 @@
}
/**
- * g_param_spec_pointer:
+ * g_param_spec_pointer: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2309,7 +2309,7 @@
}
/**
- * g_param_spec_gtype:
+ * g_param_spec_gtype: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2347,7 +2347,7 @@
}
/**
- * g_param_spec_value_array:
+ * g_param_spec_value_array: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2391,7 +2391,7 @@
}
/**
- * g_param_spec_object:
+ * g_param_spec_object: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
@@ -2427,7 +2427,7 @@
}
/**
- * g_param_spec_override:
+ * g_param_spec_override: (skip)
* @name: the name of the property.
* @overridden: The property that is being overridden
*
@@ -2470,7 +2470,7 @@
}
/**
- * g_param_spec_variant:
+ * g_param_spec_variant: (skip)
* @name: canonical name of the property specified
* @nick: nick name for the property specified
* @blurb: description of the property specified
diff --git a/gobject/gtype.c b/gobject/gtype.c
index 60f850c..dac5e8f 100644
--- a/gobject/gtype.c
+++ b/gobject/gtype.c
@@ -1606,14 +1606,16 @@
/**
* g_type_interface_prerequisites:
* @interface_type: an interface type
- * @n_prerequisites: location to return the number of prerequisites, or %NULL
+ * @n_prerequisites: (out) (allow-none): location to return the number
+ * of prerequisites, or %NULL
*
* Returns the prerequisites of an interfaces type.
*
* Since: 2.2
*
- * Returns: a newly-allocated zero-terminated array of #GType containing
- * the prerequisites of @interface_type
+ * Returns: (array length=n_prerequisites) (transfer full): a
+ * newly-allocated zero-terminated array of #GType containing
+ * the prerequisites of @interface_type
*/
GType*
g_type_interface_prerequisites (GType interface_type,
@@ -1818,7 +1820,7 @@
}
/**
- * g_type_create_instance:
+ * g_type_create_instance: (skip)
* @type: An instantiatable type to create an instance for.
*
* Creates and initializes an instance of @type if @type is valid and
@@ -2429,7 +2431,7 @@
}
/**
- * g_type_add_class_cache_func:
+ * g_type_add_class_cache_func: (skip)
* @cache_data: data to be passed to @cache_func
* @cache_func: a #GTypeClassCacheFunc
*
@@ -2458,7 +2460,7 @@
}
/**
- * g_type_remove_class_cache_func:
+ * g_type_remove_class_cache_func: (skip)
* @cache_data: data that was given when adding @cache_func
* @cache_func: a #GTypeClassCacheFunc
*
@@ -2497,7 +2499,7 @@
/**
- * g_type_add_interface_check:
+ * g_type_add_interface_check: (skip)
* @check_data: data to pass to @check_func
* @check_func: function to be called after each interface
* is initialized.
@@ -2531,7 +2533,7 @@
}
/**
- * g_type_remove_interface_check:
+ * g_type_remove_interface_check: (skip)
* @check_data: callback data passed to g_type_add_interface_check()
* @check_func: callback function passed to g_type_add_interface_check()
*
@@ -2640,7 +2642,7 @@
}
/**
- * g_type_register_static_simple:
+ * g_type_register_static_simple: (skip)
* @parent_type: Type from which this type will be derived.
* @type_name: 0-terminated string used as the name of the new type.
* @class_size: Size of the class structure (see #GTypeInfo)
@@ -2865,7 +2867,8 @@
* @type. This function will demand-create the class if it doesn't
* exist already.
*
- * Returns: The #GTypeClass structure for the given type ID.
+ * Returns: (type GObject.TypeClass) (transfer none): The #GTypeClass
+ * structure for the given type ID.
*/
gpointer
g_type_class_ref (GType type)
@@ -2924,7 +2927,8 @@
/**
* g_type_class_unref:
- * @g_class: The #GTypeClass structure to unreference.
+ * @g_class: (type GObject.TypeClass): The #GTypeClass structure to
+ * unreference.
*
* Decrements the reference count of the class structure being passed in.
* Once the last reference count of a class has been released, classes
@@ -2948,8 +2952,9 @@
}
/**
- * g_type_class_unref_uncached:
- * @g_class: The #GTypeClass structure to unreference.
+ * g_type_class_unref_uncached: (skip)
+ * @g_class: (type GObject.TypeClass): The #GTypeClass structure to
+ * unreference.
*
* A variant of g_type_class_unref() for use in #GTypeClassCacheFunc
* implementations. It unreferences a class without consulting the chain
@@ -2981,8 +2986,9 @@
* may return %NULL if the class of the type passed in does not currently
* exist (hasn't been referenced before).
*
- * Returns: The #GTypeClass structure for the given type ID or %NULL
- * if the class does not currently exist.
+ * Returns: (type GObject.TypeClass) (transfer none): The #GTypeClass
+ * structure for the given type ID or %NULL if the class does not
+ * currently exist.
*/
gpointer
g_type_class_peek (GType type)
@@ -3009,8 +3015,9 @@
* static types.
*
* Since: 2.4
- * Returns: The #GTypeClass structure for the given type ID or %NULL
- * if the class does not currently exist or is dynamically loaded.
+ * Returns: (type GObject.TypeClass) (transfer none): The #GTypeClass
+ * structure for the given type ID or %NULL if the class does not
+ * currently exist or is dynamically loaded.
*/
gpointer
g_type_class_peek_static (GType type)
@@ -3032,7 +3039,8 @@
/**
* g_type_class_peek_parent:
- * @g_class: The #GTypeClass structure to retrieve the parent class for.
+ * @g_class: (type GObject.TypeClass): The #GTypeClass structure to
+ * retrieve the parent class for.
*
* This is a convenience function often needed in class initializers.
* It returns the class structure of the immediate parent type of the
@@ -3045,7 +3053,8 @@
* g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class)));
* </programlisting>
*
- * Returns: The parent class of @g_class.
+ * Returns: (type GObject.TypeClass) (transfer none): The parent class
+ * of @g_class.
*/
gpointer
g_type_class_peek_parent (gpointer g_class)
@@ -3073,14 +3082,15 @@
/**
* g_type_interface_peek:
- * @instance_class: A #GTypeClass structure.
+ * @instance_class: (type GObject.TypeClass): A #GTypeClass structure.
* @iface_type: An interface ID which this class conforms to.
*
* Returns the #GTypeInterface structure of an interface to which the
* passed in class conforms.
*
- * Returns: The GTypeInterface structure of iface_type if implemented
- * by @instance_class, %NULL otherwise
+ * Returns: (type GObject.TypeInterface) (transfer none): The GTypeInterface
+ * structure of iface_type if implemented by @instance_class, %NULL
+ * otherwise
*/
gpointer
g_type_interface_peek (gpointer instance_class,
@@ -3105,16 +3115,17 @@
/**
* g_type_interface_peek_parent:
- * @g_iface: A #GTypeInterface structure.
+ * @g_iface: (type GObject.TypeInterface): A #GTypeInterface structure.
*
* Returns the corresponding #GTypeInterface structure of the parent type
* of the instance type to which @g_iface belongs. This is useful when
* deriving the implementation of an interface from the parent type and
* then possibly overriding some methods.
*
- * Returns: The corresponding #GTypeInterface structure of the parent
- * type of the instance type to which @g_iface belongs, or
- * %NULL if the parent type doesn't conform to the interface.
+ * Returns: (transfer none) (type GObject.TypeInterface): The
+ * corresponding #GTypeInterface structure of the parent type of the
+ * instance type to which @g_iface belongs, or %NULL if the parent
+ * type doesn't conform to the interface.
*/
gpointer
g_type_interface_peek_parent (gpointer g_iface)
@@ -3156,9 +3167,9 @@
*
* Since: 2.4
*
- * Returns: the default vtable for the interface; call
- * g_type_default_interface_unref() when you are done using
- * the interface.
+ * Returns: (type GObject.TypeInterface) (transfer none): the default
+ * vtable for the interface; call g_type_default_interface_unref()
+ * when you are done using the interface.
*/
gpointer
g_type_default_interface_ref (GType g_type)
@@ -3206,8 +3217,9 @@
*
* Since: 2.4
*
- * Returns: the default vtable for the interface, or %NULL
- * if the type is not currently in use.
+ * Returns: (type GObject.TypeInterface) (transfer none): the default
+ * vtable for the interface, or %NULL if the type is not currently in
+ * use.
*/
gpointer
g_type_default_interface_peek (GType g_type)
@@ -3226,8 +3238,9 @@
/**
* g_type_default_interface_unref:
- * @g_iface: the default vtable structure for a interface, as
- * returned by g_type_default_interface_ref()
+ * @g_iface: (type GObject.TypeInterface): the default vtable
+ * structure for a interface, as returned by
+ * g_type_default_interface_ref()
*
* Decrements the reference count for the type corresponding to the
* interface default vtable @g_iface. If the type is dynamic, then
@@ -3490,12 +3503,14 @@
/**
* g_type_children:
* @type: The parent type.
- * @n_children: Optional #guint pointer to contain the number of child types.
+ * @n_children: (out) (allow-none): Optional #guint pointer to contain
+ * the number of child types.
*
* Return a newly allocated and 0-terminated array of type IDs, listing the
* child types of @type. The return value has to be g_free()ed after use.
*
- * Returns: Newly allocated and 0-terminated array of child types.
+ * Returns: (array length=n_children) (transfer full): Newly allocated
+ * and 0-terminated array of child types.
*/
GType*
g_type_children (GType type,
@@ -3531,14 +3546,15 @@
/**
* g_type_interfaces:
* @type: The type to list interface types for.
- * @n_interfaces: Optional #guint pointer to contain the number of
- * interface types.
+ * @n_interfaces: (out) (allow-none): Optional #guint pointer to
+ * contain the number of interface types.
*
* Return a newly allocated and 0-terminated array of type IDs, listing the
* interface types that @type conforms to. The return value has to be
* g_free()ed after use.
*
- * Returns: Newly allocated and 0-terminated array of interface types.
+ * Returns: (array length=n_interfaces) (transfer full): Newly
+ * allocated and 0-terminated array of interface types.
*/
GType*
g_type_interfaces (GType type,
@@ -3636,7 +3652,7 @@
* Obtains data which has previously been attached to @type
* with g_type_set_qdata().
*
- * Returns: the data, or %NULL if no data was found
+ * Returns: (transfer none): the data, or %NULL if no data was found
*/
gpointer
g_type_get_qdata (GType type,
@@ -3742,8 +3758,8 @@
/**
* g_type_query:
* @type: the #GType value of a static, classed type.
- * @query: A user provided structure that is filled in with constant values
- * upon success.
+ * @query: (out caller-allocates): A user provided structure that is
+ * filled in with constant values upon success.
*
* Queries the type system for information about a specific type.
* This function will fill in a user-provided structure to hold
@@ -3824,8 +3840,8 @@
* Returns the #GTypePlugin structure for @type or
* %NULL if @type does not have a #GTypePlugin structure.
*
- * Returns: The corresponding plugin if @type is a dynamic type,
- * %NULL otherwise.
+ * Returns: (transfer none): The corresponding plugin if @type is a
+ * dynamic type, %NULL otherwise.
*/
GTypePlugin*
g_type_get_plugin (GType type)
@@ -3847,8 +3863,8 @@
* @interface_type has not been added to @instance_type or does not
* have a #GTypePlugin structure. See g_type_add_interface_dynamic().
*
- * Returns: the #GTypePlugin for the dynamic interface @interface_type
- * of @instance_type.
+ * Returns: (transfer none): the #GTypePlugin for the dynamic
+ * interface @interface_type of @instance_type.
*/
GTypePlugin*
g_type_interface_get_plugin (GType instance_type,
@@ -4123,7 +4139,7 @@
}
/**
- * g_type_value_table_peek:
+ * g_type_value_table_peek: (skip)
* @type: A #GType value.
*
* Returns the location of the #GTypeValueTable associated with @type.
diff --git a/gobject/gvalue.c b/gobject/gvalue.c
index 9247d4c..573969c 100644
--- a/gobject/gvalue.c
+++ b/gobject/gvalue.c
@@ -159,7 +159,7 @@
*
* Initializes @value with the default value of @type.
*
- * Returns: the #GValue structure that has been passed in
+ * Returns: (transfer none): the #GValue structure that has been passed in
*/
GValue*
g_value_init (GValue *value,
@@ -301,11 +301,10 @@
* g_value_peek_pointer:
* @value: An initialized #GValue structure.
*
- * Return the value contents as pointer. This function asserts that
- * g_value_fits_pointer() returned %TRUE for the passed in value.
- * This is an internal function introduced mainly for C marshallers.
- *
- * Returns: %TRUE if @value will fit inside a pointer value.
+ * Returns: (transfer none): the value contents as pointer. This
+ * function asserts that g_value_fits_pointer() returned %TRUE for the
+ * passed in value. This is an internal function introduced mainly
+ * for C marshallers.
*/
gpointer
g_value_peek_pointer (const GValue *value)
@@ -424,7 +423,7 @@
}
/**
- * g_value_register_transform_func:
+ * g_value_register_transform_func: (skip)
* @src_type: Source type.
* @dest_type: Target type.
* @transform_func: a function which transforms values of type @src_type
diff --git a/gobject/gvaluearray.c b/gobject/gvaluearray.c
index 3bc6787..e2a752e 100644
--- a/gobject/gvaluearray.c
+++ b/gobject/gvaluearray.c
@@ -58,7 +58,7 @@
*
* Return a pointer to the value at @index_ containd in @value_array.
*
- * Returns: pointer to a value at @index_ in @value_array
+ * Returns: (transfer none): pointer to a value at @index_ in @value_array
*/
GValue*
g_value_array_get_nth (GValueArray *value_array,
@@ -158,7 +158,7 @@
* Construct an exact copy of a #GValueArray by duplicating all its
* contents.
*
- * Returns: Newly allocated copy of #GValueArray
+ * Returns: (transfer full): Newly allocated copy of #GValueArray
*/
GValueArray*
g_value_array_copy (const GValueArray *value_array)
@@ -187,13 +187,13 @@
/**
* g_value_array_prepend:
* @value_array: #GValueArray to add an element to
- * @value: #GValue to copy into #GValueArray, or %NULL
+ * @value: (allow-none): #GValue to copy into #GValueArray, or %NULL
*
* Insert a copy of @value as first element of @value_array. If @value is
* %NULL, an uninitialized value is prepended.
*
*
- * Returns: the #GValueArray passed in as @value_array
+ * Returns: (transfer none): the #GValueArray passed in as @value_array
*/
GValueArray*
g_value_array_prepend (GValueArray *value_array,
@@ -207,12 +207,12 @@
/**
* g_value_array_append:
* @value_array: #GValueArray to add an element to
- * @value: #GValue to copy into #GValueArray, or %NULL
+ * @value: (allow-none): #GValue to copy into #GValueArray, or %NULL
*
* Insert a copy of @value as last element of @value_array. If @value is
* %NULL, an uninitialized value is appended.
*
- * Returns: the #GValueArray passed in as @value_array
+ * Returns: (transfer none): the #GValueArray passed in as @value_array
*/
GValueArray*
g_value_array_append (GValueArray *value_array,
@@ -227,12 +227,12 @@
* g_value_array_insert:
* @value_array: #GValueArray to add an element to
* @index_: insertion position, must be <= value_array->n_values
- * @value: #GValue to copy into #GValueArray, or %NULL
+ * @value: (allow-none): #GValue to copy into #GValueArray, or %NULL
*
* Insert a copy of @value at specified position into @value_array. If @value
* is %NULL, an uninitialized value is inserted.
*
- * Returns: the #GValueArray passed in as @value_array
+ * Returns: (transfer none): the #GValueArray passed in as @value_array
*/
GValueArray*
g_value_array_insert (GValueArray *value_array,
@@ -265,7 +265,7 @@
*
* Remove the value at position @index_ from @value_array.
*
- * Returns: the #GValueArray passed in as @value_array
+ * Returns: (transfer none): the #GValueArray passed in as @value_array
*/
GValueArray*
g_value_array_remove (GValueArray *value_array,
@@ -290,14 +290,14 @@
/**
* g_value_array_sort:
* @value_array: #GValueArray to sort
- * @compare_func: function to compare elements
+ * @compare_func: (scope call): function to compare elements
*
* Sort @value_array using @compare_func to compare the elements accoring to
* the semantics of #GCompareFunc.
*
* The current implementation uses Quick-Sort as sorting algorithm.
*
- * Returns: the #GValueArray passed in as @value_array
+ * Returns: (transfer none): the #GValueArray passed in as @value_array
*/
GValueArray*
g_value_array_sort (GValueArray *value_array,
@@ -316,15 +316,16 @@
/**
* g_value_array_sort_with_data:
* @value_array: #GValueArray to sort
- * @compare_func: function to compare elements
- * @user_data: extra data argument provided for @compare_func
+ * @compare_func: (scope call): function to compare elements
+ * @user_data: (closure): extra data argument provided for @compare_func
*
* Sort @value_array using @compare_func to compare the elements accoring
* to the semantics of #GCompareDataFunc.
*
* The current implementation uses Quick-Sort as sorting algorithm.
*
- * Returns: the #GValueArray passed in as @value_array
+ * Rename to: g_value_array_sort
+ * Returns: (transfer none): the #GValueArray passed in as @value_array
*/
GValueArray*
g_value_array_sort_with_data (GValueArray *value_array,
diff --git a/gobject/gvaluetypes.c b/gobject/gvaluetypes.c
index aa22b2d..78c7266 100644
--- a/gobject/gvaluetypes.c
+++ b/gobject/gvaluetypes.c
@@ -1119,7 +1119,7 @@
*
* Get the contents of a pointer #GValue.
*
- * Returns: pointer contents of @value
+ * Returns: (transfer none): pointer contents of @value
*/
gpointer
g_value_get_pointer (const GValue *value)
diff --git a/gobject/tests/Makefile.am b/gobject/tests/Makefile.am
index eec8c5e..8452164 100644
--- a/gobject/tests/Makefile.am
+++ b/gobject/tests/Makefile.am
@@ -3,15 +3,7 @@
INCLUDES = -g $(gobject_INCLUDES) $(GLIB_DEBUG_FLAGS)
noinst_PROGRAMS = $(TEST_PROGS)
-libgobject_LDADD = ../libgobject-2.0.la $(top_builddir)/gthread/libgthread-2.0.la $(top_builddir)/glib/libglib-2.0.la
+LDADD = ../libgobject-2.0.la $(top_builddir)/gthread/libgthread-2.0.la $(top_builddir)/glib/libglib-2.0.la
-TEST_PROGS += threadtests dynamictests binding properties reference
-threadtests_SOURCES = threadtests.c
-threadtests_LDADD = $(libgobject_LDADD)
-dynamictests_SOURCES = dynamictests.c
-dynamictests_LDADD = $(libgobject_LDADD)
-binding_SOURCES = binding.c
-binding_LDADD = $(libgobject_LDADD)
-properties_SOURCES = properties.c
-properties_LDADD = $(libgobject_LDADD)
-reference_LDADD = $(libgobject_LDADD)
+TEST_PROGS += threadtests dynamictests binding properties reference ifaceproperties
+ifaceproperties_SOURCES = ifaceproperties.c testcommon.h
diff --git a/gobject/tests/ifaceproperties.c b/gobject/tests/ifaceproperties.c
new file mode 100644
index 0000000..14762fb
--- /dev/null
+++ b/gobject/tests/ifaceproperties.c
@@ -0,0 +1,648 @@
+/* GObject - GLib Type, Object, Parameter and Signal Library
+ * Copyright (C) 2001, 2003 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 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib-object.h>
+
+#include "testcommon.h"
+
+/* This test tests interface properties, implementing interface
+ * properties and #GParamSpecOverride.
+ *
+ * Four properties are tested:
+ *
+ * prop1: Defined in TestIface, Implemented in BaseObject with a GParamSpecOverride
+ * prop2: Defined in TestIface, Implemented in BaseObject with a new property
+ * prop3: Defined in TestIface, Implemented in BaseObject, Overridden in DerivedObject
+ * prop4: Defined in BaseObject, Overridden in DerivedObject
+ */
+
+static GType base_object_get_type ();
+static GType derived_object_get_type ();
+
+enum {
+ BASE_PROP_0,
+ BASE_PROP1,
+ BASE_PROP2,
+ BASE_PROP3,
+ BASE_PROP4
+};
+
+enum {
+ DERIVED_PROP_0,
+ DERIVED_PROP3,
+ DERIVED_PROP4
+};
+
+/*
+ * BaseObject, a parent class for DerivedObject
+ */
+#define BASE_TYPE_OBJECT (base_object_get_type ())
+#define BASE_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BASE_TYPE_OBJECT, BaseObject))
+typedef struct _BaseObject BaseObject;
+typedef struct _BaseObjectClass BaseObjectClass;
+
+struct _BaseObject
+{
+ GObject parent_instance;
+
+ gint val1;
+ gint val2;
+ gint val3;
+ gint val4;
+};
+struct _BaseObjectClass
+{
+ GObjectClass parent_class;
+};
+
+GObjectClass *base_parent_class;
+
+/*
+ * DerivedObject, the child class of DerivedObject
+ */
+#define DERIVED_TYPE_OBJECT (derived_object_get_type ())
+typedef struct _DerivedObject DerivedObject;
+typedef struct _DerivedObjectClass DerivedObjectClass;
+
+struct _DerivedObject
+{
+ BaseObject parent_instance;
+};
+struct _DerivedObjectClass
+{
+ BaseObjectClass parent_class;
+};
+
+/*
+ * The interface
+ */
+typedef struct _TestIfaceClass TestIfaceClass;
+
+struct _TestIfaceClass
+{
+ GTypeInterface base_iface;
+};
+
+#define TEST_TYPE_IFACE (test_iface_get_type ())
+
+/* The paramspecs installed on our interface
+ */
+static GParamSpec *iface_spec1, *iface_spec2, *iface_spec3;
+
+/* The paramspecs inherited by our derived object
+ */
+static GParamSpec *inherited_spec1, *inherited_spec2, *inherited_spec3, *inherited_spec4;
+
+static void
+test_iface_default_init (TestIfaceClass *iface_vtable)
+{
+ inherited_spec1 = iface_spec1 = g_param_spec_int ("prop1",
+ "Prop1",
+ "Property 1",
+ G_MININT, /* min */
+ 0xFFFF, /* max */
+ 42, /* default */
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+ g_object_interface_install_property (iface_vtable, iface_spec1);
+
+ iface_spec2 = g_param_spec_int ("prop2",
+ "Prop2",
+ "Property 2",
+ G_MININT, /* min */
+ G_MAXINT, /* max */
+ 0, /* default */
+ G_PARAM_WRITABLE);
+ g_object_interface_install_property (iface_vtable, iface_spec2);
+
+ inherited_spec3 = iface_spec3 = g_param_spec_int ("prop3",
+ "Prop3",
+ "Property 3",
+ G_MININT, /* min */
+ G_MAXINT, /* max */
+ 0, /* default */
+ G_PARAM_READWRITE);
+ g_object_interface_install_property (iface_vtable, iface_spec3);
+}
+
+static DEFINE_IFACE (TestIface, test_iface, NULL, test_iface_default_init)
+
+
+static GObject*
+base_object_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ /* The constructor is the one place where a GParamSpecOverride is visible
+ * to the outside world, so we do a bunch of checks here
+ */
+ GValue value1 = { 0, };
+ GValue value2 = { 0, };
+ GParamSpec *pspec;
+
+ g_assert (n_construct_properties == 1);
+
+ pspec = construct_properties->pspec;
+
+ /* Check we got the param spec we expected
+ */
+ g_assert (G_IS_PARAM_SPEC_OVERRIDE (pspec));
+ g_assert (pspec->param_id == BASE_PROP1);
+ g_assert (strcmp (g_param_spec_get_name (pspec), "prop1") == 0);
+ g_assert (g_param_spec_get_redirect_target (pspec) == iface_spec1);
+
+ /* Test redirection of the nick and blurb to the redirect target
+ */
+ g_assert (strcmp (g_param_spec_get_nick (pspec), "Prop1") == 0);
+ g_assert (strcmp (g_param_spec_get_blurb (pspec), "Property 1") == 0);
+
+ /* Test forwarding of the various GParamSpec methods to the redirect target
+ */
+ g_value_init (&value1, G_TYPE_INT);
+ g_value_init (&value2, G_TYPE_INT);
+
+ g_param_value_set_default (pspec, &value1);
+ g_assert (g_value_get_int (&value1) == 42);
+
+ g_value_reset (&value1);
+ g_value_set_int (&value1, 0x10000);
+ g_assert (g_param_value_validate (pspec, &value1));
+ g_assert (g_value_get_int (&value1) == 0xFFFF);
+ g_assert (!g_param_value_validate (pspec, &value1));
+
+ g_value_reset (&value1);
+ g_value_set_int (&value1, 1);
+ g_value_set_int (&value2, 2);
+ g_assert (g_param_values_cmp (pspec, &value1, &value2) < 0);
+ g_assert (g_param_values_cmp (pspec, &value2, &value1) > 0);
+
+ g_value_unset (&value1);
+ g_value_unset (&value2);
+
+ return base_parent_class->constructor (type,
+ n_construct_properties,
+ construct_properties);
+}
+
+static void
+base_object_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ BaseObject *base_object = BASE_OBJECT (object);
+
+ switch (prop_id)
+ {
+ case BASE_PROP1:
+ g_assert (pspec == inherited_spec1);
+ base_object->val1 = g_value_get_int (value);
+ break;
+ case BASE_PROP2:
+ g_assert (pspec == inherited_spec2);
+ base_object->val2 = g_value_get_int (value);
+ break;
+ case BASE_PROP3:
+ g_assert_not_reached ();
+ break;
+ case BASE_PROP4:
+ g_assert_not_reached ();
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+base_object_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ BaseObject *base_object = BASE_OBJECT (object);
+
+ switch (prop_id)
+ {
+ case BASE_PROP1:
+ g_assert (pspec == inherited_spec1);
+ g_value_set_int (value, base_object->val1);
+ break;
+ case BASE_PROP2:
+ g_assert (pspec == inherited_spec2);
+ g_value_set_int (value, base_object->val2);
+ break;
+ case BASE_PROP3:
+ g_assert_not_reached ();
+ break;
+ case BASE_PROP4:
+ g_assert_not_reached ();
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+base_object_notify (GObject *object,
+ GParamSpec *pspec)
+{
+ /* The property passed to notify is the redirect target, not the
+ * GParamSpecOverride
+ */
+ g_assert (pspec == inherited_spec1 ||
+ pspec == inherited_spec2 ||
+ pspec == inherited_spec3 ||
+ pspec == inherited_spec4);
+}
+
+static void
+base_object_class_init (BaseObjectClass *class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+ base_parent_class= g_type_class_peek_parent (class);
+
+ object_class->constructor = base_object_constructor;
+ object_class->set_property = base_object_set_property;
+ object_class->get_property = base_object_get_property;
+ object_class->notify = base_object_notify;
+
+ g_object_class_override_property (object_class, BASE_PROP1, "prop1");
+
+ /* We override this one using a real property, not GParamSpecOverride
+ * We change the flags from READONLY to READWRITE to show that we
+ * can make the flags less restrictive
+ */
+ inherited_spec2 = g_param_spec_int ("prop2",
+ "Prop2",
+ "Property 2",
+ G_MININT, /* min */
+ G_MAXINT, /* max */
+ 0, /* default */
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, BASE_PROP2, inherited_spec2);
+
+ g_object_class_override_property (object_class, BASE_PROP3, "prop3");
+
+ inherited_spec4 = g_param_spec_int ("prop4",
+ "Prop4",
+ "Property 4",
+ G_MININT, /* min */
+ G_MAXINT, /* max */
+ 0, /* default */
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, BASE_PROP4, inherited_spec4);
+}
+
+static void
+base_object_init (BaseObject *base_object)
+{
+ base_object->val1 = 42;
+}
+
+static DEFINE_TYPE_FULL (BaseObject, base_object,
+ base_object_class_init, NULL, base_object_init,
+ G_TYPE_OBJECT,
+ INTERFACE (NULL, TEST_TYPE_IFACE))
+
+static void
+derived_object_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ BaseObject *base_object = BASE_OBJECT (object);
+
+ switch (prop_id)
+ {
+ case DERIVED_PROP3:
+ g_assert (pspec == inherited_spec3);
+ base_object->val3 = g_value_get_int (value);
+ break;
+ case DERIVED_PROP4:
+ g_assert (pspec == inherited_spec4);
+ base_object->val4 = g_value_get_int (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+derived_object_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ BaseObject *base_object = BASE_OBJECT (object);
+
+ switch (prop_id)
+ {
+ case DERIVED_PROP3:
+ g_assert (pspec == inherited_spec3);
+ g_value_set_int (value, base_object->val3);
+ break;
+ case DERIVED_PROP4:
+ g_assert (pspec == inherited_spec4);
+ g_value_set_int (value, base_object->val4);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+derived_object_class_init (DerivedObjectClass *class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+ object_class->set_property = derived_object_set_property;
+ object_class->get_property = derived_object_get_property;
+
+ /* Overriding a property that is itself overridding an interface property */
+ g_object_class_override_property (object_class, DERIVED_PROP3, "prop3");
+
+ /* Overriding a property not from an interface */
+ g_object_class_override_property (object_class, DERIVED_PROP4, "prop4");
+}
+
+static DEFINE_TYPE (DerivedObject, derived_object,
+ derived_object_class_init, NULL, NULL,
+ BASE_TYPE_OBJECT)
+
+/* Helper function for testing ...list_properties() */
+static void
+assert_in_properties (GParamSpec *param_spec,
+ GParamSpec **properties,
+ gint n_properties)
+{
+ gint i;
+ gboolean found = FALSE;
+
+ for (i = 0; i < n_properties; i++)
+ {
+ if (properties[i] == param_spec)
+ found = TRUE;
+ }
+
+ g_assert (found);
+}
+
+/* Test setting and getting the properties */
+static void
+test_set (void)
+{
+ BaseObject *object;
+ gint val1, val2, val3, val4;
+
+ object = g_object_new (DERIVED_TYPE_OBJECT, NULL);
+
+ g_object_set (object,
+ "prop1", 0x0101,
+ "prop2", 0x0202,
+ "prop3", 0x0303,
+ "prop4", 0x0404,
+ NULL);
+ g_object_get (object,
+ "prop1", &val1,
+ "prop2", &val2,
+ "prop3", &val3,
+ "prop4", &val4,
+ NULL);
+
+ g_assert (val1 == 0x0101);
+ g_assert (val2 == 0x0202);
+ g_assert (val3 == 0x0303);
+ g_assert (val4 == 0x0404);
+
+ g_object_unref (object);
+}
+
+/* Test that the right spec is passed on explicit notifications */
+static void
+test_notify (void)
+{
+ BaseObject *object;
+
+ object = g_object_new (DERIVED_TYPE_OBJECT, NULL);
+
+ g_object_freeze_notify (G_OBJECT (object));
+ g_object_notify (G_OBJECT (object), "prop1");
+ g_object_notify (G_OBJECT (object), "prop2");
+ g_object_notify (G_OBJECT (object), "prop3");
+ g_object_notify (G_OBJECT (object), "prop4");
+ g_object_thaw_notify (G_OBJECT (object));
+
+ g_object_unref (object);
+}
+
+/* Test g_object_class_find_property() for overridden properties */
+static void
+test_find_overridden (void)
+{
+ GObjectClass *object_class;
+
+ object_class = g_type_class_peek (DERIVED_TYPE_OBJECT);
+
+ g_assert (g_object_class_find_property (object_class, "prop1") == inherited_spec1);
+ g_assert (g_object_class_find_property (object_class, "prop2") == inherited_spec2);
+ g_assert (g_object_class_find_property (object_class, "prop3") == inherited_spec3);
+ g_assert (g_object_class_find_property (object_class, "prop4") == inherited_spec4);
+}
+
+/* Test g_object_class_list_properties() for overridden properties */
+static void
+test_list_overridden (void)
+{
+ GObjectClass *object_class;
+ GParamSpec **properties;
+ guint n_properties;
+
+ object_class = g_type_class_peek (DERIVED_TYPE_OBJECT);
+
+ properties = g_object_class_list_properties (object_class, &n_properties);
+ g_assert (n_properties == 4);
+ assert_in_properties (inherited_spec1, properties, n_properties);
+ assert_in_properties (inherited_spec2, properties, n_properties);
+ assert_in_properties (inherited_spec3, properties, n_properties);
+ assert_in_properties (inherited_spec4, properties, n_properties);
+ g_free (properties);
+}
+
+/* Test g_object_interface_find_property() */
+static void
+test_find_interface (void)
+{
+ TestIfaceClass *iface;
+
+ iface = g_type_default_interface_peek (TEST_TYPE_IFACE);
+
+ g_assert (g_object_interface_find_property (iface, "prop1") == iface_spec1);
+ g_assert (g_object_interface_find_property (iface, "prop2") == iface_spec2);
+ g_assert (g_object_interface_find_property (iface, "prop3") == iface_spec3);
+}
+
+/* Test g_object_interface_list_properties() */
+static void
+test_list_interface (void)
+{
+ TestIfaceClass *iface;
+ GParamSpec **properties;
+ guint n_properties;
+
+ iface = g_type_default_interface_peek (TEST_TYPE_IFACE);
+
+ properties = g_object_interface_list_properties (iface, &n_properties);
+ g_assert (n_properties == 3);
+ assert_in_properties (iface_spec1, properties, n_properties);
+ assert_in_properties (iface_spec2, properties, n_properties);
+ assert_in_properties (iface_spec3, properties, n_properties);
+ g_free (properties);
+}
+
+/* Base2Object, which implements the interface but fails
+ * to override some of its properties
+ */
+#define BASE2_TYPE_OBJECT (base2_object_get_type ())
+#define BASE2_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BASE2_TYPE_OBJECT, Base2Object))
+
+typedef struct _Base2Object Base2Object;
+typedef struct _Base2ObjectClass Base2ObjectClass;
+
+static void
+base2_object_test_iface_init (TestIfaceClass *iface)
+{
+}
+
+enum {
+ BASE2_PROP_0,
+ BASE2_PROP1,
+ BASE2_PROP2
+};
+
+struct _Base2Object
+{
+ GObject parent_instance;
+};
+
+struct _Base2ObjectClass
+{
+ GObjectClass parent_class;
+};
+
+G_DEFINE_TYPE_WITH_CODE (Base2Object, base2_object, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (TEST_TYPE_IFACE,
+ base2_object_test_iface_init))
+
+static void
+base2_object_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id)
+ {
+ case BASE2_PROP1:
+ g_value_set_int (value, 0);
+ break;
+ case BASE2_PROP2:
+ g_value_set_int (value, 0);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+base2_object_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id)
+ {
+ case BASE2_PROP1:
+ break;
+ case BASE2_PROP2:
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+base2_object_class_init (Base2ObjectClass *class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (class);
+
+ object_class->set_property = base2_object_set_property;
+ object_class->get_property = base2_object_get_property;
+
+ g_object_class_override_property (object_class, BASE2_PROP1, "prop1");
+ g_object_class_override_property (object_class, BASE2_PROP2, "prop2");
+}
+
+static void
+base2_object_init (Base2Object *object)
+{
+}
+
+static void
+test_not_overridden (void)
+{
+ g_test_bug ("637738");
+
+ if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDOUT|G_TEST_TRAP_SILENCE_STDERR))
+ {
+ Base2Object *object;
+
+ object = g_object_new (BASE2_TYPE_OBJECT, NULL);
+ g_object_unref (object);
+ exit (0);
+ }
+ g_test_trap_assert_failed ();
+ g_test_trap_assert_stderr ("*Base2Object doesn't implement property 'prop3' from interface 'TestIface'*");
+}
+
+int
+main (int argc, char *argv[])
+{
+ g_type_init ();
+
+ g_test_init (&argc, &argv, NULL);
+ g_test_bug_base ("http://bugzilla.gnome.org/");
+
+ g_test_add_func ("/interface/properties/set", test_set);
+ g_test_add_func ("/interface/properties/notify", test_notify);
+ g_test_add_func ("/interface/properties/find-overridden", test_find_overridden);
+ g_test_add_func ("/interface/properties/list-overridden", test_list_overridden);
+ g_test_add_func ("/interface/properties/find-interface", test_find_interface);
+ g_test_add_func ("/interface/properties/list-interface", test_list_interface);
+ g_test_add_func ("/interface/properties/not-overridden", test_not_overridden);
+
+ return g_test_run ();
+}
diff --git a/gobject/tests/testcommon.h b/gobject/tests/testcommon.h
new file mode 100644
index 0000000..7bfef05
--- /dev/null
+++ b/gobject/tests/testcommon.h
@@ -0,0 +1,100 @@
+/* GObject - GLib Type, Object, Parameter and Signal Library
+ * Copyright (C) 2003 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 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General
+ * Public License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __TEST_COMMON_H__
+#define __TEST_COMMON_H__
+
+G_BEGIN_DECLS
+
+#define DEFINE_TYPE_FULL(name, prefix, \
+ class_init, base_init, instance_init, \
+ parent_type, interface_decl) \
+GType \
+prefix ## _get_type (void) \
+{ \
+ static GType object_type = 0; \
+ \
+ if (!object_type) \
+ { \
+ static const GTypeInfo object_info = \
+ { \
+ sizeof (name ## Class), \
+ (GBaseInitFunc) base_init, \
+ (GBaseFinalizeFunc) NULL, \
+ (GClassInitFunc) class_init, \
+ (GClassFinalizeFunc) NULL, \
+ NULL, /* class_data */ \
+ sizeof (name), \
+ 0, /* n_prelocs */ \
+ (GInstanceInitFunc) instance_init \
+ }; \
+ \
+ object_type = g_type_register_static (parent_type, \
+ # name, \
+ &object_info, 0); \
+ interface_decl \
+ } \
+ \
+ return object_type; \
+}
+
+#define DEFINE_TYPE(name, prefix, \
+ class_init, base_init, instance_init, \
+ parent_type) \
+ DEFINE_TYPE_FULL(name, prefix, class_init, base_init, \
+ instance_init, parent_type, {})
+
+#define DEFINE_IFACE(name, prefix, base_init, dflt_init) \
+GType \
+prefix ## _get_type (void) \
+{ \
+ static GType iface_type = 0; \
+ \
+ if (!iface_type) \
+ { \
+ static const GTypeInfo iface_info = \
+ { \
+ sizeof (name ## Class), \
+ (GBaseInitFunc) base_init, \
+ (GBaseFinalizeFunc) NULL, \
+ (GClassInitFunc) dflt_init, \
+ }; \
+ \
+ iface_type = g_type_register_static (G_TYPE_INTERFACE, \
+ # name, \
+ &iface_info, 0); \
+ } \
+ return iface_type; \
+}
+
+#define INTERFACE_FULL(type, init_func, iface_type) \
+{ \
+ static GInterfaceInfo const iface = \
+ { \
+ (GInterfaceInitFunc) init_func, NULL, NULL \
+ }; \
+ \
+ g_type_add_interface_static (type, iface_type, &iface); \
+}
+#define INTERFACE(init_func, iface_type) \
+ INTERFACE_FULL(object_type, init_func, iface_type)
+
+G_END_DECLS
+
+#endif /* __TEST_COMMON_H__ */
diff --git a/gthread/tests/1bit-mutex.c b/gthread/tests/1bit-mutex.c
index 6c5d0cd..4b405f4 100644
--- a/gthread/tests/1bit-mutex.c
+++ b/gthread/tests/1bit-mutex.c
@@ -26,9 +26,6 @@
*/
/* side-step some glib build stuff */
- #ifndef DISABLE_VISIBILITY
- #define DISABLE_VISIBILITY
- #endif
#define GLIB_COMPILATION
/* rebuild gbitlock.c without futex support,
diff --git a/m4macros/gsettings.m4 b/m4macros/gsettings.m4
index f0ed838..429d04b 100644
--- a/m4macros/gsettings.m4
+++ b/m4macros/gsettings.m4
@@ -67,7 +67,7 @@
ifdef gsettings_ENUM_NAMESPACE
$(gsettings__enum_file): $(gsettings_ENUM_FILES)
- $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" $(gsettings_ENUM_FILES) > [$]@.tmp && mv [$]@.tmp [$]@
+ $(AM_V_GEN) glib-mkenums --comments '\''<!-- @comment@ -->'\'' --fhead "<schemalist>" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " <value nick='\''@valuenick@'\'' value='\''@valuenum@'\''/>" --vtail " </@type@>" --ftail "</schemalist>" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@
endif
'
_GSETTINGS_SUBST(GSETTINGS_RULES)
diff --git a/mkinstalldirs b/mkinstalldirs
index d2d5f21..4191a45 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -1,21 +1,36 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
+scriptversion=2009-04-28.21; # UTC
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+IFS=" "" $nl"
errstatus=0
-dirmode=""
+dirmode=
usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
- echo "$usage" 1>&2
- exit 0
+ echo "$usage"
+ exit $?
;;
-m) # -m PERM arg
shift
@@ -23,6 +38,10 @@
dirmode=$1
shift
;;
+ --version)
+ echo "$0 $scriptversion"
+ exit $?
+ ;;
--) # stop option processing
shift
break
@@ -50,30 +69,58 @@
0) exit 0 ;;
esac
+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error. This is a problem when calling mkinstalldirs
+# from a parallel make. We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
case $dirmode in
'')
- if mkdir -p -- . 2>/dev/null; then
+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
+ else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ test -d ./-p && rmdir ./-p
+ test -d ./--version && rmdir ./--version
fi
;;
*)
- if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+ test ! -d ./--version; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
+ else
+ # Clean up after NextStep and OpenStep mkdir.
+ for d in ./-m ./-p ./--version "./$dirmode";
+ do
+ test -d $d && rmdir $d
+ done
fi
;;
esac
for file
do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ case $file in
+ /*) pathcomp=/ ;;
+ *) pathcomp= ;;
+ esac
+ oIFS=$IFS
+ IFS=/
+ set fnord $file
shift
+ IFS=$oIFS
- pathcomp=
for d
do
- pathcomp="$pathcomp$d"
+ test "x$d" = x && continue
+
+ pathcomp=$pathcomp$d
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
@@ -84,21 +131,21 @@
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
- errstatus=$lasterr
+ errstatus=$lasterr
else
- if test ! -z "$dirmode"; then
+ if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
- lasterr=""
- chmod "$dirmode" "$pathcomp" || lasterr=$?
+ lasterr=
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
- if test ! -z "$lasterr"; then
- errstatus=$lasterr
- fi
- fi
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
fi
fi
- pathcomp="$pathcomp/"
+ pathcomp=$pathcomp/
done
done
@@ -107,5 +154,9 @@
# Local Variables:
# mode: shell-script
# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
# End:
-# mkinstalldirs ends here
diff --git a/po/es.po b/po/es.po
index 922fc44..f5a2982 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,15 +6,16 @@
# Germán Poo Caamaño <gpoo@ubiobio.cl>, 2002.
# Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2004, 2005, 2006.
# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: glib.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=glib&component=general\n"
-"POT-Creation-Date: 2010-11-29 15:49+0000\n"
-"PO-Revision-Date: 2010-11-30 23:40+0100\n"
-"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
+"POT-Creation-Date: 2010-12-21 12:55+0000\n"
+"PO-Revision-Date: 2010-12-22 17:00+0100\n"
+"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -393,134 +394,134 @@
msgid "Error opening directory '%s': %s"
msgstr "Falló al abrir el directorio «%s»: %s"
-#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
msgstr "No se pueden asignar %lu bytes para leer el archivo «%s»"
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "Falló al leer el archivo «%s»: %s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
msgstr "El archivo «%s» es demasiado grande"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
msgstr "Falló al leer del archivo «%s»: %s"
-#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "Falló al abrir el archivo «%s»: %s"
-#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
+#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgstr "Falló al obtener los atributos del archivo «%s»: fstat() falló: %s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
msgstr "Falló al abrir el archivo «%s»: fdopen() falló: %s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
msgstr "Falló al renombrar el archivo «%s» a «%s»: g_rename() falló: %s"
-#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
msgstr "Falló al crear el archivo «%s»: %s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr "Falló al abrir el archivo «%s» para escritura: fdopen() falló: %s"
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
msgstr "Falló al escribir el archivo «%s»: falló fwrite(): %s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "Falló al escribir el archivo «%s»: falló fflush(): %s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "Falló al escribir el archivo «%s»: falló fsync(): %s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
msgstr "Falló al cerrar el archivo «%s»: falló fclose(): %s"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr "El archivo existente «%s» no se pudo eliminar: g_unlink() falló: %s"
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr "La plantilla «%s» es inválida, no debería contener un «%s»"
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "La plantilla «%s» no contiene XXXXXX"
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u byte"
msgstr[1] "%u bytes"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f KiB"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f MiB"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f GiB"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f TiB"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f PiB"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f EiB"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "Falló al leer el enlace simbólico «%s»: %s"
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr "Enlaces simbólicos no soportados"
@@ -645,11 +646,11 @@
#: ../glib/gmarkup.c:1126
#, c-format
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 ""
-"Carácter «%s» impropio, se esperaba un carácter «>» para terminar la "
-"etiqueta vacía del elemento «%s»"
+"Carácter «%s» impropio, se esperaba un carácter «>» para terminar la etiqueta "
+"vacía del elemento «%s»"
#: ../glib/gmarkup.c:1210
#, c-format
@@ -676,8 +677,8 @@
"Odd character '%s', expected an open quote mark after the equals sign when "
"giving value for attribute '%s' of element '%s'"
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»"
+"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:1429
#, c-format
@@ -685,8 +686,8 @@
"'%s' is not a valid character following the characters '</'; '%s' may not "
"begin an element name"
msgstr ""
-"«%s» no es un carácter válido a continuación de los caracteres '</'; «%s» "
-"no debe iniciar un nombre de elemento"
+"«%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:1465
#, c-format
@@ -706,8 +707,8 @@
#, 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»"
+"Se cerró el elemento «%s», pero el elemento que está abierto actualmente es «%"
+"s»"
#: ../glib/gmarkup.c:1652
msgid "Document was empty or contained only whitespace"
@@ -1091,15 +1092,14 @@
#: ../glib/gshell.c:559
#, c-format
msgid "Text ended just after a '\\' character. (The text was '%s')"
-msgstr ""
-"El texto termina justo después de un carácter '\\'. (El texto era «%s»)"
+msgstr "El texto termina justo después de un carácter '\\'. (El texto era «%s»)"
#: ../glib/gshell.c:566
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was '%s')"
msgstr ""
-"El texto terminó antes de que se encontrase la comilla correspondiente con "
-"%c. (El texto era «%s»)"
+"El texto terminó antes de que se encontrase la comilla correspondiente con %"
+"c. (El texto era «%s»)"
#: ../glib/gshell.c:578
msgid "Text was empty (or contained only whitespace)"
@@ -1415,10 +1415,10 @@
msgid "Stream is already closed"
msgstr "El flujo ya se cerró"
-#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1636
-#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911
-#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811
-#: ../gio/gsimpleasyncresult.c:837
+#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "Se canceló la operación"
@@ -1505,8 +1505,8 @@
"Key/Value pair %d, `%s', in address element `%s', does not contain an equal "
"sign"
msgstr ""
-"El par clave/valor %d, «%s», en el elemento de dirección «%s», no contiene "
-"un signo de igual"
+"El par clave/valor %d, «%s», en el elemento de dirección «%s», no contiene un "
+"signo de igual"
#: ../gio/gdbusaddress.c:469
#, c-format
@@ -1514,8 +1514,8 @@
"Error unescaping key or value in Key/Value pair %d, `%s', in address element "
"`%s'"
msgstr ""
-"Error al desescapar la clave o el valor en el par clave/valor %d, «%s», en "
-"el elemento de dirección «%s»"
+"Error al desescapar la clave o el valor en el par clave/valor %d, «%s», en el "
+"elemento de dirección «%s»"
#: ../gio/gdbusaddress.c:547
#, c-format
@@ -1596,15 +1596,14 @@
#: ../gio/gdbusaddress.c:1056
#, c-format
msgid "Abnormal program termination spawning command line `%s': %s"
-msgstr ""
-"Terminación anómala de programa al lanzar («spawn») el comando «%s»: %s"
+msgstr "Terminación anómala de programa al lanzar («spawn») el comando «%s»: %s"
#: ../gio/gdbusaddress.c:1070
#, c-format
msgid "Command line `%s' exited with non-zero exit status %d: %s"
msgstr ""
-"El comando de línea «%s» finalizó con un estado de salida distinto de cero "
-"%d: %s"
+"El comando de línea «%s» finalizó con un estado de salida distinto de cero %"
+"d: %s"
#: ../gio/gdbusaddress.c:1143
#, c-format
@@ -1613,7 +1612,7 @@
"No se puede determinar la dirección del bus de sesión (no implementado para "
"este SO)"
-#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167
+#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -1622,7 +1621,7 @@
"No se puede determinar la dirección del bus desde la variable de entorno "
"DBUS_STARTER_BUS_TYPE; variable «%s» desconocida"
-#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176
+#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -1683,24 +1682,23 @@
#, c-format
msgid "Line %d of the keyring at `%s' with content `%s' is malformed"
msgstr ""
-"La línea %d del depósito de claves en «%s» con contenido «%s» está mal "
-"formada"
+"La línea %d del depósito de claves en «%s» con contenido «%s» está mal formada"
#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:729
#, c-format
msgid ""
"First token of line %d of the keyring at `%s' with content `%s' is malformed"
msgstr ""
-"El primer token de la línea %d del depósito de claves en «%s» con contenido "
-"«%s» está mal formado"
+"El primer token de la línea %d del depósito de claves en «%s» con contenido «%"
+"s» está mal formado"
#: ../gio/gdbusauthmechanismsha1.c:434 ../gio/gdbusauthmechanismsha1.c:743
#, c-format
msgid ""
"Second token of line %d of the keyring at `%s' with content `%s' is malformed"
msgstr ""
-"El segundo token de la línea %d del depósito de claves en «%s» con contenido "
-"«%s» está mal formado"
+"El segundo token de la línea %d del depósito de claves en «%s» con contenido «%"
+"s» está mal formado"
#: ../gio/gdbusauthmechanismsha1.c:458
#, c-format
@@ -1735,26 +1733,25 @@
#: ../gio/gdbusauthmechanismsha1.c:877
#, c-format
msgid "(Additionally, releasing the lock for `%s' also failed: %s) "
-msgstr ""
-"(Adicionalmente, también falló la liberación del bloqueo para «%s»: %s)"
+msgstr "(Adicionalmente, también falló la liberación del bloqueo para «%s»: %s)"
#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374
-#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736
+#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr "La conexión está cerrada"
-#: ../gio/gdbusconnection.c:1680
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr "Se alcanzó el tiempo de expiración"
-#: ../gio/gdbusconnection.c:2299
+#: ../gio/gdbusconnection.c:2300
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Se encontraron opciones no soportadas al construir la conexión del lado del "
"cliente"
-#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069
+#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070
#, c-format
msgid ""
"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
@@ -1762,68 +1759,68 @@
"No existe la interfaz «org.freedesktop.DBus.Properties» en el objeto en la "
"ruta %s"
-#: ../gio/gdbusconnection.c:3823
+#: ../gio/gdbusconnection.c:3824
#, 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»."
+"Error al establecer la propiedad «%s». Se esperaba el tipo «%s» pero se obtuvo "
+"«%s»."
-#: ../gio/gdbusconnection.c:3918
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
msgstr "No existe la propiedad «%s»"
-#: ../gio/gdbusconnection.c:3930
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr "No se puede leer la clave «%s»"
-#: ../gio/gdbusconnection.c:3941
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr "No se puede escribir la clave «%s»"
-#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601
+#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
msgstr "La interfaz «%s» no existe"
-#: ../gio/gdbusconnection.c:4199
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
msgstr "No existe tal interfaz"
-#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117
+#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118
#, 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:4467
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr "No existe el método «%s»"
-#: ../gio/gdbusconnection.c:4498
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr "El tipo de mensaje, «%s», no concide con el tipo esperado «%s»"
-#: ../gio/gdbusconnection.c:4717
+#: ../gio/gdbusconnection.c:4718
#, 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:4911
+#: ../gio/gdbusconnection.c:4912
#, 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:5712
+#: ../gio/gdbusconnection.c:5713
#, 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:5830
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Ya se ha exportado un subárbol para %s"
@@ -1884,8 +1881,7 @@
#, c-format
msgid "Expected NUL byte after the string `%s' but found byte %d"
msgstr ""
-"Se esperaba el byte NULL después de la cadena «%s» pero se encontró el byte "
-"%d"
+"Se esperaba el byte NULL después de la cadena «%s» pero se encontró el byte %d"
#: ../gio/gdbusmessage.c:1231
#, c-format
@@ -1925,8 +1921,8 @@
"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value "
"0x%02x"
msgstr ""
-"Valor endian no válido. Se esperaba 0x6c («l») o 0x42 («B»)» pero se obtuvo "
-"el valor 0x%02x"
+"Valor endian no válido. Se esperaba 0x6c («l») o 0x42 («B»)» pero se obtuvo el "
+"valor 0x%02x"
#: ../gio/gdbusmessage.c:1697
#, c-format
@@ -1964,8 +1960,8 @@
msgid ""
"Error serializing GVariant with type string `%s' to the D-Bus wire format"
msgstr ""
-"Error al serializar GVariant con el tipo de cadena «%s» al formato de "
-"mensaje de D-Bus"
+"Error al serializar GVariant con el tipo de cadena «%s» al formato de mensaje "
+"de D-Bus"
#: ../gio/gdbusmessage.c:2272
#, c-format
@@ -1985,8 +1981,8 @@
#: ../gio/gdbusmessage.c:2334
#, c-format
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 ""
"El cuerpo del mensaje tiene un tipo de firma «%s» pero la firma en el campo "
"de cabecera es «%s»"
@@ -1995,8 +1991,8 @@
#, 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)»"
+"El cuerpo del mensaje está vacío pero la firma en el campo de cabecera es «(%"
+"s)»"
#: ../gio/gdbusmessage.c:2907
#, c-format
@@ -2019,7 +2015,7 @@
msgid "Error sending message: %s"
msgstr "Error al enviar el mensaje: %s"
-#: ../gio/gdbusprivate.c:1756
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr "No se puede cargar /var/lib/dbus/machine-id: "
@@ -2145,8 +2141,7 @@
msgid ""
"Warning: According to introspection data, interface `%s' does not exist\n"
msgstr ""
-"Advertencia: según la introspección de los datos, la interfaz «%s» no "
-"existe\n"
+"Advertencia: según la introspección de los datos, la interfaz «%s» no existe\n"
#: ../gio/gdbus-tool.c:468
#, c-format
@@ -2154,8 +2149,8 @@
"Warning: According to introspection data, method `%s' does not exist on "
"interface `%s'\n"
msgstr ""
-"Advertencia: según la introspección de los datos, el método «%s» no existe "
-"en la interfaz «%s»\n"
+"Advertencia: según la introspección de los datos, el método «%s» no existe en "
+"la interfaz «%s»\n"
#: ../gio/gdbus-tool.c:530
msgid "Destination name to invoke method on"
@@ -2241,36 +2236,36 @@
msgid "Monitor a remote object."
msgstr "Monitorizar un objeto remoto."
-#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221
+#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "Sin nombre"
-#: ../gio/gdesktopappinfo.c:755
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr "El archivo de escritorio no especificó el campo Exec"
-#: ../gio/gdesktopappinfo.c:948
+#: ../gio/gdesktopappinfo.c:957
msgid "Unable to find terminal required for application"
msgstr "Imposible encontrar el terminal requerido por la aplicación"
-#: ../gio/gdesktopappinfo.c:1157
+#: ../gio/gdesktopappinfo.c:1166
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr ""
"No se puede crear la carpeta de configuración de la aplicación %s del "
"usuario: %s"
-#: ../gio/gdesktopappinfo.c:1161
+#: ../gio/gdesktopappinfo.c:1170
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "No se puede crear la carpeta de configuración MIME %s del usuario: %s"
-#: ../gio/gdesktopappinfo.c:1569
+#: ../gio/gdesktopappinfo.c:1663
#, c-format
msgid "Can't create user desktop file %s"
msgstr "No se puede crear el archivo de escritorio %s del usuario"
-#: ../gio/gdesktopappinfo.c:1683
+#: ../gio/gdesktopappinfo.c:1779
#, c-format
msgid "Custom definition for %s"
msgstr "Definición personalizada para %s"
@@ -2308,29 +2303,29 @@
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Número de tokens (%d) mal formados en la codificación GEmblem"
-#: ../gio/gemblemedicon.c:293
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "No se puede manejar la versión %d de la codificación GEmblemedIcon"
-#: ../gio/gemblemedicon.c:303
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Número de tokens (%d) mal formados en la codificación GEmblemedIcon"
-#: ../gio/gemblemedicon.c:326
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Se esperaba un GEmblem para GEmblemedIconjo"
-#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237
-#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585
-#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783
-#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361
-#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861
-#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438
-#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717
-#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370
-#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120
+#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "Operación no soportada"
@@ -2343,58 +2338,58 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
+#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr "El punto de montaje contenido no existe"
-#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258
+#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr "No se puede copiar sobre el directorio"
-#: ../gio/gfile.c:2472
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "No se puede copiar directorio sobre directorio"
-#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267
+#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "El archivo destino ya existe"
-#: ../gio/gfile.c:2498
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "No se puede copiar el directorio recursivamente"
-#: ../gio/gfile.c:2758
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "La unión no está soportada"
-#: ../gio/gfile.c:2762
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "Error al unir el archivo: %s"
-#: ../gio/gfile.c:2909
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "No se puede copiar el archivo especial"
-#: ../gio/gfile.c:3483
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "El valor del enlace simbólico dado no es válido"
-#: ../gio/gfile.c:3577
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "No se soporta mover a la papelera"
-#: ../gio/gfile.c:3626
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "Los nombres de archivo no pueden contener «%c»"
-#: ../gio/gfile.c:6003 ../gio/gvolume.c:332
+#: ../gio/gfile.c:6004 ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "el volumen no implementa el montado"
-#: ../gio/gfile.c:6114
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "No hay ninguna aplicación registrada para manejar este archivo"
@@ -2514,8 +2509,8 @@
"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
"and dash ('-') are permitted."
msgstr ""
-"nombre «%s» no válido: el carácter «%c» no es válido; sólo se permiten "
-"nombres en minúscula, números y guión («-»)."
+"nombre «%s» no válido: el carácter «%c» no es válido; sólo se permiten nombres "
+"en minúscula, números y guión («-»)."
#: ../gio/glib-compile-schemas.c:744
#, c-format
@@ -2561,8 +2556,8 @@
"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
"to <key>"
msgstr ""
-"se debe especificar exactamente uno de «type», «enum» o «flags» como "
-"atributo para <key>"
+"se debe especificar exactamente uno de «type», «enum» o «flags» como atributo "
+"para <key>"
#: ../gio/glib-compile-schemas.c:915
#, c-format
@@ -2627,8 +2622,8 @@
"<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'> extiende <schema id='%s' list-of='%s'> pero "
-"«%s» no extiende «%s»"
+"<schema id='%s' list-of='%s'> extiende <schema id='%s' list-of='%s'> pero «%"
+"s» no extiende «%s»"
#: ../gio/glib-compile-schemas.c:1135
#, c-format
@@ -2681,8 +2676,8 @@
#, c-format
msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
msgstr ""
-"No existe la clave «%s» en el esquema «%s» como se especificó en el archivo "
-"de sobreescitura «%s»"
+"No existe la clave «%s» en el esquema «%s» como se especificó en el archivo de "
+"sobreescitura «%s»"
#: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825
#: ../gio/glib-compile-schemas.c:1853
@@ -2699,8 +2694,8 @@
#: ../gio/glib-compile-schemas.c:1787
#, c-format
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 al analizar la clave «%s» en el esquema «%s» como se especificó en el "
"archivo de sobreescritura «%s»: %s."
@@ -3240,66 +3235,66 @@
msgid "No such key '%s'\n"
msgstr "No existe la clave «%s»\n"
-#: ../gio/gsettings-tool.c:427
+#: ../gio/gsettings-tool.c:429
#, c-format
msgid "The provided value is outside of the valid range\n"
msgstr "El valor proporcionado está fuera del rango válido\n"
-#: ../gio/gsettings-tool.c:456
+#: ../gio/gsettings-tool.c:458
msgid "List the installed (non-relocatable) schemas"
msgstr "Listar los esquemas instalados (no reubicables)"
-#: ../gio/gsettings-tool.c:462
+#: ../gio/gsettings-tool.c:464
msgid "List the installed relocatable schemas"
msgstr "Listar los esquemas reubicables instalados"
-#: ../gio/gsettings-tool.c:468
+#: ../gio/gsettings-tool.c:470
msgid "Lists the keys in SCHEMA"
msgstr "Lista las claves en el ESQUEMA"
-#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475
-#: ../gio/gsettings-tool.c:481
+#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
msgid "SCHEMA[:PATH]"
msgstr "ESQUEMA[:RUTA]"
-#: ../gio/gsettings-tool.c:474
+#: ../gio/gsettings-tool.c:476
msgid "Lists the children of SCHEMA"
msgstr "Lista los hijos del ESQUEMA"
-#: ../gio/gsettings-tool.c:480
+#: ../gio/gsettings-tool.c:482
msgid "List keys and values, recursively"
msgstr "Listar las claves y valores recursivamente"
-#: ../gio/gsettings-tool.c:486
+#: ../gio/gsettings-tool.c:488
msgid "Gets the value of KEY"
msgstr "Obtiene el valor de la CLAVE"
-#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493
-#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511
+#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513
msgid "SCHEMA[:PATH] KEY"
msgstr "ESQUEMA[:RUTA] CLAVE"
-#: ../gio/gsettings-tool.c:492
+#: ../gio/gsettings-tool.c:494
msgid "Queries the range of valid values for KEY"
msgstr "Consulta el rango de valores válidos para la CLAVE"
-#: ../gio/gsettings-tool.c:498
+#: ../gio/gsettings-tool.c:500
msgid "Sets the value of KEY to VALUE"
msgstr "Establece el valor de la CLAVE a VALOR"
-#: ../gio/gsettings-tool.c:499
+#: ../gio/gsettings-tool.c:501
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "ESQUEMA[:RUTA] CLAVE VALOR"
-#: ../gio/gsettings-tool.c:504
+#: ../gio/gsettings-tool.c:506
msgid "Resets KEY to its default value"
msgstr "Restablece la CLAVE a su valor predeterminado"
-#: ../gio/gsettings-tool.c:510
+#: ../gio/gsettings-tool.c:512
msgid "Checks if KEY is writable"
msgstr "Comprueba si la CLAVE se puede escribir"
-#: ../gio/gsettings-tool.c:516
+#: ../gio/gsettings-tool.c:518
msgid ""
"Monitors KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3309,11 +3304,11 @@
"Si no se especifica una CLAVE, monitoriza todas las claves en el ESQUEMA.\n"
"Use ^C para detener la monitorización.\n"
-#: ../gio/gsettings-tool.c:519
+#: ../gio/gsettings-tool.c:521
msgid "SCHEMA[:PATH] [KEY]"
msgstr "ESQUEMA[:RUTA] [CLAVE]"
-#: ../gio/gsettings-tool.c:523
+#: ../gio/gsettings-tool.c:525
#, c-format
msgid ""
"Unknown command %s\n"
@@ -3322,7 +3317,7 @@
"Comando «%s» desconocido\n"
"\n"
-#: ../gio/gsettings-tool.c:531
+#: ../gio/gsettings-tool.c:533
msgid ""
"Usage:\n"
" gsettings COMMAND [ARGS...]\n"
@@ -3364,7 +3359,7 @@
"Use «gsettings help COMANDO» para obtener una ayuda detallada.\n"
"\n"
-#: ../gio/gsettings-tool.c:552
+#: ../gio/gsettings-tool.c:554
#, c-format
msgid ""
"Usage:\n"
@@ -3379,11 +3374,11 @@
"%s\n"
"\n"
-#: ../gio/gsettings-tool.c:557
+#: ../gio/gsettings-tool.c:559
msgid "Arguments:\n"
msgstr "Argumentos:\n"
-#: ../gio/gsettings-tool.c:561
+#: ../gio/gsettings-tool.c:563
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3391,19 +3386,19 @@
" SCHEMA El nombre del esquema\n"
" RUTA La ruta, para esquemas reubicables\n"
-#: ../gio/gsettings-tool.c:566
+#: ../gio/gsettings-tool.c:568
msgid " KEY The (optional) key within the schema\n"
msgstr " CLAVE La clave (opcional) para el esquema\n"
-#: ../gio/gsettings-tool.c:570
+#: ../gio/gsettings-tool.c:572
msgid " KEY The key within the schema\n"
msgstr " CLAVE La clave para el esquema\n"
-#: ../gio/gsettings-tool.c:574
+#: ../gio/gsettings-tool.c:576
msgid " VALUE The value to set\n"
msgstr " VALOR El valor para establecer\n"
-#: ../gio/gsettings-tool.c:650
+#: ../gio/gsettings-tool.c:652
#, c-format
msgid "Empty schema name given"
msgstr "Se proporcionó un nombre de esquema vacío"
@@ -3515,16 +3510,16 @@
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials no está implementado en este SO"
-#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364
+#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "Error desconocido al conectar"
-#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248
+#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr ""
"No se soporta intentar hacer de proxy sobre una conexión que no es TCP."
-#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273
+#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr "El protocolo del proxy «%s» no está soportado."
@@ -3631,23 +3626,24 @@
msgstr "El proxy SOCKSv5 no soporta el tipo de dirección proporcionado."
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
-msgstr "Error desconocido del servidor proxy SOCKSv5."
+#| msgid "Unkown SOCKSv5 proxy error."
+msgid "Unknown SOCKSv5 proxy error."
+msgstr "Error desconocido del proxy SOCKSv5."
#: ../gio/gthemedicon.c:498
#, c-format
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "No se puede manejar la versión %d de la codificación GThemedIcon"
-#: ../gio/gtlscertificate.c:270
+#: ../gio/gtlscertificate.c:228
msgid "No PEM-encoded certificate found"
msgstr "No se encontró ningún certificado codificado con PEM"
-#: ../gio/gtlscertificate.c:279
+#: ../gio/gtlscertificate.c:237
msgid "Could not parse PEM-encoded certificate"
msgstr "No se pudo analizar el certificado codificado con PEM"
-#: ../gio/gtlscertificate.c:300
+#: ../gio/gtlscertificate.c:258
msgid "Could not parse PEM-encoded private key"
msgstr "No se pudo analizar la clave privada codificada con PEM"
@@ -3797,8 +3793,7 @@
#~ msgid "No such schema `%s' specified in override file `%s'"
#~ msgstr ""
-#~ "No existe el esquema «%s» especificado en el archivo de sobreescritura "
-#~ "«%s»"
+#~ "No existe el esquema «%s» especificado en el archivo de sobreescritura «%s»"
#~ msgid ""
#~ "Commands:\n"
@@ -3943,8 +3938,8 @@
#~ "characters. Ignores names after the first if multiple names are given."
#~ msgstr ""
#~ "Indica si se debe usar los valores de reserva encontrados al acortar el "
-#~ "nombre en los caracteres «-». Si se proporcionan varios nombres los "
-#~ "ignora después del primero."
+#~ "nombre en los caracteres «-». Si se proporcionan varios nombres los ignora "
+#~ "después del primero."
#~ msgid "File descriptor"
#~ msgstr "Descriptor del archivo"
diff --git a/po/et.po b/po/et.po
index dded40f..7a26e95 100644
--- a/po/et.po
+++ b/po/et.po
@@ -2,11 +2,11 @@
# Estonian translation of GLib.
#
# Copyright (C) 2002, 2005, 2006 Free Software Foundation, Inc.
-# Copyright (C) 2007-2010 The GNOME Project.
+# Copyright (C) 2007–2011 The GNOME Project.
# This file is distributed under the same license as the GLib package.
#
# Allan Sims <allsi eau ee>, 2002.
-# Ivar Smolin <okul linux ee>, 2005-2010.
+# Ivar Smolin <okul linux ee>, 2005–2011.
# Priit Laes <plaes plaes org>, 2005, 2007, 2009
# Mattias Põldaru <mahfiaz gmail com>, 2009.
#
@@ -15,13 +15,14 @@
"Project-Id-Version: glib MASTER\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=glib&component=general\n"
-"POT-Creation-Date: 2010-09-02 19:40+0000\n"
-"PO-Revision-Date: 2010-09-19 14:51+0300\n"
-"Last-Translator: Mattias Põldaru <mahfiaz gmail com>\n"
+"POT-Creation-Date: 2010-12-17 16:41+0000\n"
+"PO-Revision-Date: 2011-01-11 10:37+0200\n"
+"Last-Translator: Ivar Smolin <okul@linux.ee>\n"
"Language-Team: Estonian <gnome-et@linux.ee>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#, c-format
@@ -120,18 +121,22 @@
msgid "Invalid hostname"
msgstr "Vigane hostinimi"
+#. Translators: 'before midday' indicator
msgctxt "GDateTime"
msgid "am"
msgstr "el"
+#. Translators: 'before midday' indicator
msgctxt "GDateTime"
msgid "AM"
msgstr "EL"
+#. Translators: 'after midday' indicator
msgctxt "GDateTime"
msgid "pm"
msgstr "pl"
+#. Translators: 'after midday' indicator
msgctxt "GDateTime"
msgid "PM"
msgstr "PL"
@@ -146,151 +151,155 @@
msgid "%H:%M:%S"
msgstr "%H:%M:%S"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "January"
msgstr "Jaanuar"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "February"
msgstr "Veebruar"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "March"
msgstr "Märts"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "April"
msgstr "Aprill"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "May"
msgstr "Mai"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "June"
msgstr "Juuni"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "July"
msgstr "Juuli"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "August"
msgstr "August"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "September"
msgstr "September"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "October"
msgstr "Oktoober"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "November"
msgstr "November"
-msgctxt "GDateTime"
+msgctxt "full month name"
msgid "December"
msgstr "Detsember"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Jan"
msgstr "Jaan"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Feb"
msgstr "Veebr"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Mar"
msgstr "Märts"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Apr"
msgstr "Apr"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
+msgid "May"
+msgstr "Mai"
+
+msgctxt "abbreviated month name"
msgid "Jun"
msgstr "Juun"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Jul"
msgstr "Juul"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Aug"
msgstr "Aug"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Sep"
msgstr "Sept"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Oct"
msgstr "Okt"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Nov"
msgstr "Nov"
-msgctxt "GDateTime"
+msgctxt "abbreviated month name"
msgid "Dec"
msgstr "Dets"
-msgctxt "GDateTime"
+msgctxt "full weekday name"
msgid "Monday"
msgstr "Esmaspäev"
-msgctxt "GDateTime"
+msgctxt "full weekday name"
msgid "Tuesday"
msgstr "Teisipäev"
-msgctxt "GDateTime"
+msgctxt "full weekday name"
msgid "Wednesday"
msgstr "Kolmapäev"
-msgctxt "GDateTime"
+msgctxt "full weekday name"
msgid "Thursday"
msgstr "Neljapäev"
-msgctxt "GDateTime"
+msgctxt "full weekday name"
msgid "Friday"
msgstr "Reede"
-msgctxt "GDateTime"
+msgctxt "full weekday name"
msgid "Saturday"
msgstr "Laupäev"
-msgctxt "GDateTime"
+msgctxt "full weekday name"
msgid "Sunday"
msgstr "Pühapäev"
-msgctxt "GDateTime"
+msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "E"
-msgctxt "GDateTime"
+msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "T"
-msgctxt "GDateTime"
+msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "K"
-msgctxt "GDateTime"
+msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "N"
-msgctxt "GDateTime"
+msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "R"
-msgctxt "GDateTime"
+msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "L"
-msgctxt "GDateTime"
+msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "P"
@@ -1273,21 +1282,21 @@
msgid "Didn't find cookie with id %d in the keyring at `%s'"
msgstr "Küpsist id-ga %d võtmerõngas kohas '%s' ei leitud"
-#, fuzzy, c-format
+#, c-format
msgid "Error deleting stale lock file `%s': %s"
-msgstr "Viga failist '%s' lugemisel: %s"
+msgstr "Viga iganenud lukufaili '%s' kustutamisel: %s"
-#, fuzzy, c-format
+#, c-format
msgid "Error creating lock file `%s': %s"
-msgstr "Viga likufaili '%s' loomisel: %s"
+msgstr "Viga lukufaili '%s' loomisel: %s"
-#, fuzzy, c-format
+#, c-format
msgid "Error closing (unlinked) lock file `%s': %s"
-msgstr "Viga faili '%s' avamisel: %s"
+msgstr "Viga (kustutatud) lukufaili '%s' sulgemisel: %s"
-#, fuzzy, c-format
+#, c-format
msgid "Error unlinking lock file `%s': %s"
-msgstr "Viga faili '%s' avamisel: %s"
+msgstr "Viga lukufaili '%s' kustutamisel: %s"
#, c-format
msgid "Error opening keyring `%s' for writing: "
@@ -1548,9 +1557,9 @@
msgid "Error: %s\n"
msgstr "Viga: %s\n"
-#, fuzzy, c-format
+#, c-format
msgid "Error parsing introspection XML: %s\n"
-msgstr "Viga võtme parsimisel: %s"
+msgstr ""
msgid "Connect to the system bus"
msgstr ""
@@ -1558,13 +1567,11 @@
msgid "Connect to the session bus"
msgstr ""
-#, fuzzy
msgid "Connect to given D-Bus address"
-msgstr "Ühendumise edenemine"
+msgstr "Ühendumine määratud D-Bus aadressiga"
-#, fuzzy
msgid "Connection Endpoint Options:"
-msgstr "Ühendumise edenemine"
+msgstr ""
msgid "Options specifying the connection endpoint"
msgstr ""
@@ -1841,6 +1848,215 @@
msgid "Unsupported socket address"
msgstr "Toetamata sokliaadress"
+msgid "empty names are not permitted"
+msgstr "tühjad nimed pole lubatud"
+
+#, c-format
+msgid "invalid name '%s': names must begin with a lowercase letter"
+msgstr ""
+
+#, c-format
+msgid ""
+"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
+"and dash ('-') are permitted."
+msgstr ""
+
+#, c-format
+msgid "invalid name '%s': two successive dashes ('--') are not permitted."
+msgstr ""
+
+#, c-format
+msgid "invalid name '%s': the last character may not be a dash ('-')."
+msgstr ""
+
+#, c-format
+msgid "invalid name '%s': maximum length is 32"
+msgstr ""
+
+#, c-format
+msgid "<child name='%s'> already specified"
+msgstr ""
+
+msgid "can not add keys to a 'list-of' schema"
+msgstr ""
+
+#, c-format
+msgid "<key name='%s'> already specified"
+msgstr ""
+
+#, c-format
+msgid ""
+"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
+"to modify value"
+msgstr ""
+
+#, c-format
+msgid ""
+"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
+"to <key>"
+msgstr ""
+
+#, c-format
+msgid "<%s id='%s'> not (yet) defined."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "invalid GVariant type string '%s'"
+msgstr "Vigane rekvisiidi tüüp (oodatakse stringi)"
+
+msgid "<override> given but schema isn't extending anything"
+msgstr ""
+
+#, c-format
+msgid "no <key name='%s'> to override"
+msgstr ""
+
+#, c-format
+msgid "<override name='%s'> already specified"
+msgstr ""
+
+#, c-format
+msgid "<schema id='%s'> already specified"
+msgstr ""
+
+#, c-format
+msgid "<schema id='%s'> extends not yet existing schema '%s'"
+msgstr ""
+
+#, c-format
+msgid "<schema id='%s'> is list of not yet existing schema '%s'"
+msgstr ""
+
+#, c-format
+msgid "Can not be a list of a schema with a path"
+msgstr ""
+
+#, c-format
+msgid "Can not extend a schema with a path"
+msgstr ""
+
+#, c-format
+msgid ""
+"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
+msgstr ""
+
+#, c-format
+msgid ""
+"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but '%s' "
+"does not extend '%s'"
+msgstr ""
+
+#, c-format
+msgid "a path, if given, must begin and end with a slash"
+msgstr ""
+
+#, c-format
+msgid "the path of a list must end with ':/'"
+msgstr ""
+
+#, c-format
+msgid "<%s id='%s'> already specified"
+msgstr ""
+
+#, c-format
+msgid "Element <%s> not allowed inside <%s>"
+msgstr ""
+
+#, c-format
+msgid "Element <%s> not allowed at toplevel"
+msgstr ""
+
+#, c-format
+msgid "text may not appear inside <%s>"
+msgstr ""
+
+#. Translators: Do not translate "--strict".
+#, c-format
+msgid "--strict was specified; exiting.\n"
+msgstr ""
+
+#, c-format
+msgid "This entire file has been ignored.\n"
+msgstr ""
+
+#, c-format
+msgid "Ignoring this file.\n"
+msgstr ""
+
+#, c-format
+msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
+msgstr ""
+
+#, c-format
+msgid "; ignoring override for this key.\n"
+msgstr ""
+
+#, c-format
+msgid " and --strict was specified; exiting.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"error parsing key `%s' in schema `%s' as specified in override file `%s': "
+"%s. "
+msgstr ""
+
+#, c-format
+msgid "Ignoring override for this key.\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"override for key `%s' in schema `%s' in override file `%s' is out of the "
+"range given in the schema"
+msgstr ""
+
+#, c-format
+msgid ""
+"override for key `%s' in schema `%s' in override file `%s' is not in the "
+"list of valid choices"
+msgstr ""
+
+msgid "where to store the gschemas.compiled file"
+msgstr ""
+
+msgid "DIRECTORY"
+msgstr ""
+
+msgid "Abort on any errors in schemas"
+msgstr ""
+
+msgid "Do not write the gschema.compiled file"
+msgstr ""
+
+msgid "This option will be removed soon."
+msgstr ""
+
+msgid "Do not enforce key name restrictions"
+msgstr ""
+
+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 ""
+
+#, c-format
+msgid "You should give exactly one directory name\n"
+msgstr ""
+
+#, c-format
+msgid "No schema files found: "
+msgstr ""
+
+#, c-format
+msgid "doing nothing.\n"
+msgstr ""
+
+#, c-format
+msgid "removed existing output file.\n"
+msgstr ""
+
msgid "Unable to find default local directory monitor type"
msgstr "Vaikimisi kohaliku kataloogimonitori liiki pole võimalik leida"
@@ -2155,236 +2371,149 @@
msgid "Error resolving '%s'"
msgstr "Viga '%s' lahendamisel"
-#, fuzzy
-msgid "empty names are not permitted"
-msgstr "Abstraktne nimeruum pole toetatud"
-
#, c-format
-msgid "invalid name '%s': names must begin with a lowercase letter"
-msgstr ""
-
-#, c-format
-msgid ""
-"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
-"and dash ('-') are permitted."
-msgstr ""
-
-#, c-format
-msgid "invalid name '%s': two successive dashes ('--') are not permitted."
-msgstr ""
-
-#, c-format
-msgid "invalid name '%s': the last character may not be a dash ('-')."
-msgstr ""
-
-#, c-format
-msgid "invalid name '%s': maximum length is 32"
-msgstr ""
-
-#, c-format
-msgid "<child name='%s'> already specified"
-msgstr ""
-
-msgid "can not add keys to a 'list-of' schema"
-msgstr ""
-
-#, c-format
-msgid "<key name='%s'> already specified"
-msgstr ""
-
-#, c-format
-msgid ""
-"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
-"to modify value"
-msgstr ""
-
-#, c-format
-msgid ""
-"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
-"to <key>"
-msgstr ""
-
-#, c-format
-msgid "<%s id='%s'> not (yet) defined."
+msgid "Schema '%s' is not relocatable (path must not be specified)\n"
msgstr ""
#, fuzzy, c-format
-msgid "invalid GVariant type string '%s'"
-msgstr "Vigane rekvisiidi tüüp (oodatakse stringi)"
+msgid "No such schema '%s'\n"
+msgstr "Liidest '%s' pole"
-msgid "<override> given but schema isn't extending anything"
+#, c-format
+msgid "Schema '%s' is relocatable (path must be specified)\n"
msgstr ""
#, c-format
-msgid "no <key name='%s'> to override"
+msgid "Empty path given.\n"
msgstr ""
#, c-format
-msgid "<override name='%s'> already specified"
+msgid "Path must begin with a slash (/)\n"
msgstr ""
#, c-format
-msgid "<schema id='%s'> already specified"
+msgid "Path must end with a slash (/)\n"
msgstr ""
#, c-format
-msgid "<schema id='%s'> extends not yet existing schema '%s'"
+msgid "Path must not contain two adjacent slashes (//)\n"
msgstr ""
+#, fuzzy, c-format
+msgid "No such key '%s'\n"
+msgstr "Omadust '%s' pole"
+
#, c-format
-msgid "<schema id='%s'> is list of not yet existing schema '%s'"
+msgid "The provided value is outside of the valid range\n"
+msgstr ""
+
+msgid "List the installed (non-relocatable) schemas"
+msgstr ""
+
+msgid "List the installed relocatable schemas"
+msgstr ""
+
+msgid "Lists the keys in SCHEMA"
+msgstr ""
+
+msgid "SCHEMA[:PATH]"
+msgstr ""
+
+msgid "Lists the children of SCHEMA"
+msgstr ""
+
+msgid "List keys and values, recursively"
+msgstr ""
+
+msgid "Gets the value of KEY"
+msgstr ""
+
+msgid "SCHEMA[:PATH] KEY"
+msgstr ""
+
+msgid "Queries the range of valid values for KEY"
+msgstr ""
+
+msgid "Sets the value of KEY to VALUE"
+msgstr ""
+
+msgid "SCHEMA[:PATH] KEY VALUE"
+msgstr ""
+
+msgid "Resets KEY to its default value"
+msgstr ""
+
+msgid "Checks if KEY is writable"
+msgstr ""
+
+msgid ""
+"Monitors KEY for changes.\n"
+"If no KEY is specified, monitor all keys in SCHEMA.\n"
+"Use ^C to stop monitoring.\n"
+msgstr ""
+
+msgid "SCHEMA[:PATH] [KEY]"
msgstr ""
#, c-format
msgid ""
-"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
-msgstr ""
-
-#, c-format
-msgid ""
-"<schema id='%s' list-of='%s'> extends <schema id='%s' list-of='%s'> but '%s' "
-"does not extend '%s'"
-msgstr ""
-
-#, c-format
-msgid "a path, if given, must begin and end with a slash"
-msgstr ""
-
-#, c-format
-msgid "<%s id='%s'> already specified"
-msgstr ""
-
-#, c-format
-msgid "Element <%s> not allowed inside <%s>"
-msgstr ""
-
-#, c-format
-msgid "Element <%s> not allowed at toplevel"
-msgstr ""
-
-#, c-format
-msgid "text may not appear inside <%s>"
-msgstr ""
-
-#, c-format
-msgid "No such schema `%s' specified in override file `%s'"
-msgstr ""
-
-#, c-format
-msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
-msgstr ""
-
-#, c-format
-msgid ""
-"override for key `%s' in schema `%s' in override file `%s' is out of the "
-"range given in the schema"
-msgstr ""
-
-#, c-format
-msgid ""
-"override for key `%s' in schema `%s' in override file `%s' is not in the "
-"list of valid choices"
-msgstr ""
-
-msgid "where to store the gschemas.compiled file"
-msgstr ""
-
-msgid "DIRECTORY"
-msgstr ""
-
-msgid "Do not write the gschema.compiled file"
-msgstr ""
-
-msgid "This option will be removed soon."
-msgstr ""
-
-msgid "Do not enforce key name restrictions"
-msgstr ""
-
-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 ""
-
-#, c-format
-msgid "You should give exactly one directory name\n"
-msgstr ""
-
-#, c-format
-msgid "No schema files found: "
-msgstr ""
-
-#, c-format
-msgid "doing nothing.\n"
-msgstr ""
-
-#, c-format
-msgid "removed existing output file.\n"
-msgstr ""
-
-#, c-format
-msgid ""
-"Commands:\n"
-" help Show this information\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"
-" monitor Monitor a key for changes\n"
-" writable Check if a key is writable\n"
+"Unknown command %s\n"
"\n"
-"Use '%s COMMAND --help' to get help for individual commands.\n"
msgstr ""
-
-msgid "Specify the path for the schema"
-msgstr ""
-
-msgid "PATH"
-msgstr ""
-
-msgid "SCHEMA KEY"
-msgstr ""
-
-msgid "Get the value of KEY"
-msgstr ""
+"Tundmatu käsk '%s'\n"
+"\n"
msgid ""
-"Arguments:\n"
-" SCHEMA The id of the schema\n"
-" KEY The name of the key\n"
-msgstr ""
-
-msgid "SCHEMA KEY VALUE"
-msgstr ""
-
-msgid "Set the value of KEY"
-msgstr ""
-
-msgid ""
-"Arguments:\n"
-" SCHEMA The id of the schema\n"
-" KEY The name of the key\n"
-" VALUE The value to set key to, as a serialized GVariant\n"
+"Usage:\n"
+" gsettings COMMAND [ARGS...]\n"
+"\n"
+"Commands:\n"
+" help Show this information\n"
+" list-schemas List installed schemas\n"
+" list-relocatable-schemas List relocatable schemas\n"
+" list-keys List keys in a schema\n"
+" list-children List children of a schema\n"
+" list-recursively List keys and values, recursively\n"
+" range Queries the range of a key\n"
+" get Get the value of a key\n"
+" set Set the value of a key\n"
+" reset Reset the value of a key\n"
+" writable Check if a key is writable\n"
+" monitor Watch for changes\n"
+"\n"
+"Use 'gsettings help COMMAND' to get detailed help.\n"
+"\n"
msgstr ""
#, c-format
-msgid "Key %s is not writable\n"
-msgstr "Võti %s pole kirjutatav\n"
-
-msgid "Sets KEY to its default value"
+msgid ""
+"Usage:\n"
+" gsettings %s %s\n"
+"\n"
+"%s\n"
+"\n"
msgstr ""
-msgid "Find out whether KEY is writable"
+msgid "Arguments:\n"
msgstr ""
msgid ""
-"Monitor KEY for changes and print the changed values.\n"
-"Monitoring will continue until the process is terminated."
+" SCHEMA The name of the schema\n"
+" PATH The path, for relocatable schemas\n"
+msgstr ""
+
+msgid " KEY The (optional) key within the schema\n"
+msgstr ""
+
+msgid " KEY The key within the schema\n"
+msgstr ""
+
+msgid " VALUE The value to set\n"
msgstr ""
#, c-format
-msgid "Unknown command '%s'\n"
-msgstr "Tundmatu käsk '%s'\n"
+msgid "Empty schema name given"
+msgstr ""
msgid "Invalid socket, not initialized"
msgstr "Vigane sokkel, käivitamata"
@@ -2476,9 +2605,9 @@
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr ""
-#, fuzzy, c-format
+#, c-format
msgid "Proxy protocol '%s' is not supported."
-msgstr "Omadus `%s' pole loetav"
+msgstr "Proksi protokoll `%s' pole toetatud."
msgid "Listener is already closed"
msgstr "Kuulaja on juba suletud"
@@ -2488,31 +2617,32 @@
#, c-format
msgid "SOCKSv4 does not support IPv6 address '%s'"
-msgstr ""
+msgstr "SOCKSv4 ei toeta IPv6-aadressi '%s'"
#, c-format
msgid "SOCKSv4 implementation limits username to %i characters"
-msgstr ""
+msgstr "SOCKSv4 implementatsioon piirab kasutajanime pikkuse %i märgiga"
#, c-format
msgid "SOCKSv4a implementation limits hostname to %i characters"
-msgstr ""
+msgstr "SOCKSv4 implementatsioon piirab hostinime pikkuse %i märgiga"
msgid "The server is not a SOCKSv4 proxy server."
-msgstr ""
+msgstr "Server ei ole SOCKSv4 proksiserver."
msgid "Connection through SOCKSv4 server was rejected"
-msgstr ""
+msgstr "Ühendus läbi SOCKSv4-serveri lükati tagasi"
msgid "The server is not a SOCKSv5 proxy server."
-msgstr ""
+msgstr "Server ei ole SOCKSv5 proksiserver."
msgid "The SOCKSv5 proxy requires authentication."
-msgstr ""
+msgstr "SOCKSv5 proksi nõuab autentimist."
msgid ""
-"The SOCKSv5 proxy requires an authentication method that is not supported by GLib."
-msgstr ""
+"The SOCKSv5 proxy requires an authentication method that is not supported by "
+"GLib."
+msgstr "SOCKSv5 proksi nõuab GLibi poolt toetamata autentimismeetodit."
#, c-format
msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)."
@@ -2549,13 +2679,22 @@
msgid "SOCKSv5 proxy does not support provided address type."
msgstr ""
-msgid "Unkown SOCKSv5 proxy error."
-msgstr ""
+msgid "Unknown SOCKSv5 proxy error."
+msgstr "SOCKSv5 proksi tundmatu viga."
#, c-format
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "GThemedIcon kodeeringu versiooni %d pole võimalik käsitseda"
+msgid "No PEM-encoded certificate found"
+msgstr "PEM-kodeeritud sertifikaati ei leitud"
+
+msgid "Could not parse PEM-encoded certificate"
+msgstr "PEM-kodeeritud sertifikaati pole võimalik analüüsida"
+
+msgid "Could not parse PEM-encoded private key"
+msgstr "PEM-kodeeritud privaatvõtit pole võimalik analüüsida"
+
#, c-format
msgid "Expecting 1 control message, got %d"
msgstr "Eeldati ühte kontrollsõnumit, aga saadi %d"
@@ -2570,9 +2709,8 @@
msgid "Received invalid fd"
msgstr "Saadi vigane fd"
-#, fuzzy
msgid "Error sending credentials: "
-msgstr "Viga andmete saatmisel: %s"
+msgstr "Viga tõendite saatmisel: "
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
@@ -2584,9 +2722,9 @@
"socket. Expected %d bytes, got %d"
msgstr ""
-#, fuzzy, c-format
+#, c-format
msgid "Error enabling SO_PASSCRED: %s"
-msgstr "Viga faili nime muutmisel: %s"
+msgstr "Viga SO_PASSCRED lubamisel: %s"
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
@@ -2594,7 +2732,7 @@
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
-msgstr ""
+msgstr "Viga SO_PASSCRED keelamisel: %s"
#, c-format
msgid "Error reading from unix: %s"
@@ -2664,7 +2802,3 @@
msgid "Invalid compressed data"
msgstr "Vigaselt pakitud andmed"
-
-#, fuzzy
-#~ msgid "Do not give error for empty directory"
-#~ msgstr "Kataloogi pole võimalik kataloogi peale liigutada"
diff --git a/po/gl.po b/po/gl.po
index 09b0d11..e068ab9 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -11,14 +11,14 @@
# Suso Baleato <suso.baleato@xunta.es>,2009.
# Antón Méixome <meixome@mancomun.org>, 2009.
# Fran Dieguez <frandieguez@ubuntu.com>, 2010.
-# Fran Diéguez <frandieguez@ubuntu.com>, 2009, 2010.
+# Fran Diéguez <frandieguez@ubuntu.com>, 2009, 2010, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: glib.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-11-29 17:34+0100\n"
-"PO-Revision-Date: 2010-11-29 17:35+0100\n"
+"POT-Creation-Date: 2011-01-09 16:35+0100\n"
+"PO-Revision-Date: 2011-01-09 16:35+0100\n"
"Last-Translator: Fran Diéguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <gnome-gl-list@gnome.org>\n"
"Language: gl\n"
@@ -113,13 +113,13 @@
msgstr "Non foi posíbel abrir o conversor de «%s» a «%s»"
#: ../glib/gconvert.c:768 ../glib/gconvert.c:1161 ../glib/giochannel.c:1575
-#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2461 ../glib/gutf8.c:992
+#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2460 ../glib/gutf8.c:992
#: ../glib/gutf8.c:1447 ../gio/gcharsetconverter.c:345
msgid "Invalid byte sequence in conversion input"
msgstr "A secuencia de bytes non é válida na entrada da conversión"
#: ../glib/gconvert.c:776 ../glib/gconvert.c:1086 ../glib/giochannel.c:1582
-#: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350
+#: ../glib/giochannel.c:2472 ../gio/gcharsetconverter.c:350
#, c-format
msgid "Error during conversion: %s"
msgstr "Erro durante a conversión: %s"
@@ -401,141 +401,141 @@
msgid "Error opening directory '%s': %s"
msgstr "Produciuse un erro ao abrir o directorio «%s»: %s"
-#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
msgstr "Non foi posíbel asignar %lu bytes para ler o ficheiro «%s»"
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "Produciuse un erro ao ler o ficheiro «%s»: %s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
msgstr "O ficheiro «%s» é demasiado grande"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
msgstr "Produciuse un fallo ao ler desde o ficheiro «%s»: %s"
-#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "Produciuse un fallo ao abrir o ficheiro «%s»: %s"
-#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
+#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgstr ""
"Produciuse un fallo ao obter os atributos do ficheiro «%s»: fstat() fallou: "
"%s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
msgstr "Produciuse un fallo ao abrir o ficheiro «%s»: fdopen() fallou: %s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
msgstr ""
"Produciuse un fallo ao renomear o ficheiro «%s» como «%s»: g_rename() "
"fallou: %s"
-#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
msgstr "Produciuse un fallo ao crear o ficheiro «%s»: %s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr ""
"Produciuse un fallo ao abrir o ficheiro «%s» para escritura: fdopen() "
"fallou: %s"
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
msgstr "Produciuse un fallo ao escribir o ficheiro «%s»: fwrite() fallou: %s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "Produciuse un fallo ao escribir o ficheiro «%s»: fflush() fallou: %s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "Produciuse un fallo ao escribir o ficheiro «%s»: fsync() fallou: %s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
msgstr "Produciuse un fallo ao pechar o ficheiro «%s»: fclose() fallou: %s"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr ""
"Non foi posíbel eliminar o ficheiro existente «%s»: g_unlink() fallou: %s"
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr "O modelo «%s» non é válido, non debería conter «%s»"
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "O modelo «%s» non contén XXXXXX"
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u byte"
msgstr[1] "%u bytes"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "Produciuse un fallo ao ler a ligazón simbólica «%s»: %s"
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr "As ligazóns simbólicas non se admiten"
@@ -549,8 +549,8 @@
msgstr ""
"Non é posíbel facer unha lectura en bruto en g_io_channel_read_line_string"
-#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2057
-#: ../glib/giochannel.c:2144
+#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2056
+#: ../glib/giochannel.c:2143
msgid "Leftover unconverted data in read buffer"
msgstr "Datos restantes non convertidos no búfer de lectura"
@@ -805,7 +805,7 @@
msgid "the pattern contains items not supported for partial matching"
msgstr "o patrón contén elementos non permitidos na coincidencia parcial"
-#: ../glib/gregex.c:211 ../gio/glocalfile.c:2109
+#: ../glib/gregex.c:211 ../gio/glocalfile.c:2111
msgid "internal error"
msgstr "erro interno"
@@ -1298,21 +1298,21 @@
msgid "Unknown option %s"
msgstr "Opción %s descoñecida"
-#: ../glib/gkeyfile.c:362
+#: ../glib/gkeyfile.c:363
msgid "Valid key file could not be found in search dirs"
msgstr ""
"Non é posíbel encontrar unha chave de ficheiro válida nos directorios de "
"busca"
-#: ../glib/gkeyfile.c:397
+#: ../glib/gkeyfile.c:398
msgid "Not a regular file"
msgstr "Non é un ficheiro normal"
-#: ../glib/gkeyfile.c:405
+#: ../glib/gkeyfile.c:406
msgid "File is empty"
msgstr "O ficheiro está baleiro"
-#: ../glib/gkeyfile.c:764
+#: ../glib/gkeyfile.c:765
#, c-format
msgid ""
"Key file contains line '%s' which is not a key-value pair, group, or comment"
@@ -1320,50 +1320,50 @@
"O ficheiro chave contén a liña «%s» que non é un par valor-chave, grupo ou "
"comentario"
-#: ../glib/gkeyfile.c:824
+#: ../glib/gkeyfile.c:825
#, c-format
msgid "Invalid group name: %s"
msgstr "Nome de grupo non válido: %s"
-#: ../glib/gkeyfile.c:846
+#: ../glib/gkeyfile.c:847
msgid "Key file does not start with a group"
msgstr "O ficheiro chave non comeza cun grupo"
-#: ../glib/gkeyfile.c:872
+#: ../glib/gkeyfile.c:873
#, c-format
msgid "Invalid key name: %s"
msgstr "Nome de chave non válido: %s"
-#: ../glib/gkeyfile.c:899
+#: ../glib/gkeyfile.c:900
#, c-format
msgid "Key file contains unsupported encoding '%s'"
msgstr "O ficheiro chave contén unha codificación non permitida «%s»"
-#: ../glib/gkeyfile.c:1115 ../glib/gkeyfile.c:1277 ../glib/gkeyfile.c:2656
-#: ../glib/gkeyfile.c:2722 ../glib/gkeyfile.c:2857 ../glib/gkeyfile.c:2990
-#: ../glib/gkeyfile.c:3143 ../glib/gkeyfile.c:3330 ../glib/gkeyfile.c:3391
+#: ../glib/gkeyfile.c:1116 ../glib/gkeyfile.c:1278 ../glib/gkeyfile.c:2646
+#: ../glib/gkeyfile.c:2712 ../glib/gkeyfile.c:2847 ../glib/gkeyfile.c:2980
+#: ../glib/gkeyfile.c:3133 ../glib/gkeyfile.c:3320 ../glib/gkeyfile.c:3381
#, c-format
msgid "Key file does not have group '%s'"
msgstr "O ficheiro chave non ten un grupo «%s»"
-#: ../glib/gkeyfile.c:1289
+#: ../glib/gkeyfile.c:1290
#, c-format
msgid "Key file does not have key '%s'"
msgstr "O ficheiro chave non ten a chave «%s»"
-#: ../glib/gkeyfile.c:1396 ../glib/gkeyfile.c:1511
+#: ../glib/gkeyfile.c:1397 ../glib/gkeyfile.c:1512
#, c-format
msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
msgstr "O ficheiro chave contén a chave «%s» co valor «%s» que non é UTF-8"
-#: ../glib/gkeyfile.c:1416 ../glib/gkeyfile.c:1910
+#: ../glib/gkeyfile.c:1417 ../glib/gkeyfile.c:1900
#, c-format
msgid "Key file contains key '%s' which has value that cannot be interpreted."
msgstr ""
"O ficheiro chave contén a chave «%s» que ten un valor que non pode ser "
"interpretado."
-#: ../glib/gkeyfile.c:1531
+#: ../glib/gkeyfile.c:1532
#, c-format
msgid ""
"Key file contains key '%s' which has a value that cannot be interpreted."
@@ -1371,7 +1371,7 @@
"O ficheiro chave contén a chave «%s» que ten un valor que non pode ser "
"interpretado."
-#: ../glib/gkeyfile.c:2125 ../glib/gkeyfile.c:2487
+#: ../glib/gkeyfile.c:2115 ../glib/gkeyfile.c:2477
#, c-format
msgid ""
"Key file contains key '%s' in group '%s' which has value that cannot be "
@@ -1380,36 +1380,36 @@
"O ficheiro chave contén a chave «%s» no grupo «%s» que ten un valor que non "
"pode ser interpretado."
-#: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402
+#: ../glib/gkeyfile.c:2661 ../glib/gkeyfile.c:2862 ../glib/gkeyfile.c:3392
#, c-format
msgid "Key file does not have key '%s' in group '%s'"
msgstr "O ficheiro chave non ten a chave «%s» no grupo «%s»"
-#: ../glib/gkeyfile.c:3636
+#: ../glib/gkeyfile.c:3626
msgid "Key file contains escape character at end of line"
msgstr "O ficheiro chave contén un carácter de escape ao final da liña"
-#: ../glib/gkeyfile.c:3658
+#: ../glib/gkeyfile.c:3648
#, c-format
msgid "Key file contains invalid escape sequence '%s'"
msgstr "O ficheiro chave contén a secuencia de escape non válida «%s»"
-#: ../glib/gkeyfile.c:3800
+#: ../glib/gkeyfile.c:3790
#, c-format
msgid "Value '%s' cannot be interpreted as a number."
msgstr "Non é posíbel interpretar o valor «%s» como un número."
-#: ../glib/gkeyfile.c:3814
+#: ../glib/gkeyfile.c:3804
#, c-format
msgid "Integer value '%s' out of range"
msgstr "O valor enteiro «%s» está fóra do intervalo"
-#: ../glib/gkeyfile.c:3847
+#: ../glib/gkeyfile.c:3837
#, c-format
msgid "Value '%s' cannot be interpreted as a float number."
msgstr "Non é posíbel interpretar o valor «%s» como un número flotante."
-#: ../glib/gkeyfile.c:3871
+#: ../glib/gkeyfile.c:3861
#, c-format
msgid "Value '%s' cannot be interpreted as a boolean."
msgstr "Non é posíbel interpretar o valor «%s» como un booleano."
@@ -1422,15 +1422,15 @@
msgid "Too large count value passed to %s"
msgstr "O valor de conta pasado a %s é demasiado longo"
-#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888
+#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:888
#: ../gio/giostream.c:306 ../gio/goutputstream.c:1197
msgid "Stream is already closed"
msgstr "O fluxo xa se pechou"
-#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1636
-#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911
-#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811
-#: ../gio/gsimpleasyncresult.c:837
+#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2104 ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "A operación foi cancelada"
@@ -1619,7 +1619,7 @@
"Non é posíbel determinar o enderezo do bus de sesión (non está implementado "
"para este SO)"
-#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167
+#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -1628,7 +1628,7 @@
"Non é posíbel determinar o enderezo do bus desde a variábel de contorno "
"DBUS_STARTER_BUS_TYPE - valor descoñecido «%s»"
-#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176
+#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -1741,22 +1741,22 @@
msgstr "(Ademais, a liberación do bloqueo para «%s» tamén fallou: %s) "
#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374
-#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736
+#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr "O socket engadido está pechado"
-#: ../gio/gdbusconnection.c:1680
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr "Tempo de espera máximo alcanzado"
-#: ../gio/gdbusconnection.c:2299
+#: ../gio/gdbusconnection.c:2300
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Encontraronse bandeiras non compatíbeis ao construír a conexión da parte "
"cliente"
-#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069
+#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070
#, c-format
msgid ""
"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
@@ -1764,68 +1764,68 @@
"Non existe a interface «org.freedesktop.DBus.Properties» no obxecto co "
"camiño %s"
-#: ../gio/gdbusconnection.c:3823
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
msgstr ""
"Produciuse un erro ao estabelecer a propiedade «%s»: Esperábase o tipo «%s» "
"pero obtívose «%s»"
-#: ../gio/gdbusconnection.c:3918
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
msgstr "Non existe a propiedade «%s»"
-#: ../gio/gdbusconnection.c:3930
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr "Non é posíbel escribir a chave %s"
-#: ../gio/gdbusconnection.c:3941
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr "Non é posíbel escribir a chave %s"
-#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601
+#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
msgstr "Non existe a interface «%s»"
-#: ../gio/gdbusconnection.c:4199
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
msgstr "Non existe a interface"
-#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117
+#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
msgstr "Non existe a interface «%s» no obxecto co camiño %s"
-#: ../gio/gdbusconnection.c:4467
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr "Non existe o método «%s»"
-#: ../gio/gdbusconnection.c:4498
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr "O tipo da mensaxe, «%s», non coincide co tipo «%s» esperado"
-#: ../gio/gdbusconnection.c:4717
+#: ../gio/gdbusconnection.c:4718
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Xa hai un obxecto exportado para a interface %s en %s"
-#: ../gio/gdbusconnection.c:4911
+#: ../gio/gdbusconnection.c:4912
#, c-format
msgid "Method `%s' returned type `%s', but expected `%s'"
msgstr "O método «%s» devolveu un tipo «%s» máis esperábase «%s»"
-#: ../gio/gdbusconnection.c:5712
+#: ../gio/gdbusconnection.c:5713
#, c-format
msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
msgstr "O método «%s» na interface «%s» coa sinatura «%s» non existe"
-#: ../gio/gdbusconnection.c:5830
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Xa se exportou un subárbore para %s"
@@ -2012,13 +2012,13 @@
msgstr ""
"O tipo do valor de retorno é incorrecto, obtívose «%s» e esperábase «%s»"
-#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023
-#: ../gio/gsocket.c:3104
+#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3027
+#: ../gio/gsocket.c:3108
#, c-format
msgid "Error sending message: %s"
msgstr "Produciuse un erro ao enviar a mensaxe: %s"
-#: ../gio/gdbusprivate.c:1756
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr "Non é posíbel ler /var/lib/dbus/machine-id: "
@@ -2237,36 +2237,36 @@
msgid "Monitor a remote object."
msgstr "Monitoriza un obxecto remoto."
-#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221
+#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "Sen nome"
-#: ../gio/gdesktopappinfo.c:755
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr "O ficheiro de escritorio non especificou o campo Exec"
-#: ../gio/gdesktopappinfo.c:948
+#: ../gio/gdesktopappinfo.c:1031
msgid "Unable to find terminal required for application"
msgstr "Non é posíbel encontrar o terminal requirido polo aplicativo"
-#: ../gio/gdesktopappinfo.c:1157
+#: ../gio/gdesktopappinfo.c:1323
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr ""
"Non é posíbel crear o cartafol de configuración do aplicativo de usuario %s: "
"%s"
-#: ../gio/gdesktopappinfo.c:1161
+#: ../gio/gdesktopappinfo.c:1327
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "Non é posíbel crear o cartafol de configuración MIME %s do usuario: %s"
-#: ../gio/gdesktopappinfo.c:1569
+#: ../gio/gdesktopappinfo.c:1820
#, c-format
msgid "Can't create user desktop file %s"
msgstr "Non é posíbel crear o ficheiro de escritorio %s do usuario"
-#: ../gio/gdesktopappinfo.c:1683
+#: ../gio/gdesktopappinfo.c:1936
#, c-format
msgid "Custom definition for %s"
msgstr "Definición personalizada para %s"
@@ -2278,19 +2278,19 @@
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gdrive.c:443
+#: ../gio/gdrive.c:444
msgid "drive doesn't implement eject or eject_with_operation"
msgstr "a unidade non implementa a expulsión ou operación_de_expulsión"
-#: ../gio/gdrive.c:520
+#: ../gio/gdrive.c:521
msgid "drive doesn't implement polling for media"
msgstr "a unidade non implementa a consulta para medios"
-#: ../gio/gdrive.c:725
+#: ../gio/gdrive.c:728
msgid "drive doesn't implement start"
msgstr "a unidade non implementa o inicio"
-#: ../gio/gdrive.c:827
+#: ../gio/gdrive.c:831
msgid "drive doesn't implement stop"
msgstr "a unidade non implementa a detención"
@@ -2305,31 +2305,31 @@
msgstr ""
"Número formado incorrectamente de tokens (%d) na codificación de GEmblem"
-#: ../gio/gemblemedicon.c:293
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "Non é posíbel manipular a versión %d da codificación de GEmblemedicon"
-#: ../gio/gemblemedicon.c:303
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr ""
"Número formado incorrectamente de tokens (%d) na codificación de "
"GEmblemedicon"
-#: ../gio/gemblemedicon.c:326
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Esperábase un GEmblem para o GEmblemedIcon"
-#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237
-#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585
-#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783
-#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361
-#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861
-#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438
-#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717
-#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370
-#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120
+#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "Operación non permitida"
@@ -2342,58 +2342,58 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
-#: ../gio/glocalfile.c:1083
+#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1061 ../gio/glocalfile.c:1072
+#: ../gio/glocalfile.c:1085
msgid "Containing mount does not exist"
msgstr "O punto de montaxe contido non existe"
-#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258
+#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2260
msgid "Can't copy over directory"
msgstr "Non é posíbel copiar sobre o directorio"
-#: ../gio/gfile.c:2472
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "Non é posíbel copiar un directorio sobre o directorio"
-#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267
+#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2269
msgid "Target file exists"
msgstr "O ficheiro de destino xa existe"
-#: ../gio/gfile.c:2498
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "Non é posíbel copiar o directorio recursivamente"
-#: ../gio/gfile.c:2758
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "Non se admite a unión"
-#: ../gio/gfile.c:2762
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "Produciuse un erro ao empalmar o ficheiro: %s"
-#: ../gio/gfile.c:2909
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "Non é posíbel copiar o ficheiro especial"
-#: ../gio/gfile.c:3483
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "O valor da ligazón simbólica dada non é válido"
-#: ../gio/gfile.c:3577
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "Non se asiste o Lixo"
-#: ../gio/gfile.c:3626
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "Os nomes de ficheiro non poden conter '%c'"
-#: ../gio/gfile.c:6003 ../gio/gvolume.c:332
+#: ../gio/gfile.c:6004 ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "o volume non implementa o montado"
-#: ../gio/gfile.c:6114
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "Non hai ningún aplicativo rexistrado para manexar este ficheiro"
@@ -2790,110 +2790,110 @@
msgid "Invalid filename %s"
msgstr "O nome do ficheiro non é válido %s"
-#: ../gio/glocalfile.c:967
+#: ../gio/glocalfile.c:969
#, c-format
msgid "Error getting filesystem info: %s"
msgstr "Produciuse un erro ao obter a información do sistema de ficheiros: %s"
-#: ../gio/glocalfile.c:1105
+#: ../gio/glocalfile.c:1107
msgid "Can't rename root directory"
msgstr "Non é posíbel renomear o directorio raíz"
-#: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151
+#: ../gio/glocalfile.c:1127 ../gio/glocalfile.c:1153
#, c-format
msgid "Error renaming file: %s"
msgstr "Produciuse un erro ao renomear o ficheiro: %s"
-#: ../gio/glocalfile.c:1134
+#: ../gio/glocalfile.c:1136
msgid "Can't rename file, filename already exist"
msgstr "Non é posíbel renomear o ficheiro; o ficheiro xa existe"
-#: ../gio/glocalfile.c:1147 ../gio/glocalfile.c:2131 ../gio/glocalfile.c:2160
-#: ../gio/glocalfile.c:2320 ../gio/glocalfileoutputstream.c:571
+#: ../gio/glocalfile.c:1149 ../gio/glocalfile.c:2133 ../gio/glocalfile.c:2162
+#: ../gio/glocalfile.c:2322 ../gio/glocalfileoutputstream.c:571
#: ../gio/glocalfileoutputstream.c:624 ../gio/glocalfileoutputstream.c:669
#: ../gio/glocalfileoutputstream.c:1151
msgid "Invalid filename"
msgstr "O nome do ficheiro non é válido"
-#: ../gio/glocalfile.c:1308
+#: ../gio/glocalfile.c:1310
#, c-format
msgid "Error opening file: %s"
msgstr "Produciuse un erro ao abrir o ficheiro: %s"
-#: ../gio/glocalfile.c:1318
+#: ../gio/glocalfile.c:1320
msgid "Can't open directory"
msgstr "Non é posíbel abrir o directorio"
-#: ../gio/glocalfile.c:1443
+#: ../gio/glocalfile.c:1445
#, c-format
msgid "Error removing file: %s"
msgstr "Produciuse un erro ao eliminar o ficheiro: %s"
-#: ../gio/glocalfile.c:1810
+#: ../gio/glocalfile.c:1812
#, c-format
msgid "Error trashing file: %s"
msgstr "Produciuse un erro ao mover ao lixo o ficheiro: %s"
-#: ../gio/glocalfile.c:1833
+#: ../gio/glocalfile.c:1835
#, c-format
msgid "Unable to create trash dir %s: %s"
msgstr "Non é posíbel crear o directorio do lixo %s: %s"
-#: ../gio/glocalfile.c:1854
+#: ../gio/glocalfile.c:1856
msgid "Unable to find toplevel directory for trash"
msgstr "Non é posíbel encontrar o directorio de nivel superior para o lixo"
-#: ../gio/glocalfile.c:1933 ../gio/glocalfile.c:1953
+#: ../gio/glocalfile.c:1935 ../gio/glocalfile.c:1955
msgid "Unable to find or create trash directory"
msgstr "Non é posíbel encontrar ou crear o directorio do lixo"
-#: ../gio/glocalfile.c:1987
+#: ../gio/glocalfile.c:1989
#, c-format
msgid "Unable to create trashing info file: %s"
msgstr "Non é posíbel crear a información de lixo para o ficheiro: %s"
-#: ../gio/glocalfile.c:2016 ../gio/glocalfile.c:2021 ../gio/glocalfile.c:2101
-#: ../gio/glocalfile.c:2108
+#: ../gio/glocalfile.c:2018 ../gio/glocalfile.c:2023 ../gio/glocalfile.c:2103
+#: ../gio/glocalfile.c:2110
#, c-format
msgid "Unable to trash file: %s"
msgstr "Non é posíbel mover ao lixo o ficheiro: %s"
-#: ../gio/glocalfile.c:2135
+#: ../gio/glocalfile.c:2137
#, c-format
msgid "Error creating directory: %s"
msgstr "Produciuse un erro ao crear o directorio: %s"
-#: ../gio/glocalfile.c:2164
+#: ../gio/glocalfile.c:2166
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "O sistema de ficheiros non é compatíbel coas ligazóns simbólicas"
-#: ../gio/glocalfile.c:2168
+#: ../gio/glocalfile.c:2170
#, c-format
msgid "Error making symbolic link: %s"
msgstr "Produciuse un erro ao crear a ligazón simbolica: %s"
-#: ../gio/glocalfile.c:2230 ../gio/glocalfile.c:2324
+#: ../gio/glocalfile.c:2232 ../gio/glocalfile.c:2326
#, c-format
msgid "Error moving file: %s"
msgstr "Produciuse un erro ao mover o ficheiro: %s"
-#: ../gio/glocalfile.c:2253
+#: ../gio/glocalfile.c:2255
msgid "Can't move directory over directory"
msgstr "Non é posíbel mover o directorio sobre un directorio"
-#: ../gio/glocalfile.c:2280 ../gio/glocalfileoutputstream.c:949
+#: ../gio/glocalfile.c:2282 ../gio/glocalfileoutputstream.c:949
#: ../gio/glocalfileoutputstream.c:963 ../gio/glocalfileoutputstream.c:978
#: ../gio/glocalfileoutputstream.c:994 ../gio/glocalfileoutputstream.c:1008
msgid "Backup file creation failed"
msgstr "Fallou a creación do ficheiro de seguranza"
-#: ../gio/glocalfile.c:2299
+#: ../gio/glocalfile.c:2301
#, c-format
msgid "Error removing target file: %s"
msgstr "Produciuse un erro ao eliminar o ficheiro obxectivo: %s"
-#: ../gio/glocalfile.c:2313
+#: ../gio/glocalfile.c:2315
msgid "Move between mounts not supported"
msgstr "Non se permite mover entre puntos de montaxe"
@@ -3122,7 +3122,7 @@
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: ../gio/gmount.c:522
+#: ../gio/gmount.c:523
msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
msgstr ""
"a montaxe non implementa o \"desmontado\" ou a \"operación_con_desmontado\""
@@ -3130,28 +3130,28 @@
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gmount.c:609
+#: ../gio/gmount.c:611
msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
msgstr "a montaxe non implementa a expulsión ou a \"operación_con_expulsión\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: ../gio/gmount.c:698
+#: ../gio/gmount.c:701
msgid "mount doesn't implement \"remount\""
msgstr "a montaxe non implementa a \"remontaxe\""
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: ../gio/gmount.c:782
+#: ../gio/gmount.c:785
msgid "mount doesn't implement content type guessing"
msgstr "a montaxe non implementa a averiguación do tipo de contido"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: ../gio/gmount.c:871
+#: ../gio/gmount.c:874
msgid "mount doesn't implement synchronous content type guessing"
msgstr "a montaxe non implementa a averiguación síncrona do tipo de contido"
@@ -3233,66 +3233,66 @@
msgid "No such key '%s'\n"
msgstr "Non existe a chave «%s»\n"
-#: ../gio/gsettings-tool.c:427
+#: ../gio/gsettings-tool.c:429
#, c-format
msgid "The provided value is outside of the valid range\n"
msgstr "O valor fornecido está fora do rango válido\n"
-#: ../gio/gsettings-tool.c:456
+#: ../gio/gsettings-tool.c:458
msgid "List the installed (non-relocatable) schemas"
msgstr "Lista dos esquemas instalados (non reposicionábeis)"
-#: ../gio/gsettings-tool.c:462
+#: ../gio/gsettings-tool.c:464
msgid "List the installed relocatable schemas"
msgstr "Lista dos esquemas instalados reposicionábeis"
-#: ../gio/gsettings-tool.c:468
+#: ../gio/gsettings-tool.c:470
msgid "Lists the keys in SCHEMA"
msgstr "Lista das chaves en ESQUEMA"
-#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475
-#: ../gio/gsettings-tool.c:481
+#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
msgid "SCHEMA[:PATH]"
msgstr "ESQUEMA[:RUTA]"
-#: ../gio/gsettings-tool.c:474
+#: ../gio/gsettings-tool.c:476
msgid "Lists the children of SCHEMA"
msgstr "Lista dos fillos de SCHEMA"
-#: ../gio/gsettings-tool.c:480
+#: ../gio/gsettings-tool.c:482
msgid "List keys and values, recursively"
msgstr "Lista das chaves e valores, recursivo"
-#: ../gio/gsettings-tool.c:486
+#: ../gio/gsettings-tool.c:488
msgid "Gets the value of KEY"
msgstr "Obtén o valor de CHAVE"
-#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493
-#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511
+#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513
msgid "SCHEMA[:PATH] KEY"
msgstr "ESQUEMA[:RUTA] CHAVE"
-#: ../gio/gsettings-tool.c:492
+#: ../gio/gsettings-tool.c:494
msgid "Queries the range of valid values for KEY"
msgstr "Consulta o rango de valores válidos de CHAVE"
-#: ../gio/gsettings-tool.c:498
+#: ../gio/gsettings-tool.c:500
msgid "Sets the value of KEY to VALUE"
msgstr "Estabelece o valor de CHAVE a VALOR"
-#: ../gio/gsettings-tool.c:499
+#: ../gio/gsettings-tool.c:501
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "ESQUEMA[:RUTA] CHAVE VALOR"
-#: ../gio/gsettings-tool.c:504
+#: ../gio/gsettings-tool.c:506
msgid "Resets KEY to its default value"
msgstr "Estabelece a CHAVE ao seu valor predeterminado"
-#: ../gio/gsettings-tool.c:510
+#: ../gio/gsettings-tool.c:512
msgid "Checks if KEY is writable"
msgstr "Comproba se a CHAVE é escribíbel"
-#: ../gio/gsettings-tool.c:516
+#: ../gio/gsettings-tool.c:518
msgid ""
"Monitors KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3302,11 +3302,11 @@
"Se non se especifica a CHAVE, monitoriza todos os cambios en ESQUEMA.\n"
"Use ^C para deter a monitorización.\n"
-#: ../gio/gsettings-tool.c:519
+#: ../gio/gsettings-tool.c:521
msgid "SCHEMA[:PATH] [KEY]"
msgstr "ESQUEMA[:RUTA] [CHAVE]"
-#: ../gio/gsettings-tool.c:523
+#: ../gio/gsettings-tool.c:525
#, c-format
msgid ""
"Unknown command %s\n"
@@ -3315,7 +3315,7 @@
"Orde «%s» descoñecida\n"
"\n"
-#: ../gio/gsettings-tool.c:531
+#: ../gio/gsettings-tool.c:533
msgid ""
"Usage:\n"
" gsettings COMMAND [ARGS...]\n"
@@ -3357,7 +3357,7 @@
"Use 'gsettings help ORDE' para obter axuda máis extensa.\n"
"\n"
-#: ../gio/gsettings-tool.c:552
+#: ../gio/gsettings-tool.c:554
#, c-format
msgid ""
"Usage:\n"
@@ -3372,11 +3372,11 @@
"%s\n"
"\n"
-#: ../gio/gsettings-tool.c:557
+#: ../gio/gsettings-tool.c:559
msgid "Arguments:\n"
msgstr "Argumentos:\n"
-#: ../gio/gsettings-tool.c:561
+#: ../gio/gsettings-tool.c:563
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3384,19 +3384,19 @@
" SCHEMA O nome do esquema\n"
" KEY A ruta, para os esquemas reposicionábeis\n"
-#: ../gio/gsettings-tool.c:566
+#: ../gio/gsettings-tool.c:568
msgid " KEY The (optional) key within the schema\n"
msgstr " KEY A chave (opcional) no esquema\n"
-#: ../gio/gsettings-tool.c:570
+#: ../gio/gsettings-tool.c:572
msgid " KEY The key within the schema\n"
msgstr " KEY A chave nun esquema\n"
-#: ../gio/gsettings-tool.c:574
+#: ../gio/gsettings-tool.c:576
msgid " VALUE The value to set\n"
msgstr " VALUE O valor a estabelecer\n"
-#: ../gio/gsettings-tool.c:650
+#: ../gio/gsettings-tool.c:652
#, c-format
msgid "Empty schema name given"
msgstr "Forneceuse un nome de esquema baleiros"
@@ -3414,7 +3414,7 @@
msgid "Socket is already closed"
msgstr "O fluxo de orixe xa está pechado"
-#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809
+#: ../gio/gsocket.c:300 ../gio/gsocket.c:2769 ../gio/gsocket.c:2813
msgid "Socket I/O timed out"
msgstr "Tempo de espera do Socket de E/S superado"
@@ -3470,7 +3470,7 @@
msgid "Error connecting: %s"
msgstr "Produciuse un erro ao conectar: %s"
-#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528
+#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3532
#, c-format
msgid "Unable to get pending error: %s"
msgstr "Non é posíbel obter o erro pendente: %s"
@@ -3490,35 +3490,35 @@
msgid "Error closing socket: %s"
msgstr "Produciuse un erro ao pechar o socket: %s"
-#: ../gio/gsocket.c:2758
+#: ../gio/gsocket.c:2762
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Agardando pola situación do socket: %s"
-#: ../gio/gsocket.c:3048
+#: ../gio/gsocket.c:3052
msgid "GSocketControlMessage not supported on windows"
msgstr "O GSocketControlMessage non está permitido en windows"
-#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448
+#: ../gio/gsocket.c:3311 ../gio/gsocket.c:3452
#, c-format
msgid "Error receiving message: %s"
msgstr "Produciuse un erro ao recibir a mensaxe: %s"
-#: ../gio/gsocket.c:3543
+#: ../gio/gsocket.c:3547
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
"g_socket_get_credentials non está implementado para este sistema operativo"
-#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364
+#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "Erro descoñecido ao conectar"
-#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248
+#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr ""
"Non se permite a conexión ao proxy mediante unha conexión que non sexa TCP."
-#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273
+#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr "Non é posíbel usar o proxy co protocolo «%s»"
@@ -3624,23 +3624,23 @@
msgstr "O proxy SOCKSv5 non é compatíbel co tipo de enderezo fornecido."
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
-msgstr "Produciuse un erro no proxy SOCKSv5 descoñecido."
+msgid "Unknown SOCKSv5 proxy error."
+msgstr "Erro no proxy SOCKSv5 descoñecido."
#: ../gio/gthemedicon.c:498
#, c-format
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "Non é posíbel manipular a versión %d da codificación de GThemedIcon"
-#: ../gio/gtlscertificate.c:270
+#: ../gio/gtlscertificate.c:228
msgid "No PEM-encoded certificate found"
msgstr "Non se encontrou ningún certificado PEM codificado"
-#: ../gio/gtlscertificate.c:279
+#: ../gio/gtlscertificate.c:237
msgid "Could not parse PEM-encoded certificate"
msgstr "Non foi posíbel analizar o certificado PEM codificado"
-#: ../gio/gtlscertificate.c:300
+#: ../gio/gtlscertificate.c:258
msgid "Could not parse PEM-encoded private key"
msgstr "Non foi posíbel analizar a chave privada PEM codificada"
@@ -3710,7 +3710,7 @@
msgid "Error closing unix: %s"
msgstr "Produciuse un erro ao pechar unix: %s"
-#: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883
+#: ../gio/gunixmounts.c:1848 ../gio/gunixmounts.c:1885
msgid "Filesystem root"
msgstr "Raíz do sistema de ficheiros"
@@ -3733,7 +3733,7 @@
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gvolume.c:487
+#: ../gio/gvolume.c:488
msgid "volume doesn't implement eject or eject_with_operation"
msgstr "o volume non implementa a expulsión ou a operación_de_expulsión"
diff --git a/po/he.po b/po/he.po
index 0b099c2..1eef993 100644
--- a/po/he.po
+++ b/po/he.po
@@ -12,8 +12,8 @@
msgstr ""
"Project-Id-Version: glib.HEAD.he\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-05 13:17+0200\n"
-"PO-Revision-Date: 2010-12-05 13:18+0200\n"
+"POT-Creation-Date: 2010-12-23 17:19+0200\n"
+"PO-Revision-Date: 2010-12-23 17:20+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Gezer (Hebrew)\n"
"MIME-Version: 1.0\n"
@@ -394,134 +394,134 @@
msgid "Error opening directory '%s': %s"
msgstr "Error opening directory '%s': %s"
-#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
msgstr "Could not allocate %lu bytes to read file \"%s\""
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "Error reading file '%s': %s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
msgstr "File \"%s\" is too large"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
msgstr "Failed to read from file '%s': %s"
-#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "Failed to open file '%s': %s"
-#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
+#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgstr "Failed to get attributes of file '%s': fstat() failed: %s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
msgstr "Failed to open file '%s': fdopen() failed: %s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
msgstr "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
msgstr "Failed to create file '%s': %s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr "Failed to open file '%s' for writing: fdopen() failed: %s"
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
msgstr "Failed to write file '%s': fwrite() failed: %s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "Failed to write file '%s': fflush() failed: %s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "Failed to write file '%s': fsync() failed: %s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
msgstr "Failed to close file '%s': fclose() failed: %s"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr "Existing file '%s' could not be removed: g_unlink() failed: %s"
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr "Template '%s' invalid, should not contain a '%s'"
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "Template '%s' doesn't contain XXXXXX"
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "בית אחד"
msgstr[1] "%u בתים"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f ק״ב"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f מ״ב"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f ג״ב"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f ט״ב"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f פ״ב"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f א״ב"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "Failed to read the symbolic link '%s': %s"
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr "Symbolic links not supported"
@@ -1375,15 +1375,15 @@
msgid "Too large count value passed to %s"
msgstr "Too large count value passed to %s"
-#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888
+#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:888
#: ../gio/giostream.c:306 ../gio/goutputstream.c:1197
msgid "Stream is already closed"
msgstr "Stream is already closed"
-#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1636
-#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911
-#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811
-#: ../gio/gsimpleasyncresult.c:837
+#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "Operation was cancelled"
@@ -1562,7 +1562,7 @@
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "Cannot determine session bus address (not implemented for this OS)"
-#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167
+#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
@@ -1571,7 +1571,7 @@
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"- unknown value `%s'"
-#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176
+#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -1680,87 +1680,87 @@
msgstr "(Additionally, releasing the lock for `%s' also failed: %s) "
#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374
-#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736
+#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr "The connection is closed"
-#: ../gio/gdbusconnection.c:1680
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr "Timeout was reached"
-#: ../gio/gdbusconnection.c:2299
+#: ../gio/gdbusconnection.c:2300
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
"Unsupported flags encountered when constructing a client-side connection"
-#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069
+#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070
#, c-format
msgid ""
"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
msgstr ""
"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
-#: ../gio/gdbusconnection.c:3823
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
msgstr "Error setting property `%s': Expected type `%s' but got `%s'"
-#: ../gio/gdbusconnection.c:3918
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
msgstr "No such property `%s'"
-#: ../gio/gdbusconnection.c:3930
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr "Property `%s' is not readable"
-#: ../gio/gdbusconnection.c:3941
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr "Property `%s' is not writable"
-#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601
+#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
msgstr "No such interface `%s'"
-#: ../gio/gdbusconnection.c:4199
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
msgstr "No such interface"
-#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117
+#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
msgstr "No such interface `%s' on object at path %s"
-#: ../gio/gdbusconnection.c:4467
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr "No such method `%s'"
-#: ../gio/gdbusconnection.c:4498
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr "Type of message, `%s', does not match expected type `%s'"
-#: ../gio/gdbusconnection.c:4717
+#: ../gio/gdbusconnection.c:4718
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "An object is already exported for the interface %s at %s"
-#: ../gio/gdbusconnection.c:4911
+#: ../gio/gdbusconnection.c:4912
#, c-format
msgid "Method `%s' returned type `%s', but expected `%s'"
msgstr "Method `%s' returned type `%s', but expected `%s'"
-#: ../gio/gdbusconnection.c:5712
+#: ../gio/gdbusconnection.c:5713
#, c-format
msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
msgstr "Method `%s' on interface `%s' with signature `%s' does not exist"
-#: ../gio/gdbusconnection.c:5830
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr "A subtree is already exported for %s"
@@ -1937,7 +1937,7 @@
msgid "Error sending message: %s"
msgstr "Error sending message: %s"
-#: ../gio/gdbusprivate.c:1756
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr "Unable to load /var/lib/dbus/machine-id: "
@@ -2155,34 +2155,34 @@
msgid "Monitor a remote object."
msgstr "corrupted object"
-#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221
+#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "Unnamed"
-#: ../gio/gdesktopappinfo.c:755
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr "Desktop file didn't specify Exec field"
-#: ../gio/gdesktopappinfo.c:948
+#: ../gio/gdesktopappinfo.c:957
msgid "Unable to find terminal required for application"
msgstr "Unable to find terminal required for application"
-#: ../gio/gdesktopappinfo.c:1157
+#: ../gio/gdesktopappinfo.c:1166
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr "Can't create user application configuration folder %s: %s"
-#: ../gio/gdesktopappinfo.c:1161
+#: ../gio/gdesktopappinfo.c:1170
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "Can't create user MIME configuration folder %s: %s"
-#: ../gio/gdesktopappinfo.c:1569
+#: ../gio/gdesktopappinfo.c:1663
#, c-format
msgid "Can't create user desktop file %s"
msgstr "Can't create user desktop file %s"
-#: ../gio/gdesktopappinfo.c:1683
+#: ../gio/gdesktopappinfo.c:1779
#, c-format
msgid "Custom definition for %s"
msgstr "Custom definition for %s"
@@ -2220,29 +2220,29 @@
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Malformed number of tokens (%d) in GEmblem encoding"
-#: ../gio/gemblemedicon.c:293
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "Can't handle version %d of GEmblemedIcon encoding"
-#: ../gio/gemblemedicon.c:303
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Malformed number of tokens (%d) in GEmblemedIcon encoding"
-#: ../gio/gemblemedicon.c:326
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Expected a GEmblem for GEmblemedIcon"
-#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237
-#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585
-#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783
-#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361
-#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861
-#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438
-#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717
-#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370
-#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120
+#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "Operation not supported"
@@ -2255,58 +2255,58 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
+#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr "Containing mount does not exist"
-#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258
+#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr "Can't copy over directory"
-#: ../gio/gfile.c:2472
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "Can't copy directory over directory"
-#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267
+#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "Target file exists"
-#: ../gio/gfile.c:2498
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "Can't recursively copy directory"
-#: ../gio/gfile.c:2758
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "Symbolic links not supported"
-#: ../gio/gfile.c:2762
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "Error opening file: %s"
-#: ../gio/gfile.c:2909
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "Can't copy special file"
-#: ../gio/gfile.c:3483
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "Invalid symlink value given"
-#: ../gio/gfile.c:3577
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "Trash not supported"
-#: ../gio/gfile.c:3626
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "File names cannot contain '%c'"
-#: ../gio/gfile.c:6003 ../gio/gvolume.c:332
+#: ../gio/gfile.c:6004 ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "volume doesn't implement mount"
-#: ../gio/gfile.c:6114
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "No application is registered as handling this file"
@@ -3135,66 +3135,66 @@
msgid "No such key '%s'\n"
msgstr "No such key '%s'\n"
-#: ../gio/gsettings-tool.c:427
+#: ../gio/gsettings-tool.c:429
#, c-format
msgid "The provided value is outside of the valid range\n"
msgstr "The provided value is outside of the valid range\n"
-#: ../gio/gsettings-tool.c:456
+#: ../gio/gsettings-tool.c:458
msgid "List the installed (non-relocatable) schemas"
msgstr "List the installed (non-relocatable) schemas"
-#: ../gio/gsettings-tool.c:462
+#: ../gio/gsettings-tool.c:464
msgid "List the installed relocatable schemas"
msgstr "List the installed relocatable schemas"
-#: ../gio/gsettings-tool.c:468
+#: ../gio/gsettings-tool.c:470
msgid "Lists the keys in SCHEMA"
msgstr "Lists the keys in SCHEMA"
-#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475
-#: ../gio/gsettings-tool.c:481
+#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
msgid "SCHEMA[:PATH]"
msgstr "SCHEMA[:PATH]"
-#: ../gio/gsettings-tool.c:474
+#: ../gio/gsettings-tool.c:476
msgid "Lists the children of SCHEMA"
msgstr "Lists the children of SCHEMA"
-#: ../gio/gsettings-tool.c:480
+#: ../gio/gsettings-tool.c:482
msgid "List keys and values, recursively"
msgstr "List keys and values, recursively"
-#: ../gio/gsettings-tool.c:486
+#: ../gio/gsettings-tool.c:488
msgid "Gets the value of KEY"
msgstr "Gets the value of KEY"
-#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493
-#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511
+#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513
msgid "SCHEMA[:PATH] KEY"
msgstr "SCHEMA[:PATH] KEY"
-#: ../gio/gsettings-tool.c:492
+#: ../gio/gsettings-tool.c:494
msgid "Queries the range of valid values for KEY"
msgstr "Queries the range of valid values for KEY"
-#: ../gio/gsettings-tool.c:498
+#: ../gio/gsettings-tool.c:500
msgid "Sets the value of KEY to VALUE"
msgstr "Sets the value of KEY to VALUE"
-#: ../gio/gsettings-tool.c:499
+#: ../gio/gsettings-tool.c:501
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SCHEMA[:PATH] KEY VALUE"
-#: ../gio/gsettings-tool.c:504
+#: ../gio/gsettings-tool.c:506
msgid "Resets KEY to its default value"
msgstr "Resets KEY to its default value"
-#: ../gio/gsettings-tool.c:510
+#: ../gio/gsettings-tool.c:512
msgid "Checks if KEY is writable"
msgstr "Checks if KEY is writable"
-#: ../gio/gsettings-tool.c:516
+#: ../gio/gsettings-tool.c:518
msgid ""
"Monitors KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3204,11 +3204,11 @@
"If no KEY is specified, monitor all keys in SCHEMA.\n"
"Use ^C to stop monitoring.\n"
-#: ../gio/gsettings-tool.c:519
+#: ../gio/gsettings-tool.c:521
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SCHEMA[:PATH] [KEY]"
-#: ../gio/gsettings-tool.c:523
+#: ../gio/gsettings-tool.c:525
#, c-format
msgid ""
"Unknown command %s\n"
@@ -3217,7 +3217,7 @@
"Unknown command %s\n"
"\n"
-#: ../gio/gsettings-tool.c:531
+#: ../gio/gsettings-tool.c:533
msgid ""
"Usage:\n"
" gsettings COMMAND [ARGS...]\n"
@@ -3259,7 +3259,7 @@
"Use 'gsettings help COMMAND' to get detailed help.\n"
"\n"
-#: ../gio/gsettings-tool.c:552
+#: ../gio/gsettings-tool.c:554
#, c-format
msgid ""
"Usage:\n"
@@ -3274,11 +3274,11 @@
"%s\n"
"\n"
-#: ../gio/gsettings-tool.c:557
+#: ../gio/gsettings-tool.c:559
msgid "Arguments:\n"
msgstr "Arguments:\n"
-#: ../gio/gsettings-tool.c:561
+#: ../gio/gsettings-tool.c:563
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3286,19 +3286,19 @@
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
-#: ../gio/gsettings-tool.c:566
+#: ../gio/gsettings-tool.c:568
msgid " KEY The (optional) key within the schema\n"
msgstr " KEY The (optional) key within the schema\n"
-#: ../gio/gsettings-tool.c:570
+#: ../gio/gsettings-tool.c:572
msgid " KEY The key within the schema\n"
msgstr " KEY The key within the schema\n"
-#: ../gio/gsettings-tool.c:574
+#: ../gio/gsettings-tool.c:576
msgid " VALUE The value to set\n"
msgstr " VALUE The value to set\n"
-#: ../gio/gsettings-tool.c:650
+#: ../gio/gsettings-tool.c:652
#, c-format
msgid "Empty schema name given"
msgstr "Empty schema name given"
@@ -3410,15 +3410,15 @@
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials not implemented for this OS"
-#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364
+#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "Unknown error on connect"
-#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248
+#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr "Trying to proxy over non-TCP connection is not supported."
-#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273
+#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr "Proxy protocol '%s' is not supported."
@@ -3518,23 +3518,23 @@
msgstr "SOCKSv5 proxy does not support provided address type."
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
-msgstr "Unkown SOCKSv5 proxy error."
+msgid "Unknown SOCKSv5 proxy error."
+msgstr "Unknown SOCKSv5 proxy error."
#: ../gio/gthemedicon.c:498
#, c-format
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "Can't handle version %d of GThemedIcon encoding"
-#: ../gio/gtlscertificate.c:270
+#: ../gio/gtlscertificate.c:228
msgid "No PEM-encoded certificate found"
msgstr "No PEM-encoded certificate found"
-#: ../gio/gtlscertificate.c:279
+#: ../gio/gtlscertificate.c:237
msgid "Could not parse PEM-encoded certificate"
msgstr "Could not parse PEM-encoded certificate"
-#: ../gio/gtlscertificate.c:300
+#: ../gio/gtlscertificate.c:258
msgid "Could not parse PEM-encoded private key"
msgstr "Could not parse PEM-encoded private key"
diff --git a/po/id.po b/po/id.po
index be64516..cc1558e 100644
--- a/po/id.po
+++ b/po/id.po
@@ -8,10 +8,9 @@
msgid ""
msgstr ""
"Project-Id-Version: glib master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
-"product=glib&component=general\n"
-"POT-Creation-Date: 2010-10-17 03:32+0000\n"
-"PO-Revision-Date: 2010-10-25 22:10+0700\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=glib&component=general\n"
+"POT-Creation-Date: 2011-01-04 14:39+0000\n"
+"PO-Revision-Date: 2011-01-07 11:37+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: GNOME Indonesian Translation Team <gnome@i15n.org>\n"
"MIME-Version: 1.0\n"
@@ -27,20 +26,26 @@
msgid "Unexpected attribute '%s' for element '%s'"
msgstr "Atribut '%s' yang tak diduga bagi elemen '%s'"
-#: ../glib/gbookmarkfile.c:791 ../glib/gbookmarkfile.c:862
-#: ../glib/gbookmarkfile.c:872 ../glib/gbookmarkfile.c:979
+#: ../glib/gbookmarkfile.c:791
+#: ../glib/gbookmarkfile.c:862
+#: ../glib/gbookmarkfile.c:872
+#: ../glib/gbookmarkfile.c:979
#, c-format
msgid "Attribute '%s' of element '%s' not found"
msgstr "Atribut '%s' dari elemen '%s' tak ditemukan"
-#: ../glib/gbookmarkfile.c:1149 ../glib/gbookmarkfile.c:1214
-#: ../glib/gbookmarkfile.c:1278 ../glib/gbookmarkfile.c:1288
+#: ../glib/gbookmarkfile.c:1149
+#: ../glib/gbookmarkfile.c:1214
+#: ../glib/gbookmarkfile.c:1278
+#: ../glib/gbookmarkfile.c:1288
#, c-format
msgid "Unexpected tag '%s', tag '%s' expected"
msgstr "Tag '%s' yang tak diduga, diharapkan tag '%s'"
-#: ../glib/gbookmarkfile.c:1174 ../glib/gbookmarkfile.c:1188
-#: ../glib/gbookmarkfile.c:1256 ../glib/gbookmarkfile.c:1308
+#: ../glib/gbookmarkfile.c:1174
+#: ../glib/gbookmarkfile.c:1188
+#: ../glib/gbookmarkfile.c:1256
+#: ../glib/gbookmarkfile.c:1308
#, c-format
msgid "Unexpected tag '%s' inside '%s'"
msgstr "Tag '%s' yang tak diduga di dalam '%s'"
@@ -54,14 +59,22 @@
msgid "A bookmark for URI '%s' already exists"
msgstr "Penanda buku bagi URI '%s' telah ada"
-#: ../glib/gbookmarkfile.c:2081 ../glib/gbookmarkfile.c:2239
-#: ../glib/gbookmarkfile.c:2324 ../glib/gbookmarkfile.c:2404
-#: ../glib/gbookmarkfile.c:2489 ../glib/gbookmarkfile.c:2572
-#: ../glib/gbookmarkfile.c:2650 ../glib/gbookmarkfile.c:2729
-#: ../glib/gbookmarkfile.c:2771 ../glib/gbookmarkfile.c:2868
-#: ../glib/gbookmarkfile.c:2994 ../glib/gbookmarkfile.c:3184
-#: ../glib/gbookmarkfile.c:3260 ../glib/gbookmarkfile.c:3425
-#: ../glib/gbookmarkfile.c:3514 ../glib/gbookmarkfile.c:3604
+#: ../glib/gbookmarkfile.c:2081
+#: ../glib/gbookmarkfile.c:2239
+#: ../glib/gbookmarkfile.c:2324
+#: ../glib/gbookmarkfile.c:2404
+#: ../glib/gbookmarkfile.c:2489
+#: ../glib/gbookmarkfile.c:2572
+#: ../glib/gbookmarkfile.c:2650
+#: ../glib/gbookmarkfile.c:2729
+#: ../glib/gbookmarkfile.c:2771
+#: ../glib/gbookmarkfile.c:2868
+#: ../glib/gbookmarkfile.c:2994
+#: ../glib/gbookmarkfile.c:3184
+#: ../glib/gbookmarkfile.c:3260
+#: ../glib/gbookmarkfile.c:3425
+#: ../glib/gbookmarkfile.c:3514
+#: ../glib/gbookmarkfile.c:3604
#: ../glib/gbookmarkfile.c:3732
#, c-format
msgid "No bookmark found for URI '%s'"
@@ -82,7 +95,8 @@
msgid "No groups set in bookmark for URI '%s'"
msgstr "Grup tak ditata di penanda buku bagi URI '%s'"
-#: ../glib/gbookmarkfile.c:3278 ../glib/gbookmarkfile.c:3435
+#: ../glib/gbookmarkfile.c:3278
+#: ../glib/gbookmarkfile.c:3435
#, c-format
msgid "No application with name '%s' registered a bookmark for '%s'"
msgstr "Tak ada aplikasi dengan nama '%s' mendaftarkan penanda buku bagi '%s'"
@@ -92,32 +106,46 @@
msgid "Failed to expand exec line '%s' with URI '%s'"
msgstr "Gagal mengembangkan baris eksekusi '%s' dengan URI '%s'"
-#: ../glib/gconvert.c:567 ../glib/gconvert.c:645 ../glib/giochannel.c:1403
+#: ../glib/gconvert.c:567
+#: ../glib/gconvert.c:645
+#: ../glib/giochannel.c:1403
#: ../gio/gcharsetconverter.c:458
#, c-format
msgid "Conversion from character set '%s' to '%s' is not supported"
msgstr "Konversi dari gugus karakter '%s' ke '%s' tak didukung"
-#: ../glib/gconvert.c:571 ../glib/gconvert.c:649
+#: ../glib/gconvert.c:571
+#: ../glib/gconvert.c:649
#: ../gio/gcharsetconverter.c:462
#, c-format
msgid "Could not open converter from '%s' to '%s'"
msgstr "Tidak dapat membuka pengubah dari '%s' ke '%s'"
-#: ../glib/gconvert.c:768 ../glib/gconvert.c:1161 ../glib/giochannel.c:1575
-#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2461 ../glib/gutf8.c:992
-#: ../glib/gutf8.c:1447 ../gio/gcharsetconverter.c:345
+#: ../glib/gconvert.c:768
+#: ../glib/gconvert.c:1161
+#: ../glib/giochannel.c:1575
+#: ../glib/giochannel.c:1617
+#: ../glib/giochannel.c:2460
+#: ../glib/gutf8.c:992
+#: ../glib/gutf8.c:1447
+#: ../gio/gcharsetconverter.c:345
msgid "Invalid byte sequence in conversion input"
msgstr "Rangkaian byte dalam input konversi tidak benar"
-#: ../glib/gconvert.c:776 ../glib/gconvert.c:1086 ../glib/giochannel.c:1582
-#: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350
+#: ../glib/gconvert.c:776
+#: ../glib/gconvert.c:1086
+#: ../glib/giochannel.c:1582
+#: ../glib/giochannel.c:2472
+#: ../gio/gcharsetconverter.c:350
#, c-format
msgid "Error during conversion: %s"
msgstr "Galat ketika konversi: %s"
-#: ../glib/gconvert.c:808 ../glib/gutf8.c:988 ../glib/gutf8.c:1198
-#: ../glib/gutf8.c:1339 ../glib/gutf8.c:1443
+#: ../glib/gconvert.c:808
+#: ../glib/gutf8.c:988
+#: ../glib/gutf8.c:1198
+#: ../glib/gutf8.c:1339
+#: ../glib/gutf8.c:1443
msgid "Partial character sequence at end of input"
msgstr "Rangkaian karakter sebagian pada akhir input"
@@ -386,139 +414,143 @@
msgid "Sun"
msgstr "Min"
-#: ../glib/gdir.c:115 ../glib/gdir.c:138
+#: ../glib/gdir.c:115
+#: ../glib/gdir.c:138
#, c-format
msgid "Error opening directory '%s': %s"
msgstr "Galat ketika membuka direktori '%s': %s"
-#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540
+#: ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
msgstr "Tidak dapat mengalokasikan %lu byte untuk membaca berkas \"%s\""
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "Galat ketika membaca berkas '%s': %s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
msgstr "Berkas \"%s\" terlalu besar"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
msgstr "Gagal membaca dari berkas '%s': %s"
-#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703
+#: ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "Gagal membuka berkas '%s': %s"
-#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
+#: ../glib/gfileutils.c:720
+#: ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgstr "Gagal saat mengambil atribut berkas '%s': fstat() gagal: %s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
msgstr "Gagal saat membuka berkas '%s': fdopen() gagal: %s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-msgstr ""
-"Gagal untuk mengubah nama berkas '%s' menjadi '%s': g_rename() gagal: %s"
+msgstr "Gagal untuk mengubah nama berkas '%s' menjadi '%s': g_rename() gagal: %s"
-#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904
+#: ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
msgstr "Gagal membuat berkas '%s': %s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr "Gagal untuk membuka berkas '%s' untuk menulis: fdopen() gagal: %s"
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
msgstr "Gagal untuk menulis berkas '%s': fwrite() gagal: %s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "Gagal untuk menulis berkas '%s': fflush() gagal: %s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "Gagal untuk menulis berkas '%s': fsync() gagal: %s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
msgstr "Gagal untuk menutup berkas '%s': fclose() gagal: '%s'"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr "Berkas '%s' tidak dapat dibuang: g_unlink() gagal: %s"
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr "Palet '%s' tidak sah, seharusnya tidak mengandung '%s'"
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "Palet '%s' tidak memuat XXXXXX"
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u bita"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "Gagal saat membaca taut simbolik '%s': %s"
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr "Taut simbolik tidak didukung"
@@ -529,15 +561,16 @@
#: ../glib/giochannel.c:1752
msgid "Can't do a raw read in g_io_channel_read_line_string"
-msgstr ""
-"Tidak dapat melakukan proses baca mentah di g_io_channel_read_line_string"
+msgstr "Tidak dapat melakukan proses baca mentah di g_io_channel_read_line_string"
-#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2057
-#: ../glib/giochannel.c:2144
+#: ../glib/giochannel.c:1799
+#: ../glib/giochannel.c:2056
+#: ../glib/giochannel.c:2143
msgid "Leftover unconverted data in read buffer"
msgstr "Ada data tersisa yang belum dikonversi pada penyangga read"
-#: ../glib/giochannel.c:1880 ../glib/giochannel.c:1957
+#: ../glib/giochannel.c:1880
+#: ../glib/giochannel.c:1957
msgid "Channel terminates in a partial character"
msgstr "Kanal terputus pada karakter sebagian"
@@ -555,12 +588,14 @@
msgid "Failed to map file '%s': mmap() failed: %s"
msgstr "Gagal saat memetakan berkas '%s': mmap() gagal: %s"
-#: ../glib/gmarkup.c:307 ../glib/gmarkup.c:347
+#: ../glib/gmarkup.c:307
+#: ../glib/gmarkup.c:347
#, c-format
msgid "Error on line %d char %d: "
msgstr "Galat pada baris %d karakter ke-%d: "
-#: ../glib/gmarkup.c:367 ../glib/gmarkup.c:445
+#: ../glib/gmarkup.c:367
+#: ../glib/gmarkup.c:445
#, 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"
@@ -582,35 +617,21 @@
#: ../glib/gmarkup.c:582
#, c-format
-msgid ""
-"Failed to parse '%-.*s', which should have been a digit inside a character "
-"reference (ê for example) - perhaps the digit is too large"
-msgstr ""
-"Gagal saat mengurai '%-.*s'. yang seharusnya sebuah digit dalam referensi "
-"karakter (misalnya ê) - mungkin digitnya terlalu besar"
+msgid "Failed to parse '%-.*s', which should have been a digit inside a character reference (ê for example) - perhaps the digit is too large"
+msgstr "Gagal saat mengurai '%-.*s'. yang seharusnya sebuah digit dalam referensi karakter (misalnya ê) - mungkin digitnya terlalu besar"
#: ../glib/gmarkup.c:594
-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 &"
-msgstr ""
-"Referensi karakter tidak diakhiri dengan titik koma; Mungkin Anda sedang "
-"menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai "
-"entitas. Silakan gunakan & saja"
+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 &"
+msgstr "Referensi karakter tidak diakhiri dengan titik koma; Mungkin Anda sedang menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai entitas. Silakan gunakan & saja"
#: ../glib/gmarkup.c:620
#, c-format
msgid "Character reference '%-.*s' does not encode a permitted character"
-msgstr ""
-"Referensi karakter '%-.*s' tidak mengencodekan karakter yang diperbolehkan"
+msgstr "Referensi karakter '%-.*s' tidak mengencodekan karakter yang diperbolehkan"
#: ../glib/gmarkup.c:658
-msgid ""
-"Empty entity '&;' seen; valid entities are: & " < > '"
-msgstr ""
-"Ada entitas '&;' yang kosong; Entitas yang benar antara lain adalah: & "
-"" < > '"
+msgid "Empty entity '&;' seen; valid entities are: & " < > '"
+msgstr "Ada entitas '&;' yang kosong; Entitas yang benar antara lain adalah: & " < > '"
#: ../glib/gmarkup.c:666
#, c-format
@@ -618,13 +639,8 @@
msgstr "Nama entitas '%-.*s' tak dikenal"
#: ../glib/gmarkup.c:671
-msgid ""
-"Entity did not end with a semicolon; most likely you used an ampersand "
-"character without intending to start an entity - escape ampersand as &"
-msgstr ""
-"Entitas tidak diakhiri dengan titik koma. Mungkin Anda menggunakan karakter "
-"ampersand tanpa bermaksud menjadikannya sebagai entitas - silakan pakai "
-"& saja"
+msgid "Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity - escape ampersand as &"
+msgstr "Entitas tidak diakhiri dengan titik koma. Mungkin Anda menggunakan karakter ampersand tanpa bermaksud menjadikannya sebagai entitas - silakan pakai & saja"
#: ../glib/gmarkup.c:1018
msgid "Document must begin with an element (e.g. <book>)"
@@ -632,67 +648,38 @@
#: ../glib/gmarkup.c:1058
#, c-format
-msgid ""
-"'%s' is not a valid character following a '<' character; it may not begin an "
-"element name"
-msgstr ""
-"'%s' bukanlah karakter yang benar bila diikuti dengan karakter '<'. Ini "
-"tidak boleh menjadi nama elemen"
+msgid "'%s' is not a valid character following a '<' character; it may not begin an element name"
+msgstr "'%s' bukanlah karakter yang benar bila diikuti dengan karakter '<'. Ini tidak boleh menjadi nama elemen"
#: ../glib/gmarkup.c:1126
#, c-format
-msgid ""
-"Odd character '%s', expected a '>' character to end the empty-element tag '%"
-"s'"
-msgstr ""
-"Ada karakter aneh '%s', seharusnya ada '>' untuk mengakhiri tag elemen "
-"kosong '%s'"
+msgid "Odd character '%s', expected a '>' character to end the empty-element tag '%s'"
+msgstr "Ada karakter aneh '%s', seharusnya ada '>' untuk mengakhiri tag elemen kosong '%s'"
#: ../glib/gmarkup.c:1210
#, c-format
-msgid ""
-"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
-msgstr ""
-"Ada karakter aneh '%s'. Seharusnya ada karakter '=' setelah nama atribut '%"
-"s' pada elemen '%s'"
+msgid "Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
+msgstr "Ada karakter aneh '%s'. Seharusnya ada karakter '=' setelah nama atribut '%s' pada elemen '%s'"
#: ../glib/gmarkup.c:1251
#, 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 ""
-"Ada karakter aneh '%s'. Seharusnya ada '>' atau '/' untuk mengakhiri tag "
-"padaelemen '%s', atau bisa juga ada atribut lain. Mungkin Anda menggunakan "
-"karakter yang tidak diperbolehkan pada nama atribut."
+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 "Ada karakter aneh '%s'. Seharusnya ada '>' atau '/' untuk mengakhiri tag padaelemen '%s', atau bisa juga ada atribut lain. Mungkin Anda menggunakan karakter yang tidak diperbolehkan pada nama atribut."
#: ../glib/gmarkup.c:1295
#, 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 ""
-"Ada karakter aneh '%s'. Seharusnya ada tanda kutip buka setelah tanda sama "
-"dengan saat memberikan nilai atribut '%s' pada elemen '%s'"
+msgid "Odd character '%s', expected an open quote mark after the equals sign when giving value for attribute '%s' of element '%s'"
+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:1429
#, c-format
-msgid ""
-"'%s' is not a valid character following the characters '</'; '%s' may not "
-"begin an element name"
-msgstr ""
-"'%s' bukan karakter yang benar bila diikuti dengan karakter '</'. Karena itu "
-"'%s' tidak boleh dijadikan awal nama elemen"
+msgid "'%s' is not a valid character following the characters '</'; '%s' may not begin an element name"
+msgstr "'%s' bukan karakter yang benar bila diikuti dengan karakter '</'. Karena itu '%s' tidak boleh dijadikan awal nama elemen"
#: ../glib/gmarkup.c:1465
#, c-format
-msgid ""
-"'%s' is not a valid character following the close element name '%s'; the "
-"allowed character is '>'"
-msgstr ""
-"'%s' bukan karakter yang benar bila diikuti elemen penutup '%s'. Karakter "
-"yang diperbolehkan adalah '>'"
+msgid "'%s' is not a valid character following the close element name '%s'; the allowed character is '>'"
+msgstr "'%s' bukan karakter yang benar bila diikuti elemen penutup '%s'. Karakter yang diperbolehkan adalah '>'"
#: ../glib/gmarkup.c:1476
#, c-format
@@ -710,26 +697,18 @@
#: ../glib/gmarkup.c:1666
msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgstr ""
-"Dokumen terpotong tidak sempurna sesaat setelah membuka kurung siku '<'"
+msgstr "Dokumen terpotong tidak sempurna sesaat setelah membuka kurung siku '<'"
-#: ../glib/gmarkup.c:1674 ../glib/gmarkup.c:1719
+#: ../glib/gmarkup.c:1674
+#: ../glib/gmarkup.c:1719
#, c-format
-msgid ""
-"Document ended unexpectedly with elements still open - '%s' was the last "
-"element opened"
-msgstr ""
-"Dokumen terpotong tidak sempurna dengan elemen yang masih terbuka - '%s' "
-"adalah elemen terakhir yang dibuka"
+msgid "Document ended unexpectedly with elements still open - '%s' was the last element opened"
+msgstr "Dokumen terpotong tidak sempurna dengan elemen yang masih terbuka - '%s' adalah elemen terakhir yang dibuka"
#: ../glib/gmarkup.c:1682
#, c-format
-msgid ""
-"Document ended unexpectedly, expected to see a close angle bracket ending "
-"the tag <%s/>"
-msgstr ""
-"Dokumen terpotong tidak sempurna, seharusnya ada kurung siku penutup untuk "
-"mengakhiri tag <%s/>"
+msgid "Document ended unexpectedly, expected to see a close angle bracket ending the tag <%s/>"
+msgstr "Dokumen terpotong tidak sempurna, seharusnya ada kurung siku penutup untuk mengakhiri tag <%s/>"
#: ../glib/gmarkup.c:1688
msgid "Document ended unexpectedly inside an element name"
@@ -744,12 +723,8 @@
msgstr "Dokumen terpotong tidak sempurna di dalam tag pembukaan elemen."
#: ../glib/gmarkup.c:1705
-msgid ""
-"Document ended unexpectedly after the equals sign following an attribute "
-"name; no attribute value"
-msgstr ""
-"Dokumen terpotong tidak sempurna setelah tanda sama dengan mengikuti nama "
-"atribut. Tidak ada nilai atribut yang diperoleh"
+msgid "Document ended unexpectedly after the equals sign following an attribute name; no attribute value"
+msgstr "Dokumen terpotong tidak sempurna setelah tanda sama dengan mengikuti nama atribut. Tidak ada nilai atribut yang diperoleh"
#: ../glib/gmarkup.c:1712
msgid "Document ended unexpectedly while inside an attribute value"
@@ -762,9 +737,7 @@
#: ../glib/gmarkup.c:1734
msgid "Document ended unexpectedly inside a comment or processing instruction"
-msgstr ""
-"Dokumen terpotong tidak sempurna di dalam keterangan atau instruksi "
-"pemrosesan"
+msgstr "Dokumen terpotong tidak sempurna di dalam keterangan atau instruksi pemrosesan"
#: ../glib/gregex.c:188
msgid "corrupted object"
@@ -782,11 +755,13 @@
msgid "backtracking limit reached"
msgstr "batas pelacakan balik tercapai"
-#: ../glib/gregex.c:209 ../glib/gregex.c:217
+#: ../glib/gregex.c:209
+#: ../glib/gregex.c:217
msgid "the pattern contains items not supported for partial matching"
msgstr "pola memuat butir yang tak didukung bagi pencocokan sebagian"
-#: ../glib/gregex.c:211 ../gio/glocalfile.c:2109
+#: ../glib/gregex.c:211
+#: ../gio/glocalfile.c:2109
msgid "internal error"
msgstr "kesalahan internal"
@@ -824,8 +799,7 @@
#: ../glib/gregex.c:269
msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here"
-msgstr ""
-"escape pengubah huruf besar kecil (\\l, \\L, \\u, \\U) tak diijinkan di sini"
+msgstr "escape pengubah huruf besar kecil (\\l, \\L, \\u, \\U) tak diijinkan di sini"
#: ../glib/gregex.c:272
msgid "numbers out of order in {} quantifier"
@@ -979,11 +953,8 @@
msgstr "opsi NEWLINE tak konsisten"
#: ../glib/gregex.c:390
-msgid ""
-"\\g is not followed by a braced name or an optionally braced non-zero number"
-msgstr ""
-"\\g tak diikuti oleh nama dalam kurung atau tambahan angka bukan nol dalam "
-"kurung"
+msgid "\\g is not followed by a braced name or an optionally braced non-zero number"
+msgstr "\\g tak diikuti oleh nama dalam kurung atau tambahan angka bukan nol dalam kurung"
#: ../glib/gregex.c:395
msgid "unexpected repeat"
@@ -1001,7 +972,8 @@
msgid "previously-checked referenced subpattern not found"
msgstr "sub pola yang diacu yang sebelumnya diperiksa tak ditemukan"
-#: ../glib/gregex.c:579 ../glib/gregex.c:1700
+#: ../glib/gregex.c:579
+#: ../glib/gregex.c:1700
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Galat saat mencocokkan ekspresi reguler %s: %s"
@@ -1071,22 +1043,17 @@
#: ../glib/gshell.c:181
msgid "Unmatched quotation mark in command line or other shell-quoted text"
-msgstr ""
-"Tanda kutip kurang satu pada perintah atau pada teks yang dikutip dari shell "
-"lain"
+msgstr "Tanda kutip kurang satu pada perintah atau pada teks yang dikutip dari shell lain"
#: ../glib/gshell.c:559
#, c-format
msgid "Text ended just after a '\\' character. (The text was '%s')"
-msgstr ""
-"Teks berakhir saat setelah karakter '\\' dijumpai. (Teksnya adalah '%s')"
+msgstr "Teks berakhir saat setelah karakter '\\' dijumpai. (Teksnya adalah '%s')"
#: ../glib/gshell.c:566
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was '%s')"
-msgstr ""
-"Teks berakhir sebelum tanda kutip pasangannya ditemukan untuk %c. (Tesknya "
-"adalah '%s')"
+msgstr "Teks berakhir sebelum tanda kutip pasangannya ditemukan untuk %c. (Tesknya adalah '%s')"
#: ../glib/gshell.c:578
msgid "Text was empty (or contained only whitespace)"
@@ -1096,23 +1063,27 @@
msgid "Failed to read data from child process"
msgstr "Gagal untuk membaca data dari proses child"
-#: ../glib/gspawn-win32.c:299 ../glib/gspawn.c:1486
+#: ../glib/gspawn-win32.c:299
+#: ../glib/gspawn.c:1486
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr ""
-"Gagal saat membuat pipe untuk sarana komunikasi dengan proses child (%s)"
+msgstr "Gagal saat membuat pipe untuk sarana komunikasi dengan proses child (%s)"
-#: ../glib/gspawn-win32.c:338 ../glib/gspawn-win32.c:346 ../glib/gspawn.c:1145
+#: ../glib/gspawn-win32.c:338
+#: ../glib/gspawn-win32.c:346
+#: ../glib/gspawn.c:1145
#, c-format
msgid "Failed to read from child pipe (%s)"
msgstr "Gagal saat membaca dari pipe child (%s)"
-#: ../glib/gspawn-win32.c:369 ../glib/gspawn.c:1352
+#: ../glib/gspawn-win32.c:369
+#: ../glib/gspawn.c:1352
#, c-format
msgid "Failed to change to directory '%s' (%s)"
msgstr "Gagal saat mengganti direktori ke '%s' (%s)"
-#: ../glib/gspawn-win32.c:375 ../glib/gspawn-win32.c:494
+#: ../glib/gspawn-win32.c:375
+#: ../glib/gspawn-win32.c:494
#, c-format
msgid "Failed to execute child process (%s)"
msgstr "Gagal saat menjalankan proses child (%s)"
@@ -1122,19 +1093,22 @@
msgid "Invalid program name: %s"
msgstr "Nama program salah: %s"
-#: ../glib/gspawn-win32.c:454 ../glib/gspawn-win32.c:722
+#: ../glib/gspawn-win32.c:454
+#: ../glib/gspawn-win32.c:722
#: ../glib/gspawn-win32.c:1278
#, c-format
msgid "Invalid string in argument vector at %d: %s"
msgstr "String tidak benar pada vektor argumen pada %d: %s"
-#: ../glib/gspawn-win32.c:465 ../glib/gspawn-win32.c:737
+#: ../glib/gspawn-win32.c:465
+#: ../glib/gspawn-win32.c:737
#: ../glib/gspawn-win32.c:1311
#, c-format
msgid "Invalid string in environment: %s"
msgstr "String tidak benar pada variabel lingkungan: %s"
-#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1259
+#: ../glib/gspawn-win32.c:718
+#: ../glib/gspawn-win32.c:1259
#, c-format
msgid "Invalid working directory: %s"
msgstr "Direktori aktif salah: %s"
@@ -1145,12 +1119,8 @@
msgstr "Gagal saat menjalankan program bantuan (%s)"
#: ../glib/gspawn-win32.c:997
-msgid ""
-"Unexpected error in g_io_channel_win32_poll() reading data from a child "
-"process"
-msgstr ""
-"Terjadi galat pada g_io_channel_win32_poll() ketika membaca data dari anak "
-"proses"
+msgid "Unexpected error in g_io_channel_win32_poll() reading data from a child process"
+msgstr "Terjadi galat pada g_io_channel_win32_poll() ketika membaca data dari anak proses"
#: ../glib/gspawn.c:196
#, c-format
@@ -1160,8 +1130,7 @@
#: ../glib/gspawn.c:335
#, 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)"
+msgstr "Terjadi galat pada fungsi select() ketika membaca data dari anak proses (%s)"
#: ../glib/gspawn.c:420
#, c-format
@@ -1202,12 +1171,17 @@
msgid "Character out of range for UTF-8"
msgstr "Karakter di luar jangkauan UTF-8"
-#: ../glib/gutf8.c:1166 ../glib/gutf8.c:1175 ../glib/gutf8.c:1307
-#: ../glib/gutf8.c:1316 ../glib/gutf8.c:1457 ../glib/gutf8.c:1553
+#: ../glib/gutf8.c:1166
+#: ../glib/gutf8.c:1175
+#: ../glib/gutf8.c:1307
+#: ../glib/gutf8.c:1316
+#: ../glib/gutf8.c:1457
+#: ../glib/gutf8.c:1553
msgid "Invalid sequence in conversion input"
msgstr "Rangkaian input konversi salah"
-#: ../glib/gutf8.c:1468 ../glib/gutf8.c:1564
+#: ../glib/gutf8.c:1468
+#: ../glib/gutf8.c:1564
msgid "Character out of range for UTF-16"
msgstr "Karakter di luar jangkauan UTF-16"
@@ -1235,12 +1209,14 @@
msgid "Application Options:"
msgstr "Opsi Aplikasi:"
-#: ../glib/goption.c:997 ../glib/goption.c:1067
+#: ../glib/goption.c:997
+#: ../glib/goption.c:1067
#, c-format
msgid "Cannot parse integer value '%s' for %s"
msgstr "Tidak dapat menguraikan nilai integer '%s' untuk %s"
-#: ../glib/goption.c:1007 ../glib/goption.c:1075
+#: ../glib/goption.c:1007
+#: ../glib/goption.c:1075
#, c-format
msgid "Integer value '%s' for %s out of range"
msgstr "Nilai integer '%s' untuk %s di luar jangkauan"
@@ -1255,12 +1231,14 @@
msgid "Double value '%s' for %s out of range"
msgstr "Nilai double '%s' untuk %s di luar jangkauan"
-#: ../glib/goption.c:1303 ../glib/goption.c:1382
+#: ../glib/goption.c:1303
+#: ../glib/goption.c:1382
#, c-format
msgid "Error parsing option %s"
msgstr "Galat saat mengurai opsi %s"
-#: ../glib/goption.c:1413 ../glib/goption.c:1527
+#: ../glib/goption.c:1413
+#: ../glib/goption.c:1527
#, c-format
msgid "Missing argument for %s"
msgstr "Argumen untuk %s tidak lengkap"
@@ -1284,11 +1262,8 @@
#: ../glib/gkeyfile.c:764
#, c-format
-msgid ""
-"Key file contains line '%s' which is not a key-value pair, group, or comment"
-msgstr ""
-"Berkas kunci berisi baris '%s' yang bukan pasangan nilai kunci, kelompok "
-"atau komentar"
+msgid "Key file contains line '%s' which is not a key-value pair, group, or comment"
+msgstr "Berkas kunci berisi baris '%s' yang bukan pasangan nilai kunci, kelompok atau komentar"
#: ../glib/gkeyfile.c:824
#, c-format
@@ -1309,9 +1284,15 @@
msgid "Key file contains unsupported encoding '%s'"
msgstr "Berkas kunci mengadung encoding yang tidak didukung '%s'"
-#: ../glib/gkeyfile.c:1115 ../glib/gkeyfile.c:1277 ../glib/gkeyfile.c:2656
-#: ../glib/gkeyfile.c:2722 ../glib/gkeyfile.c:2857 ../glib/gkeyfile.c:2990
-#: ../glib/gkeyfile.c:3143 ../glib/gkeyfile.c:3330 ../glib/gkeyfile.c:3391
+#: ../glib/gkeyfile.c:1115
+#: ../glib/gkeyfile.c:1277
+#: ../glib/gkeyfile.c:2656
+#: ../glib/gkeyfile.c:2722
+#: ../glib/gkeyfile.c:2857
+#: ../glib/gkeyfile.c:2990
+#: ../glib/gkeyfile.c:3143
+#: ../glib/gkeyfile.c:3330
+#: ../glib/gkeyfile.c:3391
#, c-format
msgid "Key file does not have group '%s'"
msgstr "Berkas kunci tidak memiliki kelompok '%s'"
@@ -1321,35 +1302,32 @@
msgid "Key file does not have key '%s'"
msgstr "Berkas kunci tidak memiliki kunci '%s'"
-#: ../glib/gkeyfile.c:1396 ../glib/gkeyfile.c:1511
+#: ../glib/gkeyfile.c:1396
+#: ../glib/gkeyfile.c:1511
#, 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:1416 ../glib/gkeyfile.c:1910
+#: ../glib/gkeyfile.c:1416
+#: ../glib/gkeyfile.c:1910
#, c-format
msgid "Key file contains key '%s' which has value that cannot be interpreted."
-msgstr ""
-"Berkas kunci mengandung kunci '%s' yang memiliki nilai yang tidak dapat "
-"diterjemahkan."
+msgstr "Berkas kunci mengandung kunci '%s' yang memiliki nilai yang tidak dapat diterjemahkan."
#: ../glib/gkeyfile.c:1531
#, 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."
+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:2125 ../glib/gkeyfile.c:2487
+#: ../glib/gkeyfile.c:2125
+#: ../glib/gkeyfile.c:2487
#, c-format
-msgid ""
-"Key file contains key '%s' in group '%s' which has value that cannot be "
-"interpreted."
-msgstr ""
-"Berkas kunci mengandung kunci '%s' dalam kelompok '%s' yang memiliki nilai "
-"yang tidak dapat diterjemahkan."
+msgid "Key file contains key '%s' in group '%s' which has value that cannot be interpreted."
+msgstr "Berkas kunci mengandung kunci '%s' dalam kelompok '%s' yang memiliki nilai yang tidak dapat diterjemahkan."
-#: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402
+#: ../glib/gkeyfile.c:2671
+#: ../glib/gkeyfile.c:2872
+#: ../glib/gkeyfile.c:3402
#, c-format
msgid "Key file does not have key '%s' in group '%s'"
msgstr "Berkas kunci tidak memiliki kunci '%s' pada kelompok '%s'"
@@ -1383,23 +1361,32 @@
msgid "Value '%s' cannot be interpreted as a boolean."
msgstr "Nilai '%s' tidak dapat diterjemahkan sebagai suatu nilai boolean."
-#: ../gio/gbufferedinputstream.c:411 ../gio/gbufferedinputstream.c:492
-#: ../gio/ginputstream.c:185 ../gio/ginputstream.c:317
-#: ../gio/ginputstream.c:556 ../gio/ginputstream.c:681
-#: ../gio/goutputstream.c:198 ../gio/goutputstream.c:725
+#: ../gio/gbufferedinputstream.c:411
+#: ../gio/gbufferedinputstream.c:492
+#: ../gio/ginputstream.c:185
+#: ../gio/ginputstream.c:317
+#: ../gio/ginputstream.c:556
+#: ../gio/ginputstream.c:680
+#: ../gio/goutputstream.c:198
+#: ../gio/goutputstream.c:726
#, c-format
msgid "Too large count value passed to %s"
msgstr "Nilai cacah yang dilewatkan ke %s terlalu besar"
-#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:891
-#: ../gio/giostream.c:306 ../gio/goutputstream.c:1200
+#: ../gio/gbufferedinputstream.c:881
+#: ../gio/ginputstream.c:888
+#: ../gio/giostream.c:306
+#: ../gio/goutputstream.c:1197
msgid "Stream is already closed"
msgstr "Stream telah ditutup"
-#: ../gio/gcancellable.c:432 ../gio/gdbusconnection.c:1642
-#: ../gio/gdbusconnection.c:1731 ../gio/gdbusconnection.c:1913
-#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:755
-#: ../gio/gsimpleasyncresult.c:781
+#: ../gio/gcancellable.c:433
+#: ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726
+#: ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2102
+#: ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "Operasi dibatalkan"
@@ -1407,15 +1394,18 @@
msgid "Invalid object, not initialized"
msgstr "Objek tak valid, tak diinisialisasi"
-#: ../gio/gcharsetconverter.c:284 ../gio/gcharsetconverter.c:312
+#: ../gio/gcharsetconverter.c:284
+#: ../gio/gcharsetconverter.c:312
msgid "Incomplete multibyte sequence in input"
msgstr "Rangkaian byte tak lengkap dalam input"
-#: ../gio/gcharsetconverter.c:318 ../gio/gcharsetconverter.c:327
+#: ../gio/gcharsetconverter.c:318
+#: ../gio/gcharsetconverter.c:327
msgid "Not enough space in destination"
msgstr "Tak cukup ruang di tujuan"
-#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:810
+#: ../gio/gcharsetconverter.c:447
+#: ../gio/gsocket.c:832
msgid "Cancellable initialization not supported"
msgstr "Inisialisasi yang dapat dibatalkan tak didukung"
@@ -1433,7 +1423,8 @@
msgid "%s type"
msgstr "tipe %s"
-#: ../gio/gcredentials.c:246 ../gio/gcredentials.c:441
+#: ../gio/gcredentials.c:246
+#: ../gio/gcredentials.c:441
msgid "GCredentials is not implemented on this OS"
msgstr "GCredentials tak diimplementasikan di OS ini"
@@ -1445,7 +1436,8 @@
msgid "Unexpected early end-of-stream"
msgstr "Akhir stream terlalu dini, tak diharapkan"
-#: ../gio/gdbusaddress.c:142 ../gio/gdbusaddress.c:230
+#: ../gio/gdbusaddress.c:142
+#: ../gio/gdbusaddress.c:230
#: ../gio/gdbusaddress.c:304
#, c-format
msgid "Unsupported key `%s' in address entry `%s'"
@@ -1453,23 +1445,22 @@
#: ../gio/gdbusaddress.c:169
#, c-format
-msgid ""
-"Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
-msgstr ""
-"Alamat '%s' tak valid (perlu hanya salah satu dari path, tmpdir, atau kunci "
-"abstrak)"
+msgid "Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
+msgstr "Alamat '%s' tak valid (perlu hanya salah satu dari path, tmpdir, atau kunci abstrak)"
#: ../gio/gdbusaddress.c:182
#, c-format
msgid "Meaningless key/value pair combination in address entry `%s'"
msgstr "Kombinasi pasangan kunci/nilai tanpa arti di entri alamat '%s'"
-#: ../gio/gdbusaddress.c:245 ../gio/gdbusaddress.c:319
+#: ../gio/gdbusaddress.c:245
+#: ../gio/gdbusaddress.c:319
#, c-format
msgid "Error in address `%s' - the port attribute is malformed"
msgstr "Galat di alamat '%s' - atribut port salah bentuk"
-#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:330
+#: ../gio/gdbusaddress.c:256
+#: ../gio/gdbusaddress.c:330
#, c-format
msgid "Error in address `%s' - the family attribute is malformed"
msgstr "Galat di alamat '%s' - atribut family salah bentuk"
@@ -1481,30 +1472,18 @@
#: ../gio/gdbusaddress.c:455
#, c-format
-msgid ""
-"Key/Value pair %d, `%s', in address element `%s', does not contain an equal "
-"sign"
-msgstr ""
-"Pasangan kunci/nilai %d, '%s', di elemen alamat '%s' tak memuat tanda sama "
-"dengan"
+msgid "Key/Value pair %d, `%s', in address element `%s', does not contain an equal sign"
+msgstr "Pasangan kunci/nilai %d, '%s', di elemen alamat '%s' tak memuat tanda sama dengan"
#: ../gio/gdbusaddress.c:469
#, c-format
-msgid ""
-"Error unescaping key or value in Key/Value pair %d, `%s', in address element "
-"`%s'"
-msgstr ""
-"Galat saat membongkar kunci atau nilai dalam pasangan Key/Value %d, '%s', "
-"dalam elemen alamat '%s'"
+msgid "Error unescaping key or value in Key/Value pair %d, `%s', in address element `%s'"
+msgstr "Galat saat membongkar kunci atau nilai dalam pasangan Key/Value %d, '%s', dalam elemen alamat '%s'"
#: ../gio/gdbusaddress.c:547
#, c-format
-msgid ""
-"Error in address `%s' - the unix transport requires exactly one of the keys "
-"`path' or `abstract' to be set"
-msgstr ""
-"Galat di alamat '%s' - transport unix memerlukan hanya satu dari kunci "
-"`path' atau `abstract' untuk ditata"
+msgid "Error in address `%s' - the unix transport requires exactly one of the keys `path' or `abstract' to be set"
+msgstr "Galat di alamat '%s' - transport unix memerlukan hanya satu dari kunci `path' atau `abstract' untuk ditata"
#: ../gio/gdbusaddress.c:583
#, c-format
@@ -1550,53 +1529,46 @@
msgid "Error writing contents of nonce file `%s' to stream:"
msgstr "Galat saat menulis isi dari berkas nonce '%s' ke stream:"
-#: ../gio/gdbusaddress.c:942
+#: ../gio/gdbusaddress.c:939
msgid "The given address is empty"
msgstr "Tidak ada alamat yang diberikan"
-#: ../gio/gdbusaddress.c:1011
+#: ../gio/gdbusaddress.c:1008
msgid "Cannot spawn a message bus without a machine-id: "
msgstr "Tidak bisa spawn suatu bus pesan tanpa id-mesin:"
-#: ../gio/gdbusaddress.c:1048
+#: ../gio/gdbusaddress.c:1045
#, c-format
msgid "Error spawning command line `%s': "
msgstr "Galat saat membaca berkas nonce '%s':"
-#: ../gio/gdbusaddress.c:1059
+#: ../gio/gdbusaddress.c:1056
#, c-format
msgid "Abnormal program termination spawning command line `%s': %s"
msgstr "Akhir program tidak normal saat spawn perintah baris '%s': %s"
-#: ../gio/gdbusaddress.c:1073
+#: ../gio/gdbusaddress.c:1070
#, c-format
msgid "Command line `%s' exited with non-zero exit status %d: %s"
msgstr "Baris perintah `%s' berakhir dengan status tidak nol %d: %s"
-#: ../gio/gdbusaddress.c:1146
+#: ../gio/gdbusaddress.c:1143
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
-msgstr ""
-"Tidak bisa menentukan alamat bus sesi (tidak diimplementasi bagi OS ini)"
+msgstr "Tidak bisa menentukan alamat bus sesi (tidak diimplementasi bagi OS ini)"
-#: ../gio/gdbusaddress.c:1245 ../gio/gdbusconnection.c:6151
+#: ../gio/gdbusaddress.c:1242
+#: ../gio/gdbusconnection.c:6168
#, c-format
-msgid ""
-"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
-"- unknown value `%s'"
-msgstr ""
-"Tak bisa menentukan alamat bus dari variabel lingkungan "
-"DBUS_STARTER_BUS_TYPE - nilai tak dikenal '%s'"
+msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable - unknown value `%s'"
+msgstr "Tak bisa menentukan alamat bus dari variabel lingkungan DBUS_STARTER_BUS_TYPE - nilai tak dikenal '%s'"
-#: ../gio/gdbusaddress.c:1254 ../gio/gdbusconnection.c:6160
-msgid ""
-"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
-"variable is not set"
-msgstr ""
-"Tak bisa menentukan alamat bus karena variabel lingkungan "
-"DBUS_STARTER_BUS_TYPE tak diisi"
+#: ../gio/gdbusaddress.c:1251
+#: ../gio/gdbusconnection.c:6177
+msgid "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment variable is not set"
+msgstr "Tak bisa menentukan alamat bus karena variabel lingkungan DBUS_STARTER_BUS_TYPE tak diisi"
-#: ../gio/gdbusaddress.c:1264
+#: ../gio/gdbusaddress.c:1261
#, c-format
msgid "Unknown bus type %d"
msgstr "Tipe bus %d tak dikenal"
@@ -1607,16 +1579,12 @@
#: ../gio/gdbusauth.c:332
msgid "Unexpected lack of content trying to (safely) read a line"
-msgstr ""
-"Ketiadaan isi yang tak diharapkan ketika membaca suatu baris (secara aman)"
+msgstr "Ketiadaan isi yang tak diharapkan ketika membaca suatu baris (secara aman)"
#: ../gio/gdbusauth.c:503
#, c-format
-msgid ""
-"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
-msgstr ""
-"Menghabiskan semua mekanisme otentikasi yang tersedia (dicoba: %s) "
-"(tersedia: %s)"
+msgid "Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
+msgstr "Menghabiskan semua mekanisme otentikasi yang tersedia (dicoba: %s) (tersedia: %s)"
#: ../gio/gdbusauth.c:1150
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
@@ -1629,10 +1597,8 @@
#: ../gio/gdbusauthmechanismsha1.c:278
#, c-format
-msgid ""
-"Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o"
-msgstr ""
-"Ijin pada direktori '%s' salah bentuk. Diharapkan mode 0700, diperoleh 0%o"
+msgid "Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o"
+msgstr "Ijin pada direktori '%s' salah bentuk. Diharapkan mode 0700, diperoleh 0%o"
#: ../gio/gdbusauthmechanismsha1.c:299
#, c-format
@@ -1644,26 +1610,23 @@
msgid "Error opening keyring `%s' for reading: "
msgstr "Galat saat membuka gantungan kunci '%s' untuk dibaca:"
-#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:715
+#: ../gio/gdbusauthmechanismsha1.c:406
+#: ../gio/gdbusauthmechanismsha1.c:715
#, c-format
msgid "Line %d of the keyring at `%s' with content `%s' is malformed"
msgstr "Baris %d dari gantungan kunci pada '%s' dengan isi '%s' salah bentuk"
-#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:729
+#: ../gio/gdbusauthmechanismsha1.c:420
+#: ../gio/gdbusauthmechanismsha1.c:729
#, c-format
-msgid ""
-"First token of line %d of the keyring at `%s' with content `%s' is malformed"
-msgstr ""
-"Token pertama dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' "
-"salah bentuk"
+msgid "First token of line %d of the keyring at `%s' with content `%s' is malformed"
+msgstr "Token pertama dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' salah bentuk"
-#: ../gio/gdbusauthmechanismsha1.c:434 ../gio/gdbusauthmechanismsha1.c:743
+#: ../gio/gdbusauthmechanismsha1.c:434
+#: ../gio/gdbusauthmechanismsha1.c:743
#, c-format
-msgid ""
-"Second token of line %d of the keyring at `%s' with content `%s' is malformed"
-msgstr ""
-"Token kedua dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' "
-"salah bentuk"
+msgid "Second token of line %d of the keyring at `%s' with content `%s' is malformed"
+msgstr "Token kedua dari baris %d dari gantungan kunci pada '%s' dengan isi '%s' salah bentuk"
#: ../gio/gdbusauthmechanismsha1.c:458
#, c-format
@@ -1700,89 +1663,89 @@
msgid "(Additionally, releasing the lock for `%s' also failed: %s) "
msgstr "(Selain itu, melepas kunci bagi '%s' juga gagal: %s)"
-#: ../gio/gdbusconnection.c:1151 ../gio/gdbusconnection.c:1380
-#: ../gio/gdbusconnection.c:1419 ../gio/gdbusconnection.c:1742
+#: ../gio/gdbusconnection.c:1148
+#: ../gio/gdbusconnection.c:1374
+#: ../gio/gdbusconnection.c:1413
+#: ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr "Sambungan tertutup"
-#: ../gio/gdbusconnection.c:1686
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr "Kehabisan waktu"
#: ../gio/gdbusconnection.c:2300
-msgid ""
-"Unsupported flags encountered when constructing a client-side connection"
-msgstr ""
-"Ditemui flag yang tak didukung ketika membangun sambungan di sisi klien"
+msgid "Unsupported flags encountered when constructing a client-side connection"
+msgstr "Ditemui flag yang tak didukung ketika membangun sambungan di sisi klien"
-#: ../gio/gdbusconnection.c:3734 ../gio/gdbusconnection.c:4052
+#: ../gio/gdbusconnection.c:3752
+#: ../gio/gdbusconnection.c:4070
#, c-format
-msgid ""
-"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
-msgstr ""
-"Tidak ada antarmuka `org.freedesktop.DBus.Properties' pada objek di lokasi %s"
+msgid "No such interface `org.freedesktop.DBus.Properties' on object at path %s"
+msgstr "Tidak ada antarmuka `org.freedesktop.DBus.Properties' pada objek di lokasi %s"
-#: ../gio/gdbusconnection.c:3806
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
-msgstr ""
-"Galat menata properti '%s': Tipe yang diharapkan '%s' tapi diperoleh '%s'"
+msgstr "Galat menata properti '%s': Tipe yang diharapkan '%s' tapi diperoleh '%s'"
-#: ../gio/gdbusconnection.c:3901
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
msgstr "Tak ada properti '%s'"
-#: ../gio/gdbusconnection.c:3913
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr "Properti '%s' tidak dapat dibaca"
-#: ../gio/gdbusconnection.c:3924
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr "Properti '%s' tidak dapat ditulisi"
-#: ../gio/gdbusconnection.c:3994 ../gio/gdbusconnection.c:5585
+#: ../gio/gdbusconnection.c:4012
+#: ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
msgstr "Tak ada antar muka '%s'"
-#: ../gio/gdbusconnection.c:4182
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
msgstr "Tak ada antar muka begitu"
-#: ../gio/gdbusconnection.c:4398 ../gio/gdbusconnection.c:6101
+#: ../gio/gdbusconnection.c:4416
+#: ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
msgstr "Tak ada antar muka '%s' pada objek di lokasi %s"
-#: ../gio/gdbusconnection.c:4450
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr "Tak ada metoda '%s'"
-#: ../gio/gdbusconnection.c:4481
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr "Tipe pesan '%s' tak cocok dengan tipe yang diharapkan '%s'"
-#: ../gio/gdbusconnection.c:4700
+#: ../gio/gdbusconnection.c:4718
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "Suatu objek telah diekspor bagi antar muka %s pada %s"
-#: ../gio/gdbusconnection.c:4894
+#: ../gio/gdbusconnection.c:4912
#, c-format
msgid "Method `%s' returned type `%s', but expected `%s'"
msgstr "Metoda '%s' mengembalikan tipe '%s', tapi yang diharapkan '%s'"
-#: ../gio/gdbusconnection.c:5696
+#: ../gio/gdbusconnection.c:5713
#, c-format
msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
msgstr "Metoda '%s' pada antar muka '%s' dengan tanda tangan '%s' tak ada"
-#: ../gio/gdbusconnection.c:5814
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Subtree telah diekspor bagi %s"
@@ -1808,20 +1771,12 @@
msgstr "Pesan SIGNAL: ruas header PATH, INTERFACE, atau MEMBER hilang"
#: ../gio/gdbusmessage.c:911
-msgid ""
-"SIGNAL message: The PATH header field is using the reserved value /org/"
-"freedesktop/DBus/Local"
-msgstr ""
-"Pesan SIGNAL: ruas header PATH memakai nilai khusus /org/freedesktop/DBus/"
-"Local"
+msgid "SIGNAL message: The PATH header field is using the reserved value /org/freedesktop/DBus/Local"
+msgstr "Pesan SIGNAL: ruas header PATH memakai nilai khusus /org/freedesktop/DBus/Local"
#: ../gio/gdbusmessage.c:919
-msgid ""
-"SIGNAL message: The INTERFACE header field is using the reserved value org."
-"freedesktop.DBus.Local"
-msgstr ""
-"Pesan SIGNAL: ruas header INTERFACE memakai nilai khusus org.freedesktop."
-"DBus.Local"
+msgid "SIGNAL message: The INTERFACE header field is using the reserved value org.freedesktop.DBus.Local"
+msgstr "Pesan SIGNAL: ruas header INTERFACE memakai nilai khusus org.freedesktop.DBus.Local"
#: ../gio/gdbusmessage.c:994
#, c-format
@@ -1830,13 +1785,8 @@
#: ../gio/gdbusmessage.c:1019
#, 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 ""
-"Berharap string UTF-8 yang valid tapi menjumpai byte tak valid pada ofset %d "
-"(panjang string adalah %d). String UTF-8 yang valid sampai titik itu adalah "
-"'%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 "Berharap string UTF-8 yang valid tapi menjumpai byte tak valid pada ofset %d (panjang string adalah %d). String UTF-8 yang valid sampai titik itu adalah '%s'"
#: ../gio/gdbusmessage.c:1032
#, c-format
@@ -1855,11 +1805,8 @@
#: ../gio/gdbusmessage.c:1311
#, c-format
-msgid ""
-"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
-msgstr ""
-"Menjumpai larik dengan panjang %u byte. Panjang maksimum adalah 2<<26 byte "
-"(64 MiB). "
+msgid "Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
+msgstr "Menjumpai larik dengan panjang %u byte. Panjang maksimum adalah 2<<26 byte (64 MiB). "
#: ../gio/gdbusmessage.c:1472
#, c-format
@@ -1868,20 +1815,13 @@
#: ../gio/gdbusmessage.c:1499
#, c-format
-msgid ""
-"Error deserializing GVariant with type string `%s' from the D-Bus wire format"
-msgstr ""
-"Galat saat deserialisasi GVariant dengan type string '%s' dari format kabel "
-"D-Bus"
+msgid "Error deserializing GVariant with type string `%s' from the D-Bus wire format"
+msgstr "Galat saat deserialisasi GVariant dengan type string '%s' dari format kabel D-Bus"
#: ../gio/gdbusmessage.c:1683
#, c-format
-msgid ""
-"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value "
-"0x%02x"
-msgstr ""
-"Nilai ke-endian-an tak valid. Berharap 0x6c ('l') atau (0x42) 'B' tapi "
-"menemui 0x%02x"
+msgid "Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value 0x%02x"
+msgstr "Nilai ke-endian-an tak valid. Berharap 0x6c ('l') atau (0x42) 'B' tapi menemui 0x%02x"
#: ../gio/gdbusmessage.c:1697
#, c-format
@@ -1891,8 +1831,7 @@
#: ../gio/gdbusmessage.c:1754
#, 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"
+msgstr "Header tanda tangan dengan tanda tangan '%s' ditemukan tapi body pesan kosong"
#: ../gio/gdbusmessage.c:1768
#, c-format
@@ -1910,10 +1849,8 @@
#: ../gio/gdbusmessage.c:2131
#, c-format
-msgid ""
-"Error serializing GVariant with type string `%s' to the D-Bus wire format"
-msgstr ""
-"Kesalahan serialisasi GVariant dengan type string '%s' ke format kabel D-Bus"
+msgid "Error serializing GVariant with type string `%s' to the D-Bus wire format"
+msgstr "Kesalahan serialisasi GVariant dengan type string '%s' ke format kabel D-Bus"
#: ../gio/gdbusmessage.c:2272
#, c-format
@@ -1931,12 +1868,8 @@
#: ../gio/gdbusmessage.c:2334
#, c-format
-msgid ""
-"Message body has type signature `%s' but signature in the header field is `%"
-"s'"
-msgstr ""
-"Body pesan memiliki tanda tangan tipe '%s' tapi tanda tangan di ruas header "
-"adalah '(%s)'"
+msgid "Message body has type signature `%s' but signature in the header field is `%s'"
+msgstr "Body pesan memiliki tanda tangan tipe '%s' tapi tanda tangan di ruas header adalah '(%s)'"
#: ../gio/gdbusmessage.c:2350
#, c-format
@@ -1957,42 +1890,36 @@
msgid "Type of return value is incorrect, got `%s', expected `%s'"
msgstr "Tipe nilai balikan salah, mendapat '%s', mengharapkan '%s'"
-#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:2974
-#: ../gio/gsocket.c:3055
+#: ../gio/gdbusmethodinvocation.c:406
+#: ../gio/gsocket.c:3027
+#: ../gio/gsocket.c:3108
#, c-format
msgid "Error sending message: %s"
msgstr "Galat saat menerima pesan: %s"
-#: ../gio/gdbusprivate.c:1759
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr "Tidak dapat memuat /var/lib/dbus/machine-id: "
#: ../gio/gdbusproxy.c:714
#, c-format
-msgid ""
-"Trying to set property %s of type %s but according to the expected interface "
-"the type is %s"
-msgstr ""
-"Mencoba menata properti %s bertipe %s tetapi menurut antar muka yang "
-"diharapkan tipenya adalah %s"
+msgid "Trying to set property %s of type %s but according to the expected interface the type is %s"
+msgstr "Mencoba menata properti %s bertipe %s tetapi menurut antar muka yang diharapkan tipenya adalah %s"
-#: ../gio/gdbusproxy.c:1235
+#: ../gio/gdbusproxy.c:1234
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr "Galat sewaktu memanggil StartServiceByName untuk %s: "
-#: ../gio/gdbusproxy.c:1256
+#: ../gio/gdbusproxy.c:1255
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr "Balasan tak diharapkan %d dari metode StartServiceByName(\"%s\")"
-#: ../gio/gdbusproxy.c:2315 ../gio/gdbusproxy.c:2472
-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 ""
-"Tidak bisa menjalankan metoda; proksi adalah nama terkenal tanpa pemilik dan "
-"proksi dibangun dengan flag G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
+#: ../gio/gdbusproxy.c:2311
+#: ../gio/gdbusproxy.c:2469
+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 "Tidak bisa menjalankan metoda; proksi adalah nama terkenal tanpa pemilik dan proksi dibangun dengan flag G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
#: ../gio/gdbusserver.c:715
msgid "Abstract name space not supported"
@@ -2038,16 +1965,21 @@
" monitor Pantau suatu objek jauh\n"
" call Jalankan suatu metode pada suatu objek jauh\n"
"\n"
-"Gunakan \"%s PERINTAH --help\" untuk memperoleh bantuan pada setiap "
-"perintah.\n"
+"Gunakan \"%s PERINTAH --help\" untuk memperoleh bantuan pada setiap perintah.\n"
-#: ../gio/gdbus-tool.c:160 ../gio/gdbus-tool.c:216 ../gio/gdbus-tool.c:288
-#: ../gio/gdbus-tool.c:312 ../gio/gdbus-tool.c:814 ../gio/gdbus-tool.c:1324
+#: ../gio/gdbus-tool.c:160
+#: ../gio/gdbus-tool.c:216
+#: ../gio/gdbus-tool.c:288
+#: ../gio/gdbus-tool.c:312
+#: ../gio/gdbus-tool.c:814
+#: ../gio/gdbus-tool.c:1324
#, c-format
msgid "Error: %s\n"
msgstr "Galat: %s\n"
-#: ../gio/gdbus-tool.c:171 ../gio/gdbus-tool.c:229 ../gio/gdbus-tool.c:1340
+#: ../gio/gdbus-tool.c:171
+#: ../gio/gdbus-tool.c:229
+#: ../gio/gdbus-tool.c:1340
#, c-format
msgid "Error parsing introspection XML: %s\n"
msgstr "Galat saat mengurai XML introspeksi: %s\n"
@@ -2084,18 +2016,13 @@
#: ../gio/gdbus-tool.c:459
#, c-format
-msgid ""
-"Warning: According to introspection data, interface `%s' does not exist\n"
+msgid "Warning: According to introspection data, interface `%s' does not exist\n"
msgstr "Peringatan: Menurut data introspeksi, antar muka '%s' tak ada\n"
#: ../gio/gdbus-tool.c:468
#, c-format
-msgid ""
-"Warning: According to introspection data, method `%s' does not exist on "
-"interface `%s'\n"
-msgstr ""
-"Peringatan: Menurut data introspeksi, metoda '%s' tak ada pada antar muka '%"
-"s'\n"
+msgid "Warning: According to introspection data, method `%s' does not exist on interface `%s'\n"
+msgstr "Peringatan: Menurut data introspeksi, metoda '%s' tak ada pada antar muka '%s'\n"
#: ../gio/gdbus-tool.c:530
msgid "Destination name to invoke method on"
@@ -2113,22 +2040,29 @@
msgid "Invoke a method on a remote object."
msgstr "Jalankan suatu metoda pada suatu objek jauh."
-#: ../gio/gdbus-tool.c:626 ../gio/gdbus-tool.c:1245 ../gio/gdbus-tool.c:1505
+#: ../gio/gdbus-tool.c:626
+#: ../gio/gdbus-tool.c:1245
+#: ../gio/gdbus-tool.c:1505
#, c-format
msgid "Error connecting: %s\n"
msgstr "Galat saat menyambung: %s\n"
-#: ../gio/gdbus-tool.c:646 ../gio/gdbus-tool.c:1264 ../gio/gdbus-tool.c:1524
+#: ../gio/gdbus-tool.c:646
+#: ../gio/gdbus-tool.c:1264
+#: ../gio/gdbus-tool.c:1524
#, c-format
msgid "Error: Destination is not specified\n"
msgstr "Galat: Tujuan tak dinyatakan\n"
-#: ../gio/gdbus-tool.c:667 ../gio/gdbus-tool.c:1283
+#: ../gio/gdbus-tool.c:667
+#: ../gio/gdbus-tool.c:1283
#, c-format
msgid "Error: Object path is not specified\n"
msgstr "Galat: Lokasi objek tak dinyatakan\n"
-#: ../gio/gdbus-tool.c:687 ../gio/gdbus-tool.c:1303 ../gio/gdbus-tool.c:1564
+#: ../gio/gdbus-tool.c:687
+#: ../gio/gdbus-tool.c:1303
+#: ../gio/gdbus-tool.c:1564
#, c-format
msgid "Error: %s is not a valid object path\n"
msgstr "Galat: '%s' bukan suatu lokasi objek yang valid\n"
@@ -2181,35 +2115,35 @@
msgid "Monitor a remote object."
msgstr "Memantau suatu objek jauh"
-#: ../gio/gdesktopappinfo.c:467 ../gio/gwin32appinfo.c:221
+#: ../gio/gdesktopappinfo.c:480
+#: ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "Tanpa nama"
-#: ../gio/gdesktopappinfo.c:751
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr "Berkas desktop tak menyatakan ruas Exec"
-#: ../gio/gdesktopappinfo.c:944
+#: ../gio/gdesktopappinfo.c:957
msgid "Unable to find terminal required for application"
msgstr "Tak bisa temukan terminal yang diperlukan bagi aplikasi"
-#: ../gio/gdesktopappinfo.c:1153
+#: ../gio/gdesktopappinfo.c:1166
#, c-format
msgid "Can't create user application configuration folder %s: %s"
-msgstr ""
-"Tak bisa membuat folder %s untuk konfigurasi aplikasi bagi pengguna: %s"
+msgstr "Tak bisa membuat folder %s untuk konfigurasi aplikasi bagi pengguna: %s"
-#: ../gio/gdesktopappinfo.c:1157
+#: ../gio/gdesktopappinfo.c:1170
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "Tak bisa membuat folder %s untuk konfigurasi MIME bagi pengguna: %s"
-#: ../gio/gdesktopappinfo.c:1565
+#: ../gio/gdesktopappinfo.c:1663
#, c-format
msgid "Can't create user desktop file %s"
msgstr "Tak bisa membuat berkas desktop pengguna %s"
-#: ../gio/gdesktopappinfo.c:1679
+#: ../gio/gdesktopappinfo.c:1779
#, c-format
msgid "Custom definition for %s"
msgstr "Definisi gubahan bagi %s"
@@ -2247,29 +2181,47 @@
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Cacah token (%d) salah bentuk di pengkodean GEmblem"
-#: ../gio/gemblemedicon.c:293
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "Tak bisa menangani pengkodean versi %d dari GEmblemedIcon"
-#: ../gio/gemblemedicon.c:303
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Cacah token (%d) salah bentuk di pengkodean GEmblemedIcon"
-#: ../gio/gemblemedicon.c:326
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Berharap suatu GEmblem bagi GEmblemedIcon"
-#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237
-#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585
-#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783
-#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361
-#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861
-#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438
-#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717
-#: ../gio/gfile.c:5047 ../gio/gfile.c:5327 ../gio/gfile.c:5396
-#: ../gio/gfile.c:6988 ../gio/gfile.c:7078 ../gio/gfile.c:7164
+#: ../gio/gfile.c:872
+#: ../gio/gfile.c:1103
+#: ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475
+#: ../gio/gfile.c:1529
+#: ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669
+#: ../gio/gfile.c:1724
+#: ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838
+#: ../gio/gfile.c:3308
+#: ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494
+#: ../gio/gfile.c:3535
+#: ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264
+#: ../gio/gfile.c:4350
+#: ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537
+#: ../gio/gfile.c:4624
+#: ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039
+#: ../gio/gfile.c:5306
+#: ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945
+#: ../gio/gfile.c:7035
+#: ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "Operasi tak didukung"
@@ -2282,58 +2234,63 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
+#: ../gio/gfile.c:1359
+#: ../gio/glocalfile.c:1059
+#: ../gio/glocalfile.c:1070
#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr "Kait yang memuat tak ada"
-#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258
+#: ../gio/gfile.c:2412
+#: ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr "Tak bisa menyalin atas direktori"
-#: ../gio/gfile.c:2472
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "Tak bisa menyalin direktori atas direktori"
-#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267
+#: ../gio/gfile.c:2481
+#: ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "Berkas tujuan telah ada"
-#: ../gio/gfile.c:2498
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "Tak bisa menyalin direktori secara rekursif"
-#: ../gio/gfile.c:2758
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "Splice tidak didukung"
-#: ../gio/gfile.c:2762
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "Galat saat men-splice berkas: %s"
-#: ../gio/gfile.c:2909
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "Tak bisa menyalin berkas spesial"
-#: ../gio/gfile.c:3483
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "Diberikan nilai link simbolik yang tak valid"
-#: ../gio/gfile.c:3577
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "Tong sampah tak didukung"
-#: ../gio/gfile.c:3626
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "Nama berkas tak boleh mengandung '%c'"
-#: ../gio/gfile.c:6045 ../gio/gvolume.c:332
+#: ../gio/gfile.c:6004
+#: ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "volume tak mengimplementasi pengaitan"
-#: ../gio/gfile.c:6156
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "Tak ada aplikasi terdaftar yang menangani berkas ini"
@@ -2341,12 +2298,15 @@
msgid "Enumerator is closed"
msgstr "Enumerator ditutup"
-#: ../gio/gfileenumerator.c:212 ../gio/gfileenumerator.c:271
-#: ../gio/gfileenumerator.c:371 ../gio/gfileenumerator.c:480
+#: ../gio/gfileenumerator.c:212
+#: ../gio/gfileenumerator.c:271
+#: ../gio/gfileenumerator.c:371
+#: ../gio/gfileenumerator.c:480
msgid "File enumerator has outstanding operation"
msgstr "Enumerator berkas memiliki operasi tertunda"
-#: ../gio/gfileenumerator.c:361 ../gio/gfileenumerator.c:470
+#: ../gio/gfileenumerator.c:361
+#: ../gio/gfileenumerator.c:470
msgid "File enumerator is already closed"
msgstr "Enumerator berkas telah ditutup"
@@ -2359,22 +2319,26 @@
msgid "Malformed input data for GFileIcon"
msgstr "Data masukan salah bentuk bagi GFileIcon"
-#: ../gio/gfileinputstream.c:154 ../gio/gfileinputstream.c:421
-#: ../gio/gfileiostream.c:170 ../gio/gfileoutputstream.c:169
-#: ../gio/gfileoutputstream.c:524
+#: ../gio/gfileinputstream.c:154
+#: ../gio/gfileinputstream.c:420
+#: ../gio/gfileiostream.c:170
+#: ../gio/gfileoutputstream.c:169
+#: ../gio/gfileoutputstream.c:523
msgid "Stream doesn't support query_info"
msgstr "Stream tak mendukung query_info"
-#: ../gio/gfileinputstream.c:336 ../gio/gfileiostream.c:388
-#: ../gio/gfileoutputstream.c:382
+#: ../gio/gfileinputstream.c:335
+#: ../gio/gfileiostream.c:387
+#: ../gio/gfileoutputstream.c:381
msgid "Seek not supported on stream"
msgstr "Seek tak didukung pada stream"
-#: ../gio/gfileinputstream.c:380
+#: ../gio/gfileinputstream.c:379
msgid "Truncate not allowed on input stream"
msgstr "Pemenggalan tak diijinkan pada stream masukan"
-#: ../gio/gfileiostream.c:464 ../gio/gfileoutputstream.c:458
+#: ../gio/gfileiostream.c:463
+#: ../gio/gfileoutputstream.c:457
msgid "Truncate not supported on stream"
msgstr "Pemenggalan tak didukung pada stream"
@@ -2422,12 +2386,14 @@
#. 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:901 ../gio/giostream.c:316
-#: ../gio/goutputstream.c:1210
+#: ../gio/ginputstream.c:898
+#: ../gio/giostream.c:316
+#: ../gio/goutputstream.c:1207
msgid "Stream has outstanding operation"
msgstr "Stream memiliki operasi tertunda"
-#: ../gio/ginetsocketaddress.c:181 ../gio/ginetsocketaddress.c:198
+#: ../gio/ginetsocketaddress.c:181
+#: ../gio/ginetsocketaddress.c:198
#: ../gio/gunixsocketaddress.c:221
msgid "Not enough space for socket address"
msgstr "Tak cukup ruang bagi alamat soket"
@@ -2447,12 +2413,8 @@
#: ../gio/glib-compile-schemas.c:735
#, c-format
-msgid ""
-"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
-"and dash ('-') are permitted."
-msgstr ""
-"nama '%s' tak valid: karakter tak valid '%c'; hanya huruf kecil, angka, dan "
-"minus yang diijinkan."
+msgid "invalid name '%s': invalid character '%c'; only lowercase letters, numbers and dash ('-') are permitted."
+msgstr "nama '%s' tak valid: karakter tak valid '%c'; hanya huruf kecil, angka, dan minus yang diijinkan."
#: ../gio/glib-compile-schemas.c:744
#, c-format
@@ -2485,21 +2447,13 @@
#: ../gio/glib-compile-schemas.c:885
#, c-format
-msgid ""
-"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
-"to modify value"
-msgstr ""
-"<key name='%s'> membayangi <key name='%s'> di <schema id='%s'>; gunakan "
-"<override> untuk mengubah nilai"
+msgid "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> to modify value"
+msgstr "<key name='%s'> membayangi <key name='%s'> di <schema id='%s'>; gunakan <override> untuk mengubah nilai"
#: ../gio/glib-compile-schemas.c:896
#, c-format
-msgid ""
-"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
-"to <key>"
-msgstr ""
-"persis satu dari 'type', 'enum', atau 'flags' mesti dinyatakan sebagai "
-"atribut dari <key>"
+msgid "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to <key>"
+msgstr "persis satu dari 'type', 'enum', atau 'flags' mesti dinyatakan sebagai atribut dari <key>"
#: ../gio/glib-compile-schemas.c:915
#, c-format
@@ -2552,25 +2506,18 @@
#: ../gio/glib-compile-schemas.c:1108
#, c-format
-msgid ""
-"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
-msgstr ""
-"<schema id='%s'> adalah daftar, memperluas <schema id='%s'> yang bukan daftar"
+msgid "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
+msgstr "<schema id='%s'> adalah daftar, memperluas <schema id='%s'> yang bukan daftar"
#: ../gio/glib-compile-schemas.c:1118
#, 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'> memperluas <schema id='%s' list-of='%s'> tapi "
-"'%s' tak memperluas '%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'> memperluas <schema id='%s' list-of='%s'> tapi '%s' tak memperluas '%s'"
#: ../gio/glib-compile-schemas.c:1135
#, c-format
msgid "a path, if given, must begin and end with a slash"
-msgstr ""
-"suatu path, bila diberikan, harus dimulai dan diakhiri dengan garis miring"
+msgstr "suatu path, bila diberikan, harus dimulai dan diakhiri dengan garis miring"
#: ../gio/glib-compile-schemas.c:1142
#, c-format
@@ -2582,115 +2529,104 @@
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> sudah ditentukan"
-#: ../gio/glib-compile-schemas.c:1385
+#: ../gio/glib-compile-schemas.c:1387
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Elemen <%s> tidak diijinkan di dalam <%s>"
-#: ../gio/glib-compile-schemas.c:1389
+#: ../gio/glib-compile-schemas.c:1391
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "Elemen <%s> tidak diijinkan pada aras puncak"
-#: ../gio/glib-compile-schemas.c:1483
+#: ../gio/glib-compile-schemas.c:1485
#, c-format
msgid "text may not appear inside <%s>"
msgstr "teks tidak boleh muncul di dalam <%s>"
#. Translators: Do not translate "--strict".
-#: ../gio/glib-compile-schemas.c:1652 ../gio/glib-compile-schemas.c:1723
-#: ../gio/glib-compile-schemas.c:1799
+#: ../gio/glib-compile-schemas.c:1654
+#: ../gio/glib-compile-schemas.c:1725
+#: ../gio/glib-compile-schemas.c:1801
#, c-format
msgid "--strict was specified; exiting.\n"
msgstr "--strict dinyatakan; keluar.\n"
-#: ../gio/glib-compile-schemas.c:1660
+#: ../gio/glib-compile-schemas.c:1662
#, c-format
msgid "This entire file has been ignored.\n"
msgstr "Seluruh berkas telah diabaikan.\n"
-#: ../gio/glib-compile-schemas.c:1719
+#: ../gio/glib-compile-schemas.c:1721
#, c-format
msgid "Ignoring this file.\n"
msgstr "Mengabaikan berkas ini.\n"
-#: ../gio/glib-compile-schemas.c:1759
+#: ../gio/glib-compile-schemas.c:1761
#, c-format
msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
-msgstr ""
-"Tak ada kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas penimpa "
-"'%s'"
+msgstr "Tak ada kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas penimpa '%s'"
-#: ../gio/glib-compile-schemas.c:1765 ../gio/glib-compile-schemas.c:1823
-#: ../gio/glib-compile-schemas.c:1851
+#: ../gio/glib-compile-schemas.c:1767
+#: ../gio/glib-compile-schemas.c:1825
+#: ../gio/glib-compile-schemas.c:1853
#, c-format
msgid "; ignoring override for this key.\n"
msgstr "; mengabaikan penimpaan kunci ini.\n"
-#: ../gio/glib-compile-schemas.c:1769 ../gio/glib-compile-schemas.c:1827
-#: ../gio/glib-compile-schemas.c:1855
+#: ../gio/glib-compile-schemas.c:1771
+#: ../gio/glib-compile-schemas.c:1829
+#: ../gio/glib-compile-schemas.c:1857
#, c-format
msgid " and --strict was specified; exiting.\n"
msgstr " dan --strict dinyatakan; keluar.\n"
-#: ../gio/glib-compile-schemas.c:1785
+#: ../gio/glib-compile-schemas.c:1787
#, c-format
-#| msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
-msgid ""
-"error parsing key `%s' in schema `%s' as specified in override file `%s': %"
-"s. "
-msgstr ""
-"galat mengurai kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas "
-"penimpa '%s': %s."
+msgid "error parsing key `%s' in schema `%s' as specified in override file `%s': %s. "
+msgstr "galat mengurai kunci '%s' dalam skema '%s' sebagaimana dinyatakan di berkas penimpa '%s': %s."
-#: ../gio/glib-compile-schemas.c:1795
+#: ../gio/glib-compile-schemas.c:1797
#, c-format
msgid "Ignoring override for this key.\n"
msgstr "Mengabaikan penimpaan bagi kunci ini.\n"
-#: ../gio/glib-compile-schemas.c:1813
+#: ../gio/glib-compile-schemas.c:1815
#, c-format
-msgid ""
-"override for key `%s' in schema `%s' in override file `%s' is out of the "
-"range given in the schema"
-msgstr ""
-"penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' di luar "
-"jangkauan yang diberikan di dalam skema"
+msgid "override for key `%s' in schema `%s' in override file `%s' is out of the range given in the schema"
+msgstr "penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' di luar jangkauan yang diberikan di dalam skema"
-#: ../gio/glib-compile-schemas.c:1841
+#: ../gio/glib-compile-schemas.c:1843
#, c-format
-msgid ""
-"override for key `%s' in schema `%s' in override file `%s' is not in the "
-"list of valid choices"
-msgstr ""
-"penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' tak ada di "
-"dalam daftar pilihan yang valid"
+msgid "override for key `%s' in schema `%s' in override file `%s' is not in the list of valid choices"
+msgstr "penimpa bagi kunci '%s' dalam skema '%s' di berkas penimpa '%s' tak ada di dalam daftar pilihan yang valid"
-#: ../gio/glib-compile-schemas.c:1895
+#: ../gio/glib-compile-schemas.c:1897
msgid "where to store the gschemas.compiled file"
msgstr "dimana menyimpan berkas gschemas.compiled"
-#: ../gio/glib-compile-schemas.c:1895 ../gio/glib-compile-schemas.c:1908
+#: ../gio/glib-compile-schemas.c:1897
+#: ../gio/glib-compile-schemas.c:1910
msgid "DIRECTORY"
msgstr "DIREKTORI"
-#: ../gio/glib-compile-schemas.c:1896
+#: ../gio/glib-compile-schemas.c:1898
msgid "Abort on any errors in schemas"
msgstr "Gugurkan pada sebarang galat dalam skema"
-#: ../gio/glib-compile-schemas.c:1897
+#: ../gio/glib-compile-schemas.c:1899
msgid "Do not write the gschema.compiled file"
msgstr "Jangan menulis berkas gschema.compiled"
-#: ../gio/glib-compile-schemas.c:1898
+#: ../gio/glib-compile-schemas.c:1900
msgid "This option will be removed soon."
msgstr "Opsi ini akan segera dihapus."
-#: ../gio/glib-compile-schemas.c:1899
+#: ../gio/glib-compile-schemas.c:1901
msgid "Do not enforce key name restrictions"
msgstr "Jangan paksakan pembatasan nama kunci"
-#: ../gio/glib-compile-schemas.c:1911
+#: ../gio/glib-compile-schemas.c:1913
msgid ""
"Compile all GSettings schema files into a schema cache.\n"
"Schema files are required to have the extension .gschema.xml,\n"
@@ -2700,22 +2636,22 @@
"Berkas skema diharuskan memiliki ekstensi .gschema.xml,\n"
"dan berkas singgahan dinamai gschemas.compiled."
-#: ../gio/glib-compile-schemas.c:1927
+#: ../gio/glib-compile-schemas.c:1929
#, c-format
msgid "You should give exactly one directory name\n"
msgstr "Anda mesti memberikan hanya satu nama direktori\n"
-#: ../gio/glib-compile-schemas.c:1966
+#: ../gio/glib-compile-schemas.c:1968
#, c-format
msgid "No schema files found: "
msgstr "Tidak menemukan berkas skema: "
-#: ../gio/glib-compile-schemas.c:1969
+#: ../gio/glib-compile-schemas.c:1971
#, c-format
msgid "doing nothing.\n"
msgstr "tak melakukan apapun.\n"
-#: ../gio/glib-compile-schemas.c:1972
+#: ../gio/glib-compile-schemas.c:1974
#, c-format
msgid "removed existing output file.\n"
msgstr "menghapus berkas keluaran yang telah ada.\n"
@@ -2724,7 +2660,8 @@
msgid "Unable to find default local directory monitor type"
msgstr "Tak bisa temukan tipe pemantau direktori lokal baku"
-#: ../gio/glocalfile.c:593 ../gio/win32/gwinhttpfile.c:422
+#: ../gio/glocalfile.c:593
+#: ../gio/win32/gwinhttpfile.c:422
#, c-format
msgid "Invalid filename %s"
msgstr "Nama berkas tak valid: %s"
@@ -2738,7 +2675,8 @@
msgid "Can't rename root directory"
msgstr "Tak bisa mengubah nama direktori root"
-#: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151
+#: ../gio/glocalfile.c:1125
+#: ../gio/glocalfile.c:1151
#, c-format
msgid "Error renaming file: %s"
msgstr "Galat saat mengubah nama berkas: %s"
@@ -2747,9 +2685,13 @@
msgid "Can't rename file, filename already exist"
msgstr "Tak bisa mengubah nama berkas, nama telah dipakai"
-#: ../gio/glocalfile.c:1147 ../gio/glocalfile.c:2131 ../gio/glocalfile.c:2160
-#: ../gio/glocalfile.c:2320 ../gio/glocalfileoutputstream.c:571
-#: ../gio/glocalfileoutputstream.c:624 ../gio/glocalfileoutputstream.c:669
+#: ../gio/glocalfile.c:1147
+#: ../gio/glocalfile.c:2131
+#: ../gio/glocalfile.c:2160
+#: ../gio/glocalfile.c:2320
+#: ../gio/glocalfileoutputstream.c:571
+#: ../gio/glocalfileoutputstream.c:624
+#: ../gio/glocalfileoutputstream.c:669
#: ../gio/glocalfileoutputstream.c:1151
msgid "Invalid filename"
msgstr "Nama berkas tak valid"
@@ -2782,7 +2724,8 @@
msgid "Unable to find toplevel directory for trash"
msgstr "Tak bisa temukan direktori puncak bagi tong sampah"
-#: ../gio/glocalfile.c:1933 ../gio/glocalfile.c:1953
+#: ../gio/glocalfile.c:1933
+#: ../gio/glocalfile.c:1953
msgid "Unable to find or create trash directory"
msgstr "Tak bisa temukan atau buat direktori tong sampah"
@@ -2791,7 +2734,9 @@
msgid "Unable to create trashing info file: %s"
msgstr "Tak bis membuat berkas informasi pembuangan ke tong sampah: %s"
-#: ../gio/glocalfile.c:2016 ../gio/glocalfile.c:2021 ../gio/glocalfile.c:2101
+#: ../gio/glocalfile.c:2016
+#: ../gio/glocalfile.c:2021
+#: ../gio/glocalfile.c:2101
#: ../gio/glocalfile.c:2108
#, c-format
msgid "Unable to trash file: %s"
@@ -2812,7 +2757,8 @@
msgid "Error making symbolic link: %s"
msgstr "Galat saat membuat taut simbolis: %s"
-#: ../gio/glocalfile.c:2230 ../gio/glocalfile.c:2324
+#: ../gio/glocalfile.c:2230
+#: ../gio/glocalfile.c:2324
#, c-format
msgid "Error moving file: %s"
msgstr "Galat saat memindah berkas: %s"
@@ -2821,9 +2767,12 @@
msgid "Can't move directory over directory"
msgstr "Tak bisa memindah direktori atas direktori"
-#: ../gio/glocalfile.c:2280 ../gio/glocalfileoutputstream.c:949
-#: ../gio/glocalfileoutputstream.c:963 ../gio/glocalfileoutputstream.c:978
-#: ../gio/glocalfileoutputstream.c:994 ../gio/glocalfileoutputstream.c:1008
+#: ../gio/glocalfile.c:2280
+#: ../gio/glocalfileoutputstream.c:949
+#: ../gio/glocalfileoutputstream.c:963
+#: ../gio/glocalfileoutputstream.c:978
+#: ../gio/glocalfileoutputstream.c:994
+#: ../gio/glocalfileoutputstream.c:1008
msgid "Backup file creation failed"
msgstr "Pembuatan berkas cadangan gagal"
@@ -2853,7 +2802,8 @@
msgid "Error setting extended attribute '%s': %s"
msgstr "Galat saat menata atribut tambahan '%s': %s"
-#: ../gio/glocalfileinfo.c:1483 ../gio/glocalfileoutputstream.c:833
+#: ../gio/glocalfileinfo.c:1483
+#: ../gio/glocalfileoutputstream.c:833
#, c-format
msgid "Error stating file '%s': %s"
msgstr "Galat saat men-stat berkas '%s': %s"
@@ -2875,7 +2825,8 @@
msgid "Invalid attribute type (uint64 expected)"
msgstr "Tipe atribut tak valid (diharapkan uint64)"
-#: ../gio/glocalfileinfo.c:1851 ../gio/glocalfileinfo.c:1870
+#: ../gio/glocalfileinfo.c:1851
+#: ../gio/glocalfileinfo.c:1870
msgid "Invalid attribute type (byte string expected)"
msgstr "Tipe atribut tak valid (diharapkan string byte)"
@@ -2897,7 +2848,8 @@
msgid "symlink must be non-NULL"
msgstr "symlink tak boleh NULL"
-#: ../gio/glocalfileinfo.c:2005 ../gio/glocalfileinfo.c:2024
+#: ../gio/glocalfileinfo.c:2005
+#: ../gio/glocalfileinfo.c:2024
#: ../gio/glocalfileinfo.c:2035
#, c-format
msgid "Error setting symlink: %s"
@@ -2930,19 +2882,23 @@
msgid "Setting attribute %s not supported"
msgstr "Penataan atribut %s tak didukung"
-#: ../gio/glocalfileinputstream.c:185 ../gio/glocalfileoutputstream.c:722
+#: ../gio/glocalfileinputstream.c:185
+#: ../gio/glocalfileoutputstream.c:722
#, c-format
msgid "Error reading from file: %s"
msgstr "Galat saat membaca dari berkas: %s"
-#: ../gio/glocalfileinputstream.c:216 ../gio/glocalfileinputstream.c:228
-#: ../gio/glocalfileinputstream.c:340 ../gio/glocalfileoutputstream.c:470
+#: ../gio/glocalfileinputstream.c:216
+#: ../gio/glocalfileinputstream.c:228
+#: ../gio/glocalfileinputstream.c:340
+#: ../gio/glocalfileoutputstream.c:470
#: ../gio/glocalfileoutputstream.c:1026
#, c-format
msgid "Error seeking in file: %s"
msgstr "Galat saat men-seek di berkas: %s"
-#: ../gio/glocalfileinputstream.c:261 ../gio/glocalfileoutputstream.c:256
+#: ../gio/glocalfileinputstream.c:261
+#: ../gio/glocalfileoutputstream.c:256
#: ../gio/glocalfileoutputstream.c:351
#, c-format
msgid "Error closing file: %s"
@@ -2952,7 +2908,8 @@
msgid "Unable to find default local file monitor type"
msgstr "Tak bisa temukan tipe pemantauan berkas lokal baku"
-#: ../gio/glocalfileoutputstream.c:202 ../gio/glocalfileoutputstream.c:235
+#: ../gio/glocalfileoutputstream.c:202
+#: ../gio/glocalfileoutputstream.c:235
#: ../gio/glocalfileoutputstream.c:743
#, c-format
msgid "Error writing to file: %s"
@@ -2963,7 +2920,8 @@
msgid "Error removing old backup link: %s"
msgstr "Galat saat menghapus taut cadangan lama: %s"
-#: ../gio/glocalfileoutputstream.c:297 ../gio/glocalfileoutputstream.c:310
+#: ../gio/glocalfileoutputstream.c:297
+#: ../gio/glocalfileoutputstream.c:310
#, c-format
msgid "Error creating backup copy: %s"
msgstr "Galat saat membuat salinan cadangan: %s"
@@ -2973,14 +2931,18 @@
msgid "Error renaming temporary file: %s"
msgstr "Galat saat mengubah nama berkas sementara: %s"
-#: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1077
+#: ../gio/glocalfileoutputstream.c:516
+#: ../gio/glocalfileoutputstream.c:1077
#, c-format
msgid "Error truncating file: %s"
msgstr "Galat saat memenggal berkas: %s"
-#: ../gio/glocalfileoutputstream.c:577 ../gio/glocalfileoutputstream.c:630
-#: ../gio/glocalfileoutputstream.c:675 ../gio/glocalfileoutputstream.c:815
-#: ../gio/glocalfileoutputstream.c:1058 ../gio/glocalfileoutputstream.c:1157
+#: ../gio/glocalfileoutputstream.c:577
+#: ../gio/glocalfileoutputstream.c:630
+#: ../gio/glocalfileoutputstream.c:675
+#: ../gio/glocalfileoutputstream.c:815
+#: ../gio/glocalfileoutputstream.c:1058
+#: ../gio/glocalfileoutputstream.c:1157
#, c-format
msgid "Error opening file '%s': %s"
msgstr "Galat saat membuka berkas '%s': %s"
@@ -3002,7 +2964,8 @@
msgid "Error removing old file: %s"
msgstr "Galat saat menghapus berkas lama: %s"
-#: ../gio/gmemoryinputstream.c:486 ../gio/gmemoryoutputstream.c:746
+#: ../gio/gmemoryinputstream.c:486
+#: ../gio/gmemoryoutputstream.c:746
msgid "Invalid GSeekType supplied"
msgstr "GSeekType yang tak valid diberikan"
@@ -3023,12 +2986,8 @@
msgstr "Gagal mengubah ukuran memori stream keluaran"
#: ../gio/gmemoryoutputstream.c:600
-msgid ""
-"Amount of memory required to process the write is larger than available "
-"address space"
-msgstr ""
-"Banyaknya memori yang diperlukan untuk memroses penulisan lebih besar "
-"daripada ruang tersedia"
+msgid "Amount of memory required to process the write is larger than available address space"
+msgstr "Banyaknya memori yang diperlukan untuk memroses penulisan lebih besar daripada ruang tersedia"
#: ../gio/gmemoryoutputstream.c:756
msgid "Requested seek before the beginning of the stream"
@@ -3092,11 +3051,13 @@
msgid "Hostname '%s' contains '[' but not ']'"
msgstr "Nama host '%s' memuat '[' tapi tanpa ']'"
-#: ../gio/goutputstream.c:207 ../gio/goutputstream.c:408
+#: ../gio/goutputstream.c:207
+#: ../gio/goutputstream.c:408
msgid "Output stream doesn't implement write"
msgstr "Stream keluaran tak mengimplementasi penulisan"
-#: ../gio/goutputstream.c:369 ../gio/goutputstream.c:849
+#: ../gio/goutputstream.c:369
+#: ../gio/goutputstream.c:849
msgid "Source stream is already closed"
msgstr "Stream sumber telah ditutup"
@@ -3110,137 +3071,377 @@
msgid "Error reverse-resolving '%s': %s"
msgstr "Galat saat mengurai balik '%s': %s"
-#: ../gio/gresolver.c:822 ../gio/gresolver.c:900
+#: ../gio/gresolver.c:822
+#: ../gio/gresolver.c:900
#, c-format
msgid "No service record for '%s'"
msgstr "Tak ada catatan layanan bagi '%s'"
-#: ../gio/gresolver.c:827 ../gio/gresolver.c:905
+#: ../gio/gresolver.c:827
+#: ../gio/gresolver.c:905
#, c-format
msgid "Temporarily unable to resolve '%s'"
msgstr "Sementara tidak dapat menguraikan '%s'"
-#: ../gio/gresolver.c:832 ../gio/gresolver.c:910
+#: ../gio/gresolver.c:832
+#: ../gio/gresolver.c:910
#, c-format
msgid "Error resolving '%s'"
msgstr "Galat saat menguraikan '%s'"
-#: ../gio/gsocket.c:276
+#: ../gio/gsettings-tool.c:60
+#, c-format
+msgid "Schema '%s' is not relocatable (path must not be specified)\n"
+msgstr "Skema '%s' tak dapat dipindahkan (path tak boleh dinyatakan)\n"
+
+#: ../gio/gsettings-tool.c:65
+#: ../gio/gsettings-tool.c:82
+#, c-format
+#| msgid "No such interface `%s'"
+msgid "No such schema '%s'\n"
+msgstr "Tak ada skema '%s'\n"
+
+#: ../gio/gsettings-tool.c:77
+#, c-format
+msgid "Schema '%s' is relocatable (path must be specified)\n"
+msgstr "Skema '%s' dapat dipindahkan (path mesti dinyatakan)\n"
+
+#: ../gio/gsettings-tool.c:92
+#, c-format
+msgid "Empty path given.\n"
+msgstr "Path yang diberikan kosong.\n"
+
+#: ../gio/gsettings-tool.c:98
+#, c-format
+#| msgid "a path, if given, must begin and end with a slash"
+msgid "Path must begin with a slash (/)\n"
+msgstr "Path harus dimulai dengan garis miring (/)\n"
+
+#: ../gio/gsettings-tool.c:104
+#, c-format
+#| msgid "a path, if given, must begin and end with a slash"
+msgid "Path must end with a slash (/)\n"
+msgstr "Path harus diakhiri dengan garis miring (/)\n"
+
+#: ../gio/gsettings-tool.c:110
+#, c-format
+msgid "Path must not contain two adjacent slashes (//)\n"
+msgstr "Path tak boleh memuat dua slash berturutan (//)\n"
+
+#: ../gio/gsettings-tool.c:131
+#, c-format
+#| msgid "No such property `%s'"
+msgid "No such key '%s'\n"
+msgstr "Tak ada kunci '%s'\n"
+
+#: ../gio/gsettings-tool.c:429
+#, c-format
+msgid "The provided value is outside of the valid range\n"
+msgstr "Nilai yang diberikan diluar rentang yang valid\n"
+
+#: ../gio/gsettings-tool.c:458
+msgid "List the installed (non-relocatable) schemas"
+msgstr "Daftar skema (yang tak bisa dipindah) yang terpasang"
+
+#: ../gio/gsettings-tool.c:464
+msgid "List the installed relocatable schemas"
+msgstr "Daftar skema yang dapat dipindah yang terpasang"
+
+#: ../gio/gsettings-tool.c:470
+msgid "Lists the keys in SCHEMA"
+msgstr "Daftar kunci di SKEMA"
+
+#: ../gio/gsettings-tool.c:471
+#: ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
+msgid "SCHEMA[:PATH]"
+msgstr "SKEMA[:PATH]"
+
+#: ../gio/gsettings-tool.c:476
+msgid "Lists the children of SCHEMA"
+msgstr "Daftar anak dari SKEMA"
+
+#: ../gio/gsettings-tool.c:482
+msgid "List keys and values, recursively"
+msgstr "Daftar kunci dan nilai, secara rekursif"
+
+#: ../gio/gsettings-tool.c:488
+#| msgid "Get the value of KEY"
+msgid "Gets the value of KEY"
+msgstr "Ambil nilai dari KUNCI"
+
+#: ../gio/gsettings-tool.c:489
+#: ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507
+#: ../gio/gsettings-tool.c:513
+#| msgid "SCHEMA KEY"
+msgid "SCHEMA[:PATH] KEY"
+msgstr "SKEMA[:PATH] KUNCI"
+
+#: ../gio/gsettings-tool.c:494
+msgid "Queries the range of valid values for KEY"
+msgstr "Kueri rentang nilai yang valid bagi KUNCI"
+
+#: ../gio/gsettings-tool.c:500
+#| msgid "Set the value of KEY"
+msgid "Sets the value of KEY to VALUE"
+msgstr "Menata nilai KUNCI ke NILAI"
+
+#: ../gio/gsettings-tool.c:501
+#| msgid "SCHEMA KEY VALUE"
+msgid "SCHEMA[:PATH] KEY VALUE"
+msgstr "SKEMA[:PATH] KUNCI NILAI"
+
+#: ../gio/gsettings-tool.c:506
+#| msgid "Sets KEY to its default value"
+msgid "Resets KEY to its default value"
+msgstr "Menata KUNCI ke nilai bawaannya"
+
+#: ../gio/gsettings-tool.c:512
+#| msgid "Find out whether KEY is writable"
+msgid "Checks if KEY is writable"
+msgstr "Periksa apakah KUNCI dapat ditulisi"
+
+#: ../gio/gsettings-tool.c:518
+msgid ""
+"Monitors KEY for changes.\n"
+"If no KEY is specified, monitor all keys in SCHEMA.\n"
+"Use ^C to stop monitoring.\n"
+msgstr ""
+"Pantau perubahan atas KUNCI.\n"
+"Bila tak ada KUNCI yang dinyatakan, memantau semua kunci dalam SKEMA.\n"
+"Gunakan ^C untuk berhenti memantau.\n"
+
+#: ../gio/gsettings-tool.c:521
+#| msgid "SCHEMA KEY"
+msgid "SCHEMA[:PATH] [KEY]"
+msgstr "SKEMA[:PATH] [KUNCI]"
+
+#: ../gio/gsettings-tool.c:525
+#, c-format
+#| msgid "Unknown command '%s'\n"
+msgid ""
+"Unknown command %s\n"
+"\n"
+msgstr ""
+"Perintah tidak dikenal %s\n"
+"\n"
+
+#: ../gio/gsettings-tool.c:533
+msgid ""
+"Usage:\n"
+" gsettings COMMAND [ARGS...]\n"
+"\n"
+"Commands:\n"
+" help Show this information\n"
+" list-schemas List installed schemas\n"
+" list-relocatable-schemas List relocatable schemas\n"
+" list-keys List keys in a schema\n"
+" list-children List children of a schema\n"
+" list-recursively List keys and values, recursively\n"
+" range Queries the range of a key\n"
+" get Get the value of a key\n"
+" set Set the value of a key\n"
+" reset Reset the value of a key\n"
+" writable Check if a key is writable\n"
+" monitor Watch for changes\n"
+"\n"
+"Use 'gsettings help COMMAND' to get detailed help.\n"
+"\n"
+msgstr ""
+"Cara pakai:\n"
+" gsettings PERINTAH [ARG...]\n"
+"\n"
+"Perintah:\n"
+" help Tampilkan informasi ini\n"
+" list-schemas Lihat daftar skema terpasang\n"
+" list-relocatable-schemas Lihat daftar skema yang dapat dipindah\n"
+" list-keys Lihat daftar kunci dalam sebuah skema\n"
+" list-children Lihat daftar anak dari sebuah skema\n"
+" list-recursively Lihat daftar kunci dan nilai secara rekursif\n"
+" range Kueri rentang dari suatu kunci\n"
+" get Ambil nilai dari suatu kunci\n"
+" set Atur nilai dari suatu kunci\n"
+" reset Reset nilai dari suatu kunci\n"
+" writable Periksa apakah suatu kunci dapat ditulisi\n"
+" monitor Pantau perubahan\n"
+"\n"
+"Gunakan 'gsettings help PERINTAH' untuk memperoleh bantuan rinci.\n"
+"\n"
+
+#: ../gio/gsettings-tool.c:554
+#, c-format
+msgid ""
+"Usage:\n"
+" gsettings %s %s\n"
+"\n"
+"%s\n"
+"\n"
+msgstr ""
+"Cara pakai:\n"
+" gsettings %s %s\n"
+"\n"
+"%s\n"
+"\n"
+
+#: ../gio/gsettings-tool.c:559
+msgid "Arguments:\n"
+msgstr "Argumen:\n"
+
+#: ../gio/gsettings-tool.c:563
+#| msgid ""
+#| "Arguments:\n"
+#| " SCHEMA The id of the schema\n"
+#| " KEY The name of the key\n"
+msgid ""
+" SCHEMA The name of the schema\n"
+" PATH The path, for relocatable schemas\n"
+msgstr ""
+" SKEMA Nama skema\n"
+" PATH Path, bagi skema yang dapat dipindah\n"
+
+#: ../gio/gsettings-tool.c:568
+msgid " KEY The (optional) key within the schema\n"
+msgstr " KUNCI Kunci (opsional) dalam skema\n"
+
+#: ../gio/gsettings-tool.c:572
+msgid " KEY The key within the schema\n"
+msgstr " KUNCI Kunci dalam skema\n"
+
+#: ../gio/gsettings-tool.c:576
+msgid " VALUE The value to set\n"
+msgstr " NILAI Tatanan nilai\n"
+
+#: ../gio/gsettings-tool.c:652
+#, c-format
+msgid "Empty schema name given"
+msgstr "Nama skema yang diberikan kosong"
+
+#: ../gio/gsocket.c:277
msgid "Invalid socket, not initialized"
msgstr "Soket tak valid, tak diinisialisasi"
-#: ../gio/gsocket.c:283
+#: ../gio/gsocket.c:284
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Soket tak valid, inisialisasi gagal karena: %s"
-#: ../gio/gsocket.c:291
+#: ../gio/gsocket.c:292
msgid "Socket is already closed"
msgstr "Soket telah ditutup"
-#: ../gio/gsocket.c:299 ../gio/gsocket.c:2716 ../gio/gsocket.c:2760
+#: ../gio/gsocket.c:300
+#: ../gio/gsocket.c:2769
+#: ../gio/gsocket.c:2813
msgid "Socket I/O timed out"
msgstr "I/O soket kehabisan waktu"
-#: ../gio/gsocket.c:421
+#: ../gio/gsocket.c:443
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "membuat GSocket dari fd: %s"
-#: ../gio/gsocket.c:455 ../gio/gsocket.c:471 ../gio/gsocket.c:2113
+#: ../gio/gsocket.c:477
+#: ../gio/gsocket.c:493
+#: ../gio/gsocket.c:2135
#, c-format
msgid "Unable to create socket: %s"
msgstr "Tak bisa membuat soket: %s"
-#: ../gio/gsocket.c:455
+#: ../gio/gsocket.c:477
msgid "Unknown protocol was specified"
msgstr "Protokol tak dikenal dinyatakan"
-#: ../gio/gsocket.c:1224
+#: ../gio/gsocket.c:1246
#, c-format
msgid "could not get local address: %s"
msgstr "tak bisa mendapat alamat lokal: %s"
-#: ../gio/gsocket.c:1267
+#: ../gio/gsocket.c:1289
#, c-format
msgid "could not get remote address: %s"
msgstr "tak bisa mendapat alamat jauh: %s"
-#: ../gio/gsocket.c:1328
+#: ../gio/gsocket.c:1350
#, c-format
msgid "could not listen: %s"
msgstr "tak bisa mendengarkan: %s"
-#: ../gio/gsocket.c:1402
+#: ../gio/gsocket.c:1424
#, c-format
msgid "Error binding to address: %s"
msgstr "Galat saat mengikat ke alamat: %s"
-#: ../gio/gsocket.c:1522
+#: ../gio/gsocket.c:1544
#, c-format
msgid "Error accepting connection: %s"
msgstr "Galat saat menerima sambungan: %s"
-#: ../gio/gsocket.c:1639
+#: ../gio/gsocket.c:1661
msgid "Error connecting: "
msgstr "Galat saat menyambung: "
-#: ../gio/gsocket.c:1644
+#: ../gio/gsocket.c:1666
msgid "Connection in progress"
msgstr "Penyambungan tengah berlangsung"
-#: ../gio/gsocket.c:1651
+#: ../gio/gsocket.c:1673
#, c-format
msgid "Error connecting: %s"
msgstr "Galat saat menyambung: %s"
-#: ../gio/gsocket.c:1694 ../gio/gsocket.c:3479
+#: ../gio/gsocket.c:1716
+#: ../gio/gsocket.c:3532
#, c-format
msgid "Unable to get pending error: %s"
msgstr "Tak bisa mendapat kesalahan yang tertunda: %s"
-#: ../gio/gsocket.c:1826
+#: ../gio/gsocket.c:1848
#, c-format
msgid "Error receiving data: %s"
msgstr "Galat saat menerima data: %s"
-#: ../gio/gsocket.c:2000
+#: ../gio/gsocket.c:2022
#, c-format
msgid "Error sending data: %s"
msgstr "Galat saat mengirim data: %s"
-#: ../gio/gsocket.c:2192
+#: ../gio/gsocket.c:2214
#, c-format
msgid "Error closing socket: %s"
msgstr "Galat saat menutup soket: %s"
-#: ../gio/gsocket.c:2709
+#: ../gio/gsocket.c:2762
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Menunggu kondisi soket: %s"
-#: ../gio/gsocket.c:2999
+#: ../gio/gsocket.c:3052
msgid "GSocketControlMessage not supported on windows"
msgstr "GSocketControlMessage tak didukung pada windows"
-#: ../gio/gsocket.c:3258 ../gio/gsocket.c:3399
+#: ../gio/gsocket.c:3311
+#: ../gio/gsocket.c:3452
#, c-format
msgid "Error receiving message: %s"
msgstr "Galat saat menerima pesan: %s"
-#: ../gio/gsocket.c:3494
+#: ../gio/gsocket.c:3547
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials tidak diimplementasikan untuk OS ini"
-#: ../gio/gsocketclient.c:674 ../gio/gsocketclient.c:1153
+#: ../gio/gsocketclient.c:798
+#: ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "Galat tak dikenal saat hubungan"
-#: ../gio/gsocketclient.c:711 ../gio/gsocketclient.c:1038
+#: ../gio/gsocketclient.c:836
+#: ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr "Mencoba proksi melalui koneksi bukan TCP tidak didukung."
-#: ../gio/gsocketclient.c:749 ../gio/gsocketclient.c:1061
+#: ../gio/gsocketclient.c:858
+#: ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr "Protokol proksi '%s' tidak didukung."
@@ -3276,7 +3477,8 @@
msgid "Connection through SOCKSv4 server was rejected"
msgstr "Koneksi melalui server SOCKSv4 ditolak"
-#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:328
+#: ../gio/gsocks5proxy.c:155
+#: ../gio/gsocks5proxy.c:328
#: ../gio/gsocks5proxy.c:338
msgid "The server is not a SOCKSv5 proxy server."
msgstr "Server bukan server proksi SOCKSv5."
@@ -3286,16 +3488,13 @@
msgstr "Proksi SOCKv5 memerlukan otentikasi."
#: ../gio/gsocks5proxy.c:179
-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 "SOCKSv5 memerlukan metoda otentikasi yang tidak didukung oleh GLib."
#: ../gio/gsocks5proxy.c:208
#, c-format
msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)."
-msgstr ""
-"Nama pengguna atau kata sandi terlalu panjang bagi protokol SOCKSv5 (maks. %"
-"i)."
+msgstr "Nama pengguna atau kata sandi terlalu panjang bagi protokol SOCKSv5 (maks. %i)."
#: ../gio/gsocks5proxy.c:239
msgid "SOCKSv5 authentication failed due to wrong username or password."
@@ -3304,8 +3503,7 @@
#: ../gio/gsocks5proxy.c:289
#, c-format
msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)"
-msgstr ""
-"Nama host '%s' terlalu panjang untuk protokol SOCKSv5 (maksimal %i bita)"
+msgstr "Nama host '%s' terlalu panjang untuk protokol SOCKSv5 (maksimal %i bita)"
#: ../gio/gsocks5proxy.c:352
msgid "The SOCKSv5 proxy server uses unkown address type."
@@ -3340,7 +3538,8 @@
msgstr "Proksi SOCSKv5 tidak mendukung jenis alamat yang diberikan."
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
+#| msgid "Unkown SOCKSv5 proxy error."
+msgid "Unknown SOCKSv5 proxy error."
msgstr "Galat tak dikenal pada proksi SOCKSv5."
#: ../gio/gthemedicon.c:498
@@ -3348,12 +3547,26 @@
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "Tak bisa menangani pengkodean versi %d dari GThemedIcon"
-#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505
+#: ../gio/gtlscertificate.c:228
+msgid "No PEM-encoded certificate found"
+msgstr "Tak ditemukan sertifika terenkode-PEM"
+
+#: ../gio/gtlscertificate.c:237
+msgid "Could not parse PEM-encoded certificate"
+msgstr "Tak bisa mengurai sertifikat terenkode-PEM"
+
+#: ../gio/gtlscertificate.c:258
+msgid "Could not parse PEM-encoded private key"
+msgstr "Tak bisa mengurai kunci privat terenkode-PEM"
+
+#: ../gio/gunixconnection.c:164
+#: ../gio/gunixconnection.c:505
#, c-format
msgid "Expecting 1 control message, got %d"
msgstr "Mengharapkan 1 pesan kendali, memperoleh %d"
-#: ../gio/gunixconnection.c:177 ../gio/gunixconnection.c:515
+#: ../gio/gunixconnection.c:177
+#: ../gio/gunixconnection.c:515
msgid "Unexpected type of ancillary data"
msgstr "Tipe yang tak diharapkan dari data ancillary"
@@ -3377,12 +3590,8 @@
#: ../gio/gunixconnection.c:448
#, c-format
-msgid ""
-"Unexpected option length while checking if SO_PASSCRED is enabled for "
-"socket. Expected %d bytes, got %d"
-msgstr ""
-"Panjang opsi yang tak diduga ketika memeriksa apakah SO_PASSCRED diaktifkan "
-"bagi soket. Berharap %d byte, mendapat %d"
+msgid "Unexpected option length while checking if SO_PASSCRED is enabled for socket. Expected %d bytes, got %d"
+msgstr "Panjang opsi yang tak diduga ketika memeriksa apakah SO_PASSCRED diaktifkan bagi soket. Berharap %d byte, mendapat %d"
#: ../gio/gunixconnection.c:465
#, c-format
@@ -3390,35 +3599,37 @@
msgstr "Galat saat mengaktifkan SO_PASSCRED: %s"
#: ../gio/gunixconnection.c:495
-msgid ""
-"Expecting to read a single byte for receiving credentials but read zero bytes"
-msgstr ""
-"Berharap membaca byte tunggal untuk penerimaan kredensial tapi membaca nol "
-"byte"
+msgid "Expecting to read a single byte for receiving credentials but read zero bytes"
+msgstr "Berharap membaca byte tunggal untuk penerimaan kredensial tapi membaca nol byte"
#: ../gio/gunixconnection.c:538
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Galat ketika mematikan SO_PASSCRED: %s"
-#: ../gio/gunixinputstream.c:353 ../gio/gunixinputstream.c:373
-#: ../gio/gunixinputstream.c:451
+#: ../gio/gunixinputstream.c:368
+#: ../gio/gunixinputstream.c:388
+#: ../gio/gunixinputstream.c:466
#, c-format
msgid "Error reading from unix: %s"
msgstr "Galat saat membaca dari unix: %s"
-#: ../gio/gunixinputstream.c:406 ../gio/gunixinputstream.c:589
-#: ../gio/gunixoutputstream.c:393 ../gio/gunixoutputstream.c:545
+#: ../gio/gunixinputstream.c:421
+#: ../gio/gunixinputstream.c:601
+#: ../gio/gunixoutputstream.c:407
+#: ../gio/gunixoutputstream.c:556
#, c-format
msgid "Error closing unix: %s"
msgstr "Galat saat menutup unix: %s"
-#: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883
+#: ../gio/gunixmounts.c:1846
+#: ../gio/gunixmounts.c:1883
msgid "Filesystem root"
msgstr "Akar sistem berkas"
-#: ../gio/gunixoutputstream.c:339 ../gio/gunixoutputstream.c:360
-#: ../gio/gunixoutputstream.c:438
+#: ../gio/gunixoutputstream.c:353
+#: ../gio/gunixoutputstream.c:374
+#: ../gio/gunixoutputstream.c:452
#, c-format
msgid "Error writing to unix: %s"
msgstr "Galat saat menulis ke unix: %s"
@@ -3464,7 +3675,8 @@
msgid "Error reading from handle: %s"
msgstr "Galat saat membaca dari handle: %s"
-#: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348
+#: ../gio/gwin32inputstream.c:348
+#: ../gio/gwin32outputstream.c:348
#, c-format
msgid "Error closing handle: %s"
msgstr "Galat saat menutup handle: %s"
@@ -3474,16 +3686,19 @@
msgid "Error writing to handle: %s"
msgstr "Galat saat menulis ke handle: %s"
-#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349
+#: ../gio/gzlibcompressor.c:396
+#: ../gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Tidak cukup memori"
-#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356
+#: ../gio/gzlibcompressor.c:403
+#: ../gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Galat internal: %s"
-#: ../gio/gzlibcompressor.c:416 ../gio/gzlibdecompressor.c:370
+#: ../gio/gzlibcompressor.c:416
+#: ../gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Perlu masukan lagi"
@@ -3522,27 +3737,6 @@
#~ msgid "PATH"
#~ msgstr "LOKASI"
-#~ msgid "SCHEMA KEY"
-#~ msgstr "KUNCI SKEMA"
-
-#~ msgid "Get the value of KEY"
-#~ msgstr "Ambil nilai dari KEY"
-
-#~ msgid ""
-#~ "Arguments:\n"
-#~ " SCHEMA The id of the schema\n"
-#~ " KEY The name of the key\n"
-#~ msgstr ""
-#~ "Argumen:\n"
-#~ " SKEMA Id dari skema\n"
-#~ " KUNCI Nama kunci\n"
-
-#~ msgid "SCHEMA KEY VALUE"
-#~ msgstr "SKEMA KUNCI NILAI"
-
-#~ msgid "Set the value of KEY"
-#~ msgstr "Menentukan nilai KUNCI"
-
#~ msgid ""
#~ "Arguments:\n"
#~ " SCHEMA The id of the schema\n"
@@ -3558,18 +3752,9 @@
#~ msgid "Key %s is not writable\n"
#~ msgstr "Kunci %s tidak dapat ditulisi\n"
-#~ msgid "Sets KEY to its default value"
-#~ msgstr "Menata KEY ke nilai bawaannya"
-
-#~ msgid "Find out whether KEY is writable"
-#~ msgstr "Cari tahu apakah KEY dapat ditulisi"
-
#~ msgid ""
#~ "Monitor KEY for changes and print the changed values.\n"
#~ "Monitoring will continue until the process is terminated."
#~ msgstr ""
#~ "Memantau perubahan KUNCI dan mencetak nilai yang berubah.\n"
#~ "Pemantauan akan terus berlanjut hingga proses dihentikan."
-
-#~ msgid "Unknown command '%s'\n"
-#~ msgstr "Perintah tidak dikenal '%s'\n"
diff --git a/po/nb.po b/po/nb.po
index 88eaba2..d6ead5f 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,23 +1,26 @@
# translation of nb.po to Norwegian Bokmal
# Norwegian (bokmål) translation of glib.
# Copyright (C) 2001-2003, 2005 Free Software Foundation, Inc.
+#
+#
# Kjartan Maraas <kmaraas@gnome.org>, 2001-2010.
# Terance Edward Sola <terance@lyse.net>, 2005.
-#
-#
+# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
msgid ""
msgstr ""
"Project-Id-Version: glib 2.26.x\n"
-"Report-Msgid-Bugs-To:\n"
-"POT-Creation-Date: 2010-11-18 14:05+0100\n"
-"PO-Revision-Date: 2010-11-18 14:08+0100\n"
-"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
-"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
-"Language:\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
+"cgi?product=glib&component=general\n"
+"POT-Creation-Date: 2010-12-21 12:55+0000\n"
+"PO-Revision-Date: 2010-12-30 21:24+0100\n"
+"Last-Translator: Torstein Adolf Winterseth <kvikende@fsfe.org>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language:\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 1.1\n"
#: ../glib/gbookmarkfile.c:780
#, c-format
@@ -388,135 +391,134 @@
msgid "Error opening directory '%s': %s"
msgstr "Feil under åpning av katalog «%s»: %s"
-#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
msgstr "Kunne ikke allokere %lu bytes til lest fil «%s»"
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "Feil under lesing av fil «%s»: %s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
msgstr "Fil «%s» er for stor"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
msgstr "Feil under lesing fra fil «%s»: %s"
-#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "Feil under åpning av fil «%s»: %s"
-#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
+#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgstr "Feil ved uthenting av attributter for fil «%s»: fstat() feilet: %s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
msgstr "Feil under åpning av fil «%s»: fdopen() feilet: %s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-msgstr ""
-"Feil under endring av navn på filen «%s» til «%s»: g_rename() feilet: %s"
+msgstr "Feil under endring av navn på filen «%s» til «%s»: g_rename() feilet: %s"
-#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
msgstr "Feil under oppretting av fil «%s»: %s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr "Feil under åpning av filen «%s» for skriving: fdopen() feilet: %s"
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
msgstr "Kunne ikke skrive fil «%s»: fwrite() feilet: %s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "Kunne ikke skrive fil «%s»: fflush() feilet: %s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "Kunne ikke skrive fil «%s»: fsync() feilet: %s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
msgstr "Kunne ikke lukke fil «%s»: fclose() feilet: %s"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr "Eksisterende fil «%s» kunne ikke bli fjernet: g_unlink() feilet: %s"
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr "Mal «%s» er ugyldig, må ikke inneholde «%s»"
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "Mal «%s» inneholder ikke XXXXXX"
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u byte"
msgstr[1] "%u bytes"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "Feil under lesing av symbolsk lenke «%s»: %s"
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr "Symbolske lenker er ikke støttet"
@@ -583,8 +585,8 @@
"Failed to parse '%-.*s', which should have been a digit inside a character "
"reference (ê for example) - perhaps the digit is too large"
msgstr ""
-"Feil under lesing av «%-.*s», som skulle vært et tall inne i en "
-"tegnreferanse (ê for eksempel) - tallet er muligens for stort"
+"Feil under lesing av «%-.*s», som skulle vært et tall inne i en tegnreferanse "
+"(ê for eksempel) - tallet er muligens for stort"
#: ../glib/gmarkup.c:594
msgid ""
@@ -602,8 +604,7 @@
msgstr "Tegnreferanse «%-.*s» koder ikke et tillatt tegn"
#: ../glib/gmarkup.c:658
-msgid ""
-"Empty entity '&;' seen; valid entities are: & " < > '"
+msgid "Empty entity '&;' seen; valid entities are: & " < > '"
msgstr ""
"Tom entitet «&;» funnet; gyldige entiteter er: & " < > '"
@@ -637,8 +638,8 @@
#: ../glib/gmarkup.c:1126
#, c-format
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 ""
"Rart tegn «%s», forventet et «>» tegn for å avslutte start-taggen til det "
"tomme elementet «%s»"
@@ -647,8 +648,7 @@
#, c-format
msgid ""
"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
-msgstr ""
-"Rart tegn «%s», forventet et «=» etter attributtnavn «%s» for element «%s»"
+msgstr "Rart tegn «%s», forventet et «=» etter attributtnavn «%s» for element «%s»"
#: ../glib/gmarkup.c:1251
#, c-format
@@ -916,7 +916,7 @@
#: ../glib/gregex.c:348
msgid "character value in \\x{...} sequence is too large"
-msgstr "tegnverdi i \\x{...} sekvens er for stor"
+msgstr "tegnverdi i \\x{…} sekvens er for stor"
#: ../glib/gregex.c:351
msgid "invalid condition (?(0)"
@@ -1073,8 +1073,7 @@
#: ../glib/gshell.c:566
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was '%s')"
-msgstr ""
-"Teksten sluttet før likt sitattegn ble funnet for %c. (Teksten var «%s»)"
+msgstr "Teksten sluttet før likt sitattegn ble funnet for %c. (Teksten var «%s»)"
#: ../glib/gshell.c:578
msgid "Text was empty (or contained only whitespace)"
@@ -1203,7 +1202,7 @@
#: ../glib/goption.c:760
msgid "[OPTION...]"
-msgstr "[FLAGG...]"
+msgstr "[FLAGG …]"
#: ../glib/goption.c:866
msgid "Help Options:"
@@ -1273,8 +1272,8 @@
msgid ""
"Key file contains line '%s' which is not a key-value pair, group, or comment"
msgstr ""
-"Nøkkelfil inneholder linjen «%s» som ikke er et par med nøkkelverdier, "
-"gruppe eller kommentar"
+"Nøkkelfil inneholder linjen «%s» som ikke er et par med nøkkelverdier, gruppe "
+"eller kommentar"
#: ../glib/gkeyfile.c:824
#, c-format
@@ -1320,11 +1319,9 @@
#: ../glib/gkeyfile.c:1531
#, c-format
-msgid ""
-"Key file contains key '%s' which has a value that cannot be interpreted."
+msgid "Key file contains key '%s' which has a value that cannot be interpreted."
msgstr ""
-"Nøkkelfilen inneholder nøkkelen «%s» som har en verdi som ikke kan bli "
-"tolket."
+"Nøkkelfilen inneholder nøkkelen «%s» som har en verdi som ikke kan bli tolket."
#: ../glib/gkeyfile.c:2125 ../glib/gkeyfile.c:2487
#, c-format
@@ -1332,8 +1329,8 @@
"Key file contains key '%s' in group '%s' which has value that cannot be "
"interpreted."
msgstr ""
-"Nøkkelfilen inneholder nøkkelen «%s» i gruppen «%s» som har en verdi som "
-"ikke kan bli tolket."
+"Nøkkelfilen inneholder nøkkelen «%s» i gruppen «%s» som har en verdi som ikke "
+"kan bli tolket."
#: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402
#, c-format
@@ -1382,10 +1379,10 @@
msgid "Stream is already closed"
msgstr "Strømmen er allerede lukket"
-#: ../gio/gcancellable.c:432 ../gio/gdbusconnection.c:1636
-#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911
-#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811
-#: ../gio/gsimpleasyncresult.c:837
+#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "Operasjonen ble avbrutt"
@@ -1401,7 +1398,7 @@
msgid "Not enough space in destination"
msgstr "Ikke nok plass i mål"
-#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:831
+#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:832
msgid "Cancellable initialization not supported"
msgstr "Avbrytbar initiering er ikke støttet"
@@ -1439,8 +1436,7 @@
#: ../gio/gdbusaddress.c:169
#, 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 ""
"Adressen «%s» er ugyldig (trenger eksakt en av følgende: sti, tmpdir eller "
"abstrakte nøkler)"
@@ -1556,17 +1552,16 @@
#: ../gio/gdbusaddress.c:1143
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
-msgstr ""
-"Kan ikke bestemme adresse til sesjonsbussen (ikke implementert på dette OSet)"
+msgstr "Kan ikke bestemme adresse til øktbussen (ikke implementert på dette OSet)"
-#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167
+#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"- unknown value `%s'"
msgstr ""
-#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176
+#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -1602,8 +1597,7 @@
#: ../gio/gdbusauthmechanismsha1.c:278
#, c-format
-msgid ""
-"Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o"
+msgid "Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o"
msgstr ""
#: ../gio/gdbusauthmechanismsha1.c:299
@@ -1669,85 +1663,83 @@
msgstr ""
#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374
-#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736
+#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr "Tilkoblingen er lukket"
-#: ../gio/gdbusconnection.c:1680
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr "Tidsavbrudd ble nådd"
-#: ../gio/gdbusconnection.c:2299
-msgid ""
-"Unsupported flags encountered when constructing a client-side connection"
+#: ../gio/gdbusconnection.c:2300
+msgid "Unsupported flags encountered when constructing a client-side connection"
msgstr ""
-#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069
+#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070
#, 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 ""
-#: ../gio/gdbusconnection.c:3823
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:3918
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
msgstr "Egenskap «%s» finnes ikke"
-#: ../gio/gdbusconnection.c:3930
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr "Egenskap «%s» er er ikke lesbar"
-#: ../gio/gdbusconnection.c:3941
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr "Egenskap «%s» er er ikke skrivbar"
-#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601
+#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
msgstr "Grensesnitt «%s» finnes ikke"
-#: ../gio/gdbusconnection.c:4199
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
msgstr "Grensesnittet finnes ikke"
-#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117
+#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
msgstr ""
-#: ../gio/gdbusconnection.c:4467
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr "Metoden «%s» finnes ikke"
-#: ../gio/gdbusconnection.c:4498
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:4717
+#: ../gio/gdbusconnection.c:4718
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr ""
-#: ../gio/gdbusconnection.c:4911
+#: ../gio/gdbusconnection.c:4912
#, c-format
msgid "Method `%s' returned type `%s', but expected `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:5712
+#: ../gio/gdbusconnection.c:5713
#, c-format
msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
msgstr ""
-#: ../gio/gdbusconnection.c:5830
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Et undertre er allerede eksportert for %s"
@@ -1861,8 +1853,7 @@
#: ../gio/gdbusmessage.c:2131
#, c-format
-msgid ""
-"Error serializing GVariant with type string `%s' to the D-Bus wire format"
+msgid "Error serializing GVariant with type string `%s' to the D-Bus wire format"
msgstr ""
#: ../gio/gdbusmessage.c:2272
@@ -1882,8 +1873,8 @@
#: ../gio/gdbusmessage.c:2334
#, c-format
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 ""
#: ../gio/gdbusmessage.c:2350
@@ -1905,13 +1896,13 @@
msgid "Type of return value is incorrect, got `%s', expected `%s'"
msgstr ""
-#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:2992
-#: ../gio/gsocket.c:3073
+#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023
+#: ../gio/gsocket.c:3104
#, c-format
msgid "Error sending message: %s"
msgstr "Feil ved sending av melding: %s"
-#: ../gio/gdbusprivate.c:1756
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr "Kan ikke laste /var/lib/dbus/machine-id: "
@@ -2001,7 +1992,7 @@
#: ../gio/gdbus-tool.c:347
msgid "Connect to the session bus"
-msgstr "Koble til sesjonsbussen"
+msgstr "Koble til øktbussen"
#: ../gio/gdbus-tool.c:348
msgid "Connect to given D-Bus address"
@@ -2027,8 +2018,7 @@
#: ../gio/gdbus-tool.c:459
#, c-format
-msgid ""
-"Warning: According to introspection data, interface `%s' does not exist\n"
+msgid "Warning: According to introspection data, interface `%s' does not exist\n"
msgstr ""
#: ../gio/gdbus-tool.c:468
@@ -2122,34 +2112,34 @@
msgid "Monitor a remote object."
msgstr "Overvåk et eksternt objekt."
-#: ../gio/gdesktopappinfo.c:469 ../gio/gwin32appinfo.c:221
+#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "Uten navn"
-#: ../gio/gdesktopappinfo.c:753
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr "Desktop-filen hadde ingen verdi i Exec-feltet"
-#: ../gio/gdesktopappinfo.c:946
+#: ../gio/gdesktopappinfo.c:957
msgid "Unable to find terminal required for application"
msgstr "Kan ikke finne terminalen som kreves for programmet"
-#: ../gio/gdesktopappinfo.c:1155
+#: ../gio/gdesktopappinfo.c:1166
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr "Kan ikke opprette konfigurasjonsmappe %s for brukers program: %s"
-#: ../gio/gdesktopappinfo.c:1159
+#: ../gio/gdesktopappinfo.c:1170
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "Kan ikke opprette brukers konfigurasjonsmappe %s for MIME: %s"
-#: ../gio/gdesktopappinfo.c:1567
+#: ../gio/gdesktopappinfo.c:1663
#, c-format
msgid "Can't create user desktop file %s"
msgstr "Kan ikke opprette brukers desktop-fil %s"
-#: ../gio/gdesktopappinfo.c:1681
+#: ../gio/gdesktopappinfo.c:1779
#, c-format
msgid "Custom definition for %s"
msgstr "Egendefinert definisjon for %s"
@@ -2187,29 +2177,29 @@
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Feil antall tegn (%d) i GEmblem-koding"
-#: ../gio/gemblemedicon.c:293
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "Kan ikke håndtere versjon %d av GEmblemedIcon-koding"
-#: ../gio/gemblemedicon.c:303
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Feil antall tegn (%d) i GEmblemedIcon-koding"
-#: ../gio/gemblemedicon.c:326
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Ventet et GEmblem for GEmblemedIcon"
-#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237
-#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585
-#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783
-#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361
-#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861
-#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438
-#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717
-#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370
-#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120
+#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "Operasjonen er ikke støttet"
@@ -2222,58 +2212,58 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
+#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr "Omsluttende monteringspunkt finnes ikke"
-#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258
+#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr "Kan ikke kopiere over katalog"
-#: ../gio/gfile.c:2472
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "Kan ikke kopiere katalog over katalog"
-#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267
+#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "Målfilen eksisterer"
-#: ../gio/gfile.c:2498
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "Kan ikke kopiere katalog rekursivt"
-#: ../gio/gfile.c:2758
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "Splice er ikke støttet"
-#: ../gio/gfile.c:2762
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "Feil ved bruk av splice(2) på fil: %s"
-#: ../gio/gfile.c:2909
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "Kan ikke kopiere spesiell fil"
-#: ../gio/gfile.c:3483
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "Ugyldig verdi oppgitt for symbolsk lenke"
-#: ../gio/gfile.c:3577
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "Papirkurv er ikke støttet"
-#: ../gio/gfile.c:3626
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "Filnavn kan ikke inneholde «%c»"
-#: ../gio/gfile.c:6003 ../gio/gvolume.c:332
+#: ../gio/gfile.c:6004 ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "volumet implementerer ikke montering"
-#: ../gio/gfile.c:6114
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "Ingen program registrert for å håndtere denne filen"
@@ -2486,8 +2476,7 @@
#: ../gio/glib-compile-schemas.c:1108
#, c-format
-msgid ""
-"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
+msgid "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
msgstr ""
#: ../gio/glib-compile-schemas.c:1118
@@ -2512,128 +2501,128 @@
msgid "<%s id='%s'> already specified"
msgstr "<%s id=«%s»> er allerede spesifisert"
-#: ../gio/glib-compile-schemas.c:1385
+#: ../gio/glib-compile-schemas.c:1387
#, c-format
msgid "Element <%s> not allowed inside <%s>"
msgstr "Element <%s> er ikke tillatt inne i <%s>"
-#: ../gio/glib-compile-schemas.c:1389
+#: ../gio/glib-compile-schemas.c:1391
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr "Element <%s> er ikke tillatt på toppnivå"
-#: ../gio/glib-compile-schemas.c:1483
+#: ../gio/glib-compile-schemas.c:1485
#, c-format
msgid "text may not appear inside <%s>"
msgstr "tekst kan ikke forekomme inne i <%s>"
#. Translators: Do not translate "--strict".
-#: ../gio/glib-compile-schemas.c:1652 ../gio/glib-compile-schemas.c:1723
-#: ../gio/glib-compile-schemas.c:1799
+#: ../gio/glib-compile-schemas.c:1654 ../gio/glib-compile-schemas.c:1725
+#: ../gio/glib-compile-schemas.c:1801
#, c-format
msgid "--strict was specified; exiting.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1660
+#: ../gio/glib-compile-schemas.c:1662
#, c-format
msgid "This entire file has been ignored.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1719
+#: ../gio/glib-compile-schemas.c:1721
#, c-format
msgid "Ignoring this file.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1759
+#: ../gio/glib-compile-schemas.c:1761
#, c-format
msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1765 ../gio/glib-compile-schemas.c:1823
-#: ../gio/glib-compile-schemas.c:1851
+#: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825
+#: ../gio/glib-compile-schemas.c:1853
#, c-format
msgid "; ignoring override for this key.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1769 ../gio/glib-compile-schemas.c:1827
-#: ../gio/glib-compile-schemas.c:1855
+#: ../gio/glib-compile-schemas.c:1771 ../gio/glib-compile-schemas.c:1829
+#: ../gio/glib-compile-schemas.c:1857
#, c-format
msgid " and --strict was specified; exiting.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1785
+#: ../gio/glib-compile-schemas.c:1787
#, c-format
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 ""
-#: ../gio/glib-compile-schemas.c:1795
+#: ../gio/glib-compile-schemas.c:1797
#, c-format
msgid "Ignoring override for this key.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1813
+#: ../gio/glib-compile-schemas.c:1815
#, c-format
msgid ""
"override for key `%s' in schema `%s' in override file `%s' is out of the "
"range given in the schema"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1841
+#: ../gio/glib-compile-schemas.c:1843
#, 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:1895
+#: ../gio/glib-compile-schemas.c:1897
msgid "where to store the gschemas.compiled file"
msgstr "gschemas.compiled filen lagres her"
-#: ../gio/glib-compile-schemas.c:1895 ../gio/glib-compile-schemas.c:1908
+#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1910
msgid "DIRECTORY"
msgstr "KATALOG"
-#: ../gio/glib-compile-schemas.c:1896
+#: ../gio/glib-compile-schemas.c:1898
msgid "Abort on any errors in schemas"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1897
+#: ../gio/glib-compile-schemas.c:1899
msgid "Do not write the gschema.compiled file"
msgstr "Ikke skriv filen gschema.compiled"
-#: ../gio/glib-compile-schemas.c:1898
+#: ../gio/glib-compile-schemas.c:1900
msgid "This option will be removed soon."
msgstr "Dette alternativet vil bli fjernet snart."
-#: ../gio/glib-compile-schemas.c:1899
+#: ../gio/glib-compile-schemas.c:1901
msgid "Do not enforce key name restrictions"
msgstr "Ikke sett restriksjoner på navn på nøkler"
-#: ../gio/glib-compile-schemas.c:1911
+#: ../gio/glib-compile-schemas.c:1913
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:1927
+#: ../gio/glib-compile-schemas.c:1929
#, c-format
msgid "You should give exactly one directory name\n"
msgstr "Du må kun oppgi navn på én katalog\n"
-#: ../gio/glib-compile-schemas.c:1966
+#: ../gio/glib-compile-schemas.c:1968
#, c-format
msgid "No schema files found: "
msgstr "Ingen schema-filer funnet: "
-#: ../gio/glib-compile-schemas.c:1969
+#: ../gio/glib-compile-schemas.c:1971
#, c-format
msgid "doing nothing.\n"
msgstr "gjør ingenting.\n"
-#: ../gio/glib-compile-schemas.c:1972
+#: ../gio/glib-compile-schemas.c:1974
#, c-format
msgid "removed existing output file.\n"
msgstr "fjernet eksisterende utdatafil.\n"
@@ -3083,85 +3072,86 @@
msgid "No such key '%s'\n"
msgstr "Nøkkel «%s» finnes ikke\n"
-#: ../gio/gsettings-tool.c:427
+#: ../gio/gsettings-tool.c:429
#, c-format
msgid "The provided value is outside of the valid range\n"
msgstr ""
-#: ../gio/gsettings-tool.c:456
+#: ../gio/gsettings-tool.c:458
msgid "List the installed (non-relocatable) schemas"
msgstr ""
-#: ../gio/gsettings-tool.c:462
+#: ../gio/gsettings-tool.c:464
msgid "List the installed relocatable schemas"
msgstr ""
-#: ../gio/gsettings-tool.c:468
+#: ../gio/gsettings-tool.c:470
msgid "Lists the keys in SCHEMA"
msgstr ""
-#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475
-#: ../gio/gsettings-tool.c:481
+#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
msgid "SCHEMA[:PATH]"
msgstr "SKJEMA[:STI]"
-#: ../gio/gsettings-tool.c:474
+#: ../gio/gsettings-tool.c:476
msgid "Lists the children of SCHEMA"
msgstr ""
-#: ../gio/gsettings-tool.c:480
+#: ../gio/gsettings-tool.c:482
msgid "List keys and values, recursively"
msgstr ""
-#: ../gio/gsettings-tool.c:486
+#: ../gio/gsettings-tool.c:488
msgid "Gets the value of KEY"
msgstr "Henter verdien for NØKKEL"
-#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493
-#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511
+#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513
msgid "SCHEMA[:PATH] KEY"
msgstr "SKJEMA[:STI] NØKKEL"
-#: ../gio/gsettings-tool.c:492
+#: ../gio/gsettings-tool.c:494
msgid "Queries the range of valid values for KEY"
msgstr ""
-#: ../gio/gsettings-tool.c:498
+#: ../gio/gsettings-tool.c:500
msgid "Sets the value of KEY to VALUE"
msgstr "Sett verdien for NØKKEL til VERDI"
-#: ../gio/gsettings-tool.c:499
+#: ../gio/gsettings-tool.c:501
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SKJEMA[:STI] NØKKEL VERDI"
-#: ../gio/gsettings-tool.c:504
-#, fuzzy
+#: ../gio/gsettings-tool.c:506
msgid "Resets KEY to its default value"
-msgstr "Setter NØKKEL til forvalgt verdi"
+msgstr "Nullstiller NØKKEL til forvalgt verdi"
-#: ../gio/gsettings-tool.c:510
+#: ../gio/gsettings-tool.c:512
msgid "Checks if KEY is writable"
msgstr "Sjekker om NØKKEL er skrivbar"
-#: ../gio/gsettings-tool.c:516
+#: ../gio/gsettings-tool.c:518
msgid ""
"Monitors 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:519
+#: ../gio/gsettings-tool.c:521
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SCHEMA[:STI] [NØKKEL]"
-#: ../gio/gsettings-tool.c:523
+#: ../gio/gsettings-tool.c:525
#, c-format
msgid ""
"Unknown command %s\n"
"\n"
-msgstr "Ukjent kommando «%s»\n\n"
+msgstr ""
+"Ukjent kommando «%s»\n"
+"\n"
-#: ../gio/gsettings-tool.c:531
+#: ../gio/gsettings-tool.c:533
msgid ""
"Usage:\n"
" gsettings COMMAND [ARGS...]\n"
@@ -3184,7 +3174,7 @@
"\n"
msgstr ""
-#: ../gio/gsettings-tool.c:552
+#: ../gio/gsettings-tool.c:554
#, c-format
msgid ""
"Usage:\n"
@@ -3194,153 +3184,152 @@
"\n"
msgstr ""
-#: ../gio/gsettings-tool.c:557
+#: ../gio/gsettings-tool.c:559
msgid "Arguments:\n"
msgstr "Argumenter:\n"
-#: ../gio/gsettings-tool.c:561
-#, fuzzy
+#: ../gio/gsettings-tool.c:563
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
msgstr ""
"Argumenter:\n"
" SCHEMA Id for schema\n"
-" NØKKEL Navn på nøkkelen\n"
+" PATH Sti, for schema som kan relokeres\n"
-#: ../gio/gsettings-tool.c:566
+#: ../gio/gsettings-tool.c:568
msgid " KEY The (optional) key within the schema\n"
-msgstr ""
+msgstr " NØKKEL Valgfri nøkkel i schema\n"
-#: ../gio/gsettings-tool.c:570
+#: ../gio/gsettings-tool.c:572
msgid " KEY The key within the schema\n"
msgstr ""
-#: ../gio/gsettings-tool.c:574
+#: ../gio/gsettings-tool.c:576
msgid " VALUE The value to set\n"
msgstr ""
-#: ../gio/gsettings-tool.c:650
+#: ../gio/gsettings-tool.c:652
#, c-format
msgid "Empty schema name given"
-msgstr ""
+msgstr "Tomt navn på schema oppgitt"
-#: ../gio/gsocket.c:276
+#: ../gio/gsocket.c:277
msgid "Invalid socket, not initialized"
msgstr "Ugyldig plugg, ikke initiert"
-#: ../gio/gsocket.c:283
+#: ../gio/gsocket.c:284
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Ugyldig plugg, initiering feilet pga: %s"
-#: ../gio/gsocket.c:291
+#: ../gio/gsocket.c:292
msgid "Socket is already closed"
msgstr "Pluggen er allerede lukket"
-#: ../gio/gsocket.c:299 ../gio/gsocket.c:2734 ../gio/gsocket.c:2778
+#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809
msgid "Socket I/O timed out"
msgstr "Tidsavbrudd for I/U mot plugg"
-#: ../gio/gsocket.c:442
+#: ../gio/gsocket.c:443
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "lager GSocket fra fd: %s"
-#: ../gio/gsocket.c:476 ../gio/gsocket.c:492 ../gio/gsocket.c:2134
+#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2135
#, c-format
msgid "Unable to create socket: %s"
msgstr "Kunne ikke lage plugg: %s"
-#: ../gio/gsocket.c:476
+#: ../gio/gsocket.c:477
msgid "Unknown protocol was specified"
msgstr "Ukjent protokoll ble oppgitt"
-#: ../gio/gsocket.c:1245
+#: ../gio/gsocket.c:1246
#, c-format
msgid "could not get local address: %s"
msgstr "kunne ikke hente lokal adresse: %s"
-#: ../gio/gsocket.c:1288
+#: ../gio/gsocket.c:1289
#, c-format
msgid "could not get remote address: %s"
msgstr "kunne ikke hente ekstern adresse: %s"
-#: ../gio/gsocket.c:1349
+#: ../gio/gsocket.c:1350
#, c-format
msgid "could not listen: %s"
msgstr "kunne ikke lytte: %s"
-#: ../gio/gsocket.c:1423
+#: ../gio/gsocket.c:1424
#, c-format
msgid "Error binding to address: %s"
msgstr "Feil ved binding til adresse: %s"
-#: ../gio/gsocket.c:1543
+#: ../gio/gsocket.c:1544
#, c-format
msgid "Error accepting connection: %s"
msgstr "Feil ved godkjenning av tilkobling: %s"
-#: ../gio/gsocket.c:1660
+#: ../gio/gsocket.c:1661
msgid "Error connecting: "
msgstr "Feil under tilkobling: "
-#: ../gio/gsocket.c:1665
+#: ../gio/gsocket.c:1666
msgid "Connection in progress"
msgstr "Tilkobling pågår"
-#: ../gio/gsocket.c:1672
+#: ../gio/gsocket.c:1673
#, c-format
msgid "Error connecting: %s"
msgstr "Feil under tilkobling: %s"
-#: ../gio/gsocket.c:1715 ../gio/gsocket.c:3497
+#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528
#, c-format
msgid "Unable to get pending error: %s"
msgstr "Kan ikke hente utestående feil: %s"
-#: ../gio/gsocket.c:1847
+#: ../gio/gsocket.c:1848
#, c-format
msgid "Error receiving data: %s"
msgstr "Feil ved mottak av data: %s"
-#: ../gio/gsocket.c:2021
+#: ../gio/gsocket.c:2022
#, c-format
msgid "Error sending data: %s"
msgstr "Feil ved sending av data: %s"
-#: ../gio/gsocket.c:2213
+#: ../gio/gsocket.c:2214
#, c-format
msgid "Error closing socket: %s"
msgstr "Feil ved lukking av plugg: %s"
-#: ../gio/gsocket.c:2727
+#: ../gio/gsocket.c:2758
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Venter på tilstand for plugg: %s"
-#: ../gio/gsocket.c:3017
+#: ../gio/gsocket.c:3048
msgid "GSocketControlMessage not supported on windows"
msgstr "GSocketControlMessage er ikke støttet på windows"
-#: ../gio/gsocket.c:3276 ../gio/gsocket.c:3417
+#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448
#, c-format
msgid "Error receiving message: %s"
msgstr "Feil ved mottak av melding: %s"
-#: ../gio/gsocket.c:3512
+#: ../gio/gsocket.c:3543
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials ikke implementert for dette OSet"
-#: ../gio/gsocketclient.c:674 ../gio/gsocketclient.c:1152
+#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "Ukjent feil ved tilkobling"
-#: ../gio/gsocketclient.c:711 ../gio/gsocketclient.c:1037
+#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr ""
-#: ../gio/gsocketclient.c:749 ../gio/gsocketclient.c:1060
+#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr "Protokoll «%s» er er ikke støttet"
@@ -3387,7 +3376,8 @@
#: ../gio/gsocks5proxy.c:179
msgid ""
-"The SOCKSv5 proxy requires an authentication method that is not supported by GLib."
+"The SOCKSv5 proxy requires an authentication method that is not supported by "
+"GLib."
msgstr ""
#: ../gio/gsocks5proxy.c:208
@@ -3437,7 +3427,9 @@
msgstr "SOCKSv5-proxy støtter ikke oppgitt type adresse."
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
+#, fuzzy
+#| msgid "Unkown SOCKSv5 proxy error."
+msgid "Unknown SOCKSv5 proxy error."
msgstr "Ukjent feil i SOCKSv5-proxy."
#: ../gio/gthemedicon.c:498
@@ -3445,6 +3437,18 @@
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "Kan ikke håndtere versjon %d av GThemedIcon-koding"
+#: ../gio/gtlscertificate.c:228
+msgid "No PEM-encoded certificate found"
+msgstr ""
+
+#: ../gio/gtlscertificate.c:237
+msgid "Could not parse PEM-encoded certificate"
+msgstr ""
+
+#: ../gio/gtlscertificate.c:258
+msgid "Could not parse PEM-encoded private key"
+msgstr ""
+
#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505
#, c-format
msgid "Expecting 1 control message, got %d"
@@ -3494,14 +3498,14 @@
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Feil ved forsøk på å slå av SO_PASSCRED: %s"
-#: ../gio/gunixinputstream.c:353 ../gio/gunixinputstream.c:373
-#: ../gio/gunixinputstream.c:451
+#: ../gio/gunixinputstream.c:368 ../gio/gunixinputstream.c:388
+#: ../gio/gunixinputstream.c:466
#, c-format
msgid "Error reading from unix: %s"
msgstr "Feil under lesing fra unix: %s"
-#: ../gio/gunixinputstream.c:406 ../gio/gunixinputstream.c:586
-#: ../gio/gunixoutputstream.c:393 ../gio/gunixoutputstream.c:542
+#: ../gio/gunixinputstream.c:421 ../gio/gunixinputstream.c:601
+#: ../gio/gunixoutputstream.c:407 ../gio/gunixoutputstream.c:556
#, c-format
msgid "Error closing unix: %s"
msgstr "Feil ved lukking av unix: %s"
@@ -3510,8 +3514,8 @@
msgid "Filesystem root"
msgstr "Filsystemrot"
-#: ../gio/gunixoutputstream.c:339 ../gio/gunixoutputstream.c:360
-#: ../gio/gunixoutputstream.c:438
+#: ../gio/gunixoutputstream.c:353 ../gio/gunixoutputstream.c:374
+#: ../gio/gunixoutputstream.c:452
#, c-format
msgid "Error writing to unix: %s"
msgstr "Feil ved skriving til unix: %s"
@@ -3583,3 +3587,4 @@
#: ../gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "Ugyldige komprimerte data"
+
diff --git a/po/sv.po b/po/sv.po
index bd2d9ad..2aee371 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,10 +7,11 @@
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-09-12 20:16+0200\n"
-"PO-Revision-Date: 2010-09-12 20:25+0100\n"
+"POT-Creation-Date: 2010-12-31 15:11+0100\n"
+"PO-Revision-Date: 2010-12-31 15:22+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -120,7 +121,7 @@
#: ../glib/gconvert.c:1161
#: ../glib/giochannel.c:1575
#: ../glib/giochannel.c:1617
-#: ../glib/giochannel.c:2461
+#: ../glib/giochannel.c:2460
#: ../glib/gutf8.c:992
#: ../glib/gutf8.c:1447
#: ../gio/gcharsetconverter.c:345
@@ -130,7 +131,7 @@
#: ../glib/gconvert.c:776
#: ../glib/gconvert.c:1086
#: ../glib/giochannel.c:1582
-#: ../glib/giochannel.c:2473
+#: ../glib/giochannel.c:2472
#: ../gio/gcharsetconverter.c:350
#, c-format
msgid "Error during conversion: %s"
@@ -184,362 +185,370 @@
msgid "Invalid hostname"
msgstr "Ogiltigt värdnamn"
-#: ../glib/gdatetime.c:104
+#. Translators: 'before midday' indicator
+#: ../glib/gdatetime.c:149
msgctxt "GDateTime"
msgid "am"
msgstr "am"
-#: ../glib/gdatetime.c:104
+#. Translators: 'before midday' indicator
+#: ../glib/gdatetime.c:151
msgctxt "GDateTime"
msgid "AM"
msgstr "AM"
-#: ../glib/gdatetime.c:105
+#. Translators: 'after midday' indicator
+#: ../glib/gdatetime.c:153
msgctxt "GDateTime"
msgid "pm"
msgstr "pm"
-#: ../glib/gdatetime.c:105
+#. Translators: 'after midday' indicator
+#: ../glib/gdatetime.c:155
msgctxt "GDateTime"
msgid "PM"
msgstr "PM"
#. Translators: this is the preferred format for expressing the date
-#: ../glib/gdatetime.c:114
+#: ../glib/gdatetime.c:164
msgctxt "GDateTime"
msgid "%m/%d/%y"
msgstr "%y-%m-%d"
#. Translators: this is the preferred format for expressing the time
-#: ../glib/gdatetime.c:117
+#: ../glib/gdatetime.c:167
msgctxt "GDateTime"
msgid "%H:%M:%S"
msgstr "%H.%M.%S"
-#: ../glib/gdatetime.c:162
+#: ../glib/gdatetime.c:193
msgctxt "full month name"
msgid "January"
msgstr "Januari"
-#: ../glib/gdatetime.c:164
+#: ../glib/gdatetime.c:195
msgctxt "full month name"
msgid "February"
msgstr "Februari"
-#: ../glib/gdatetime.c:166
+#: ../glib/gdatetime.c:197
msgctxt "full month name"
msgid "March"
msgstr "Mars"
-#: ../glib/gdatetime.c:168
+#: ../glib/gdatetime.c:199
msgctxt "full month name"
msgid "April"
msgstr "April"
-#: ../glib/gdatetime.c:170
-#: ../glib/gdatetime.c:207
+#: ../glib/gdatetime.c:201
msgctxt "full month name"
msgid "May"
msgstr "Maj"
-#: ../glib/gdatetime.c:172
+#: ../glib/gdatetime.c:203
msgctxt "full month name"
msgid "June"
msgstr "Juni"
-#: ../glib/gdatetime.c:174
+#: ../glib/gdatetime.c:205
msgctxt "full month name"
msgid "July"
msgstr "Juli"
-#: ../glib/gdatetime.c:176
+#: ../glib/gdatetime.c:207
msgctxt "full month name"
msgid "August"
msgstr "Augusti"
-#: ../glib/gdatetime.c:178
+#: ../glib/gdatetime.c:209
msgctxt "full month name"
msgid "September"
msgstr "September"
-#: ../glib/gdatetime.c:180
+#: ../glib/gdatetime.c:211
msgctxt "full month name"
msgid "October"
msgstr "Oktober"
-#: ../glib/gdatetime.c:182
+#: ../glib/gdatetime.c:213
msgctxt "full month name"
msgid "November"
msgstr "November"
-#: ../glib/gdatetime.c:184
+#: ../glib/gdatetime.c:215
msgctxt "full month name"
msgid "December"
msgstr "December"
-#: ../glib/gdatetime.c:199
+#: ../glib/gdatetime.c:230
msgctxt "abbreviated month name"
msgid "Jan"
msgstr "Jan"
-#: ../glib/gdatetime.c:201
+#: ../glib/gdatetime.c:232
msgctxt "abbreviated month name"
msgid "Feb"
msgstr "Feb"
-#: ../glib/gdatetime.c:203
+#: ../glib/gdatetime.c:234
msgctxt "abbreviated month name"
msgid "Mar"
msgstr "Mar"
-#: ../glib/gdatetime.c:205
+#: ../glib/gdatetime.c:236
msgctxt "abbreviated month name"
msgid "Apr"
msgstr "Apr"
-#: ../glib/gdatetime.c:209
+#: ../glib/gdatetime.c:238
+msgctxt "abbreviated month name"
+msgid "May"
+msgstr "Maj"
+
+#: ../glib/gdatetime.c:240
msgctxt "abbreviated month name"
msgid "Jun"
msgstr "Jun"
-#: ../glib/gdatetime.c:211
+#: ../glib/gdatetime.c:242
msgctxt "abbreviated month name"
msgid "Jul"
msgstr "Jul"
-#: ../glib/gdatetime.c:213
+#: ../glib/gdatetime.c:244
msgctxt "abbreviated month name"
msgid "Aug"
msgstr "Aug"
-#: ../glib/gdatetime.c:215
+#: ../glib/gdatetime.c:246
msgctxt "abbreviated month name"
msgid "Sep"
msgstr "Sep"
-#: ../glib/gdatetime.c:217
+#: ../glib/gdatetime.c:248
msgctxt "abbreviated month name"
msgid "Oct"
msgstr "Okt"
-#: ../glib/gdatetime.c:219
+#: ../glib/gdatetime.c:250
msgctxt "abbreviated month name"
msgid "Nov"
msgstr "Nov"
-#: ../glib/gdatetime.c:221
+#: ../glib/gdatetime.c:252
msgctxt "abbreviated month name"
msgid "Dec"
msgstr "Dec"
-#: ../glib/gdatetime.c:236
+#: ../glib/gdatetime.c:267
msgctxt "full weekday name"
msgid "Monday"
msgstr "Måndag"
-#: ../glib/gdatetime.c:238
+#: ../glib/gdatetime.c:269
msgctxt "full weekday name"
msgid "Tuesday"
msgstr "Tisdag"
-#: ../glib/gdatetime.c:240
+#: ../glib/gdatetime.c:271
msgctxt "full weekday name"
msgid "Wednesday"
msgstr "Onsdag"
-#: ../glib/gdatetime.c:242
+#: ../glib/gdatetime.c:273
msgctxt "full weekday name"
msgid "Thursday"
msgstr "Torsdag"
-#: ../glib/gdatetime.c:244
+#: ../glib/gdatetime.c:275
msgctxt "full weekday name"
msgid "Friday"
msgstr "Fredag"
-#: ../glib/gdatetime.c:246
+#: ../glib/gdatetime.c:277
msgctxt "full weekday name"
msgid "Saturday"
msgstr "Lördag"
-#: ../glib/gdatetime.c:248
+#: ../glib/gdatetime.c:279
msgctxt "full weekday name"
msgid "Sunday"
msgstr "Söndag"
-#: ../glib/gdatetime.c:263
+#: ../glib/gdatetime.c:294
msgctxt "abbreviated weekday name"
msgid "Mon"
msgstr "Mån"
-#: ../glib/gdatetime.c:265
+#: ../glib/gdatetime.c:296
msgctxt "abbreviated weekday name"
msgid "Tue"
msgstr "Tis"
-#: ../glib/gdatetime.c:267
+#: ../glib/gdatetime.c:298
msgctxt "abbreviated weekday name"
msgid "Wed"
msgstr "Ons"
-#: ../glib/gdatetime.c:269
+#: ../glib/gdatetime.c:300
msgctxt "abbreviated weekday name"
msgid "Thu"
msgstr "Tor"
-#: ../glib/gdatetime.c:271
+#: ../glib/gdatetime.c:302
msgctxt "abbreviated weekday name"
msgid "Fri"
msgstr "Fre"
-#: ../glib/gdatetime.c:273
+#: ../glib/gdatetime.c:304
msgctxt "abbreviated weekday name"
msgid "Sat"
msgstr "Lör"
-#: ../glib/gdatetime.c:275
+#: ../glib/gdatetime.c:306
msgctxt "abbreviated weekday name"
msgid "Sun"
msgstr "Sön"
-#: ../glib/gdir.c:114
-#: ../glib/gdir.c:137
+#: ../glib/gdir.c:115
+#: ../glib/gdir.c:138
#, c-format
msgid "Error opening directory '%s': %s"
msgstr "Fel vid öppning av katalogen \"%s\": %s"
-#: ../glib/gfileutils.c:536
-#: ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540
+#: ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
msgstr "Kunde inte allokera %lu byte för att läsa filen \"%s\""
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "Fel vid läsning av filen \"%s\": %s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
msgstr "Filen \"%s\" är för stor"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
msgstr "Misslyckades med att läsa från filen \"%s\": %s"
-#: ../glib/gfileutils.c:699
-#: ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703
+#: ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "Misslyckades med att öppna filen \"%s\": %s"
-#: ../glib/gfileutils.c:716
+#: ../glib/gfileutils.c:720
#: ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgstr "Misslyckades med att få tag på attributen på filen \"%s\": fstat() misslyckades: %s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
msgstr "Misslyckades med att öppna filen \"%s\": fdopen() misslyckades: %s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
msgstr "Misslyckades med att byta namn på filen \"%s\" till \"%s\": g_rename() misslyckades: %s"
-#: ../glib/gfileutils.c:900
-#: ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904
+#: ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
msgstr "Misslyckades med att skapa filen \"%s\": %s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr "Misslyckades med att öppna filen \"%s\" för skrivning: fdopen() misslyckades: %s"
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
msgstr "Misslyckades med att skriva filen \"%s\": fwrite() misslyckades: %s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "Misslyckades med att skriva filen \"%s\": fflush() misslyckades: %s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "Misslyckades med att skriva filen \"%s\": fsync() misslyckades: %s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
msgstr "Misslyckades med att stänga filen \"%s\": fclose() misslyckades: %s"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr "Befintliga filen \"%s\" kunde inte tas bort: g_unlink() misslyckades: %s"
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr "Mallen \"%s\" är ogiltig, den får inte innehålla ett \"%s\""
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "Mallen \"%s\" innehåller inte XXXXXX"
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u byte"
msgstr[1] "%u byte"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "Misslyckades med att läsa den symboliska länken \"%s\": %s"
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr "Symboliska länkar stöds inte"
@@ -553,8 +562,8 @@
msgstr "Kan inte göra en rå läsning i g_io_channel_read_line_string"
#: ../glib/giochannel.c:1799
-#: ../glib/giochannel.c:2057
-#: ../glib/giochannel.c:2144
+#: ../glib/giochannel.c:2056
+#: ../glib/giochannel.c:2143
msgid "Leftover unconverted data in read buffer"
msgstr "Överbliven okonverterad data i läsbufferten"
@@ -728,300 +737,300 @@
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr "Dokumentet tog oväntat slut inuti en kommentar eller behandlingsinstruktion"
-#: ../glib/gregex.c:184
+#: ../glib/gregex.c:188
msgid "corrupted object"
msgstr "skadat objekt"
-#: ../glib/gregex.c:186
+#: ../glib/gregex.c:190
msgid "internal error or corrupted object"
msgstr "internt fel eller skadat objekt"
-#: ../glib/gregex.c:188
+#: ../glib/gregex.c:192
msgid "out of memory"
msgstr "slut på minne"
-#: ../glib/gregex.c:193
+#: ../glib/gregex.c:197
msgid "backtracking limit reached"
msgstr "bakåtspårningsgräns nådd"
-#: ../glib/gregex.c:205
-#: ../glib/gregex.c:213
+#: ../glib/gregex.c:209
+#: ../glib/gregex.c:217
msgid "the pattern contains items not supported for partial matching"
msgstr "mönstret innehåller objekt som inte stöds för delvis matchning"
-#: ../glib/gregex.c:207
+#: ../glib/gregex.c:211
#: ../gio/glocalfile.c:2109
msgid "internal error"
msgstr "internt fel"
-#: ../glib/gregex.c:215
+#: ../glib/gregex.c:219
msgid "back references as conditions are not supported for partial matching"
msgstr "bakreferenser som villkor stöds inte för delvis matchning"
-#: ../glib/gregex.c:224
+#: ../glib/gregex.c:228
msgid "recursion limit reached"
msgstr "rekursionsgräns nådd"
-#: ../glib/gregex.c:226
+#: ../glib/gregex.c:230
msgid "workspace limit for empty substrings reached"
msgstr "arbetsytans gräns för tomma understrängar nådd"
-#: ../glib/gregex.c:228
+#: ../glib/gregex.c:232
msgid "invalid combination of newline flags"
msgstr "ogiltig kombination av nyradsflaggor"
-#: ../glib/gregex.c:232
+#: ../glib/gregex.c:236
msgid "unknown error"
msgstr "okänt fel"
-#: ../glib/gregex.c:252
+#: ../glib/gregex.c:256
msgid "\\ at end of pattern"
msgstr "\\ på slutet av mönster"
-#: ../glib/gregex.c:255
+#: ../glib/gregex.c:259
msgid "\\c at end of pattern"
msgstr "\\c på slutet av mönster"
-#: ../glib/gregex.c:258
+#: ../glib/gregex.c:262
msgid "unrecognized character follows \\"
msgstr "okänt tecken efter \\"
-#: ../glib/gregex.c:265
+#: ../glib/gregex.c:269
msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here"
msgstr "skiftlägesändrade escape-tecken (\\l, \\L, \\u, \\U) tillåts inte här"
-#: ../glib/gregex.c:268
+#: ../glib/gregex.c:272
msgid "numbers out of order in {} quantifier"
msgstr "tal är inte i ordning i {}-kvantifierare"
-#: ../glib/gregex.c:271
+#: ../glib/gregex.c:275
msgid "number too big in {} quantifier"
msgstr "tal för stort i {}-kvantifierare"
-#: ../glib/gregex.c:274
+#: ../glib/gregex.c:278
msgid "missing terminating ] for character class"
msgstr "saknar avslutande ] för teckenklass"
-#: ../glib/gregex.c:277
+#: ../glib/gregex.c:281
msgid "invalid escape sequence in character class"
msgstr "ogiltig escape-sekvens i teckenklass"
-#: ../glib/gregex.c:280
+#: ../glib/gregex.c:284
msgid "range out of order in character class"
msgstr "intervall är inte i ordning i teckenklass"
-#: ../glib/gregex.c:283
+#: ../glib/gregex.c:287
msgid "nothing to repeat"
msgstr "ingenting att upprepa"
-#: ../glib/gregex.c:286
+#: ../glib/gregex.c:290
msgid "unrecognized character after (?"
msgstr "okänt tecken efter (?"
-#: ../glib/gregex.c:290
+#: ../glib/gregex.c:294
msgid "unrecognized character after (?<"
msgstr "okänt tecken efter (?<"
-#: ../glib/gregex.c:294
+#: ../glib/gregex.c:298
msgid "unrecognized character after (?P"
msgstr "okänt tecken efter (?P"
-#: ../glib/gregex.c:297
+#: ../glib/gregex.c:301
msgid "POSIX named classes are supported only within a class"
msgstr "POSIX-namngivna klasser stöds endast inom en klass"
-#: ../glib/gregex.c:300
+#: ../glib/gregex.c:304
msgid "missing terminating )"
msgstr "saknar avslutande )"
-#: ../glib/gregex.c:304
+#: ../glib/gregex.c:308
msgid ") without opening ("
msgstr ") utan öppnande ("
#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
#. * sequences here, '(?-54' would be an example for the second group.
#.
-#: ../glib/gregex.c:311
+#: ../glib/gregex.c:315
msgid "(?R or (?[+-]digits must be followed by )"
msgstr "(?R eller (?[+-]siffror måste efterföljas av )"
-#: ../glib/gregex.c:314
+#: ../glib/gregex.c:318
msgid "reference to non-existent subpattern"
msgstr "referens till icke-existerande undermönster"
-#: ../glib/gregex.c:317
+#: ../glib/gregex.c:321
msgid "missing ) after comment"
msgstr "saknar ) efter kommentar"
-#: ../glib/gregex.c:320
+#: ../glib/gregex.c:324
msgid "regular expression too large"
msgstr "reguljärt uttryck för stort"
-#: ../glib/gregex.c:323
+#: ../glib/gregex.c:327
msgid "failed to get memory"
msgstr "misslyckades med att få minne"
-#: ../glib/gregex.c:326
+#: ../glib/gregex.c:330
msgid "lookbehind assertion is not fixed length"
msgstr "lookbehind-assertion är inte av fast längd"
-#: ../glib/gregex.c:329
+#: ../glib/gregex.c:333
msgid "malformed number or name after (?("
msgstr "felformulerat tal eller namn efter (?("
-#: ../glib/gregex.c:332
+#: ../glib/gregex.c:336
msgid "conditional group contains more than two branches"
msgstr "villkorsgrupp innehåller fler än två grenar"
-#: ../glib/gregex.c:335
+#: ../glib/gregex.c:339
msgid "assertion expected after (?("
msgstr "assertion förväntades efter (?("
-#: ../glib/gregex.c:338
+#: ../glib/gregex.c:342
msgid "unknown POSIX class name"
msgstr "okänt POSIX-klassnamn"
-#: ../glib/gregex.c:341
+#: ../glib/gregex.c:345
msgid "POSIX collating elements are not supported"
msgstr "POSIX-sorteringselement stöds inte"
-#: ../glib/gregex.c:344
+#: ../glib/gregex.c:348
msgid "character value in \\x{...} sequence is too large"
msgstr "teckenvärde i \\x{...}-sekvens är för stort"
-#: ../glib/gregex.c:347
+#: ../glib/gregex.c:351
msgid "invalid condition (?(0)"
msgstr "ogiltigt tillstånd (?(0)"
-#: ../glib/gregex.c:350
+#: ../glib/gregex.c:354
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C tillåts inte i lookbehind-assertion"
-#: ../glib/gregex.c:353
+#: ../glib/gregex.c:357
msgid "recursive call could loop indefinitely"
msgstr "rekursivt anrop kan gå in i en oändlig slinga"
-#: ../glib/gregex.c:356
+#: ../glib/gregex.c:360
msgid "missing terminator in subpattern name"
msgstr "saknar avslutstecken i undermönstrets namn"
-#: ../glib/gregex.c:359
+#: ../glib/gregex.c:363
msgid "two named subpatterns have the same name"
msgstr "två namngivna undermönster har samma namn"
-#: ../glib/gregex.c:362
+#: ../glib/gregex.c:366
msgid "malformed \\P or \\p sequence"
msgstr "felformulerad \\P eller \\p-sekvens"
-#: ../glib/gregex.c:365
+#: ../glib/gregex.c:369
msgid "unknown property name after \\P or \\p"
msgstr "okänt egenskapsnamn efter \\P eller \\p"
-#: ../glib/gregex.c:368
+#: ../glib/gregex.c:372
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "undermönstrets namn är för långt (maximalt 32 tecken)"
-#: ../glib/gregex.c:371
+#: ../glib/gregex.c:375
msgid "too many named subpatterns (maximum 10,000)"
msgstr "för många namngivna undermönster (maximalt 10,000)"
-#: ../glib/gregex.c:374
+#: ../glib/gregex.c:378
msgid "octal value is greater than \\377"
msgstr "oktalt värde är större än \\377"
-#: ../glib/gregex.c:377
+#: ../glib/gregex.c:381
msgid "DEFINE group contains more than one branch"
msgstr "DEFINE-grupp innehåller fler än en gren"
-#: ../glib/gregex.c:380
+#: ../glib/gregex.c:384
msgid "repeating a DEFINE group is not allowed"
msgstr "upprepning av en DEFINE-grupp tillåts inte"
-#: ../glib/gregex.c:383
+#: ../glib/gregex.c:387
msgid "inconsistent NEWLINE options"
msgstr "inkonsistenta NEWLINE-flaggor"
-#: ../glib/gregex.c:386
+#: ../glib/gregex.c:390
msgid "\\g is not followed by a braced name or an optionally braced non-zero number"
msgstr "\\g följs inte av ett namn inom klamrar eller ett valfri (icke-noll) tal inom klamrar"
-#: ../glib/gregex.c:391
+#: ../glib/gregex.c:395
msgid "unexpected repeat"
msgstr "oväntad upprepning"
-#: ../glib/gregex.c:395
+#: ../glib/gregex.c:399
msgid "code overflow"
msgstr "överflöde i kod"
-#: ../glib/gregex.c:399
+#: ../glib/gregex.c:403
msgid "overran compiling workspace"
msgstr "fyllde över kompileringsutrymme"
-#: ../glib/gregex.c:403
+#: ../glib/gregex.c:407
msgid "previously-checked referenced subpattern not found"
msgstr "tidigare kontrollerad refererande undermönster hittades inte"
-#: ../glib/gregex.c:575
-#: ../glib/gregex.c:1696
+#: ../glib/gregex.c:579
+#: ../glib/gregex.c:1700
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Fel vid matchning av reguljära uttrycket %s: %s"
-#: ../glib/gregex.c:1151
+#: ../glib/gregex.c:1155
msgid "PCRE library is compiled without UTF8 support"
msgstr "PCRE-biblioteket är byggt utan stöd för UTF8"
-#: ../glib/gregex.c:1160
+#: ../glib/gregex.c:1164
msgid "PCRE library is compiled without UTF8 properties support"
msgstr "PCRE-biblioteket är byggt utan stöd för UTF8-egenskaper"
-#: ../glib/gregex.c:1214
+#: ../glib/gregex.c:1218
#, c-format
msgid "Error while compiling regular expression %s at char %d: %s"
msgstr "Fel vid kompilering av reguljära uttrycket %s vid tecknet %d: %s"
-#: ../glib/gregex.c:1250
+#: ../glib/gregex.c:1254
#, c-format
msgid "Error while optimizing regular expression %s: %s"
msgstr "Fel vid optimering av reguljära uttrycket %s: %s"
-#: ../glib/gregex.c:2124
+#: ../glib/gregex.c:2128
msgid "hexadecimal digit or '}' expected"
msgstr "hexadecimal siffra eller \"}\" förväntades"
-#: ../glib/gregex.c:2140
+#: ../glib/gregex.c:2144
msgid "hexadecimal digit expected"
msgstr "hexadecimal siffra förväntades"
-#: ../glib/gregex.c:2180
+#: ../glib/gregex.c:2184
msgid "missing '<' in symbolic reference"
msgstr "saknar \"<\" i symbolisk referens"
-#: ../glib/gregex.c:2189
+#: ../glib/gregex.c:2193
msgid "unfinished symbolic reference"
msgstr "oavslutad symbolisk referens"
-#: ../glib/gregex.c:2196
+#: ../glib/gregex.c:2200
msgid "zero-length symbolic reference"
msgstr "symbolisk referens med noll-längd"
-#: ../glib/gregex.c:2207
+#: ../glib/gregex.c:2211
msgid "digit expected"
msgstr "siffra förväntades"
-#: ../glib/gregex.c:2225
+#: ../glib/gregex.c:2229
msgid "illegal symbolic reference"
msgstr "otillåten symbolisk referens"
-#: ../glib/gregex.c:2287
+#: ../glib/gregex.c:2291
msgid "stray final '\\'"
msgstr "felplacerad avslutande \"\\\""
-#: ../glib/gregex.c:2291
+#: ../glib/gregex.c:2295
msgid "unknown escape sequence"
msgstr "okänd escape-sekvens"
-#: ../glib/gregex.c:2301
+#: ../glib/gregex.c:2305
#, c-format
msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
msgstr "Fel vid tolkning av ersättningstexten \"%s\" vid tecknet %lu: %s"
@@ -1355,27 +1364,27 @@
#: ../gio/ginputstream.c:185
#: ../gio/ginputstream.c:317
#: ../gio/ginputstream.c:556
-#: ../gio/ginputstream.c:681
-#: ../gio/goutputstream.c:197
-#: ../gio/goutputstream.c:724
+#: ../gio/ginputstream.c:680
+#: ../gio/goutputstream.c:198
+#: ../gio/goutputstream.c:726
#, c-format
msgid "Too large count value passed to %s"
msgstr "För stort räknevärde skickat till %s"
#: ../gio/gbufferedinputstream.c:881
-#: ../gio/ginputstream.c:891
+#: ../gio/ginputstream.c:888
#: ../gio/giostream.c:306
-#: ../gio/goutputstream.c:1199
+#: ../gio/goutputstream.c:1197
msgid "Stream is already closed"
msgstr "Strömmen är redan stängd"
-#: ../gio/gcancellable.c:432
-#: ../gio/gdbusconnection.c:1549
-#: ../gio/gdbusconnection.c:1638
-#: ../gio/gdbusconnection.c:1820
+#: ../gio/gcancellable.c:433
+#: ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726
+#: ../gio/gdbusconnection.c:1912
#: ../gio/glocalfile.c:2102
-#: ../gio/gsimpleasyncresult.c:755
-#: ../gio/gsimpleasyncresult.c:781
+#: ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "Åtgärden avbröts"
@@ -1394,7 +1403,7 @@
msgstr "Inte tillräckligt med utrymme i målet"
#: ../gio/gcharsetconverter.c:447
-#: ../gio/gsocket.c:810
+#: ../gio/gsocket.c:832
msgid "Cancellable initialization not supported"
msgstr "Avbrytningsbar initiering stöds inte"
@@ -1421,7 +1430,7 @@
msgid "There is no GCredentials support for your platform"
msgstr "Det finns inget stöd för GCredentials för din plattform"
-#: ../gio/gdatainputstream.c:310
+#: ../gio/gdatainputstream.c:311
msgid "Unexpected early end-of-stream"
msgstr "Oväntat tidig end-of-stream"
@@ -1519,46 +1528,46 @@
msgid "Error writing contents of nonce file `%s' to stream:"
msgstr "Fel vid skrivning till fil: %s"
-#: ../gio/gdbusaddress.c:942
+#: ../gio/gdbusaddress.c:939
msgid "The given address is empty"
msgstr "Angivna adressen är tom"
-#: ../gio/gdbusaddress.c:1011
+#: ../gio/gdbusaddress.c:1008
msgid "Cannot spawn a message bus without a machine-id: "
msgstr ""
-#: ../gio/gdbusaddress.c:1048
+#: ../gio/gdbusaddress.c:1045
#, fuzzy, c-format
msgid "Error spawning command line `%s': "
msgstr "Fel vid läsning av filen \"%s\": %s"
-#: ../gio/gdbusaddress.c:1059
+#: ../gio/gdbusaddress.c:1056
#, c-format
msgid "Abnormal program termination spawning command line `%s': %s"
msgstr "Onormal programterminering startar kommandoraden \"%s\": %s"
-#: ../gio/gdbusaddress.c:1073
+#: ../gio/gdbusaddress.c:1070
#, c-format
msgid "Command line `%s' exited with non-zero exit status %d: %s"
msgstr "Kommandoraden \"%s\" avslutades med icke-noll-status %d: %s"
-#: ../gio/gdbusaddress.c:1146
+#: ../gio/gdbusaddress.c:1143
#, c-format
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
-#: ../gio/gdbusaddress.c:1245
-#: ../gio/gdbusconnection.c:6013
+#: ../gio/gdbusaddress.c:1242
+#: ../gio/gdbusconnection.c:6168
#, c-format
msgid "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable - unknown value `%s'"
msgstr ""
-#: ../gio/gdbusaddress.c:1254
-#: ../gio/gdbusconnection.c:6022
+#: ../gio/gdbusaddress.c:1251
+#: ../gio/gdbusconnection.c:6177
msgid "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment variable is not set"
msgstr ""
-#: ../gio/gdbusaddress.c:1264
+#: ../gio/gdbusaddress.c:1261
#, c-format
msgid "Unknown bus type %d"
msgstr "Okänd busstyp %d"
@@ -1653,89 +1662,89 @@
msgid "(Additionally, releasing the lock for `%s' also failed: %s) "
msgstr ""
-#: ../gio/gdbusconnection.c:1058
-#: ../gio/gdbusconnection.c:1287
-#: ../gio/gdbusconnection.c:1326
-#: ../gio/gdbusconnection.c:1649
+#: ../gio/gdbusconnection.c:1148
+#: ../gio/gdbusconnection.c:1374
+#: ../gio/gdbusconnection.c:1413
+#: ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr "Anslutningen är stängd"
-#: ../gio/gdbusconnection.c:1593
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr "Tidsgränsen uppnåddes"
-#: ../gio/gdbusconnection.c:2170
+#: ../gio/gdbusconnection.c:2300
msgid "Unsupported flags encountered when constructing a client-side connection"
msgstr ""
-#: ../gio/gdbusconnection.c:3596
-#: ../gio/gdbusconnection.c:3914
+#: ../gio/gdbusconnection.c:3752
+#: ../gio/gdbusconnection.c:4070
#, c-format
msgid "No such interface `org.freedesktop.DBus.Properties' on object at path %s"
msgstr ""
-#: ../gio/gdbusconnection.c:3668
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:3763
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
msgstr "Ingen sådan egenskap \"%s\""
-#: ../gio/gdbusconnection.c:3775
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr "Egenskapen \"%s\" är inte läsbar"
-#: ../gio/gdbusconnection.c:3786
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr "Egenskapen \"%s\" är inte skrivbar"
-#: ../gio/gdbusconnection.c:3856
-#: ../gio/gdbusconnection.c:5447
+#: ../gio/gdbusconnection.c:4012
+#: ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
msgstr "Inget sådan gränssnitt \"%s\""
-#: ../gio/gdbusconnection.c:4044
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
msgstr "Inget sådant gränssnitt"
-#: ../gio/gdbusconnection.c:4260
-#: ../gio/gdbusconnection.c:5963
+#: ../gio/gdbusconnection.c:4416
+#: ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
msgstr ""
-#: ../gio/gdbusconnection.c:4312
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr "Ingen sådan metod \"%s\""
-#: ../gio/gdbusconnection.c:4343
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:4562
+#: ../gio/gdbusconnection.c:4718
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr ""
-#: ../gio/gdbusconnection.c:4756
+#: ../gio/gdbusconnection.c:4912
#, c-format
msgid "Method `%s' returned type `%s', but expected `%s'"
-msgstr ""
+msgstr "Metoden \"%s\" returnerade typen \"%s\", men förväntade \"%s\""
-#: ../gio/gdbusconnection.c:5558
+#: ../gio/gdbusconnection.c:5713
#, c-format
msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
-msgstr ""
+msgstr "Metoden \"%s\" på gränssnittet \"%s\" med signaturen \"%s\" finns inte"
-#: ../gio/gdbusconnection.c:5676
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr "Ett underträd har redan exporterats för %s"
@@ -1881,13 +1890,13 @@
msgstr ""
#: ../gio/gdbusmethodinvocation.c:406
-#: ../gio/gsocket.c:2974
-#: ../gio/gsocket.c:3055
+#: ../gio/gsocket.c:3023
+#: ../gio/gsocket.c:3104
#, c-format
msgid "Error sending message: %s"
msgstr "Fel vid sändning av meddelande: %s"
-#: ../gio/gdbusprivate.c:1766
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr "Kunde inte läsa in /var/lib/dbus/machine-id: "
@@ -1896,18 +1905,18 @@
msgid "Trying to set property %s of type %s but according to the expected interface the type is %s"
msgstr ""
-#: ../gio/gdbusproxy.c:1235
+#: ../gio/gdbusproxy.c:1234
#, c-format
msgid "Error calling StartServiceByName for %s: "
msgstr ""
-#: ../gio/gdbusproxy.c:1256
+#: ../gio/gdbusproxy.c:1255
#, c-format
msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
msgstr ""
-#: ../gio/gdbusproxy.c:2315
-#: ../gio/gdbusproxy.c:2472
+#: ../gio/gdbusproxy.c:2311
+#: ../gio/gdbusproxy.c:2469
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 ""
@@ -1936,7 +1945,6 @@
msgstr "Kan inte lyssna på transport som inte stöds \"%s\""
#: ../gio/gdbus-tool.c:87
-#: ../gio/gsettings-tool.c:76
msgid "COMMAND"
msgstr "KOMMANDO"
@@ -2108,35 +2116,35 @@
msgid "Monitor a remote object."
msgstr "Övervaka ett fjärrobjekt."
-#: ../gio/gdesktopappinfo.c:467
+#: ../gio/gdesktopappinfo.c:480
#: ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "Namnlös"
-#: ../gio/gdesktopappinfo.c:751
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr "Skrivbordsfilen angav inget Exec-fält"
-#: ../gio/gdesktopappinfo.c:944
+#: ../gio/gdesktopappinfo.c:957
msgid "Unable to find terminal required for application"
msgstr "Kunde inte hitta terminal som krävs för programmet"
-#: ../gio/gdesktopappinfo.c:1153
+#: ../gio/gdesktopappinfo.c:1166
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr "Kan inte skapa programkonfigurationsmapp för användare %s: %s"
-#: ../gio/gdesktopappinfo.c:1157
+#: ../gio/gdesktopappinfo.c:1170
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "Kan inte skapa MIME-konfigurationsmapp för användare %s: %s"
-#: ../gio/gdesktopappinfo.c:1565
+#: ../gio/gdesktopappinfo.c:1663
#, c-format
msgid "Can't create user desktop file %s"
msgstr "Kan inte skapa skrivbordsfil för användare %s"
-#: ../gio/gdesktopappinfo.c:1679
+#: ../gio/gdesktopappinfo.c:1779
#, c-format
msgid "Custom definition for %s"
msgstr "Anpassad definition för %s"
@@ -2174,47 +2182,47 @@
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Felformaterat antal token (%d) i GEmblem-kodning"
-#: ../gio/gemblemedicon.c:292
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "Kan inte hantera version %d av GEmblemedIcon-kodning"
-#: ../gio/gemblemedicon.c:302
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Felformaterat antal token (%d) i GEmblemedIcon-kodning"
-#: ../gio/gemblemedicon.c:325
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Förväntade en GEmblem för GEmblemedIcon"
-#: ../gio/gfile.c:870
-#: ../gio/gfile.c:1100
-#: ../gio/gfile.c:1235
-#: ../gio/gfile.c:1471
-#: ../gio/gfile.c:1525
-#: ../gio/gfile.c:1582
-#: ../gio/gfile.c:1665
-#: ../gio/gfile.c:1720
-#: ../gio/gfile.c:1780
-#: ../gio/gfile.c:1834
-#: ../gio/gfile.c:3304
-#: ../gio/gfile.c:3358
-#: ../gio/gfile.c:3490
-#: ../gio/gfile.c:3530
-#: ../gio/gfile.c:3857
-#: ../gio/gfile.c:4259
-#: ../gio/gfile.c:4345
-#: ../gio/gfile.c:4434
-#: ../gio/gfile.c:4532
-#: ../gio/gfile.c:4619
-#: ../gio/gfile.c:4712
-#: ../gio/gfile.c:5042
-#: ../gio/gfile.c:5322
-#: ../gio/gfile.c:5391
-#: ../gio/gfile.c:6983
-#: ../gio/gfile.c:7073
-#: ../gio/gfile.c:7159
+#: ../gio/gfile.c:872
+#: ../gio/gfile.c:1103
+#: ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475
+#: ../gio/gfile.c:1529
+#: ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669
+#: ../gio/gfile.c:1724
+#: ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838
+#: ../gio/gfile.c:3308
+#: ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494
+#: ../gio/gfile.c:3535
+#: ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264
+#: ../gio/gfile.c:4350
+#: ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537
+#: ../gio/gfile.c:4624
+#: ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039
+#: ../gio/gfile.c:5306
+#: ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945
+#: ../gio/gfile.c:7035
+#: ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "Åtgärden stöds inte"
@@ -2227,63 +2235,63 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1356
+#: ../gio/gfile.c:1359
#: ../gio/glocalfile.c:1059
#: ../gio/glocalfile.c:1070
#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr "Infattande montering finns inte"
-#: ../gio/gfile.c:2408
+#: ../gio/gfile.c:2412
#: ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr "Kan inte kopiera över katalog"
-#: ../gio/gfile.c:2469
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "Kan inte kopiera katalog över katalog"
-#: ../gio/gfile.c:2477
+#: ../gio/gfile.c:2481
#: ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "Målfilen finns"
-#: ../gio/gfile.c:2495
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "Kan inte kopiera katalogen rekursivt"
-#: ../gio/gfile.c:2755
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "Splice stöds inte"
-#: ../gio/gfile.c:2759
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "Fel vid splice av fil: %s"
-#: ../gio/gfile.c:2906
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "Kan inte kopiera specialfil"
-#: ../gio/gfile.c:3480
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "Ogiltigt värde för symbolisk länk angivet"
-#: ../gio/gfile.c:3573
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "Papperskorgen stöds inte"
-#: ../gio/gfile.c:3622
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "Filnamn får inte innehålla \"%c\""
-#: ../gio/gfile.c:6040
-#: ../gio/gvolume.c:330
+#: ../gio/gfile.c:6004
+#: ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "volymen har inte implementerat montering"
-#: ../gio/gfile.c:6151
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "Inget program är registrerat för hantering av denna fil"
@@ -2313,59 +2321,59 @@
msgstr "Felformaterad inmatningsdata för GFileIcon"
#: ../gio/gfileinputstream.c:154
-#: ../gio/gfileinputstream.c:421
+#: ../gio/gfileinputstream.c:420
#: ../gio/gfileiostream.c:170
#: ../gio/gfileoutputstream.c:169
-#: ../gio/gfileoutputstream.c:524
+#: ../gio/gfileoutputstream.c:523
msgid "Stream doesn't support query_info"
msgstr "Strömmen saknar stöd för query_info"
-#: ../gio/gfileinputstream.c:336
-#: ../gio/gfileiostream.c:388
-#: ../gio/gfileoutputstream.c:382
+#: ../gio/gfileinputstream.c:335
+#: ../gio/gfileiostream.c:387
+#: ../gio/gfileoutputstream.c:381
msgid "Seek not supported on stream"
msgstr "Sökning stöds inte på strömmen"
-#: ../gio/gfileinputstream.c:380
+#: ../gio/gfileinputstream.c:379
msgid "Truncate not allowed on input stream"
msgstr "Kapning tillåts inte på inmatningsströmmen"
-#: ../gio/gfileiostream.c:464
-#: ../gio/gfileoutputstream.c:458
+#: ../gio/gfileiostream.c:463
+#: ../gio/gfileoutputstream.c:457
msgid "Truncate not supported on stream"
msgstr "Kapning stöds inte på strömmen"
-#: ../gio/gicon.c:285
+#: ../gio/gicon.c:287
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Fel antal token (%d)"
-#: ../gio/gicon.c:305
+#: ../gio/gicon.c:307
#, c-format
msgid "No type for class name %s"
msgstr "Ingen typ för klassnamnet %s"
-#: ../gio/gicon.c:315
+#: ../gio/gicon.c:317
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Typen %s implementerar inte GIcon-gränssnittet"
-#: ../gio/gicon.c:326
+#: ../gio/gicon.c:328
#, c-format
msgid "Type %s is not classed"
msgstr "Typen %s är inte klassad"
-#: ../gio/gicon.c:340
+#: ../gio/gicon.c:342
#, c-format
msgid "Malformed version number: %s"
msgstr "Felformaterat versionsnummer: %s"
-#: ../gio/gicon.c:354
+#: ../gio/gicon.c:356
#, 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:430
+#: ../gio/gicon.c:432
msgid "Can't handle the supplied version the icon encoding"
msgstr "Kan inte hantera angiven version för ikonkodningen"
@@ -2379,9 +2387,9 @@
#. 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:901
+#: ../gio/ginputstream.c:898
#: ../gio/giostream.c:316
-#: ../gio/goutputstream.c:1209
+#: ../gio/goutputstream.c:1207
msgid "Stream has outstanding operation"
msgstr "Strömmen har kvarstående åtgärd"
@@ -2395,6 +2403,257 @@
msgid "Unsupported socket address"
msgstr "Uttagsadressen stöds inte"
+#: ../gio/glib-compile-schemas.c:713
+msgid "empty names are not permitted"
+msgstr "tomma namn tillåts inte"
+
+#: ../gio/glib-compile-schemas.c:723
+#, c-format
+msgid "invalid name '%s': names must begin with a lowercase letter"
+msgstr "ogiltigt namn \"%s\": namn måste börja med en liten bokstav"
+
+#: ../gio/glib-compile-schemas.c:735
+#, c-format
+msgid "invalid name '%s': invalid character '%c'; only lowercase letters, numbers and dash ('-') are permitted."
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:744
+#, c-format
+msgid "invalid name '%s': two successive dashes ('--') are not permitted."
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:753
+#, c-format
+msgid "invalid name '%s': the last character may not be a dash ('-')."
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:761
+#, c-format
+msgid "invalid name '%s': maximum length is 32"
+msgstr "ogiltigt namn \"%s\": maximal längd är 32"
+
+#: ../gio/glib-compile-schemas.c:830
+#, c-format
+msgid "<child name='%s'> already specified"
+msgstr "<child name='%s'> redan angiven"
+
+#: ../gio/glib-compile-schemas.c:856
+msgid "can not add keys to a 'list-of' schema"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:867
+#, c-format
+msgid "<key name='%s'> already specified"
+msgstr "<key name='%s'> redan angiven"
+
+#: ../gio/glib-compile-schemas.c:885
+#, c-format
+msgid "<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> to modify value"
+msgstr "<key name='%s'> skuggar <key name='%s'> i <schema id='%s'>; använd <override> för att ändra värdet"
+
+#: ../gio/glib-compile-schemas.c:896
+#, c-format
+msgid "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to <key>"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:915
+#, c-format
+msgid "<%s id='%s'> not (yet) defined."
+msgstr "<%s id='%s'> inte (ännu) angiven."
+
+#: ../gio/glib-compile-schemas.c:930
+#, c-format
+msgid "invalid GVariant type string '%s'"
+msgstr "ogiltig GVariant-typsträng \"%s\""
+
+#: ../gio/glib-compile-schemas.c:960
+msgid "<override> given but schema isn't extending anything"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:973
+#, c-format
+msgid "no <key name='%s'> to override"
+msgstr "ingen <key name='%s'> att åsidosätta"
+
+#: ../gio/glib-compile-schemas.c:981
+#, c-format
+msgid "<override name='%s'> already specified"
+msgstr "<override name='%s'> redan angiven"
+
+#: ../gio/glib-compile-schemas.c:1052
+#, c-format
+msgid "<schema id='%s'> already specified"
+msgstr "<schema id='%s'> redan angiven"
+
+#: ../gio/glib-compile-schemas.c:1064
+#, c-format
+msgid "<schema id='%s'> extends not yet existing schema '%s'"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1080
+#, c-format
+msgid "<schema id='%s'> is list of not yet existing schema '%s'"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1088
+#, c-format
+msgid "Can not be a list of a schema with a path"
+msgstr "Kan inte vara en lista för ett schema med en sökväg"
+
+#: ../gio/glib-compile-schemas.c:1098
+#, c-format
+msgid "Can not extend a schema with a path"
+msgstr "Kan inte utöka ett schema med en sökväg"
+
+#: ../gio/glib-compile-schemas.c:1108
+#, c-format
+msgid "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1118
+#, 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'> utökar <schema id='%s' list-of='%s'> men \"%s\" utökar inte \"%s\""
+
+#: ../gio/glib-compile-schemas.c:1135
+#, c-format
+msgid "a path, if given, must begin and end with a slash"
+msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck"
+
+#: ../gio/glib-compile-schemas.c:1142
+#, c-format
+msgid "the path of a list must end with ':/'"
+msgstr "sökvägen för en lista måste sluta med \":/\""
+
+#: ../gio/glib-compile-schemas.c:1168
+#, c-format
+msgid "<%s id='%s'> already specified"
+msgstr "<%s id='%s'> redan angiven"
+
+#: ../gio/glib-compile-schemas.c:1387
+#, c-format
+msgid "Element <%s> not allowed inside <%s>"
+msgstr "Elementet <%s> tillåts inte inuti <%s>"
+
+#: ../gio/glib-compile-schemas.c:1391
+#, c-format
+msgid "Element <%s> not allowed at toplevel"
+msgstr "Elementet <%s> tillåts inte på toppnivå"
+
+#: ../gio/glib-compile-schemas.c:1485
+#, c-format
+msgid "text may not appear inside <%s>"
+msgstr "text får inte vara inuti <%s>"
+
+#. Translators: Do not translate "--strict".
+#: ../gio/glib-compile-schemas.c:1654
+#: ../gio/glib-compile-schemas.c:1725
+#: ../gio/glib-compile-schemas.c:1801
+#, c-format
+msgid "--strict was specified; exiting.\n"
+msgstr "--strict angavs; avslutar.\n"
+
+#: ../gio/glib-compile-schemas.c:1662
+#, c-format
+msgid "This entire file has been ignored.\n"
+msgstr "Hela denna filen har ignorerats.\n"
+
+#: ../gio/glib-compile-schemas.c:1721
+#, c-format
+msgid "Ignoring this file.\n"
+msgstr "Ignorerar denna fil.\n"
+
+#: ../gio/glib-compile-schemas.c:1761
+#, c-format
+msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1767
+#: ../gio/glib-compile-schemas.c:1825
+#: ../gio/glib-compile-schemas.c:1853
+#, c-format
+msgid "; ignoring override for this key.\n"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1771
+#: ../gio/glib-compile-schemas.c:1829
+#: ../gio/glib-compile-schemas.c:1857
+#, c-format
+msgid " and --strict was specified; exiting.\n"
+msgstr " och --strict angavs; avslutar.\n"
+
+#: ../gio/glib-compile-schemas.c:1787
+#, c-format
+msgid "error parsing key `%s' in schema `%s' as specified in override file `%s': %s. "
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1797
+#, c-format
+msgid "Ignoring override for this key.\n"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1815
+#, c-format
+msgid "override for key `%s' in schema `%s' in override file `%s' is out of the range given in the schema"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1843
+#, 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:1897
+msgid "where to store the gschemas.compiled file"
+msgstr "var filen gschemas.compiled ska lagras"
+
+#: ../gio/glib-compile-schemas.c:1897
+#: ../gio/glib-compile-schemas.c:1910
+msgid "DIRECTORY"
+msgstr "KATALOG"
+
+#: ../gio/glib-compile-schemas.c:1898
+msgid "Abort on any errors in schemas"
+msgstr "Avbryt vid alla möjliga fel i scheman"
+
+#: ../gio/glib-compile-schemas.c:1899
+msgid "Do not write the gschema.compiled file"
+msgstr "Skriv inte filen gschema.compiled"
+
+#: ../gio/glib-compile-schemas.c:1900
+msgid "This option will be removed soon."
+msgstr "Denna flagga kommer snart att försvinna."
+
+#: ../gio/glib-compile-schemas.c:1901
+msgid "Do not enforce key name restrictions"
+msgstr ""
+
+#: ../gio/glib-compile-schemas.c:1913
+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:1929
+#, 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:1968
+#, c-format
+msgid "No schema files found: "
+msgstr "Inga schemafiler hittades: "
+
+#: ../gio/glib-compile-schemas.c:1971
+#, c-format
+msgid "doing nothing.\n"
+msgstr "gör ingenting.\n"
+
+#: ../gio/glib-compile-schemas.c:1974
+#, c-format
+msgid "removed existing output file.\n"
+msgstr ""
+
#: ../gio/glocaldirectorymonitor.c:287
msgid "Unable to find default local directory monitor type"
msgstr "Kunde inte hitta standardtyp för lokal katalogövervakare"
@@ -2790,260 +3049,357 @@
msgid "Hostname '%s' contains '[' but not ']'"
msgstr "Värdnamnet \"%s\" innehåller \"[\" men inte \"]\""
-#: ../gio/goutputstream.c:206
-#: ../gio/goutputstream.c:407
+#: ../gio/goutputstream.c:207
+#: ../gio/goutputstream.c:408
msgid "Output stream doesn't implement write"
msgstr "Utmatningsström har inte implementerat skrivning"
-#: ../gio/goutputstream.c:368
-#: ../gio/goutputstream.c:848
+#: ../gio/goutputstream.c:369
+#: ../gio/goutputstream.c:849
msgid "Source stream is already closed"
msgstr "Källströmmen är redan stängd"
-#: ../gio/gresolver.c:735
+#: ../gio/gresolver.c:737
#, c-format
msgid "Error resolving '%s': %s"
msgstr "Fel vid uppslag av \"%s\": %s"
-#: ../gio/gresolver.c:785
+#: ../gio/gresolver.c:787
#, c-format
msgid "Error reverse-resolving '%s': %s"
msgstr "Fel vid omvänt uppslag av \"%s\": %s"
-#: ../gio/gresolver.c:820
-#: ../gio/gresolver.c:898
+#: ../gio/gresolver.c:822
+#: ../gio/gresolver.c:900
#, c-format
msgid "No service record for '%s'"
msgstr "Ingen tjänstepost för \"%s\""
-#: ../gio/gresolver.c:825
-#: ../gio/gresolver.c:903
+#: ../gio/gresolver.c:827
+#: ../gio/gresolver.c:905
#, c-format
msgid "Temporarily unable to resolve '%s'"
msgstr "Kan för tillfället inte slå upp \"%s\""
-#: ../gio/gresolver.c:830
-#: ../gio/gresolver.c:908
+#: ../gio/gresolver.c:832
+#: ../gio/gresolver.c:910
#, c-format
msgid "Error resolving '%s'"
msgstr "Fel vid uppslag av \"%s\""
-#: ../gio/gsettings-tool.c:79
+#: ../gio/gsettings-tool.c:60
+#, c-format
+msgid "Schema '%s' is not relocatable (path must not be specified)\n"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:65
+#: ../gio/gsettings-tool.c:82
+#, c-format
+msgid "No such schema '%s'\n"
+msgstr "Inget sådant schema \"%s\"\n"
+
+#: ../gio/gsettings-tool.c:77
+#, c-format
+msgid "Schema '%s' is relocatable (path must be specified)\n"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:92
+#, c-format
+msgid "Empty path given.\n"
+msgstr "Tom sökväg angavs.\n"
+
+#: ../gio/gsettings-tool.c:98
+#, fuzzy, c-format
+msgid "Path must begin with a slash (/)\n"
+msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck"
+
+#: ../gio/gsettings-tool.c:104
+#, fuzzy, c-format
+msgid "Path must end with a slash (/)\n"
+msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck"
+
+#: ../gio/gsettings-tool.c:110
+#, c-format
+msgid "Path must not contain two adjacent slashes (//)\n"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:131
+#, c-format
+msgid "No such key '%s'\n"
+msgstr "Ingen sådan nyckel \"%s\"\n"
+
+#: ../gio/gsettings-tool.c:429
+#, c-format
+msgid "The provided value is outside of the valid range\n"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:458
+msgid "List the installed (non-relocatable) schemas"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:464
+msgid "List the installed relocatable schemas"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:470
+msgid "Lists the keys in SCHEMA"
+msgstr "Listar nycklarna i SCHEMA"
+
+#: ../gio/gsettings-tool.c:471
+#: ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
+msgid "SCHEMA[:PATH]"
+msgstr "SCHEMA[:SÖKVÄG]"
+
+#: ../gio/gsettings-tool.c:476
+msgid "Lists the children of SCHEMA"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:482
+msgid "List keys and values, recursively"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:488
+msgid "Gets the value of KEY"
+msgstr "Hämtar värdet för NYCKEL"
+
+#: ../gio/gsettings-tool.c:489
+#: ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507
+#: ../gio/gsettings-tool.c:513
+msgid "SCHEMA[:PATH] KEY"
+msgstr "SCHEMA[:SÖKVÄG] NYCKEL"
+
+#: ../gio/gsettings-tool.c:494
+msgid "Queries the range of valid values for KEY"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:500
+msgid "Sets the value of KEY to VALUE"
+msgstr "Ställer in värdet för NYCKEL till VÄRDE"
+
+#: ../gio/gsettings-tool.c:501
+msgid "SCHEMA[:PATH] KEY VALUE"
+msgstr "SCHEMA[:SÖKVÄG] NYCKELVÄRDE"
+
+#: ../gio/gsettings-tool.c:506
+msgid "Resets KEY to its default value"
+msgstr "Återställer NYCKEL till dess standardvärde"
+
+#: ../gio/gsettings-tool.c:512
+msgid "Checks if KEY is writable"
+msgstr "Kontrollerar om NYCKEL är skrivbar"
+
+#: ../gio/gsettings-tool.c:518
+msgid ""
+"Monitors 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:521
+msgid "SCHEMA[:PATH] [KEY]"
+msgstr "SCHEMA[:SÖKVÄG] [NYCKEL]"
+
+#: ../gio/gsettings-tool.c:525
#, c-format
msgid ""
-"Commands:\n"
-" help Show this information\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"
-" monitor Monitor a key for changes\n"
-" writable Check if a key is writable\n"
+"Unknown command %s\n"
"\n"
-"Use '%s COMMAND --help' to get help for individual commands.\n"
+msgstr ""
+"Okänt kommando %s\n"
+"\n"
+
+#: ../gio/gsettings-tool.c:533
+msgid ""
+"Usage:\n"
+" gsettings COMMAND [ARGS...]\n"
+"\n"
+"Commands:\n"
+" help Show this information\n"
+" list-schemas List installed schemas\n"
+" list-relocatable-schemas List relocatable schemas\n"
+" list-keys List keys in a schema\n"
+" list-children List children of a schema\n"
+" list-recursively List keys and values, recursively\n"
+" range Queries the range of a key\n"
+" get Get the value of a key\n"
+" set Set the value of a key\n"
+" reset Reset the value of a key\n"
+" writable Check if a key is writable\n"
+" monitor Watch for changes\n"
+"\n"
+"Use 'gsettings help COMMAND' to get detailed help.\n"
+"\n"
msgstr ""
-#: ../gio/gsettings-tool.c:220
-#: ../gio/gsettings-tool.c:320
-#: ../gio/gsettings-tool.c:436
-#: ../gio/gsettings-tool.c:531
-#: ../gio/gsettings-tool.c:644
-msgid "Specify the path for the schema"
-msgstr "Ange sökvägen för schemat"
+#: ../gio/gsettings-tool.c:554
+#, c-format
+msgid ""
+"Usage:\n"
+" gsettings %s %s\n"
+"\n"
+"%s\n"
+"\n"
+msgstr ""
+"Användning:\n"
+" gsettings %s %s\n"
+"\n"
+"%s\n"
+"\n"
-#: ../gio/gsettings-tool.c:220
-#: ../gio/gsettings-tool.c:320
-#: ../gio/gsettings-tool.c:436
-#: ../gio/gsettings-tool.c:531
-#: ../gio/gsettings-tool.c:644
-msgid "PATH"
-msgstr "SÖKVÄG"
+#: ../gio/gsettings-tool.c:559
+msgid "Arguments:\n"
+msgstr "Argument:\n"
-#: ../gio/gsettings-tool.c:228
-#: ../gio/gsettings-tool.c:539
+#: ../gio/gsettings-tool.c:563
+msgid ""
+" SCHEMA The name of the schema\n"
+" PATH The path, for relocatable schemas\n"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:568
+msgid " KEY The (optional) key within the schema\n"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:572
+msgid " KEY The key within the schema\n"
+msgstr ""
+
+#: ../gio/gsettings-tool.c:576
+msgid " VALUE The value to set\n"
+msgstr " VÄRDE Värdet att ställa in\n"
+
#: ../gio/gsettings-tool.c:652
-msgid "SCHEMA KEY"
-msgstr "SCHEMANYCKEL"
-
-#: ../gio/gsettings-tool.c:230
-msgid "Get the value of KEY"
-msgstr "Hämta värdet för NYCKEL"
-
-#: ../gio/gsettings-tool.c:232
-#: ../gio/gsettings-tool.c:448
-#: ../gio/gsettings-tool.c:543
-#: ../gio/gsettings-tool.c:659
-msgid ""
-"Arguments:\n"
-" SCHEMA The id of the schema\n"
-" KEY The name of the key\n"
-msgstr ""
-
-#: ../gio/gsettings-tool.c:328
-#: ../gio/gsettings-tool.c:444
-msgid "SCHEMA KEY VALUE"
-msgstr ""
-
-#: ../gio/gsettings-tool.c:330
-msgid "Set the value of KEY"
-msgstr "Ställ in värdet för NYCKEL"
-
-#: ../gio/gsettings-tool.c:332
-msgid ""
-"Arguments:\n"
-" SCHEMA The id of the schema\n"
-" KEY The name of the key\n"
-" VALUE The value to set key to, as a serialized GVariant\n"
-msgstr ""
-
-#: ../gio/gsettings-tool.c:405
#, c-format
-msgid "Key %s is not writable\n"
-msgstr "Nyckeln %s är inte skrivbar\n"
-
-#: ../gio/gsettings-tool.c:446
-msgid "Sets KEY to its default value"
-msgstr "Ställer in NYCKEL till dess standardvärde"
-
-#: ../gio/gsettings-tool.c:541
-msgid "Find out whether KEY is writable"
-msgstr "Ta reda på huruvida NYCKEL är skrivbar"
-
-#: ../gio/gsettings-tool.c:655
-msgid ""
-"Monitor KEY for changes and print the changed values.\n"
-"Monitoring will continue until the process is terminated."
+msgid "Empty schema name given"
msgstr ""
-#: ../gio/gsettings-tool.c:831
-#, c-format
-msgid "Unknown command '%s'\n"
-msgstr "Okänt kommando \"%s\"\n"
-
-#: ../gio/gsocket.c:276
+#: ../gio/gsocket.c:277
msgid "Invalid socket, not initialized"
msgstr "Ogiltigt uttag, inte initierat"
-#: ../gio/gsocket.c:283
+#: ../gio/gsocket.c:284
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Ogiltigt uttag, initiering misslyckades på grund av: %s"
-#: ../gio/gsocket.c:291
+#: ../gio/gsocket.c:292
msgid "Socket is already closed"
msgstr "Uttaget är redan stängt"
-#: ../gio/gsocket.c:299
-#: ../gio/gsocket.c:2716
-#: ../gio/gsocket.c:2760
+#: ../gio/gsocket.c:300
+#: ../gio/gsocket.c:2765
+#: ../gio/gsocket.c:2809
msgid "Socket I/O timed out"
msgstr ""
-#: ../gio/gsocket.c:421
+#: ../gio/gsocket.c:443
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "skapar GSocket från fd: %s"
-#: ../gio/gsocket.c:455
-#: ../gio/gsocket.c:471
-#: ../gio/gsocket.c:2113
+#: ../gio/gsocket.c:477
+#: ../gio/gsocket.c:493
+#: ../gio/gsocket.c:2135
#, c-format
msgid "Unable to create socket: %s"
msgstr "Kunde inte skapa uttag: %s"
-#: ../gio/gsocket.c:455
+#: ../gio/gsocket.c:477
msgid "Unknown protocol was specified"
msgstr "Okänt protokoll angavs"
-#: ../gio/gsocket.c:1224
+#: ../gio/gsocket.c:1246
#, c-format
msgid "could not get local address: %s"
msgstr "kunde inte få lokal adress: %s"
-#: ../gio/gsocket.c:1267
+#: ../gio/gsocket.c:1289
#, c-format
msgid "could not get remote address: %s"
msgstr "Kunde inte få fjärradress: %s"
-#: ../gio/gsocket.c:1328
+#: ../gio/gsocket.c:1350
#, c-format
msgid "could not listen: %s"
msgstr "kunde inte lyssna: %s"
-#: ../gio/gsocket.c:1402
+#: ../gio/gsocket.c:1424
#, c-format
msgid "Error binding to address: %s"
msgstr "Fel vid bindning till adress: %s"
-#: ../gio/gsocket.c:1522
+#: ../gio/gsocket.c:1544
#, c-format
msgid "Error accepting connection: %s"
msgstr "Fel vid godkännande av anslutning: %s"
-#: ../gio/gsocket.c:1639
+#: ../gio/gsocket.c:1661
msgid "Error connecting: "
msgstr "Fel vid anslutning: "
-#: ../gio/gsocket.c:1644
+#: ../gio/gsocket.c:1666
msgid "Connection in progress"
msgstr "Anslutningsförsök pågår"
-#: ../gio/gsocket.c:1651
+#: ../gio/gsocket.c:1673
#, c-format
msgid "Error connecting: %s"
msgstr "Fel vid anslutning: %s"
-#: ../gio/gsocket.c:1694
-#: ../gio/gsocket.c:3479
+#: ../gio/gsocket.c:1716
+#: ../gio/gsocket.c:3528
#, c-format
msgid "Unable to get pending error: %s"
msgstr "Kunde inte få tag på väntande fel: %s"
-#: ../gio/gsocket.c:1826
+#: ../gio/gsocket.c:1848
#, c-format
msgid "Error receiving data: %s"
msgstr "Fel vid mottagning av data: %s"
-#: ../gio/gsocket.c:2000
+#: ../gio/gsocket.c:2022
#, c-format
msgid "Error sending data: %s"
msgstr "Fel vid sändning av data: %s"
-#: ../gio/gsocket.c:2192
+#: ../gio/gsocket.c:2214
#, c-format
msgid "Error closing socket: %s"
msgstr "Fel vid stängning av uttag: %s"
-#: ../gio/gsocket.c:2709
+#: ../gio/gsocket.c:2758
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Väntar på uttagstillstånd: %s"
-#: ../gio/gsocket.c:2999
+#: ../gio/gsocket.c:3048
msgid "GSocketControlMessage not supported on windows"
msgstr "GSocketControlMessage stöds inte på Windows"
-#: ../gio/gsocket.c:3258
-#: ../gio/gsocket.c:3399
+#: ../gio/gsocket.c:3307
+#: ../gio/gsocket.c:3448
#, c-format
msgid "Error receiving message: %s"
msgstr "Fel vid mottagning av meddelande: %s"
-#: ../gio/gsocket.c:3494
+#: ../gio/gsocket.c:3543
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "g_socket_get_credentials har inte implementerats för detta operativsystem"
-#: ../gio/gsocketclient.c:674
-#: ../gio/gsocketclient.c:1153
+#: ../gio/gsocketclient.c:798
+#: ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "Okänt fel inträffade vid anslutning"
-#: ../gio/gsocketclient.c:711
-#: ../gio/gsocketclient.c:1038
+#: ../gio/gsocketclient.c:836
+#: ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr "Försök att skicka via proxy över en icke-TCP-anslutning stöds inte."
-#: ../gio/gsocketclient.c:749
-#: ../gio/gsocketclient.c:1061
+#: ../gio/gsocketclient.c:858
+#: ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr "Proxyprotokollet \"%s\" stöds inte."
@@ -3140,7 +3496,7 @@
msgstr "SOCKSv5-proxyservern saknar stöd för angiven adresstyp."
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
+msgid "Unknown SOCKSv5 proxy error."
msgstr "Okänt fel i SOCKSv5-proxyserver."
#: ../gio/gthemedicon.c:498
@@ -3148,6 +3504,18 @@
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "Kan inte hantera version %d av GThemedIcon-kodning"
+#: ../gio/gtlscertificate.c:228
+msgid "No PEM-encoded certificate found"
+msgstr ""
+
+#: ../gio/gtlscertificate.c:237
+msgid "Could not parse PEM-encoded certificate"
+msgstr ""
+
+#: ../gio/gtlscertificate.c:258
+msgid "Could not parse PEM-encoded private key"
+msgstr ""
+
#: ../gio/gunixconnection.c:164
#: ../gio/gunixconnection.c:505
#, c-format
@@ -3197,18 +3565,17 @@
msgid "Error while disabling SO_PASSCRED: %s"
msgstr "Fel vid inaktivning av SO_PASSCRED: %s"
-#: ../gio/gunixinputstream.c:353
-#: ../gio/gunixinputstream.c:373
-#: ../gio/gunixinputstream.c:451
-#: ../gio/gunixoutputstream.c:438
+#: ../gio/gunixinputstream.c:368
+#: ../gio/gunixinputstream.c:388
+#: ../gio/gunixinputstream.c:466
#, c-format
msgid "Error reading from unix: %s"
msgstr "Fel vid läsning från unix: %s"
-#: ../gio/gunixinputstream.c:406
-#: ../gio/gunixinputstream.c:589
-#: ../gio/gunixoutputstream.c:393
-#: ../gio/gunixoutputstream.c:545
+#: ../gio/gunixinputstream.c:421
+#: ../gio/gunixinputstream.c:601
+#: ../gio/gunixoutputstream.c:407
+#: ../gio/gunixoutputstream.c:556
#, c-format
msgid "Error closing unix: %s"
msgstr "Fel vid stängning av unix: %s"
@@ -3218,8 +3585,9 @@
msgid "Filesystem root"
msgstr "Filsystemsrot"
-#: ../gio/gunixoutputstream.c:339
-#: ../gio/gunixoutputstream.c:360
+#: ../gio/gunixoutputstream.c:353
+#: ../gio/gunixoutputstream.c:374
+#: ../gio/gunixoutputstream.c:452
#, c-format
msgid "Error writing to unix: %s"
msgstr "Fel vid skrivning till unix: %s"
@@ -3228,14 +3596,14 @@
msgid "Abstract unix domain socket addresses not supported on this system"
msgstr "Abstrakta Unix-domänuttagsadresser stöds inte på detta system"
-#: ../gio/gvolume.c:406
+#: ../gio/gvolume.c:408
msgid "volume doesn't implement eject"
msgstr "volymen har inte implementerat eject"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: ../gio/gvolume.c:485
+#: ../gio/gvolume.c:487
msgid "volume doesn't implement eject or eject_with_operation"
msgstr "volume har inte implementerat eject eller eject_with_operation"
@@ -3296,215 +3664,12 @@
msgid "Invalid compressed data"
msgstr "Ogiltigt komprimerat data"
-#: ../gio/glib-compile-schemas.c:702
-msgid "empty names are not permitted"
-msgstr "tomma namn tillåts inte"
-
-#: ../gio/glib-compile-schemas.c:712
-#, c-format
-msgid "invalid name '%s': names must begin with a lowercase letter"
-msgstr "ogiltigt namn \"%s\": namn måste börja med en liten bokstav"
-
-#: ../gio/glib-compile-schemas.c:724
-#, c-format
-msgid "invalid name '%s': invalid character '%c'; only lowercase letters, numbers and dash ('-') are permitted."
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:733
-#, c-format
-msgid "invalid name '%s': two successive dashes ('--') are not permitted."
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:742
-#, c-format
-msgid "invalid name '%s': the last character may not be a dash ('-')."
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:750
-#, c-format
-msgid "invalid name '%s': maximum length is 32"
-msgstr "ogiltigt namn \"%s\": maximal längd är 32"
-
-#: ../gio/glib-compile-schemas.c:819
-#, c-format
-msgid "<child name='%s'> already specified"
-msgstr "<child name='%s'> redan angiven"
-
-#: ../gio/glib-compile-schemas.c:845
-msgid "can not add keys to a 'list-of' schema"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:856
-#, c-format
-msgid "<key name='%s'> already specified"
-msgstr "<key name='%s'> redan angiven"
-
-#: ../gio/glib-compile-schemas.c:874
-#, 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:885
-#, c-format
-msgid "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute to <key>"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:904
-#, c-format
-msgid "<%s id='%s'> not (yet) defined."
-msgstr "<%s id='%s'> inte (ännu) angiven."
-
-#: ../gio/glib-compile-schemas.c:919
-#, c-format
-msgid "invalid GVariant type string '%s'"
-msgstr "ogiltig GVariant-typsträng \"%s\""
-
-#: ../gio/glib-compile-schemas.c:949
-msgid "<override> given but schema isn't extending anything"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:962
-#, c-format
-msgid "no <key name='%s'> to override"
-msgstr "ingen <key name='%s'> att åsidosätta"
-
-#: ../gio/glib-compile-schemas.c:970
-#, c-format
-msgid "<override name='%s'> already specified"
-msgstr "<override name='%s'> redan angiven"
-
-#: ../gio/glib-compile-schemas.c:1036
-#, c-format
-msgid "<schema id='%s'> already specified"
-msgstr "<schema id='%s'> redan angiven"
-
-#: ../gio/glib-compile-schemas.c:1048
-#, c-format
-msgid "<schema id='%s'> extends not yet existing schema '%s'"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1064
-#, c-format
-msgid "<schema id='%s'> is list of not yet existing schema '%s'"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1072
-#, c-format
-msgid "Can not be a list of a schema with a path"
-msgstr "Kan inte vara en lista för ett schema med en sökväg"
-
-#: ../gio/glib-compile-schemas.c:1082
-#, c-format
-msgid "Can not extend a schema with a path"
-msgstr "Kan inte utöka ett schema med en sökväg"
-
-#: ../gio/glib-compile-schemas.c:1092
-#, c-format
-msgid "<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1102
-#, 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'> utökar <schema id='%s' list-of='%s'> men \"%s\" utökar inte \"%s\""
-
-#: ../gio/glib-compile-schemas.c:1119
-#, c-format
-msgid "a path, if given, must begin and end with a slash"
-msgstr "en sökväg, om angiven, måste börja och sluta med ett snedstreck"
-
-#: ../gio/glib-compile-schemas.c:1126
-#, c-format
-msgid "the path of a list must end with ':/'"
-msgstr "sökvägen för en lista måste sluta med \":/\""
-
-#: ../gio/glib-compile-schemas.c:1148
-#, c-format
-msgid "<%s id='%s'> already specified"
-msgstr "<%s id='%s'> redan angiven"
-
-#: ../gio/glib-compile-schemas.c:1362
-#, c-format
-msgid "Element <%s> not allowed inside <%s>"
-msgstr "Elementet <%s> tillåts inte inuti <%s>"
-
-#: ../gio/glib-compile-schemas.c:1366
-#, c-format
-msgid "Element <%s> not allowed at toplevel"
-msgstr "Elementet <%s> tillåts inte på toppnivå"
-
-#: ../gio/glib-compile-schemas.c:1460
-#, c-format
-msgid "text may not appear inside <%s>"
-msgstr "text får inte vara inuti <%s>"
-
-#: ../gio/glib-compile-schemas.c:1674
-#, c-format
-msgid "No such schema `%s' specified in override file `%s'"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1698
-#, c-format
-msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1731
-#, c-format
-msgid "override for key `%s' in schema `%s' in override file `%s' is out of the range given in the schema"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1752
-#, 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:1797
-msgid "where to store the gschemas.compiled file"
-msgstr "var filen gschemas.compiled ska lagras"
-
-#: ../gio/glib-compile-schemas.c:1797
-#: ../gio/glib-compile-schemas.c:1809
-msgid "DIRECTORY"
-msgstr "KATALOG"
-
-#: ../gio/glib-compile-schemas.c:1798
-msgid "Do not write the gschema.compiled file"
-msgstr "Skriv inte filen gschema.compiled"
-
-#: ../gio/glib-compile-schemas.c:1799
-msgid "This option will be removed soon."
-msgstr "Denna flagga kommer snart att försvinna."
-
-#: ../gio/glib-compile-schemas.c:1800
-msgid "Do not enforce key name restrictions"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1812
-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:1828
-#, c-format
-msgid "You should give exactly one directory name\n"
-msgstr ""
-
-#: ../gio/glib-compile-schemas.c:1867
-#, c-format
-msgid "No schema files found: "
-msgstr "Inga schemafiler hittades: "
-
-#: ../gio/glib-compile-schemas.c:1870
-#, c-format
-msgid "doing nothing.\n"
-msgstr "gör ingenting.\n"
-
-#: ../gio/glib-compile-schemas.c:1873
-#, c-format
-msgid "removed existing output file.\n"
-msgstr ""
+#~ msgid "Specify the path for the schema"
+#~ msgstr "Ange sökvägen för schemat"
+#~ msgid "PATH"
+#~ msgstr "SÖKVÄG"
+#~ msgid "Key %s is not writable\n"
+#~ msgstr "Nyckeln %s är inte skrivbar\n"
#, fuzzy
#~ msgid "Do not give error for empty directory"
diff --git a/po/ug.po b/po/ug.po
index ba697d4..a95dea4 100644
--- a/po/ug.po
+++ b/po/ug.po
@@ -9,7 +9,7 @@
msgstr ""
"Project-Id-Version: glib\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=glib&component=general\n"
-"POT-Creation-Date: 2010-11-16 13:41+0000\n"
+"POT-Creation-Date: 2010-12-21 12:55+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Gheyret Kenji<gheyret@yahoo.com>\n"
"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
@@ -110,7 +110,7 @@
#: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350
#, c-format
msgid "Error during conversion: %s"
-msgstr ""
+msgstr "پاراڭلىشىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../glib/gconvert.c:808 ../glib/gutf8.c:988 ../glib/gutf8.c:1198
#: ../glib/gutf8.c:1339 ../glib/gutf8.c:1443
@@ -154,7 +154,7 @@
#: ../glib/gconvert.c:2041
msgid "Invalid hostname"
-msgstr ""
+msgstr "باش ماشىنا ئاتى ئىناۋەتسىز"
#. Translators: 'before midday' indicator
#: ../glib/gdatetime.c:149
@@ -385,135 +385,135 @@
#: ../glib/gdir.c:115 ../glib/gdir.c:138
#, c-format
msgid "Error opening directory '%s': %s"
-msgstr ""
+msgstr "مۇندەرىجە '%s' نى ئېچىۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
-msgstr ""
+msgstr "%lu بايت تەقسىملىيەلمىدى(ھۆججەت «%s» نى ئوقۇش ئۈچۈن)"
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "ھۆججەت '%s' ئوقۇشتا خاتالىق كۆرۈلدى: %s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
-msgstr ""
+msgstr "ھۆججەت «%s» بەك چوڭ"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
-msgstr ""
+msgstr "ھۆججەت '%s' دىن ئوقۇش مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "ھۆججەت «%s» نى ئاچالمىدى: %s"
-#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
+#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نىڭ خاسلىقلىرىغا ئېرىشىش مەغلۇپ بولدى:fstat() مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نى ئېچىش مەغلۇپ بولدى: fdopen() مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-msgstr ""
+msgstr "ئاتىنى '%s' دىن '%s' غا ئۆزگەرتىش مەغلۇپ بولدى: g_rename() مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
-msgstr ""
+msgstr "ھۆججەت '%s' قۇرۇش مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr ""
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نى يېزىش مەغلۇپ بولدى: fwrite() مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نى يېزىش مەغلۇپ بولدى: fflush() مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نى يېزىش مەغلۇپ بولدى: fsync() مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نى يېپىش مەغلۇپ بولدى: fclose() مەغلۇپ بولدى: %s"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr ""
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr ""
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr ""
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
-msgstr[0] "بايت %u"
+msgstr[0] "%u بايت"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr ""
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr ""
@@ -542,7 +542,7 @@
#: ../glib/gmappedfile.c:150
#, c-format
msgid "Failed to open file '%s': open() failed: %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نى ئېچىش مەغلۇپ بولدى: open() مەغلۇپ بولدى: %s"
#: ../glib/gmappedfile.c:229
#, c-format
@@ -552,7 +552,7 @@
#: ../glib/gmarkup.c:307 ../glib/gmarkup.c:347
#, c-format
msgid "Error on line %d char %d: "
-msgstr ""
+msgstr "قۇر %d ھەرپ %d دىكى خاتالىق: "
#: ../glib/gmarkup.c:367 ../glib/gmarkup.c:445
#, c-format
@@ -572,7 +572,7 @@
#: ../glib/gmarkup.c:498
#, c-format
msgid "Error on line %d: %s"
-msgstr ""
+msgstr "قۇر %d دىكى خاتالىق:%s"
#: ../glib/gmarkup.c:582
#, c-format
@@ -611,7 +611,7 @@
#: ../glib/gmarkup.c:1018
msgid "Document must begin with an element (e.g. <book>)"
-msgstr ""
+msgstr "پۈتۈك چوقۇم بىر ئېلېمېنت بىلەن باشلىنىشى كېرەك(مەسىلەن <book> دېگەندەك)"
#: ../glib/gmarkup.c:1058
#, c-format
@@ -665,16 +665,16 @@
#: ../glib/gmarkup.c:1476
#, c-format
msgid "Element '%s' was closed, no element is currently open"
-msgstr ""
+msgstr "ئېلېمېنت '%s' يېپىلدى، بىراق ھازىر ھېچقانداق ئېلېمېنت ئېچىلمىغان"
#: ../glib/gmarkup.c:1485
#, c-format
msgid "Element '%s' was closed, but the currently open element is '%s'"
-msgstr ""
+msgstr "ئېلېمېنت '%s' يېپىلدى، بىراق ھازىر ئېلېمېنت '%s' ئېچىلغان ئىدى"
#: ../glib/gmarkup.c:1652
msgid "Document was empty or contained only whitespace"
-msgstr ""
+msgstr "پۈتۈك قۇرۇق ياكى ئۇنىڭدا بوشلۇق بەلگىلىرىلا بار"
#: ../glib/gmarkup.c:1666
msgid "Document ended unexpectedly just after an open angle bracket '<'"
@@ -850,7 +850,7 @@
#: ../glib/gregex.c:324
msgid "regular expression too large"
-msgstr ""
+msgstr "مۇنتىزىم ئىپادە بەك چوڭ"
#: ../glib/gregex.c:327
msgid "failed to get memory"
@@ -1060,7 +1060,7 @@
#: ../glib/gspawn-win32.c:369 ../glib/gspawn.c:1352
#, c-format
msgid "Failed to change to directory '%s' (%s)"
-msgstr ""
+msgstr "مۇندەرىجە '%s' (%s) نى ئۆزگەرتىش مەغلۇپ بولدى"
#: ../glib/gspawn-win32.c:375 ../glib/gspawn-win32.c:494
#, c-format
@@ -1070,7 +1070,7 @@
#: ../glib/gspawn-win32.c:444
#, c-format
msgid "Invalid program name: %s"
-msgstr ""
+msgstr "پروگرامما ئاتى ئىناۋەتسىز: %s"
#: ../glib/gspawn-win32.c:454 ../glib/gspawn-win32.c:722
#: ../glib/gspawn-win32.c:1278
@@ -1082,7 +1082,7 @@
#: ../glib/gspawn-win32.c:1311
#, c-format
msgid "Invalid string in environment: %s"
-msgstr ""
+msgstr "مۇھىتتىكى تېكىست ئىناۋەتسىز: %s"
#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1259
#, c-format
@@ -1108,12 +1108,12 @@
#: ../glib/gspawn.c:335
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
+msgstr "جەريان (%s) دىن سانلىق مەلۇمات ئوقۇۋاتقاندا select() دا تاسادىپىي خاتالىق كۆرۈلدى"
#: ../glib/gspawn.c:420
#, c-format
msgid "Unexpected error in waitpid() (%s)"
-msgstr ""
+msgstr "waitpid() دا تاسادىپىي خاتالىق كۆرۈلدى (%s)"
#: ../glib/gspawn.c:1212
#, c-format
@@ -1168,7 +1168,7 @@
#: ../glib/goption.c:866
msgid "Help Options:"
-msgstr ""
+msgstr "ياردەم تاللانمىسى:"
#: ../glib/goption.c:867
msgid "Show help options"
@@ -1205,7 +1205,7 @@
#: ../glib/goption.c:1303 ../glib/goption.c:1382
#, c-format
msgid "Error parsing option %s"
-msgstr ""
+msgstr "تاللانما %s نى تەھلىل قىلىۋاتقاندا خاتالىق كۆرۈلدى"
#: ../glib/goption.c:1413 ../glib/goption.c:1527
#, c-format
@@ -1238,7 +1238,7 @@
#: ../glib/gkeyfile.c:824
#, c-format
msgid "Invalid group name: %s"
-msgstr ""
+msgstr "ئىناۋەتسىز گۇرۇپپا ئاتى: %s"
#: ../glib/gkeyfile.c:846
msgid "Key file does not start with a group"
@@ -1247,7 +1247,7 @@
#: ../glib/gkeyfile.c:872
#, c-format
msgid "Invalid key name: %s"
-msgstr ""
+msgstr "ئاچقۇچ ئاتى ئىناۋەتسىز: %s"
#: ../glib/gkeyfile.c:899
#, c-format
@@ -1311,7 +1311,7 @@
#: ../glib/gkeyfile.c:3814
#, c-format
msgid "Integer value '%s' out of range"
-msgstr ""
+msgstr "پۈتۈن سان قىممىتى '%s' چەكتىن ئېشىپ كەتتى"
#: ../glib/gkeyfile.c:3847
#, c-format
@@ -1336,16 +1336,16 @@
msgid "Stream is already closed"
msgstr ""
-#: ../gio/gcancellable.c:432 ../gio/gdbusconnection.c:1636
-#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911
-#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811
-#: ../gio/gsimpleasyncresult.c:837
+#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "مەشغۇلات بىكار قىلىندى"
#: ../gio/gcharsetconverter.c:263
msgid "Invalid object, not initialized"
-msgstr ""
+msgstr "ئىناۋەتسىز نەڭ. دەسلەپلەشتۈرۈلمىگەن"
#: ../gio/gcharsetconverter.c:284 ../gio/gcharsetconverter.c:312
msgid "Incomplete multibyte sequence in input"
@@ -1353,9 +1353,9 @@
#: ../gio/gcharsetconverter.c:318 ../gio/gcharsetconverter.c:327
msgid "Not enough space in destination"
-msgstr ""
+msgstr "نىشاندا يېتەرلىك بوشلۇق يوق"
-#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:831
+#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:832
msgid "Cancellable initialization not supported"
msgstr "فورماتلاشنى ئىناۋەتسىز قىلىشقا بولمايدۇ"
@@ -1375,7 +1375,7 @@
#: ../gio/gcredentials.c:246 ../gio/gcredentials.c:441
msgid "GCredentials is not implemented on this OS"
-msgstr ""
+msgstr "GCredentials نى بۇ OS دا ئىشلەتكىلى بولمايدۇ"
#: ../gio/gcredentials.c:396
msgid "There is no GCredentials support for your platform"
@@ -1455,7 +1455,7 @@
#: ../gio/gdbusaddress.c:632
msgid "Error auto-launching: "
-msgstr ""
+msgstr "ئاپتوماتىك ئىجرا قىلىشتا خاتالىق كۆرۈلدى: "
#: ../gio/gdbusaddress.c:640
#, c-format
@@ -1510,14 +1510,14 @@
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr ""
-#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167
+#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"- unknown value `%s'"
msgstr ""
-#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176
+#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -1560,7 +1560,7 @@
#: ../gio/gdbusauthmechanismsha1.c:299
#, c-format
msgid "Error creating directory `%s': %s"
-msgstr ""
+msgstr "مۇندەرىجە `%s' نى قۇرۇۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/gdbusauthmechanismsha1.c:382
#, c-format
@@ -1597,7 +1597,7 @@
#: ../gio/gdbusauthmechanismsha1.c:566
#, c-format
msgid "Error creating lock file `%s': %s"
-msgstr ""
+msgstr "قۇلۇپ ھۆججىتى `%s' نى قۇرۇۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/gdbusauthmechanismsha1.c:596
#, c-format
@@ -1620,85 +1620,85 @@
msgstr ""
#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374
-#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736
+#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr ""
-#: ../gio/gdbusconnection.c:1680
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr ""
-#: ../gio/gdbusconnection.c:2299
+#: ../gio/gdbusconnection.c:2300
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr ""
-#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069
+#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070
#, c-format
msgid ""
"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
msgstr ""
-#: ../gio/gdbusconnection.c:3823
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:3918
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
-msgstr ""
+msgstr "`%s' بۇنداق خاسلىق يوق"
-#: ../gio/gdbusconnection.c:3930
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr ""
-#: ../gio/gdbusconnection.c:3941
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr ""
-#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601
+#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
-msgstr ""
+msgstr "`%s' بۇنداق ئارايۈز يوق"
-#: ../gio/gdbusconnection.c:4199
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
-msgstr ""
+msgstr "بۇنداق ئارايۈز يوق"
-#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117
+#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
msgstr ""
-#: ../gio/gdbusconnection.c:4467
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:4498
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:4717
+#: ../gio/gdbusconnection.c:4718
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr ""
-#: ../gio/gdbusconnection.c:4911
+#: ../gio/gdbusconnection.c:4912
#, c-format
msgid "Method `%s' returned type `%s', but expected `%s'"
msgstr ""
-#: ../gio/gdbusconnection.c:5712
+#: ../gio/gdbusconnection.c:5713
#, c-format
msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
msgstr ""
-#: ../gio/gdbusconnection.c:5830
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr ""
@@ -1856,13 +1856,13 @@
msgid "Type of return value is incorrect, got `%s', expected `%s'"
msgstr ""
-#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:2992
-#: ../gio/gsocket.c:3073
+#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023
+#: ../gio/gsocket.c:3104
#, c-format
msgid "Error sending message: %s"
-msgstr ""
+msgstr "ئۇچۇر يوللاۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gdbusprivate.c:1756
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr ""
@@ -2006,12 +2006,12 @@
#: ../gio/gdbus-tool.c:646 ../gio/gdbus-tool.c:1264 ../gio/gdbus-tool.c:1524
#, c-format
msgid "Error: Destination is not specified\n"
-msgstr ""
+msgstr "خاتالىق: نىشان بەلگىلەنمىگەن\n"
#: ../gio/gdbus-tool.c:667 ../gio/gdbus-tool.c:1283
#, c-format
msgid "Error: Object path is not specified\n"
-msgstr ""
+msgstr "خاتالىق: نەڭ يولى بەلگىلەنمىگەن\n"
#: ../gio/gdbus-tool.c:687 ../gio/gdbus-tool.c:1303 ../gio/gdbus-tool.c:1564
#, c-format
@@ -2021,7 +2021,7 @@
#: ../gio/gdbus-tool.c:702
#, c-format
msgid "Error: Method name is not specified\n"
-msgstr ""
+msgstr "خاتالىق: Method ئاتى بەلگىلەنمىگەن\n"
#: ../gio/gdbus-tool.c:713
#, c-format
@@ -2036,7 +2036,7 @@
#: ../gio/gdbus-tool.c:786
#, c-format
msgid "Error parsing parameter %d: %s\n"
-msgstr ""
+msgstr "پارامېتىر %d تەھلىل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s\n"
#: ../gio/gdbus-tool.c:1162
msgid "Destination name to introspect"
@@ -2060,40 +2060,40 @@
#: ../gio/gdbus-tool.c:1424
msgid "Object path to monitor"
-msgstr ""
+msgstr "كۆزىتىدىغان نەڭنىڭ يولى"
#: ../gio/gdbus-tool.c:1457
msgid "Monitor a remote object."
-msgstr ""
+msgstr "يىراقتىكى نەڭنى كۆزىتىدۇ."
-#: ../gio/gdesktopappinfo.c:469 ../gio/gwin32appinfo.c:221
+#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "ئاتسىز"
-#: ../gio/gdesktopappinfo.c:753
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr ""
-#: ../gio/gdesktopappinfo.c:946
+#: ../gio/gdesktopappinfo.c:957
msgid "Unable to find terminal required for application"
msgstr ""
-#: ../gio/gdesktopappinfo.c:1155
+#: ../gio/gdesktopappinfo.c:1166
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr ""
-#: ../gio/gdesktopappinfo.c:1159
+#: ../gio/gdesktopappinfo.c:1170
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr ""
-#: ../gio/gdesktopappinfo.c:1567
+#: ../gio/gdesktopappinfo.c:1663
#, c-format
msgid "Can't create user desktop file %s"
msgstr ""
-#: ../gio/gdesktopappinfo.c:1681
+#: ../gio/gdesktopappinfo.c:1779
#, c-format
msgid "Custom definition for %s"
msgstr ""
@@ -2131,29 +2131,29 @@
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr ""
-#: ../gio/gemblemedicon.c:293
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr ""
-#: ../gio/gemblemedicon.c:303
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr ""
-#: ../gio/gemblemedicon.c:326
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr ""
-#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237
-#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585
-#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783
-#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361
-#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861
-#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438
-#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717
-#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370
-#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120
+#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "مەشغۇلاتنى قوللىمايدۇ"
@@ -2166,58 +2166,58 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
+#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr ""
-#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258
+#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr ""
-#: ../gio/gfile.c:2472
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "مۇندەرىجىنى مۇندەرىجىگە كۆچۈرەلمىدى"
-#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267
+#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "نىشان ھۆججەت مەۋجۇت"
-#: ../gio/gfile.c:2498
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "مۇندەرىجىنى قايتىلانما كۆچۈرەلمەيدۇ"
-#: ../gio/gfile.c:2758
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr ""
-#: ../gio/gfile.c:2762
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr ""
-#: ../gio/gfile.c:2909
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr ""
-#: ../gio/gfile.c:3483
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr ""
-#: ../gio/gfile.c:3577
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr ""
-#: ../gio/gfile.c:3626
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
-msgstr ""
+msgstr "ھۆججەت ئاتىدا '%c' بولسا بولمايدۇ"
-#: ../gio/gfile.c:6003 ../gio/gvolume.c:332
+#: ../gio/gfile.c:6004 ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr ""
-#: ../gio/gfile.c:6114
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr ""
@@ -2285,7 +2285,7 @@
#: ../gio/gicon.c:342
#, c-format
msgid "Malformed version number: %s"
-msgstr ""
+msgstr "قۇرۇلمىسى خاتا نەشر نومۇرى: %s"
#: ../gio/gicon.c:356
#, c-format
@@ -2314,7 +2314,7 @@
#: ../gio/ginetsocketaddress.c:181 ../gio/ginetsocketaddress.c:198
#: ../gio/gunixsocketaddress.c:221
msgid "Not enough space for socket address"
-msgstr ""
+msgstr "socket ئادرېسى ئۈچۈن يېتەرلىك بوشلۇق يوق"
#: ../gio/ginetsocketaddress.c:211
msgid "Unsupported socket address"
@@ -2456,128 +2456,128 @@
msgid "<%s id='%s'> already specified"
msgstr "<%s id='%s'> ئاللىقاچان بەلگىلەنگەن"
-#: ../gio/glib-compile-schemas.c:1385
+#: ../gio/glib-compile-schemas.c:1387
#, c-format
msgid "Element <%s> not allowed inside <%s>"
-msgstr ""
+msgstr "ئېلېمېنت <%s> نى <%s> نىڭ ئىچىدە ئىشلەتكىلى بولمايدۇ"
-#: ../gio/glib-compile-schemas.c:1389
+#: ../gio/glib-compile-schemas.c:1391
#, c-format
msgid "Element <%s> not allowed at toplevel"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1483
+#: ../gio/glib-compile-schemas.c:1485
#, c-format
msgid "text may not appear inside <%s>"
msgstr ""
#. Translators: Do not translate "--strict".
-#: ../gio/glib-compile-schemas.c:1652 ../gio/glib-compile-schemas.c:1723
-#: ../gio/glib-compile-schemas.c:1799
+#: ../gio/glib-compile-schemas.c:1654 ../gio/glib-compile-schemas.c:1725
+#: ../gio/glib-compile-schemas.c:1801
#, c-format
msgid "--strict was specified; exiting.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1660
+#: ../gio/glib-compile-schemas.c:1662
#, c-format
msgid "This entire file has been ignored.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1719
+#: ../gio/glib-compile-schemas.c:1721
#, c-format
msgid "Ignoring this file.\n"
-msgstr ""
+msgstr "بۇ ھۆججەتكە پەرۋا قىلمايدۇ.\n"
-#: ../gio/glib-compile-schemas.c:1759
+#: ../gio/glib-compile-schemas.c:1761
#, c-format
msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1765 ../gio/glib-compile-schemas.c:1823
-#: ../gio/glib-compile-schemas.c:1851
+#: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825
+#: ../gio/glib-compile-schemas.c:1853
#, c-format
msgid "; ignoring override for this key.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1769 ../gio/glib-compile-schemas.c:1827
-#: ../gio/glib-compile-schemas.c:1855
+#: ../gio/glib-compile-schemas.c:1771 ../gio/glib-compile-schemas.c:1829
+#: ../gio/glib-compile-schemas.c:1857
#, c-format
msgid " and --strict was specified; exiting.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1785
+#: ../gio/glib-compile-schemas.c:1787
#, c-format
msgid ""
"error parsing key `%s' in schema `%s' as specified in override file `%s': %"
"s. "
msgstr ""
-#: ../gio/glib-compile-schemas.c:1795
+#: ../gio/glib-compile-schemas.c:1797
#, c-format
msgid "Ignoring override for this key.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1813
+#: ../gio/glib-compile-schemas.c:1815
#, c-format
msgid ""
"override for key `%s' in schema `%s' in override file `%s' is out of the "
"range given in the schema"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1841
+#: ../gio/glib-compile-schemas.c:1843
#, 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:1895
+#: ../gio/glib-compile-schemas.c:1897
msgid "where to store the gschemas.compiled file"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1895 ../gio/glib-compile-schemas.c:1908
+#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1910
msgid "DIRECTORY"
msgstr "DIRECTORY"
-#: ../gio/glib-compile-schemas.c:1896
+#: ../gio/glib-compile-schemas.c:1898
msgid "Abort on any errors in schemas"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1897
+#: ../gio/glib-compile-schemas.c:1899
msgid "Do not write the gschema.compiled file"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1898
+#: ../gio/glib-compile-schemas.c:1900
msgid "This option will be removed soon."
msgstr ""
-#: ../gio/glib-compile-schemas.c:1899
+#: ../gio/glib-compile-schemas.c:1901
msgid "Do not enforce key name restrictions"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1911
+#: ../gio/glib-compile-schemas.c:1913
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:1927
+#: ../gio/glib-compile-schemas.c:1929
#, c-format
msgid "You should give exactly one directory name\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1966
+#: ../gio/glib-compile-schemas.c:1968
#, c-format
msgid "No schema files found: "
msgstr ""
-#: ../gio/glib-compile-schemas.c:1969
+#: ../gio/glib-compile-schemas.c:1971
#, c-format
msgid "doing nothing.\n"
msgstr ""
-#: ../gio/glib-compile-schemas.c:1972
+#: ../gio/glib-compile-schemas.c:1974
#, c-format
msgid "removed existing output file.\n"
msgstr ""
@@ -2594,7 +2594,7 @@
#: ../gio/glocalfile.c:967
#, c-format
msgid "Error getting filesystem info: %s"
-msgstr ""
+msgstr "ھۆججەت سىستېمىسى ئۇچۇرلىرىنى ئېلىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfile.c:1105
msgid "Can't rename root directory"
@@ -2603,7 +2603,7 @@
#: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151
#, c-format
msgid "Error renaming file: %s"
-msgstr ""
+msgstr "ھۆججەت ئاتىنى ئۆزگەرتىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfile.c:1134
msgid "Can't rename file, filename already exist"
@@ -2628,7 +2628,7 @@
#: ../gio/glocalfile.c:1443
#, c-format
msgid "Error removing file: %s"
-msgstr ""
+msgstr "ھۆججەتنى ئۆچۈرۈۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfile.c:1810
#, c-format
@@ -2748,12 +2748,12 @@
#: ../gio/glocalfileinfo.c:1921
#, c-format
msgid "Error setting permissions: %s"
-msgstr ""
+msgstr "ھوقۇقلىرىنى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileinfo.c:1972
#, c-format
msgid "Error setting owner: %s"
-msgstr ""
+msgstr "ئىگىسىنى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileinfo.c:1995
msgid "symlink must be non-NULL"
@@ -2763,11 +2763,11 @@
#: ../gio/glocalfileinfo.c:2035
#, c-format
msgid "Error setting symlink: %s"
-msgstr ""
+msgstr "symlink نى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileinfo.c:2014
msgid "Error setting symlink: file is not a symlink"
-msgstr ""
+msgstr "symlink نى بېكىتىۋاتقاندا خاتالىق كۆرۈلدى: ھۆججەت symlink ئەمەس"
#: ../gio/glocalfileinfo.c:2140
#, c-format
@@ -2795,7 +2795,7 @@
#: ../gio/glocalfileinputstream.c:185 ../gio/glocalfileoutputstream.c:722
#, c-format
msgid "Error reading from file: %s"
-msgstr ""
+msgstr "ھۆججەتتىن ئوقۇۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileinputstream.c:216 ../gio/glocalfileinputstream.c:228
#: ../gio/glocalfileinputstream.c:340 ../gio/glocalfileoutputstream.c:470
@@ -2808,7 +2808,7 @@
#: ../gio/glocalfileoutputstream.c:351
#, c-format
msgid "Error closing file: %s"
-msgstr ""
+msgstr "ھۆججەتنى يېپىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfilemonitor.c:212
msgid "Unable to find default local file monitor type"
@@ -2818,12 +2818,12 @@
#: ../gio/glocalfileoutputstream.c:743
#, c-format
msgid "Error writing to file: %s"
-msgstr ""
+msgstr "ھۆججەتكە يېزىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileoutputstream.c:283
#, c-format
msgid "Error removing old backup link: %s"
-msgstr ""
+msgstr "كونا زاپاسنىڭ ئۇلانمىسىنى ئۆچۈرۈۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileoutputstream.c:297 ../gio/glocalfileoutputstream.c:310
#, c-format
@@ -2833,7 +2833,7 @@
#: ../gio/glocalfileoutputstream.c:328
#, c-format
msgid "Error renaming temporary file: %s"
-msgstr ""
+msgstr "ۋاقىتلىق ھۆججەت ئاتىنى ئۆزگەرتىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1077
#, c-format
@@ -2845,7 +2845,7 @@
#: ../gio/glocalfileoutputstream.c:1058 ../gio/glocalfileoutputstream.c:1157
#, c-format
msgid "Error opening file '%s': %s"
-msgstr ""
+msgstr "ھۆججەت '%s' نى ئېچىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/glocalfileoutputstream.c:846
msgid "Target file is a directory"
@@ -2862,7 +2862,7 @@
#: ../gio/glocalfileoutputstream.c:1042
#, c-format
msgid "Error removing old file: %s"
-msgstr ""
+msgstr "كونا ھۆججەتنى ئۆچۈرۈۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/gmemoryinputstream.c:486 ../gio/gmemoryoutputstream.c:746
msgid "Invalid GSeekType supplied"
@@ -2878,7 +2878,7 @@
#: ../gio/gmemoryoutputstream.c:496
msgid "Memory output stream not resizable"
-msgstr ""
+msgstr "ئەسلەك چىقىرىش ئېقىمىنىڭ چوڭلۇقىنى ئۆزگەرتكىلى بولمايدۇ"
#: ../gio/gmemoryoutputstream.c:512
msgid "Failed to resize memory output stream"
@@ -2954,7 +2954,7 @@
#: ../gio/goutputstream.c:207 ../gio/goutputstream.c:408
msgid "Output stream doesn't implement write"
-msgstr ""
+msgstr "چىقىرىش ئېقىمىدا يېزىشنى ئىشلەتكىلى بولمايدۇ"
#: ../gio/goutputstream.c:369 ../gio/goutputstream.c:849
msgid "Source stream is already closed"
@@ -3003,7 +3003,7 @@
#: ../gio/gsettings-tool.c:92
#, c-format
msgid "Empty path given.\n"
-msgstr ""
+msgstr "بېرىلگەن يول قۇرۇق.\n"
#: ../gio/gsettings-tool.c:98
#, c-format
@@ -3025,84 +3025,84 @@
msgid "No such key '%s'\n"
msgstr ""
-#: ../gio/gsettings-tool.c:427
+#: ../gio/gsettings-tool.c:429
#, c-format
msgid "The provided value is outside of the valid range\n"
msgstr ""
-#: ../gio/gsettings-tool.c:456
+#: ../gio/gsettings-tool.c:458
msgid "List the installed (non-relocatable) schemas"
msgstr ""
-#: ../gio/gsettings-tool.c:462
+#: ../gio/gsettings-tool.c:464
msgid "List the installed relocatable schemas"
msgstr ""
-#: ../gio/gsettings-tool.c:468
+#: ../gio/gsettings-tool.c:470
msgid "Lists the keys in SCHEMA"
msgstr ""
-#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475
-#: ../gio/gsettings-tool.c:481
+#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
msgid "SCHEMA[:PATH]"
msgstr ""
-#: ../gio/gsettings-tool.c:474
+#: ../gio/gsettings-tool.c:476
msgid "Lists the children of SCHEMA"
msgstr ""
-#: ../gio/gsettings-tool.c:480
+#: ../gio/gsettings-tool.c:482
msgid "List keys and values, recursively"
msgstr ""
-#: ../gio/gsettings-tool.c:486
+#: ../gio/gsettings-tool.c:488
msgid "Gets the value of KEY"
msgstr ""
-#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493
-#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511
+#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513
msgid "SCHEMA[:PATH] KEY"
msgstr ""
-#: ../gio/gsettings-tool.c:492
+#: ../gio/gsettings-tool.c:494
msgid "Queries the range of valid values for KEY"
msgstr ""
-#: ../gio/gsettings-tool.c:498
+#: ../gio/gsettings-tool.c:500
msgid "Sets the value of KEY to VALUE"
msgstr ""
-#: ../gio/gsettings-tool.c:499
+#: ../gio/gsettings-tool.c:501
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr ""
-#: ../gio/gsettings-tool.c:504
+#: ../gio/gsettings-tool.c:506
msgid "Resets KEY to its default value"
msgstr ""
-#: ../gio/gsettings-tool.c:510
+#: ../gio/gsettings-tool.c:512
msgid "Checks if KEY is writable"
msgstr ""
-#: ../gio/gsettings-tool.c:516
+#: ../gio/gsettings-tool.c:518
msgid ""
"Monitors 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:519
+#: ../gio/gsettings-tool.c:521
msgid "SCHEMA[:PATH] [KEY]"
msgstr ""
-#: ../gio/gsettings-tool.c:523
+#: ../gio/gsettings-tool.c:525
#, c-format
msgid ""
"Unknown command %s\n"
"\n"
msgstr ""
-#: ../gio/gsettings-tool.c:531
+#: ../gio/gsettings-tool.c:533
msgid ""
"Usage:\n"
" gsettings COMMAND [ARGS...]\n"
@@ -3125,7 +3125,7 @@
"\n"
msgstr ""
-#: ../gio/gsettings-tool.c:552
+#: ../gio/gsettings-tool.c:554
#, c-format
msgid ""
"Usage:\n"
@@ -3135,149 +3135,149 @@
"\n"
msgstr ""
-#: ../gio/gsettings-tool.c:557
+#: ../gio/gsettings-tool.c:559
msgid "Arguments:\n"
msgstr "ئەركىن ئۆزگەرگۈچى:\n"
-#: ../gio/gsettings-tool.c:561
+#: ../gio/gsettings-tool.c:563
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
msgstr ""
-#: ../gio/gsettings-tool.c:566
+#: ../gio/gsettings-tool.c:568
msgid " KEY The (optional) key within the schema\n"
msgstr ""
-#: ../gio/gsettings-tool.c:570
+#: ../gio/gsettings-tool.c:572
msgid " KEY The key within the schema\n"
msgstr ""
-#: ../gio/gsettings-tool.c:574
+#: ../gio/gsettings-tool.c:576
msgid " VALUE The value to set\n"
msgstr ""
-#: ../gio/gsettings-tool.c:650
+#: ../gio/gsettings-tool.c:652
#, c-format
msgid "Empty schema name given"
msgstr ""
-#: ../gio/gsocket.c:276
+#: ../gio/gsocket.c:277
msgid "Invalid socket, not initialized"
-msgstr ""
+msgstr "socket ئىناۋەتسىز، دەسلەپلەشتۈرۈلمىگەن"
-#: ../gio/gsocket.c:283
+#: ../gio/gsocket.c:284
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr ""
-#: ../gio/gsocket.c:291
+#: ../gio/gsocket.c:292
msgid "Socket is already closed"
msgstr ""
-#: ../gio/gsocket.c:299 ../gio/gsocket.c:2734 ../gio/gsocket.c:2778
+#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809
msgid "Socket I/O timed out"
msgstr ""
-#: ../gio/gsocket.c:442
+#: ../gio/gsocket.c:443
#, c-format
msgid "creating GSocket from fd: %s"
msgstr ""
-#: ../gio/gsocket.c:476 ../gio/gsocket.c:492 ../gio/gsocket.c:2134
+#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2135
#, c-format
msgid "Unable to create socket: %s"
msgstr ""
-#: ../gio/gsocket.c:476
+#: ../gio/gsocket.c:477
msgid "Unknown protocol was specified"
msgstr ""
-#: ../gio/gsocket.c:1245
+#: ../gio/gsocket.c:1246
#, c-format
msgid "could not get local address: %s"
msgstr ""
-#: ../gio/gsocket.c:1288
+#: ../gio/gsocket.c:1289
#, c-format
msgid "could not get remote address: %s"
msgstr ""
-#: ../gio/gsocket.c:1349
+#: ../gio/gsocket.c:1350
#, c-format
msgid "could not listen: %s"
msgstr ""
-#: ../gio/gsocket.c:1423
+#: ../gio/gsocket.c:1424
#, c-format
msgid "Error binding to address: %s"
-msgstr ""
+msgstr "ئادرېسقا باغلاۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gsocket.c:1543
+#: ../gio/gsocket.c:1544
#, c-format
msgid "Error accepting connection: %s"
-msgstr ""
+msgstr "باغلىنىشنى قوبۇل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gsocket.c:1660
+#: ../gio/gsocket.c:1661
msgid "Error connecting: "
-msgstr ""
+msgstr "باغلىنىۋاتقاندا خاتالىق كۆرۈلدى: "
-#: ../gio/gsocket.c:1665
+#: ../gio/gsocket.c:1666
msgid "Connection in progress"
msgstr ""
-#: ../gio/gsocket.c:1672
+#: ../gio/gsocket.c:1673
#, c-format
msgid "Error connecting: %s"
msgstr "باغلىنىشتا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gsocket.c:1715 ../gio/gsocket.c:3497
+#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528
#, c-format
msgid "Unable to get pending error: %s"
msgstr ""
-#: ../gio/gsocket.c:1847
+#: ../gio/gsocket.c:1848
#, c-format
msgid "Error receiving data: %s"
-msgstr ""
+msgstr "سانلىق-مەلۇمات قوبۇل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gsocket.c:2021
+#: ../gio/gsocket.c:2022
#, c-format
msgid "Error sending data: %s"
-msgstr ""
+msgstr "سانلىق-مەلۇمات يوللاۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gsocket.c:2213
+#: ../gio/gsocket.c:2214
#, c-format
msgid "Error closing socket: %s"
-msgstr ""
+msgstr "سوكەتنى يېپىۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gsocket.c:2727
+#: ../gio/gsocket.c:2758
#, c-format
msgid "Waiting for socket condition: %s"
msgstr ""
-#: ../gio/gsocket.c:3017
+#: ../gio/gsocket.c:3048
msgid "GSocketControlMessage not supported on windows"
msgstr ""
-#: ../gio/gsocket.c:3276 ../gio/gsocket.c:3417
+#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448
#, c-format
msgid "Error receiving message: %s"
-msgstr ""
+msgstr "ئۇچۇر قوبۇل قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gsocket.c:3512
+#: ../gio/gsocket.c:3543
msgid "g_socket_get_credentials not implemented for this OS"
msgstr ""
-#: ../gio/gsocketclient.c:674 ../gio/gsocketclient.c:1152
+#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr ""
-#: ../gio/gsocketclient.c:711 ../gio/gsocketclient.c:1037
+#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr ""
-#: ../gio/gsocketclient.c:749 ../gio/gsocketclient.c:1060
+#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr ""
@@ -3324,7 +3324,8 @@
#: ../gio/gsocks5proxy.c:179
msgid ""
-"The SOCKSv5 require an authentication method that is not supported by GLib."
+"The SOCKSv5 proxy requires an authentication method that is not supported by "
+"GLib."
msgstr ""
#: ../gio/gsocks5proxy.c:208
@@ -3339,7 +3340,7 @@
#: ../gio/gsocks5proxy.c:289
#, c-format
msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)"
-msgstr ""
+msgstr "باش ئاپپارات ئاتى '%s' بەك ئۇزۇن، SOCKSv5 كېلىشىمىدە ئىشلەتكىلى بولمايدۇ(ئەڭ چوڭ بولغاندا %i بولىدۇ)"
#: ../gio/gsocks5proxy.c:352
msgid "The SOCKSv5 proxy server uses unkown address type."
@@ -3347,7 +3348,7 @@
#: ../gio/gsocks5proxy.c:359
msgid "Internal SOCKSv5 proxy server error."
-msgstr ""
+msgstr "ئىچكى SOCKSv5 ۋاكالەتچى مۇلازىمېتىر خاتا."
#: ../gio/gsocks5proxy.c:365
msgid "SOCKSv5 connection not allowed by ruleset."
@@ -3355,11 +3356,11 @@
#: ../gio/gsocks5proxy.c:372
msgid "Host unreachable through SOCKSv5 server."
-msgstr ""
+msgstr "SOCKSv5 مۇلازىمېتىرىدىن باش ئاپپاراتنى كۆرگىلى بولمايدۇ"
#: ../gio/gsocks5proxy.c:378
msgid "Network unreachable through SOCKSv5 proxy."
-msgstr ""
+msgstr "SOCKSv5 ۋاكالەتچى مۇلازىمېتىرىدىن تور كۆرۈنمىدى."
#: ../gio/gsocks5proxy.c:384
msgid "Connection refused through SOCKSv5 proxy."
@@ -3374,7 +3375,7 @@
msgstr ""
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
+msgid "Unknown SOCKSv5 proxy error."
msgstr ""
#: ../gio/gthemedicon.c:498
@@ -3382,6 +3383,18 @@
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr ""
+#: ../gio/gtlscertificate.c:228
+msgid "No PEM-encoded certificate found"
+msgstr ""
+
+#: ../gio/gtlscertificate.c:237
+msgid "Could not parse PEM-encoded certificate"
+msgstr ""
+
+#: ../gio/gtlscertificate.c:258
+msgid "Could not parse PEM-encoded private key"
+msgstr ""
+
#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505
#, c-format
msgid "Expecting 1 control message, got %d"
@@ -3398,7 +3411,7 @@
#: ../gio/gunixconnection.c:211
msgid "Received invalid fd"
-msgstr ""
+msgstr "ئىناۋەتسىز fd تاپشۇرۇۋالدى"
#: ../gio/gunixconnection.c:359
msgid "Error sending credentials: "
@@ -3419,7 +3432,7 @@
#: ../gio/gunixconnection.c:465
#, c-format
msgid "Error enabling SO_PASSCRED: %s"
-msgstr ""
+msgstr "SO_PASSCRED نى قوزغىتىۋاتقاندا(ئىناۋەتلىك قىلىۋاتقاندا)خاتالىق كۆرۈلدى: %s"
#: ../gio/gunixconnection.c:495
msgid ""
@@ -3429,29 +3442,29 @@
#: ../gio/gunixconnection.c:538
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
-msgstr ""
+msgstr "SO_PASSCRED نى چەكلەۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gunixinputstream.c:353 ../gio/gunixinputstream.c:373
-#: ../gio/gunixinputstream.c:451
+#: ../gio/gunixinputstream.c:368 ../gio/gunixinputstream.c:388
+#: ../gio/gunixinputstream.c:466
#, c-format
msgid "Error reading from unix: %s"
-msgstr ""
+msgstr "unix دىن ئوقۇۋاتقاندا خاتالىق كۆرۈلدى: %s"
-#: ../gio/gunixinputstream.c:406 ../gio/gunixinputstream.c:586
-#: ../gio/gunixoutputstream.c:393 ../gio/gunixoutputstream.c:542
+#: ../gio/gunixinputstream.c:421 ../gio/gunixinputstream.c:601
+#: ../gio/gunixoutputstream.c:407 ../gio/gunixoutputstream.c:556
#, c-format
msgid "Error closing unix: %s"
-msgstr ""
+msgstr "unix نى يېپىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883
msgid "Filesystem root"
-msgstr ""
+msgstr "ھۆججەت سىستېمىسى غولى"
-#: ../gio/gunixoutputstream.c:339 ../gio/gunixoutputstream.c:360
-#: ../gio/gunixoutputstream.c:438
+#: ../gio/gunixoutputstream.c:353 ../gio/gunixoutputstream.c:374
+#: ../gio/gunixoutputstream.c:452
#, c-format
msgid "Error writing to unix: %s"
-msgstr ""
+msgstr "unix قا يېزىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/gunixsocketaddress.c:244
msgid "Abstract unix domain socket addresses not supported on this system"
@@ -3475,7 +3488,7 @@
#: ../gio/gwin32appinfo.c:299
#, c-format
msgid "Error launching application: %s"
-msgstr ""
+msgstr "پروگراممىنى ئىجرا قىلىۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/gwin32appinfo.c:335
msgid "URIs not supported"
@@ -3492,7 +3505,7 @@
#: ../gio/gwin32inputstream.c:318
#, c-format
msgid "Error reading from handle: %s"
-msgstr ""
+msgstr "handle دىن ئوقۇۋاتقاندا خاتالىق كۆرۈلدى: %s"
#: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348
#, c-format
@@ -3506,7 +3519,7 @@
#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349
msgid "Not enough memory"
-msgstr "يېتەرلىك ئەسلەك يوق"
+msgstr "يېتەرلىك ئەسلەك يوق"
#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356
#, c-format
diff --git a/po/vi.po b/po/vi.po
index 7f1bdc8..74c1445 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -2,14 +2,15 @@
# Copyright © 2010 GNOME i18n Project for Vietnamese.
# T.M.Thanh <tmthanh@yahoo.com>, 2002.
# Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
-# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2009.
+# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2009-2010.
#
msgid ""
msgstr ""
"Project-Id-Version: glib 2.19.6\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-06-07 21:37-0400\n"
-"PO-Revision-Date: 2010-03-22 21:32+0930\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
+"product=glib&component=general\n"
+"POT-Creation-Date: 2010-12-20 10:27+0000\n"
+"PO-Revision-Date: 2010-12-21 19:51+0700\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
"MIME-Version: 1.0\n"
@@ -18,394 +19,621 @@
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: LocFactoryEditor 1.8\n"
-#: glib/gbookmarkfile.c:737
+#: ../glib/gbookmarkfile.c:780
#, c-format
msgid "Unexpected attribute '%s' for element '%s'"
msgstr "Thuộc tính bất thường '%s' cho yếu tố '%s'"
-#: glib/gbookmarkfile.c:748 glib/gbookmarkfile.c:819 glib/gbookmarkfile.c:829
-#: glib/gbookmarkfile.c:936
+#: ../glib/gbookmarkfile.c:791 ../glib/gbookmarkfile.c:862
+#: ../glib/gbookmarkfile.c:872 ../glib/gbookmarkfile.c:979
#, c-format
msgid "Attribute '%s' of element '%s' not found"
msgstr "Không tìm thấy thuộc tính '%s' của yếu tố '%s'"
-#: glib/gbookmarkfile.c:1106 glib/gbookmarkfile.c:1171
-#: glib/gbookmarkfile.c:1235 glib/gbookmarkfile.c:1245
+#: ../glib/gbookmarkfile.c:1149 ../glib/gbookmarkfile.c:1214
+#: ../glib/gbookmarkfile.c:1278 ../glib/gbookmarkfile.c:1288
#, c-format
msgid "Unexpected tag '%s', tag '%s' expected"
msgstr "Thẻ bất thường '%s', mong đợi thẻ '%s'"
-#: glib/gbookmarkfile.c:1131 glib/gbookmarkfile.c:1145
-#: glib/gbookmarkfile.c:1213 glib/gbookmarkfile.c:1265
+#: ../glib/gbookmarkfile.c:1174 ../glib/gbookmarkfile.c:1188
+#: ../glib/gbookmarkfile.c:1256 ../glib/gbookmarkfile.c:1308
#, c-format
msgid "Unexpected tag '%s' inside '%s'"
msgstr "Thẻ bất thường '%s' bên trong '%s'"
-#: glib/gbookmarkfile.c:1793
+#: ../glib/gbookmarkfile.c:1834
msgid "No valid bookmark file found in data dirs"
msgstr "Không tìm thấy tập tin liên kết lưu hợp lệ trong các thư mục dữ liệu"
-#: glib/gbookmarkfile.c:1994
+#: ../glib/gbookmarkfile.c:2035
#, c-format
msgid "A bookmark for URI '%s' already exists"
msgstr "Một liên kết lưu URI '%s' đã có"
-#: glib/gbookmarkfile.c:2040 glib/gbookmarkfile.c:2198
-#: glib/gbookmarkfile.c:2283 glib/gbookmarkfile.c:2363
-#: glib/gbookmarkfile.c:2448 glib/gbookmarkfile.c:2531
-#: glib/gbookmarkfile.c:2609 glib/gbookmarkfile.c:2688
-#: glib/gbookmarkfile.c:2730 glib/gbookmarkfile.c:2827
-#: glib/gbookmarkfile.c:2953 glib/gbookmarkfile.c:3143
-#: glib/gbookmarkfile.c:3219 glib/gbookmarkfile.c:3384
-#: glib/gbookmarkfile.c:3473 glib/gbookmarkfile.c:3563
-#: glib/gbookmarkfile.c:3691
+#: ../glib/gbookmarkfile.c:2081 ../glib/gbookmarkfile.c:2239
+#: ../glib/gbookmarkfile.c:2324 ../glib/gbookmarkfile.c:2404
+#: ../glib/gbookmarkfile.c:2489 ../glib/gbookmarkfile.c:2572
+#: ../glib/gbookmarkfile.c:2650 ../glib/gbookmarkfile.c:2729
+#: ../glib/gbookmarkfile.c:2771 ../glib/gbookmarkfile.c:2868
+#: ../glib/gbookmarkfile.c:2994 ../glib/gbookmarkfile.c:3184
+#: ../glib/gbookmarkfile.c:3260 ../glib/gbookmarkfile.c:3425
+#: ../glib/gbookmarkfile.c:3514 ../glib/gbookmarkfile.c:3604
+#: ../glib/gbookmarkfile.c:3732
#, c-format
msgid "No bookmark found for URI '%s'"
msgstr "Không tìm thấy liên kết lưu URI '%s'"
-#: glib/gbookmarkfile.c:2372
+#: ../glib/gbookmarkfile.c:2413
#, c-format
msgid "No MIME type defined in the bookmark for URI '%s'"
msgstr "Chưa xác định kiểu MIME trong liên kết lưu URI '%s'"
-#: glib/gbookmarkfile.c:2457
+#: ../glib/gbookmarkfile.c:2498
#, c-format
msgid "No private flag has been defined in bookmark for URI '%s'"
msgstr "Chưa xác định cờ riêng trong liên kết lưu URI '%s'"
-#: glib/gbookmarkfile.c:2836
+#: ../glib/gbookmarkfile.c:2877
#, c-format
msgid "No groups set in bookmark for URI '%s'"
msgstr "Chưa đặt nhóm trong liên kết lưu URI '%s'"
-#: glib/gbookmarkfile.c:3237 glib/gbookmarkfile.c:3394
+#: ../glib/gbookmarkfile.c:3278 ../glib/gbookmarkfile.c:3435
#, c-format
msgid "No application with name '%s' registered a bookmark for '%s'"
msgstr "Không có ứng dụng tên '%s' đã đăng ký một liên kết lưu '%s'"
-#: glib/gbookmarkfile.c:3417
+#: ../glib/gbookmarkfile.c:3458
#, c-format
msgid "Failed to expand exec line '%s' with URI '%s'"
msgstr "Lỗi mở rộng dòng thực hiện '%s' bằng URI '%s'"
-#: glib/gconvert.c:437 glib/gconvert.c:515 glib/giochannel.c:1404
-#: gio/gcharsetconverter.c:459
+#: ../glib/gconvert.c:567 ../glib/gconvert.c:645 ../glib/giochannel.c:1403
+#: ../gio/gcharsetconverter.c:458
#, c-format
msgid "Conversion from character set '%s' to '%s' is not supported"
-msgstr "Không hỗ trợ khả năng chuyển đổi từ bộ ký tự '%s' sang '%s'"
+msgstr "Không hỗ trợ việc chuyển từ đặt ký tự '%s' thành '%s'"
-#: glib/gconvert.c:441 glib/gconvert.c:519 gio/gcharsetconverter.c:463
+#: ../glib/gconvert.c:571 ../glib/gconvert.c:649
+#: ../gio/gcharsetconverter.c:462
#, c-format
msgid "Could not open converter from '%s' to '%s'"
-msgstr "Không thể mở bộ chuyển đổi từ '%s' sang '%s'"
+msgstr "Không thể mở trình chuyển đổi từ '%s' sang '%s'"
-#: glib/gconvert.c:638 glib/gconvert.c:1031 glib/giochannel.c:1576
-#: glib/giochannel.c:1618 glib/giochannel.c:2462 glib/gutf8.c:989
-#: glib/gutf8.c:1444 gio/gcharsetconverter.c:346
+#: ../glib/gconvert.c:768 ../glib/gconvert.c:1161 ../glib/giochannel.c:1575
+#: ../glib/giochannel.c:1617 ../glib/giochannel.c:2461 ../glib/gutf8.c:992
+#: ../glib/gutf8.c:1447 ../gio/gcharsetconverter.c:345
msgid "Invalid byte sequence in conversion input"
-msgstr "Gặp dây byte không hợp lệ trong dữ liệu nhập chuyển đổi"
+msgstr "Byte sequence không hợp lệ trong phần nhập chuyển đổi"
-#: glib/gconvert.c:646 glib/gconvert.c:956 glib/giochannel.c:1583
-#: glib/giochannel.c:2474 gio/gcharsetconverter.c:351
+#: ../glib/gconvert.c:776 ../glib/gconvert.c:1086 ../glib/giochannel.c:1582
+#: ../glib/giochannel.c:2473 ../gio/gcharsetconverter.c:350
#, c-format
msgid "Error during conversion: %s"
-msgstr "Gặp lỗi khi chuyển đổi: %s"
+msgstr "Lỗi khi chuyển đổi: %s"
-#: glib/gconvert.c:678 glib/gutf8.c:985 glib/gutf8.c:1195 glib/gutf8.c:1336
-#: glib/gutf8.c:1440
+#: ../glib/gconvert.c:808 ../glib/gutf8.c:988 ../glib/gutf8.c:1198
+#: ../glib/gutf8.c:1339 ../glib/gutf8.c:1443
msgid "Partial character sequence at end of input"
-msgstr "Dây ký tự riêng phần ở cuối dữ liệu nhập"
+msgstr "Character sequence riêng phần ở cuối đầu vào"
-#: glib/gconvert.c:928
+#: ../glib/gconvert.c:1058
#, c-format
msgid "Cannot convert fallback '%s' to codeset '%s'"
-msgstr "Không thể chuyển đổi đồ dữ trữ '%s' thành bộ mã '%s'"
+msgstr "Không thể chuyển đổi fallback '%s' thành codeset '%s'"
-#: glib/gconvert.c:1751
+#: ../glib/gconvert.c:1881
#, c-format
msgid "The URI '%s' is not an absolute URI using the \"file\" scheme"
-msgstr ""
-"URI '%s' không phải là một URI tuyệt đối sử dụng lược đồ 'file' (tập tin)"
+msgstr "URI '%s' không phải URI tuyệt đối sử dụng lược đồ tập tin"
-#: glib/gconvert.c:1761
+#: ../glib/gconvert.c:1891
#, c-format
msgid "The local file URI '%s' may not include a '#'"
-msgstr "Không cho phép URI tập tin cục bộ '%s' chứa dấu thăng '#'"
+msgstr "URI tập tin cục bộ '%s' có thể không bao gồm '#'"
-#: glib/gconvert.c:1778
+#: ../glib/gconvert.c:1908
#, c-format
msgid "The URI '%s' is invalid"
msgstr "URI '%s' không hợp lệ"
-#: glib/gconvert.c:1790
+#: ../glib/gconvert.c:1920
#, c-format
msgid "The hostname of the URI '%s' is invalid"
-msgstr "Tên máy của URI '%s' không hợp lệ"
+msgstr "Tên chủ của URI '%s' không hợp lệ"
-#: glib/gconvert.c:1806
+#: ../glib/gconvert.c:1936
#, c-format
msgid "The URI '%s' contains invalidly escaped characters"
-msgstr "URI '%s' chứa một số ký tự đã thoát không hợp lệ"
+msgstr "URI '%s' chứa không hợp lệ các ký tự thoát"
-#: glib/gconvert.c:1901
+#: ../glib/gconvert.c:2031
#, c-format
msgid "The pathname '%s' is not an absolute path"
-msgstr "Tên đường dẫn '%s' không phải là một đường dẫn tuyệt đối"
+msgstr "Tên đường dẫn '%s' không phải một đường dẫn tuyệt đối"
-#: glib/gconvert.c:1911
+#: ../glib/gconvert.c:2041
msgid "Invalid hostname"
-msgstr "Tên máy không hợp lệ"
+msgstr "Tên chủ không hợp lệ"
-#: glib/gdir.c:112 glib/gdir.c:135
+#. Translators: 'before midday' indicator
+#: ../glib/gdatetime.c:149
+msgctxt "GDateTime"
+msgid "am"
+msgstr "am"
+
+#. Translators: 'before midday' indicator
+#: ../glib/gdatetime.c:151
+msgctxt "GDateTime"
+msgid "AM"
+msgstr "AM"
+
+#. Translators: 'after midday' indicator
+#: ../glib/gdatetime.c:153
+msgctxt "GDateTime"
+msgid "pm"
+msgstr "pm"
+
+#. Translators: 'after midday' indicator
+#: ../glib/gdatetime.c:155
+msgctxt "GDateTime"
+msgid "PM"
+msgstr "PM"
+
+#. Translators: this is the preferred format for expressing the date
+#: ../glib/gdatetime.c:164
+msgctxt "GDateTime"
+msgid "%m/%d/%y"
+msgstr "%d/%m/%y"
+
+#. Translators: this is the preferred format for expressing the time
+#: ../glib/gdatetime.c:167
+msgctxt "GDateTime"
+msgid "%H:%M:%S"
+msgstr "%H:%M:%S"
+
+#: ../glib/gdatetime.c:193
+msgctxt "full month name"
+msgid "January"
+msgstr "Tháng giêng"
+
+#: ../glib/gdatetime.c:195
+msgctxt "full month name"
+msgid "February"
+msgstr "Tháng hai"
+
+#: ../glib/gdatetime.c:197
+msgctxt "full month name"
+msgid "March"
+msgstr "Tháng ba"
+
+#: ../glib/gdatetime.c:199
+msgctxt "full month name"
+msgid "April"
+msgstr "Tháng tư"
+
+#: ../glib/gdatetime.c:201
+msgctxt "full month name"
+msgid "May"
+msgstr "Tháng năm"
+
+#: ../glib/gdatetime.c:203
+msgctxt "full month name"
+msgid "June"
+msgstr "Tháng sáu"
+
+#: ../glib/gdatetime.c:205
+msgctxt "full month name"
+msgid "July"
+msgstr "Tháng bảy"
+
+#: ../glib/gdatetime.c:207
+msgctxt "full month name"
+msgid "August"
+msgstr "Tháng tám"
+
+#: ../glib/gdatetime.c:209
+msgctxt "full month name"
+msgid "September"
+msgstr "Tháng chín"
+
+#: ../glib/gdatetime.c:211
+msgctxt "full month name"
+msgid "October"
+msgstr "Tháng mười"
+
+#: ../glib/gdatetime.c:213
+msgctxt "full month name"
+msgid "November"
+msgstr "Tháng mười một"
+
+#: ../glib/gdatetime.c:215
+msgctxt "full month name"
+msgid "December"
+msgstr "Tháng mười hai"
+
+#: ../glib/gdatetime.c:230
+msgctxt "abbreviated month name"
+msgid "Jan"
+msgstr "Th1"
+
+#: ../glib/gdatetime.c:232
+msgctxt "abbreviated month name"
+msgid "Feb"
+msgstr "Th2"
+
+#: ../glib/gdatetime.c:234
+msgctxt "abbreviated month name"
+msgid "Mar"
+msgstr "Th3"
+
+#: ../glib/gdatetime.c:236
+msgctxt "abbreviated month name"
+msgid "Apr"
+msgstr "Th4"
+
+#: ../glib/gdatetime.c:238
+msgctxt "abbreviated month name"
+msgid "May"
+msgstr "Th5"
+
+#: ../glib/gdatetime.c:240
+msgctxt "abbreviated month name"
+msgid "Jun"
+msgstr "Th6"
+
+#: ../glib/gdatetime.c:242
+msgctxt "abbreviated month name"
+msgid "Jul"
+msgstr "Th7"
+
+#: ../glib/gdatetime.c:244
+msgctxt "abbreviated month name"
+msgid "Aug"
+msgstr "Th8"
+
+#: ../glib/gdatetime.c:246
+msgctxt "abbreviated month name"
+msgid "Sep"
+msgstr "Th9"
+
+#: ../glib/gdatetime.c:248
+msgctxt "abbreviated month name"
+msgid "Oct"
+msgstr "Th10"
+
+#: ../glib/gdatetime.c:250
+msgctxt "abbreviated month name"
+msgid "Nov"
+msgstr "Th11"
+
+#: ../glib/gdatetime.c:252
+msgctxt "abbreviated month name"
+msgid "Dec"
+msgstr "Th12"
+
+#: ../glib/gdatetime.c:267
+msgctxt "full weekday name"
+msgid "Monday"
+msgstr "Thứ hai"
+
+#: ../glib/gdatetime.c:269
+msgctxt "full weekday name"
+msgid "Tuesday"
+msgstr "Thứ ba"
+
+#: ../glib/gdatetime.c:271
+msgctxt "full weekday name"
+msgid "Wednesday"
+msgstr "Thứ tư"
+
+#: ../glib/gdatetime.c:273
+msgctxt "full weekday name"
+msgid "Thursday"
+msgstr "Thứ năm"
+
+#: ../glib/gdatetime.c:275
+msgctxt "full weekday name"
+msgid "Friday"
+msgstr "Thứ sáu"
+
+#: ../glib/gdatetime.c:277
+msgctxt "full weekday name"
+msgid "Saturday"
+msgstr "Thứ bảy"
+
+#: ../glib/gdatetime.c:279
+msgctxt "full weekday name"
+msgid "Sunday"
+msgstr "Chủ Nhật"
+
+#: ../glib/gdatetime.c:294
+msgctxt "abbreviated weekday name"
+msgid "Mon"
+msgstr "T2"
+
+#: ../glib/gdatetime.c:296
+msgctxt "abbreviated weekday name"
+msgid "Tue"
+msgstr "T3"
+
+#: ../glib/gdatetime.c:298
+msgctxt "abbreviated weekday name"
+msgid "Wed"
+msgstr "T4"
+
+#: ../glib/gdatetime.c:300
+msgctxt "abbreviated weekday name"
+msgid "Thu"
+msgstr "T5"
+
+#: ../glib/gdatetime.c:302
+msgctxt "abbreviated weekday name"
+msgid "Fri"
+msgstr "T6"
+
+#: ../glib/gdatetime.c:304
+msgctxt "abbreviated weekday name"
+msgid "Sat"
+msgstr "T7"
+
+#: ../glib/gdatetime.c:306
+msgctxt "abbreviated weekday name"
+msgid "Sun"
+msgstr "CN"
+
+#: ../glib/gdir.c:115 ../glib/gdir.c:138
#, c-format
msgid "Error opening directory '%s': %s"
-msgstr "Gặp lỗi khi mở thư mục '%s': %s"
+msgstr "Lỗi khi mở thư mục '%s': %s"
-#: glib/gfileutils.c:536 glib/gfileutils.c:624
+#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
-msgstr "Không thẻ cấp phát %lu byte để đọc tập tin '%s'"
+msgstr "Không thẻ cấp phát %lu bytes để đọc tập tin \"%s\""
-#: glib/gfileutils.c:551
+#: ../glib/gfileutils.c:551
#, c-format
msgid "Error reading file '%s': %s"
-msgstr "Gặp lỗi khi đọc tập tin '%s': %s"
+msgstr "Lỗi khi đọc tập tin '%s': %s"
-#: glib/gfileutils.c:565
+#: ../glib/gfileutils.c:565
#, c-format
msgid "File \"%s\" is too large"
msgstr "Tập tin \"%s\" quá lớn"
-#: glib/gfileutils.c:648
+#: ../glib/gfileutils.c:648
#, c-format
msgid "Failed to read from file '%s': %s"
-msgstr "Lỗi đọc từ tập tin '%s': %s"
+msgstr "Không đọc được từ tập tin '%s': %s"
-#: glib/gfileutils.c:699 glib/gfileutils.c:786
+#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
#, c-format
msgid "Failed to open file '%s': %s"
-msgstr "Lỗi mở tập tin '%s': %s"
+msgstr "Lỗi khi mở tập tin '%s': %s"
-#: glib/gfileutils.c:716 glib/gmappedfile.c:170
+#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
-msgstr "Lỗi lấy các thuộc tính của tập tin '%s': lỗi 'fstat()': %s"
+msgstr "Không lấy được các thuộc tính của tập tin '%s': fstat() không được: %s"
-#: glib/gfileutils.c:750
+#: ../glib/gfileutils.c:750
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
-msgstr "Lỗi mở tập tin '%s': lỗi 'fdopen()': %s"
+msgstr "Không mở được tập tin '%s': fdopen() không được: %s"
-#: glib/gfileutils.c:858
+#: ../glib/gfileutils.c:858
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
-msgstr "Lỗi thay đổi tên tập tin '%s' thành '%s': lỗi 'g_rename()': %s"
+msgstr ""
+"Không đổi tên tập tin « %s » thành « %s » được: « g_rename() » không được: %s"
-#: glib/gfileutils.c:900 glib/gfileutils.c:1366
+#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
#, c-format
msgid "Failed to create file '%s': %s"
-msgstr "Lỗi tạo tập tin '%s': %s"
+msgstr "Không tạo được tập tin '%s': %s"
-#: glib/gfileutils.c:914
+#: ../glib/gfileutils.c:914
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
-msgstr "Lỗi mở tập tin '%s': lỗi 'fdopen()': %s"
+msgstr "Không mở được tập tin '%s': fdopen() không được: %s"
-#: glib/gfileutils.c:939
+#: ../glib/gfileutils.c:939
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
-msgstr "Lỗi ghi tập tin '%s': lỗi 'fdopen()': %s"
+msgstr "Không mở được tập tin '%s': fdopen() không được: %s"
-#: glib/gfileutils.c:958
+#: ../glib/gfileutils.c:958
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "Lỗi ghi tập tin '%s': lỗi fflush(): %s"
-#: glib/gfileutils.c:987
+#: ../glib/gfileutils.c:987
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "Lỗi ghi tập tin '%s': lỗi fsync(): %s"
-#: glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1006
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
-msgstr "Lỗi đóng tập tin '%s': lỗi 'fclose()': %s"
+msgstr "Không mở được tập tin '%s': fdopen() không được: %s"
-#: glib/gfileutils.c:1124
+#: ../glib/gfileutils.c:1127
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
-msgstr "Không thể gỡ bỏ tập tin tồn tại '%s': lỗi 'g_unlink()': %s"
+msgstr "Không thể gỡ bỏ tập tin tồn tại « %s »: « g_unlink() » thất bại: %s"
-#: glib/gfileutils.c:1328
+#: ../glib/gfileutils.c:1331
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
-msgstr "Biểu mẫu '%s' không hợp lệ, không nên chứa '%s'"
+msgstr "Template '%s' không hợp lệ, không nên chứa '%s'"
-#: glib/gfileutils.c:1341
+#: ../glib/gfileutils.c:1344
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "Biểu mẫu '%s' không chứa XXXXXX"
-#: glib/gfileutils.c:1774
+#: ../glib/gfileutils.c:1777
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
-msgstr[0] ""
+msgstr[0] "%u byte"
-#: glib/gfileutils.c:1782
+#: ../glib/gfileutils.c:1785
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: glib/gfileutils.c:1787
+#: ../glib/gfileutils.c:1790
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: glib/gfileutils.c:1792
+#: ../glib/gfileutils.c:1795
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: glib/gfileutils.c:1797
+#: ../glib/gfileutils.c:1800
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: glib/gfileutils.c:1802
+#: ../glib/gfileutils.c:1805
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: glib/gfileutils.c:1807
+#: ../glib/gfileutils.c:1810
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#: glib/gfileutils.c:1850
+#: ../glib/gfileutils.c:1853
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "Lỗi đọc liên kết tượng trưng '%s': %s"
-#: glib/gfileutils.c:1871
+#: ../glib/gfileutils.c:1874
msgid "Symbolic links not supported"
-msgstr "Không hỗ trợ khả năng sử dụng liên kết tượng trưng"
+msgstr "Không hỗ trợ liên kết tượng trưng"
-#: glib/giochannel.c:1408
+#: ../glib/giochannel.c:1407
#, c-format
msgid "Could not open converter from '%s' to '%s': %s"
msgstr "Không thể mở bộ chuyển đổi từ '%s' sang '%s': %s"
-#: glib/giochannel.c:1753
+#: ../glib/giochannel.c:1752
msgid "Can't do a raw read in g_io_channel_read_line_string"
-msgstr ""
-"Không thể thực hiện tiến trình đọc thô trong 'g_io_channel_read_line_string'"
+msgstr "Không thể thực hiện đọc thô trong g_io_channel_read_line_string"
-#: glib/giochannel.c:1800 glib/giochannel.c:2058 glib/giochannel.c:2145
+#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2057
+#: ../glib/giochannel.c:2144
msgid "Leftover unconverted data in read buffer"
-msgstr "Có dữ liệu chưa được chuyển đổi còn lại nằm trong bộ đệm đọc"
+msgstr "Để lại dữ liệu chưa được chuyển đổi trong buffer đọc"
-#: glib/giochannel.c:1881 glib/giochannel.c:1958
+#: ../glib/giochannel.c:1880 ../glib/giochannel.c:1957
msgid "Channel terminates in a partial character"
msgstr "Kênh tận hết trong ký tự riêng phần"
-#: glib/giochannel.c:1944
+#: ../glib/giochannel.c:1943
msgid "Can't do a raw read in g_io_channel_read_to_end"
-msgstr ""
-"Không thể thực hiện tiến trình đọc thô trong 'g_io_channel_read_to_end'"
+msgstr "Không thể thực hiện đọc thô trong g_io_channel_read_to_end"
-#: glib/gmappedfile.c:151
+#: ../glib/gmappedfile.c:150
#, c-format
msgid "Failed to open file '%s': open() failed: %s"
-msgstr "Lỗi mở tập tin '%s': lỗi 'fdopen()': %s"
+msgstr "Không mở được tập tin '%s': fdopen() không được: %s"
-#: glib/gmappedfile.c:230
+#: ../glib/gmappedfile.c:229
#, c-format
msgid "Failed to map file '%s': mmap() failed: %s"
-msgstr "Lỗi ánh xạ tập tin '%s': lỗi 'mmap()': %s"
+msgstr "Không mở được tập tin '%s': fdopen() không được: %s"
-#: glib/gmarkup.c:303 glib/gmarkup.c:343
+#: ../glib/gmarkup.c:307 ../glib/gmarkup.c:347
#, c-format
msgid "Error on line %d char %d: "
msgstr "Lỗi trên dòng %d ký tự %d: "
-#: glib/gmarkup.c:363 glib/gmarkup.c:441
+#: ../glib/gmarkup.c:367 ../glib/gmarkup.c:445
#, c-format
msgid "Invalid UTF-8 encoded text in name - not valid '%s'"
msgstr "Văn bản được mã hoá UTF-8 không hợp lệ '%s'"
-#: glib/gmarkup.c:374
+#: ../glib/gmarkup.c:378
#, c-format
msgid "'%s' is not a valid name "
msgstr "'%s' không phải là tên hợp lệ"
-#: glib/gmarkup.c:390
+#: ../glib/gmarkup.c:394
#, c-format
msgid "'%s' is not a valid name: '%c' "
msgstr "'%s' không phải là tên hợp lệ: '%c'"
-#: glib/gmarkup.c:494
+#: ../glib/gmarkup.c:498
#, c-format
msgid "Error on line %d: %s"
msgstr "Lỗi trên dòng %d: %s"
-#: glib/gmarkup.c:578
+#: ../glib/gmarkup.c:582
#, c-format
msgid ""
"Failed to parse '%-.*s', which should have been a digit inside a character "
"reference (ê for example) - perhaps the digit is too large"
msgstr ""
-"Lỗi phân tách '%-.*s', nó nên là một chữ số bên trong một tham chiếu ký tự "
-"(v.d. 'ê') — có lẽ chư số quá lớn."
+"Không phân tách được « %-.*s », nó nên là một con số bên trong một tham chiếu "
+"ký tự (v.d. « ê ») — có lẽ con số quá lớn."
-#: glib/gmarkup.c:590
+#: ../glib/gmarkup.c:594
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 &"
msgstr ""
-"Tham chiếu ký tự không có dấu chấm phẩy cuối cùng; dường như bạn đã dùng một "
-"dấu và mà không định bắt đầu một thực thể — hãy thoát dấu và như là '&'"
+"Tham chiếu ký tự đã không kết thúc bằng dấu chấm phẩy; dường như bạn đã dùng "
+"một ký tự (và) mà không phải để bắt đầu một thự thể - thoát dấu (và) như là "
+"&"
-#: glib/gmarkup.c:616
+#: ../glib/gmarkup.c:620
#, c-format
msgid "Character reference '%-.*s' does not encode a permitted character"
-msgstr "Tham chiếu ký tự '%-.*s' không mã hóa một ký tự được phép."
+msgstr "Tham chiếu ký tự « %-.*s » không mã hóa một ký tự cho phép."
-#: glib/gmarkup.c:654
+#: ../glib/gmarkup.c:658
msgid ""
"Empty entity '&;' seen; valid entities are: & " < > '"
msgstr ""
-"Thấy thực thể rỗng '&;'; những thực thể hợp lệ là: & " < > "
-"'"
+"Thực thể trống '&;' được thấy; những mục nhập hợp lệ là: & " < "
+"> '"
-#: glib/gmarkup.c:662
+#: ../glib/gmarkup.c:666
#, c-format
msgid "Entity name '%-.*s' is not known"
msgstr "Thực thể lạ '%-.*s'"
-#: glib/gmarkup.c:667
+#: ../glib/gmarkup.c:671
msgid ""
"Entity did not end with a semicolon; most likely you used an ampersand "
"character without intending to start an entity - escape ampersand as &"
msgstr ""
-"Thực thể không có dấu chấm phẩy cuối cùng; dường như bạn đã dùng dấu và mà "
-"không định bắt đầu một thực thể — hãy thoát dấu và như là '&'"
+"Thực thể đã không kết thúc bằng dấu chấm phẩy; dường như bạn đã dùng ký tự "
+"(và) mà không phải để bắt đầu một thự thể - thoát khỏi dấu (và) như là &"
-#: glib/gmarkup.c:1014
+#: ../glib/gmarkup.c:1018
msgid "Document must begin with an element (e.g. <book>)"
-msgstr "Tài liệu phải bắt đầu bằng một yếu tố (v.d. <book> [quyển sách])"
+msgstr "Tài liệu phải bắt đầu bằng một phần tử (vd: <book>)"
-#: glib/gmarkup.c:1054
+#: ../glib/gmarkup.c:1058
#, c-format
msgid ""
"'%s' is not a valid character following a '<' character; it may not begin an "
"element name"
msgstr ""
-"'%s' không phải là một ký tự hợp lệ đi theo một dấu ngoặc nhọn mở '<' ; "
-"không cho phép nó bắt đầu một tên yếu tố"
+"'%s' không phải một ký tự hợp lệ đi theo ký tự '<' ; nó có thể không bắt đầu "
+"tên phần tử"
-#: glib/gmarkup.c:1122
+#: ../glib/gmarkup.c:1126
#, c-format
msgid ""
"Odd character '%s', expected a '>' character to end the empty-element tag '%"
@@ -413,1217 +641,1369 @@
msgstr ""
"Ký tự lạ '%s', mong đợi một dấu ngoặc nhọn đóng '>' để kết thúc thẻ rỗng '%s'"
-#: glib/gmarkup.c:1206
+#: ../glib/gmarkup.c:1210
#, c-format
msgid ""
"Odd character '%s', expected a '=' after attribute name '%s' of element '%s'"
-msgstr ""
-"Ký tự lạ '%s', mong đợi một dấu bằng '=' nằm sau tên thuộc tính '%s' của yếu "
-"tố '%s'"
+msgstr "Ký tự lẻ '%s', mong muốn '=' sau tên thuộc tính '%s' của phần tử '%s'"
-#: glib/gmarkup.c:1247
+#: ../glib/gmarkup.c:1251
#, 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 ""
-"Ký tự lạ '%s', mong đợi một dấu ngoặc nhọn đóng '>' hay dấu xuyệc '/' để kết "
-"thúc thẻ khởi đầu của yếu tố '%s', hay tùy ý một thuộc tính; có lẽ bạn đã "
-"dùng một ký tự không hợp lệ trong một tên thuộc tính."
+"Ký tự lẻ '%s', mong muốn một ký tự '>' hay '/' để kết thúc tag khởi đầu của "
+"phần ỷư '%s', hay tùy ý một thuộc tính; có lẽ bạn đã dùng một ký tự bát hợp "
+"lệ trong một tên thuộc tính"
-#: glib/gmarkup.c:1291
+#: ../glib/gmarkup.c:1295
#, 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 ""
-"Ký tự lạ '%s', mong đợi một dấu nháy kép mở nằm sau dấu bằng khi đưa giá trị "
-"cho thuộc tính '%s' của yếu tố '%s'"
+"Ký tự lẻ '%s' , mong muốn một dấu ngoặc kép sau dấu bằng khi nhận giá trị "
+"cho thuộc tính '%s' của phần tử '%s'"
-#: glib/gmarkup.c:1425
+#: ../glib/gmarkup.c:1429
#, c-format
msgid ""
"'%s' is not a valid character following the characters '</'; '%s' may not "
"begin an element name"
msgstr ""
-"'%s' không phải là một ký tự hợp lệ nằm theo các ký tự '</' ; không cho phép "
-"'%s' bắt đầu một tên yếu tố"
+"'%s' không phải một ký tự hợp lệ đi theo các ký tự '</' ; '%s' có thể không "
+"khởi đầu một tên phần tử"
-#: glib/gmarkup.c:1461
+#: ../glib/gmarkup.c:1465
#, c-format
msgid ""
"'%s' is not a valid character following the close element name '%s'; the "
"allowed character is '>'"
msgstr ""
-"'%s' không phải là một ký tự hợp lệ nằm theo tên yếu tố đóng '%s'; ký tự "
-"được phép là '>'."
+"'%s' không phải một ký tự hợp lệ đi theo tên phần tử đóng '%s'; ký tự được "
+"phép là '>'"
-#: glib/gmarkup.c:1472
+#: ../glib/gmarkup.c:1476
#, c-format
msgid "Element '%s' was closed, no element is currently open"
-msgstr "Yếu tố '%s' đã được đóng, không có yếu tố mở hiện thời"
+msgstr "Phần tử '%s' đã được đóng, không có phần tử mở hiện thời"
-#: glib/gmarkup.c:1481
+#: ../glib/gmarkup.c:1485
#, c-format
msgid "Element '%s' was closed, but the currently open element is '%s'"
-msgstr "Yếu tố '%s' đã được đóng, nhưng yếu tố mở hiện thời là '%s'"
+msgstr "Phần tử '%s' đã được đóng, nhưng phần tử mở hiện thời là '%s'"
-#: glib/gmarkup.c:1648
+#: ../glib/gmarkup.c:1652
msgid "Document was empty or contained only whitespace"
-msgstr "Tài liệu rỗng hay chứa chỉ khoảng trắng"
+msgstr "Tài liệu trống hay chỉ chứa không gian trống"
-#: glib/gmarkup.c:1662
+#: ../glib/gmarkup.c:1666
msgid "Document ended unexpectedly just after an open angle bracket '<'"
-msgstr "Tài liệu đã kết thúc bất thường ngay sau một dấu ngoặc nhọn mở '<'"
+msgstr ""
+"Tài liệu đã kết thúc không mong muốn ngay sau một dấu ngoặc nhọn mở '<'"
-#: glib/gmarkup.c:1670 glib/gmarkup.c:1715
+#: ../glib/gmarkup.c:1674 ../glib/gmarkup.c:1719
#, c-format
msgid ""
"Document ended unexpectedly with elements still open - '%s' was the last "
"element opened"
msgstr ""
-"Tài liệu đã kết thúc bất thường với các yếu tố vẫn còn mở — '%s' là yếu tố "
-"đã mở cuối cùng"
+"Tài liệu đã kết thúc không mong muốn với các phần tử vẫn còn mở - '%s' là "
+"phần tử đã mở cuối cùng"
-#: glib/gmarkup.c:1678
+#: ../glib/gmarkup.c:1682
#, c-format
msgid ""
"Document ended unexpectedly, expected to see a close angle bracket ending "
"the tag <%s/>"
msgstr ""
-"Tài liệu kết thúc bất thường, mong đợi thấy dấu ngoặc nhọn đóng kết thúc thẻ "
-"'<%s/>'"
+"Tài liệu kết thúc không mong muốn, được cho là thấy dấu ngoặc nhọn kết thúc "
+"tag <%s/>"
-#: glib/gmarkup.c:1684
+#: ../glib/gmarkup.c:1688
msgid "Document ended unexpectedly inside an element name"
-msgstr "Tài liệu đã kết thúc bất thường bên trong một tên yếu tố"
+msgstr "Tài liệu được kết thúc không mong muốn bên trong tên phần tử"
-#: glib/gmarkup.c:1690
+#: ../glib/gmarkup.c:1694
msgid "Document ended unexpectedly inside an attribute name"
-msgstr "Tài liệu đã kết thúc bất thường bên trong một tên thuộc tính"
+msgstr "Tài liệu được kết thúc không mong muốn bên trong tên thuộc tính"
-#: glib/gmarkup.c:1695
+#: ../glib/gmarkup.c:1699
msgid "Document ended unexpectedly inside an element-opening tag."
-msgstr "Tài liệu đã kết thúc bất thường bên trong một thẻ mở yếu tố"
+msgstr "Tài liệu được kết thúc không mong muốn bên trong tag của phần tử mở."
-#: glib/gmarkup.c:1701
+#: ../glib/gmarkup.c:1705
msgid ""
"Document ended unexpectedly after the equals sign following an attribute "
"name; no attribute value"
msgstr ""
-"Tài liệu đã kết thúc bất thường sau dấu bằng nằm sau một tên thuộc tính; "
+"Tài liệu kết thúc không mong muốn sau dấu bằng đi theo một tên thuộc tính; "
"không có giá trị thuộc tính"
-#: glib/gmarkup.c:1708
+#: ../glib/gmarkup.c:1712
msgid "Document ended unexpectedly while inside an attribute value"
msgstr ""
-"Tài liệu đã kết thúc bất thường trong khi nằm trong một giá trị thuộc tính"
+"Tài liệu được kết thúc không mong muốn trong khi nằm trong một giá trị thuộc "
+"tính"
-#: glib/gmarkup.c:1724
+#: ../glib/gmarkup.c:1728
#, c-format
msgid "Document ended unexpectedly inside the close tag for element '%s'"
-msgstr "Tài liệu đã kết thúc bất thường bên trong thẻ đóng cho yếu tố '%s'"
+msgstr ""
+"Tài liệu được kết thúc không mong muốn bên trong tag đóng cho phần tử '%s'"
-#: glib/gmarkup.c:1730
+#: ../glib/gmarkup.c:1734
msgid "Document ended unexpectedly inside a comment or processing instruction"
msgstr ""
-"Tài liệu đã kết thúc bất thường bên trong một chú thích hay hướng dẫn xử lý"
+"Tài liệu được kết thúc không mong muốn bên trong một ghi chú hay hướng dẫn "
+"tiến trình"
-#: glib/gregex.c:131
+#: ../glib/gregex.c:188
msgid "corrupted object"
msgstr "đối tượng bị hỏng"
-#: glib/gregex.c:133
+#: ../glib/gregex.c:190
msgid "internal error or corrupted object"
msgstr "lỗi nội bộ hay đối tượng bị hỏng"
-#: glib/gregex.c:135
+#: ../glib/gregex.c:192
msgid "out of memory"
msgstr "hết bộ nhớ"
-#: glib/gregex.c:140
+#: ../glib/gregex.c:197
msgid "backtracking limit reached"
msgstr "không thể rút lùi nữa"
-#: glib/gregex.c:152 glib/gregex.c:160
+#: ../glib/gregex.c:209 ../glib/gregex.c:217
msgid "the pattern contains items not supported for partial matching"
msgstr "mẫu chứa mục không được hỗ trợ khi khớp bộ phận"
-#: glib/gregex.c:154 gio/glocalfile.c:2110
+#: ../glib/gregex.c:211 ../gio/glocalfile.c:2109
msgid "internal error"
msgstr "lỗi nội bộ"
-#: glib/gregex.c:162
+#: ../glib/gregex.c:219
msgid "back references as conditions are not supported for partial matching"
msgstr "khi khớp bộ phận, không hỗ trợ rút lui làm điều kiện"
-#: glib/gregex.c:171
+#: ../glib/gregex.c:228
msgid "recursion limit reached"
msgstr "không thể đề qui nữa"
-#: glib/gregex.c:173
+#: ../glib/gregex.c:230
msgid "workspace limit for empty substrings reached"
msgstr "vùng làm việc không thể chứa chuỗi con rỗng nữa"
-#: glib/gregex.c:175
+#: ../glib/gregex.c:232
msgid "invalid combination of newline flags"
msgstr "kết hợp cờ dòng mới một cách không hợp lệ"
-#: glib/gregex.c:179
+#: ../glib/gregex.c:236
msgid "unknown error"
msgstr "lỗi lạ"
-#: glib/gregex.c:199
+#: ../glib/gregex.c:256
msgid "\\ at end of pattern"
msgstr "\\ ở kết thúc của mẫu"
-#: glib/gregex.c:202
+#: ../glib/gregex.c:259
msgid "\\c at end of pattern"
msgstr "\\c ở kết thúc của mẫu"
-#: glib/gregex.c:205
+#: ../glib/gregex.c:262
msgid "unrecognized character follows \\"
msgstr "có ký tự lạ phía sau \\"
-#: glib/gregex.c:212
+#: ../glib/gregex.c:269
msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here"
msgstr ""
"ở đây thì không cho phép ký tự thoát thay đổi chữ hoa/thường (\\l, \\L, \\u, "
"\\U)"
-#: glib/gregex.c:215
+#: ../glib/gregex.c:272
msgid "numbers out of order in {} quantifier"
msgstr "các con số không theo thứ tự đúng trong chuỗi xác định số lượng {}"
-#: glib/gregex.c:218
+#: ../glib/gregex.c:275
msgid "number too big in {} quantifier"
msgstr "con số quá lớn trong chuỗi xác định số lượng {}"
-#: glib/gregex.c:221
+#: ../glib/gregex.c:278
msgid "missing terminating ] for character class"
msgstr "thiếu ] chấm dứt cho hạng ký tự"
-#: glib/gregex.c:224
+#: ../glib/gregex.c:281
msgid "invalid escape sequence in character class"
msgstr "gặp dây thoát không hợp lệ trong hạng ký tự"
-#: glib/gregex.c:227
+#: ../glib/gregex.c:284
msgid "range out of order in character class"
msgstr "phạm vi không theo thứ tự đúng trong hạng ký tự"
-#: glib/gregex.c:230
+#: ../glib/gregex.c:287
msgid "nothing to repeat"
msgstr "không có gì cần lặp lại"
-#: glib/gregex.c:233
+#: ../glib/gregex.c:290
msgid "unrecognized character after (?"
msgstr "không nhận dạng ký tự nằm sau (?"
-#: glib/gregex.c:237
+#: ../glib/gregex.c:294
msgid "unrecognized character after (?<"
msgstr "không nhận dạng ký tự nằm sau (?<"
-#: glib/gregex.c:241
+#: ../glib/gregex.c:298
msgid "unrecognized character after (?P"
msgstr "không nhận dạng ký tự nằm sau (?P"
-#: glib/gregex.c:244
+#: ../glib/gregex.c:301
msgid "POSIX named classes are supported only within a class"
msgstr "Hạng POSIX có tên chỉ được hỗ trợ bên trong hạng"
-#: glib/gregex.c:247
+#: ../glib/gregex.c:304
msgid "missing terminating )"
msgstr "thiếu ) chấm dứt"
-#: glib/gregex.c:251
+#: ../glib/gregex.c:308
msgid ") without opening ("
msgstr "có ) không có ( đầu tiên"
#. translators: '(?R' and '(?[+-]digits' are both meant as (groups of)
#. * sequences here, '(?-54' would be an example for the second group.
#.
-#: glib/gregex.c:258
+#: ../glib/gregex.c:315
msgid "(?R or (?[+-]digits must be followed by )"
msgstr "(?R hay (?[+-]chữ số phải có ) theo sau"
-#: glib/gregex.c:261
+#: ../glib/gregex.c:318
msgid "reference to non-existent subpattern"
msgstr "tham chiếu đến mẫu phụ không tồn tại"
-#: glib/gregex.c:264
+#: ../glib/gregex.c:321
msgid "missing ) after comment"
msgstr "thiếu ) nằm sau chú thích"
-#: glib/gregex.c:267
+#: ../glib/gregex.c:324
msgid "regular expression too large"
msgstr "biểu thức chính quy quá lớn"
-#: glib/gregex.c:270
+#: ../glib/gregex.c:327
msgid "failed to get memory"
msgstr "không lấy được bộ nhớ"
-#: glib/gregex.c:273
+#: ../glib/gregex.c:330
msgid "lookbehind assertion is not fixed length"
msgstr "khẳng định lookbehind (thấy ở sau) không có độ dài cố định"
-#: glib/gregex.c:276
+#: ../glib/gregex.c:333
msgid "malformed number or name after (?("
msgstr "có con số hay tên dạng sai nằm sau (?("
-#: glib/gregex.c:279
+#: ../glib/gregex.c:336
msgid "conditional group contains more than two branches"
msgstr "nhóm điều kiện chứa nhiều hơn hai nhánh"
-#: glib/gregex.c:282
+#: ../glib/gregex.c:339
msgid "assertion expected after (?("
msgstr "mong đợi khẳng định nằm sau (?("
-#: glib/gregex.c:285
+#: ../glib/gregex.c:342
msgid "unknown POSIX class name"
msgstr "không rõ tên hạng POSIX"
-#: glib/gregex.c:288
+#: ../glib/gregex.c:345
msgid "POSIX collating elements are not supported"
msgstr "Không hỗ trợ yếu tố đối chiếu POSIX"
-#: glib/gregex.c:291
+#: ../glib/gregex.c:348
msgid "character value in \\x{...} sequence is too large"
msgstr "dãy \\x{...} chứa giá trị ký tự quá lớn"
-#: glib/gregex.c:294
+#: ../glib/gregex.c:351
msgid "invalid condition (?(0)"
msgstr "điều kiện không hợp lệ (?(0)"
-#: glib/gregex.c:297
+#: ../glib/gregex.c:354
msgid "\\C not allowed in lookbehind assertion"
msgstr "\\C không được phép trong khẳng định lookbehind (thấy ở sau)"
-#: glib/gregex.c:300
+#: ../glib/gregex.c:357
msgid "recursive call could loop indefinitely"
msgstr "lời gọi đệ quy có thể bị lặp vô hạn"
-#: glib/gregex.c:303
+#: ../glib/gregex.c:360
msgid "missing terminator in subpattern name"
msgstr "thiếu dấu chấm dứt trong tên mẫu phụ"
-#: glib/gregex.c:306
+#: ../glib/gregex.c:363
msgid "two named subpatterns have the same name"
msgstr "hai mẫu phụ có tên cũng có cùng một tên"
-#: glib/gregex.c:309
+#: ../glib/gregex.c:366
msgid "malformed \\P or \\p sequence"
msgstr "dãy \\P hay \\p dạng sai"
-#: glib/gregex.c:312
+#: ../glib/gregex.c:369
msgid "unknown property name after \\P or \\p"
msgstr "có tên thuộc tính không rõ nằm sau \\P hay \\p"
-#: glib/gregex.c:315
+#: ../glib/gregex.c:372
msgid "subpattern name is too long (maximum 32 characters)"
msgstr "tên mẫu phụ quá dài (tối đa 32 ký tự)"
-#: glib/gregex.c:318
+#: ../glib/gregex.c:375
msgid "too many named subpatterns (maximum 10,000)"
msgstr "quá nhiều mẫu phụ có tên (tối đa 10 000)"
-#: glib/gregex.c:321
+#: ../glib/gregex.c:378
msgid "octal value is greater than \\377"
msgstr "giá trị bát phân lớn hơn \\377"
-#: glib/gregex.c:324
+#: ../glib/gregex.c:381
msgid "DEFINE group contains more than one branch"
msgstr "nhóm DEFINE (định nghĩa) chứa nhiều hơn một nhánh"
-#: glib/gregex.c:327
+#: ../glib/gregex.c:384
msgid "repeating a DEFINE group is not allowed"
msgstr "không cho phép lặp lại một nhóm DEFINE (định nghĩa)"
-#: glib/gregex.c:330
+#: ../glib/gregex.c:387
msgid "inconsistent NEWLINE options"
msgstr "các tùy chọn NEWLINE (dòng mới) không thống nhất với nhau"
-#: glib/gregex.c:333
+#: ../glib/gregex.c:390
msgid ""
"\\g is not followed by a braced name or an optionally braced non-zero number"
msgstr ""
"\\g không đi trước một tên có dấu ngoặc móc hoặc một con số không phải số "
"không có dấu ngoặc móc tùy chọn"
-#: glib/gregex.c:338
+#: ../glib/gregex.c:395
msgid "unexpected repeat"
msgstr "lặp lại bất thường"
-#: glib/gregex.c:342
+#: ../glib/gregex.c:399
msgid "code overflow"
msgstr "tràn mã"
-#: glib/gregex.c:346
+#: ../glib/gregex.c:403
msgid "overran compiling workspace"
msgstr "tràn vùng làm việc biên dịch"
-#: glib/gregex.c:350
+#: ../glib/gregex.c:407
msgid "previously-checked referenced subpattern not found"
msgstr "không tìm thấy mẫu phụ đã tham chiếu mà đã kiểm tra trước"
-#: glib/gregex.c:522 glib/gregex.c:1639
+#: ../glib/gregex.c:579 ../glib/gregex.c:1700
#, c-format
msgid "Error while matching regular expression %s: %s"
msgstr "Gặp lỗi trong khi khớp biểu thức chính quy %s: %s"
-#: glib/gregex.c:1094
+#: ../glib/gregex.c:1155
msgid "PCRE library is compiled without UTF8 support"
msgstr "Thư viện PCRE đã biên dịch không có khả năng hỗ trợ UTF-8"
-#: glib/gregex.c:1103
+#: ../glib/gregex.c:1164
msgid "PCRE library is compiled without UTF8 properties support"
msgstr "Thư viện PCRE đã biên dịch không có khả năng hỗ trợ tài sản UTF-8"
-#: glib/gregex.c:1157
+#: ../glib/gregex.c:1218
#, c-format
msgid "Error while compiling regular expression %s at char %d: %s"
msgstr "Gặp lỗi trong khi biên dịch biểu thức chính quy %s ở ký tự %d: %s"
-#: glib/gregex.c:1193
+#: ../glib/gregex.c:1254
#, c-format
msgid "Error while optimizing regular expression %s: %s"
msgstr "Gặp lỗi trong khi tối hưu hoá biểu thức chính quy %s: %s"
-#: glib/gregex.c:2067
+#: ../glib/gregex.c:2128
msgid "hexadecimal digit or '}' expected"
msgstr "đợi chữ số thập lục hay dấu ngoặc móc đóng '}'"
-#: glib/gregex.c:2083
+#: ../glib/gregex.c:2144
msgid "hexadecimal digit expected"
msgstr "đợi chữ số thập lục"
-#: glib/gregex.c:2123
+#: ../glib/gregex.c:2184
msgid "missing '<' in symbolic reference"
msgstr "thiếu dấu ngoặc nhọn mở '<' trong tham chiếu tượng trưng"
-#: glib/gregex.c:2132
+#: ../glib/gregex.c:2193
msgid "unfinished symbolic reference"
msgstr "tham chiếu tượng trưng chưa hoàn thành"
-#: glib/gregex.c:2139
+#: ../glib/gregex.c:2200
msgid "zero-length symbolic reference"
msgstr "tham chiếu tượng trưng có độ dài số không"
-#: glib/gregex.c:2150
+#: ../glib/gregex.c:2211
msgid "digit expected"
msgstr "đợi chữ số"
-#: glib/gregex.c:2168
+#: ../glib/gregex.c:2229
msgid "illegal symbolic reference"
msgstr "tham chiếu tượng trưng không cho phép"
-#: glib/gregex.c:2230
+#: ../glib/gregex.c:2291
msgid "stray final '\\'"
msgstr "dấu xuyệc ngược kết thúc rải rác '\\'"
-#: glib/gregex.c:2234
+#: ../glib/gregex.c:2295
msgid "unknown escape sequence"
msgstr "dãy thoát lạ"
-#: glib/gregex.c:2244
+#: ../glib/gregex.c:2305
#, c-format
msgid "Error while parsing replacement text \"%s\" at char %lu: %s"
msgstr "Gặp lỗi trong khi phân tách văn bản thay thế '%s' ở ký tự %lu: %s"
-#: glib/gshell.c:92
+#: ../glib/gshell.c:91
msgid "Quoted text doesn't begin with a quotation mark"
msgstr "Văn bản trích dẫn không bắt đầu bằng một dấu trích dẫn"
-#: glib/gshell.c:182
+#: ../glib/gshell.c:181
msgid "Unmatched quotation mark in command line or other shell-quoted text"
msgstr ""
-"Dấu ngoặc kép không ăn khớp nằm trên dòng lệnh hay trong văn bản khác đã "
-"trích dẫn trong trình bao"
+"Dấu ngoặc kép không ăn khớp trong dòng lệnh hay một shell-quoted text khác"
-#: glib/gshell.c:560
+#: ../glib/gshell.c:559
#, c-format
msgid "Text ended just after a '\\' character. (The text was '%s')"
-msgstr "Văn bản đã kết thúc ngay sau dấu xuyệc ngược '\\' (văn bản là '%s')"
+msgstr "Văn bản được kết thúc ngay sau ký tự '\\'. (văn bản đã là '%s')"
-#: glib/gshell.c:567
+#: ../glib/gshell.c:566
#, c-format
msgid "Text ended before matching quote was found for %c. (The text was '%s')"
msgstr ""
-"Văn bản đã kết thúc trước khi tìm dấu ngoặc kép tương ứng với '%c' (văn bản "
-"là '%s')"
+"Text đã kết thúc trước khi làm khớp dấu ngoặc kép cho %c. (text là '%s')"
-#: glib/gshell.c:579
+#: ../glib/gshell.c:578
msgid "Text was empty (or contained only whitespace)"
-msgstr "Văn bản rỗng (hay chưa chỉ khoảng trắng)"
+msgstr "Văn bản trống (hay chỉ gồm các ký tự trắng)"
-#: glib/gspawn-win32.c:283
+#: ../glib/gspawn-win32.c:282
msgid "Failed to read data from child process"
-msgstr "Lỗi đọc dữ liệu từ tiến trình con"
+msgstr "Không đọc được dữ liệu từ tiến trình con"
-#: glib/gspawn-win32.c:300 glib/gspawn.c:1480
+#: ../glib/gspawn-win32.c:299 ../glib/gspawn.c:1486
#, c-format
msgid "Failed to create pipe for communicating with child process (%s)"
-msgstr "Lỗi tạo ống dẫn để liên lạc với tiến trình con (%s)"
+msgstr "Không tạo được pipe để liên lạc với tiến trình con (%s)"
-#: glib/gspawn-win32.c:339 glib/gspawn-win32.c:347 glib/gspawn.c:1139
+#: ../glib/gspawn-win32.c:338 ../glib/gspawn-win32.c:346 ../glib/gspawn.c:1145
#, c-format
msgid "Failed to read from child pipe (%s)"
-msgstr "Lỗi đọc từ ống dẫn con (%s)"
+msgstr "Không đọc được từ pipe con (%s)"
-#: glib/gspawn-win32.c:370 glib/gspawn.c:1346
+#: ../glib/gspawn-win32.c:369 ../glib/gspawn.c:1352
#, c-format
msgid "Failed to change to directory '%s' (%s)"
-msgstr "Lỗi chuyển đổi sang thư mục '%s' (%s)"
+msgstr "Không thay đổi được thư mục '%s' (%s)"
-#: glib/gspawn-win32.c:376 glib/gspawn-win32.c:495
+#: ../glib/gspawn-win32.c:375 ../glib/gspawn-win32.c:494
#, c-format
msgid "Failed to execute child process (%s)"
-msgstr "Lỗi thực hiện tiến trình con (%s)"
+msgstr "Không thực thi được tiến trình con (%s)"
-#: glib/gspawn-win32.c:445
+#: ../glib/gspawn-win32.c:444
#, c-format
msgid "Invalid program name: %s"
msgstr "Tên chương trình không hợp lệ: %s"
-#: glib/gspawn-win32.c:455 glib/gspawn-win32.c:723 glib/gspawn-win32.c:1279
+#: ../glib/gspawn-win32.c:454 ../glib/gspawn-win32.c:722
+#: ../glib/gspawn-win32.c:1278
#, c-format
msgid "Invalid string in argument vector at %d: %s"
-msgstr "Gặp chuỗi không hợp lệ nằm trong véc-tơ đối số tại %d: %s"
+msgstr "Gặp chuỗi không hợp lệ trong véc-tơ đối số tại %d: %s"
-#: glib/gspawn-win32.c:466 glib/gspawn-win32.c:738 glib/gspawn-win32.c:1312
+#: ../glib/gspawn-win32.c:465 ../glib/gspawn-win32.c:737
+#: ../glib/gspawn-win32.c:1311
#, c-format
msgid "Invalid string in environment: %s"
-msgstr "Gặp chuỗi không hợp lệ nằm trong môi trường: %s"
+msgstr "Gặp chuỗi không hợp lệ trong môi trường: %s"
-#: glib/gspawn-win32.c:719 glib/gspawn-win32.c:1260
+#: ../glib/gspawn-win32.c:718 ../glib/gspawn-win32.c:1259
#, c-format
msgid "Invalid working directory: %s"
msgstr "Thư mục làm việc không hợp lệ: %s"
-#: glib/gspawn-win32.c:784
+#: ../glib/gspawn-win32.c:783
#, c-format
msgid "Failed to execute helper program (%s)"
-msgstr "Lỗi thực hiện chương trình bổ trợ (%s)"
+msgstr "Lỗi thực thi chương trình bổ trợ (%s)"
-#: glib/gspawn-win32.c:998
+#: ../glib/gspawn-win32.c:997
msgid ""
"Unexpected error in g_io_channel_win32_poll() reading data from a child "
"process"
msgstr ""
-"Gặp lỗi bất thường nằm trong 'g_io_channel_win32_poll()' khi đọc dữ liệu từ "
-"tiến trình con"
+"Lỗi không mong muốn trong g_io_channel_win32_poll() đọc dữ liệu từ tiến "
+"trình con"
-#: glib/gspawn.c:190
+#: ../glib/gspawn.c:196
#, c-format
msgid "Failed to read data from child process (%s)"
-msgstr "Lỗi đọc dữ liệu từ tiến trình con (%s)"
+msgstr "Không đọc được dữ liệu từ tiến trình con (%s)"
-#: glib/gspawn.c:329
+#: ../glib/gspawn.c:335
#, c-format
msgid "Unexpected error in select() reading data from a child process (%s)"
-msgstr ""
-"Gặp lỗi bất thường nằm trong 'select()' khi đọc dữ liệu từ tiến trình con (%"
-"s)"
+msgstr "Lỗi không mong muốn trong select() đọc dữ liệu từ tiến trình con (%s)"
-#: glib/gspawn.c:414
+#: ../glib/gspawn.c:420
#, c-format
msgid "Unexpected error in waitpid() (%s)"
-msgstr "Gặp lỗi bất thường nằm trong 'waitpid()' (%s)"
+msgstr "Lỗi không mong muốn trong waitpid() (%s)"
-#: glib/gspawn.c:1206
+#: ../glib/gspawn.c:1212
#, c-format
msgid "Failed to fork (%s)"
-msgstr "Lỗi tạo tiến trình con (%s)"
+msgstr "Không rẽ nhánh được (%s)"
-#: glib/gspawn.c:1356
+#: ../glib/gspawn.c:1362
#, c-format
msgid "Failed to execute child process \"%s\" (%s)"
-msgstr "Lỗi thực hiện tiến trình con '%s' (%s)"
+msgstr "Không thự thi được tiến trình con \"%s\" (%s)"
-#: glib/gspawn.c:1366
+#: ../glib/gspawn.c:1372
#, c-format
msgid "Failed to redirect output or input of child process (%s)"
-msgstr "Lỗi chuyển hướng kết nhập hay kết xuất của tiến trình con (%s)"
+msgstr "Không gửi được lần nữa đầu ra hay đầu vào của tiến trình con (%s)"
-#: glib/gspawn.c:1375
+#: ../glib/gspawn.c:1381
#, c-format
msgid "Failed to fork child process (%s)"
-msgstr "Lỗi tạo tiến trình con (%s)"
+msgstr "Không rẽ nhánh được tiến trình con (%s)"
-#: glib/gspawn.c:1383
+#: ../glib/gspawn.c:1389
#, c-format
msgid "Unknown error executing child process \"%s\""
-msgstr "Gặp lỗi không rõ khi thực hiện tiến trình con '%s'"
+msgstr "Lỗi không xác định khi thực thi tiến trình con \"%s\""
-#: glib/gspawn.c:1407
+#: ../glib/gspawn.c:1413
#, c-format
msgid "Failed to read enough data from child pid pipe (%s)"
-msgstr "Lỗi đọc đủ dữ liệu từ ống dẫn PID con (%s)"
+msgstr "Không đọc được đủ dữ liệu từ pid pipe con(%s)"
-#: glib/gutf8.c:1063
+#: ../glib/gutf8.c:1066
msgid "Character out of range for UTF-8"
-msgstr "Ký tự ở ngoại phạm vi UTF-8"
+msgstr "Ký tự nằm ngoài vùng UTF-8"
-#: glib/gutf8.c:1163 glib/gutf8.c:1172 glib/gutf8.c:1304 glib/gutf8.c:1313
-#: glib/gutf8.c:1454 glib/gutf8.c:1550
+#: ../glib/gutf8.c:1166 ../glib/gutf8.c:1175 ../glib/gutf8.c:1307
+#: ../glib/gutf8.c:1316 ../glib/gutf8.c:1457 ../glib/gutf8.c:1553
msgid "Invalid sequence in conversion input"
-msgstr "Dãy không hợp lệ nằm trong dữ liệu nhập việc chuyển đổi"
+msgstr "Sequence bất hợp lệ trong đầu vào chuyển đổi"
-#: glib/gutf8.c:1465 glib/gutf8.c:1561
+#: ../glib/gutf8.c:1468 ../glib/gutf8.c:1564
msgid "Character out of range for UTF-16"
-msgstr "Ký tự ở ngoại phạm vi UTF-16"
+msgstr "Ký tự nằm ngoài vùng UTF-16"
-#: glib/goption.c:755
+#: ../glib/goption.c:760
msgid "Usage:"
msgstr "Sử dụng:"
-#: glib/goption.c:755
+#: ../glib/goption.c:760
msgid "[OPTION...]"
msgstr "[TÙY_CHỌN...]"
-#: glib/goption.c:861
+#: ../glib/goption.c:866
msgid "Help Options:"
msgstr "Tùy chọn trợ giúp:"
-#: glib/goption.c:862
+#: ../glib/goption.c:867
msgid "Show help options"
msgstr "Hiển thị các tùy chọn trợ giúp"
-#: glib/goption.c:868
+#: ../glib/goption.c:873
msgid "Show all help options"
msgstr "Hiển thị mọi tùy chọn trợ giúp"
-#: glib/goption.c:930
+#: ../glib/goption.c:935
msgid "Application Options:"
msgstr "Tùy chọn ứng dụng:"
-#: glib/goption.c:992 glib/goption.c:1062
+#: ../glib/goption.c:997 ../glib/goption.c:1067
#, c-format
msgid "Cannot parse integer value '%s' for %s"
-msgstr "Không thể phân tách giá trị số nguyên '%s' cho %s"
+msgstr "Không phân tách giá trị số nguyên « %s » cho %s."
-#: glib/goption.c:1002 glib/goption.c:1070
+#: ../glib/goption.c:1007 ../glib/goption.c:1075
#, c-format
msgid "Integer value '%s' for %s out of range"
-msgstr "Giá trị số nguyên '%s' cho %s ở ngoại phạm vi"
+msgstr "Giá trị số nguyên '%s' cho %s ở ngoài phạm vi."
-#: glib/goption.c:1027
+#: ../glib/goption.c:1032
#, c-format
msgid "Cannot parse double value '%s' for %s"
msgstr "Không thể phân tách giá trị đôi '%s' cho %s"
-#: glib/goption.c:1035
+#: ../glib/goption.c:1040
#, c-format
msgid "Double value '%s' for %s out of range"
-msgstr "Giá trị đôi '%s' cho %s ở ngoại phạm vi"
+msgstr "Giá trị đôi '%s' cho %s ở ngoài phạm vi"
-#: glib/goption.c:1298 glib/goption.c:1377
+#: ../glib/goption.c:1303 ../glib/goption.c:1382
#, c-format
msgid "Error parsing option %s"
msgstr "Gặp lỗi khi phân tách tùy chọn %s"
-#: glib/goption.c:1408 glib/goption.c:1522
+#: ../glib/goption.c:1413 ../glib/goption.c:1527
#, c-format
msgid "Missing argument for %s"
msgstr "Thiếu đối số cho %s"
-#: glib/goption.c:1917
+#: ../glib/goption.c:1922
#, c-format
msgid "Unknown option %s"
-msgstr "Không biết tùy chọn %s"
+msgstr "Không biết tùy chọn %s."
-#: glib/gkeyfile.c:363
+#: ../glib/gkeyfile.c:362
msgid "Valid key file could not be found in search dirs"
msgstr "Không tìm thấy tập tin khoá hợp lệ nằm trong thư mục tìm kiếm"
-#: glib/gkeyfile.c:398
+#: ../glib/gkeyfile.c:397
msgid "Not a regular file"
-msgstr "Không phải là một tập tin chuẩn"
+msgstr "Không phải là một tập tin chuẩn."
-#: glib/gkeyfile.c:406
+#: ../glib/gkeyfile.c:405
msgid "File is empty"
-msgstr "Tập tin rỗng"
+msgstr "Tập tin rỗng."
-#: glib/gkeyfile.c:765
+#: ../glib/gkeyfile.c:764
#, c-format
msgid ""
"Key file contains line '%s' which is not a key-value pair, group, or comment"
msgstr ""
-"Tập tin khóa chứa dòng '%s' mà không phải là một cặp giá trị khóa, nhóm, hay "
-"chú thích"
+"Tập tin khóa chứa dòng « %s » mà không phải là cặp giá trị khóa, nhóm, hoặc "
+"chú thích."
-#: glib/gkeyfile.c:825
+#: ../glib/gkeyfile.c:824
#, c-format
msgid "Invalid group name: %s"
msgstr "Tên nhóm không hợp lệ: %s"
-#: glib/gkeyfile.c:847
+#: ../glib/gkeyfile.c:846
msgid "Key file does not start with a group"
-msgstr "Tập tin khóa không bắt đầu với nhóm"
+msgstr "Tập tin khóa không bắt đầu với nhóm."
-#: glib/gkeyfile.c:873
+#: ../glib/gkeyfile.c:872
#, c-format
msgid "Invalid key name: %s"
msgstr "Tên khoá không hợp lệ: %s"
-#: glib/gkeyfile.c:900
+#: ../glib/gkeyfile.c:899
#, c-format
msgid "Key file contains unsupported encoding '%s'"
-msgstr "Tập tin khóa chứa bảng mã không được hỗ trợ '%s'"
+msgstr "Tập tin khóa chứa bảng mã không được hỗ trợ « %s »."
-#: glib/gkeyfile.c:1116 glib/gkeyfile.c:1278 glib/gkeyfile.c:2657
-#: glib/gkeyfile.c:2723 glib/gkeyfile.c:2858 glib/gkeyfile.c:2991
-#: glib/gkeyfile.c:3144 glib/gkeyfile.c:3331 glib/gkeyfile.c:3392
+#: ../glib/gkeyfile.c:1115 ../glib/gkeyfile.c:1277 ../glib/gkeyfile.c:2656
+#: ../glib/gkeyfile.c:2722 ../glib/gkeyfile.c:2857 ../glib/gkeyfile.c:2990
+#: ../glib/gkeyfile.c:3143 ../glib/gkeyfile.c:3330 ../glib/gkeyfile.c:3391
#, c-format
msgid "Key file does not have group '%s'"
-msgstr "Tập tin khóa không có nhóm '%s'"
+msgstr "Tập tin khóa không có nhóm « %s »."
-#: glib/gkeyfile.c:1290
+#: ../glib/gkeyfile.c:1289
#, c-format
msgid "Key file does not have key '%s'"
-msgstr "Tập tin khóa không có khóa '%s'"
+msgstr "Tập tin khóa không có khóa « %s »."
-#: glib/gkeyfile.c:1397 glib/gkeyfile.c:1512
+#: ../glib/gkeyfile.c:1396 ../glib/gkeyfile.c:1511
#, c-format
msgid "Key file contains key '%s' with value '%s' which is not UTF-8"
-msgstr "Tập tin khóa chứa khóa '%s' với giá trị '%s' mà không phải là UTF-8"
+msgstr "Tập tin khóa chứa khóa « %s » có giá trị « %s » không phải là UTF-8."
-#: glib/gkeyfile.c:1417 glib/gkeyfile.c:1911
+#: ../glib/gkeyfile.c:1416 ../glib/gkeyfile.c:1910
#, c-format
msgid "Key file contains key '%s' which has value that cannot be interpreted."
-msgstr "Tập tin khóa chứa khóa '%s' mà có giá trị không có khả năng giải dịch."
+msgstr "Tập tin khóa chứa khóa « %s » có giá trị không có khả năng giải dịch."
-#: glib/gkeyfile.c:1532
+#: ../glib/gkeyfile.c:1531
#, c-format
msgid ""
"Key file contains key '%s' which has a value that cannot be interpreted."
msgstr "Không thể phân tích giá trị '%s' chứa trong tập tin khoá."
-#: glib/gkeyfile.c:2126 glib/gkeyfile.c:2488
+#: ../glib/gkeyfile.c:2125 ../glib/gkeyfile.c:2487
#, c-format
msgid ""
"Key file contains key '%s' in group '%s' which has value that cannot be "
"interpreted."
msgstr ""
-"Tập tin khóa chứa khóa '%s' trong nhóm '%s' mà có giá trị không có khả năng "
+"Tập tin khóa chứa khóa « %s » trong nhóm « %s » có giá trị không có khả năng "
"giải dịch."
-#: glib/gkeyfile.c:2672 glib/gkeyfile.c:2873 glib/gkeyfile.c:3403
+#: ../glib/gkeyfile.c:2671 ../glib/gkeyfile.c:2872 ../glib/gkeyfile.c:3402
#, c-format
msgid "Key file does not have key '%s' in group '%s'"
-msgstr "Tập tin khóa không có khóa '%s' trong nhóm '%s'"
+msgstr "Tập tin khóa không chứa khóa « %s » trong nhóm « %s »."
-#: glib/gkeyfile.c:3637
+#: ../glib/gkeyfile.c:3636
msgid "Key file contains escape character at end of line"
-msgstr "Tập tin khóa chứa ký tự thoát tại kết thúc của dòng"
+msgstr "Tập tin khóa chứa ký tự thoạt tại kết thức dòng."
-#: glib/gkeyfile.c:3659
+#: ../glib/gkeyfile.c:3658
#, c-format
msgid "Key file contains invalid escape sequence '%s'"
-msgstr "Tập tin khóa chứa dãy thoát không hợp lệ '%s'"
+msgstr "URI '%s' chứa không hợp lệ các ký tự thoát"
-#: glib/gkeyfile.c:3801
+#: ../glib/gkeyfile.c:3800
#, c-format
msgid "Value '%s' cannot be interpreted as a number."
msgstr "Không thể giải dịch giá trị '%s' dạng con số."
-#: glib/gkeyfile.c:3815
+#: ../glib/gkeyfile.c:3814
#, c-format
msgid "Integer value '%s' out of range"
-msgstr "Giá trị số nguyên '%s' ở ngoại phạm vi"
+msgstr "Giá trị số nguyên '%s' ở ngoài phạm vi"
-#: glib/gkeyfile.c:3848
+#: ../glib/gkeyfile.c:3847
#, c-format
msgid "Value '%s' cannot be interpreted as a float number."
msgstr "Không thể giải dịch giá trị '%s' dạng con số nổi."
-#: glib/gkeyfile.c:3872
+#: ../glib/gkeyfile.c:3871
#, c-format
msgid "Value '%s' cannot be interpreted as a boolean."
msgstr "Không thể giải dịch giá trị '%s' dạng bun (đúng/sai)."
-#: gio/gbufferedinputstream.c:415 gio/gbufferedinputstream.c:496
-#: gio/ginputstream.c:186 gio/ginputstream.c:318 gio/ginputstream.c:557
-#: gio/ginputstream.c:682 gio/goutputstream.c:198 gio/goutputstream.c:721
+#: ../gio/gbufferedinputstream.c:411 ../gio/gbufferedinputstream.c:492
+#: ../gio/ginputstream.c:185 ../gio/ginputstream.c:317
+#: ../gio/ginputstream.c:556 ../gio/ginputstream.c:680
+#: ../gio/goutputstream.c:198 ../gio/goutputstream.c:726
#, c-format
msgid "Too large count value passed to %s"
msgstr "Giá trị đếm quá lớn được gửi cho %s"
-#: gio/gbufferedinputstream.c:883 gio/ginputstream.c:892 gio/giostream.c:305
-#: gio/goutputstream.c:1196
+#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888
+#: ../gio/giostream.c:306 ../gio/goutputstream.c:1197
msgid "Stream is already closed"
msgstr "Luồng đã bị đóng"
-#: gio/gcancellable.c:433 gio/gdbusconnection.c:1212
-#: gio/gdbusconnection.c:1300 gio/gdbusconnection.c:1472 gio/glocalfile.c:2103
-#: gio/gsimpleasyncresult.c:651 gio/gsimpleasyncresult.c:677
+#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "Thao tác bị thôi"
-#: gio/gcharsetconverter.c:264
+#: ../gio/gcharsetconverter.c:263
msgid "Invalid object, not initialized"
msgstr "Đối tượng không hợp lệ, chưa được sơ khởi"
-#: gio/gcharsetconverter.c:285 gio/gcharsetconverter.c:313
+#: ../gio/gcharsetconverter.c:284 ../gio/gcharsetconverter.c:312
msgid "Incomplete multibyte sequence in input"
msgstr "Gặp dây byte không hoàn thành trong đầu vào"
-#: gio/gcharsetconverter.c:319 gio/gcharsetconverter.c:328
+#: ../gio/gcharsetconverter.c:318 ../gio/gcharsetconverter.c:327
msgid "Not enough space in destination"
msgstr "Không đủ không gian trong đích đến"
-#: gio/gcharsetconverter.c:448 gio/gsocket.c:804
+#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:832
msgid "Cancellable initialization not supported"
msgstr "Không hỗ trợ thao tác khởi động có thể huỷ bỏ"
-#: gio/gcontenttype.c:180
+#: ../gio/gcontenttype.c:179
msgid "Unknown type"
msgstr "Không rõ kiểu"
-#: gio/gcontenttype.c:181
+#: ../gio/gcontenttype.c:180
#, c-format
msgid "%s filetype"
msgstr "kiểu tập tin %s"
-#: gio/gcontenttype.c:681
+#: ../gio/gcontenttype.c:679
#, c-format
msgid "%s type"
msgstr "kiểu %s"
-#: gio/gcredentials.c:203 gio/gcredentials.c:338
+#: ../gio/gcredentials.c:246 ../gio/gcredentials.c:441
msgid "GCredentials is not implemented on this OS"
-msgstr ""
+msgstr "GCredentials không được hỗ trợ trên hệ điều hành này"
-#: gio/gcredentials.c:296
+#: ../gio/gcredentials.c:396
msgid "There is no GCredentials support for your platform"
-msgstr ""
+msgstr "Không có hỗ trợ GCredentials trên hệ điều hành của bạn"
-#: gio/gdatainputstream.c:311
+#: ../gio/gdatainputstream.c:311
msgid "Unexpected early end-of-stream"
msgstr "Kết thúc luồng sớm bất thường"
-#: gio/gdbusaddress.c:135 gio/gdbusaddress.c:226 gio/gdbusaddress.c:300
-#, fuzzy, c-format
+#: ../gio/gdbusaddress.c:142 ../gio/gdbusaddress.c:230
+#: ../gio/gdbusaddress.c:304
+#, c-format
msgid "Unsupported key `%s' in address entry `%s'"
-msgstr "Địa chỉ ổ cắm không hỗ trợ"
+msgstr "Khoá không hỗ trợ `%s' ở đầu nhập địa chỉ `%s'"
-#: gio/gdbusaddress.c:165
+#: ../gio/gdbusaddress.c:169
#, c-format
msgid ""
"Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)"
msgstr ""
+"Địa chỉ `%s' không hợp lệ (cần chính xác một đường dẫn, tmpdir hoặc khoá "
+"tổng quát)"
-#: gio/gdbusaddress.c:178
+#: ../gio/gdbusaddress.c:182
#, c-format
msgid "Meaningless key/value pair combination in address entry `%s'"
-msgstr ""
+msgstr "Cặp khoá/giá trị vô nghĩa ở địa chỉ `%s'"
-#: gio/gdbusaddress.c:241 gio/gdbusaddress.c:315
+#: ../gio/gdbusaddress.c:245 ../gio/gdbusaddress.c:319
#, c-format
msgid "Error in address `%s' - the port attribute is malformed"
-msgstr ""
+msgstr "Lỗi ở địa chỉ `%s' - thuộc tính cổng bị hư"
-#: gio/gdbusaddress.c:252 gio/gdbusaddress.c:326
+#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:330
#, c-format
msgid "Error in address `%s' - the family attribute is malformed"
-msgstr ""
+msgstr "Lỗi ở địa chỉ `%s' - thuộc tính họ (family) bị hư"
-#: gio/gdbusaddress.c:428
+#: ../gio/gdbusaddress.c:434
#, c-format
msgid "Address element `%s', does not contain a colon (:)"
-msgstr ""
+msgstr "Thành phần địa chỉ `%s', không chứ dấu hai chấm (:)"
-#: gio/gdbusaddress.c:449
+#: ../gio/gdbusaddress.c:455
#, c-format
msgid ""
"Key/Value pair %d, `%s', in address element `%s', does not contain an equal "
"sign"
-msgstr ""
+msgstr "Cặp khoá/giá trị %d, `%s', ở địa chỉ `%s', không chứa dấu bằng"
-#: gio/gdbusaddress.c:523
+#: ../gio/gdbusaddress.c:469
+#, c-format
+msgid ""
+"Error unescaping key or value in Key/Value pair %d, `%s', in address element "
+"`%s'"
+msgstr "Lỗi unescape khoá hoặc giá trị trong cặp khoá/giá trị %d, `%s', ở địa chỉ `%s'"
+
+#: ../gio/gdbusaddress.c:547
#, c-format
msgid ""
"Error in address `%s' - the unix transport requires exactly one of the keys "
"`path' or `abstract' to be set"
msgstr ""
+"Lỗi ở địa chỉ `%s' - phương thức vận chuyển unix cần đặt chính xác một trong "
+"những khoá `path' hoặc `abstract'"
-#: gio/gdbusaddress.c:559
+#: ../gio/gdbusaddress.c:583
#, c-format
msgid "Error in address `%s' - the host attribute is missing or malformed"
-msgstr ""
+msgstr "Lỗi ở địa chỉ `%s' - thuộc tính máy thiếu hoặc bị hư"
-#: gio/gdbusaddress.c:573
+#: ../gio/gdbusaddress.c:597
#, c-format
msgid "Error in address `%s' - the port attribute is missing or malformed"
-msgstr ""
+msgstr "Lỗi ở địa chỉ `%s' - thuộc tính cổng thiếu hoặc bị hư"
-#: gio/gdbusaddress.c:587
+#: ../gio/gdbusaddress.c:611
#, c-format
msgid "Error in address `%s' - the noncefile attribute is missing or malformed"
-msgstr ""
+msgstr "Lỗi ở địa chỉ `%s' - thuộc tính noncefile thiếu hoặc bị hư"
-#: gio/gdbusaddress.c:601
+#: ../gio/gdbusaddress.c:632
+#| msgid "Error connecting: "
+msgid "Error auto-launching: "
+msgstr "Lỗi tự động khởi động: "
+
+#: ../gio/gdbusaddress.c:640
#, c-format
msgid "Unknown or unsupported transport `%s' for address `%s'"
msgstr ""
+"Phương thức vận chuyển `%s' cho địa chỉ `%s' không được hỗ trợ, hoặc không "
+"nhận ra"
-#: gio/gdbusaddress.c:635
-#, fuzzy, c-format
-msgid "Error reading nonce file `%s':"
-msgstr "Gặp lỗi khi đọc tập tin '%s': %s"
-
-#: gio/gdbusaddress.c:646
-msgid "The nonce-file `%s' was %"
-msgstr ""
-
-#: gio/gdbusaddress.c:662
+#: ../gio/gdbusaddress.c:676
#, c-format
-msgid "Error write contents of nonce file `%s' to stream:"
-msgstr ""
+#| msgid "Error opening file '%s': %s"
+msgid "Error opening nonce file `%s': %s"
+msgstr "Gặp lỗi khi mở nonce-file `%s': %s"
-#: gio/gdbusaddress.c:978
+#: ../gio/gdbusaddress.c:694
#, c-format
-msgid ""
-"Cannot determine session bus address (TODO: run dbus-launch to find out)"
-msgstr ""
+#| msgid "Error reading nonce file `%s':"
+msgid "Error reading from nonce file `%s': %s"
+msgstr "Gặp lỗi khi đọc nonce-file '%s': %s"
-#: gio/gdbusaddress.c:1002 gio/gdbusconnection.c:5309
+#: ../gio/gdbusaddress.c:703
+#, c-format
+#| msgid "Error reading nonce file `%s':"
+msgid "Error reading from nonce file `%s', expected 16 bytes, got %d"
+msgstr "Gặp lỗi khi đọc nonce-file '%s', cần 16 byte, nhận %d"
+
+#: ../gio/gdbusaddress.c:721
+#, c-format
+#| msgid "Error write contents of nonce file `%s' to stream:"
+msgid "Error writing contents of nonce file `%s' to stream:"
+msgstr "Lỗi ghi nội dung nonce-file `%s' vào luồng:"
+
+#: ../gio/gdbusaddress.c:939
+msgid "The given address is empty"
+msgstr "Địa chỉ rỗng"
+
+#: ../gio/gdbusaddress.c:1008
+msgid "Cannot spawn a message bus without a machine-id: "
+msgstr "Không thể tạo tuyến thông điệp mà không có machine-id: "
+
+#: ../gio/gdbusaddress.c:1045
+#, c-format
+#| msgid "Error reading nonce file `%s':"
+msgid "Error spawning command line `%s': "
+msgstr "Lỗi chạy dòng lệnh '%s':"
+
+#: ../gio/gdbusaddress.c:1056
+#, c-format
+msgid "Abnormal program termination spawning command line `%s': %s"
+msgstr "Chương trình kết thúc bất thường khi chạy lệnh `%s: %s"
+
+#: ../gio/gdbusaddress.c:1070
+#, c-format
+msgid "Command line `%s' exited with non-zero exit status %d: %s"
+msgstr "Lệnh `%s' thoát với mã khác không %d: %s"
+
+#: ../gio/gdbusaddress.c:1143
+#, c-format
+#| msgid ""
+#| "Cannot determine session bus address (TODO: run dbus-launch to find out)"
+msgid "Cannot determine session bus address (not implemented for this OS)"
+msgstr "Không thể xác định địa chỉ tuyến phiên làm việc (chưa được hỗ trợ trên hệ điều hành này)"
+
+#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"- unknown value `%s'"
msgstr ""
+"Không thể xác định địa chỉ tuyến từ biến môi trường DBUS_STARTER_BUS_TYPE - "
+"giá trị lạ `%s'"
-#: gio/gdbusaddress.c:1011 gio/gdbusconnection.c:5318
+#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
msgstr ""
+"Không thể xác định địa chỉ tuyến vì không có biến môi trường "
+"DBUS_STARTER_BUS_TYPE"
-#: gio/gdbusaddress.c:1021
-#, fuzzy, c-format
+#: ../gio/gdbusaddress.c:1261
+#, c-format
msgid "Unknown bus type %d"
-msgstr "Không rõ kiểu"
+msgstr "Không rõ kiểu tuyến %d"
-#: gio/gdbusauth.c:289
+#: ../gio/gdbusauth.c:288
msgid "Unexpected lack of content trying to read a line"
-msgstr ""
+msgstr "Nội dung bị thiếu bất thường khi đọc một dòng"
-#: gio/gdbusauth.c:333
+#: ../gio/gdbusauth.c:332
msgid "Unexpected lack of content trying to (safely) read a line"
-msgstr ""
+msgstr "Nội dung bị thiếu bất thường khi đọc (an toàn) một dòng"
-#: gio/gdbusauth.c:504
+#: ../gio/gdbusauth.c:503
#, c-format
msgid ""
"Exhausted all available authentication mechanisms (tried: %s) (available: %s)"
-msgstr ""
+msgstr "Cạn kiệt các phương thức xác thực hiện có (thử: %s) (còn: %s)"
-#: gio/gdbusauth.c:1146
+#: ../gio/gdbusauth.c:1150
msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer"
-msgstr ""
+msgstr "Đã huỷ thông qua GDBusAuthObserver::authorize-authenticated-peer"
-#: gio/gdbusauthmechanismsha1.c:264
-#, fuzzy, c-format
+#: ../gio/gdbusauthmechanismsha1.c:266
+#, c-format
msgid "Error statting directory `%s': %s"
-msgstr "Gặp lỗi khi mở thư mục '%s': %s"
+msgstr "Gặp lỗi khi stat() thư mục '%s': %s"
-#: gio/gdbusauthmechanismsha1.c:276
+#: ../gio/gdbusauthmechanismsha1.c:278
#, c-format
msgid ""
"Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o"
msgstr ""
+"Quyền của thư mục `%s' bị hư. Giá trị là 0%o trong khi lẽ ra phải là 0700."
-#: gio/gdbusauthmechanismsha1.c:295
-#, fuzzy, c-format
+#: ../gio/gdbusauthmechanismsha1.c:299
+#, c-format
msgid "Error creating directory `%s': %s"
-msgstr "Lỗi tạo thư mục: %s"
+msgstr "Lỗi tạo thư mục `%s': %s"
-#: gio/gdbusauthmechanismsha1.c:378
-#, fuzzy, c-format
+#: ../gio/gdbusauthmechanismsha1.c:382
+#, c-format
msgid "Error opening keyring `%s' for reading: "
-msgstr "Gặp lỗi khi mở tập tin '%s': %s"
+msgstr "Lỗi mở keyring `%s' để đọc: "
-#: gio/gdbusauthmechanismsha1.c:402 gio/gdbusauthmechanismsha1.c:711
+#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:715
#, c-format
msgid "Line %d of the keyring at `%s' with content `%s' is malformed"
-msgstr ""
+msgstr "Dòng %d của keyring tại `%s' với nội dung `%s' bị hư"
-#: gio/gdbusauthmechanismsha1.c:416 gio/gdbusauthmechanismsha1.c:725
+#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:729
#, c-format
msgid ""
"First token of line %d of the keyring at `%s' with content `%s' is malformed"
msgstr ""
+"Token đầu tiên của dòng %d của keyring tại `%s' với nội dung `%s' bị hư"
-#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:739
+#: ../gio/gdbusauthmechanismsha1.c:434 ../gio/gdbusauthmechanismsha1.c:743
#, c-format
msgid ""
"Second token of line %d of the keyring at `%s' with content `%s' is malformed"
-msgstr ""
+msgstr "Token thứ hai của dòng %d của keyring tại `%s' với nội dung `%s' bị hư"
-#: gio/gdbusauthmechanismsha1.c:454
+#: ../gio/gdbusauthmechanismsha1.c:458
#, c-format
msgid "Didn't find cookie with id %d in the keyring at `%s'"
-msgstr ""
+msgstr "Không tìm thấy cookie với id %d trong keyring ở `%s'"
-#: gio/gdbusauthmechanismsha1.c:531
-#, fuzzy, c-format
-msgid "Error deleting stale lock-file `%s': %s"
-msgstr "Gặp lỗi khi đọc tập tin '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:535
+#, c-format
+#| msgid "Error deleting stale lock-file `%s': %s"
+msgid "Error deleting stale lock file `%s': %s"
+msgstr "Lỗi khi xoá tập tin khoá không dùng nữa '%s': %s"
-#: gio/gdbusauthmechanismsha1.c:562
-#, fuzzy, c-format
-msgid "Error creating lock-file `%s': %s"
-msgstr "Gặp lỗi khi đọc tập tin '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:566
+#, c-format
+#| msgid "Error creating lock-file `%s': %s"
+msgid "Error creating lock file `%s': %s"
+msgstr "Gặp lỗi khi tạo tập tin khoá '%s': %s"
-#: gio/gdbusauthmechanismsha1.c:592
-#, fuzzy, c-format
-msgid "Error closing (unlinked) lock-file `%s': %s"
-msgstr "Gặp lỗi khi đóng tập tin: %s"
+#: ../gio/gdbusauthmechanismsha1.c:596
+#, c-format
+#| msgid "Error closing (unlinked) lock-file `%s': %s"
+msgid "Error closing (unlinked) lock file `%s': %s"
+msgstr "Gặp lỗi khi đóng (unlink) tập tin khoá `%s': %s"
-#: gio/gdbusauthmechanismsha1.c:602
-#, fuzzy, c-format
-msgid "Error unlinking lock-file `%s': %s"
-msgstr "Gặp lỗi khi mở tập tin '%s': %s"
+#: ../gio/gdbusauthmechanismsha1.c:606
+#, c-format
+#| msgid "Error unlinking lock-file `%s': %s"
+msgid "Error unlinking lock file `%s': %s"
+msgstr "Gặp lỗi xoá tập tin khoá '%s': %s"
-#: gio/gdbusauthmechanismsha1.c:678
-#, fuzzy, c-format
+#: ../gio/gdbusauthmechanismsha1.c:682
+#, c-format
msgid "Error opening keyring `%s' for writing: "
-msgstr "Gặp lỗi khi mở tập tin '%s': %s"
+msgstr "Gặp lỗi khi mở keyring '%s' để ghi: "
-#: gio/gdbusauthmechanismsha1.c:873
+#: ../gio/gdbusauthmechanismsha1.c:877
#, c-format
msgid "(Additionally, releasing the lock for `%s' also failed: %s) "
-msgstr ""
+msgstr "(Ngoài ra, giải phóng khoá cho `%s' cũng thất bại: %s)"
-#: gio/gdbusconnection.c:1001 gio/gdbusconnection.c:1311
-#, fuzzy
+#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374
+#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
-msgstr "Ổ cắm được thêm đã đóng"
+msgstr "Kết nối đã đóng"
-#: gio/gdbusconnection.c:1256
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
-msgstr ""
+msgstr "Quá hạn"
-#: gio/gdbusconnection.c:1757
+#: ../gio/gdbusconnection.c:2300
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
-msgstr ""
+msgstr "Phát hiện cờ không hỗ trợ khi tạo kết nối phía client"
-#: gio/gdbusconnection.c:3158
+#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070
+#, c-format
+#| msgid "No such interface `%s' on object at path %s"
+msgid ""
+"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
+msgstr "Không có giao diện `org.freedesktop.DBus.Properties' trên đối tượng tại đường dẫn %s"
+
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
-msgstr ""
+msgstr "Lỗi đặt thuộc tính `%s': nhận được `%s' trong khi lẽ ra phải là `%s'"
-#: gio/gdbusconnection.c:3250
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
-msgstr ""
+msgstr "Không có thuộc tính `%s'"
-#: gio/gdbusconnection.c:3262
-#, fuzzy, c-format
+#: ../gio/gdbusconnection.c:3931
+#, c-format
msgid "Property `%s' is not readable"
-msgstr "Kiểu %s không được đặt hạng"
+msgstr "Thuộc tính `%s' không đọc được"
-#: gio/gdbusconnection.c:3273
-#, fuzzy, c-format
+#: ../gio/gdbusconnection.c:3942
+#, c-format
msgid "Property `%s' is not writable"
-msgstr "Kiểu %s không được đặt hạng"
+msgstr "Thuộc tính `%s' không ghi được"
-#: gio/gdbusconnection.c:3341 gio/gdbusconnection.c:4768
+#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
-msgstr ""
+msgstr "Không có giao diện `%s'"
-#: gio/gdbusconnection.c:3504
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
-msgstr ""
+msgstr "Không có giao diện như vậy"
-#: gio/gdbusconnection.c:3748
-#, c-format
-msgid "No such method `%s'"
-msgstr ""
-
-#: gio/gdbusconnection.c:3779
-#, c-format
-msgid "Type of message, `%s', does not match expected type `%s'"
-msgstr ""
-
-#: gio/gdbusconnection.c:3993
-#, c-format
-msgid "An object is already exported for the interface %s at %s"
-msgstr ""
-
-#: gio/gdbusconnection.c:4173
-#, c-format
-msgid "Method `%s' returned type `%s', but expected `%s'"
-msgstr ""
-
-#: gio/gdbusconnection.c:4866
-#, c-format
-msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
-msgstr ""
-
-#: gio/gdbusconnection.c:4981
-#, fuzzy, c-format
-msgid "A subtree is already exported for %s"
-msgstr "Bên lắng nghe đã đóng"
-
-#: gio/gdbusconnection.c:5089
-#, c-format
-msgid "Unable to load /var/lib/dbus/machine-id: %s"
-msgstr ""
-
-#: gio/gdbusconnection.c:5259
+#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
-msgstr ""
+msgstr "Không có giao diện `%s' trên đối tượng tại đường dẫn %s"
-#: gio/gdbusmessage.c:723
-msgid "Wanted to read %"
-msgstr ""
-
-#: gio/gdbusmessage.c:744
+#: ../gio/gdbusconnection.c:4468
#, c-format
-msgid "Expected NUL byte after the string `%s' but found `%c' (%d)"
-msgstr ""
+msgid "No such method `%s'"
+msgstr "Không có phương thức `%s'"
-#: gio/gdbusmessage.c:927
+#: ../gio/gdbusconnection.c:4499
+#, c-format
+msgid "Type of message, `%s', does not match expected type `%s'"
+msgstr "Kiểu thông điệp, `%s', không khớp với kiểu đang cần `%s'"
+
+#: ../gio/gdbusconnection.c:4718
+#, c-format
+msgid "An object is already exported for the interface %s at %s"
+msgstr "Đối tượng đã được xuất cho giao diện %s tại %s rồi"
+
+#: ../gio/gdbusconnection.c:4912
+#, c-format
+msgid "Method `%s' returned type `%s', but expected `%s'"
+msgstr "Phương thức `%s' trả về kiểu `%s', nhưng đang muốn `%s'"
+
+#: ../gio/gdbusconnection.c:5713
+#, c-format
+msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
+msgstr "Phương thức `%s' trên giao diện `%s' với ký hiệu `%s' không tồn tại"
+
+#: ../gio/gdbusconnection.c:5831
+#, c-format
+msgid "A subtree is already exported for %s"
+msgstr "Cây con đã được xuất cho %s"
+
+#: ../gio/gdbusmessage.c:856
+msgid "type is INVALID"
+msgstr "kiểu KHÔNG HỢP LỆ"
+
+#: ../gio/gdbusmessage.c:867
+msgid "METHOD_CALL message: PATH or MEMBER header field is missing"
+msgstr "Thông điệp METHOD_CALL: thiếu trường PATH (đường dẫn) hoặc MEMBER (thành viên) trong header"
+
+#: ../gio/gdbusmessage.c:878
+msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing"
+msgstr "Thông điệp METHOD_RETURN: thiếu trường REPLY_SERIAL trong header"
+
+#: ../gio/gdbusmessage.c:890
+msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing"
+msgstr "Thông điệp ERROR: thiếu trường REPLY_SERIAL hoặc ERROR_NAME trong header"
+
+#: ../gio/gdbusmessage.c:903
+msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing"
+msgstr "Thông điệp SIGNAL: thiếu trường PATH, INTERFACE hoặc MEMBER trong header"
+
+#: ../gio/gdbusmessage.c:911
+msgid ""
+"SIGNAL message: The PATH header field is using the reserved value /org/"
+"freedesktop/DBus/Local"
+msgstr "Thông điệp SIGNAL: trường PATH dùng giá trị dành riêng /org/freedesktop/DBus/Local"
+
+#: ../gio/gdbusmessage.c:919
+msgid ""
+"SIGNAL message: The INTERFACE header field is using the reserved value org."
+"freedesktop.DBus.Local"
+msgstr "Thông điệp SIGNAL: trường INTERFACE dùng giá trị dành riêng org.freedesktop.DBus.Local"
+
+#: ../gio/gdbusmessage.c:994
+#, c-format
+#| msgid "Wanted to read %"
+msgid "Wanted to read %lu bytes but got EOF"
+msgstr "Muốn đọc %lu byte nhưng nhận được EOF"
+
+#: ../gio/gdbusmessage.c:1019
+#, 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 "Muốn chuỗi UTF-8 hợp lệ nhưng nhận được dãy byte không hợp lệ từ vị trí %d (độ dài chuỗi là %d). Chuỗi UTF-8 hợp lệ dài nhất là `%s'"
+
+#: ../gio/gdbusmessage.c:1032
+#, c-format
+#| msgid "Expected NUL byte after the string `%s' but found `%c' (%d)"
+msgid "Expected NUL byte after the string `%s' but found byte %d"
+msgstr "Chờ byte NUL sau chuỗi `%s' nhưng lại nhận byte %d"
+
+#: ../gio/gdbusmessage.c:1231
#, c-format
msgid "Parsed value `%s' is not a valid D-Bus object path"
msgstr ""
+"Giá trị đã phân tích `%s' không phải là đường dẫn đối tượng D-Bus hợp lệ"
-#: gio/gdbusmessage.c:953
-#, fuzzy, c-format
+#: ../gio/gdbusmessage.c:1257
+#, c-format
msgid "Parsed value `%s' is not a valid D-Bus signature"
-msgstr "'%s' không phải là tên hợp lệ"
+msgstr "Giá trị đã phân tích `%s' không phải là ký hiệu D-Bus hợp lệ"
-#: gio/gdbusmessage.c:979
-msgid "Encountered array of length %"
-msgstr ""
+#: ../gio/gdbusmessage.c:1311
+#, c-format
+msgid ""
+"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)."
+msgstr "Phát hiện mảng dài %u byte. Độ dài tối đa là 2<<26 byte (64 MiB)."
-#: gio/gdbusmessage.c:1116
+#: ../gio/gdbusmessage.c:1472
#, c-format
msgid "Parsed value `%s' for variant is not a valid D-Bus signature"
msgstr ""
+"Giá trị đã phân tích `%s' cho biến thể không phải là ký hiệu D-Bus hợp lệ"
-#: gio/gdbusmessage.c:1141
+#: ../gio/gdbusmessage.c:1499
#, c-format
+#| msgid ""
+#| "Error deserializing GVariant with type-string `%s' from the D-Bus wire "
+#| "format"
msgid ""
-"Error deserializing GVariant with type-string `%s' from the D-Bus wire format"
-msgstr ""
+"Error deserializing GVariant with type string `%s' from the D-Bus wire format"
+msgstr "Lỗi thôi tuần tự hoá GVariant với kiểu chuỗi `%s' từ định dạng D-Bus"
-#: gio/gdbusmessage.c:1286
+#: ../gio/gdbusmessage.c:1683
#, c-format
-msgid "Invalid endianness value. Expected 'l' or 'B' but found '%c' (%d)"
-msgstr ""
+#| msgid "Invalid endianness value. Expected 'l' or 'B' but found '%c' (%d)"
+msgid ""
+"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value "
+"0x%02x"
+msgstr "Giá trị endianness không hợp lệ. Chờ 0x6c ('l') hoặc 0x42 ('B') nhưng nhận được 0x%02x"
-#: gio/gdbusmessage.c:1300
+#: ../gio/gdbusmessage.c:1697
#, c-format
msgid "Invalid major protocol version. Expected 1 but found %d"
-msgstr ""
+msgstr "Phiên bản chính của phương thức không hợp lệ. Chờ 1 nhưng nhận %d"
-#: gio/gdbusmessage.c:1342
+#: ../gio/gdbusmessage.c:1754
#, c-format
msgid "Signature header with signature `%s' found but message body is empty"
-msgstr ""
+msgstr "Ký hiệu header `%s' nhưng phần thân trống rỗng"
-#: gio/gdbusmessage.c:1356
+#: ../gio/gdbusmessage.c:1768
#, c-format
msgid "Parsed value `%s' is not a valid D-Bus signature (for body)"
msgstr ""
+"Giá trị đã phân tích `%s' không phải là ký hiệu D-Bus hợp lệ (cho phần thân)"
-#: gio/gdbusmessage.c:1385
-msgid "No signature header in message but the message body is %"
-msgstr ""
-
-#: gio/gdbusmessage.c:1694
+#: ../gio/gdbusmessage.c:1798
#, c-format
-msgid ""
-"Error serializing GVariant with type-string `%s' to the D-Bus wire format"
-msgstr ""
+#| msgid "No signature header in message but the message body is %"
+msgid "No signature header in message but the message body is %u bytes"
+msgstr "Không có header ký hiệu trong thông điệp, nhưng phần thân thông điệp có %u byte"
-#: gio/gdbusmessage.c:1823
+#: ../gio/gdbusmessage.c:1806
+msgid "Cannot deserialize message: "
+msgstr "Không thể bỏ tuần tự hoá thông điệp: "
+
+#: ../gio/gdbusmessage.c:2131
+#, c-format
+#| msgid ""
+#| "Error serializing GVariant with type-string `%s' to the D-Bus wire format"
+msgid ""
+"Error serializing GVariant with type string `%s' to the D-Bus wire format"
+msgstr "Lỗi tuần tự hoá GVariant với kiểu chuỗi `%s' sang định dạng D-Bus"
+
+#: ../gio/gdbusmessage.c:2272
#, c-format
msgid "Message has %d fds but the header field indicates %d fds"
-msgstr ""
+msgstr "Thông điệp có %d fd nhưng header chỉ ra %d fd"
-#: gio/gdbusmessage.c:1869
+#: ../gio/gdbusmessage.c:2280
+msgid "Cannot serialize message: "
+msgstr "Không thể tuần tự hoá thông điệp: "
+
+#: ../gio/gdbusmessage.c:2324
#, c-format
msgid "Message body has signature `%s' but there is no signature header"
-msgstr ""
+msgstr "Phần thân thông điệp có ký hiệu `%s' nhưng không có header ký hiệu"
-#: gio/gdbusmessage.c:1879
+#: ../gio/gdbusmessage.c:2334
#, c-format
msgid ""
"Message body has type signature `%s' but signature in the header field is `%"
"s'"
-msgstr ""
+msgstr "Phần thân thông điệp có ký hiệu `%s' nhưng header lại có ký hiệu `%s'"
-#: gio/gdbusmessage.c:1895
+#: ../gio/gdbusmessage.c:2350
#, c-format
msgid "Message body is empty but signature in the header field is `(%s)'"
-msgstr ""
+msgstr "Thân thông điệp trống rỗng như ký hiệu trong header là `(%s)'"
-#: gio/gdbusmessage.c:2448
-#, fuzzy, c-format
+#: ../gio/gdbusmessage.c:2907
+#, c-format
msgid "Error return with body of type `%s'"
-msgstr "Gặp lỗi khi ghi vào tập tin: %s"
+msgstr "Lỗi tra ề thân của kiểu `%s'"
-#: gio/gdbusmessage.c:2456
+#: ../gio/gdbusmessage.c:2915
msgid "Error return with empty body"
-msgstr ""
+msgstr "Lỗi trả về thân trống rỗng"
-#: gio/gdbusmethodinvocation.c:357
+#: ../gio/gdbusmethodinvocation.c:375
#, c-format
msgid "Type of return value is incorrect, got `%s', expected `%s'"
-msgstr ""
+msgstr "Kiểu giá trị trả về không đúng, nhận `%s' nhưng muốn `%s'"
-#: gio/gdbusmethodinvocation.c:371 gio/gsocket.c:2859 gio/gsocket.c:2940
+#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3023
+#: ../gio/gsocket.c:3104
#, c-format
msgid "Error sending message: %s"
msgstr "Lỗi gửi thông điệp: %s"
-#: gio/gdbusprivate.c:775
-msgid "Error writing first 16 bytes of message to socket: "
-msgstr ""
+#: ../gio/gdbusprivate.c:1768
+#| msgid "Unable to load /var/lib/dbus/machine-id: %s"
+msgid "Unable to load /var/lib/dbus/machine-id: "
+msgstr "Không thể nạp /var/lib/dbus/machine-id: "
-#: gio/gdbusproxy.c:633
+#: ../gio/gdbusproxy.c:714
#, c-format
msgid ""
"Trying to set property %s of type %s but according to the expected interface "
"the type is %s"
msgstr ""
+"Thử đặt thuộc tính %s của kiểu %s nhưng theo giao diện muốn dùng thì kiểu là "
+"%s"
-#: gio/gdbusserver.c:669
-#, fuzzy
+#: ../gio/gdbusproxy.c:1234
+#, c-format
+msgid "Error calling StartServiceByName for %s: "
+msgstr "Lỗi gọi StartServiceByName cho %s: "
+
+#: ../gio/gdbusproxy.c:1255
+#, c-format
+msgid "Unexpected reply %d from StartServiceByName(\"%s\") method"
+msgstr "Trả lời %d không mong đợi từ hàm StartServiceByName(\"%s)"
+
+#: ../gio/gdbusproxy.c:2311 ../gio/gdbusproxy.c:2469
+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 "Không thể gọi hàm; uỷ nhiệm chỉ dành cho nhửng tên đã biết không có sở hữu và uỷ nhiệm được xây dựng với cờ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START"
+
+#: ../gio/gdbusserver.c:715
msgid "Abstract name space not supported"
-msgstr "Thùng rác không được hỗ trợ"
+msgstr "Không hỗ trợ vùng tên tổng quát"
-#: gio/gdbusserver.c:759
+#: ../gio/gdbusserver.c:805
msgid "Cannot specify nonce file when creating a server"
-msgstr ""
+msgstr "Không thể xác định nonce-file khi tạo máy chủ"
-#: gio/gdbusserver.c:836
-#, fuzzy, c-format
+#: ../gio/gdbusserver.c:882
+#, c-format
msgid "Error writing nonce file at `%s': %s"
-msgstr "Gặp lỗi khi ghi vào tập tin: %s"
+msgstr "Lỗi ghi nonce-file tại `%s': %s"
-#: gio/gdbusserver.c:988
-#, fuzzy, c-format
+#: ../gio/gdbusserver.c:1044
+#, c-format
msgid "The string `%s' is not a valid D-Bus GUID"
-msgstr "'%s' không phải là tên hợp lệ"
+msgstr "Chuỗi '%s' không phải là D-BUS GUID hợp lệ"
-#: gio/gdbusserver.c:1028
+#: ../gio/gdbusserver.c:1084
#, c-format
msgid "Cannot listen on unsupported transport `%s'"
-msgstr ""
+msgstr "Không thể listen trên phương thức vận chuyển không hỗ trợ `%s'"
-#: gio/gdbus-tool.c:87 gio/gsettings-tool.c:38
+#: ../gio/gdbus-tool.c:87
msgid "COMMAND"
-msgstr ""
+msgstr "LỆNH"
-#: gio/gdbus-tool.c:92
+#: ../gio/gdbus-tool.c:92
#, c-format
msgid ""
"Commands:\n"
@@ -1634,232 +2014,244 @@
"\n"
"Use \"%s COMMAND --help\" to get help on each command.\n"
msgstr ""
+"Lệnh:\n"
+" help Hiện những thông tin này\n"
+" introspect Xem xét đối tượng từ xa\n"
+" monitor Theo dõi đối tượng từ xa\n"
+" call Gọi hàm trên đối tượng từ xa\n"
+"\n"
+"Dùng \"%s LỆNH --help\" để có trợ giúp của từng lệnh.\n"
-#: gio/gdbus-tool.c:160 gio/gdbus-tool.c:216 gio/gdbus-tool.c:288
-#: gio/gdbus-tool.c:312 gio/gdbus-tool.c:814 gio/gdbus-tool.c:1322
-#, fuzzy, c-format
+#: ../gio/gdbus-tool.c:160 ../gio/gdbus-tool.c:216 ../gio/gdbus-tool.c:288
+#: ../gio/gdbus-tool.c:312 ../gio/gdbus-tool.c:814 ../gio/gdbus-tool.c:1324
+#, c-format
msgid "Error: %s\n"
-msgstr "Lỗi trên dòng %d: %s"
+msgstr "Lỗi: %s\n"
-#: gio/gdbus-tool.c:171 gio/gdbus-tool.c:229 gio/gdbus-tool.c:1332
-#, fuzzy, c-format
+#: ../gio/gdbus-tool.c:171 ../gio/gdbus-tool.c:229 ../gio/gdbus-tool.c:1340
+#, c-format
msgid "Error parsing introspection XML: %s\n"
-msgstr "Gặp lỗi khi phân tách tùy chọn %s"
+msgstr "Lỗi phân tích introspection XML: %s\n"
-#: gio/gdbus-tool.c:346
+#: ../gio/gdbus-tool.c:346
msgid "Connect to the system bus"
-msgstr ""
+msgstr "Không thể kết nối vào tuyến hệ thống"
-#: gio/gdbus-tool.c:347
+#: ../gio/gdbus-tool.c:347
msgid "Connect to the session bus"
-msgstr ""
+msgstr "Không thể kết nối vào tuyến phiên làm việc"
-#: gio/gdbus-tool.c:348
-#, fuzzy
+#: ../gio/gdbus-tool.c:348
msgid "Connect to given D-Bus address"
-msgstr "Kết nối đang hình thành"
+msgstr "Kết nối đến địa chỉ D-Bus đã cho"
-#: gio/gdbus-tool.c:358
-#, fuzzy
+#: ../gio/gdbus-tool.c:358
msgid "Connection Endpoint Options:"
-msgstr "Kết nối đang hình thành"
+msgstr "Tuỳ chọn đầu kết nối:"
-#: gio/gdbus-tool.c:359
+#: ../gio/gdbus-tool.c:359
msgid "Options specifying the connection endpoint"
-msgstr ""
+msgstr "Tuỳ chọn xác định đầu nối"
-#: gio/gdbus-tool.c:379
+#: ../gio/gdbus-tool.c:379
#, c-format
msgid "No connection endpoint specified"
-msgstr ""
+msgstr "Chưa xác định đầu nối"
-#: gio/gdbus-tool.c:389
+#: ../gio/gdbus-tool.c:389
#, c-format
msgid "Multiple connection endpoints specified"
-msgstr ""
+msgstr "Xác định nhiều đầu nối"
-#: gio/gdbus-tool.c:459
+#: ../gio/gdbus-tool.c:459
#, c-format
msgid ""
"Warning: According to introspection data, interface `%s' does not exist\n"
-msgstr ""
+msgstr "Chú ý: theo dữ liệu introspection, giao diện `%s' không tồn tại\n"
-#: gio/gdbus-tool.c:468
+#: ../gio/gdbus-tool.c:468
#, c-format
msgid ""
"Warning: According to introspection data, method `%s' does not exist on "
"interface `%s'\n"
msgstr ""
+"Chú ý: theo dữ liệu introspection, phương thức `%s' không tồn tại trên giao "
+"diện `%s'\n"
-#: gio/gdbus-tool.c:530
+#: ../gio/gdbus-tool.c:530
msgid "Destination name to invoke method on"
-msgstr ""
+msgstr "Tên dích để gọi hàm"
-#: gio/gdbus-tool.c:531
+#: ../gio/gdbus-tool.c:531
msgid "Object path to invoke method on"
-msgstr ""
+msgstr "Đường dẫn đối tượng để gọi hàm"
-#: gio/gdbus-tool.c:532
+#: ../gio/gdbus-tool.c:532
msgid "Method and interface name"
-msgstr ""
+msgstr "Tên phương thức vào giao diện"
-#: gio/gdbus-tool.c:571
+#: ../gio/gdbus-tool.c:571
msgid "Invoke a method on a remote object."
-msgstr ""
+msgstr "Gọi hàm trên đối tượng từ xa."
-#: gio/gdbus-tool.c:626 gio/gdbus-tool.c:1243 gio/gdbus-tool.c:1495
-#, fuzzy, c-format
+#: ../gio/gdbus-tool.c:626 ../gio/gdbus-tool.c:1245 ../gio/gdbus-tool.c:1505
+#, c-format
msgid "Error connecting: %s\n"
-msgstr "Lỗi kết nối: %s"
+msgstr "Lỗi kết nối: %s\n"
-#: gio/gdbus-tool.c:646 gio/gdbus-tool.c:1262 gio/gdbus-tool.c:1514
+#: ../gio/gdbus-tool.c:646 ../gio/gdbus-tool.c:1264 ../gio/gdbus-tool.c:1524
#, c-format
msgid "Error: Destination is not specified\n"
-msgstr ""
+msgstr "Lỗi: chưa xác định đích\n"
-#: gio/gdbus-tool.c:667 gio/gdbus-tool.c:1281
+#: ../gio/gdbus-tool.c:667 ../gio/gdbus-tool.c:1283
#, c-format
msgid "Error: Object path is not specified\n"
-msgstr ""
+msgstr "Lỗi: chưa xác định đường dẫn đối tượng\n"
-#: gio/gdbus-tool.c:687 gio/gdbus-tool.c:1301 gio/gdbus-tool.c:1554
-#, fuzzy, c-format
+#: ../gio/gdbus-tool.c:687 ../gio/gdbus-tool.c:1303 ../gio/gdbus-tool.c:1564
+#, c-format
msgid "Error: %s is not a valid object path\n"
-msgstr "'%s' không phải là tên hợp lệ"
+msgstr "Lỗi: '%s' không phải là đường dẫn đối tượng hợp lệ\n"
-#: gio/gdbus-tool.c:702
+#: ../gio/gdbus-tool.c:702
#, c-format
msgid "Error: Method name is not specified\n"
-msgstr ""
+msgstr "Lỗi: chưa xác định tên phương thức\n"
-#: gio/gdbus-tool.c:713
+#: ../gio/gdbus-tool.c:713
#, c-format
msgid "Error: Method name `%s' is invalid\n"
-msgstr ""
+msgstr "Lỗi: tên phương thức `%s' không hợp lệ\n"
-#: gio/gdbus-tool.c:778
-#, fuzzy, c-format
+#: ../gio/gdbus-tool.c:778
+#, c-format
msgid "Error parsing parameter %d of type `%s': %s\n"
-msgstr "Gặp lỗi khi mở thư mục '%s': %s"
+msgstr "Lỗi phân tích tham số %d kiểu `%s': %s\n"
-#: gio/gdbus-tool.c:786
-#, fuzzy, c-format
+#: ../gio/gdbus-tool.c:786
+#, c-format
msgid "Error parsing parameter %d: %s\n"
-msgstr "Gặp lỗi khi phân tách tùy chọn %s"
+msgstr "Lỗi phân tích tham số %d: %s\n"
-#: gio/gdbus-tool.c:1161
+#: ../gio/gdbus-tool.c:1162
msgid "Destination name to introspect"
-msgstr ""
+msgstr "Tên đích cần xem xét"
-#: gio/gdbus-tool.c:1162
+#: ../gio/gdbus-tool.c:1163
msgid "Object path to introspect"
-msgstr ""
+msgstr "Đường dẫn đối tượng cần xem xét"
-#: gio/gdbus-tool.c:1195
+#: ../gio/gdbus-tool.c:1164
+msgid "Print XML"
+msgstr "In XML"
+
+#: ../gio/gdbus-tool.c:1197
msgid "Introspect a remote object."
-msgstr ""
+msgstr "Xem xét đối tượng từ xa."
-#: gio/gdbus-tool.c:1413
+#: ../gio/gdbus-tool.c:1423
msgid "Destination name to monitor"
-msgstr ""
+msgstr "Tên đích cần theo dõi"
-#: gio/gdbus-tool.c:1414
+#: ../gio/gdbus-tool.c:1424
msgid "Object path to monitor"
-msgstr ""
+msgstr "Đường dẫn đối tượng cần theo dõi"
-#: gio/gdbus-tool.c:1447
-#, fuzzy
+#: ../gio/gdbus-tool.c:1457
msgid "Monitor a remote object."
-msgstr "đối tượng bị hỏng"
+msgstr "Theo dõi đối tượng từ xa."
-#: gio/gdesktopappinfo.c:468 gio/gwin32appinfo.c:222
+#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "Không có tên"
-#: gio/gdesktopappinfo.c:742
+#: ../gio/gdesktopappinfo.c:755
msgid "Desktop file didn't specify Exec field"
msgstr "Tập tin Desktop không ghi rõ trường Exec (thực hiện)"
-#: gio/gdesktopappinfo.c:935
+#: ../gio/gdesktopappinfo.c:948
msgid "Unable to find terminal required for application"
msgstr "Không tìm thấy thiết bị cuối cần thiết cho ứng dụng"
-#: gio/gdesktopappinfo.c:1144
+#: ../gio/gdesktopappinfo.c:1157
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr "Không thể tạo thư mục cấu hình ứng dụng người dùng %s: %s"
-#: gio/gdesktopappinfo.c:1148
+#: ../gio/gdesktopappinfo.c:1161
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "Không thể tạo thư mục cấu hình MIME người dùng %s: %s"
-#: gio/gdesktopappinfo.c:1556
+#: ../gio/gdesktopappinfo.c:1569
#, c-format
msgid "Can't create user desktop file %s"
msgstr "Không thể tạo tập tin desktop %s"
-#: gio/gdesktopappinfo.c:1670
+#: ../gio/gdesktopappinfo.c:1683
#, c-format
msgid "Custom definition for %s"
msgstr "Lời định nghĩa riêng cho %s"
-#: gio/gdrive.c:364
+#: ../gio/gdrive.c:363
msgid "drive doesn't implement eject"
msgstr "ổ đĩa không thực hiện chức năng đẩy ra"
#. Translators: This is an error
#. * message for drive objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gdrive.c:444
+#: ../gio/gdrive.c:443
msgid "drive doesn't implement eject or eject_with_operation"
msgstr ""
"ổ đĩa không thực hiện chức năng đẩy ra (eject hoặc eject_with_operation)"
-#: gio/gdrive.c:521
+#: ../gio/gdrive.c:520
msgid "drive doesn't implement polling for media"
msgstr "ổ đĩa không thực hiện chức năng thăm dò có phương tiện không"
-#: gio/gdrive.c:726
+#: ../gio/gdrive.c:725
msgid "drive doesn't implement start"
msgstr "ổ đĩa không thực hiện chức năng chạy (start)"
-#: gio/gdrive.c:828
+#: ../gio/gdrive.c:827
msgid "drive doesn't implement stop"
msgstr "ổ đĩa không thực hiện chức năng dừng (stop)"
-#: gio/gemblem.c:325
+#: ../gio/gemblem.c:324
#, c-format
msgid "Can't handle version %d of GEmblem encoding"
msgstr "Không thể quản lý phiên bản %d của bảng mã GEmblem"
-#: gio/gemblem.c:335
+#: ../gio/gemblem.c:334
#, c-format
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "Bảng mã GEmblem chứa số các hiệu bài dạng sai (%d)"
-#: gio/gemblemedicon.c:296
+#: ../gio/gemblemedicon.c:313
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "Không thể quản lý phiên bản %d của bảng mã GEmblemedIcon"
-#: gio/gemblemedicon.c:306
+#: ../gio/gemblemedicon.c:323
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "Bảng mã GEmblemedIcon chứa số các hiệu bài dạng sai (%d)"
-#: gio/gemblemedicon.c:329
+#: ../gio/gemblemedicon.c:346
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "Mong đợi một GEmblem cho GEmblemedIcon"
-#: gio/gfile.c:871 gio/gfile.c:1101 gio/gfile.c:1236 gio/gfile.c:1472
-#: gio/gfile.c:1526 gio/gfile.c:1583 gio/gfile.c:1666 gio/gfile.c:1721
-#: gio/gfile.c:1781 gio/gfile.c:1835 gio/gfile.c:3304 gio/gfile.c:3358
-#: gio/gfile.c:3490 gio/gfile.c:3530 gio/gfile.c:3857 gio/gfile.c:4259
-#: gio/gfile.c:4345 gio/gfile.c:4434 gio/gfile.c:4532 gio/gfile.c:4619
-#: gio/gfile.c:4712 gio/gfile.c:5042 gio/gfile.c:5322 gio/gfile.c:5391
-#: gio/gfile.c:6982 gio/gfile.c:7072 gio/gfile.c:7158
-#: gio/win32/gwinhttpfile.c:441
+#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121
+#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "Thao tác không được hỗ trợ"
@@ -1871,137 +2263,137 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: gio/gfile.c:1357 gio/glocalfile.c:1060 gio/glocalfile.c:1071
-#: gio/glocalfile.c:1084
+#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
+#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr "Bộ lắp chứa không tồn tại"
-#: gio/gfile.c:2409 gio/glocalfile.c:2259
+#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr "Không thể sao chép đè lên thư mục"
-#: gio/gfile.c:2469
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "Không thể sao chép thư mục đè lên thư mục"
-#: gio/gfile.c:2477 gio/glocalfile.c:2268
+#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "Tập tin đích đã có"
-#: gio/gfile.c:2495
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "Không thể sao chép đệ quy thư mục"
-#: gio/gfile.c:2755
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "Chức năng nối bện không được hỗ trợ"
-#: gio/gfile.c:2759
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "Gặp lỗi khi nối bện tập tin: %s"
-#: gio/gfile.c:2906
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "Không thể sao chép tập tin đặc biệt"
-#: gio/gfile.c:3480
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "Đưa ra giá trị liên kết tượng trưng không hợp lệ"
-#: gio/gfile.c:3573
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "Thùng rác không được hỗ trợ"
-#: gio/gfile.c:3622
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "Tên tập tin không thể chứa '%c'"
-#: gio/gfile.c:6039 gio/gvolume.c:331
+#: ../gio/gfile.c:6004 ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "hàm volume (khối tin) không thực hiện chức năng mount (lắp)"
-#: gio/gfile.c:6150
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "Không có ứng dụng đăng ký xử lý tập tin này"
-#: gio/gfileenumerator.c:206
+#: ../gio/gfileenumerator.c:205
msgid "Enumerator is closed"
msgstr "Bộ đếm bị đóng"
-#: gio/gfileenumerator.c:213 gio/gfileenumerator.c:272
-#: gio/gfileenumerator.c:372 gio/gfileenumerator.c:481
+#: ../gio/gfileenumerator.c:212 ../gio/gfileenumerator.c:271
+#: ../gio/gfileenumerator.c:371 ../gio/gfileenumerator.c:480
msgid "File enumerator has outstanding operation"
msgstr "Bộ đếm tập tin có thao tác còn chạy"
-#: gio/gfileenumerator.c:362 gio/gfileenumerator.c:471
+#: ../gio/gfileenumerator.c:361 ../gio/gfileenumerator.c:470
msgid "File enumerator is already closed"
msgstr "Bộ đếm tập tin đã bị đóng"
-#: gio/gfileicon.c:237
+#: ../gio/gfileicon.c:236
#, c-format
msgid "Can't handle version %d of GFileIcon encoding"
msgstr "Không thể quản lý phiên bản %d của bảng mã GFileIcon"
-#: gio/gfileicon.c:247
+#: ../gio/gfileicon.c:246
msgid "Malformed input data for GFileIcon"
msgstr "Dữ liệu nhập dạng sai cho GFileIcon"
-#: gio/gfileinputstream.c:155 gio/gfileinputstream.c:422
-#: gio/gfileiostream.c:171 gio/gfileoutputstream.c:170
-#: gio/gfileoutputstream.c:525
+#: ../gio/gfileinputstream.c:154 ../gio/gfileinputstream.c:420
+#: ../gio/gfileiostream.c:170 ../gio/gfileoutputstream.c:169
+#: ../gio/gfileoutputstream.c:523
msgid "Stream doesn't support query_info"
msgstr "Luồng không hỗ trợ hàm 'query_info'"
-#: gio/gfileinputstream.c:337 gio/gfileiostream.c:389
-#: gio/gfileoutputstream.c:383
+#: ../gio/gfileinputstream.c:335 ../gio/gfileiostream.c:387
+#: ../gio/gfileoutputstream.c:381
msgid "Seek not supported on stream"
msgstr "Chức năng seek (tìm nơi) không được hỗ trợ trên luồng"
-#: gio/gfileinputstream.c:381
+#: ../gio/gfileinputstream.c:379
msgid "Truncate not allowed on input stream"
msgstr "Không cho phép cắt ngắn luồng nhập vào"
-#: gio/gfileiostream.c:465 gio/gfileoutputstream.c:459
+#: ../gio/gfileiostream.c:463 ../gio/gfileoutputstream.c:457
msgid "Truncate not supported on stream"
msgstr "Không cho phép cắt ngắn luồng"
-#: gio/gicon.c:286
+#: ../gio/gicon.c:287
#, c-format
msgid "Wrong number of tokens (%d)"
msgstr "Số các hiệu bài không đúng (%d)"
-#: gio/gicon.c:306
+#: ../gio/gicon.c:307
#, c-format
msgid "No type for class name %s"
msgstr "Không có kiểu cho tên hạng %s"
-#: gio/gicon.c:316
+#: ../gio/gicon.c:317
#, c-format
msgid "Type %s does not implement the GIcon interface"
msgstr "Kiểu %s không thực hiện giao diện GIcon"
-#: gio/gicon.c:327
+#: ../gio/gicon.c:328
#, c-format
msgid "Type %s is not classed"
msgstr "Kiểu %s không được đặt hạng"
-#: gio/gicon.c:341
+#: ../gio/gicon.c:342
#, c-format
msgid "Malformed version number: %s"
msgstr "Số thứ tự phiên bản dạng sai: %s"
-#: gio/gicon.c:355
+#: ../gio/gicon.c:356
#, c-format
msgid "Type %s does not implement from_tokens() on the GIcon interface"
msgstr "Kiểu %s không thực hiện 'from_tokens()' trên giao diện GIcon"
-#: gio/gicon.c:431
+#: ../gio/gicon.c:432
msgid "Can't handle the supplied version the icon encoding"
msgstr "Không thể quản lý phiên bản đã cung cấp của bảng mã biểu tượng"
-#: gio/ginputstream.c:195
+#: ../gio/ginputstream.c:194
msgid "Input stream doesn't implement read"
msgstr "Luồng nhập vào không thực hiện chức năng đọc"
@@ -2011,356 +2403,625 @@
#. 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:902 gio/giostream.c:315 gio/goutputstream.c:1206
+#: ../gio/ginputstream.c:898 ../gio/giostream.c:316
+#: ../gio/goutputstream.c:1207
msgid "Stream has outstanding operation"
msgstr "Luồng có thao tác còn chạy"
-#: gio/ginetsocketaddress.c:182 gio/ginetsocketaddress.c:199
-#: gio/gunixsocketaddress.c:222
+#: ../gio/ginetsocketaddress.c:181 ../gio/ginetsocketaddress.c:198
+#: ../gio/gunixsocketaddress.c:221
msgid "Not enough space for socket address"
msgstr "Không đủ không gian cho địa chỉ ổ cắm"
-#: gio/ginetsocketaddress.c:212
+#: ../gio/ginetsocketaddress.c:211
msgid "Unsupported socket address"
msgstr "Địa chỉ ổ cắm không hỗ trợ"
-#: gio/glocaldirectorymonitor.c:288
+#: ../gio/glib-compile-schemas.c:713
+#| msgid "Abstract name space not supported"
+msgid "empty names are not permitted"
+msgstr "không cho phép tên rỗng"
+
+#: ../gio/glib-compile-schemas.c:723
+#, c-format
+msgid "invalid name '%s': names must begin with a lowercase letter"
+msgstr "tên không hợp lệ '%s': tên phải bắt đầu bằng chữ thường"
+
+#: ../gio/glib-compile-schemas.c:735
+#, c-format
+msgid ""
+"invalid name '%s': invalid character '%c'; only lowercase letters, numbers "
+"and dash ('-') are permitted."
+msgstr "tên không hợp lệ '%s': ký tự không hợp lệ '%c'; chỉ được dùng chữ thường, số hoặc dấu gạch ngang ('-')."
+
+#: ../gio/glib-compile-schemas.c:744
+#, c-format
+msgid "invalid name '%s': two successive dashes ('--') are not permitted."
+msgstr "tên không hợp lệ '%s': không được dùng hai gạch ngang liên tiếp ('--')."
+
+#: ../gio/glib-compile-schemas.c:753
+#, c-format
+msgid "invalid name '%s': the last character may not be a dash ('-')."
+msgstr "tên không hợp lệ '%s': ký tự cuối không thể là gạch ngang ('-')."
+
+#: ../gio/glib-compile-schemas.c:761
+#, c-format
+msgid "invalid name '%s': maximum length is 32"
+msgstr "tên không hợp lệ '%s': độ dài tối đa là 32"
+
+#: ../gio/glib-compile-schemas.c:830
+#, c-format
+msgid "<child name='%s'> already specified"
+msgstr "<child name='%s'> đã được xác định rồi"
+
+#: ../gio/glib-compile-schemas.c:856
+msgid "can not add keys to a 'list-of' schema"
+msgstr "không thể thêm khoá vào schema 'list-of'"
+
+#: ../gio/glib-compile-schemas.c:867
+#, c-format
+msgid "<key name='%s'> already specified"
+msgstr "<key name='%s'> đã được xác định rồi"
+
+#: ../gio/glib-compile-schemas.c:885
+#, c-format
+msgid ""
+"<key name='%s'> shadows <key name='%s'> in <schema id='%s'>; use <override> "
+"to modify value"
+msgstr "<key name='%s'> che <key name='%s'> trong <schema id='%s'>; dùng <override> để thay đổi giá trị"
+
+#: ../gio/glib-compile-schemas.c:896
+#, c-format
+msgid ""
+"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute "
+"to <key>"
+msgstr "thuộc tính của <key> chỉ có thể là duy nhất một trong 'type', 'enum' hoặc 'flags'"
+
+#: ../gio/glib-compile-schemas.c:915
+#, c-format
+msgid "<%s id='%s'> not (yet) defined."
+msgstr "<%s id='%s'> chưa định nghĩa."
+
+#: ../gio/glib-compile-schemas.c:930
+#, c-format
+#| msgid "Invalid attribute type (string expected)"
+msgid "invalid GVariant type string '%s'"
+msgstr "kiểu chuỗi GVariant không hợp lệ '%s'"
+
+#: ../gio/glib-compile-schemas.c:960
+msgid "<override> given but schema isn't extending anything"
+msgstr "<override> được ghi nhưng schema không có gì để mở rộng"
+
+#: ../gio/glib-compile-schemas.c:973
+#, c-format
+msgid "no <key name='%s'> to override"
+msgstr "không có <key name='%s'> để ghi đè"
+
+#: ../gio/glib-compile-schemas.c:981
+#, c-format
+msgid "<override name='%s'> already specified"
+msgstr "<override name='%s'> đã được xác định rồi"
+
+#: ../gio/glib-compile-schemas.c:1052
+#, c-format
+msgid "<schema id='%s'> already specified"
+msgstr "<schema id='%s'> đã được xác định rồi"
+
+#: ../gio/glib-compile-schemas.c:1064
+#, c-format
+msgid "<schema id='%s'> extends not yet existing schema '%s'"
+msgstr "<schema id='%s'> mở rộng schema chưa tồn tại '%s'"
+
+#: ../gio/glib-compile-schemas.c:1080
+#, c-format
+msgid "<schema id='%s'> is list of not yet existing schema '%s'"
+msgstr "<schema id='%s'> là danh sách của schema chưa tồn tại '%s'"
+
+#: ../gio/glib-compile-schemas.c:1088
+#, c-format
+msgid "Can not be a list of a schema with a path"
+msgstr "Không thể là danh sách của schema hoặc đường dẫn"
+
+#: ../gio/glib-compile-schemas.c:1098
+#, c-format
+msgid "Can not extend a schema with a path"
+msgstr "Không thể mở rộng schema với một đường dẫn"
+
+#: ../gio/glib-compile-schemas.c:1108
+#, c-format
+msgid ""
+"<schema id='%s'> is a list, extending <schema id='%s'> which is not a list"
+msgstr "<schema id='%s'> là danh sách, mở rộng <schema id='%s'> không phải là một danh sách"
+
+#: ../gio/glib-compile-schemas.c:1118
+#, 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'> mở rộng <schema id='%s' list-of='%s'> nhưng '%s' không mở rộng '%s'"
+
+#: ../gio/glib-compile-schemas.c:1135
+#, c-format
+msgid "a path, if given, must begin and end with a slash"
+msgstr "đường dẫn nếu có phải bắt đầu bằng dấu '/'"
+
+#: ../gio/glib-compile-schemas.c:1142
+#, c-format
+msgid "the path of a list must end with ':/'"
+msgstr "đường dẫn danh sách phải bắt đầu bằng ':/'"
+
+#: ../gio/glib-compile-schemas.c:1168
+#, c-format
+msgid "<%s id='%s'> already specified"
+msgstr "<%s id='%s'> đã được xác định rồi"
+
+#: ../gio/glib-compile-schemas.c:1387
+#, c-format
+msgid "Element <%s> not allowed inside <%s>"
+msgstr "Không cho phép phần tử <%s> bên trong <%s>"
+
+#: ../gio/glib-compile-schemas.c:1391
+#, c-format
+msgid "Element <%s> not allowed at toplevel"
+msgstr "Không cho phép phần tử <%s> ở cấp cao nhất"
+
+#: ../gio/glib-compile-schemas.c:1485
+#, c-format
+msgid "text may not appear inside <%s>"
+msgstr "văn bản không thể xuất hiện bên trong <%s>"
+
+#. Translators: Do not translate "--strict".
+#: ../gio/glib-compile-schemas.c:1654 ../gio/glib-compile-schemas.c:1725
+#: ../gio/glib-compile-schemas.c:1801
+#, c-format
+msgid "--strict was specified; exiting.\n"
+msgstr "--strict được dùng; thoát.\n"
+
+#: ../gio/glib-compile-schemas.c:1662
+#, c-format
+msgid "This entire file has been ignored.\n"
+msgstr "Toàn bộ tập tin này bị bỏ qua.\n"
+
+#: ../gio/glib-compile-schemas.c:1721
+#, c-format
+msgid "Ignoring this file.\n"
+msgstr "Bỏ qua tập tin này.\n"
+
+#: ../gio/glib-compile-schemas.c:1761
+#, c-format
+msgid "No such key `%s' in schema `%s' as specified in override file `%s'"
+msgstr "Không có khoá `%s' trong schema `%s' như được xác định trong tập tin ghi đè `%s'"
+
+#: ../gio/glib-compile-schemas.c:1767 ../gio/glib-compile-schemas.c:1825
+#: ../gio/glib-compile-schemas.c:1853
+#, c-format
+msgid "; ignoring override for this key.\n"
+msgstr "; bỏ qua ghi đè cho khoá này.\n"
+
+#: ../gio/glib-compile-schemas.c:1771 ../gio/glib-compile-schemas.c:1829
+#: ../gio/glib-compile-schemas.c:1857
+#, c-format
+msgid " and --strict was specified; exiting.\n"
+msgstr "và có dùng --strict; thoát.\n"
+
+#: ../gio/glib-compile-schemas.c:1787
+#, c-format
+msgid ""
+"error parsing key `%s' in schema `%s' as specified in override file `%s': %"
+"s. "
+msgstr "lỗi phân tích khoá `%s' trong schema `%s' như xác định trong tập tin ghi đè `%s': %s. "
+
+#: ../gio/glib-compile-schemas.c:1797
+#, c-format
+msgid "Ignoring override for this key.\n"
+msgstr "Bỏ qua ghi đè khoá này.\n"
+
+#: ../gio/glib-compile-schemas.c:1815
+#, c-format
+msgid ""
+"override for key `%s' in schema `%s' in override file `%s' is out of the "
+"range given in the schema"
+msgstr "ghi đè khoá `%s' trong schema `%s' trong tập tin ghi đè `%s' ngoài phạm vi schema"
+
+#: ../gio/glib-compile-schemas.c:1843
+#, c-format
+msgid ""
+"override for key `%s' in schema `%s' in override file `%s' is not in the "
+"list of valid choices"
+msgstr "ghi đè khoá `%s' trong schema `%s' trong tập tin ghi đè `%s' không nằm trong danh sách lựa chọn hợp lệ"
+
+#: ../gio/glib-compile-schemas.c:1897
+msgid "where to store the gschemas.compiled file"
+msgstr "nơi lưu tập tin gschemas.compiled"
+
+#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1910
+msgid "DIRECTORY"
+msgstr "THƯ MỤC"
+
+#: ../gio/glib-compile-schemas.c:1898
+msgid "Abort on any errors in schemas"
+msgstr "Buộc huỷ nếu gặp bất cứ lỗi gì trong schema"
+
+#: ../gio/glib-compile-schemas.c:1899
+msgid "Do not write the gschema.compiled file"
+msgstr "Không ghi tập tin gschemas.compiled"
+
+#: ../gio/glib-compile-schemas.c:1900
+msgid "This option will be removed soon."
+msgstr "Tuỳ chọn này sẽ sớm bị bỏ."
+
+#: ../gio/glib-compile-schemas.c:1901
+msgid "Do not enforce key name restrictions"
+msgstr "Không áp đặt ràng buộc tên khoá"
+
+#: ../gio/glib-compile-schemas.c:1913
+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 ""
+"Biên dịch tất cả tập tin GSettings schema thành schema cache.\n"
+"Tập tin schema cần có phần mở rộng .gschema.xml,\n"
+"và tập tin cache tên là gschemas.compiled."
+
+#: ../gio/glib-compile-schemas.c:1929
+#, c-format
+msgid "You should give exactly one directory name\n"
+msgstr "Bạn nên đưa chính xác một tên thư mục\n"
+
+#: ../gio/glib-compile-schemas.c:1968
+#, c-format
+#| msgid "No schema files found\n"
+msgid "No schema files found: "
+msgstr "Không tìm thấy tập tin schema: "
+
+#: ../gio/glib-compile-schemas.c:1971
+#, c-format
+msgid "doing nothing.\n"
+msgstr "không làm gì cả.\n"
+
+#: ../gio/glib-compile-schemas.c:1974
+#, c-format
+msgid "removed existing output file.\n"
+msgstr "đã xoá tập tin kết xuất hiện có.\n"
+
+#: ../gio/glocaldirectorymonitor.c:287
msgid "Unable to find default local directory monitor type"
msgstr "Không tìm thấy kiểu theo dõi thư mục cục bộ mặc định"
-#: gio/glocalfile.c:594 gio/win32/gwinhttpfile.c:424
+#: ../gio/glocalfile.c:593 ../gio/win32/gwinhttpfile.c:422
#, c-format
msgid "Invalid filename %s"
msgstr "Tên tập tin không hợp lệ: %s"
-#: gio/glocalfile.c:968
+#: ../gio/glocalfile.c:967
#, c-format
msgid "Error getting filesystem info: %s"
msgstr "Gặp lỗi khi lấy tập tin về hệ thống tập tin: %s"
-#: gio/glocalfile.c:1106
+#: ../gio/glocalfile.c:1105
msgid "Can't rename root directory"
msgstr "Không thể thay đổi tên của thư mục gốc"
-#: gio/glocalfile.c:1126 gio/glocalfile.c:1152
+#: ../gio/glocalfile.c:1125 ../gio/glocalfile.c:1151
#, c-format
msgid "Error renaming file: %s"
msgstr "Gặp lỗi khi thay đổi tên của tập tin: %s"
-#: gio/glocalfile.c:1135
+#: ../gio/glocalfile.c:1134
msgid "Can't rename file, filename already exist"
msgstr "Không thể thay đổi tên của tập tin, vì tên tập tin đã có"
-#: gio/glocalfile.c:1148 gio/glocalfile.c:2132 gio/glocalfile.c:2161
-#: gio/glocalfile.c:2321 gio/glocalfileoutputstream.c:570
-#: gio/glocalfileoutputstream.c:623 gio/glocalfileoutputstream.c:668
-#: gio/glocalfileoutputstream.c:1150
+#: ../gio/glocalfile.c:1147 ../gio/glocalfile.c:2131 ../gio/glocalfile.c:2160
+#: ../gio/glocalfile.c:2320 ../gio/glocalfileoutputstream.c:571
+#: ../gio/glocalfileoutputstream.c:624 ../gio/glocalfileoutputstream.c:669
+#: ../gio/glocalfileoutputstream.c:1151
msgid "Invalid filename"
msgstr "Tên tập tin không hợp lệ"
-#: gio/glocalfile.c:1309
+#: ../gio/glocalfile.c:1308
#, c-format
msgid "Error opening file: %s"
msgstr "Gặp lỗi khi mở tập tin: %s"
-#: gio/glocalfile.c:1319
+#: ../gio/glocalfile.c:1318
msgid "Can't open directory"
msgstr "Không thể mở thư mục"
-#: gio/glocalfile.c:1444
+#: ../gio/glocalfile.c:1443
#, c-format
msgid "Error removing file: %s"
msgstr "Gặp lỗi khi gỡ bỏ tập tin: %s"
-#: gio/glocalfile.c:1811
+#: ../gio/glocalfile.c:1810
#, c-format
msgid "Error trashing file: %s"
msgstr "Gặp lỗi khi chuyển tập tin vào sọt rác: %s"
-#: gio/glocalfile.c:1834
+#: ../gio/glocalfile.c:1833
#, c-format
msgid "Unable to create trash dir %s: %s"
msgstr "Không thể tạo thư mục sọt rác %s: %s"
-#: gio/glocalfile.c:1855
+#: ../gio/glocalfile.c:1854
msgid "Unable to find toplevel directory for trash"
msgstr "Không tìm thấy thư mục cấp đầu cho sọt rác"
-#: gio/glocalfile.c:1934 gio/glocalfile.c:1954
+#: ../gio/glocalfile.c:1933 ../gio/glocalfile.c:1953
msgid "Unable to find or create trash directory"
msgstr "Không tìm thấy hay không thể tạo thư mục sọt rác"
-#: gio/glocalfile.c:1988
+#: ../gio/glocalfile.c:1987
#, c-format
msgid "Unable to create trashing info file: %s"
msgstr "Không thể tạo tập tin thông tin sọt rác: %s"
-#: gio/glocalfile.c:2017 gio/glocalfile.c:2022 gio/glocalfile.c:2102
-#: gio/glocalfile.c:2109
+#: ../gio/glocalfile.c:2016 ../gio/glocalfile.c:2021 ../gio/glocalfile.c:2101
+#: ../gio/glocalfile.c:2108
#, c-format
msgid "Unable to trash file: %s"
msgstr "Không thể chuyển tập tin vào sọt rác: %s"
-#: gio/glocalfile.c:2136
+#: ../gio/glocalfile.c:2135
#, c-format
msgid "Error creating directory: %s"
msgstr "Lỗi tạo thư mục: %s"
-#: gio/glocalfile.c:2165
+#: ../gio/glocalfile.c:2164
#, c-format
msgid "Filesystem does not support symbolic links"
msgstr "Hệ tậo tin không hỗ trợ liên kết biểu tượng"
-#: gio/glocalfile.c:2169
+#: ../gio/glocalfile.c:2168
#, c-format
msgid "Error making symbolic link: %s"
msgstr "Gặp lỗi khi tạo liên kết tượng trưng: %s"
-#: gio/glocalfile.c:2231 gio/glocalfile.c:2325
+#: ../gio/glocalfile.c:2230 ../gio/glocalfile.c:2324
#, c-format
msgid "Error moving file: %s"
msgstr "Gặp lỗi khi di chuyển tập tin: %s"
-#: gio/glocalfile.c:2254
+#: ../gio/glocalfile.c:2253
msgid "Can't move directory over directory"
msgstr "Không thể di chuyển thư mục đè lên thư mục"
-#: gio/glocalfile.c:2281 gio/glocalfileoutputstream.c:948
-#: gio/glocalfileoutputstream.c:962 gio/glocalfileoutputstream.c:977
-#: gio/glocalfileoutputstream.c:993 gio/glocalfileoutputstream.c:1007
+#: ../gio/glocalfile.c:2280 ../gio/glocalfileoutputstream.c:949
+#: ../gio/glocalfileoutputstream.c:963 ../gio/glocalfileoutputstream.c:978
+#: ../gio/glocalfileoutputstream.c:994 ../gio/glocalfileoutputstream.c:1008
msgid "Backup file creation failed"
msgstr "Lỗi tạo tập tin sao lưu"
-#: gio/glocalfile.c:2300
+#: ../gio/glocalfile.c:2299
#, c-format
msgid "Error removing target file: %s"
msgstr "Gặp lỗi khi gỡ bỏ tập tin đích: %s"
-#: gio/glocalfile.c:2314
+#: ../gio/glocalfile.c:2313
msgid "Move between mounts not supported"
msgstr "Không hỗ trợ chức năng di chuyển giữa các bộ lắp"
-#: gio/glocalfileinfo.c:721
+#: ../gio/glocalfileinfo.c:720
msgid "Attribute value must be non-NULL"
msgstr "Giá trị thuộc tính phải có giá trị"
-#: gio/glocalfileinfo.c:728
+#: ../gio/glocalfileinfo.c:727
msgid "Invalid attribute type (string expected)"
msgstr "Kiểu thuộc tính không hợp lệ (mong đợi chuỗi)"
-#: gio/glocalfileinfo.c:735
+#: ../gio/glocalfileinfo.c:734
msgid "Invalid extended attribute name"
msgstr "Tên thuộc tính đã mở rộng không hợp lệ"
-#: gio/glocalfileinfo.c:775
+#: ../gio/glocalfileinfo.c:774
#, c-format
msgid "Error setting extended attribute '%s': %s"
msgstr "Gặp lỗi khi đặt thuộc tính đã mở rộng '%s': %s"
-#: gio/glocalfileinfo.c:1479 gio/glocalfileoutputstream.c:832
+#: ../gio/glocalfileinfo.c:1483 ../gio/glocalfileoutputstream.c:833
#, c-format
msgid "Error stating file '%s': %s"
msgstr "Gặp lỗi khi lấy trạng thái về tập tin '%s': %s"
-#: gio/glocalfileinfo.c:1552
+#: ../gio/glocalfileinfo.c:1567
msgid " (invalid encoding)"
msgstr " (bảng mã không hợp lệ)"
-#: gio/glocalfileinfo.c:1750
+#: ../gio/glocalfileinfo.c:1769
#, c-format
msgid "Error stating file descriptor: %s"
msgstr "Gặp lỗi khi lấy trạng thái về mô tả tập tin: %s"
-#: gio/glocalfileinfo.c:1795
+#: ../gio/glocalfileinfo.c:1814
msgid "Invalid attribute type (uint32 expected)"
msgstr "Kiểu thuộc tính không hợp lệ (mong đợi uint32)"
-#: gio/glocalfileinfo.c:1813
+#: ../gio/glocalfileinfo.c:1832
msgid "Invalid attribute type (uint64 expected)"
msgstr "Kiểu thuộc tính không hợp lệ (mong đợi uint64)"
-#: gio/glocalfileinfo.c:1832 gio/glocalfileinfo.c:1851
+#: ../gio/glocalfileinfo.c:1851 ../gio/glocalfileinfo.c:1870
msgid "Invalid attribute type (byte string expected)"
msgstr "Kiểu thuộc tính không hợp lệ (mong đợi chuỗi byte)"
-#: gio/glocalfileinfo.c:1886
+#: ../gio/glocalfileinfo.c:1905
msgid "Cannot set permissions on symlinks"
msgstr "Gặp lỗi khi đặt quyền hạn cho liên kết biểu tượng"
-#: gio/glocalfileinfo.c:1902
+#: ../gio/glocalfileinfo.c:1921
#, c-format
msgid "Error setting permissions: %s"
msgstr "Gặp lỗi khi đặt quyền hạn: %s"
-#: gio/glocalfileinfo.c:1953
+#: ../gio/glocalfileinfo.c:1972
#, c-format
msgid "Error setting owner: %s"
msgstr "Gặp lỗi khi đặt người sở hữu : %s"
-#: gio/glocalfileinfo.c:1976
+#: ../gio/glocalfileinfo.c:1995
msgid "symlink must be non-NULL"
msgstr "liên kết tượng trưng phải có giá trị"
-#: gio/glocalfileinfo.c:1986 gio/glocalfileinfo.c:2005
-#: gio/glocalfileinfo.c:2016
+#: ../gio/glocalfileinfo.c:2005 ../gio/glocalfileinfo.c:2024
+#: ../gio/glocalfileinfo.c:2035
#, c-format
msgid "Error setting symlink: %s"
msgstr "Gặp lỗi khi đặt liên kết tượng trưng: %s"
-#: gio/glocalfileinfo.c:1995
+#: ../gio/glocalfileinfo.c:2014
msgid "Error setting symlink: file is not a symlink"
msgstr ""
"Gặp lỗi khi đặt liên kết tượng trưng: tập tin không phải là liên kết tượng "
"trưng"
-#: gio/glocalfileinfo.c:2121
+#: ../gio/glocalfileinfo.c:2140
#, c-format
msgid "Error setting modification or access time: %s"
msgstr "Gặp lỗi khi đặt thời gian sửa đổi hoặc truy cập: %s"
-#: gio/glocalfileinfo.c:2144
+#: ../gio/glocalfileinfo.c:2163
msgid "SELinux context must be non-NULL"
msgstr "Ngữ cảnh SELinux phải khác NULL"
-#: gio/glocalfileinfo.c:2159
+#: ../gio/glocalfileinfo.c:2178
#, c-format
msgid "Error setting SELinux context: %s"
msgstr "Lỗi đặt ngữ cảnh SELinux: %s"
-#: gio/glocalfileinfo.c:2166
+#: ../gio/glocalfileinfo.c:2185
msgid "SELinux is not enabled on this system"
msgstr "SELinux chưa được bật trên hệ thống này"
-#: gio/glocalfileinfo.c:2258
+#: ../gio/glocalfileinfo.c:2277
#, c-format
msgid "Setting attribute %s not supported"
msgstr "Không hỗ trợ chức năng đặt thuộc tính %s"
-#: gio/glocalfileinputstream.c:184 gio/glocalfileoutputstream.c:721
+#: ../gio/glocalfileinputstream.c:185 ../gio/glocalfileoutputstream.c:722
#, c-format
msgid "Error reading from file: %s"
msgstr "Gặp lỗi khi đọc từ tập tin: %s"
-#: gio/glocalfileinputstream.c:215 gio/glocalfileinputstream.c:227
-#: gio/glocalfileinputstream.c:339 gio/glocalfileoutputstream.c:469
-#: gio/glocalfileoutputstream.c:1025
+#: ../gio/glocalfileinputstream.c:216 ../gio/glocalfileinputstream.c:228
+#: ../gio/glocalfileinputstream.c:340 ../gio/glocalfileoutputstream.c:470
+#: ../gio/glocalfileoutputstream.c:1026
#, c-format
msgid "Error seeking in file: %s"
msgstr "Gặp lỗi khi tìm nơi trong tập tin: %s"
-#: gio/glocalfileinputstream.c:260 gio/glocalfileoutputstream.c:255
-#: gio/glocalfileoutputstream.c:350
+#: ../gio/glocalfileinputstream.c:261 ../gio/glocalfileoutputstream.c:256
+#: ../gio/glocalfileoutputstream.c:351
#, c-format
msgid "Error closing file: %s"
msgstr "Gặp lỗi khi đóng tập tin: %s"
-#: gio/glocalfilemonitor.c:213
+#: ../gio/glocalfilemonitor.c:212
msgid "Unable to find default local file monitor type"
msgstr "Không tìm thấy kiểu theo dõi tập tin cục bộ mặc định"
-#: gio/glocalfileoutputstream.c:201 gio/glocalfileoutputstream.c:234
-#: gio/glocalfileoutputstream.c:742
+#: ../gio/glocalfileoutputstream.c:202 ../gio/glocalfileoutputstream.c:235
+#: ../gio/glocalfileoutputstream.c:743
#, c-format
msgid "Error writing to file: %s"
msgstr "Gặp lỗi khi ghi vào tập tin: %s"
-#: gio/glocalfileoutputstream.c:282
+#: ../gio/glocalfileoutputstream.c:283
#, c-format
msgid "Error removing old backup link: %s"
msgstr "Gặp lỗi khi gỡ bỏ liên kết sao lưu cũ : %s"
-#: gio/glocalfileoutputstream.c:296 gio/glocalfileoutputstream.c:309
+#: ../gio/glocalfileoutputstream.c:297 ../gio/glocalfileoutputstream.c:310
#, c-format
msgid "Error creating backup copy: %s"
msgstr "Gặp lỗi khi tạo bản sao lưu : %s"
-#: gio/glocalfileoutputstream.c:327
+#: ../gio/glocalfileoutputstream.c:328
#, c-format
msgid "Error renaming temporary file: %s"
msgstr "Gặp lỗi khi thay đổi tên của tập tin tạm thời: %s"
-#: gio/glocalfileoutputstream.c:515 gio/glocalfileoutputstream.c:1076
+#: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1077
#, c-format
msgid "Error truncating file: %s"
msgstr "Gặp lỗi khi cắt ngắn tập tin: %s"
-#: gio/glocalfileoutputstream.c:576 gio/glocalfileoutputstream.c:629
-#: gio/glocalfileoutputstream.c:674 gio/glocalfileoutputstream.c:814
-#: gio/glocalfileoutputstream.c:1057 gio/glocalfileoutputstream.c:1156
+#: ../gio/glocalfileoutputstream.c:577 ../gio/glocalfileoutputstream.c:630
+#: ../gio/glocalfileoutputstream.c:675 ../gio/glocalfileoutputstream.c:815
+#: ../gio/glocalfileoutputstream.c:1058 ../gio/glocalfileoutputstream.c:1157
#, c-format
msgid "Error opening file '%s': %s"
msgstr "Gặp lỗi khi mở tập tin '%s': %s"
-#: gio/glocalfileoutputstream.c:845
+#: ../gio/glocalfileoutputstream.c:846
msgid "Target file is a directory"
msgstr "Tập tin đích là một thư mục"
-#: gio/glocalfileoutputstream.c:850
+#: ../gio/glocalfileoutputstream.c:851
msgid "Target file is not a regular file"
msgstr "Tập tin đích không phải là một tập tin bình thường"
-#: gio/glocalfileoutputstream.c:862
+#: ../gio/glocalfileoutputstream.c:863
msgid "The file was externally modified"
msgstr "Tập tin đã bị sửa đổi bên ngoài"
-#: gio/glocalfileoutputstream.c:1041
+#: ../gio/glocalfileoutputstream.c:1042
#, c-format
msgid "Error removing old file: %s"
msgstr "Lỗi xoá tập tin cũ: %s"
-#: gio/gmemoryinputstream.c:487 gio/gmemoryoutputstream.c:718
+#: ../gio/gmemoryinputstream.c:486 ../gio/gmemoryoutputstream.c:746
msgid "Invalid GSeekType supplied"
msgstr "GSeekType được cung cấp không hợp lệ"
-#: gio/gmemoryinputstream.c:497
+#: ../gio/gmemoryinputstream.c:496
msgid "Invalid seek request"
msgstr "Yêu cầu tìm không hợp lệ"
-#: gio/gmemoryinputstream.c:521
+#: ../gio/gmemoryinputstream.c:520
msgid "Cannot truncate GMemoryInputStream"
msgstr "Không thể cắt GMemoryInputStream"
-#: gio/gmemoryoutputstream.c:468
+#: ../gio/gmemoryoutputstream.c:496
msgid "Memory output stream not resizable"
msgstr "Luồng ra bộ nhớ không thể thay đổi kích thước"
-#: gio/gmemoryoutputstream.c:484
+#: ../gio/gmemoryoutputstream.c:512
msgid "Failed to resize memory output stream"
msgstr "Lỗi thay đổi kích thước luồng ra bộ nhớ"
-#: gio/gmemoryoutputstream.c:572
+#: ../gio/gmemoryoutputstream.c:600
msgid ""
"Amount of memory required to process the write is larger than available "
"address space"
msgstr ""
"Việc ghi này yêu cầu một vùng nhớ lớn hơn sức chứa địa chỉ sẵn sàng hiện thời"
-#: gio/gmemoryoutputstream.c:728
+#: ../gio/gmemoryoutputstream.c:756
msgid "Requested seek before the beginning of the stream"
msgstr "Đã yêu cầu tìm nơi đằng trước đầu của luồng"
-#: gio/gmemoryoutputstream.c:737
+#: ../gio/gmemoryoutputstream.c:765
msgid "Requested seek beyond the end of the stream"
msgstr "Đã yêu cầu tìm nơi đằng sau cuối của luồng"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement unmount.
-#: gio/gmount.c:364
+#: ../gio/gmount.c:363
msgid "mount doesn't implement \"unmount\""
msgstr "hàm mount (lắp) không thực hiện hàm \"unmount\" (bỏ lắp)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement eject.
-#: gio/gmount.c:443
+#: ../gio/gmount.c:442
msgid "mount doesn't implement \"eject\""
msgstr "hàm mount (lắp) không thực hiện hàm \"eject\" (đầy ra)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of unmount or unmount_with_operation.
-#: gio/gmount.c:523
+#: ../gio/gmount.c:522
msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\""
msgstr ""
"hàm mount (lắp) không thực hiện hàm \"unmount\" hoặc \"unmount_with_operation"
@@ -2369,7 +3030,7 @@
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gmount.c:610
+#: ../gio/gmount.c:609
msgid "mount doesn't implement \"eject\" or \"eject_with_operation\""
msgstr ""
"hàm mount (lắp) không thực hiện hàm \"eject\" hoặc \"eject_with_operation"
@@ -2378,431 +3039,714 @@
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement remount.
-#: gio/gmount.c:699
+#: ../gio/gmount.c:698
msgid "mount doesn't implement \"remount\""
msgstr "hàm mount (lắp) không thực hiện hàm \"remount\" (lắp lại)"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:783
+#: ../gio/gmount.c:782
msgid "mount doesn't implement content type guessing"
msgstr "hàm mount (lắp) không thực hiện đoán nội dung"
#. Translators: This is an error
#. * message for mount objects that
#. * don't implement content type guessing.
-#: gio/gmount.c:872
+#: ../gio/gmount.c:871
msgid "mount doesn't implement synchronous content type guessing"
msgstr "hàm mount (lắp) không thực hiện đoán nội dung đồng bộ"
-#: gio/gnetworkaddress.c:295
+#: ../gio/gnetworkaddress.c:318
#, c-format
msgid "Hostname '%s' contains '[' but not ']'"
msgstr "Tên máy '%s' có '[' nhưng không có ']'"
-#: gio/goutputstream.c:207 gio/goutputstream.c:408
+#: ../gio/goutputstream.c:207 ../gio/goutputstream.c:408
msgid "Output stream doesn't implement write"
msgstr "Luồng xuất không thực hiện hàm write (ghi)"
-#: gio/goutputstream.c:369 gio/goutputstream.c:845
+#: ../gio/goutputstream.c:369 ../gio/goutputstream.c:849
msgid "Source stream is already closed"
msgstr "Luồng nguồn đã bị đóng"
-#: gio/gresolver.c:736
+#: ../gio/gresolver.c:737
#, c-format
msgid "Error resolving '%s': %s"
msgstr "Lỗi phân giải '%s': %s"
-#: gio/gresolver.c:786
+#: ../gio/gresolver.c:787
#, c-format
msgid "Error reverse-resolving '%s': %s"
msgstr "Lỗi phân giải ngược '%s': %s"
-#: gio/gresolver.c:821 gio/gresolver.c:899
+#: ../gio/gresolver.c:822 ../gio/gresolver.c:900
#, c-format
msgid "No service record for '%s'"
msgstr "Không có bản ghi dịch vụ (service record) cho '%s'"
-#: gio/gresolver.c:826 gio/gresolver.c:904
+#: ../gio/gresolver.c:827 ../gio/gresolver.c:905
#, c-format
msgid "Temporarily unable to resolve '%s'"
msgstr "Tạm thời không thể phân giải '%s'"
-#: gio/gresolver.c:831 gio/gresolver.c:909
+#: ../gio/gresolver.c:832 ../gio/gresolver.c:910
#, c-format
msgid "Error resolving '%s'"
msgstr "Lỗi phân giải '%s'"
-#: gio/gschema-compile.c:659
-msgid "where to store the gschemas.compiled file"
-msgstr ""
+#: ../gio/gsettings-tool.c:60
+#, c-format
+msgid "Schema '%s' is not relocatable (path must not be specified)\n"
+msgstr "Schema '%s' không thể tái định vị (không cần xác định đường dấn)\n"
-#: gio/gschema-compile.c:659 gio/gschema-compile.c:671
-msgid "DIRECTORY"
-msgstr ""
+#: ../gio/gsettings-tool.c:65 ../gio/gsettings-tool.c:82
+#, c-format
+#| msgid "No such interface `%s'"
+msgid "No such schema '%s'\n"
+msgstr "Không có schema '%s'\n"
-#: gio/gschema-compile.c:660
-msgid "Do not write the gschema.compiled file"
-msgstr ""
+#: ../gio/gsettings-tool.c:77
+#, c-format
+msgid "Schema '%s' is relocatable (path must be specified)\n"
+msgstr "Schema '%s' có thể tái định vị (cần xác định đường dẫn)\n"
-#: gio/gschema-compile.c:661
-#, fuzzy
-msgid "Do not give error for empty directory"
-msgstr "Không thể di chuyển thư mục đè lên thư mục"
+#: ../gio/gsettings-tool.c:92
+#, c-format
+msgid "Empty path given.\n"
+msgstr "Đường dẫn rỗng.\n"
-#: gio/gschema-compile.c:662
-msgid "Do not enforce key name restrictions"
-msgstr ""
+#: ../gio/gsettings-tool.c:98
+#, c-format
+msgid "Path must begin with a slash (/)\n"
+msgstr "Đường dẫn phải bắt đầu bằng dấu '/'\n"
-#: gio/gschema-compile.c:674
+#: ../gio/gsettings-tool.c:104
+#, c-format
+msgid "Path must end with a slash (/)\n"
+msgstr "Đường dẫn phải kết thúc bằng dấu '/'\n"
+
+#: ../gio/gsettings-tool.c:110
+#, c-format
+msgid "Path must not contain two adjacent slashes (//)\n"
+msgstr "Đường dẫn không được chứa hai dấu gạch chéo liên tiếp (//)\n"
+
+#: ../gio/gsettings-tool.c:131
+#, c-format
+#| msgid "No such property `%s'"
+msgid "No such key '%s'\n"
+msgstr "Không có khoá '%s'\n"
+
+#: ../gio/gsettings-tool.c:429
+#, c-format
+msgid "The provided value is outside of the valid range\n"
+msgstr "Giá trị cung cấp ngoài phạm vi hợp lệ\n"
+
+#: ../gio/gsettings-tool.c:458
+msgid "List the installed (non-relocatable) schemas"
+msgstr "Danh sách schema (không thể tái định vị) đã cài đặt"
+
+#: ../gio/gsettings-tool.c:464
+msgid "List the installed relocatable schemas"
+msgstr "Danh sách schema (có thể thể tái định vị) đã cài đặt"
+
+#: ../gio/gsettings-tool.c:470
+msgid "Lists the keys in SCHEMA"
+msgstr "Danh sách khoá trong SCHEMA"
+
+#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
+msgid "SCHEMA[:PATH]"
+msgstr "SCHEMA[:ĐƯỜNG DẪN]"
+
+#: ../gio/gsettings-tool.c:476
+msgid "Lists the children of SCHEMA"
+msgstr "Danh sách con của SCHEMA"
+
+#: ../gio/gsettings-tool.c:482
+msgid "List keys and values, recursively"
+msgstr "Danh sách khoá và giá trị, đệ quy"
+
+#: ../gio/gsettings-tool.c:488
+#| msgid "Get the value of KEY"
+msgid "Gets the value of KEY"
+msgstr "Lấy giá trị của KHOÁ"
+
+#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513
+#| msgid "SCHEMA KEY"
+msgid "SCHEMA[:PATH] KEY"
+msgstr "SCHEMA[:ĐƯỜNG DẪN] KHOÁ"
+
+#: ../gio/gsettings-tool.c:494
+msgid "Queries the range of valid values for KEY"
+msgstr "Truy vấn khoảng giá trị hợp lệ cho KHOÁ"
+
+#: ../gio/gsettings-tool.c:500
+#| msgid "Set the value of KEY"
+msgid "Sets the value of KEY to VALUE"
+msgstr "Đặt giá trị GIÁ TRỊ cho KHOÁ"
+
+#: ../gio/gsettings-tool.c:501
+#| msgid "SCHEMA KEY VALUE"
+msgid "SCHEMA[:PATH] KEY VALUE"
+msgstr "SCHEMA[:ĐƯỜNG DẪN] KHOÁ GIÁ-TRỊ"
+
+#: ../gio/gsettings-tool.c:506
+msgid "Resets KEY to its default value"
+msgstr "Phục hồi KHOÁ về giá trị mặc định"
+
+#: ../gio/gsettings-tool.c:512
+#| msgid "Find out whether KEY is writable"
+msgid "Checks if KEY is writable"
+msgstr "Tìm xem KHOÁ ghi được không"
+
+#: ../gio/gsettings-tool.c:518
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."
+"Monitors KEY for changes.\n"
+"If no KEY is specified, monitor all keys in SCHEMA.\n"
+"Use ^C to stop monitoring.\n"
msgstr ""
+"Theo dõi thay đổi của KHOÁ.\n"
+"Nếu không xác định KHOÁ, theo dõi mọi khoá trong SCHEMA.\n"
+"Dùng ^c để ngưng.\n"
-#: gio/gschema-compile.c:690
-#, c-format
-msgid "You should give exactly one directory name\n"
-msgstr ""
+#: ../gio/gsettings-tool.c:521
+#| msgid "SCHEMA KEY"
+msgid "SCHEMA[:PATH] [KEY]"
+msgstr "SCHEMA[:ĐƯỜNG DẪN] [KHOÁ]"
-#: gio/gschema-compile.c:729
+#: ../gio/gsettings-tool.c:525
#, c-format
-msgid "No schema files found\n"
-msgstr ""
-
-#: gio/gsettings-tool.c:41
-#, c-format
+#| msgid "Unknown command '%s'\n"
msgid ""
-"Commands:\n"
-" help Show this information\n"
-" get Get the value of a key\n"
-" set Set the value of a key\n"
-" monitor Monitor a key for changes\n"
-" writable Check if a key is writable\n"
+"Unknown command %s\n"
"\n"
-"Use '%s COMMAND --help' to get help for individual commands.\n"
-msgstr ""
+msgstr "Lệnh lạ '%s'\n\n"
-#: gio/gsettings-tool.c:102 gio/gsettings-tool.c:161 gio/gsettings-tool.c:252
-#: gio/gsettings-tool.c:325
-msgid "Specify the path for the schema"
-msgstr ""
-
-#: gio/gsettings-tool.c:102 gio/gsettings-tool.c:161 gio/gsettings-tool.c:252
-#: gio/gsettings-tool.c:325
-msgid "PATH"
-msgstr ""
-
-#: gio/gsettings-tool.c:110 gio/gsettings-tool.c:260 gio/gsettings-tool.c:333
-msgid "SCHEMA KEY"
-msgstr ""
-
-#: gio/gsettings-tool.c:112
-msgid "Get the value of KEY"
-msgstr ""
-
-#: gio/gsettings-tool.c:114 gio/gsettings-tool.c:264 gio/gsettings-tool.c:340
+#: ../gio/gsettings-tool.c:533
msgid ""
-"Arguments:\n"
-" SCHEMA The id of the schema\n"
-" KEY The name of the key\n"
+"Usage:\n"
+" gsettings COMMAND [ARGS...]\n"
+"\n"
+"Commands:\n"
+" help Show this information\n"
+" list-schemas List installed schemas\n"
+" list-relocatable-schemas List relocatable schemas\n"
+" list-keys List keys in a schema\n"
+" list-children List children of a schema\n"
+" list-recursively List keys and values, recursively\n"
+" range Queries the range of a key\n"
+" get Get the value of a key\n"
+" set Set the value of a key\n"
+" reset Reset the value of a key\n"
+" writable Check if a key is writable\n"
+" monitor Watch for changes\n"
+"\n"
+"Use 'gsettings help COMMAND' to get detailed help.\n"
+"\n"
msgstr ""
+"Cách dùng:\n"
+" gsettings LỆNH [ĐỐI SỐ...]\n"
+"\n"
+"Commands:\n"
+" help Hiện thông tin này\n"
+" list-schemas Liệt kê schema đã cài đặt\n"
+" list-relocatable-schemas Liệt kê schema có thể tái định vị\n"
+" list-keys Liệt kê khoá trong schema\n"
+" list-children Liệt kê khoá con trong schema\n"
+" list-recursively Liệt kê khoá và giá trị đệ quy\n"
+" range Truy vấn một vùng khoá\n"
+" get Lấy giá trị khoá\n"
+" set Đặt giá trị khoá\n"
+" reset Phục hồi giá trị khoá\n"
+" writable Kiểm tra khoá có ghi được không\n"
+" monitor Theo dõi thay đổi\n"
+"\n"
+"Dùng 'gsettings help LỆNH' để biết chi tiết.\n"
+"\n"
-#: gio/gsettings-tool.c:169
-msgid "SCHEMA KEY VALUE"
-msgstr ""
-
-#: gio/gsettings-tool.c:171
-msgid "Set the value of KEY"
-msgstr ""
-
-#: gio/gsettings-tool.c:173
+#: ../gio/gsettings-tool.c:554
+#, c-format
msgid ""
-"Arguments:\n"
-" SCHEMA The id of the schema\n"
-" KEY The name of the key\n"
-" VALUE The value to set key to, as a serialized GVariant\n"
+"Usage:\n"
+" gsettings %s %s\n"
+"\n"
+"%s\n"
+"\n"
msgstr ""
+"Cách dùng:\n"
+" gsettings %s %s\n"
+"\n"
+"%s\n"
+"\n"
-#: gio/gsettings-tool.c:212
-#, fuzzy, c-format
-msgid "Key %s is not writable\n"
-msgstr "Kiểu %s không được đặt hạng"
+#: ../gio/gsettings-tool.c:559
+msgid "Arguments:\n"
+msgstr "Đối số:\n"
-#: gio/gsettings-tool.c:262
-msgid "Find out whether KEY is writable"
-msgstr ""
-
-#: gio/gsettings-tool.c:336
+#: ../gio/gsettings-tool.c:563
+#| msgid ""
+#| "Arguments:\n"
+#| " SCHEMA The id of the schema\n"
+#| " KEY The name of the key\n"
msgid ""
-"Monitor KEY for changes and print the changed values.\n"
-"Monitoring will continue until the process is terminated."
+" SCHEMA The name of the schema\n"
+" PATH The path, for relocatable schemas\n"
msgstr ""
+" SCHEMA Tên schema\n"
+" PATH Đường dẫn, cho schema tái định vị\n"
-#: gio/gsettings-tool.c:399
-#, fuzzy, c-format
-msgid "Unknown command '%s'\n"
-msgstr "Không biết tùy chọn %s"
+#: ../gio/gsettings-tool.c:568
+msgid " KEY The (optional) key within the schema\n"
+msgstr " KEY Khoá trong schema (tuỳ chọn)\n"
-#: gio/gsocket.c:275
+#: ../gio/gsettings-tool.c:572
+msgid " KEY The key within the schema\n"
+msgstr " KEY Khoá trong schema\n"
+
+#: ../gio/gsettings-tool.c:576
+msgid " VALUE The value to set\n"
+msgstr " VALUE Giá trị cần đặt\n"
+
+#: ../gio/gsettings-tool.c:652
+#, c-format
+msgid "Empty schema name given"
+msgstr "Tên schema rỗng"
+
+#: ../gio/gsocket.c:277
msgid "Invalid socket, not initialized"
msgstr "Ổ cắm không hợp lệ, chưa được sơ khởi"
-#: gio/gsocket.c:282
+#: ../gio/gsocket.c:284
#, c-format
msgid "Invalid socket, initialization failed due to: %s"
msgstr "Ổ cắm không hợp lệ, khởi động thất bại vì: %s"
-#: gio/gsocket.c:290
+#: ../gio/gsocket.c:292
msgid "Socket is already closed"
msgstr "Ổ cắm đã được đóng"
-#: gio/gsocket.c:298 gio/gsocket.c:2609 gio/gsocket.c:2653
+#: ../gio/gsocket.c:300 ../gio/gsocket.c:2765 ../gio/gsocket.c:2809
msgid "Socket I/O timed out"
-msgstr ""
+msgstr "Hết giờ Socket I/O"
-#: gio/gsocket.c:420
+#: ../gio/gsocket.c:443
#, c-format
msgid "creating GSocket from fd: %s"
msgstr "tạo GSocket từ fd: %s"
-#: gio/gsocket.c:454 gio/gsocket.c:468 gio/gsocket.c:2020
+#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2135
#, c-format
msgid "Unable to create socket: %s"
msgstr "Không thể tạo ổ cắm: %s"
-#: gio/gsocket.c:454
+#: ../gio/gsocket.c:477
msgid "Unknown protocol was specified"
msgstr "Lỗi giao thức không xác định"
-#: gio/gsocket.c:1218
+#: ../gio/gsocket.c:1246
#, c-format
msgid "could not get local address: %s"
msgstr "không thể lấy địa chỉ cục bộ: %s"
-#: gio/gsocket.c:1251
+#: ../gio/gsocket.c:1289
#, c-format
msgid "could not get remote address: %s"
msgstr "không thể lấy địa chỉ ở xa: %s"
-#: gio/gsocket.c:1309
+#: ../gio/gsocket.c:1350
#, c-format
msgid "could not listen: %s"
msgstr "không thể lắng nghe: %s"
-#: gio/gsocket.c:1383
+#: ../gio/gsocket.c:1424
#, c-format
msgid "Error binding to address: %s"
msgstr "Lỗi liên kết địa chỉ: %s"
-#: gio/gsocket.c:1503
+#: ../gio/gsocket.c:1544
#, c-format
msgid "Error accepting connection: %s"
msgstr "Lỗi chấp nhận kết nối: %s"
-#: gio/gsocket.c:1616
+#: ../gio/gsocket.c:1661
msgid "Error connecting: "
msgstr "Lỗi kết nối: "
-#: gio/gsocket.c:1620
+#: ../gio/gsocket.c:1666
msgid "Connection in progress"
msgstr "Kết nối đang hình thành"
-#: gio/gsocket.c:1625
+#: ../gio/gsocket.c:1673
#, c-format
msgid "Error connecting: %s"
msgstr "Lỗi kết nối: %s"
-#: gio/gsocket.c:1668
+#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3528
#, c-format
msgid "Unable to get pending error: %s"
msgstr "Không thể lấy lỗi đang chờ: %s"
-#: gio/gsocket.c:1764
+#: ../gio/gsocket.c:1848
#, c-format
msgid "Error receiving data: %s"
msgstr "Lỗi nhận dữ liệu: %s"
-#: gio/gsocket.c:1907
+#: ../gio/gsocket.c:2022
#, c-format
msgid "Error sending data: %s"
msgstr "Lỗi gửi dữ liệu: %s"
-#: gio/gsocket.c:2099
+#: ../gio/gsocket.c:2214
#, c-format
msgid "Error closing socket: %s"
msgstr "Lỗi đóng ổ cắm: %s"
-#: gio/gsocket.c:2602
+#: ../gio/gsocket.c:2758
#, c-format
msgid "Waiting for socket condition: %s"
msgstr "Đang chờ ổ cắm: %s"
-#: gio/gsocket.c:2884
+#: ../gio/gsocket.c:3048
msgid "GSocketControlMessage not supported on windows"
msgstr "GSocketControlMessage không được hỗ trợ trên Windows"
-#: gio/gsocket.c:3143 gio/gsocket.c:3284
+#: ../gio/gsocket.c:3307 ../gio/gsocket.c:3448
#, c-format
msgid "Error receiving message: %s"
msgstr "Lỗi nhận thông điệp: %s"
-#: gio/gsocketclient.c:521 gio/gsocketclient.c:770
+#: ../gio/gsocket.c:3543
+#| msgid "GCredentials is not implemented on this OS"
+msgid "g_socket_get_credentials not implemented for this OS"
+msgstr "g_socket_get_credentials không được hỗ trợ trên hệ điều hành này"
+
+#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "Lỗi lạ khi kết nối"
-#: gio/gsocketlistener.c:192
+#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252
+msgid "Trying to proxy over non-TCP connection is not supported."
+msgstr "Không hỗ trợ uỷ nhiệm thông qua kết nối không phải TCP."
+
+#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277
+#, c-format
+#| msgid "Property `%s' is not readable"
+msgid "Proxy protocol '%s' is not supported."
+msgstr "Không hỗ trợ giao thức uỷ nhiệm '%s'."
+
+#: ../gio/gsocketlistener.c:191
msgid "Listener is already closed"
msgstr "Bên lắng nghe đã đóng"
-#: gio/gsocketlistener.c:233
+#: ../gio/gsocketlistener.c:232
msgid "Added socket is closed"
msgstr "Ổ cắm được thêm đã đóng"
-#: gio/gthemedicon.c:499
+#: ../gio/gsocks4aproxy.c:121
+#, c-format
+msgid "SOCKSv4 does not support IPv6 address '%s'"
+msgstr "SOCKSv4 không hỗ trợ địa chỉ IPv6 '%s'"
+
+#: ../gio/gsocks4aproxy.c:139
+#, c-format
+msgid "SOCKSv4 implementation limits username to %i characters"
+msgstr "Bản SOCKSv4 giới hạn tên người dùng trong %i ký tự"
+
+#: ../gio/gsocks4aproxy.c:157
+#, c-format
+msgid "SOCKSv4a implementation limits hostname to %i characters"
+msgstr "Bản SOCKSv4 giới hạn tên máy trong %i ký tự"
+
+#: ../gio/gsocks4aproxy.c:183
+msgid "The server is not a SOCKSv4 proxy server."
+msgstr "Máy chủ không phải là máy uỷ nhiệm SOCKSv4."
+
+#: ../gio/gsocks4aproxy.c:190
+msgid "Connection through SOCKSv4 server was rejected"
+msgstr "Kết nối qua máy chủ SOCKSv4 bị từ chối"
+
+#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:328
+#: ../gio/gsocks5proxy.c:338
+msgid "The server is not a SOCKSv5 proxy server."
+msgstr "Máy chủ không phải máy SOCKSv5."
+
+#: ../gio/gsocks5proxy.c:169
+msgid "The SOCKSv5 proxy requires authentication."
+msgstr "Máy uỷ nhiệm SOCKSv5 cần xác thực."
+
+#: ../gio/gsocks5proxy.c:179
+msgid ""
+"The SOCKSv5 proxy requires an authentication method that is not supported by "
+"GLib."
+msgstr "Máy uỷ nhiệm SOCKSv5 cần dùng phương thức xác thực không được hỗ trợ bởi GLib."
+
+#: ../gio/gsocks5proxy.c:208
+#, c-format
+msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)."
+msgstr "Tên người dùng hoặc mật khẩu quá dài so với đặc tả giao thức SOCKSv5 (tối đa %i)."
+
+#: ../gio/gsocks5proxy.c:239
+msgid "SOCKSv5 authentication failed due to wrong username or password."
+msgstr "Xác thực SOCKSv5 thất bại vì sai tên người dùng hoặc mật khẩu."
+
+#: ../gio/gsocks5proxy.c:289
+#, c-format
+msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)"
+msgstr "Tên máy '%s' quá dài đối với đặc tả giao thức SOCKSv5 (tối đa %i byte)"
+
+#: ../gio/gsocks5proxy.c:352
+msgid "The SOCKSv5 proxy server uses unkown address type."
+msgstr "Máy chủ uỷ nhiệm SOCKSv5 dùng kiểu địa chỉ lại."
+
+#: ../gio/gsocks5proxy.c:359
+msgid "Internal SOCKSv5 proxy server error."
+msgstr "Lỗi nội bộ máy chủ SOCKSv5."
+
+#: ../gio/gsocks5proxy.c:365
+msgid "SOCKSv5 connection not allowed by ruleset."
+msgstr "Không cho phép kết nối SOCKSv5 dựa theo tập quy tắc."
+
+#: ../gio/gsocks5proxy.c:372
+msgid "Host unreachable through SOCKSv5 server."
+msgstr "Không thể tiếp cận thông qua máy chủ SOCKSv5."
+
+#: ../gio/gsocks5proxy.c:378
+msgid "Network unreachable through SOCKSv5 proxy."
+msgstr "Không thể tiếp cận mạng thông qua máy chủ SOCKSv5."
+
+#: ../gio/gsocks5proxy.c:384
+msgid "Connection refused through SOCKSv5 proxy."
+msgstr "Kết nối bị từ chối thông qua máy chủ SOCKSv5."
+
+#: ../gio/gsocks5proxy.c:390
+msgid "SOCKSv5 proxy does not support 'connect' command."
+msgstr "Uỷ nhiệm SOCKSv5 không hỗ trợ lệnh 'connect' (kết nối)."
+
+#: ../gio/gsocks5proxy.c:396
+msgid "SOCKSv5 proxy does not support provided address type."
+msgstr "Uỷ nhiệm SOCKSv5 không hỗ trợ kiểu địa chỉ cung cấp."
+
+#: ../gio/gsocks5proxy.c:402
+msgid "Unkown SOCKSv5 proxy error."
+msgstr "Lỗi SOCKSv5 lạ."
+
+#: ../gio/gthemedicon.c:498
#, c-format
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "Không thể quản lý phiên bản %d của bảng mã GThemedIcon"
-#: gio/gunixconnection.c:165 gio/gunixconnection.c:502
+#: ../gio/gtlscertificate.c:228
+msgid "No PEM-encoded certificate found"
+msgstr "Không tìm thấy chứng nhận mã hoá dạng PEM"
+
+#: ../gio/gtlscertificate.c:237
+msgid "Could not parse PEM-encoded certificate"
+msgstr "Không thể phân tích chứng nhận mã hoá dạng PEM"
+
+#: ../gio/gtlscertificate.c:258
+msgid "Could not parse PEM-encoded private key"
+msgstr "Không thể phân tích khoá riêng mã hoá dạng PEM"
+
+#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505
#, c-format
msgid "Expecting 1 control message, got %d"
msgstr "Chờ 1 thông điệp điều khiển, nhận được %d"
-#: gio/gunixconnection.c:178 gio/gunixconnection.c:512
+#: ../gio/gunixconnection.c:177 ../gio/gunixconnection.c:515
msgid "Unexpected type of ancillary data"
msgstr "Gặp dữ liệu bổ sung kiểu bất thường"
-#: gio/gunixconnection.c:196
+#: ../gio/gunixconnection.c:195
#, c-format
msgid "Expecting one fd, but got %d\n"
msgstr "Chờ 1 fd, nhận được %d\n"
-#: gio/gunixconnection.c:212
+#: ../gio/gunixconnection.c:211
msgid "Received invalid fd"
msgstr "Nhận fd không hợp lệ"
-#: gio/gunixconnection.c:359
-#, fuzzy
+#: ../gio/gunixconnection.c:359
msgid "Error sending credentials: "
-msgstr "Lỗi gửi dữ liệu: %s"
+msgstr "Lỗi gửi giấy uỷ nhiệm: "
-#: gio/gunixconnection.c:436
+#: ../gio/gunixconnection.c:439
#, c-format
msgid "Error checking if SO_PASSCRED is enabled for socket: %s"
-msgstr ""
+msgstr "Lỗi kiểm tra nếu SO_PASSCRED được bật cho socket: %s"
-#: gio/gunixconnection.c:445
+#: ../gio/gunixconnection.c:448
#, c-format
msgid ""
"Unexpected option length while checking if SO_PASSCRED is enabled for "
"socket. Expected %d bytes, got %d"
msgstr ""
+"Chiều dài tuỳ chọn bất thường khi kiểm tra SO_PASSCRED có được bật cho "
+"socket. Chờ %d byte, nhận %d"
-#: gio/gunixconnection.c:462
-#, fuzzy, c-format
+#: ../gio/gunixconnection.c:465
+#, c-format
msgid "Error enabling SO_PASSCRED: %s"
-msgstr "Gặp lỗi khi thay đổi tên của tập tin: %s"
+msgstr "Lỗi bật SO_PASSCRED: %s"
-#: gio/gunixconnection.c:492
+#: ../gio/gunixconnection.c:495
msgid ""
"Expecting to read a single byte for receiving credentials but read zero bytes"
msgstr ""
+"Cần đọc một byte duy nhất để nhận giấy uỷ nhiệm nhưng không đọc được byte nào"
-#: gio/gunixconnection.c:535
+#: ../gio/gunixconnection.c:538
#, c-format
msgid "Error while disabling SO_PASSCRED: %s"
-msgstr ""
+msgstr "Lỗi khi tắt SO_PASSCRED: %s"
-#: gio/gunixinputstream.c:354 gio/gunixinputstream.c:374
-#: gio/gunixinputstream.c:452 gio/gunixoutputstream.c:439
+#: ../gio/gunixinputstream.c:368 ../gio/gunixinputstream.c:388
+#: ../gio/gunixinputstream.c:466
#, c-format
msgid "Error reading from unix: %s"
msgstr "Gặp lỗi khi đọc từ UNIX: %s"
-#: gio/gunixinputstream.c:407 gio/gunixinputstream.c:589
-#: gio/gunixoutputstream.c:394 gio/gunixoutputstream.c:545
+#: ../gio/gunixinputstream.c:421 ../gio/gunixinputstream.c:601
+#: ../gio/gunixoutputstream.c:407 ../gio/gunixoutputstream.c:556
#, c-format
msgid "Error closing unix: %s"
msgstr "Gặp lỗi khi đóng UNIX: %s"
-#: gio/gunixmounts.c:1846 gio/gunixmounts.c:1883
+#: ../gio/gunixmounts.c:1846 ../gio/gunixmounts.c:1883
msgid "Filesystem root"
msgstr "Gốc hệ thống tập tin"
-#: gio/gunixoutputstream.c:340 gio/gunixoutputstream.c:361
+#: ../gio/gunixoutputstream.c:353 ../gio/gunixoutputstream.c:374
+#: ../gio/gunixoutputstream.c:452
#, c-format
msgid "Error writing to unix: %s"
msgstr "Gặp lỗi khi ghi vào UNIX: %s"
-#: gio/gunixsocketaddress.c:245
+#: ../gio/gunixsocketaddress.c:244
msgid "Abstract unix domain socket addresses not supported on this system"
msgstr "Địa chỉ ổ cắm UNIX trừu tượng không được hỗ trợ trên hệ thống này"
-#: gio/gvolume.c:407
+#: ../gio/gvolume.c:408
msgid "volume doesn't implement eject"
msgstr "hàm volume (khối tin) không thực hiện hàm eject (đầy ra)"
#. Translators: This is an error
#. * message for volume objects that
#. * don't implement any of eject or eject_with_operation.
-#: gio/gvolume.c:486
+#: ../gio/gvolume.c:487
msgid "volume doesn't implement eject or eject_with_operation"
msgstr ""
"hàm volume (khối tin) không thực hiện hàm \"eject\" hoặc "
"\"eject_with_operation\" (đầy ra)"
-#: gio/gwin32appinfo.c:277
+#: ../gio/gwin32appinfo.c:276
msgid "Can't find application"
msgstr "Không tìm thấy ứng dụng"
-#: gio/gwin32appinfo.c:300
+#: ../gio/gwin32appinfo.c:299
#, c-format
msgid "Error launching application: %s"
msgstr "Gặp lỗi khi khởi chạy ứng dụng: %s"
-#: gio/gwin32appinfo.c:336
+#: ../gio/gwin32appinfo.c:335
msgid "URIs not supported"
msgstr "Không hỗ trợ địa chỉ URI"
-#: gio/gwin32appinfo.c:358
+#: ../gio/gwin32appinfo.c:357
msgid "association changes not supported on win32"
msgstr "các thay đổi liên quan không được hỗ trợ trên win32"
-#: gio/gwin32appinfo.c:370
+#: ../gio/gwin32appinfo.c:369
msgid "Association creation not supported on win32"
msgstr "chức năng tạo sự liên quan không được hỗ trợ trên win32"
-#: gio/gwin32inputstream.c:319
-#, fuzzy, c-format
+#: ../gio/gwin32inputstream.c:318
+#, c-format
msgid "Error reading from handle: %s"
-msgstr "Gặp lỗi khi đọc từ tập tin: %s"
+msgstr "Gặp lỗi khi đọc từ handle: %s"
-#: gio/gwin32inputstream.c:349 gio/gwin32outputstream.c:349
-#, fuzzy, c-format
+#: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348
+#, c-format
msgid "Error closing handle: %s"
-msgstr "Gặp lỗi khi đóng tập tin: %s"
+msgstr "Gặp lỗi khi đóng handle: %s"
-#: gio/gwin32outputstream.c:319
-#, fuzzy, c-format
+#: ../gio/gwin32outputstream.c:318
+#, c-format
msgid "Error writing to handle: %s"
-msgstr "Gặp lỗi khi ghi vào tập tin: %s"
+msgstr "Gặp lỗi khi ghi vào handle: %s"
-#: gio/gzlibcompressor.c:279 gio/gzlibdecompressor.c:250
+#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349
msgid "Not enough memory"
msgstr "Không đủ bộ nhớ"
-#: gio/gzlibcompressor.c:286 gio/gzlibdecompressor.c:257
+#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356
#, c-format
msgid "Internal error: %s"
msgstr "Lỗi nội bộ : %s"
-#: gio/gzlibcompressor.c:299 gio/gzlibdecompressor.c:271
+#: ../gio/gzlibcompressor.c:416 ../gio/gzlibdecompressor.c:370
msgid "Need more input"
msgstr "Cần thêm đầu vào"
-#: gio/gzlibdecompressor.c:243
+#: ../gio/gzlibdecompressor.c:342
msgid "Invalid compressed data"
msgstr "Sai nén dữ liệu"
+
+#~ msgid "The nonce-file `%s' was %"
+#~ msgstr "nonce-file `%s' là %"
+
+#~ msgid "Encountered array of length %"
+#~ msgstr "Bắt gặp mảng dài %"
+
+#~ msgid "Error writing first 16 bytes of message to socket: "
+#~ msgstr "Lỗi ghi 16 byte đầu tiên của thông điệp vào socket: "
+
+#~ msgid "Do not give error for empty directory"
+#~ msgstr "Không thông báo lỗi với thư mục rỗng"
+
+#~ msgid ""
+#~ "Commands:\n"
+#~ " help Show this information\n"
+#~ " get Get the value of a key\n"
+#~ " set Set the value of a key\n"
+#~ " monitor Monitor a key for changes\n"
+#~ " writable Check if a key is writable\n"
+#~ "\n"
+#~ "Use '%s COMMAND --help' to get help for individual commands.\n"
+#~ msgstr ""
+#~ "Lệnh:\n"
+#~ " help Hiện những thông tin này\n"
+#~ " get Lấy giá trị của khoá\n"
+#~ " set Đặt giá trị cho khoá\n"
+#~ " monitor Theo dõi thay đổi của khoá\n"
+#~ " writable Kiểm tra khoá ghi được không\n"
+#~ "\n"
+#~ "Dùng '%s LỆNH --help' để biết thêm chi tiết.\n"
+
+#~ msgid "Specify the path for the schema"
+#~ msgstr "Xác định đường dẫn cho schema"
+
+#~ msgid "PATH"
+#~ msgstr "ĐƯỜNG DẪN"
+
+#~ msgid ""
+#~ "Arguments:\n"
+#~ " SCHEMA The id of the schema\n"
+#~ " KEY The name of the key\n"
+#~ " VALUE The value to set key to, as a serialized GVariant\n"
+#~ msgstr ""
+#~ "Đối số:\n"
+#~ " SCHEMA id của schema\n"
+#~ " KEY Tên khoá\n"
+#~ " VALUE Giá trị cần đặt, theo kiểu GVariant tuần tự hoá\n"
+
+#~ msgid "Key %s is not writable\n"
+#~ msgstr "Khoá %s không ghi được\n"
+
+#~ msgid ""
+#~ "Monitor KEY for changes and print the changed values.\n"
+#~ "Monitoring will continue until the process is terminated."
+#~ msgstr ""
+#~ "Theo dõi các thay đổi trên KHOÁ và in ra.\n"
+#~ "Theo dõi sẽ tiếp tục đến khi tiến trình kết thúc."
diff --git a/po/zh_CN.po b/po/zh_CN.po
index fb86758..324510f 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -17,10 +17,11 @@
"Project-Id-Version: glib master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=glib&component=general\n"
-"POT-Creation-Date: 2010-11-29 15:49+0000\n"
-"PO-Revision-Date: 2010-12-06 20:42+0800\n"
+"POT-Creation-Date: 2010-12-23 18:58+0000\n"
+"PO-Revision-Date: 2010-12-26 00:49+0800\n"
"Last-Translator: Aron Xu <happyaron.xu@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -395,133 +396,133 @@
msgid "Error opening directory '%s': %s"
msgstr "打开目录“%s”时发生错误:%s"
-#: ../glib/gfileutils.c:536 ../glib/gfileutils.c:624
+#: ../glib/gfileutils.c:540 ../glib/gfileutils.c:628
#, c-format
msgid "Could not allocate %lu bytes to read file \"%s\""
msgstr "无法分配 %lu 字节以读取文件“%s”"
-#: ../glib/gfileutils.c:551
+#: ../glib/gfileutils.c:555
#, c-format
msgid "Error reading file '%s': %s"
msgstr "读取文件“%s”出错:%s"
-#: ../glib/gfileutils.c:565
+#: ../glib/gfileutils.c:569
#, c-format
msgid "File \"%s\" is too large"
msgstr "文件“%s”太大"
-#: ../glib/gfileutils.c:648
+#: ../glib/gfileutils.c:652
#, c-format
msgid "Failed to read from file '%s': %s"
msgstr "读取文件“%s”失败:%s"
-#: ../glib/gfileutils.c:699 ../glib/gfileutils.c:786
+#: ../glib/gfileutils.c:703 ../glib/gfileutils.c:790
#, c-format
msgid "Failed to open file '%s': %s"
msgstr "打开文件“%s”失败:%s"
-#: ../glib/gfileutils.c:716 ../glib/gmappedfile.c:169
+#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169
#, c-format
msgid "Failed to get attributes of file '%s': fstat() failed: %s"
msgstr "获得文件“%s”的属性失败:fstat() 失败:%s"
-#: ../glib/gfileutils.c:750
+#: ../glib/gfileutils.c:754
#, c-format
msgid "Failed to open file '%s': fdopen() failed: %s"
msgstr "打开文件“%s”失败:fdopen() 失败:%s"
-#: ../glib/gfileutils.c:858
+#: ../glib/gfileutils.c:862
#, c-format
msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s"
msgstr "将文件“%s”重命名为“%s”失败:g_rename() 失败:%s"
-#: ../glib/gfileutils.c:900 ../glib/gfileutils.c:1369
+#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388
#, c-format
msgid "Failed to create file '%s': %s"
msgstr "创建文件“%s”失败:%s"
-#: ../glib/gfileutils.c:914
+#: ../glib/gfileutils.c:918
#, c-format
msgid "Failed to open file '%s' for writing: fdopen() failed: %s"
msgstr "打开文件“%s”写入失败:fdopen() 失败:%s"
-#: ../glib/gfileutils.c:939
+#: ../glib/gfileutils.c:943
#, c-format
msgid "Failed to write file '%s': fwrite() failed: %s"
msgstr "写入文件“%s”失败:fwrite() 失败:%s"
-#: ../glib/gfileutils.c:958
+#: ../glib/gfileutils.c:962
#, c-format
msgid "Failed to write file '%s': fflush() failed: %s"
msgstr "写入文件“%s”失败:fflush() 失败:%s"
-#: ../glib/gfileutils.c:987
+#: ../glib/gfileutils.c:1005
#, c-format
msgid "Failed to write file '%s': fsync() failed: %s"
msgstr "写入文件“%s”失败:fsync() 失败:%s"
-#: ../glib/gfileutils.c:1006
+#: ../glib/gfileutils.c:1025
#, c-format
msgid "Failed to close file '%s': fclose() failed: %s"
msgstr "关闭文件“%s”失败:fclose() 失败:%s"
-#: ../glib/gfileutils.c:1127
+#: ../glib/gfileutils.c:1146
#, c-format
msgid "Existing file '%s' could not be removed: g_unlink() failed: %s"
msgstr "无法删除已有文件“%s”:g_unlink() 失败:%s"
-#: ../glib/gfileutils.c:1331
+#: ../glib/gfileutils.c:1350
#, c-format
msgid "Template '%s' invalid, should not contain a '%s'"
msgstr "模板“%s”无效,不应该包含“%s”"
-#: ../glib/gfileutils.c:1344
+#: ../glib/gfileutils.c:1363
#, c-format
msgid "Template '%s' doesn't contain XXXXXX"
msgstr "模板“%s”不包含 XXXXXX"
-#: ../glib/gfileutils.c:1777
+#: ../glib/gfileutils.c:1796
#, c-format
msgid "%u byte"
msgid_plural "%u bytes"
msgstr[0] "%u 字节"
-#: ../glib/gfileutils.c:1785
+#: ../glib/gfileutils.c:1804
#, c-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: ../glib/gfileutils.c:1790
+#: ../glib/gfileutils.c:1809
#, c-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: ../glib/gfileutils.c:1795
+#: ../glib/gfileutils.c:1814
#, c-format
msgid "%.1f GB"
msgstr "%.1f GB"
-#: ../glib/gfileutils.c:1800
+#: ../glib/gfileutils.c:1819
#, c-format
msgid "%.1f TB"
msgstr "%.1f TB"
-#: ../glib/gfileutils.c:1805
+#: ../glib/gfileutils.c:1824
#, c-format
msgid "%.1f PB"
msgstr "%.1f PB"
-#: ../glib/gfileutils.c:1810
+#: ../glib/gfileutils.c:1829
#, c-format
msgid "%.1f EB"
msgstr "%.1f EB"
-#: ../glib/gfileutils.c:1853
+#: ../glib/gfileutils.c:1872
#, c-format
msgid "Failed to read the symbolic link '%s': %s"
msgstr "读取符号链接“%s”失败:%s"
-#: ../glib/gfileutils.c:1874
+#: ../glib/gfileutils.c:1893
msgid "Symbolic links not supported"
msgstr "不支持符号链接"
@@ -636,8 +637,8 @@
#: ../glib/gmarkup.c:1126
#, c-format
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”无效,应该以字符“>”来结束空元素标记“%s”"
#: ../glib/gmarkup.c:1210
@@ -1346,15 +1347,15 @@
msgid "Too large count value passed to %s"
msgstr "传递给 %s 的计数值太大了"
-#: ../gio/gbufferedinputstream.c:880 ../gio/ginputstream.c:888
+#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:888
#: ../gio/giostream.c:306 ../gio/goutputstream.c:1197
msgid "Stream is already closed"
msgstr "流已经关闭"
-#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1636
-#: ../gio/gdbusconnection.c:1725 ../gio/gdbusconnection.c:1911
-#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:811
-#: ../gio/gsimpleasyncresult.c:837
+#: ../gio/gcancellable.c:433 ../gio/gdbusconnection.c:1637
+#: ../gio/gdbusconnection.c:1726 ../gio/gdbusconnection.c:1912
+#: ../gio/glocalfile.c:2102 ../gio/gsimpleasyncresult.c:810
+#: ../gio/gsimpleasyncresult.c:836
msgid "Operation was cancelled"
msgstr "操作被取消"
@@ -1525,14 +1526,14 @@
msgid "Cannot determine session bus address (not implemented for this OS)"
msgstr "无法确定会话总线地址(尚未在此操作系统上实现)"
-#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6167
+#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6168
#, c-format
msgid ""
"Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable "
"- unknown value `%s'"
msgstr "无法从 DBUS_STARTER_BUS_TYPE 环境变量确定总线地址 - 未知的值“%s”"
-#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6176
+#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6177
msgid ""
"Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment "
"variable is not set"
@@ -1635,85 +1636,85 @@
msgstr "(此外,释放 %s 的锁失败:%s)"
#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374
-#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1736
+#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737
msgid "The connection is closed"
msgstr "连接已关闭"
-#: ../gio/gdbusconnection.c:1680
+#: ../gio/gdbusconnection.c:1681
msgid "Timeout was reached"
msgstr "已到超时限制"
-#: ../gio/gdbusconnection.c:2299
+#: ../gio/gdbusconnection.c:2300
msgid ""
"Unsupported flags encountered when constructing a client-side connection"
msgstr "构建客户端连接时遇到不支持的标志"
-#: ../gio/gdbusconnection.c:3751 ../gio/gdbusconnection.c:4069
+#: ../gio/gdbusconnection.c:3752 ../gio/gdbusconnection.c:4070
#, c-format
msgid ""
"No such interface `org.freedesktop.DBus.Properties' on object at path %s"
msgstr "路径 %s 的对象上没有 org.freedesktop.DBus.Properties 接口"
-#: ../gio/gdbusconnection.c:3823
+#: ../gio/gdbusconnection.c:3824
#, c-format
msgid "Error setting property `%s': Expected type `%s' but got `%s'"
msgstr "设置属性 %s 出错:期望 %s 类型但得到 %s 类型"
-#: ../gio/gdbusconnection.c:3918
+#: ../gio/gdbusconnection.c:3919
#, c-format
msgid "No such property `%s'"
msgstr "无此属性:%s"
-#: ../gio/gdbusconnection.c:3930
+#: ../gio/gdbusconnection.c:3931
#, c-format
msgid "Property `%s' is not readable"
msgstr "属性 %s 不可读"
-#: ../gio/gdbusconnection.c:3941
+#: ../gio/gdbusconnection.c:3942
#, c-format
msgid "Property `%s' is not writable"
msgstr "属性 %s 不可写"
-#: ../gio/gdbusconnection.c:4011 ../gio/gdbusconnection.c:5601
+#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5602
#, c-format
msgid "No such interface `%s'"
msgstr "无此接口:%s"
-#: ../gio/gdbusconnection.c:4199
+#: ../gio/gdbusconnection.c:4200
msgid "No such interface"
msgstr "无此接口"
-#: ../gio/gdbusconnection.c:4415 ../gio/gdbusconnection.c:6117
+#: ../gio/gdbusconnection.c:4416 ../gio/gdbusconnection.c:6118
#, c-format
msgid "No such interface `%s' on object at path %s"
msgstr "在路径 %s 的对象上没有 %s 接口"
-#: ../gio/gdbusconnection.c:4467
+#: ../gio/gdbusconnection.c:4468
#, c-format
msgid "No such method `%s'"
msgstr "无此方法:%s"
-#: ../gio/gdbusconnection.c:4498
+#: ../gio/gdbusconnection.c:4499
#, c-format
msgid "Type of message, `%s', does not match expected type `%s'"
msgstr "消息的类型“%s”,与预期的类型“%s”不匹配"
-#: ../gio/gdbusconnection.c:4717
+#: ../gio/gdbusconnection.c:4718
#, c-format
msgid "An object is already exported for the interface %s at %s"
msgstr "%2$s 处的接口 %1$s 已经导出了一个对象"
-#: ../gio/gdbusconnection.c:4911
+#: ../gio/gdbusconnection.c:4912
#, c-format
msgid "Method `%s' returned type `%s', but expected `%s'"
msgstr "方法“%s”返回类型“%s”,但预期的是“%s”"
-#: ../gio/gdbusconnection.c:5712
+#: ../gio/gdbusconnection.c:5713
#, c-format
msgid "Method `%s' on interface `%s' with signature `%s' does not exist"
msgstr "带有 %3$s 签名的接口 %2$s 上不存在 %1$s 方法"
-#: ../gio/gdbusconnection.c:5830
+#: ../gio/gdbusconnection.c:5831
#, c-format
msgid "A subtree is already exported for %s"
msgstr "已经为 %s 导出一个子树"
@@ -1850,8 +1851,8 @@
#: ../gio/gdbusmessage.c:2334
#, c-format
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 "消息主体有类型签名 %s 但头部的签名为 %s"
#: ../gio/gdbusmessage.c:2350
@@ -1879,7 +1880,7 @@
msgid "Error sending message: %s"
msgstr "发送信息出错:%s"
-#: ../gio/gdbusprivate.c:1756
+#: ../gio/gdbusprivate.c:1768
msgid "Unable to load /var/lib/dbus/machine-id: "
msgstr "无法加载 /var/lib/dbus/machine-id:"
@@ -2092,34 +2093,34 @@
msgid "Monitor a remote object."
msgstr "监视一个远程对象。"
-#: ../gio/gdesktopappinfo.c:471 ../gio/gwin32appinfo.c:221
+#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221
msgid "Unnamed"
msgstr "未命名"
-#: ../gio/gdesktopappinfo.c:755
+#: ../gio/gdesktopappinfo.c:764
msgid "Desktop file didn't specify Exec field"
msgstr "桌面文件未指定 Exec 区域"
-#: ../gio/gdesktopappinfo.c:948
+#: ../gio/gdesktopappinfo.c:957
msgid "Unable to find terminal required for application"
msgstr "无法找到应用程序需要的终端"
-#: ../gio/gdesktopappinfo.c:1157
+#: ../gio/gdesktopappinfo.c:1166
#, c-format
msgid "Can't create user application configuration folder %s: %s"
msgstr "无法创建用户应用程序配置文件夹 %s:%s"
-#: ../gio/gdesktopappinfo.c:1161
+#: ../gio/gdesktopappinfo.c:1170
#, c-format
msgid "Can't create user MIME configuration folder %s: %s"
msgstr "无法创建用户 MIME 配置文件夹 %s:%s"
-#: ../gio/gdesktopappinfo.c:1569
+#: ../gio/gdesktopappinfo.c:1663
#, c-format
msgid "Can't create user desktop file %s"
msgstr "无法创建用户桌面文件 %s"
-#: ../gio/gdesktopappinfo.c:1683
+#: ../gio/gdesktopappinfo.c:1779
#, c-format
msgid "Custom definition for %s"
msgstr "%s 的自定义定义"
@@ -2157,29 +2158,29 @@
msgid "Malformed number of tokens (%d) in GEmblem encoding"
msgstr "GEmblem 编码中有不正确的符号数量(%d)"
-#: ../gio/gemblemedicon.c:293
+#: ../gio/gemblemedicon.c:368
#, c-format
msgid "Can't handle version %d of GEmblemedIcon encoding"
msgstr "无法处理 GEmblemedIcon 编码的版本 %d"
-#: ../gio/gemblemedicon.c:303
+#: ../gio/gemblemedicon.c:378
#, c-format
msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding"
msgstr "GEmblemedIcon 编码中有不正确的符号数量(%d)"
-#: ../gio/gemblemedicon.c:326
+#: ../gio/gemblemedicon.c:401
msgid "Expected a GEmblem for GEmblemedIcon"
msgstr "GEmblemedIcon 中应为 GEmblem"
-#: ../gio/gfile.c:872 ../gio/gfile.c:1102 ../gio/gfile.c:1237
-#: ../gio/gfile.c:1474 ../gio/gfile.c:1528 ../gio/gfile.c:1585
-#: ../gio/gfile.c:1668 ../gio/gfile.c:1723 ../gio/gfile.c:1783
-#: ../gio/gfile.c:1837 ../gio/gfile.c:3307 ../gio/gfile.c:3361
-#: ../gio/gfile.c:3493 ../gio/gfile.c:3534 ../gio/gfile.c:3861
-#: ../gio/gfile.c:4263 ../gio/gfile.c:4349 ../gio/gfile.c:4438
-#: ../gio/gfile.c:4536 ../gio/gfile.c:4623 ../gio/gfile.c:4717
-#: ../gio/gfile.c:5038 ../gio/gfile.c:5305 ../gio/gfile.c:5370
-#: ../gio/gfile.c:6944 ../gio/gfile.c:7034 ../gio/gfile.c:7120
+#: ../gio/gfile.c:872 ../gio/gfile.c:1103 ../gio/gfile.c:1238
+#: ../gio/gfile.c:1475 ../gio/gfile.c:1529 ../gio/gfile.c:1586
+#: ../gio/gfile.c:1669 ../gio/gfile.c:1724 ../gio/gfile.c:1784
+#: ../gio/gfile.c:1838 ../gio/gfile.c:3308 ../gio/gfile.c:3362
+#: ../gio/gfile.c:3494 ../gio/gfile.c:3535 ../gio/gfile.c:3862
+#: ../gio/gfile.c:4264 ../gio/gfile.c:4350 ../gio/gfile.c:4439
+#: ../gio/gfile.c:4537 ../gio/gfile.c:4624 ../gio/gfile.c:4718
+#: ../gio/gfile.c:5039 ../gio/gfile.c:5306 ../gio/gfile.c:5371
+#: ../gio/gfile.c:6945 ../gio/gfile.c:7035 ../gio/gfile.c:7121
#: ../gio/win32/gwinhttpfile.c:439
msgid "Operation not supported"
msgstr "不支持该操作"
@@ -2192,58 +2193,58 @@
#. Translators: This is an error message when trying to find
#. * the enclosing (user visible) mount of a file, but none
#. * exists.
-#: ../gio/gfile.c:1358 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
+#: ../gio/gfile.c:1359 ../gio/glocalfile.c:1059 ../gio/glocalfile.c:1070
#: ../gio/glocalfile.c:1083
msgid "Containing mount does not exist"
msgstr "包含的挂载不存在"
-#: ../gio/gfile.c:2411 ../gio/glocalfile.c:2258
+#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2258
msgid "Can't copy over directory"
msgstr "无法跨目录复制"
-#: ../gio/gfile.c:2472
+#: ../gio/gfile.c:2473
msgid "Can't copy directory over directory"
msgstr "无法跨目录复制到目录"
-#: ../gio/gfile.c:2480 ../gio/glocalfile.c:2267
+#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2267
msgid "Target file exists"
msgstr "目标文件已存在"
-#: ../gio/gfile.c:2498
+#: ../gio/gfile.c:2499
msgid "Can't recursively copy directory"
msgstr "无法递归复制目录"
-#: ../gio/gfile.c:2758
+#: ../gio/gfile.c:2759
msgid "Splice not supported"
msgstr "不支持拼接"
-#: ../gio/gfile.c:2762
+#: ../gio/gfile.c:2763
#, c-format
msgid "Error splicing file: %s"
msgstr "拼接文件出错:%s"
-#: ../gio/gfile.c:2909
+#: ../gio/gfile.c:2910
msgid "Can't copy special file"
msgstr "无法复制特殊文件"
-#: ../gio/gfile.c:3483
+#: ../gio/gfile.c:3484
msgid "Invalid symlink value given"
msgstr "给出的符号链接值无效"
-#: ../gio/gfile.c:3577
+#: ../gio/gfile.c:3578
msgid "Trash not supported"
msgstr "不支持回收站"
-#: ../gio/gfile.c:3626
+#: ../gio/gfile.c:3627
#, c-format
msgid "File names cannot contain '%c'"
msgstr "文件名不能包含“%c”"
-#: ../gio/gfile.c:6003 ../gio/gvolume.c:332
+#: ../gio/gfile.c:6004 ../gio/gvolume.c:332
msgid "volume doesn't implement mount"
msgstr "卷未实现挂载"
-#: ../gio/gfile.c:6114
+#: ../gio/gfile.c:6115
msgid "No application is registered as handling this file"
msgstr "没有为此类型文件注册相应的处理程序"
@@ -2538,8 +2539,8 @@
#: ../gio/glib-compile-schemas.c:1787
#, c-format
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 "解析覆盖文件 %3$s 中指定的 %2$s 中的键 %1$s 出错:%4$s。"
#: ../gio/glib-compile-schemas.c:1797
@@ -3058,66 +3059,66 @@
msgid "No such key '%s'\n"
msgstr "没有“%s”这个键\n"
-#: ../gio/gsettings-tool.c:427
+#: ../gio/gsettings-tool.c:429
#, c-format
msgid "The provided value is outside of the valid range\n"
msgstr "提供的值不在有效范围内\n"
-#: ../gio/gsettings-tool.c:456
+#: ../gio/gsettings-tool.c:458
msgid "List the installed (non-relocatable) schemas"
msgstr "列出安装的(不可重定向的)方案"
-#: ../gio/gsettings-tool.c:462
+#: ../gio/gsettings-tool.c:464
msgid "List the installed relocatable schemas"
msgstr "列出安装的可重定向方案"
-#: ../gio/gsettings-tool.c:468
+#: ../gio/gsettings-tool.c:470
msgid "Lists the keys in SCHEMA"
msgstr "列出 SCHEMA 中的键"
-#: ../gio/gsettings-tool.c:469 ../gio/gsettings-tool.c:475
-#: ../gio/gsettings-tool.c:481
+#: ../gio/gsettings-tool.c:471 ../gio/gsettings-tool.c:477
+#: ../gio/gsettings-tool.c:483
msgid "SCHEMA[:PATH]"
msgstr "SCHEMA[:PATH]"
-#: ../gio/gsettings-tool.c:474
+#: ../gio/gsettings-tool.c:476
msgid "Lists the children of SCHEMA"
msgstr "列出 SCHEMA 的子对象"
-#: ../gio/gsettings-tool.c:480
+#: ../gio/gsettings-tool.c:482
msgid "List keys and values, recursively"
msgstr "递归地列出键和值"
-#: ../gio/gsettings-tool.c:486
+#: ../gio/gsettings-tool.c:488
msgid "Gets the value of KEY"
msgstr "获取 KEY 的值"
-#: ../gio/gsettings-tool.c:487 ../gio/gsettings-tool.c:493
-#: ../gio/gsettings-tool.c:505 ../gio/gsettings-tool.c:511
+#: ../gio/gsettings-tool.c:489 ../gio/gsettings-tool.c:495
+#: ../gio/gsettings-tool.c:507 ../gio/gsettings-tool.c:513
msgid "SCHEMA[:PATH] KEY"
msgstr "SCHEMA[:PATH] KEY"
-#: ../gio/gsettings-tool.c:492
+#: ../gio/gsettings-tool.c:494
msgid "Queries the range of valid values for KEY"
msgstr "查询 KEY 的有效值范围"
-#: ../gio/gsettings-tool.c:498
+#: ../gio/gsettings-tool.c:500
msgid "Sets the value of KEY to VALUE"
msgstr "将 KEY 的值设为 VALUE"
-#: ../gio/gsettings-tool.c:499
+#: ../gio/gsettings-tool.c:501
msgid "SCHEMA[:PATH] KEY VALUE"
msgstr "SCHEMA[:PATH] KEY VALUE"
-#: ../gio/gsettings-tool.c:504
+#: ../gio/gsettings-tool.c:506
msgid "Resets KEY to its default value"
msgstr "将 KEY 重设为默认值"
-#: ../gio/gsettings-tool.c:510
+#: ../gio/gsettings-tool.c:512
msgid "Checks if KEY is writable"
msgstr "查看 KEY 是否可写"
-#: ../gio/gsettings-tool.c:516
+#: ../gio/gsettings-tool.c:518
msgid ""
"Monitors KEY for changes.\n"
"If no KEY is specified, monitor all keys in SCHEMA.\n"
@@ -3127,11 +3128,11 @@
"如果没有指定 KEY,则监视 SCHEMA 中的所有键。\n"
"使用 ^C 停止监视。\n"
-#: ../gio/gsettings-tool.c:519
+#: ../gio/gsettings-tool.c:521
msgid "SCHEMA[:PATH] [KEY]"
msgstr "SCHEMA[:PATH] [KEY]"
-#: ../gio/gsettings-tool.c:523
+#: ../gio/gsettings-tool.c:525
#, c-format
msgid ""
"Unknown command %s\n"
@@ -3140,7 +3141,7 @@
"未知命令 %s\n"
"\n"
-#: ../gio/gsettings-tool.c:531
+#: ../gio/gsettings-tool.c:533
msgid ""
"Usage:\n"
" gsettings COMMAND [ARGS...]\n"
@@ -3182,7 +3183,7 @@
"使用 'gsettings help 命令' 查询详细的帮助。\n"
"\n"
-#: ../gio/gsettings-tool.c:552
+#: ../gio/gsettings-tool.c:554
#, c-format
msgid ""
"Usage:\n"
@@ -3197,11 +3198,11 @@
"%s\n"
"\n"
-#: ../gio/gsettings-tool.c:557
+#: ../gio/gsettings-tool.c:559
msgid "Arguments:\n"
msgstr "参数:\n"
-#: ../gio/gsettings-tool.c:561
+#: ../gio/gsettings-tool.c:563
msgid ""
" SCHEMA The name of the schema\n"
" PATH The path, for relocatable schemas\n"
@@ -3209,19 +3210,19 @@
" SCHEMA 方案的名称\n"
" PATH 可重定向方案的路径\n"
-#: ../gio/gsettings-tool.c:566
+#: ../gio/gsettings-tool.c:568
msgid " KEY The (optional) key within the schema\n"
msgstr " KEY 方案中(可选)的键\n"
-#: ../gio/gsettings-tool.c:570
+#: ../gio/gsettings-tool.c:572
msgid " KEY The key within the schema\n"
msgstr " KEY 方案中的键\n"
-#: ../gio/gsettings-tool.c:574
+#: ../gio/gsettings-tool.c:576
msgid " VALUE The value to set\n"
msgstr " VALUE 要设的值\n"
-#: ../gio/gsettings-tool.c:650
+#: ../gio/gsettings-tool.c:652
#, c-format
msgid "Empty schema name given"
msgstr "给出的方案名称为空"
@@ -3333,15 +3334,15 @@
msgid "g_socket_get_credentials not implemented for this OS"
msgstr "此操作系统上没有实现 g_socket_get_credentials"
-#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1364
+#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368
msgid "Unknown error on connect"
msgstr "连接时出现未知错误"
-#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1248
+#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252
msgid "Trying to proxy over non-TCP connection is not supported."
msgstr "不支持通过非 TCP 连接的代理。"
-#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1273
+#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277
#, c-format
msgid "Proxy protocol '%s' is not supported."
msgstr "不支持 %s 代理协议。"
@@ -3439,7 +3440,7 @@
msgstr "SOCKSv5 代理不支持提供的地址类型。"
#: ../gio/gsocks5proxy.c:402
-msgid "Unkown SOCKSv5 proxy error."
+msgid "Unknown SOCKSv5 proxy error."
msgstr "未知 SOCKSv5 代理错误。"
#: ../gio/gthemedicon.c:498
@@ -3447,15 +3448,15 @@
msgid "Can't handle version %d of GThemedIcon encoding"
msgstr "无法处理 GThemedIcon 编码的版本 %d"
-#: ../gio/gtlscertificate.c:270
+#: ../gio/gtlscertificate.c:228
msgid "No PEM-encoded certificate found"
msgstr "未找到 PEM 加密的证书"
-#: ../gio/gtlscertificate.c:279
+#: ../gio/gtlscertificate.c:237
msgid "Could not parse PEM-encoded certificate"
msgstr "无法解析 PEM 加密的证书"
-#: ../gio/gtlscertificate.c:300
+#: ../gio/gtlscertificate.c:258
msgid "Could not parse PEM-encoded private key"
msgstr "无法解析 PEM 加密的私钥"
diff --git a/tests/gobject/Makefile.am b/tests/gobject/Makefile.am
index cf97ac3..0ab5bf6 100644
--- a/tests/gobject/Makefile.am
+++ b/tests/gobject/Makefile.am
@@ -61,7 +61,6 @@
ifacecheck \
ifaceinit \
ifaceinherit \
- ifaceproperties \
override \
performance \
performance-threaded \
diff --git a/tests/gobject/ifaceproperties.c b/tests/gobject/ifaceproperties.c
deleted file mode 100644
index 3b758cc..0000000
--- a/tests/gobject/ifaceproperties.c
+++ /dev/null
@@ -1,507 +0,0 @@
-/* GObject - GLib Type, Object, Parameter and Signal Library
- * Copyright (C) 2001, 2003 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 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#undef G_LOG_DOMAIN
-#define G_LOG_DOMAIN "TestIfaceProperties"
-
-#undef G_DISABLE_ASSERT
-#undef G_DISABLE_CHECKS
-#undef G_DISABLE_CAST_CHECKS
-
-#include <string.h>
-
-#include <glib-object.h>
-
-#include "testcommon.h"
-
-/* This test tests interface properties, implementing interface
- * properties and #GParamSpecOverride.
- *
- * Four properties are tested:
- *
- * prop1: Defined in TestIface, Implemented in BaseObject with a GParamSpecOverride
- * prop2: Defined in TestIface, Implemented in BaseObject with a new property
- * prop3: Defined in TestIface, Implemented in BaseObject, Overridden in DerivedObject
- * prop4: Defined in BaseObject, Overridden in DerivedObject
- */
-
-static GType base_object_get_type ();
-static GType derived_object_get_type ();
-
-enum {
- BASE_PROP_0,
- BASE_PROP1,
- BASE_PROP2,
- BASE_PROP3,
- BASE_PROP4
-};
-
-enum {
- DERIVED_PROP_0,
- DERIVED_PROP3,
- DERIVED_PROP4
-};
-
-/*
- * BaseObject, a parent class for DerivedObject
- */
-#define BASE_TYPE_OBJECT (base_object_get_type ())
-#define BASE_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BASE_TYPE_OBJECT, BaseObject))
-typedef struct _BaseObject BaseObject;
-typedef struct _BaseObjectClass BaseObjectClass;
-
-struct _BaseObject
-{
- GObject parent_instance;
-
- gint val1;
- gint val2;
- gint val3;
- gint val4;
-};
-struct _BaseObjectClass
-{
- GObjectClass parent_class;
-};
-
-GObjectClass *base_parent_class;
-
-/*
- * DerivedObject, the child class of DerivedObject
- */
-#define DERIVED_TYPE_OBJECT (derived_object_get_type ())
-typedef struct _DerivedObject DerivedObject;
-typedef struct _DerivedObjectClass DerivedObjectClass;
-
-struct _DerivedObject
-{
- BaseObject parent_instance;
-};
-struct _DerivedObjectClass
-{
- BaseObjectClass parent_class;
-};
-
-/*
- * The interface
- */
-typedef struct _TestIfaceClass TestIfaceClass;
-
-struct _TestIfaceClass
-{
- GTypeInterface base_iface;
-};
-
-#define TEST_TYPE_IFACE (test_iface_get_type ())
-
-/* The paramspecs installed on our interface
- */
-static GParamSpec *iface_spec1, *iface_spec2, *iface_spec3;
-
-/* The paramspecs inherited by our derived object
- */
-static GParamSpec *inherited_spec1, *inherited_spec2, *inherited_spec3, *inherited_spec4;
-
-static void
-test_iface_default_init (TestIfaceClass *iface_vtable)
-{
- inherited_spec1 = iface_spec1 = g_param_spec_int ("prop1",
- "Prop1",
- "Property 1",
- G_MININT, /* min */
- 0xFFFF, /* max */
- 42, /* default */
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
- g_object_interface_install_property (iface_vtable, iface_spec1);
-
- iface_spec2 = g_param_spec_int ("prop2",
- "Prop2",
- "Property 2",
- G_MININT, /* min */
- G_MAXINT, /* max */
- 0, /* default */
- G_PARAM_WRITABLE);
- g_object_interface_install_property (iface_vtable, iface_spec2);
-
- inherited_spec3 = iface_spec3 = g_param_spec_int ("prop3",
- "Prop3",
- "Property 3",
- G_MININT, /* min */
- G_MAXINT, /* max */
- 0, /* default */
- G_PARAM_READWRITE);
- g_object_interface_install_property (iface_vtable, iface_spec3);
-}
-
-static DEFINE_IFACE (TestIface, test_iface, NULL, test_iface_default_init)
-
-
-static GObject*
-base_object_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_properties)
-{
- /* The constructor is the one place where a GParamSpecOverride is visible
- * to the outside world, so we do a bunch of checks here
- */
- GValue value1 = { 0, };
- GValue value2 = { 0, };
- GParamSpec *pspec;
-
- g_assert (n_construct_properties == 1);
-
- pspec = construct_properties->pspec;
-
- /* Check we got the param spec we expected
- */
- g_assert (G_IS_PARAM_SPEC_OVERRIDE (pspec));
- g_assert (pspec->param_id == BASE_PROP1);
- g_assert (strcmp (g_param_spec_get_name (pspec), "prop1") == 0);
- g_assert (g_param_spec_get_redirect_target (pspec) == iface_spec1);
-
- /* Test redirection of the nick and blurb to the redirect target
- */
- g_assert (strcmp (g_param_spec_get_nick (pspec), "Prop1") == 0);
- g_assert (strcmp (g_param_spec_get_blurb (pspec), "Property 1") == 0);
-
- /* Test forwarding of the various GParamSpec methods to the redirect target
- */
- g_value_init (&value1, G_TYPE_INT);
- g_value_init (&value2, G_TYPE_INT);
-
- g_param_value_set_default (pspec, &value1);
- g_assert (g_value_get_int (&value1) == 42);
-
- g_value_reset (&value1);
- g_value_set_int (&value1, 0x10000);
- g_assert (g_param_value_validate (pspec, &value1));
- g_assert (g_value_get_int (&value1) == 0xFFFF);
- g_assert (!g_param_value_validate (pspec, &value1));
-
- g_value_reset (&value1);
- g_value_set_int (&value1, 1);
- g_value_set_int (&value2, 2);
- g_assert (g_param_values_cmp (pspec, &value1, &value2) < 0);
- g_assert (g_param_values_cmp (pspec, &value2, &value1) > 0);
-
- g_value_unset (&value1);
- g_value_unset (&value2);
-
- return base_parent_class->constructor (type,
- n_construct_properties,
- construct_properties);
-}
-
-static void
-base_object_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- BaseObject *base_object = BASE_OBJECT (object);
-
- switch (prop_id)
- {
- case BASE_PROP1:
- g_assert (pspec == inherited_spec1);
- base_object->val1 = g_value_get_int (value);
- break;
- case BASE_PROP2:
- g_assert (pspec == inherited_spec2);
- base_object->val2 = g_value_get_int (value);
- break;
- case BASE_PROP3:
- g_assert_not_reached ();
- break;
- case BASE_PROP4:
- g_assert_not_reached ();
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-base_object_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- BaseObject *base_object = BASE_OBJECT (object);
-
- switch (prop_id)
- {
- case BASE_PROP1:
- g_assert (pspec == inherited_spec1);
- g_value_set_int (value, base_object->val1);
- break;
- case BASE_PROP2:
- g_assert (pspec == inherited_spec2);
- g_value_set_int (value, base_object->val2);
- break;
- case BASE_PROP3:
- g_assert_not_reached ();
- break;
- case BASE_PROP4:
- g_assert_not_reached ();
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-base_object_notify (GObject *object,
- GParamSpec *pspec)
-{
- /* The property passed to notify is the redirect target, not the
- * GParamSpecOverride
- */
- g_assert (pspec == inherited_spec1 ||
- pspec == inherited_spec2 ||
- pspec == inherited_spec3 ||
- pspec == inherited_spec4);
-}
-
-static void
-base_object_class_init (BaseObjectClass *class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (class);
-
- base_parent_class= g_type_class_peek_parent (class);
-
- object_class->constructor = base_object_constructor;
- object_class->set_property = base_object_set_property;
- object_class->get_property = base_object_get_property;
- object_class->notify = base_object_notify;
-
- g_object_class_override_property (object_class, BASE_PROP1, "prop1");
-
- /* We override this one using a real property, not GParamSpecOverride
- * We change the flags from READONLY to READWRITE to show that we
- * can make the flags less restrictive
- */
- inherited_spec2 = g_param_spec_int ("prop2",
- "Prop2",
- "Property 2",
- G_MININT, /* min */
- G_MAXINT, /* max */
- 0, /* default */
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, BASE_PROP2, inherited_spec2);
-
- g_object_class_override_property (object_class, BASE_PROP3, "prop3");
-
- inherited_spec4 = g_param_spec_int ("prop4",
- "Prop4",
- "Property 4",
- G_MININT, /* min */
- G_MAXINT, /* max */
- 0, /* default */
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class, BASE_PROP4, inherited_spec4);
-}
-
-static void
-base_object_init (BaseObject *base_object)
-{
- base_object->val1 = 42;
-}
-
-static DEFINE_TYPE_FULL (BaseObject, base_object,
- base_object_class_init, NULL, base_object_init,
- G_TYPE_OBJECT,
- INTERFACE (NULL, TEST_TYPE_IFACE))
-
-static void
-derived_object_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- BaseObject *base_object = BASE_OBJECT (object);
-
- switch (prop_id)
- {
- case DERIVED_PROP3:
- g_assert (pspec == inherited_spec3);
- base_object->val3 = g_value_get_int (value);
- break;
- case DERIVED_PROP4:
- g_assert (pspec == inherited_spec4);
- base_object->val4 = g_value_get_int (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-derived_object_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- BaseObject *base_object = BASE_OBJECT (object);
-
- switch (prop_id)
- {
- case DERIVED_PROP3:
- g_assert (pspec == inherited_spec3);
- g_value_set_int (value, base_object->val3);
- break;
- case DERIVED_PROP4:
- g_assert (pspec == inherited_spec4);
- g_value_set_int (value, base_object->val4);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-derived_object_class_init (DerivedObjectClass *class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (class);
-
- object_class->set_property = derived_object_set_property;
- object_class->get_property = derived_object_get_property;
-
- /* Overriding a property that is itself overridding an interface property */
- g_object_class_override_property (object_class, DERIVED_PROP3, "prop3");
-
- /* Overriding a property not from an interface */
- g_object_class_override_property (object_class, DERIVED_PROP4, "prop4");
-}
-
-static DEFINE_TYPE (DerivedObject, derived_object,
- derived_object_class_init, NULL, NULL,
- BASE_TYPE_OBJECT)
-
-/* Helper function for testing ...list_properties()
- */
-static void
-assert_in_properties (GParamSpec *param_spec,
- GParamSpec **properties,
- gint n_properties)
-{
- gint i;
- gboolean found = FALSE;
-
- for (i = 0; i < n_properties; i++)
- {
- if (properties[i] == param_spec)
- found = TRUE;
- }
-
- g_assert (found);
-}
-
-int
-main (gint argc,
- gchar *argv[])
-{
- BaseObject *object;
- GObjectClass *object_class;
- TestIfaceClass *iface_vtable;
- GParamSpec **properties;
- guint n_properties;
-
- gint val1, val2, val3, val4;
-
- g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) |
- G_LOG_LEVEL_WARNING |
- G_LOG_LEVEL_CRITICAL);
- g_type_init ();
-
- object = g_object_new (DERIVED_TYPE_OBJECT, NULL);
-
- /* Test setting and getting the properties
- */
- g_object_set (object,
- "prop1", 0x0101,
- "prop2", 0x0202,
- "prop3", 0x0303,
- "prop4", 0x0404,
- NULL);
- g_object_get (object,
- "prop1", &val1,
- "prop2", &val2,
- "prop3", &val3,
- "prop4", &val4,
- NULL);
-
- g_assert (val1 == 0x0101);
- g_assert (val2 == 0x0202);
- g_assert (val3 == 0x0303);
- g_assert (val4 == 0x0404);
-
- /* Test that the right spec is passed on explicit notifications
- */
- g_object_freeze_notify (G_OBJECT (object));
- g_object_notify (G_OBJECT (object), "prop1");
- g_object_notify (G_OBJECT (object), "prop2");
- g_object_notify (G_OBJECT (object), "prop3");
- g_object_notify (G_OBJECT (object), "prop4");
- g_object_thaw_notify (G_OBJECT (object));
-
- /* Test g_object_class_find_property() for overridden properties
- */
- object_class = G_OBJECT_GET_CLASS (object);
-
- g_assert (g_object_class_find_property (object_class, "prop1") == inherited_spec1);
- g_assert (g_object_class_find_property (object_class, "prop2") == inherited_spec2);
- g_assert (g_object_class_find_property (object_class, "prop3") == inherited_spec3);
- g_assert (g_object_class_find_property (object_class, "prop4") == inherited_spec4);
-
- /* Test g_object_class_list_properties() for overridden properties
- */
- properties = g_object_class_list_properties (object_class, &n_properties);
- g_assert (n_properties == 4);
- assert_in_properties (inherited_spec1, properties, n_properties);
- assert_in_properties (inherited_spec2, properties, n_properties);
- assert_in_properties (inherited_spec3, properties, n_properties);
- assert_in_properties (inherited_spec4, properties, n_properties);
- g_free (properties);
-
- /* Test g_object_interface_find_property()
- */
- iface_vtable = g_type_default_interface_peek (TEST_TYPE_IFACE);
-
- g_assert (g_object_interface_find_property (iface_vtable, "prop1") == iface_spec1);
- g_assert (g_object_interface_find_property (iface_vtable, "prop2") == iface_spec2);
- g_assert (g_object_interface_find_property (iface_vtable, "prop3") == iface_spec3);
-
- /* Test g_object_interface_list_properties()
- */
- properties = g_object_interface_list_properties (iface_vtable, &n_properties);
- g_assert (n_properties == 3);
- assert_in_properties (iface_spec1, properties, n_properties);
- assert_in_properties (iface_spec2, properties, n_properties);
- assert_in_properties (iface_spec3, properties, n_properties);
- g_free (properties);
-
- g_object_unref (object);
-
- return 0;
-}
diff --git a/tests/testglib.c b/tests/testglib.c
index b4e29f0..158808a 100644
--- a/tests/testglib.c
+++ b/tests/testglib.c
@@ -1038,6 +1038,7 @@
g_hash_table_destroy (hash_table);
}
+#ifndef G_DISABLE_DEPRECATED
static void
relation_test (void)
{
@@ -1110,6 +1111,7 @@
relation = NULL;
}
+#endif
static void
gstring_tests (void)
@@ -1539,7 +1541,9 @@
g_test_add_func ("/testglib/GTree", binary_tree_test);
g_test_add_func ("/testglib/Arrays", test_arrays);
g_test_add_func ("/testglib/GHashTable", hash_table_tests);
- g_test_add_func ("/testglib/Relation", relation_test);
+#ifndef G_DISABLE_DEPRECATED
+ g_test_add_func ("/testglib/Relation (deprecated)", relation_test);
+#endif
g_test_add_func ("/testglib/File Paths", test_paths);
g_test_add_func ("/testglib/File Functions", test_file_functions);
g_test_add_func ("/testglib/Parse Debug Strings", test_g_parse_debug_string);