diff --git a/NEWS b/NEWS index 140330e5c..afebe3b09 100644 --- a/NEWS +++ b/NEWS @@ -1,29 +1,107 @@ Overview of Changes from GLib 2.28.0 to 2.29.2 ============================================== -* The format accepted by the GVariant parser has beend documented +* GApplication + - The documentation has been enhanced and clarified + - An opt-out for uniqueness has been added: G_APPLICATION_NON_UNIQUE + - GApplication now syncs settings before g_application_run() returns -* The return value of g_datetime_compare() has been fixed to - match strcmp() semantics +* GDBus + - Interface lookups are now happening in constant time + - Signature checking and handling of various unexpected + situations has been improved + +* GVariant + - The format accepted by the GVariant parser has beend documented + - GVariant accepts G_VARIANT_TYPE_VARDICT for a{sv} + +* GDateTime: + - The return value of g_datetime_compare() has been fixed to + match strcmp() semantics + - In order to handle problems with changing timezones, a GTimeZoneMonitor + has been added to GIO, and g_time_zone_refresh_local() can be + called to update the cached information about the local timezone + +* GOption now uses /proc/self/cmdline to set the program name instead + and only falls back to "" if that is unavailable + +* GSettings: + - The schema compiler now warns about references to non-existing schemas * Commandline utilities are now fully translated +* Signals can now indicate that collecting their arguments must + always happen, even in the absence of connected signal handlers, + using the G_SIGNAL_MUST_COLLECT flag. + * Bugs fixed: 635099 Memory leak in gdbus introspection when parsing xml 640489 $ and ^ do not match lines if G_REGEX_MULTILINE|G_R... 642042 Overriding GDBus org.freedesktop.DBus.Properties im... 642052 g_timeout_add(_seconds) cannot handle large intervals 642490 notify_desktop_launch() "g_variant_new_bytestring:... + 613269 g_type_get_qdata() doesn't work as I expected on subtypes + 624943 G_VALUE_NOCOPY_CONTENTS is undocumented + 637738 object_interface_check_properties never actually executes + 638185 GIOCondition should be annotated as "flags" + 639478 GDBusServer's g_dbus_server_new_sync() function should just... + 641755 Add g_settings_get/set_uint() helpers + 641768 dconf gsettings backend silently drops writes if it can't... + 642797 g_app_info_get_default_for_type() broken for subtypes + 642825 Unnecessary assertion failure in g_option_context_parse() + 642944 NULL key lookup using g_hash_table_lookup_extended() + 643074 Incorrect documentation for g_socket_receive() and g_socket... + 643197 g_application_id_is_valid docs imply no valid ids + 643468 GApplication docs: Warn that handling "command-line" means... + 643478 GApplication::local_command_line vfunc documentation seems wrong + 643624 Can g_variant_unref() on an already free'd variant + 643649 g_application_run() should say that argc/argv can be NULL + 643780 shouldn't need to create an action group to use actions... + 643795 g_timeout_add_seconds fires with intervals 1 second longer... + 644309 Program name is not set when using GtkApplication + 644428 Crash in failure section of g_markup_collect_attributes() + 644465 undefined reference to `_usleep' + 644552 g_timeout_add_seconds(1, ...) may have a latency of up to 2... + 644607 Correct internal definition of C_() + 645789 annotations for g_file_*_contents + 646039 g_settings_list_children() returns child that cannot be opened + 646310 Accept range with only min or max + 646420 g_dbus_method_invocation_get_parameters() docs should say... + 646843 occasional abort on autologin + 646985 add G_APPLICATION_NON_UNIQUE flag + 647579 gsettings: Implement reset-recursively + 647600 gsettings description has typo * Translation updates + Afrikaans Bulgarian Bengali India - Korean - Polish + British English + Bulgarian + Catalan + Czech + Danish + French Galician + German + Greek + Gujarati Hebrew + Hungarian Italian + Japanese + Korean + Lithuanian + Polish + Portuguese + Romanian + Serbian + Simplified Chinese Spanish + Swedish + Traditional Chinese + Uighur + Vietnamese Overview of Changes from GLib 2.27.93 to 2.28.0 diff --git a/README.in b/README.in index 7a5bf9977..c0f6a8a18 100644 --- a/README.in +++ b/README.in @@ -14,7 +14,7 @@ The official web site is: http://www.gtk.org/ Information about mailing lists can be found at - http://www.gtk.org/mailinglists.html + http://www.gtk.org/mailing-lists.html To subscribe: mail -s subscribe gtk-list-request@gnome.org < /dev/null (Send mail to gtk-list-request@gnome.org with the subject "subscribe") diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am index 5595774ff..59d06898d 100644 --- a/build/win32/vs10/Makefile.am +++ b/build/win32/vs10/Makefile.am @@ -26,4 +26,8 @@ EXTRA_DIST = \ gio.vcxproj.filtersin \ testglib.vcxproj \ testglib.vcxproj.filters \ + glib-compile-schemas.vcxproj \ + glib-compile-schemas.vcxproj.filters \ + gsettings.vcxproj \ + gsettings.vcxproj.filters \ install.vcxproj diff --git a/build/win32/vs10/glib-compile-schemas.vcxproj b/build/win32/vs10/glib-compile-schemas.vcxproj new file mode 100644 index 000000000..d6ee46049 --- /dev/null +++ b/build/win32/vs10/glib-compile-schemas.vcxproj @@ -0,0 +1,174 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {015D69D0-8B42-438A-ADAE-052AC036E065} + glibcompileschemas + Win32Proj + + + + Application + Unicode + true + + + Application + Unicode + + + Application + MultiByte + true + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + true + true + false + false + + + + Disabled + _DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + true + Console + MachineX86 + + + + + Disabled + DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + Console + false + + + MachineX64 + + + + + MaxSpeed + true + _CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + true + Console + true + true + MachineX86 + + + + + _CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + Console + true + true + false + + + MachineX64 + + + + + + + + + {12bca020-eabf-429e-876a-a476bc9c10c0} + false + + + {f172effc-e30f-4593-809e-db2024b1e753} + false + + + {f3d1583c-5613-4809-bd98-7cc1c1276f92} + false + + + + + + \ No newline at end of file diff --git a/build/win32/vs10/glib-compile-schemas.vcxproj.filters b/build/win32/vs10/glib-compile-schemas.vcxproj.filters new file mode 100644 index 000000000..2f5dca9c1 --- /dev/null +++ b/build/win32/vs10/glib-compile-schemas.vcxproj.filters @@ -0,0 +1,17 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/build/win32/vs10/glib.props b/build/win32/vs10/glib.props index 129248d3d..c448efc51 100644 --- a/build/win32/vs10/glib.props +++ b/build/win32/vs10/glib.props @@ -15,6 +15,10 @@ copy $(SolutionDir)$(Configuration)\$(Platform)\bin\glib-genmarshal.exe $(CopyDi copy $(SolutionDir)$(Configuration)\$(Platform)\bin\gspawn-win32-helper*.exe $(CopyDir)\bin +copy $(SolutionDir)$(Configuration)\$(Platform)\bin\glib-compile-schemas.exe $(CopyDir)\bin + +copy $(SolutionDir)$(Configuration)\$(Platform)\bin\gsettings.exe $(CopyDir)\bin + mkdir $(CopyDir)\include\glib-$(ApiVersion)\glib @@ -429,6 +433,10 @@ copy $(SolutionDir)$(Configuration)\$(Platform)\bin\*-$(ApiVersion).lib $(CopyDi if exist $(SolutionDir)$(Configuration)_ExtPCRE copy $(SolutionDir)$(Configuration)_ExtPCRE\$(Platform)\bin\*-$(ApiVersion).lib $(CopyDir)\lib + +mkdir $(CopyDir)\share\glib-2.0\schemas +copy ..\..\..\gio\gschema.dtd $(CopyDir)\share\glib-2.0\schemas + echo EXPORTS >"$(DefDir)glib.def" && cl /EP -DG_OS_WIN32 -DINCLUDE_INTERNAL_SYMBOLS -DALL_FILES -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= -DG_GNUC_PRINTF=;G_GNUC_PRINTF -DG_GNUC_FORMAT=;G_GNUC_FORMAT ..\..\..\glib\glib.symbols >>"$(DefDir)glib.def" echo EXPORTS >"$(DefDir)glib.def" && cl /EP -DG_OS_WIN32 -D_WIN64 -DINCLUDE_INTERNAL_SYMBOLS -DALL_FILES -DG_GNUC_MALLOC= -DG_GNUC_CONST= -DG_GNUC_NULL_TERMINATED= -DG_GNUC_NORETURN= -DG_GNUC_PRINTF=;G_GNUC_PRINTF -DG_GNUC_FORMAT=;G_GNUC_FORMAT ..\..\..\glib\glib.symbols >>"$(DefDir)glib.def" diff --git a/build/win32/vs10/glib.sln b/build/win32/vs10/glib.sln index 0460a1591..f82398522 100644 --- a/build/win32/vs10/glib.sln +++ b/build/win32/vs10/glib.sln @@ -18,6 +18,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gspawn-win32-helper-console EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testglib", "testglib.vcxproj", "{64E09909-5599-40C0-B808-27F55F7B823C}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib-compile-schemas", "glib-compile-schemas.vcxproj", "{015D69D0-8B42-438A-ADAE-052AC036E065}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsettings", "gsettings.vcxproj", "{05041C63-F1C5-49BA-A7DE-61EBB5307EAA}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", "{2093D218-190E-4194-9421-3BA7CBF33B10}" EndProject Global @@ -176,6 +180,38 @@ Global {64E09909-5599-40C0-B808-27F55F7B823C}.Release|Win32.Build.0 = Release|Win32 {64E09909-5599-40C0-B808-27F55F7B823C}.Release|x64.ActiveCfg = Release|x64 {64E09909-5599-40C0-B808-27F55F7B823C}.Release|x64.Build.0 = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|Win32.ActiveCfg = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|Win32.Build.0 = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|x64.ActiveCfg = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|x64.Build.0 = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|Win32.ActiveCfg = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|Win32.Build.0 = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|x64.ActiveCfg = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|x64.Build.0 = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|Win32.ActiveCfg = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|Win32.Build.0 = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|x64.ActiveCfg = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|x64.Build.0 = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|Win32.ActiveCfg = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|Win32.Build.0 = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|x64.ActiveCfg = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|x64.Build.0 = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|Win32.ActiveCfg = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|Win32.Build.0 = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|x64.ActiveCfg = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|x64.Build.0 = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|Win32.ActiveCfg = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|Win32.Build.0 = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|x64.ActiveCfg = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|x64.Build.0 = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|Win32.ActiveCfg = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|Win32.Build.0 = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|x64.ActiveCfg = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|x64.Build.0 = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|Win32.ActiveCfg = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|Win32.Build.0 = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|x64.ActiveCfg = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|x64.Build.0 = Release|x64 {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug_ExtPCRE|Win32.ActiveCfg = Debug|Win32 {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug_ExtPCRE|Win32.Build.0 = Debug|Win32 {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug_ExtPCRE|x64.ActiveCfg = Debug|x64 diff --git a/build/win32/vs10/gsettings.vcxproj b/build/win32/vs10/gsettings.vcxproj new file mode 100644 index 000000000..90ebd21f1 --- /dev/null +++ b/build/win32/vs10/gsettings.vcxproj @@ -0,0 +1,174 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA} + gsettings + Win32Proj + + + + Application + Unicode + true + + + Application + Unicode + + + Application + MultiByte + true + + + Application + MultiByte + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + true + true + false + false + + + + Disabled + _DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + EditAndContinue + + + true + Console + MachineX86 + + + + + Disabled + DEBUG;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + Console + false + + + MachineX64 + + + + + MaxSpeed + true + _CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + true + + + Level3 + ProgramDatabase + + + %(AdditionalDependencies) + true + Console + true + true + MachineX86 + + + + + _CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + Level3 + ProgramDatabase + CompileAsC + + + true + Console + true + true + false + + + MachineX64 + + + + + + + + {12bca020-eabf-429e-876a-a476bc9c10c0} + false + + + {f172effc-e30f-4593-809e-db2024b1e753} + false + + + {f3d1583c-5613-4809-bd98-7cc1c1276f92} + false + + + + + + \ No newline at end of file diff --git a/build/win32/vs10/gsettings.vcxproj.filters b/build/win32/vs10/gsettings.vcxproj.filters new file mode 100644 index 000000000..0c81fc601 --- /dev/null +++ b/build/win32/vs10/gsettings.vcxproj.filters @@ -0,0 +1,14 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + + + Source Files + + + \ No newline at end of file diff --git a/build/win32/vs9/Makefile.am b/build/win32/vs9/Makefile.am index e9b379fcc..da7d8167d 100644 --- a/build/win32/vs9/Makefile.am +++ b/build/win32/vs9/Makefile.am @@ -14,4 +14,6 @@ EXTRA_DIST = \ gio.vcproj \ gio.vcprojin \ testglib.vcproj \ + glib-compile-schemas.vcproj \ + gsettings.vcproj \ install.vcproj diff --git a/build/win32/vs9/glib-compile-schemas.vcproj b/build/win32/vs9/glib-compile-schemas.vcproj new file mode 100644 index 000000000..014787f1d --- /dev/null +++ b/build/win32/vs9/glib-compile-schemas.vcproj @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/win32/vs9/glib.sln b/build/win32/vs9/glib.sln index e24d9fbad..6f64a8c5c 100644 --- a/build/win32/vs9/glib.sln +++ b/build/win32/vs9/glib.sln @@ -45,6 +45,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testglib", "testglib.vcproj {12BCA020-EABF-429E-876A-A476BC9C10C0} = {12BCA020-EABF-429E-876A-A476BC9C10C0} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glib-compile-schemas", "glib-compile-schemas.vcproj", "{015D69D0-8B42-438A-ADAE-052AC036E065}" + ProjectSection(ProjectDependencies) = postProject + {12BCA020-EABF-429E-876A-A476BC9C10C0} = {12BCA020-EABF-429E-876A-A476BC9C10C0} + {F172EFFC-E30F-4593-809E-DB2024B1E753} = {F172EFFC-E30F-4593-809E-DB2024B1E753} + {F3D1583C-5613-4809-BD98-7CC1C1276F92} = {F3D1583C-5613-4809-BD98-7CC1C1276F92} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsettings", "gsettings.vcproj", "{05041C63-F1C5-49BA-A7DE-61EBB5307EAA}" + ProjectSection(ProjectDependencies) = postProject + {12BCA020-EABF-429E-876A-A476BC9C10C0} = {12BCA020-EABF-429E-876A-A476BC9C10C0} + {F172EFFC-E30F-4593-809E-DB2024B1E753} = {F172EFFC-E30F-4593-809E-DB2024B1E753} + {F3D1583C-5613-4809-BD98-7CC1C1276F92} = {F3D1583C-5613-4809-BD98-7CC1C1276F92} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcproj", "{2093D218-190E-4194-9421-3BA7CBF33B10}" ProjectSection(ProjectDependencies) = postProject {12BCA020-EABF-429E-876A-A476BC9C10C0} = {12BCA020-EABF-429E-876A-A476BC9C10C0} @@ -56,6 +70,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcproj", {289240E7-E167-47CE-A20C-58D852E520BA} = {289240E7-E167-47CE-A20C-58D852E520BA} {F172EFFC-E30F-4593-809E-DB2024B1E753} = {F172EFFC-E30F-4593-809E-DB2024B1E753} {64E09909-5599-40C0-B808-27F55F7B823C} = {64E09909-5599-40C0-B808-27F55F7B823C} + {015D69D0-8B42-438A-ADAE-052AC036E065} = {015D69D0-8B42-438A-ADAE-052AC036E065} + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA} = {05041C63-F1C5-49BA-A7DE-61EBB5307EAA} EndProjectSection EndProject Global @@ -214,6 +230,38 @@ Global {64E09909-5599-40C0-B808-27F55F7B823C}.Release_ExtPCRE|Win32.Build.0 = Release|Win32 {64E09909-5599-40C0-B808-27F55F7B823C}.Release_ExtPCRE|x64.ActiveCfg = Release|x64 {64E09909-5599-40C0-B808-27F55F7B823C}.Release_ExtPCRE|x64.Build.0 = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|Win32.ActiveCfg = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|Win32.Build.0 = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|x64.ActiveCfg = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug|x64.Build.0 = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|Win32.ActiveCfg = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|Win32.Build.0 = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|x64.ActiveCfg = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release|x64.Build.0 = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|Win32.ActiveCfg = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|Win32.Build.0 = Debug|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|x64.ActiveCfg = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Debug_ExtPCRE|x64.Build.0 = Debug|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|Win32.ActiveCfg = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|Win32.Build.0 = Release|Win32 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|x64.ActiveCfg = Release|x64 + {015D69D0-8B42-438A-ADAE-052AC036E065}.Release_ExtPCRE|x64.Build.0 = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|Win32.ActiveCfg = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|Win32.Build.0 = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|x64.ActiveCfg = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug|x64.Build.0 = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|Win32.ActiveCfg = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|Win32.Build.0 = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|x64.ActiveCfg = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release|x64.Build.0 = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|Win32.ActiveCfg = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|Win32.Build.0 = Debug|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|x64.ActiveCfg = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Debug_ExtPCRE|x64.Build.0 = Debug|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|Win32.ActiveCfg = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|Win32.Build.0 = Release|Win32 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|x64.ActiveCfg = Release|x64 + {05041C63-F1C5-49BA-A7DE-61EBB5307EAA}.Release_ExtPCRE|x64.Build.0 = Release|x64 {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug|Win32.ActiveCfg = Debug|Win32 {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug|Win32.Build.0 = Debug|Win32 {2093D218-190E-4194-9421-3BA7CBF33B10}.Debug|x64.ActiveCfg = Debug|x64 diff --git a/build/win32/vs9/glib.vsprops b/build/win32/vs9/glib.vsprops index 302ce323b..af182358d 100644 --- a/build/win32/vs9/glib.vsprops +++ b/build/win32/vs9/glib.vsprops @@ -42,6 +42,8 @@ copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\*.dll $(OutDir)\bin& if exist $(SolutionDir)$(ConfigurationName)_ExtPCRE copy $(SolutionDir)$(ConfigurationName)_ExtPCRE\$(PlatformName)\bin\*.dll $(OutDir)\bin copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\glib-genmarshal.exe $(OutDir)\bin copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\gspawn-win32-helper*.exe $(OutDir)\bin +copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\glib-compile-schemas.exe $(OutDir)\bin +copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\gsettings.exe $(OutDir)\bin mkdir $(OutDir)\include\glib-2.0\glib copy ..\..\..\msvc_recommended_pragmas.h $(OutDir)\include\glib-2.0 @@ -253,6 +255,9 @@ copy ..\..\..\glib\glibconfig.h $(OutDir)\lib\glib-2.0\include copy $(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin\*-2.0.lib $(OutDir)\lib if exist $(SolutionDir)$(ConfigurationName)_ExtPCRE copy $(SolutionDir)$(ConfigurationName)_ExtPCRE\$(PlatformName)\bin\*-2.0.lib $(OutDir)\lib + +mkdir $(OutDir)\share\glib-2.0\schemas +copy ..\..\..\gio\gschema.dtd $(OutDir)\share\glib-2.0\schemas " /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configure.ac b/configure.ac index 5a4f2293b..95b858355 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,7 @@ m4_define(glib_configure_ac) m4_define([glib_major_version], [2]) m4_define([glib_minor_version], [29]) -m4_define([glib_micro_version], [2]) +m4_define([glib_micro_version], [3]) m4_define([glib_interface_age], [0]) m4_define([glib_binary_age], [m4_eval(100 * glib_minor_version + glib_micro_version)]) @@ -578,7 +578,7 @@ AC_FUNC_ALLOCA AC_CHECK_FUNCS(mmap posix_memalign memalign valloc fsync pipe2) AC_CHECK_FUNCS(atexit on_exit timegm gmtime_r) # BSD has a qsort_r with wrong argument order -AC_MSG_CHECKING([for qsort_r]) +AC_CACHE_CHECK([for qsort_r], glib_cv_have_qsort_r, [ AC_RUN_IFELSE([[ #define _GNU_SOURCE #include @@ -609,9 +609,9 @@ main (int argc, char **argv) return 0; else return 1; -}]],[have_qsort_r=yes],[have_qsort_r=no]) +}]],[glib_cv_have_qsort_r=yes],[glib_cv_have_qsort_r=no])]) -if test $have_qsort_r = yes ; then +if test $glib_cv_have_qsort_r = yes ; then AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_QSORT_R, 1, [Define to 1 if you have the 'qsort_r' function]) else diff --git a/docs/reference/gio/gio-sections.txt b/docs/reference/gio/gio-sections.txt index 690b45ac4..599568a45 100644 --- a/docs/reference/gio/gio-sections.txt +++ b/docs/reference/gio/gio-sections.txt @@ -1400,6 +1400,8 @@ g_desktop_app_info_new g_desktop_app_info_get_filename g_desktop_app_info_get_is_hidden g_desktop_app_info_set_desktop_env +GDesktopAppLaunchCallback +g_desktop_app_info_launch_uris_as_manager GDesktopAppInfoClass G_TYPE_DESKTOP_APP_INFO @@ -1484,6 +1486,7 @@ g_inet_address_new_from_string g_inet_address_new_from_bytes g_inet_address_new_any g_inet_address_new_loopback +g_inet_address_equal g_inet_address_to_bytes g_inet_address_get_native_size g_inet_address_to_string diff --git a/docs/reference/gio/gsettings.xml b/docs/reference/gio/gsettings.xml index 1d8e38187..f55784dc2 100644 --- a/docs/reference/gio/gsettings.xml +++ b/docs/reference/gio/gsettings.xml @@ -49,6 +49,11 @@ SCHEMA:PATH KEY + + gsettings + reset-recursively + SCHEMA:PATH + gsettings list-schemas @@ -151,6 +156,13 @@ Resets KEY to its default value. + + + +Reset all keys under the given SCHEMA. + + + diff --git a/docs/reference/glib/cross.sgml b/docs/reference/glib/cross.sgml index 40c0a1f54..f31ae6047 100644 --- a/docs/reference/glib/cross.sgml +++ b/docs/reference/glib/cross.sgml @@ -109,6 +109,15 @@ chmod a-w win32.cache # prevent configure from changing it built-in version in that case. + + glib_cv_have_qsort_r=[yes/no] + + + Whether you have qsort_r() that matches + BSD. Defaults to "no", which is safe, since GLib uses a + built-in version in that case. + + glib_cv_va_val_copy=[yes/no] diff --git a/docs/reference/glib/glib-docs.sgml b/docs/reference/glib/glib-docs.sgml index f3197d9ed..208c49b3f 100644 --- a/docs/reference/glib/glib-docs.sgml +++ b/docs/reference/glib/glib-docs.sgml @@ -96,6 +96,7 @@ synchronize their operation. + @@ -199,6 +200,10 @@ synchronize their operation. Index of new symbols in 2.28 + + Index of new symbols in 2.30 + + diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index c1c68b096..6bf859370 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -840,11 +840,6 @@ g_io_channel_set_encoding g_io_channel_get_close_on_unref g_io_channel_set_close_on_unref - -g_io_channel_win32_poll -g_io_channel_win32_make_pollfd -g_io_channel_win32_get_fd - g_io_channel_read GIOError @@ -853,6 +848,9 @@ g_io_channel_seek g_io_channel_close +g_io_channel_win32_poll +g_io_channel_win32_make_pollfd +g_io_channel_win32_get_fd g_io_channel_error_quark g_io_watch_funcs @@ -1926,6 +1924,16 @@ g_win32_ftruncate +
+UNIX-specific utilities and integration +gunix +G_UNIX_ERROR +g_unix_pipe_flags +g_unix_signal_source_new +g_unix_signal_add_watch_full + +
+ # Data Structures
@@ -2800,6 +2808,7 @@ GTestDataFunc g_test_add_data_func g_test_add +g_test_fail g_test_message g_test_bug_base g_test_bug diff --git a/gio/gactiongroup.c b/gio/gactiongroup.c index 735f016be..00e14846f 100644 --- a/gio/gactiongroup.c +++ b/gio/gactiongroup.c @@ -141,7 +141,9 @@ g_action_group_default_init (GActionGroupInterface *class) g_action_group_signals[SIGNAL_ACTION_STATE_CHANGED] = g_signal_new (I_("action-state-changed"), G_TYPE_ACTION_GROUP, - G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + G_SIGNAL_RUN_LAST | + G_SIGNAL_DETAILED | + G_SIGNAL_MUST_COLLECT, G_STRUCT_OFFSET (GActionGroupInterface, action_state_changed), NULL, NULL, diff --git a/gio/gapplication.c b/gio/gapplication.c index 7a97fefb5..2f831576a 100644 --- a/gio/gapplication.c +++ b/gio/gapplication.c @@ -27,6 +27,7 @@ #include "gapplicationcommandline.h" #include "gapplicationimpl.h" #include "gactiongroup.h" +#include "gsettings.h" #include "gioenumtypes.h" #include "gio-marshal.h" @@ -557,7 +558,7 @@ g_application_class_init (GApplicationClass *class) g_object_class_install_property (object_class, PROP_INACTIVITY_TIMEOUT, g_param_spec_uint ("inactivity-timeout", P_("Inactivity timeout"), - P_("Iime (ms) to stay alive after becoming idle"), + P_("Time (ms) to stay alive after becoming idle"), 0, G_MAXUINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); @@ -1006,14 +1007,17 @@ g_application_register (GApplication *application, if (!application->priv->is_registered) { - application->priv->impl = - g_application_impl_register (application, application->priv->id, - application->priv->flags, - &application->priv->remote_actions, - cancellable, error); + if (~application->priv->flags & G_APPLICATION_NON_UNIQUE) + { + application->priv->impl = + g_application_impl_register (application, application->priv->id, + application->priv->flags, + &application->priv->remote_actions, + cancellable, error); - if (application->priv->impl == NULL) - return FALSE; + if (application->priv->impl == NULL) + return FALSE; + } application->priv->is_remote = application->priv->remote_actions != NULL; application->priv->is_registered = TRUE; @@ -1326,6 +1330,8 @@ g_application_run (GApplication *application, if (application->priv->impl) g_application_impl_flush (application->priv->impl); + g_settings_sync (); + return status; } diff --git a/gio/gapplicationimpl-dbus.c b/gio/gapplicationimpl-dbus.c index 406b8390d..c59c90e97 100644 --- a/gio/gapplicationimpl-dbus.c +++ b/gio/gapplicationimpl-dbus.c @@ -659,6 +659,9 @@ g_application_impl_register (GApplication *application, g_dbus_connection_unregister_object (impl->session_bus, impl->object_id); impl->object_id = 0; + g_dbus_connection_unregister_object (impl->session_bus, + impl->action_id); + impl->action_id = 0; if (flags & G_APPLICATION_IS_SERVICE) { diff --git a/gio/gdbusaddress.c b/gio/gdbusaddress.c index 1f2645e1a..642aa2d9f 100644 --- a/gio/gdbusaddress.c +++ b/gio/gdbusaddress.c @@ -258,25 +258,13 @@ is_valid_nonce_tcp (const gchar *address_entry, goto out; } - if (nonce_file == NULL) + if (host != NULL) { - g_set_error (error, - G_IO_ERROR, - G_IO_ERROR_INVALID_ARGUMENT, - _("Error in address `%s' - missing noncefile attribute"), - address_entry); - goto out; - } - if (host == NULL) - { - g_set_error (error, - G_IO_ERROR, - G_IO_ERROR_INVALID_ARGUMENT, - _("Error in address `%s' - missing host attribute"), - address_entry); - goto out; + /* TODO: validate host */ } + nonce_file = nonce_file; /* To avoid -Wunused-but-set-variable */ + ret= TRUE; out: @@ -351,14 +339,9 @@ is_valid_tcp (const gchar *address_entry, goto out; } - if (host == NULL) + if (host != NULL) { - g_set_error (error, - G_IO_ERROR, - G_IO_ERROR_INVALID_ARGUMENT, - _("Error in address `%s' - missing host attribute"), - address_entry); - goto out; + /* TODO: validate host */ } ret= TRUE; diff --git a/gio/gdbusauth.c b/gio/gdbusauth.c index f190469a4..29e229a1f 100644 --- a/gio/gdbusauth.c +++ b/gio/gdbusauth.c @@ -663,7 +663,8 @@ _g_dbus_auth_run_client (GDBusAuth *auth, if (line == NULL) goto out; debug_print ("CLIENT: WaitingForReject, read '%s'", line); - foobar: + + choose_mechanism: if (!g_str_has_prefix (line, "REJECTED ")) { g_set_error (error, @@ -739,7 +740,7 @@ _g_dbus_auth_run_client (GDBusAuth *auth, } else if (g_str_has_prefix (line, "REJECTED ")) { - goto foobar; + goto choose_mechanism; } else { @@ -841,6 +842,13 @@ _g_dbus_auth_run_client (GDBusAuth *auth, } state = CLIENT_STATE_WAITING_FOR_OK; } + else if (g_str_has_prefix (line, "REJECTED ")) + { + /* could be the chosen authentication method just doesn't work. Try + * another one... + */ + goto choose_mechanism; + } else { g_set_error (error, diff --git a/gio/gdbusauthmechanismanon.c b/gio/gdbusauthmechanismanon.c index 601200d75..ea5843821 100644 --- a/gio/gdbusauthmechanismanon.c +++ b/gio/gdbusauthmechanismanon.c @@ -187,8 +187,7 @@ mechanism_server_initiate (GDBusAuthMechanism *mechanism, g_return_if_fail (G_IS_DBUS_AUTH_MECHANISM_ANON (mechanism)); g_return_if_fail (!m->priv->is_server && !m->priv->is_client); - if (initial_response != NULL) - g_debug ("ANONYMOUS: initial_response was `%s'", initial_response); + //g_debug ("ANONYMOUS: initial_response was `%s'", initial_response); m->priv->is_server = TRUE; m->priv->state = G_DBUS_AUTH_MECHANISM_STATE_ACCEPTED; diff --git a/gio/gdbusauthmechanismsha1.c b/gio/gdbusauthmechanismsha1.c index a38a3fe73..e1b33cfda 100644 --- a/gio/gdbusauthmechanismsha1.c +++ b/gio/gdbusauthmechanismsha1.c @@ -652,6 +652,7 @@ keyring_generate_entry (const gchar *cookie_context, lines = NULL; new_contents = NULL; have_id = FALSE; + use_id = 0; use_cookie = NULL; lock_fd = -1; diff --git a/gio/gdbusconnection.c b/gio/gdbusconnection.c index 3bacf81f5..6b96ea14f 100644 --- a/gio/gdbusconnection.c +++ b/gio/gdbusconnection.c @@ -1992,7 +1992,7 @@ g_dbus_connection_send_message_with_reply_sync (GDBusConnection *connection, g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL); g_return_val_if_fail (G_IS_DBUS_MESSAGE (message), NULL); - g_return_val_if_fail ((flags & G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL) || !g_dbus_message_get_locked (message), FALSE); + g_return_val_if_fail ((flags & G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL) || !g_dbus_message_get_locked (message), NULL); g_return_val_if_fail (timeout_msec >= 0 || timeout_msec == -1, NULL); g_return_val_if_fail (error == NULL || *error == NULL, NULL); @@ -2264,15 +2264,20 @@ initable_init (GInitable *initable, ret = FALSE; + /* First, handle the case where the connection already has an + * initialization error set. + */ + if (connection->initialization_error != NULL) + goto out; + + /* Also make this a no-op if we're already initialized fine */ if (connection->is_initialized) { - if (connection->stream != NULL) - ret = TRUE; - else - g_assert (connection->initialization_error != NULL); + ret = TRUE; goto out; } - g_assert (connection->initialization_error == NULL); + + g_assert (connection->initialization_error == NULL && !connection->is_initialized); /* The user can pass multiple (but mutally exclusive) construct * properties: diff --git a/gio/gdbusmessage.c b/gio/gdbusmessage.c index 94a1de339..5fc67e7f1 100644 --- a/gio/gdbusmessage.c +++ b/gio/gdbusmessage.c @@ -3197,8 +3197,8 @@ g_dbus_message_lock (GDBusMessage *message) * This operation can fail if e.g. @message contains file descriptors * and the per-process or system-wide open files limit is reached. * - * Returns: (transfer full): A new #GDBusMessage or %NULL if @error is set. Free with - * g_object_unref(). + * Returns: (transfer full): A new #GDBusMessage or %NULL if @error is set. + * Free with g_object_unref(). * * Since: 2.26 */ @@ -3212,7 +3212,7 @@ g_dbus_message_copy (GDBusMessage *message, GVariant *header_value; g_return_val_if_fail (G_IS_DBUS_MESSAGE (message), NULL); - g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, NULL); ret = g_dbus_message_new (); ret->type = message->type; @@ -3255,4 +3255,3 @@ g_dbus_message_copy (GDBusMessage *message, out: return ret; } - diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c index 1e5bcf853..4a668b85a 100644 --- a/gio/gdbusprivate.c +++ b/gio/gdbusprivate.c @@ -399,10 +399,10 @@ struct GDBusWorker * only user) - we might want it to affect messages sent to the other peer too? */ gboolean frozen; + GDBusCapabilityFlags capabilities; GQueue *received_messages_while_frozen; GIOStream *stream; - GDBusCapabilityFlags capabilities; GCancellable *cancellable; GDBusWorkerMessageReceivedCallback message_received_callback; GDBusWorkerMessageAboutToBeSentCallback message_about_to_be_sent_callback; @@ -425,9 +425,9 @@ struct GDBusWorker gint read_num_ancillary_messages; /* used for writing */ + gint num_writes_pending; GMutex *write_lock; GQueue *write_queue; - gint num_writes_pending; guint64 write_num_messages_written; GList *write_pending_flushes; gboolean flush_pending; diff --git a/gio/gdbusproxy.c b/gio/gdbusproxy.c index 271610032..55eed3c46 100644 --- a/gio/gdbusproxy.c +++ b/gio/gdbusproxy.c @@ -83,9 +83,9 @@ struct _GDBusProxyPrivate { GBusType bus_type; + GDBusProxyFlags flags; GDBusConnection *connection; - GDBusProxyFlags flags; gchar *name; gchar *name_owner; gchar *object_path; @@ -505,7 +505,7 @@ g_dbus_proxy_class_init (GDBusProxyClass *klass) */ signals[PROPERTIES_CHANGED_SIGNAL] = g_signal_new ("g-properties-changed", G_TYPE_DBUS_PROXY, - G_SIGNAL_RUN_LAST, + G_SIGNAL_RUN_LAST | G_SIGNAL_MUST_COLLECT, G_STRUCT_OFFSET (GDBusProxyClass, g_properties_changed), NULL, NULL, @@ -528,7 +528,7 @@ g_dbus_proxy_class_init (GDBusProxyClass *klass) */ signals[SIGNAL_SIGNAL] = g_signal_new ("g-signal", G_TYPE_DBUS_PROXY, - G_SIGNAL_RUN_LAST, + G_SIGNAL_RUN_LAST | G_SIGNAL_MUST_COLLECT, G_STRUCT_OFFSET (GDBusProxyClass, g_signal), NULL, NULL, @@ -1037,14 +1037,13 @@ on_name_owner_changed (GDBusConnection *connection, g_hash_table_size (proxy->priv->properties) > 0) { GVariantBuilder builder; - GVariant *changed_properties; GPtrArray *invalidated_properties; GHashTableIter iter; const gchar *key; /* Build changed_properties (always empty) and invalidated_properties ... */ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - changed_properties = g_variant_builder_end (&builder); + invalidated_properties = g_ptr_array_new_with_free_func (g_free); g_hash_table_iter_init (&iter, proxy->priv->properties); while (g_hash_table_iter_next (&iter, (gpointer) &key, NULL)) @@ -1057,9 +1056,8 @@ on_name_owner_changed (GDBusConnection *connection, /* ... and finally emit the ::g-properties-changed signal */ g_signal_emit (proxy, signals[PROPERTIES_CHANGED_SIGNAL], 0, - changed_properties, + g_variant_builder_end (&builder) /* consumed */, (const gchar* const *) invalidated_properties->pdata); - g_variant_unref (changed_properties); g_ptr_array_unref (invalidated_properties); } g_object_notify (G_OBJECT (proxy), "g-name-owner"); diff --git a/gio/gdbusserver.c b/gio/gdbusserver.c index 9b5b8c3ba..ab0bad0f6 100644 --- a/gio/gdbusserver.c +++ b/gio/gdbusserver.c @@ -63,7 +63,13 @@ * @include: gio/gio.h * * #GDBusServer is a helper for listening to and accepting D-Bus - * connections. + * connections. This can be used to create a new D-Bus server, allowing two + * peers to use the D-Bus protocol for their own specialized communication. + * A server instance provided in this way will not perform message routing or + * implement the org.freedesktop.DBus interface. + * + * To just export an object on a well-known name on a message bus, such as the + * session or system bus, you should instead use g_bus_own_name(). * * D-Bus peer-to-peer exampleFIXME: MISSING XINCLUDE CONTENT */ @@ -979,11 +985,16 @@ on_run (GSocketService *service, if (server->flags & G_DBUS_SERVER_FLAGS_RUN_IN_THREAD) { + gboolean claimed; + + claimed = FALSE; g_signal_emit (server, _signals[NEW_CONNECTION_SIGNAL], 0, - connection); - g_dbus_connection_start_message_processing (connection); + connection, + &claimed); + if (claimed) + g_dbus_connection_start_message_processing (connection); g_object_unref (connection); } else diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 227bacc41..f72de34fd 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -64,8 +64,14 @@ #define ADDED_ASSOCIATIONS_GROUP "Added Associations" #define REMOVED_ASSOCIATIONS_GROUP "Removed Associations" #define MIME_CACHE_GROUP "MIME Cache" +#define GENERIC_NAME_KEY "GenericName" #define FULL_NAME_KEY "X-GNOME-FullName" +enum { + PROP_0, + PROP_FILENAME +}; + 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, @@ -88,7 +94,7 @@ struct _GDesktopAppInfo char *filename; char *name; - /* FIXME: what about GenericName ? */ + char *generic_name; char *fullname; char *comment; char *icon_name; @@ -99,6 +105,7 @@ struct _GDesktopAppInfo char *exec; char *binary; char *path; + char *categories; guint nodisplay : 1; guint hidden : 1; @@ -161,6 +168,7 @@ g_desktop_app_info_finalize (GObject *object) g_free (info->desktop_id); g_free (info->filename); g_free (info->name); + g_free (info->generic_name); g_free (info->fullname); g_free (info->comment); g_free (info->icon_name); @@ -172,16 +180,69 @@ g_desktop_app_info_finalize (GObject *object) g_free (info->exec); g_free (info->binary); g_free (info->path); + g_free (info->categories); G_OBJECT_CLASS (g_desktop_app_info_parent_class)->finalize (object); } +static void +g_desktop_app_info_set_property(GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + GDesktopAppInfo *self = G_DESKTOP_APP_INFO (object); + + switch (prop_id) + { + case PROP_FILENAME: + self->filename = g_value_dup_string (value); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +g_desktop_app_info_get_property(GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + GDesktopAppInfo *self = G_DESKTOP_APP_INFO (object); + + switch (prop_id) + { + case PROP_FILENAME: + g_value_set_string (value, self->filename); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + static void g_desktop_app_info_class_init (GDesktopAppInfoClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + gobject_class->get_property = g_desktop_app_info_get_property; + gobject_class->set_property = g_desktop_app_info_set_property; gobject_class->finalize = g_desktop_app_info_finalize; + + /** + * GDesktopAppInfo:filename + * + * The origin filename of this #GDesktopAppInfo + */ + g_object_class_install_property (gobject_class, + PROP_FILENAME, + g_param_spec_string ("filename", "Filename", "", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } static void @@ -205,29 +266,19 @@ binary_from_exec (const char *exec) } -/** - * g_desktop_app_info_new_from_keyfile: - * @key_file: an opened #GKeyFile - * - * Creates a new #GDesktopAppInfo. - * - * Returns: a new #GDesktopAppInfo or %NULL on error. - * - * Since: 2.18 - **/ -GDesktopAppInfo * -g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) +static gboolean +g_desktop_app_info_load_from_keyfile (GDesktopAppInfo *info, + GKeyFile *key_file) { - GDesktopAppInfo *info; char *start_group; char *type; char *try_exec; - + start_group = g_key_file_get_start_group (key_file); if (start_group == NULL || strcmp (start_group, G_KEY_FILE_DESKTOP_GROUP) != 0) { g_free (start_group); - return NULL; + return FALSE; } g_free (start_group); @@ -238,7 +289,7 @@ g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) if (type == NULL || strcmp (type, G_KEY_FILE_DESKTOP_TYPE_APPLICATION) != 0) { g_free (type); - return NULL; + return FALSE; } g_free (type); @@ -253,15 +304,13 @@ g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) if (t == NULL) { g_free (try_exec); - return NULL; + return FALSE; } g_free (t); } - info = g_object_new (G_TYPE_DESKTOP_APP_INFO, NULL); - info->filename = NULL; - info->name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NAME, NULL, NULL); + info->generic_name = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, GENERIC_NAME_KEY, NULL, NULL); info->fullname = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, FULL_NAME_KEY, NULL, NULL); info->comment = g_key_file_get_locale_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_COMMENT, NULL, NULL); info->nodisplay = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY, NULL) != FALSE; @@ -275,6 +324,7 @@ g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) info->startup_notify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL) != FALSE; info->no_fuse = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, "X-GIO-NoFuse", NULL) != FALSE; info->hidden = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_HIDDEN, NULL) != FALSE; + info->categories = g_key_file_get_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_CATEGORIES, NULL); info->icon = NULL; if (info->icon_name) @@ -311,6 +361,53 @@ g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) info->path = NULL; } + return TRUE; +} + +static gboolean +g_desktop_app_info_load_file (GDesktopAppInfo *self) +{ + GKeyFile *key_file; + gboolean retval = FALSE; + + g_return_val_if_fail (self->filename != NULL, FALSE); + + key_file = g_key_file_new (); + + if (g_key_file_load_from_file (key_file, + self->filename, + G_KEY_FILE_NONE, + NULL)) + { + retval = g_desktop_app_info_load_from_keyfile (self, key_file); + } + + g_key_file_free (key_file); + return retval; +} + +/** + * g_desktop_app_info_new_from_keyfile: + * @key_file: an opened #GKeyFile + * + * Creates a new #GDesktopAppInfo. + * + * Returns: a new #GDesktopAppInfo or %NULL on error. + * + * Since: 2.18 + **/ +GDesktopAppInfo * +g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) +{ + GDesktopAppInfo *info; + + info = g_object_new (G_TYPE_DESKTOP_APP_INFO, NULL); + info->filename = NULL; + if (!g_desktop_app_info_load_from_keyfile (info, key_file)) + { + g_object_unref (info); + return NULL; + } return info; } @@ -325,23 +422,14 @@ g_desktop_app_info_new_from_keyfile (GKeyFile *key_file) GDesktopAppInfo * g_desktop_app_info_new_from_filename (const char *filename) { - GKeyFile *key_file; GDesktopAppInfo *info = NULL; - key_file = g_key_file_new (); - - if (g_key_file_load_from_file (key_file, - filename, - G_KEY_FILE_NONE, - NULL)) + info = g_object_new (G_TYPE_DESKTOP_APP_INFO, "filename", filename, NULL); + if (!g_desktop_app_info_load_file (info)) { - info = g_desktop_app_info_new_from_keyfile (key_file); - if (info) - info->filename = g_strdup (filename); - } - - g_key_file_free (key_file); - + g_object_unref (info); + return NULL; + } return info; } @@ -430,6 +518,7 @@ g_desktop_app_info_dup (GAppInfo *appinfo) new_info->desktop_id = g_strdup (info->desktop_id); new_info->name = g_strdup (info->name); + new_info->generic_name = g_strdup (info->generic_name); new_info->fullname = g_strdup (info->fullname); new_info->comment = g_strdup (info->comment); new_info->nodisplay = info->nodisplay; @@ -555,6 +644,31 @@ g_desktop_app_info_get_icon (GAppInfo *appinfo) return info->icon; } +/** + * g_desktop_app_info_get_categories: + * @info: a #GDesktopAppInfo + * + * Returns: The unparsed Categories key from the file; i.e. no attempt + * is made to split it by ';' or validate it. + */ +const char * +g_desktop_app_info_get_categories (GDesktopAppInfo *info) +{ + return info->categories; +} + +/** + * g_desktop_app_info_get_generic_name: + * @info: a #GDesktopAppInfo + * + * Returns: The value of the GenericName key + */ +const char * +g_desktop_app_info_get_generic_name (GDesktopAppInfo *info) +{ + return info->generic_name; +} + static char * expand_macro_single (char macro, char *uri) { @@ -1813,6 +1927,10 @@ g_desktop_app_info_ensure_saved (GDesktopAppInfo *info, g_key_file_set_string (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_NAME, info->name); + if (info->generic_name != NULL) + g_key_file_set_string (key_file, G_KEY_FILE_DESKTOP_GROUP, + GENERIC_NAME_KEY, info->generic_name); + if (info->fullname != NULL) g_key_file_set_string (key_file, G_KEY_FILE_DESKTOP_GROUP, FULL_NAME_KEY, info->fullname); @@ -1932,10 +2050,10 @@ g_app_info_create_from_commandline (const char *commandline, info->filename = NULL; info->desktop_id = NULL; - info->terminal = flags & G_APP_INFO_CREATE_NEEDS_TERMINAL; - info->startup_notify = flags & G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION; + info->terminal = (flags & G_APP_INFO_CREATE_NEEDS_TERMINAL) != 0; + info->startup_notify = (flags & G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION) != 0; info->hidden = FALSE; - if (flags & G_APP_INFO_CREATE_SUPPORTS_URIS) + if ((flags & G_APP_INFO_CREATE_SUPPORTS_URIS) != 0) info->exec = g_strconcat (commandline, " %u", NULL); else info->exec = g_strconcat (commandline, " %f", NULL); diff --git a/gio/gdesktopappinfo.h b/gio/gdesktopappinfo.h index 162cbb6d6..f44acad77 100644 --- a/gio/gdesktopappinfo.h +++ b/gio/gdesktopappinfo.h @@ -50,6 +50,9 @@ GDesktopAppInfo *g_desktop_app_info_new_from_keyfile (GKeyFile *key_file const char * g_desktop_app_info_get_filename (GDesktopAppInfo *info); +const char * g_desktop_app_info_get_generic_name (GDesktopAppInfo *info); +const char * g_desktop_app_info_get_categories (GDesktopAppInfo *info); + GDesktopAppInfo *g_desktop_app_info_new (const char *desktop_id); gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info); diff --git a/gio/gfileinfo.c b/gio/gfileinfo.c index 41c242d4b..579148dcc 100644 --- a/gio/gfileinfo.c +++ b/gio/gfileinfo.c @@ -2096,12 +2096,13 @@ typedef struct { struct _GFileAttributeMatcher { gboolean all; SubMatcher sub_matchers[ON_STACK_MATCHERS]; + gint ref; + GArray *more_sub_matchers; /* Interator */ guint32 iterator_ns; - int iterator_pos; - int ref; + gint iterator_pos; }; static void diff --git a/gio/gfilenamecompleter.c b/gio/gfilenamecompleter.c index e84b17f73..fc9afebf8 100644 --- a/gio/gfilenamecompleter.c +++ b/gio/gfilenamecompleter.c @@ -64,8 +64,8 @@ struct _GFilenameCompleter { GFile *basenames_dir; gboolean basenames_are_escaped; - GList *basenames; gboolean dirs_only; + GList *basenames; LoadBasenamesData *basename_loader; }; diff --git a/gio/gfilterinputstream.c b/gio/gfilterinputstream.c index ec8472c4e..c39076c36 100644 --- a/gio/gfilterinputstream.c +++ b/gio/gfilterinputstream.c @@ -113,7 +113,7 @@ g_filter_input_stream_class_init (GFilterInputStreamClass *klass) g_param_spec_boolean ("close-base-stream", P_("Close Base Stream"), P_("If the base stream should be closed when the filter stream is closed."), - TRUE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | + TRUE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB)); } diff --git a/gio/ginetaddress.c b/gio/ginetaddress.c index 260c7752d..743ac0682 100644 --- a/gio/ginetaddress.c +++ b/gio/ginetaddress.c @@ -866,3 +866,32 @@ g_inet_address_get_is_mc_site_local (GInetAddress *address) else return IN6_IS_ADDR_MC_SITELOCAL (&address->priv->addr.ipv6); } + +/** + * g_inet_address_equal: + * @address: A #GInetAddress. + * @other_address: Another #GInetAddress. + * + * Checks if two #GInetAddress instances are equal, e.g. the same address. + * + * Returns: %TRUE if @address and @other_address are equal, %FALSE otherwise. + * + * Since: 2.30 + */ +gboolean +g_inet_address_equal (GInetAddress *address, + GInetAddress *other_address) +{ + g_return_val_if_fail (G_IS_INET_ADDRESS (address), FALSE); + g_return_val_if_fail (G_IS_INET_ADDRESS (other_address), FALSE); + + if (g_inet_address_get_family (address) != g_inet_address_get_family (other_address)) + return FALSE; + + if (memcmp (g_inet_address_to_bytes (address), + g_inet_address_to_bytes (other_address), + g_inet_address_get_native_size (address)) != 0) + return FALSE; + + return TRUE; +} diff --git a/gio/ginetaddress.h b/gio/ginetaddress.h index 9c11efefd..d523cd654 100644 --- a/gio/ginetaddress.h +++ b/gio/ginetaddress.h @@ -69,6 +69,9 @@ GInetAddress * g_inet_address_new_loopback (GSocketFamily GInetAddress * g_inet_address_new_any (GSocketFamily family); +gboolean g_inet_address_equal (GInetAddress *address, + GInetAddress *other_address); + gchar * g_inet_address_to_string (GInetAddress *address); const guint8 * g_inet_address_to_bytes (GInetAddress *address); diff --git a/gio/gio.symbols b/gio/gio.symbols index 650ca963e..6cb593490 100644 --- a/gio/gio.symbols +++ b/gio/gio.symbols @@ -132,7 +132,9 @@ g_app_info_reset_type_associations g_desktop_app_info_new_from_filename g_desktop_app_info_new_from_keyfile g_desktop_app_info_new +g_desktop_app_info_get_categories g_desktop_app_info_get_filename +g_desktop_app_info_get_generic_name g_desktop_app_info_get_is_hidden g_desktop_app_info_get_type G_GNUC_CONST g_desktop_app_info_launch_uris_as_manager @@ -1123,6 +1125,7 @@ g_inet_address_get_is_site_local g_inet_address_to_bytes g_inet_address_get_native_size g_inet_address_to_string +g_inet_address_equal #endif #endif diff --git a/gio/gioenums.h b/gio/gioenums.h index 59a985d80..87eb2fa0e 100644 --- a/gio/gioenums.h +++ b/gio/gioenums.h @@ -1265,6 +1265,11 @@ typedef enum * when editing a git commit message. The environment is available * to the #GApplication::command-line signal handler, via * g_application_command_line_getenv(). + * @G_APPLICATION_NON_UNIQUE: Make no attempts to do any of the typical + * single-instance application negotiation. The application neither + * attempts to become the owner of the application ID nor does it + * check if an existing owner already exists. Everything occurs in + * the local process. Since: 2.30. * * Flags used to define the behaviour of a #GApplication. * @@ -1278,7 +1283,9 @@ typedef enum G_APPLICATION_HANDLES_OPEN = (1 << 2), G_APPLICATION_HANDLES_COMMAND_LINE = (1 << 3), - G_APPLICATION_SEND_ENVIRONMENT = (1 << 4) + G_APPLICATION_SEND_ENVIRONMENT = (1 << 4), + + G_APPLICATION_NON_UNIQUE = (1 << 5), } GApplicationFlags; /** diff --git a/gio/gioscheduler.c b/gio/gioscheduler.c index 61e1afcca..cd7bba7a5 100644 --- a/gio/gioscheduler.c +++ b/gio/gioscheduler.c @@ -51,11 +51,10 @@ struct _GIOSchedulerJob { GSourceFunc cancel_func; /* Runs under job map lock */ gpointer data; GDestroyNotify destroy_notify; - - gint io_priority; GCancellable *cancellable; GMainContext *context; + gint io_priority; guint idle_tag; }; diff --git a/gio/glib-compile-schemas.c b/gio/glib-compile-schemas.c index d2c3f77b4..a301dff9a 100644 --- a/gio/glib-compile-schemas.c +++ b/gio/glib-compile-schemas.c @@ -24,13 +24,16 @@ #include "config.h" #include -#include -#include -#include -#include - #include +#include +#include +#include + +#ifdef HAVE_UNISTD_H +#include +#endif + #include "gvdb/gvdb-builder.h" #include "strinfo.c" diff --git a/gio/glocaldirectorymonitor.h b/gio/glocaldirectorymonitor.h index 418634e92..1d54585ee 100644 --- a/gio/glocaldirectorymonitor.h +++ b/gio/glocaldirectorymonitor.h @@ -47,8 +47,8 @@ struct _GLocalDirectoryMonitor gchar *dirname; GFileMonitorFlags flags; /* For mount emulation */ - GUnixMountMonitor *mount_monitor; gboolean was_mounted; + GUnixMountMonitor *mount_monitor; }; struct _GLocalDirectoryMonitorClass diff --git a/gio/glocalfile.c b/gio/glocalfile.c index 9e4aace78..84ba0e20e 100644 --- a/gio/glocalfile.c +++ b/gio/glocalfile.c @@ -1297,8 +1297,8 @@ g_local_file_read (GFile *file, GError **error) { GLocalFile *local = G_LOCAL_FILE (file); - int fd; - struct stat buf; + int fd, ret; + GLocalFileStat buf; fd = g_open (local->filename, O_RDONLY|O_BINARY, 0); if (fd == -1) @@ -1312,7 +1312,13 @@ g_local_file_read (GFile *file, return NULL; } - if (fstat(fd, &buf) == 0 && S_ISDIR (buf.st_mode)) +#ifdef G_OS_WIN32 + ret = _fstati64 (fd, &buf); +#else + ret = fstat (fd, &buf); +#endif + + if (ret == 0 && S_ISDIR (buf.st_mode)) { close (fd); g_set_error_literal (error, G_IO_ERROR, diff --git a/gio/glocalfileinfo.c b/gio/glocalfileinfo.c index 30ea97bab..5e4def74a 100644 --- a/gio/glocalfileinfo.c +++ b/gio/glocalfileinfo.c @@ -1883,7 +1883,7 @@ set_unix_mode (char *filename, const GFileAttributeValue *value, GError **error) { - guint32 val; + guint32 val = 0; int res = 0; if (!get_uint32 (value, &val, error)) @@ -1934,7 +1934,7 @@ set_unix_uid_gid (char *filename, GError **error) { int res; - guint32 val; + guint32 val = 0; uid_t uid; gid_t gid; @@ -2070,8 +2070,8 @@ set_mtime_atime (char *filename, GError **error) { int res; - guint64 val; - guint32 val_usec; + guint64 val = 0; + guint32 val_usec = 0; struct stat statbuf; gboolean got_stat = FALSE; struct timeval times[2] = { {0, 0}, {0, 0} }; diff --git a/gio/glocalfileoutputstream.c b/gio/glocalfileoutputstream.c index 40576a9cc..650550e75 100644 --- a/gio/glocalfileoutputstream.c +++ b/gio/glocalfileoutputstream.c @@ -909,10 +909,16 @@ handle_overwrite_open (const char *filename, ) ) { - struct stat tmp_statbuf; - + GLocalFileStat tmp_statbuf; + int tres; + +#ifdef G_OS_WIN32 + tres = _fstati64 (tmpfd, &tmp_statbuf); +#else + tres = fstat (tmpfd, &tmp_statbuf); +#endif /* Check that we really needed to change something */ - if (fstat (tmpfd, &tmp_statbuf) != 0 || + if (tres != 0 || original_stat.st_uid != tmp_statbuf.st_uid || original_stat.st_gid != tmp_statbuf.st_gid || original_stat.st_mode != tmp_statbuf.st_mode) diff --git a/gio/gresolver.c b/gio/gresolver.c index 9309846ec..d08b3b555 100644 --- a/gio/gresolver.c +++ b/gio/gresolver.c @@ -212,6 +212,36 @@ g_resolver_maybe_reload (GResolver *resolver) #endif } +/* filter out duplicates, cf. https://bugzilla.gnome.org/show_bug.cgi?id=631379 */ +static void +remove_duplicates (GList *addrs) +{ + GList *l; + GList *ll; + GList *lll; + + /* TODO: if this is too slow (it's O(n^2) but n is typically really + * small), we can do something more clever but note that we must not + * change the order of elements... + */ + for (l = addrs; l != NULL; l = l->next) + { + GInetAddress *address = G_INET_ADDRESS (l->data); + for (ll = l->next; ll != NULL; ll = lll) + { + GInetAddress *other_address = G_INET_ADDRESS (ll->data); + lll = ll->next; + if (g_inet_address_equal (address, other_address)) + { + g_object_unref (other_address); + /* we never return the first element */ + g_warn_if_fail (g_list_delete_link (addrs, ll) == addrs); + } + } + } +} + + /** * g_resolver_lookup_by_name: * @resolver: a #GResolver @@ -225,9 +255,12 @@ g_resolver_maybe_reload (GResolver *resolver) * a wrapper around g_inet_address_new_from_string()). * * On success, g_resolver_lookup_by_name() will return a #GList of - * #GInetAddress, sorted in order of preference. (That is, you should - * attempt to connect to the first address first, then the second if - * the first fails, etc.) + * #GInetAddress, sorted in order of preference and guaranteed to not + * contain duplicates. That is, if using the result to connect to + * @hostname, you should attempt to connect to the first address + * first, then the second if the first fails, etc. If you are using + * the result to listen on a socket, it is appropriate to add each + * result using e.g. g_socket_listener_add_address(). * * If the DNS resolution fails, @error (if non-%NULL) will be set to a * value from #GResolverError. @@ -272,6 +305,8 @@ g_resolver_lookup_by_name (GResolver *resolver, addrs = G_RESOLVER_GET_CLASS (resolver)-> lookup_by_name (resolver, hostname, cancellable, error); + remove_duplicates (addrs); + g_free (ascii_hostname); return addrs; } @@ -354,6 +389,8 @@ g_resolver_lookup_by_name_finish (GResolver *resolver, GAsyncResult *result, GError **error) { + GList *addrs; + g_return_val_if_fail (G_IS_RESOLVER (resolver), NULL); if (G_IS_SIMPLE_ASYNC_RESULT (result)) @@ -373,8 +410,12 @@ g_resolver_lookup_by_name_finish (GResolver *resolver, } } - return G_RESOLVER_GET_CLASS (resolver)-> + addrs = G_RESOLVER_GET_CLASS (resolver)-> lookup_by_name_finish (resolver, result, error); + + remove_duplicates (addrs); + + return addrs; } /** diff --git a/gio/gsettings-tool.c b/gio/gsettings-tool.c index 14bd99f22..824da5a14 100644 --- a/gio/gsettings-tool.c +++ b/gio/gsettings-tool.c @@ -357,6 +357,54 @@ gsettings_reset (GSettings *settings, g_settings_sync (); } +static void +reset_all_keys (GSettings *settings) +{ + gchar **keys; + gint i; + + keys = g_settings_list_keys (settings); + for (i = 0; keys[i]; i++) + { + g_settings_reset (settings, keys[i]); + } + + g_strfreev (keys); +} + +static void +gsettings_reset_recursively (GSettings *settings, + const gchar *key, + const gchar *value) +{ + gchar **children; + gint i; + + g_settings_delay (settings); + + reset_all_keys (settings); + children = g_settings_list_children (settings); + for (i = 0; children[i]; i++) + { + GSettings *child; + gchar *schema; + + child = g_settings_get_child (settings, children[i]); + g_object_get (child, "schema", &schema, NULL); + + if (is_schema (schema)) + reset_all_keys (child); + + g_object_unref (child); + g_free (schema); + } + + g_strfreev (children); + + g_settings_apply (settings); + g_settings_sync (); +} + static void gsettings_writable (GSettings *settings, const gchar *key, @@ -409,6 +457,7 @@ gsettings_set (GSettings *settings, GError *error = NULL; GVariant *existing; GVariant *new; + GVariant *stored; gchar *freeme = NULL; existing = g_settings_get_value (settings, key); @@ -442,16 +491,23 @@ gsettings_set (GSettings *settings, if (!g_settings_range_check (settings, key, new)) { g_printerr (_("The provided value is outside of the valid range\n")); - g_variant_unref (new); exit (1); } g_settings_set_value (settings, key, new); + g_settings_sync (); + + stored = g_settings_get_value (settings, key); + if (g_variant_equal (stored, existing)) + { + g_printerr (_("Failed to set value\n")); + exit (1); + } + + g_variant_unref (stored); g_variant_unref (existing); g_variant_unref (new); - g_settings_sync (); - g_free (freeme); } @@ -529,6 +585,12 @@ gsettings_help (gboolean requested, synopsis = N_("SCHEMA[:PATH] KEY"); } + else if (strcmp (command, "reset-recursively") == 0) + { + description = _("Reset all keys in SCHEMA to their defaults"); + synopsis = N_("SCHEMA[:PATH]"); + } + else if (strcmp (command, "writable") == 0) { description = _("Check if KEY is writable"); @@ -566,6 +628,7 @@ gsettings_help (gboolean requested, " get Get the value of a key\n" " set Set the value of a key\n" " reset Reset the value of a key\n" + " reset-recursively Reset all values in a given schema\n" " writable Check if a key is writable\n" " monitor Watch for changes\n" "\n" @@ -671,6 +734,9 @@ main (int argc, char **argv) else if (argc == 4 && strcmp (argv[1], "reset") == 0) function = gsettings_reset; + else if (argc == 3 && strcmp (argv[1], "reset-recursively") == 0) + function = gsettings_reset_recursively; + else if (argc == 4 && strcmp (argv[1], "writable") == 0) function = gsettings_writable; diff --git a/gio/gsettings.c b/gio/gsettings.c index 74232f050..275edf16b 100644 --- a/gio/gsettings.c +++ b/gio/gsettings.c @@ -59,7 +59,7 @@ * even need to be started in this case. For this reason, you should * only ever modify #GSettings keys in response to explicit user action. * Particular care should be paid to ensure that modifications are not - * made during startup -- for example, when settings the initial value + * made during startup -- for example, when setting the initial value * of preferences widgets. The built-in g_settings_bind() functionality * is careful not to write settings in response to notify signals as a * result of modifications that it makes to widgets. @@ -810,8 +810,8 @@ g_settings_new_with_path (const gchar *schema, * * Creates a new #GSettings object with a given schema and backend. * - * Creating settings objects with an different backend allows accessing settings - * from a database other than the usual one. For example, it may make + * Creating a #GSettings object with a different backend allows accessing + * settings from a database other than the usual one. For example, it may make * sense to pass a backend corresponding to the "defaults" settings database on * the system to get a settings object that modifies the system default * settings instead of the settings for this user. diff --git a/gio/gsettingsbackend.c b/gio/gsettingsbackend.c index 24a6f9aa1..553eda037 100644 --- a/gio/gsettingsbackend.c +++ b/gio/gsettingsbackend.c @@ -45,6 +45,13 @@ struct _GSettingsBackendPrivate GStaticMutex lock; }; +/* For g_settings_backend_sync_default(), we only want to actually do + * the sync if the backend already exists. This avoids us creating an + * entire GSettingsBackend in order to call a do-nothing sync() + * operation on it. This variable lets us avoid that. + */ +static gboolean g_settings_has_backend; + /** * SECTION:gsettingsbackend * @title: GSettingsBackend @@ -982,6 +989,7 @@ g_settings_backend_get_default (void) extension_type = g_io_extension_get_type (extension); instance = g_object_new (extension_type, NULL); + g_settings_has_backend = TRUE; g_once_init_leave (&backend, (gsize) instance); } @@ -1021,12 +1029,15 @@ g_settings_backend_get_permission (GSettingsBackend *backend, void g_settings_backend_sync_default (void) { - GSettingsBackendClass *class; - GSettingsBackend *backend; + if (g_settings_has_backend) + { + GSettingsBackendClass *class; + GSettingsBackend *backend; - backend = g_settings_backend_get_default (); - class = G_SETTINGS_BACKEND_GET_CLASS (backend); + backend = g_settings_backend_get_default (); + class = G_SETTINGS_BACKEND_GET_CLASS (backend); - if (class->sync) - class->sync (backend); + if (class->sync) + class->sync (backend); + } } diff --git a/gio/gsimpleaction.c b/gio/gsimpleaction.c index 388ead3de..2b06f2df8 100644 --- a/gio/gsimpleaction.c +++ b/gio/gsimpleaction.c @@ -323,7 +323,7 @@ g_simple_action_class_init (GSimpleActionClass *class) g_simple_action_signals[SIGNAL_ACTIVATE] = g_signal_new (I_("activate"), G_TYPE_SIMPLE_ACTION, - G_SIGNAL_RUN_LAST, + G_SIGNAL_RUN_LAST | G_SIGNAL_MUST_COLLECT, G_STRUCT_OFFSET (GSimpleActionClass, activate), NULL, NULL, g_cclosure_marshal_VOID__VARIANT, diff --git a/gio/gsimpleasyncresult.c b/gio/gsimpleasyncresult.c index b58b2e5cd..4fd5da751 100644 --- a/gio/gsimpleasyncresult.c +++ b/gio/gsimpleasyncresult.c @@ -744,9 +744,13 @@ g_simple_async_result_complete (GSimpleAsyncResult *simple) #endif if (simple->callback) - simple->callback (simple->source_object, - G_ASYNC_RESULT (simple), - simple->user_data); + { + g_main_context_push_thread_default (simple->context); + simple->callback (simple->source_object, + G_ASYNC_RESULT (simple), + simple->user_data); + g_main_context_pop_thread_default (simple->context); + } } static gboolean diff --git a/gio/gsocket.c b/gio/gsocket.c index aa0a39cc8..d0219c111 100644 --- a/gio/gsocket.c +++ b/gio/gsocket.c @@ -1756,15 +1756,17 @@ g_socket_check_connect_result (GSocket *socket, * received, the additional data will be returned in future calls to * g_socket_receive(). * - * If the socket is in blocking mode the call will block until there is - * some data to receive or there is an error. If there is no data available - * and the socket is in non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error - * will be returned. To be notified when data is available, wait for the + * If the socket is in blocking mode the call will block until there + * is some data to receive, the connection is closed, or there is an + * error. If there is no data available and the socket is in + * non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be + * returned. To be notified when data is available, wait for the * %G_IO_IN condition. * * On error -1 is returned and @error is set accordingly. * - * Returns: Number of bytes read, or -1 on error + * Returns: Number of bytes read, or 0 if the connection was closed by + * the peer, or -1 on error * * Since: 2.22 */ @@ -1794,7 +1796,8 @@ g_socket_receive (GSocket *socket, * the choice of blocking or non-blocking behavior is determined by * the @blocking argument rather than by @socket's properties. * - * Returns: Number of bytes read, or -1 on error + * Returns: Number of bytes read, or 0 if the connection was closed by + * the peer, or -1 on error * * Since: 2.26 */ @@ -1876,7 +1879,8 @@ g_socket_receive_with_blocking (GSocket *socket, * * See g_socket_receive() for additional information. * - * Returns: Number of bytes read, or -1 on error + * Returns: Number of bytes read, or 0 if the connection was closed by + * the peer, or -1 on error * * Since: 2.22 */ @@ -3182,14 +3186,16 @@ g_socket_send_message (GSocket *socket, * sufficiently-large buffer. * * If the socket is in blocking mode the call will block until there - * is some data to receive or there is an error. If there is no data - * available and the socket is in non-blocking mode, a - * %G_IO_ERROR_WOULD_BLOCK error will be returned. To be notified when - * data is available, wait for the %G_IO_IN condition. + * is some data to receive, the connection is closed, or there is an + * error. If there is no data available and the socket is in + * non-blocking mode, a %G_IO_ERROR_WOULD_BLOCK error will be + * returned. To be notified when data is available, wait for the + * %G_IO_IN condition. * * On error -1 is returned and @error is set accordingly. * - * Returns: Number of bytes read, or -1 on error + * Returns: Number of bytes read, or 0 if the connection was closed by + * the peer, or -1 on error * * Since: 2.22 */ diff --git a/gio/gsocketclient.c b/gio/gsocketclient.c index bb60fcc9f..0519346b1 100644 --- a/gio/gsocketclient.c +++ b/gio/gsocketclient.c @@ -58,7 +58,7 @@ * #GSocketClient is a high-level utility class for connecting to a * network host using a connection oriented socket type. * - * You create a #GSocketClient object, set any options you want, then + * You create a #GSocketClient object, set any options you want, and then * call a sync or async connect operation, which returns a #GSocketConnection * subclass on success. * @@ -442,7 +442,7 @@ g_socket_client_get_local_address (GSocketClient *client) * The sockets created by this object will bound to the * specified address (if not %NULL) before connecting. * - * This is useful if you want to ensure the the local + * This is useful if you want to ensure that the local * side of the connection is on a specific port, or on * a specific interface. * @@ -726,7 +726,7 @@ g_socket_client_class_init (GSocketClientClass *class) * @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.. + * Tries to resolve the @connectable and make a network connection to it. * * Upon a successful connection, a new #GSocketConnection is constructed * and returned. The caller owns this new object and must drop their @@ -736,7 +736,7 @@ g_socket_client_class_init (GSocketClientClass *class) * the underlying socket that is used. For instance, for a TCP/IP connection * it will be a #GTcpConnection. * - * The socket created will be the same family as the the address that the + * The socket created will be the same family as the address that the * @connectable resolves to, unless family is set with g_socket_client_set_family() * or indirectly via g_socket_client_set_local_address(). The socket type * defaults to %G_SOCKET_TYPE_STREAM but can be set with @@ -912,7 +912,7 @@ g_socket_client_connect (GSocketClient *client, * * Attempts to create a TCP connection to the named host. * - * @host_and_port may be in any of a number of recognised formats; an IPv6 + * @host_and_port may be in any of a number of recognized formats; an IPv6 * address, an IPv4 address, or a domain name (in which case a DNS * lookup is performed). Quoting with [] is supported for all address * types. A port override may be specified in the usual way with a @@ -923,7 +923,7 @@ g_socket_client_connect (GSocketClient *client, * used as the port number to connect to. * * In general, @host_and_port is expected to be provided by the user (allowing - * them to give the hostname, and a port overide if necessary) and + * them to give the hostname, and a port override if necessary) and * @default_port is expected to be provided by the application. * * In the case that an IP address is given, a single connection @@ -1591,7 +1591,7 @@ g_socket_client_connect_to_uri_async (GSocketClient *client, * g_socket_client_connect_finish: * @client: a #GSocketClient. * @result: a #GAsyncResult. - * @error: a #GError location to store the error occuring, or %NULL to + * @error: a #GError location to store the error occurring, or %NULL to * ignore. * * Finishes an async connect operation. See g_socket_client_connect_async() @@ -1617,7 +1617,7 @@ g_socket_client_connect_finish (GSocketClient *client, * g_socket_client_connect_to_host_finish: * @client: a #GSocketClient. * @result: a #GAsyncResult. - * @error: a #GError location to store the error occuring, or %NULL to + * @error: a #GError location to store the error occurring, or %NULL to * ignore. * * Finishes an async connect operation. See g_socket_client_connect_to_host_async() @@ -1638,7 +1638,7 @@ g_socket_client_connect_to_host_finish (GSocketClient *client, * g_socket_client_connect_to_service_finish: * @client: a #GSocketClient. * @result: a #GAsyncResult. - * @error: a #GError location to store the error occuring, or %NULL to + * @error: a #GError location to store the error occurring, or %NULL to * ignore. * * Finishes an async connect operation. See g_socket_client_connect_to_service_async() @@ -1659,7 +1659,7 @@ g_socket_client_connect_to_service_finish (GSocketClient *client, * g_socket_client_connect_to_uri_finish: * @client: a #GSocketClient. * @result: a #GAsyncResult. - * @error: a #GError location to store the error occuring, or %NULL to + * @error: a #GError location to store the error occurring, or %NULL to * ignore. * * Finishes an async connect operation. See g_socket_client_connect_to_uri_async() @@ -1684,7 +1684,7 @@ g_socket_client_connect_to_uri_finish (GSocketClient *client, * Enable proxy protocols to be handled by the application. When the * indicated proxy protocol is returned by the #GProxyResolver, * #GSocketClient will consider this protocol as supported but will - * not try find a #GProxy instance to handle handshaking. The + * not try to find a #GProxy instance to handle handshaking. The * application must check for this case by calling * g_socket_connection_get_remote_address() on the returned * #GSocketConnection, and seeing if it's a #GProxyAddress of the diff --git a/gio/gsocketconnection.c b/gio/gsocketconnection.c index ac9ce74de..6f2f102a0 100644 --- a/gio/gsocketconnection.c +++ b/gio/gsocketconnection.c @@ -52,7 +52,7 @@ * depends on the type of the underlying socket that is in use. For * instance, for a TCP/IP connection it will be a #GTcpConnection. * - * Chosing what type of object to construct is done with the socket + * Choosing what type of object to construct is done with the socket * connection factory, and it is possible for 3rd parties to register * custom socket connection types for specific combination of socket * family/type/protocol using g_socket_connection_factory_register_type(). @@ -404,7 +404,7 @@ G_LOCK_DEFINE_STATIC(connection_factories); * @protocol: a protocol id * * Looks up the #GType to be used when creating socket connections on - * sockets with the specified @family,@type and @protocol. + * sockets with the specified @family, @type and @protocol. * * If no type is registered, the #GSocketConnection base type is returned. * @@ -458,7 +458,7 @@ init_builtin_types (void) * @protocol_id: a protocol id * * Looks up the #GType to be used when creating socket connections on - * sockets with the specified @family,@type and @protocol_id. + * sockets with the specified @family, @type and @protocol_id. * * If no type is registered, the #GSocketConnection base type is returned. * diff --git a/gio/gsocketlistener.c b/gio/gsocketlistener.c index c20bd5bbf..970540a72 100644 --- a/gio/gsocketlistener.c +++ b/gio/gsocketlistener.c @@ -263,7 +263,7 @@ g_socket_listener_add_socket (GSocketListener *listener, * * Note that adding an IPv6 address, depending on the platform, * may or may not result in a listener that also accepts IPv4 - * connections. For more determinstic behaviour, see + * connections. For more deterministic behavior, see * g_socket_listener_add_inet_port(). * * @source_object will be passed out in the various calls @@ -272,7 +272,7 @@ g_socket_listener_add_socket (GSocketListener *listener, * different things depending on what address is connected to. * * If successful and @effective_address is non-%NULL then it will - * be set to the address that the binding actually occured at. This + * be set to the address that the binding actually occurred at. This * is helpful for determining the port number that was used for when * requesting a binding to port 0 (ie: "any port"). This address, if * requested, belongs to the caller and must be freed. @@ -770,7 +770,7 @@ g_socket_listener_accept_socket_async (GSocketListener *listener, * @listener: a #GSocketListener * @result: a #GAsyncResult. * @source_object: (out) (transfer none) (allow-none): Optional #GObject identifying this source - * @error: a #GError location to store the error occuring, or %NULL to + * @error: a #GError location to store the error occurring, or %NULL to * ignore. * * Finishes an async accept operation. See g_socket_listener_accept_socket_async() @@ -837,7 +837,7 @@ g_socket_listener_accept_async (GSocketListener *listener, * @listener: a #GSocketListener * @result: a #GAsyncResult. * @source_object: (out) (transfer none) (allow-none): Optional #GObject identifying this source - * @error: a #GError location to store the error occuring, or %NULL to + * @error: a #GError location to store the error occurring, or %NULL to * ignore. * * Finishes an async accept operation. See g_socket_listener_accept_async() @@ -928,11 +928,11 @@ g_socket_listener_close (GSocketListener *listener) * g_socket_listener_add_any_inet_port: * @listener: a #GSocketListener * @source_object: (allow-none): Optional #GObject identifying this source - * @error: a #GError location to store the error occuring, or %NULL to + * @error: a #GError location to store the error occurring, or %NULL to * ignore. * * Listens for TCP connections on any available port number for both - * IPv6 and IPv4 (if each are available). + * IPv6 and IPv4 (if each is available). * * This is useful if you need to have a socket for incoming connections * but don't care about the specific port number. diff --git a/gio/gsocketservice.c b/gio/gsocketservice.c index 8d9f724b0..830267313 100644 --- a/gio/gsocketservice.c +++ b/gio/gsocketservice.c @@ -34,8 +34,8 @@ * signal is emitted. * * A #GSocketService is a subclass of #GSocketListener and you need - * to add the addresses you want to accept connections on to the - * with the #GSocketListener APIs. + * to add the addresses you want to accept connections on with the + * #GSocketListener APIs. * * There are two options for implementing a network service based on * #GSocketService. The first is to create the service using @@ -260,6 +260,9 @@ g_socket_service_class_init (GSocketServiceClass *class) * handling of @connection, but may not block; in essence, * asynchronous operations must be used. * + * @connection will be unreffed once the signal handler returns, so + * you need to ref it yourself if you are planning to use it. + * * Returns: %TRUE to stop other handlers from being called * * Since: 2.22 diff --git a/gio/gtcpconnection.c b/gio/gtcpconnection.c index cbb606478..69881f62a 100644 --- a/gio/gtcpconnection.c +++ b/gio/gtcpconnection.c @@ -326,7 +326,7 @@ g_tcp_connection_close_async (GIOStream *stream, * @graceful_disconnect: Whether to do graceful disconnects or not * * This enabled graceful disconnects on close. A graceful disconnect - * means that we signal the recieving end that the connection is terminated + * means that we signal the receiving end that the connection is terminated * and wait for it to close the connection before closing the connection. * * A graceful disconnect means that we can be sure that we successfully sent diff --git a/gio/gthreadedsocketservice.c b/gio/gthreadedsocketservice.c index e69804e7f..6d9bc4156 100644 --- a/gio/gthreadedsocketservice.c +++ b/gio/gthreadedsocketservice.c @@ -37,7 +37,7 @@ * until the connection is closed. * * The service is implemented using a thread pool, so there is a - * limited amount of threads availible to serve incomming requests. + * limited amount of threads available to serve incoming requests. * The service automatically stops the #GSocketService from accepting * new connections when all threads are busy. * @@ -234,7 +234,7 @@ g_threaded_socket_service_class_init (GThreadedSocketServiceClass *class) * @connection and may perform blocking IO. The signal handler need * not return until the connection is closed. * - * Returns: %TRUE to stope further signal handlers from being called + * Returns: %TRUE to stop further signal handlers from being called */ g_threaded_socket_service_run_signal = g_signal_new ("run", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_LAST, diff --git a/gio/gunixconnection.c b/gio/gunixconnection.c index 4d1cf40d4..0617bb9e3 100644 --- a/gio/gunixconnection.c +++ b/gio/gunixconnection.c @@ -66,8 +66,8 @@ G_DEFINE_TYPE_WITH_CODE (GUnixConnection, g_unix_connection, * @cancellable: (allow-none): optional #GCancellable object, %NULL to ignore. * @error: (allow-none): #GError for error reporting, or %NULL to ignore. * - * Passes a file descriptor to the recieving side of the - * connection. The recieving end has to call g_unix_connection_receive_fd() + * Passes a file descriptor to the receiving side of the + * connection. The receiving end has to call g_unix_connection_receive_fd() * to accept the file descriptor. * * As well as sending the fd this also writes a single byte to the @@ -308,7 +308,7 @@ gboolean g_unix_connection_create_pair (GUnixCo * @error: Return location for error or %NULL. * * Passes the credentials of the current user the receiving side - * of the connection. The recieving end has to call + * of the connection. The receiving end has to call * g_unix_connection_receive_credentials() (or similar) to accept the * credentials. * diff --git a/gio/gvdb/gvdb-builder.c b/gio/gvdb/gvdb-builder.c index 4b48d804e..f65ca7dbd 100644 --- a/gio/gvdb/gvdb-builder.c +++ b/gio/gvdb/gvdb-builder.c @@ -24,7 +24,9 @@ #include #include +#if !defined(G_OS_WIN32) || !defined(_MSC_VER) #include +#endif #include diff --git a/gio/tests/gapplication-example-cmdline2.c b/gio/tests/gapplication-example-cmdline2.c index 43512247c..ed8ddcded 100644 --- a/gio/tests/gapplication-example-cmdline2.c +++ b/gio/tests/gapplication-example-cmdline2.c @@ -30,16 +30,20 @@ test_local_cmdline (GApplication *application, argv = *arguments; - for (i = 0; argv[i]; i++) + i = 1; + while (argv[i]) { if (g_str_has_prefix (argv[i], "--local-")) { g_print ("handling argument %s locally\n", argv[i]); - for (j = i + 1; argv[j]; j++) - { - argv[j - 1] = argv[j]; - argv[j] = NULL; - } + g_free (argv[i]); + for (j = i; argv[j]; j++) + argv[j] = argv[j + 1]; + } + else + { + g_print ("not handling argument %s locally\n", argv[i]); + i++; } } diff --git a/gio/tests/gapplication.c b/gio/tests/gapplication.c index 4bd70b33a..ac0022623 100644 --- a/gio/tests/gapplication.c +++ b/gio/tests/gapplication.c @@ -221,6 +221,79 @@ basic (void) session_bus_down (); } + +static GApplication *recently_activated; +static GMainLoop *loop; + +static void +nonunique_activate (GApplication *application) +{ + recently_activated = application; + + if (loop != NULL) + g_main_loop_quit (loop); +} + +static GApplication * +make_app (gboolean non_unique) +{ + GApplication *app; + gboolean ok; + + app = g_application_new ("org.gtk.TestApplication", + non_unique ? G_APPLICATION_NON_UNIQUE : 0); + g_signal_connect (app, "activate", G_CALLBACK (nonunique_activate), NULL); + ok = g_application_register (app, NULL, NULL); + if (!ok) + { + g_object_unref (app); + return NULL; + } + + g_application_activate (app); + + return app; +} + +static void +test_nonunique (void) +{ + GApplication *first, *second, *third, *fourth; + + session_bus_up (); + + first = make_app (TRUE); + /* non-remote because it is non-unique */ + g_assert (!g_application_get_is_remote (first)); + g_assert (recently_activated == first); + recently_activated = NULL; + + second = make_app (FALSE); + /* non-remote because it is first */ + g_assert (!g_application_get_is_remote (second)); + g_assert (recently_activated == second); + recently_activated = NULL; + + third = make_app (TRUE); + /* non-remote because it is non-unique */ + g_assert (!g_application_get_is_remote (third)); + g_assert (recently_activated == third); + recently_activated = NULL; + + fourth = make_app (FALSE); + /* should have failed to register due to being + * unable to register the object paths + */ + g_assert (fourth == NULL); + g_assert (recently_activated == NULL); + + g_object_unref (first); + g_object_unref (second); + g_object_unref (third); + + session_bus_down (); +} + static void properties (void) { @@ -289,6 +362,7 @@ main (int argc, char **argv) g_test_init (&argc, &argv, NULL); g_test_add_func ("/gapplication/basic", basic); + g_test_add_func ("/gapplication/non-unique", test_nonunique); g_test_add_func ("/gapplication/properties", properties); g_test_add_func ("/gapplication/app-id", appid); diff --git a/gio/tests/gdbus-peer.c b/gio/tests/gdbus-peer.c index e3046181e..e582d570f 100644 --- a/gio/tests/gdbus-peer.c +++ b/gio/tests/gdbus-peer.c @@ -1083,7 +1083,6 @@ delayed_message_processing (void) /* ---------------------------------------------------------------------------------------------------- */ -#ifdef BUG_631379_FIXED static gboolean nonce_tcp_on_authorize_authenticated_peer (GDBusAuthObserver *observer, GIOStream *stream, @@ -1285,7 +1284,6 @@ test_nonce_tcp (void) g_main_loop_quit (service_loop); g_thread_join (service_thread); } -#endif static void test_credentials (void) @@ -1438,6 +1436,95 @@ test_overflow (void) /* ---------------------------------------------------------------------------------------------------- */ +static gboolean +tcp_anonymous_on_new_connection (GDBusServer *server, + GDBusConnection *connection, + gpointer user_data) +{ + gboolean *seen_connection = user_data; + *seen_connection = TRUE; + return TRUE; +} + +static gpointer +tcp_anonymous_service_thread_func (gpointer user_data) +{ + gboolean *seen_connection = user_data; + GMainContext *service_context; + GError *error; + + service_context = g_main_context_new (); + g_main_context_push_thread_default (service_context); + + error = NULL; + server = g_dbus_server_new_sync ("tcp:", + G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS, + test_guid, + NULL, /* GDBusObserver* */ + NULL, /* GCancellable* */ + &error); + g_assert_no_error (error); + + g_signal_connect (server, + "new-connection", + G_CALLBACK (tcp_anonymous_on_new_connection), + seen_connection); + + g_dbus_server_start (server); + + service_loop = g_main_loop_new (service_context, FALSE); + g_main_loop_run (service_loop); + + g_main_context_pop_thread_default (service_context); + + g_main_loop_unref (service_loop); + g_main_context_unref (service_context); + + return NULL; +} + +static void +test_tcp_anonymous (void) +{ + gboolean seen_connection; + GThread *service_thread; + GDBusConnection *connection; + GError *error; + + seen_connection = FALSE; + service_loop = NULL; + service_thread = g_thread_create (tcp_anonymous_service_thread_func, + &seen_connection, /* user_data */ + TRUE, /* joinable */ + &error); + while (service_loop == NULL) + g_thread_yield (); + g_assert (server != NULL); + + error = NULL; + connection = g_dbus_connection_new_for_address_sync (g_dbus_server_get_client_address (server), + G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT, + NULL, /* GDBusAuthObserver* */ + NULL, /* GCancellable */ + &error); + g_assert_no_error (error); + g_assert (connection != NULL); + + while (!seen_connection) + g_thread_yield (); + + g_object_unref (connection); + + g_main_loop_quit (service_loop); + g_dbus_server_stop (server); + g_object_unref (server); + server = NULL; + + g_thread_join (service_thread); +} + +/* ---------------------------------------------------------------------------------------------------- */ + int main (int argc, char *argv[]) @@ -1460,9 +1547,8 @@ main (int argc, g_test_add_func ("/gdbus/peer-to-peer", test_peer); g_test_add_func ("/gdbus/delayed-message-processing", delayed_message_processing); -#ifdef BUG_631379_FIXED g_test_add_func ("/gdbus/nonce-tcp", test_nonce_tcp); -#endif + g_test_add_func ("/gdbus/tcp-anonymous", test_tcp_anonymous); g_test_add_func ("/gdbus/credentials", test_credentials); g_test_add_func ("/gdbus/overflow", test_overflow); diff --git a/gio/tests/gdbus-serialization.c b/gio/tests/gdbus-serialization.c index 38227c34f..0ca13ef0a 100644 --- a/gio/tests/gdbus-serialization.c +++ b/gio/tests/gdbus-serialization.c @@ -735,16 +735,31 @@ message_serialize_complex (void) /* ---------------------------------------------------------------------------------------------------- */ +static void +replace (char *blob, + gsize len, + const char *before, + const char *after) +{ + gsize i; + gsize slen = strlen (before) + 1; + + g_assert_cmpuint (strlen (before), ==, strlen (after)); + g_assert_cmpuint (len, >=, slen); + + for (i = 0; i < (len - slen + 1); i++) + { + if (memcmp (blob + i, before, slen) == 0) + memcpy (blob + i, after, slen); + } +} + static void message_serialize_invalid (void) { guint n; - /* Here we're relying on libdbus-1's DBusMessage type not checking - * anything. If that were to change, we'd need to do our own - * thing. - * - * Other things we could check (note that GDBus _does_ check for all + /* Other things we could check (note that GDBus _does_ check for all * these things - we just don't have test-suit coverage for it) * * - array exceeding 64 MiB (2^26 bytes) - unfortunately libdbus-1 checks @@ -769,9 +784,13 @@ message_serialize_invalid (void) DBusMessage *dbus_message; char *blob; int blob_len; + /* these are in pairs with matching length */ + const gchar *valid_utf8_str = "this is valid..."; const gchar *invalid_utf8_str = "this is invalid\xff"; - const gchar *invalid_object_path = "/this/is/not a valid object path"; + const gchar *valid_signature = "a{sv}a{sv}a{sv}aiai"; const gchar *invalid_signature = "not valid signature"; + const gchar *valid_object_path = "/this/is/a/valid/dbus/object/path"; + const gchar *invalid_object_path = "/this/is/not a valid object path!"; dbus_message = dbus_message_new (DBUS_MESSAGE_TYPE_METHOD_CALL); dbus_message_set_serial (dbus_message, 0x41); @@ -782,21 +801,21 @@ message_serialize_invalid (void) case 0: /* invalid UTF-8 */ dbus_message_append_args (dbus_message, - DBUS_TYPE_STRING, &invalid_utf8_str, + DBUS_TYPE_STRING, &valid_utf8_str, DBUS_TYPE_INVALID); break; case 1: /* invalid object path */ dbus_message_append_args (dbus_message, - DBUS_TYPE_OBJECT_PATH, &invalid_object_path, + DBUS_TYPE_OBJECT_PATH, &valid_object_path, DBUS_TYPE_INVALID); break; case 2: /* invalid signature */ dbus_message_append_args (dbus_message, - DBUS_TYPE_SIGNATURE, &invalid_signature, + DBUS_TYPE_SIGNATURE, &valid_signature, DBUS_TYPE_INVALID); break; @@ -805,6 +824,11 @@ message_serialize_invalid (void) break; } dbus_message_marshal (dbus_message, &blob, &blob_len); + /* hack up the message to be invalid by replacing each valid string + * with its invalid counterpart */ + replace (blob, blob_len, valid_utf8_str, invalid_utf8_str); + replace (blob, blob_len, valid_object_path, invalid_object_path); + replace (blob, blob_len, valid_signature, invalid_signature); error = NULL; message = g_dbus_message_new_from_blob ((guchar *) blob, diff --git a/gio/tests/proxy.c b/gio/tests/proxy.c index cf54d6935..664be5866 100644 --- a/gio/tests/proxy.c +++ b/gio/tests/proxy.c @@ -278,7 +278,7 @@ use_inet_address (gboolean synchronous) { GSocketAddressEnumerator *enumerator; GSocketAddress *sockaddr; - GInetAddress *addr; + GInetAddress *addr = NULL; guint port = 0; gchar **ip_and_port; diff --git a/glib/Makefile.am b/glib/Makefile.am index 6c53e176b..5a9ab53a6 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -206,6 +206,9 @@ libglib_2_0_la_SOURCES = \ gprintf.c \ gprintfint.h +if OS_UNIX +libglib_2_0_la_SOURCES += glib-unix.c +endif EXTRA_libglib_2_0_la_SOURCES = \ giounix.c \ @@ -219,6 +222,10 @@ glibinclude_HEADERS = \ glib-object.h \ glib.h +if OS_UNIX +glibinclude_HEADERS += glib-unix.h +endif + glibsubincludedir=$(includedir)/glib-2.0/glib glibsubinclude_HEADERS = \ galloca.h \ @@ -452,7 +459,7 @@ dist-hook: $(BUILT_EXTRA_DIST) ../build/win32/vs9/glib.vcproj ../build/win32/vs1 done >libglib.vs10.sourcefiles $(CPP) -P - <$(top_srcdir)/build/win32/vs10/glib.vcxprojin >$@ rm libglib.vs10.sourcefiles - + ../build/win32/vs10/glib.vcxproj.filters: $(top_srcdir)/build/win32/vs10/glib.vcxproj.filtersin for F in $(libglib_2_0_la_SOURCES); do \ case $$F in \ diff --git a/glib/gdatetime.c b/glib/gdatetime.c index f76c44274..a8a29329c 100644 --- a/glib/gdatetime.c +++ b/glib/gdatetime.c @@ -2385,10 +2385,9 @@ g_date_time_format (GDateTime *datetime, gint64 offset = g_date_time_get_utc_offset (datetime) / USEC_PER_SECOND; - g_string_append_printf (outstr, "%c%02d%02d", - offset >= 0 ? '+' : '-', + g_string_append_printf (outstr, "%+03d%02d", (int) offset / 3600, - (int) offset / 60 % 60); + (int) abs(offset) / 60 % 60); } else g_string_append (outstr, "+0000"); diff --git a/glib/ghash.c b/glib/ghash.c index 4323068b7..d62db574d 100644 --- a/glib/ghash.c +++ b/glib/ghash.c @@ -479,22 +479,28 @@ g_hash_table_remove_all_nodes (GHashTable *hash_table, { int i; - for (i = 0; i < hash_table->size; i++) + if (notify && + (hash_table->key_destroy_func != NULL || + hash_table->value_destroy_func != NULL)) { - GHashNode *node = &hash_table->nodes [i]; - - if (node->key_hash > 1) + for (i = 0; i < hash_table->size; i++) { - if (notify && hash_table->key_destroy_func) - hash_table->key_destroy_func (node->key); + GHashNode *node = &hash_table->nodes [i]; - if (notify && hash_table->value_destroy_func) - hash_table->value_destroy_func (node->value); + if (node->key_hash > 1) + { + if (hash_table->key_destroy_func != NULL) + hash_table->key_destroy_func (node->key); + + if (hash_table->value_destroy_func != NULL) + hash_table->value_destroy_func (node->value); + } } } /* We need to set node->key_hash = 0 for all nodes - might as well be GC - * friendly and clear everything */ + * friendly and clear everything + */ memset (hash_table->nodes, 0, hash_table->size * sizeof (GHashNode)); hash_table->nnodes = 0; diff --git a/glib/glib-unix.c b/glib/glib-unix.c new file mode 100644 index 000000000..cf4748bd5 --- /dev/null +++ b/glib/glib-unix.c @@ -0,0 +1,214 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 2011 Red Hat, Inc. + * + * glib-unix.c: UNIX specific API wrappers and convenience functions + * + * 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. + * + * Authors: Colin Walters + */ + +#include "config.h" + +#include "glib-unix.h" +#include "gmain-internal.h" + +#include + +/** + * SECTION:gunix + * @title: UNIX-specific utilities and integration + * @short_description: pipes, signal handling + * @include: glib-unix.h + * + * Most of GLib is intended to be portable; in constrast, this set of + * functions is designed for programs which explicitly target UNIX, or + * are using it to build higher level abstractions which would be + * conditionally compiled if the platform matches G_OS_UNIX. + * + * To use these functions, you must explicitly include the + * "glib-unix.h" header. + */ + +GQuark +g_unix_error_quark (void) +{ + return g_quark_from_static_string ("g-unix-error-quark"); +} + +static gboolean +g_unix_set_error_from_errno (GError **error) +{ + int saved_errno = errno; + g_set_error_literal (error, + G_UNIX_ERROR, + 0, + g_strerror (errno)); + errno = saved_errno; + return FALSE; +} + +static gboolean +g_unix_set_error_from_errno_saved (GError **error, + int saved_errno) +{ + g_set_error_literal (error, + G_UNIX_ERROR, + 0, + g_strerror (saved_errno)); + errno = saved_errno; + return FALSE; +} + +/** + * g_unix_pipe_flags: + * @fds: Array of two integers + * @flags: Bitfield of file descriptor flags, see "man 2 fcntl" + * @error: a #GError + * + * Similar to the UNIX pipe() call, but on modern systems like Linux + * uses the pipe2() system call, which atomically creates a pipe with + * the configured flags. The only supported flag currently is + * %FD_CLOEXEC. If for example you want to configure %O_NONBLOCK, that + * must still be done separately with fcntl(). + * + * This function does *not* take %O_CLOEXEC, it takes %FD_CLOEXEC as if + * for fcntl(); these are different on Linux/glibc. + * + * Returns: %TRUE on success, %FALSE if not (and errno will be set). + * + * Since: 2.30 + */ +gboolean +g_unix_pipe_flags (int *fds, + int flags, + GError **error) +{ + int ecode; + + /* We only support FD_CLOEXEC */ + g_return_val_if_fail ((flags & (FD_CLOEXEC)) == flags, FALSE); + +#ifdef HAVE_PIPE2 + { + int pipe2_flags = 0; + if (flags & FD_CLOEXEC) + pipe2_flags |= O_CLOEXEC; + /* Atomic */ + ecode = pipe2 (fds, pipe2_flags); + if (ecode == -1 && errno != ENOSYS) + return g_unix_set_error_from_errno (error); + /* Fall through on -ENOSYS, we must be running on an old kernel */ + } +#endif + ecode = pipe (fds); + if (ecode == -1) + return g_unix_set_error_from_errno (error); + ecode = fcntl (fds[0], flags); + if (ecode == -1) + { + int saved_errno = errno; + close (fds[0]); + return g_unix_set_error_from_errno_saved (error, saved_errno); + } + ecode = fcntl (fds[0], flags); + if (ecode == -1) + { + int saved_errno = errno; + close (fds[0]); + close (fds[1]); + return g_unix_set_error_from_errno_saved (error, saved_errno); + } + return TRUE; +} + +/** + * g_unix_signal_source_new: + * @signum: A signal number + * + * Create a #GSource that will be dispatched upon delivery of the UNIX + * signal @signum. Currently only %SIGHUP, %SIGINT, and %SIGTERM can + * be monitored. Note that unlike the UNIX default, all sources which + * have created a watch will be dispatched, regardless of which + * underlying thread invoked g_unix_signal_create_watch(). + * + * For example, an effective use of this function is to handle SIGTERM + * cleanly; flushing any outstanding files, and then calling + * g_main_loop_quit (). It is not safe to do any of this a regular + * UNIX signal handler; your handler may be invoked while malloc() or + * another library function is running, causing reentrancy if you + * attempt to use it from the handler. None of the GLib/GObject API + * is safe against this kind of reentrancy. + * + * The interaction of this source when combined with native UNIX + * functions like sigprocmask() is not defined. + * + * For reliable behavior, if your program links to gthread + * (either directly or indirectly via GObject, GIO, or a higher level + * library), you should ensure g_thread_init() is called before using + * this function. For example, if your program uses GObject, call + * g_type_init(). + * + * The source will not initially be associated with any #GMainContext + * and must be added to one with g_source_attach() before it will be + * executed. + * + * Returns: A newly created #GSource + */ +GSource * +g_unix_signal_source_new (int signum) +{ + g_return_val_if_fail (signum == SIGHUP || signum == SIGINT || signum == SIGTERM, NULL); + + return _g_main_create_unix_signal_watch (signum); +} + +/** + * g_unix_signal_add_watch_full: + * @signum: Signal number + * @priority: the priority of the signal source. Typically this will be in + * the range between #G_PRIORITY_DEFAULT and #G_PRIORITY_HIGH. + * @handler: Callback + * @user_data: Data for @handler + * @notify: #GDestroyNotify for @handler + * + * A convenience function for g_unix_signal_source_new(), which + * attaches to the default #GMainContext. You can remove the watch + * using g_source_remove(). + * + * Returns: An ID (greater than 0) for the event source + */ +guint +g_unix_signal_add_watch_full (int signum, + int priority, + GSourceFunc handler, + gpointer user_data, + GDestroyNotify notify) +{ + guint id; + GSource *source; + + source = g_unix_signal_source_new (signum); + + if (priority != G_PRIORITY_DEFAULT) + g_source_set_priority (source, priority); + + g_source_set_callback (source, handler, user_data, notify); + id = g_source_attach (source, NULL); + g_source_unref (source); + + return id; +} diff --git a/glib/glib-unix.h b/glib/glib-unix.h new file mode 100644 index 000000000..e72477852 --- /dev/null +++ b/glib/glib-unix.h @@ -0,0 +1,82 @@ +/* glib-unix.h - Unix specific integration + * Copyright (C) 2011 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library 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 __G_UNIX_H__ +#define __G_UNIX_H__ + +/* We need to include the UNIX headers needed to use the APIs below, + * but we also take this opportunity to include a wide selection of + * other UNIX headers. If one of the headers below is broken on some + * system, work around it here (or better, fix the system or tell + * people to use a better one). + */ +#ifndef _GNU_SOURCE +#define _G_GNU_SOURCE_TEMPORARILY_DEFINED +#define _GNU_SOURCE +#endif +#ifdef HAVE_UNISTD_H +#include +#endif +#include +#include +#include +#include +#ifdef _G_GNU_SOURCE_TEMPORARILY_DEFINED +#undef _GNU_SOURCE +#undef _G_GNU_SOURCE_TEMPORARILY_DEFINED +#endif + +#include + +#ifndef G_OS_UNIX +#error "This header may only be used on UNIX" +#endif + +/** + * G_UNIX_ERROR: + * + * Error domain for API in the "g_unix_" namespace. Note that there + * is no exported enumeration mapping %errno. Instead, all functions + * ensure that %errno is relevant. The code for all #G_UNIX_ERROR is + * always %0, and the error message is always generated via + * g_strerror(). + * + * It is expected that most code will not look at %errno from these + * APIs. Important cases where one would want to differentiate between + * errors are already covered by existing cross-platform GLib API, + * such as e.g. #GFile wrapping %ENOENT. However, it is provided for + * completeness, at least. + */ +#define G_UNIX_ERROR (g_unix_error_quark()) + +GQuark g_unix_error_quark (void); + +gboolean g_unix_pipe_flags (int *fds, + int flags, + GError **error); + +GSource *g_unix_signal_source_new (int signum); + +guint g_unix_signal_add_watch_full (int signum, + int priority, + GSourceFunc handler, + gpointer user_data, + GDestroyNotify notify); + +#endif diff --git a/glib/glib.symbols b/glib/glib.symbols index 0ec14b165..bc1c32395 100644 --- a/glib/glib.symbols +++ b/glib/glib.symbols @@ -1451,6 +1451,7 @@ g_test_config_vars #endif g_test_create_case g_test_create_suite +g_test_fail g_test_get_root g_test_init g_test_log_buffer_free @@ -1977,6 +1978,17 @@ g_hostname_to_unicode #endif #endif +#if IN_HEADER(__G_UNIX_H__) +#if IN_FILE(__G_UNIX_C__) +#ifdef G_OS_UNIX +g_unix_pipe_flags +g_unix_error_quark +g_unix_signal_source_new +g_unix_signal_add_watch_full +#endif +#endif +#endif + #ifdef INCLUDE_VARIABLES g_ascii_table g_utf8_skip diff --git a/glib/gmain-internal.h b/glib/gmain-internal.h new file mode 100644 index 000000000..648aff3e6 --- /dev/null +++ b/glib/gmain-internal.h @@ -0,0 +1,35 @@ +/* gmain-internal.h - GLib-internal mainloop API + * Copyright (C) 2011 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library 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. + */ + +#if !defined (GLIB_COMPILATION) +#error "This is a private header" +#endif + +#ifndef __G_MAIN_INTERNAL_H__ +#define __G_MAIN_INTERNAL_H__ + +#include "gmain.h" + +G_BEGIN_DECLS + +GSource *_g_main_create_unix_signal_watch (int signum); + +G_END_DECLS + +#endif /* __G_MAIN_H__ */ diff --git a/glib/gmain.c b/glib/gmain.c index 718c36c88..0be3733db 100644 --- a/glib/gmain.c +++ b/glib/gmain.c @@ -62,6 +62,10 @@ #define G_MAIN_POLL_DEBUG #endif +#ifdef G_OS_UNIX +#include "glib-unix.h" +#endif + #include #include #include @@ -73,6 +77,7 @@ #include #endif /* HAVE_UNISTD_H */ #include +#include #ifdef G_OS_WIN32 #define STRICT @@ -84,11 +89,6 @@ #include #endif /* G_OS_BEOS */ -#ifdef G_OS_UNIX -#include -#include -#endif - #include "gmain.h" #include "garray.h" @@ -188,6 +188,7 @@ typedef struct _GTimeoutSource GTimeoutSource; typedef struct _GChildWatchSource GChildWatchSource; +typedef struct _GUnixSignalWatchSource GUnixSignalWatchSource; typedef struct _GPollRec GPollRec; typedef struct _GSourceCallback GSourceCallback; @@ -306,6 +307,13 @@ struct _GChildWatchSource #endif /* G_OS_WIN32 */ }; +struct _GUnixSignalWatchSource +{ + GSource source; + int signum; + gboolean pending; +}; + struct _GPollRec { GPollFD *fd; @@ -365,6 +373,8 @@ static void g_main_context_remove_poll_unlocked (GMainContext *context, GPollFD *fd); static void g_main_context_wakeup_unlocked (GMainContext *context); +static void _g_main_wake_up_all_contexts (void); + static gboolean g_timeout_prepare (GSource *source, gint *timeout); static gboolean g_timeout_check (GSource *source); @@ -377,6 +387,18 @@ static gboolean g_child_watch_check (GSource *source); static gboolean g_child_watch_dispatch (GSource *source, GSourceFunc callback, gpointer user_data); +#ifdef G_OS_UNIX +static void g_unix_signal_handler (int signum); +static void init_unix_signal_wakeup_state_unlocked (void); +static void init_unix_signal_wakeup_state (void); +static gboolean g_unix_signal_watch_prepare (GSource *source, + gint *timeout); +static gboolean g_unix_signal_watch_check (GSource *source); +static gboolean g_unix_signal_watch_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data); +static void g_unix_signal_watch_finalize (GSource *source); +#endif static gboolean g_idle_prepare (GSource *source, gint *timeout); static gboolean g_idle_check (GSource *source); @@ -389,15 +411,47 @@ static GMainContext *default_main_context; static GSList *main_contexts_without_pipe = NULL; #ifndef G_OS_WIN32 -/* Child status monitoring code */ + +/* The UNIX signal pipe contains a single byte specifying which + * signal was received. + */ +#define _UNIX_SIGNAL_PIPE_SIGCHLD_CHAR 'C' +#define _UNIX_SIGNAL_PIPE_SIGHUP_CHAR 'H' +#define _UNIX_SIGNAL_PIPE_SIGINT_CHAR 'I' +#define _UNIX_SIGNAL_PIPE_SIGTERM_CHAR 'T' +/* Guards all the data below */ +G_LOCK_DEFINE_STATIC (unix_signal_lock); enum { - CHILD_WATCH_UNINITIALIZED, - CHILD_WATCH_INITIALIZED_SINGLE, - CHILD_WATCH_INITIALIZED_THREADED + UNIX_SIGNAL_UNINITIALIZED = 0, + UNIX_SIGNAL_INITIALIZED_SINGLE, + UNIX_SIGNAL_INITIALIZED_THREADED }; -static gint child_watch_init_state = CHILD_WATCH_UNINITIALIZED; +static gint unix_signal_init_state = UNIX_SIGNAL_UNINITIALIZED; +typedef struct { + gboolean sigchld_handler_installed : 1; + gboolean sighup_handler_installed : 1; + gboolean sigint_handler_installed : 1; + gboolean sigterm_handler_installed : 1; + + /* These are only used in the UNIX_SIGNAL_INITIALIZED_SINGLE case */ + gboolean sighup_delivered : 1; + gboolean sigint_delivered : 1; + gboolean sigterm_delivered : 1; +} UnixSignalState; +static UnixSignalState unix_signal_state; +static gint unix_signal_wake_up_pipe[2]; +GSList *unix_signal_watches; + +/* Not guarded ( FIXME should it be? ) */ static gint child_watch_count = 1; -static gint child_watch_wake_up_pipe[2] = {0, 0}; + +static GSourceFuncs g_unix_signal_funcs = +{ + g_unix_signal_watch_prepare, + g_unix_signal_watch_check, + g_unix_signal_watch_dispatch, + g_unix_signal_watch_finalize +}; #endif /* !G_OS_WIN32 */ G_LOCK_DEFINE_STATIC (main_context_list); static GSList *main_context_list = NULL; @@ -515,23 +569,14 @@ g_main_context_unref (GMainContext *context) static void g_main_context_init_pipe (GMainContext *context) { + GError *error = NULL; + # ifndef G_OS_WIN32 if (context->wake_up_pipe[0] != -1) return; -#ifdef HAVE_PIPE2 - /* if this fails, we fall through and try pipe */ - pipe2 (context->wake_up_pipe, O_CLOEXEC); -#endif - if (context->wake_up_pipe[0] == -1) - { - if (pipe (context->wake_up_pipe) < 0) - g_error ("Cannot create pipe main loop wake-up: %s\n", - g_strerror (errno)); - - fcntl (context->wake_up_pipe[0], F_SETFD, FD_CLOEXEC); - fcntl (context->wake_up_pipe[1], F_SETFD, FD_CLOEXEC); - } + if (!g_unix_pipe_flags (context->wake_up_pipe, FD_CLOEXEC, &error)) + g_error ("Cannot create pipe main loop wake-up: %s", error->message); context->wake_up_rec.fd = context->wake_up_pipe[0]; context->wake_up_rec.events = G_IO_IN; @@ -3727,6 +3772,30 @@ g_main_context_get_poll_func (GMainContext *context) return result; } +static void +_g_main_wake_up_all_contexts (void) +{ + GSList *list; + + /* We were woken up. Wake up all other contexts in all other threads */ + G_LOCK (main_context_list); + for (list = main_context_list; list; list = list->next) + { + GMainContext *context; + + context = list->data; + if (g_atomic_int_get (&context->ref_count) > 0) + /* Due to racing conditions we can find ref_count == 0, in + * that case, however, the context is still not destroyed + * and no poll can be active, otherwise the ref_count + * wouldn't be 0 + */ + g_main_context_wakeup (context); + } + G_UNLOCK (main_context_list); +} + + /* HOLDS: context's lock */ /* Wake the main loop up from a poll() */ static void @@ -4232,13 +4301,169 @@ g_child_watch_prepare (GSource *source, return check_for_child_exited (source); } - static gboolean g_child_watch_check (GSource *source) { return check_for_child_exited (source); } +static gboolean +check_for_signal_delivery (GSource *source) +{ + GUnixSignalWatchSource *unix_signal_source = (GUnixSignalWatchSource*) source; + gboolean delivered; + + G_LOCK (unix_signal_lock); + if (unix_signal_init_state == UNIX_SIGNAL_INITIALIZED_SINGLE) + { + switch (unix_signal_source->signum) + { + case SIGHUP: + delivered = unix_signal_state.sighup_delivered; + break; + case SIGINT: + delivered = unix_signal_state.sigint_delivered; + break; + case SIGTERM: + delivered = unix_signal_state.sigterm_delivered; + break; + default: + g_assert_not_reached (); + delivered = FALSE; + break; + } + } + else + { + g_assert (unix_signal_init_state == UNIX_SIGNAL_INITIALIZED_THREADED); + delivered = unix_signal_source->pending; + } + G_UNLOCK (unix_signal_lock); + + return delivered; +} + +static gboolean +g_unix_signal_watch_prepare (GSource *source, + gint *timeout) +{ + *timeout = -1; + + return check_for_signal_delivery (source); +} + +static gboolean +g_unix_signal_watch_check (GSource *source) +{ + return check_for_signal_delivery (source); +} + +static gboolean +g_unix_signal_watch_dispatch (GSource *source, + GSourceFunc callback, + gpointer user_data) +{ + GUnixSignalWatchSource *unix_signal_source; + + unix_signal_source = (GUnixSignalWatchSource *) source; + + if (!callback) + { + g_warning ("Unix signal source dispatched without callback\n" + "You must call g_source_set_callback()."); + return FALSE; + } + + (callback) (user_data); + + G_LOCK (unix_signal_lock); + if (unix_signal_init_state == UNIX_SIGNAL_INITIALIZED_SINGLE) + { + switch (unix_signal_source->signum) + { + case SIGHUP: + unix_signal_state.sighup_delivered = FALSE; + break; + case SIGINT: + unix_signal_state.sigint_delivered = FALSE; + break; + case SIGTERM: + unix_signal_state.sigterm_delivered = FALSE; + break; + } + } + else + { + g_assert (unix_signal_init_state == UNIX_SIGNAL_INITIALIZED_THREADED); + unix_signal_source->pending = FALSE; + } + G_UNLOCK (unix_signal_lock); + + return TRUE; +} + +static void +ensure_unix_signal_handler_installed_unlocked (int signum) +{ + struct sigaction action; + + switch (signum) + { + case SIGHUP: + if (unix_signal_state.sighup_handler_installed) + return; + unix_signal_state.sighup_handler_installed = TRUE; + break; + case SIGINT: + if (unix_signal_state.sigint_handler_installed) + return; + unix_signal_state.sigint_handler_installed = TRUE; + break; + case SIGTERM: + if (unix_signal_state.sigterm_handler_installed) + return; + unix_signal_state.sigterm_handler_installed = TRUE; + break; + } + + init_unix_signal_wakeup_state_unlocked (); + + action.sa_handler = g_unix_signal_handler; + sigemptyset (&action.sa_mask); + action.sa_flags = 0; + sigaction (signum, &action, NULL); +} + +GSource * +_g_main_create_unix_signal_watch (int signum) +{ + GSource *source; + GUnixSignalWatchSource *unix_signal_source; + + init_unix_signal_wakeup_state (); + + source = g_source_new (&g_unix_signal_funcs, sizeof (GUnixSignalWatchSource)); + unix_signal_source = (GUnixSignalWatchSource *) source; + + unix_signal_source->signum = signum; + unix_signal_source->pending = FALSE; + + G_LOCK (unix_signal_lock); + ensure_unix_signal_handler_installed_unlocked (signum); + unix_signal_watches = g_slist_prepend (unix_signal_watches, unix_signal_source); + G_UNLOCK (unix_signal_lock); + + return source; +} + +static void +g_unix_signal_watch_finalize (GSource *source) +{ + G_LOCK (unix_signal_lock); + unix_signal_watches = g_slist_remove (unix_signal_watches, source); + G_UNLOCK (unix_signal_lock); +} + #endif /* G_OS_WIN32 */ static gboolean @@ -4267,110 +4492,202 @@ g_child_watch_dispatch (GSource *source, #ifndef G_OS_WIN32 static void -g_child_watch_signal_handler (int signum) +g_unix_signal_handler (int signum) { - child_watch_count ++; + if (signum == SIGCHLD) + child_watch_count ++; - if (child_watch_init_state == CHILD_WATCH_INITIALIZED_THREADED) + if (unix_signal_init_state == UNIX_SIGNAL_INITIALIZED_THREADED) { - write (child_watch_wake_up_pipe[1], "B", 1); + char buf[1]; + switch (signum) + { + case SIGCHLD: + buf[0] = _UNIX_SIGNAL_PIPE_SIGCHLD_CHAR; + break; + case SIGHUP: + buf[0] = _UNIX_SIGNAL_PIPE_SIGHUP_CHAR; + break; + case SIGINT: + buf[0] = _UNIX_SIGNAL_PIPE_SIGINT_CHAR; + break; + case SIGTERM: + buf[0] = _UNIX_SIGNAL_PIPE_SIGTERM_CHAR; + break; + default: + /* Shouldn't happen */ + return; + } + write (unix_signal_wake_up_pipe[1], buf, 1); } else { - /* We count on the signal interrupting the poll in the same thread. - */ + /* We count on the signal interrupting the poll in the same thread. */ + switch (signum) + { + case SIGCHLD: + /* Nothing to do - the handler will call waitpid() */ + break; + case SIGHUP: + unix_signal_state.sighup_delivered = TRUE; + break; + case SIGINT: + unix_signal_state.sigint_delivered = TRUE; + break; + case SIGTERM: + unix_signal_state.sigterm_delivered = TRUE; + break; + default: + g_assert_not_reached (); + break; + } } } static void -g_child_watch_source_init_single (void) +deliver_unix_signal (int signum) { - struct sigaction action; + GSList *iter; + g_assert (signum == SIGHUP || signum == SIGINT || signum == SIGTERM); - g_assert (! g_thread_supported()); - g_assert (child_watch_init_state == CHILD_WATCH_UNINITIALIZED); + G_LOCK (unix_signal_lock); + for (iter = unix_signal_watches; iter; iter = iter->next) + { + GUnixSignalWatchSource *source = iter->data; - child_watch_init_state = CHILD_WATCH_INITIALIZED_SINGLE; - - action.sa_handler = g_child_watch_signal_handler; - sigemptyset (&action.sa_mask); - action.sa_flags = SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); + if (source->signum != signum) + continue; + + source->pending = TRUE; + } + G_UNLOCK (unix_signal_lock); } -G_GNUC_NORETURN static gpointer -child_watch_helper_thread (gpointer data) +static gpointer unix_signal_helper_thread (gpointer data) G_GNUC_NORETURN; + +/* + * This thread is created whenever anything in GLib needs + * to deal with UNIX signals; at present, just SIGCHLD + * from g_child_watch_source_new(). + * + * Note: We could eventually make this thread a more public interface + * and allow e.g. GDBus to use it instead of its own worker thread. + */ +static gpointer +unix_signal_helper_thread (gpointer data) { while (1) { - gchar b[20]; - GSList *list; + gchar b[128]; + ssize_t i, bytes_read; + gboolean sigterm_received = FALSE; + gboolean sigint_received = FALSE; + gboolean sighup_received = FALSE; - read (child_watch_wake_up_pipe[0], b, 20); - - /* We were woken up. Wake up all other contexts in all other threads */ - G_LOCK (main_context_list); - for (list = main_context_list; list; list = list->next) + bytes_read = read (unix_signal_wake_up_pipe[0], b, sizeof (b)); + if (bytes_read < 0) { - GMainContext *context; - - context = list->data; - if (g_atomic_int_get (&context->ref_count) > 0) - /* Due to racing conditions we can find ref_count == 0, in - * that case, however, the context is still not destroyed - * and no poll can be active, otherwise the ref_count - * wouldn't be 0 */ - g_main_context_wakeup (context); + g_warning ("Failed to read from child watch wake up pipe: %s", + strerror (errno)); + /* Not much we can do here sanely; just wait a second and hope + * it was transient. + */ + g_usleep (G_USEC_PER_SEC); + continue; + } + for (i = 0; i < bytes_read; i++) + { + switch (b[i]) + { + case _UNIX_SIGNAL_PIPE_SIGCHLD_CHAR: + /* The child watch source will call waitpid() in its + * prepare() and check() methods; however, we don't + * know which pid exited, so we need to wake up + * all contexts. Note: actually we could get the pid + * from the "siginfo_t" via the handler, but to pass + * that info down the pipe would require a more structured + * data stream (as opposed to a single byte). + */ + break; + case _UNIX_SIGNAL_PIPE_SIGTERM_CHAR: + sigterm_received = TRUE; + break; + case _UNIX_SIGNAL_PIPE_SIGHUP_CHAR: + sighup_received = TRUE; + break; + case _UNIX_SIGNAL_PIPE_SIGINT_CHAR: + sigint_received = TRUE; + break; + default: + g_warning ("Invalid char '%c' read from child watch pipe", b[i]); + break; + } + if (sigterm_received) + deliver_unix_signal (SIGTERM); + if (sigint_received) + deliver_unix_signal (SIGINT); + if (sighup_received) + deliver_unix_signal (SIGHUP); + _g_main_wake_up_all_contexts (); } - G_UNLOCK (main_context_list); } } static void -g_child_watch_source_init_multi_threaded (void) +init_unix_signal_wakeup_state_unlocked (void) { GError *error = NULL; - struct sigaction action; - g_assert (g_thread_supported()); + if (!g_thread_supported ()) + { + /* There is nothing to do for initializing in the non-threaded + * case. + */ + if (unix_signal_init_state == UNIX_SIGNAL_UNINITIALIZED) + unix_signal_init_state = UNIX_SIGNAL_INITIALIZED_SINGLE; + return; + } - if (pipe (child_watch_wake_up_pipe) < 0) - g_error ("Cannot create wake up pipe: %s\n", g_strerror (errno)); - fcntl (child_watch_wake_up_pipe[1], F_SETFL, O_NONBLOCK | fcntl (child_watch_wake_up_pipe[1], F_GETFL)); + if (unix_signal_init_state == UNIX_SIGNAL_INITIALIZED_THREADED) + return; + + if (!g_unix_pipe_flags (unix_signal_wake_up_pipe, FD_CLOEXEC, &error)) + g_error ("Cannot create UNIX signal wake up pipe: %s\n", error->message); + fcntl (unix_signal_wake_up_pipe[1], F_SETFL, O_NONBLOCK | fcntl (unix_signal_wake_up_pipe[1], F_GETFL)); /* We create a helper thread that polls on the wakeup pipe indefinitely */ - /* FIXME: Think this through for races */ - if (g_thread_create (child_watch_helper_thread, NULL, FALSE, &error) == NULL) - g_error ("Cannot create a thread to monitor child exit status: %s\n", error->message); - child_watch_init_state = CHILD_WATCH_INITIALIZED_THREADED; - - action.sa_handler = g_child_watch_signal_handler; - sigemptyset (&action.sa_mask); - action.sa_flags = SA_RESTART | SA_NOCLDSTOP; - sigaction (SIGCHLD, &action, NULL); + if (g_thread_create (unix_signal_helper_thread, NULL, FALSE, &error) == NULL) + g_error ("Cannot create a thread to monitor UNIX signals: %s\n", error->message); + + unix_signal_init_state = UNIX_SIGNAL_INITIALIZED_THREADED; } static void -g_child_watch_source_init_promote_single_to_threaded (void) +init_unix_signal_wakeup_state (void) { - g_child_watch_source_init_multi_threaded (); + G_LOCK (unix_signal_lock); + + init_unix_signal_wakeup_state_unlocked (); + + G_UNLOCK (unix_signal_lock); } static void g_child_watch_source_init (void) { - if (g_thread_supported()) + init_unix_signal_wakeup_state (); + + G_LOCK (unix_signal_lock); + if (!unix_signal_state.sigchld_handler_installed) { - if (child_watch_init_state == CHILD_WATCH_UNINITIALIZED) - g_child_watch_source_init_multi_threaded (); - else if (child_watch_init_state == CHILD_WATCH_INITIALIZED_SINGLE) - g_child_watch_source_init_promote_single_to_threaded (); - } - else - { - if (child_watch_init_state == CHILD_WATCH_UNINITIALIZED) - g_child_watch_source_init_single (); + struct sigaction action; + action.sa_handler = g_unix_signal_handler; + sigemptyset (&action.sa_mask); + action.sa_flags = SA_RESTART | SA_NOCLDSTOP; + sigaction (SIGCHLD, &action, NULL); + unix_signal_state.sigchld_handler_installed = TRUE; } + G_UNLOCK (unix_signal_lock); } #endif /* !G_OS_WIN32 */ diff --git a/glib/gmarkup.c b/glib/gmarkup.c index 609b88d80..cfcde88e3 100644 --- a/glib/gmarkup.c +++ b/glib/gmarkup.c @@ -124,6 +124,8 @@ struct _GMarkupParseContext gint line_number; gint char_number; + GMarkupParseState state; + gpointer user_data; GDestroyNotify dnotify; @@ -134,7 +136,6 @@ struct _GMarkupParseContext GString *partial_chunk; GSList *spare_chunks; - GMarkupParseState state; GSList *tag_stack; GSList *tag_stack_gstr; GSList *spare_list_nodes; diff --git a/glib/gmessages.c b/glib/gmessages.c index 60330d413..337d19a50 100644 --- a/glib/gmessages.c +++ b/glib/gmessages.c @@ -548,14 +548,10 @@ g_logv (const gchar *log_domain, else abort (); #else -#if defined (G_ENABLE_DEBUG) && defined (SIGTRAP) if (!(test_level & G_LOG_FLAG_RECURSION)) G_BREAKPOINT (); else abort (); -#else /* !G_ENABLE_DEBUG || !SIGTRAP */ - abort (); -#endif /* !G_ENABLE_DEBUG || !SIGTRAP */ #endif /* !G_OS_WIN32 */ } @@ -818,7 +814,6 @@ _g_log_fallback_handler (const gchar *log_domain, #ifndef G_OS_WIN32 gchar pid_string[FORMAT_UNSIGNED_BUFSIZE]; #endif - gboolean is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0; int fd; /* we cannot call _any_ GLib functions in this fallback handler, @@ -855,10 +850,6 @@ _g_log_fallback_handler (const gchar *log_domain, write_string (fd, level_prefix); write_string (fd, ": "); write_string (fd, message); - if (is_fatal) - write_string (fd, "\naborting...\n"); - else - write_string (fd, "\n"); } static void @@ -927,7 +918,6 @@ g_log_default_handler (const gchar *log_domain, const gchar *message, gpointer unused_data) { - gboolean is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0; gchar level_prefix[STRING_BUFFER_SIZE], *string; GString *gstring; int fd; @@ -988,10 +978,7 @@ g_log_default_handler (const gchar *log_domain, g_string_free (msg, TRUE); } - if (is_fatal) - g_string_append (gstring, "\naborting...\n"); - else - g_string_append (gstring, "\n"); + g_string_append (gstring, "\n"); string = g_string_free (gstring, FALSE); diff --git a/glib/gregex.c b/glib/gregex.c index a1d231545..6bb655818 100644 --- a/glib/gregex.c +++ b/glib/gregex.c @@ -139,8 +139,8 @@ struct _GMatchInfo GRegexMatchFlags match_opts; /* options used at match time on the regex */ gint matches; /* number of matching sub patterns */ gint pos; /* position in the string where last match left off */ + gint n_offsets; /* number of offsets */ gint *offsets; /* array of offsets paired 0,1 ; 2,3 ; 3,4 etc */ - gint n_offsets; /* number of offsets */ gint *workspace; /* workspace for pcre_dfa_exec() */ gint n_workspace; /* number of workspace elements */ const gchar *string; /* string passed to the match function */ diff --git a/glib/gsequence.c b/glib/gsequence.c index fa8534700..2654f7b4e 100644 --- a/glib/gsequence.c +++ b/glib/gsequence.c @@ -1422,12 +1422,18 @@ g_sequence_iter_move (GSequenceIter *iter, gint delta) { gint new_pos; + gint len; g_return_val_if_fail (iter != NULL, NULL); + len = g_sequence_get_length (get_sequence (iter)); + new_pos = node_get_pos (iter) + delta; - new_pos = clamp_position (get_sequence (iter), new_pos); + if (new_pos < 0) + new_pos = 0; + else if (new_pos > len) + new_pos = len; return node_get_by_pos (iter, new_pos); } diff --git a/glib/gtestutils.c b/glib/gtestutils.c index c5754ec0c..1999908ba 100644 --- a/glib/gtestutils.c +++ b/glib/gtestutils.c @@ -49,7 +49,7 @@ #include "gstrfuncs.h" #include "gtimer.h" - + /* Global variable for storing assertion messages; this is the counterpart to * glibc's (private) __abort_msg variable, and allows developers and crash * analysis systems like Apport and ABRT to fish out assertion messages from @@ -101,6 +101,7 @@ static GRand *test_run_rand = NULL; static gchar *test_run_name = ""; static guint test_run_forks = 0; static guint test_run_count = 0; +static guint test_run_success = FALSE; static guint test_skip_count = 0; static GTimer *test_user_timer = NULL; static double test_user_stamp = 0; @@ -722,9 +723,11 @@ g_test_minimized_result (double minimized_quantity, long double largs = minimized_quantity; gchar *buffer; va_list args; + va_start (args, format); buffer = g_strdup_vprintf (format, args); va_end (args); + g_test_log (G_TEST_LOG_MIN_RESULT, buffer, NULL, 1, &largs); g_free (buffer); } @@ -751,9 +754,11 @@ g_test_maximized_result (double maximized_quantity, long double largs = maximized_quantity; gchar *buffer; va_list args; + va_start (args, format); buffer = g_strdup_vprintf (format, args); va_end (args); + g_test_log (G_TEST_LOG_MAX_RESULT, buffer, NULL, 1, &largs); g_free (buffer); } @@ -773,9 +778,11 @@ g_test_message (const char *format, { gchar *buffer; va_list args; + va_start (args, format); buffer = g_strdup_vprintf (format, args); va_end (args); + g_test_log (G_TEST_LOG_MESSAGE, buffer, NULL, 0, NULL); g_free (buffer); } @@ -820,8 +827,10 @@ void g_test_bug (const char *bug_uri_snippet) { char *c; + g_return_if_fail (test_uri_base != NULL); g_return_if_fail (bug_uri_snippet != NULL); + c = strstr (test_uri_base, "%s"); if (c) { @@ -853,6 +862,7 @@ g_test_get_root (void) g_free (test_suite_root->name); test_suite_root->name = g_strdup (""); } + return test_suite_root; } @@ -914,10 +924,12 @@ g_test_create_case (const char *test_name, GTestFixtureFunc data_teardown) { GTestCase *tc; + g_return_val_if_fail (test_name != NULL, NULL); g_return_val_if_fail (strchr (test_name, '/') == NULL, NULL); g_return_val_if_fail (test_name[0] != 0, NULL); g_return_val_if_fail (data_test != NULL, NULL); + tc = g_slice_new0 (GTestCase); tc->name = g_strdup (test_name); tc->test_data = (gpointer) test_data; @@ -925,6 +937,7 @@ g_test_create_case (const char *test_name, tc->fixture_setup = (void*) data_setup; tc->fixture_test = (void*) data_test; tc->fixture_teardown = (void*) data_teardown; + return tc; } @@ -985,6 +998,31 @@ g_test_add_vtable (const char *testpath, g_strfreev (segments); } +/** + * g_test_fail: + * + * Indicates that a test failed. This function can be called + * multiple times from the same test. You can use this function + * if your test failed in a recoverable way. + * + * Do not use this function if the failure of a test could cause + * other tests to malfunction. + * + * Calling this function will not stop the test from running, you + * need to return from the test function yourself. So you can + * produce additional diagnostic messages or even continue running + * the test. + * + * If not called from inside a test, this function does nothing. + * + * @Since: 2.30 + **/ +void +g_test_fail (void) +{ + test_run_success = FALSE; +} + /** * GTestFunc: * @@ -1081,6 +1119,7 @@ g_test_suite_add (GTestSuite *suite, { g_return_if_fail (suite != NULL); g_return_if_fail (test_case != NULL); + suite->cases = g_slist_prepend (suite->cases, test_case); } @@ -1099,6 +1138,7 @@ g_test_suite_add_suite (GTestSuite *suite, { g_return_if_fail (suite != NULL); g_return_if_fail (nestedsuite != NULL); + suite->suites = g_slist_prepend (suite->suites, nestedsuite); } @@ -1138,7 +1178,9 @@ g_test_queue_destroy (GDestroyNotify destroy_func, gpointer destroy_data) { DestroyEntry *dentry; + g_return_if_fail (destroy_func != NULL); + dentry = g_slice_new0 (DestroyEntry); dentry->destroy_func = destroy_func; dentry->destroy_data = destroy_data; @@ -1146,10 +1188,12 @@ g_test_queue_destroy (GDestroyNotify destroy_func, test_destroy_queue = dentry; } -static int +static gboolean test_case_run (GTestCase *tc) { gchar *old_name = test_run_name, *old_base = g_strdup (test_uri_base); + gboolean success = TRUE; + test_run_name = g_strconcat (old_name, "/", tc->name, NULL); if (++test_run_count <= test_skip_count) g_test_log (G_TEST_LOG_SKIP_CASE, test_run_name, NULL, 0, NULL); @@ -1165,6 +1209,7 @@ test_case_run (GTestCase *tc) void *fixture; g_test_log (G_TEST_LOG_START_CASE, test_run_name, NULL, 0, NULL); test_run_forks = 0; + test_run_success = TRUE; g_test_log_set_fatal_handler (NULL, NULL); g_timer_start (test_run_timer); fixture = tc->fixture_size ? g_malloc0 (tc->fixture_size) : tc->test_data; @@ -1185,7 +1230,9 @@ test_case_run (GTestCase *tc) if (tc->fixture_size) g_free (fixture); g_timer_stop (test_run_timer); - largs[0] = 0; /* OK */ + success = test_run_success; + test_run_success = FALSE; + largs[0] = success ? 0 : 1; /* OK */ largs[1] = test_run_forks; largs[2] = g_timer_elapsed (test_run_timer, NULL); g_test_log (G_TEST_LOG_STOP_CASE, NULL, NULL, G_N_ELEMENTS (largs), largs); @@ -1195,17 +1242,20 @@ test_case_run (GTestCase *tc) test_run_name = old_name; g_free (test_uri_base); test_uri_base = old_base; - return 0; + + return success; } static int g_test_run_suite_internal (GTestSuite *suite, const char *path) { - guint n_bad = 0, n_good = 0, bad_suite = 0, l; + guint n_bad = 0, l; gchar *rest, *old_name = test_run_name; GSList *slist, *reversed; + g_return_val_if_fail (suite != NULL, -1); + while (path[0] == '/') path++; l = strlen (path); @@ -1219,8 +1269,8 @@ g_test_run_suite_internal (GTestSuite *suite, guint n = l ? strlen (tc->name) : 0; if (l == n && strncmp (path, tc->name, n) == 0) { - n_good++; - n_bad += test_case_run (tc) != 0; + if (!test_case_run (tc)) + n_bad++; } } g_slist_free (reversed); @@ -1230,12 +1280,13 @@ g_test_run_suite_internal (GTestSuite *suite, GTestSuite *ts = slist->data; guint n = l ? strlen (ts->name) : 0; if (l == n && strncmp (path, ts->name, n) == 0) - bad_suite += g_test_run_suite_internal (ts, rest ? rest : "") != 0; + n_bad += g_test_run_suite_internal (ts, rest ? rest : ""); } g_slist_free (reversed); g_free (test_run_name); test_run_name = old_name; - return n_bad || bad_suite; + + return n_bad; } /** @@ -1257,9 +1308,12 @@ int g_test_run_suite (GTestSuite *suite) { guint n_bad = 0; + g_return_val_if_fail (g_test_config_vars->test_initialized, -1); g_return_val_if_fail (g_test_run_once == TRUE, -1); + g_test_run_once = FALSE; + if (!test_paths) test_paths = g_slist_prepend (test_paths, ""); while (test_paths) @@ -1271,7 +1325,7 @@ g_test_run_suite (GTestSuite *suite) path++; if (!n) /* root suite, run unconditionally */ { - n_bad += 0 != g_test_run_suite_internal (suite, path); + n_bad += g_test_run_suite_internal (suite, path); continue; } /* regular suite, match path */ @@ -1279,8 +1333,9 @@ g_test_run_suite (GTestSuite *suite) l = strlen (path); l = rest ? MIN (l, rest - path) : l; if ((!l || l == n) && strncmp (path, suite->name, n) == 0) - n_bad += 0 != g_test_run_suite_internal (suite, rest ? rest : ""); + n_bad += g_test_run_suite_internal (suite, rest ? rest : ""); } + return n_bad; } @@ -1294,6 +1349,7 @@ gtest_default_log_handler (const gchar *log_domain, gboolean fatal = FALSE; gchar *msg; guint i = 0; + if (log_domain) { strv[i++] = log_domain; @@ -1321,9 +1377,11 @@ gtest_default_log_handler (const gchar *log_domain, strv[i++] = ": "; strv[i++] = message; strv[i++] = NULL; + msg = g_strjoinv ("", (gchar**) strv); g_test_log (fatal ? G_TEST_LOG_ERROR : G_TEST_LOG_MESSAGE, msg, NULL, 0, NULL); g_log_default_handler (log_domain, log_level, message, unused_data); + g_free (msg); } @@ -1336,6 +1394,7 @@ g_assertion_message (const char *domain, { char lstr[32]; char *s; + if (!message) message = "code should not be reached"; g_snprintf (lstr, 32, "%d", line); diff --git a/glib/gtestutils.h b/glib/gtestutils.h index b441fe08b..1e49ad969 100644 --- a/glib/gtestutils.h +++ b/glib/gtestutils.h @@ -107,6 +107,8 @@ void g_test_add_func (const char *testpath, void g_test_add_data_func (const char *testpath, gconstpointer test_data, GTestDataFunc test_func); +/* tell about failure */ +void g_test_fail (void); /* hook up a test with fixture under test path */ #define g_test_add(testpath, Fixture, tdata, fsetup, ftest, fteardown) \ diff --git a/glib/gtimezone.c b/glib/gtimezone.c index 1c332ae78..0d9d6f742 100644 --- a/glib/gtimezone.c +++ b/glib/gtimezone.c @@ -146,29 +146,41 @@ static GHashTable/**/ *time_zones; void g_time_zone_unref (GTimeZone *tz) { - g_assert (tz->ref_count > 0); + int ref_count; - if (g_atomic_int_dec_and_test (&tz->ref_count)) +again: + ref_count = g_atomic_int_get (&tz->ref_count); + + g_assert (ref_count > 0); + + if (ref_count == 1) { if G_UNLIKELY (tz == local_timezone) { g_critical ("The last reference on the local timezone was just " "dropped, but GTimeZone itself still owns one. This " "means that g_time_zone_unref() was called too many " - "times. Restoring the refcount to 1."); + "times. Returning without lowering the refcount."); /* We don't want to just inc this back again since if there * are refcounting bugs in the code then maybe we are already * at -1 and inc will just take us back to 0. Set to 1 to be * sure. */ - tz->ref_count = 1; return; } if (tz->name != NULL) { G_LOCK(time_zones); + + /* someone else might have grabbed a ref in the meantime */ + if G_UNLIKELY (g_atomic_int_get (&tz->ref_count) != 1) + { + G_UNLOCK(time_zones); + goto again; + } + g_hash_table_remove (time_zones, tz->name); G_UNLOCK(time_zones); } @@ -180,6 +192,11 @@ g_time_zone_unref (GTimeZone *tz) g_slice_free (GTimeZone, tz); } + + else if G_UNLIKELY (!g_atomic_int_compare_and_exchange (&tz->ref_count, + ref_count, + ref_count - 1)) + goto again; } /** @@ -594,27 +611,27 @@ interval_valid (GTimeZone *tz, /** * g_time_zone_adjust_time: * @tz: a #GTimeZone - * @type: the #GTimeType of @time - * @time: a pointer to a number of seconds since January 1, 1970 + * @type: the #GTimeType of @time_ + * @time_: a pointer to a number of seconds since January 1, 1970 * - * Finds an interval within @tz that corresponds to the given @time, - * possibly adjusting @time if required to fit into an interval. - * The meaning of @time depends on @type. + * Finds an interval within @tz that corresponds to the given @time_, + * possibly adjusting @time_ if required to fit into an interval. + * The meaning of @time_ depends on @type. * * This function is similar to g_time_zone_find_interval(), with the * difference that it always succeeds (by making the adjustments * described below). * * In any of the cases where g_time_zone_find_interval() succeeds then - * this function returns the same value, without modifying @time. + * this function returns the same value, without modifying @time_. * - * This function may, however, modify @time in order to deal with - * non-existent times. If the non-existent local @time of 02:30 were + * This function may, however, modify @time_ in order to deal with + * non-existent times. If the non-existent local @time_ of 02:30 were * requested on March 13th 2010 in Toronto then this function would - * adjust @time to be 03:00 and return the interval containing the + * adjust @time_ to be 03:00 and return the interval containing the * adjusted time. * - * Returns: the interval containing @time, never -1 + * Returns: the interval containing @time_, never -1 * * Since: 2.26 **/ diff --git a/glib/gtimezone.h b/glib/gtimezone.h index bc72c206c..eb7e287a0 100644 --- a/glib/gtimezone.h +++ b/glib/gtimezone.h @@ -65,11 +65,11 @@ void g_time_zone_unref (GTimeZo gint g_time_zone_find_interval (GTimeZone *tz, GTimeType type, - gint64 time); + gint64 time_); gint g_time_zone_adjust_time (GTimeZone *tz, GTimeType type, - gint64 *time); + gint64 *time_); const gchar * g_time_zone_get_abbreviation (GTimeZone *tz, gint interval); diff --git a/glib/gvariant.c b/glib/gvariant.c index b77e60d5e..52a63495b 100644 --- a/glib/gvariant.c +++ b/glib/gvariant.c @@ -2693,7 +2693,7 @@ g_variant_iter_free (GVariantIter *iter) * GVariantIter iter; * GVariant *child; * - * g_variant_iter_init (&iter, dictionary); + * g_variant_iter_init (&iter, container); * while ((child = g_variant_iter_next_value (&iter))) * { * g_print ("type '%s'\n", g_variant_get_type_string (child)); diff --git a/glib/gvarianttype.h b/glib/gvarianttype.h index ecf9d2e61..5c686ddac 100644 --- a/glib/gvarianttype.h +++ b/glib/gvarianttype.h @@ -260,6 +260,8 @@ typedef struct _GVariantType GVariantType; * * The type of a dictionary mapping strings to variants (the ubiquitous * "a{sv}" type). + * + * Since: 2.30 **/ #define G_VARIANT_TYPE_VARDICT ((const GVariantType *) "a{sv}") diff --git a/glib/tests/Makefile.am b/glib/tests/Makefile.am index ea7da1ff4..4c8008486 100644 --- a/glib/tests/Makefile.am +++ b/glib/tests/Makefile.am @@ -170,6 +170,13 @@ sort_LDADD = $(progs_ldadd) if OS_UNIX +TEST_PROGS += unix +unix_LDADD = $(progs_ldadd) + +TEST_PROGS += unix-nothreads +unix_nothreads_SOURCES = unix.c +unix_nothreads_LDADD = $(progs_ldadd) + # some testing of gtester funcitonality XMLLINT=xmllint gtester-xmllint-check: # check testreport xml with xmllint if present diff --git a/glib/tests/gdatetime.c b/glib/tests/gdatetime.c index e381b9d72..e38ff9d27 100644 --- a/glib/tests/gdatetime.c +++ b/glib/tests/gdatetime.c @@ -1023,11 +1023,29 @@ test_all_dates (void) g_time_zone_unref (timezone); } +static void +test_z (void) +{ + GTimeZone *tz; + GDateTime *dt; + + g_test_bug ("642935"); + + tz = g_time_zone_new ("-08:00"); + dt = g_date_time_new (tz, 0, 0, 0, 0, 0, 0); + gchar *p = g_date_time_format (dt, "%z"); + g_assert_cmpstr (p, ==, "-0800"); + g_date_time_unref (dt); + g_free (p); +} + + gint main (gint argc, gchar *argv[]) { g_test_init (&argc, &argv, NULL); + g_test_bug_base ("http://bugzilla.gnome.org/"); /* GDateTime Tests */ @@ -1065,6 +1083,7 @@ main (gint argc, g_test_add_func ("/GDateTime/to_utc", test_GDateTime_to_utc); g_test_add_func ("/GDateTime/now_utc", test_GDateTime_now_utc); g_test_add_func ("/GDateTime/dst", test_GDateTime_dst); + g_test_add_func ("/GDateTime/test_z", test_z); g_test_add_func ("/GDateTime/test-all-dates", test_all_dates); return g_test_run (); diff --git a/glib/tests/hash.c b/glib/tests/hash.c index 9b56d3af8..9e61d6597 100644 --- a/glib/tests/hash.c +++ b/glib/tests/hash.c @@ -169,56 +169,60 @@ static guint CrcTable[128]; */ static void crcinit(void) { - int i, j; - guint sum; + int i, j; + guint sum; - for (i = 0; i < 128; ++i) { - sum = 0L; - for (j = 7 - 1; j >= 0; --j) - if (i & (1 << j)) - sum ^= POLY >> j; - CrcTable[i] = sum; - } + for (i = 0; i < 128; ++i) + { + sum = 0L; + for (j = 7 - 1; j >= 0; --j) + if (i & (1 << j)) + sum ^= POLY >> j; + CrcTable[i] = sum; + } } /* - hash - Honeyman's nice hashing function */ -static guint honeyman_hash(gconstpointer key) +static guint +honeyman_hash (gconstpointer key) { - const gchar *name = (const gchar *) key; - gint size; - guint sum = 0; + const gchar *name = (const gchar *) key; + gint size; + guint sum = 0; - g_assert (name != NULL); - g_assert (*name != 0); + g_assert (name != NULL); + g_assert (*name != 0); - size = strlen(name); + size = strlen (name); - while (size--) { - sum = (sum >> 7) ^ CrcTable[(sum ^ (*name++)) & 0x7f]; - } + while (size--) + sum = (sum >> 7) ^ CrcTable[(sum ^ (*name++)) & 0x7f]; - return(sum); + return sum; } -static gboolean second_hash_cmp (gconstpointer a, gconstpointer b) +static gboolean +second_hash_cmp (gconstpointer a, gconstpointer b) { - return (strcmp (a, b) == 0); + return strcmp (a, b) == 0; } -static guint one_hash(gconstpointer key) +static guint +one_hash (gconstpointer key) { return 1; } -static void not_even_foreach (gpointer key, - gpointer value, - gpointer user_data) +static void +not_even_foreach (gpointer key, + gpointer value, + gpointer user_data) { const char *_key = (const char *) key; const char *_value = (const char *) value; @@ -240,9 +244,10 @@ static void not_even_foreach (gpointer key, } -static gboolean remove_even_foreach (gpointer key, - gpointer value, - gpointer user_data) +static gboolean +remove_even_foreach (gpointer key, + gpointer value, + gpointer user_data) { const char *_key = (const char *) key; const char *_value = (const char *) value; @@ -265,174 +270,176 @@ static gboolean remove_even_foreach (gpointer key, -static void second_hash_test (gconstpointer d) +static void +second_hash_test (gconstpointer d) { - gboolean simple_hash = GPOINTER_TO_INT (d); + gboolean simple_hash = GPOINTER_TO_INT (d); - int i; - char key[20] = "", val[20]="", *v, *orig_key, *orig_val; - GHashTable *h; - gboolean found; + int i; + char key[20] = "", val[20]="", *v, *orig_key, *orig_val; + GHashTable *h; + gboolean found; - crcinit (); + crcinit (); - h = g_hash_table_new_full (simple_hash ? one_hash : honeyman_hash, - second_hash_cmp, - g_free, g_free); - g_assert (h != NULL); - for (i=0; i<20; i++) - { - sprintf (key, "%d", i); - g_assert (atoi (key) == i); + h = g_hash_table_new_full (simple_hash ? one_hash : honeyman_hash, + second_hash_cmp, + g_free, g_free); + g_assert (h != NULL); + for (i = 0; i < 20; i++) + { + sprintf (key, "%d", i); + g_assert (atoi (key) == i); - sprintf (val, "%d value", i); - g_assert (atoi (val) == i); + sprintf (val, "%d value", i); + g_assert (atoi (val) == i); - g_hash_table_insert (h, g_strdup (key), g_strdup (val)); - } + g_hash_table_insert (h, g_strdup (key), g_strdup (val)); + } - g_assert (g_hash_table_size (h) == 20); + g_assert (g_hash_table_size (h) == 20); - for (i=0; i<20; i++) - { - sprintf (key, "%d", i); - g_assert (atoi(key) == i); + for (i = 0; i < 20; i++) + { + sprintf (key, "%d", i); + g_assert (atoi(key) == i); - v = (char *) g_hash_table_lookup (h, key); + v = (char *) g_hash_table_lookup (h, key); - g_assert (v != NULL); - g_assert (*v != 0); - g_assert (atoi (v) == i); - } + g_assert (v != NULL); + g_assert (*v != 0); + g_assert (atoi (v) == i); + } - sprintf (key, "%d", 3); - g_hash_table_remove (h, key); - g_assert (g_hash_table_size (h) == 19); - g_hash_table_foreach_remove (h, remove_even_foreach, NULL); - g_assert (g_hash_table_size (h) == 9); - g_hash_table_foreach (h, not_even_foreach, NULL); + sprintf (key, "%d", 3); + g_hash_table_remove (h, key); + g_assert (g_hash_table_size (h) == 19); + g_hash_table_foreach_remove (h, remove_even_foreach, NULL); + g_assert (g_hash_table_size (h) == 9); + g_hash_table_foreach (h, not_even_foreach, NULL); - for (i=0; i<20; i++) - { - sprintf (key, "%d", i); - g_assert (atoi(key) == i); + for (i = 0; i < 20; i++) + { + sprintf (key, "%d", i); + g_assert (atoi(key) == i); - sprintf (val, "%d value", i); - g_assert (atoi (val) == i); + sprintf (val, "%d value", i); + g_assert (atoi (val) == i); - orig_key = orig_val = NULL; - found = g_hash_table_lookup_extended (h, key, - (gpointer)&orig_key, - (gpointer)&orig_val); - if ((i % 2) == 0 || i == 3) - { - g_assert (!found); - continue; - } + orig_key = orig_val = NULL; + found = g_hash_table_lookup_extended (h, key, + (gpointer)&orig_key, + (gpointer)&orig_val); + if ((i % 2) == 0 || i == 3) + { + g_assert (!found); + continue; + } - g_assert (found); + g_assert (found); - g_assert (orig_key != NULL); - g_assert (strcmp (key, orig_key) == 0); + g_assert (orig_key != NULL); + g_assert (strcmp (key, orig_key) == 0); - g_assert (orig_val != NULL); - g_assert (strcmp (val, orig_val) == 0); - } + g_assert (orig_val != NULL); + g_assert (strcmp (val, orig_val) == 0); + } - g_hash_table_destroy (h); + g_hash_table_destroy (h); } -static gboolean find_first (gpointer key, - gpointer value, - gpointer user_data) +static gboolean +find_first (gpointer key, + gpointer value, + gpointer user_data) { - gint *v = value; + gint *v = value; gint *test = user_data; return (*v == *test); } -static void direct_hash_test (void) +static void +direct_hash_test (void) { - gint i, rc; - GHashTable *h; + gint i, rc; + GHashTable *h; - h = g_hash_table_new (NULL, NULL); - g_assert (h != NULL); - for (i=1; i<=20; i++) - { - g_hash_table_insert (h, GINT_TO_POINTER (i), - GINT_TO_POINTER (i + 42)); - } + h = g_hash_table_new (NULL, NULL); + g_assert (h != NULL); + for (i = 1; i <= 20; i++) + g_hash_table_insert (h, GINT_TO_POINTER (i), + GINT_TO_POINTER (i + 42)); - g_assert (g_hash_table_size (h) == 20); + g_assert (g_hash_table_size (h) == 20); - for (i=1; i<=20; i++) - { - rc = GPOINTER_TO_INT ( - g_hash_table_lookup (h, GINT_TO_POINTER (i))); + for (i = 1; i <= 20; i++) + { + rc = GPOINTER_TO_INT (g_hash_table_lookup (h, GINT_TO_POINTER (i))); - g_assert (rc != 0); - g_assert ((rc - 42) == i); - } + g_assert (rc != 0); + g_assert ((rc - 42) == i); + } - g_hash_table_destroy (h); + g_hash_table_destroy (h); } -static void int64_hash_test (void) +static void +int64_hash_test (void) { - gint i, rc; - GHashTable *h; - gint64 values[20]; - gint64 key; + gint i, rc; + GHashTable *h; + gint64 values[20]; + gint64 key; - h = g_hash_table_new (g_int64_hash, g_int64_equal); - g_assert (h != NULL); - for (i=0; i<20; i++) - { - values[i] = i + 42; - g_hash_table_insert (h, &values[i], GINT_TO_POINTER (i + 42)); - } + h = g_hash_table_new (g_int64_hash, g_int64_equal); + g_assert (h != NULL); + for (i = 0; i < 20; i++) + { + values[i] = i + 42; + g_hash_table_insert (h, &values[i], GINT_TO_POINTER (i + 42)); + } - g_assert (g_hash_table_size (h) == 20); + g_assert (g_hash_table_size (h) == 20); - for (i=0; i<20; i++) - { - key = i + 42; - rc = GPOINTER_TO_INT (g_hash_table_lookup (h, &key)); + for (i = 0; i < 20; i++) + { + key = i + 42; + rc = GPOINTER_TO_INT (g_hash_table_lookup (h, &key)); - g_assert_cmpint (rc, ==, i + 42); - } + g_assert_cmpint (rc, ==, i + 42); + } - g_hash_table_destroy (h); + g_hash_table_destroy (h); } -static void double_hash_test (void) +static void +double_hash_test (void) { - gint i, rc; - GHashTable *h; - gdouble values[20]; - gdouble key; + gint i, rc; + GHashTable *h; + gdouble values[20]; + gdouble key; - h = g_hash_table_new (g_double_hash, g_double_equal); - g_assert (h != NULL); - for (i=0; i<20; i++) - { - values[i] = i + 42.5; - g_hash_table_insert (h, &values[i], GINT_TO_POINTER (i + 42)); - } + h = g_hash_table_new (g_double_hash, g_double_equal); + g_assert (h != NULL); + for (i = 0; i < 20; i++) + { + values[i] = i + 42.5; + g_hash_table_insert (h, &values[i], GINT_TO_POINTER (i + 42)); + } - g_assert (g_hash_table_size (h) == 20); + g_assert (g_hash_table_size (h) == 20); - for (i=0; i<20; i++) - { - key = i + 42.5; - rc = GPOINTER_TO_INT (g_hash_table_lookup (h, &key)); + for (i = 0; i < 20; i++) + { + key = i + 42.5; + rc = GPOINTER_TO_INT (g_hash_table_lookup (h, &key)); - g_assert_cmpint (rc, ==, i + 42); - } + g_assert_cmpint (rc, ==, i + 42); + } - g_hash_table_destroy (h); + g_hash_table_destroy (h); } static void @@ -443,39 +450,40 @@ string_free (gpointer data) g_string_free (s, TRUE); } -static void string_hash_test (void) +static void +string_hash_test (void) { - gint i, rc; - GHashTable *h; - GString *s; + gint i, rc; + GHashTable *h; + GString *s; - h = g_hash_table_new_full ((GHashFunc)g_string_hash, (GEqualFunc)g_string_equal, string_free, NULL); - g_assert (h != NULL); - for (i=0; i<20; i++) - { - s = g_string_new (""); - g_string_append_printf (s, "%d", i + 42); - g_string_append_c (s, '.'); - g_string_prepend_unichar (s, 0x2301); - g_hash_table_insert (h, s, GINT_TO_POINTER (i + 42)); - } + h = g_hash_table_new_full ((GHashFunc)g_string_hash, (GEqualFunc)g_string_equal, string_free, NULL); + g_assert (h != NULL); + for (i = 0; i < 20; i++) + { + s = g_string_new (""); + g_string_append_printf (s, "%d", i + 42); + g_string_append_c (s, '.'); + g_string_prepend_unichar (s, 0x2301); + g_hash_table_insert (h, s, GINT_TO_POINTER (i + 42)); + } - g_assert (g_hash_table_size (h) == 20); + g_assert (g_hash_table_size (h) == 20); - s = g_string_new (""); - for (i=0; i<20; i++) - { - g_string_assign (s, ""); - g_string_append_printf (s, "%d", i + 42); - g_string_append_c (s, '.'); - g_string_prepend_unichar (s, 0x2301); - rc = GPOINTER_TO_INT (g_hash_table_lookup (h, s)); + s = g_string_new (""); + for (i = 0; i < 20; i++) + { + g_string_assign (s, ""); + g_string_append_printf (s, "%d", i + 42); + g_string_append_c (s, '.'); + g_string_prepend_unichar (s, 0x2301); + rc = GPOINTER_TO_INT (g_hash_table_lookup (h, s)); - g_assert_cmpint (rc, ==, i + 42); - } + g_assert_cmpint (rc, ==, i + 42); + } - g_string_free (s, TRUE); - g_hash_table_destroy (h); + g_string_free (s, TRUE); + g_hash_table_destroy (h); } static void @@ -648,6 +656,42 @@ test_lookup_null_key (void) g_hash_table_unref (h); } +static gint destroy_key_counter; + +static void +key_destroy (gpointer key) +{ + destroy_key_counter++; +} + +static void +test_remove_all (void) +{ + GHashTable *h; + + h = g_hash_table_new_full (g_str_hash, g_str_equal, key_destroy, value_destroy); + g_hash_table_insert (h, "abc", "ABC"); + g_hash_table_insert (h, "cde", "CDE"); + g_hash_table_insert (h, "xyz", "XYZ"); + + destroy_counter = 0; + destroy_key_counter = 0; + + g_hash_table_steal_all (h); + g_assert_cmpint (destroy_counter, ==, 0); + g_assert_cmpint (destroy_key_counter, ==, 0); + + g_hash_table_insert (h, "abc", "ABC"); + g_hash_table_insert (h, "cde", "CDE"); + g_hash_table_insert (h, "xyz", "XYZ"); + + g_hash_table_remove_all (h); + g_assert_cmpint (destroy_counter, ==, 3); + g_assert_cmpint (destroy_key_counter, ==, 3); + + g_hash_table_unref (h); +} + int main (int argc, char *argv[]) { @@ -663,6 +707,7 @@ main (int argc, char *argv[]) g_test_add_func ("/hash/double", double_hash_test); g_test_add_func ("/hash/string", string_hash_test); g_test_add_func ("/hash/ref", test_hash_ref); + g_test_add_func ("/hash/remove-all", test_remove_all); /* tests for individual bugs */ g_test_add_func ("/hash/lookup-null-key", test_lookup_null_key); diff --git a/glib/tests/mappedfile.c b/glib/tests/mappedfile.c index 8a0af9b21..b9f2aa1dc 100644 --- a/glib/tests/mappedfile.c +++ b/glib/tests/mappedfile.c @@ -1,5 +1,9 @@ +#include #include #include +#ifdef HAVE_UNISTD_H +#include +#endif static void test_empty (void) @@ -8,7 +12,7 @@ test_empty (void) GError *error; error = NULL; - file = g_mapped_file_new ("empty", FALSE, &error); + file = g_mapped_file_new (SRCDIR "/empty", FALSE, &error); g_assert_no_error (error); g_assert (g_mapped_file_get_contents (file) == NULL); @@ -38,8 +42,14 @@ test_writable (void) const gchar *old = "MMMMMMMMMMMMMMMMMMMMMMMMM"; const gchar *new = "abcdefghijklmnopqrstuvxyz"; + if (access (SRCDIR "/4096-random-bytes", W_OK) != 0) + { + g_test_message ("Skipping writable mapping test"); + return; + } + error = NULL; - file = g_mapped_file_new ("4096-random-bytes", TRUE, &error); + file = g_mapped_file_new (SRCDIR "/4096-random-bytes", TRUE, &error); g_assert_no_error (error); contents = g_mapped_file_get_contents (file); @@ -51,7 +61,7 @@ test_writable (void) g_mapped_file_free (file); error = NULL; - file = g_mapped_file_new ("4096-random-bytes", TRUE, &error); + file = g_mapped_file_new (SRCDIR "/4096-random-bytes", TRUE, &error); g_assert_no_error (error); contents = g_mapped_file_get_contents (file); diff --git a/glib/tests/sequence.c b/glib/tests/sequence.c index e2a58f333..029f12bc9 100644 --- a/glib/tests/sequence.c +++ b/glib/tests/sequence.c @@ -1210,6 +1210,35 @@ test_out_of_range_jump (void) g_assert (g_sequence_iter_is_begin (iter)); g_assert (g_sequence_iter_is_end (iter)); + + g_sequence_free (seq); +} + +static void +test_iter_move (void) +{ + GSequence *seq = g_sequence_new (NULL); + GSequenceIter *iter; + gint i; + + for (i = 0; i < 10; ++i) + g_sequence_append (seq, GINT_TO_POINTER (i)); + + iter = g_sequence_get_begin_iter (seq); + iter = g_sequence_iter_move (iter, 5); + g_assert_cmpint (GPOINTER_TO_INT (g_sequence_get (iter)), ==, 5); + + iter = g_sequence_iter_move (iter, -10); + g_assert (g_sequence_iter_is_begin (iter)); + + iter = g_sequence_get_end_iter (seq); + iter = g_sequence_iter_move (iter, -5); + g_assert_cmpint (GPOINTER_TO_INT (g_sequence_get (iter)), ==, 5); + + iter = g_sequence_iter_move (iter, 10); + g_assert (g_sequence_iter_is_end (iter)); + + g_sequence_free (seq); } static int @@ -1326,6 +1355,8 @@ test_stable_sort (void) iter = g_sequence_iter_next (iter); g_sequence_check (seq); } + + g_sequence_free (seq); } int @@ -1340,6 +1371,7 @@ main (int argc, /* Standalone tests */ g_test_add_func ("/sequence/out-of-range-jump", test_out_of_range_jump); + g_test_add_func ("/sequence/iter-move", test_iter_move); g_test_add_func ("/sequence/insert-sorted-non-pointer", test_insert_sorted_non_pointer); g_test_add_func ("/sequence/stable-sort", test_stable_sort); diff --git a/glib/tests/unix.c b/glib/tests/unix.c new file mode 100644 index 000000000..065deb1e1 --- /dev/null +++ b/glib/tests/unix.c @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2011 Red Hat, Inc. + * + * 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. + * + * Author: Colin Walters + */ + +#include "config.h" + +#include "glib-unix.h" +#include + +static void +test_pipe (void) +{ + GError *error = NULL; + int pipefd[2]; + char buf[1024]; + ssize_t bytes_read; + + g_unix_pipe_flags (pipefd, FD_CLOEXEC, NULL); + g_assert_no_error (error); + + write (pipefd[1], "hello", sizeof ("hello")); + memset (buf, 0, sizeof (buf)); + bytes_read = read (pipefd[0], buf, sizeof(buf) - 1); + g_assert_cmpint (bytes_read, >, 0); + + close (pipefd[0]); + close (pipefd[1]); + + g_assert (g_str_has_prefix (buf, "hello")); +} + +static gboolean sighup_received = FALSE; + +static gboolean +on_sighup_received (gpointer user_data) +{ + GMainLoop *loop = user_data; + g_main_loop_quit (loop); + sighup_received = TRUE; + return FALSE; +} + +static gboolean +sighup_not_received (gpointer data) +{ + GMainLoop *loop = data; + (void) loop; + g_error ("Timed out waiting for SIGHUP"); + return FALSE; +} + +static gboolean +exit_mainloop (gpointer data) +{ + GMainLoop *loop = data; + g_main_loop_quit (loop); + return FALSE; +} + +static void +test_sighup (void) +{ + GMainLoop *mainloop; + + mainloop = g_main_loop_new (NULL, FALSE); + + sighup_received = FALSE; + g_unix_signal_add_watch_full (SIGHUP, + G_PRIORITY_DEFAULT, + on_sighup_received, + mainloop, + NULL); + kill (getpid (), SIGHUP); + g_assert (!sighup_received); + g_timeout_add (5000, sighup_not_received, mainloop); + g_main_loop_run (mainloop); + g_assert (sighup_received); + sighup_received = FALSE; + + /* Ensure we don't get double delivery */ + g_timeout_add (500, exit_mainloop, mainloop); + g_main_loop_run (mainloop); + g_assert (!sighup_received); +} + +static void +test_sighup_add_remove (void) +{ + GMainLoop *mainloop; + guint id; + + mainloop = g_main_loop_new (NULL, FALSE); + + sighup_received = FALSE; + id = g_unix_signal_add_watch_full (SIGHUP, + G_PRIORITY_DEFAULT, + on_sighup_received, + mainloop, + NULL); + g_source_remove (id); + kill (getpid (), SIGHUP); + g_assert (!sighup_received); + +} + +int +main (int argc, + char *argv[]) +{ + g_test_init (&argc, &argv, NULL); + +#ifdef TEST_THREADED + g_thread_init (NULL); +#endif + + g_test_add_func ("/glib-unix/pipe", test_pipe); + g_test_add_func ("/glib-unix/sighup", test_sighup); + g_test_add_func ("/glib-unix/sighup_again", test_sighup); + g_test_add_func ("/glib-unix/sighup_add_remove", test_sighup_add_remove); + + return g_test_run(); +} diff --git a/gthread/tests/Makefile.am b/gthread/tests/Makefile.am index 387098ad8..436498a25 100644 --- a/gthread/tests/Makefile.am +++ b/gthread/tests/Makefile.am @@ -13,3 +13,8 @@ TEST_PROGS += 1bit-emufutex 1bit_emufutex_SOURCES = 1bit-mutex.c 1bit_emufutex_CFLAGS = -DTEST_EMULATED_FUTEX 1bit_emufutex_LDADD = $(progs_ldadd) $(top_builddir)/gthread/libgthread-2.0.la + +TEST_PROGS += unix-multithreaded +unix_multithreaded_SOURCES = $(top_srcdir)/glib/tests/unix.c +unix_multithreaded_CFLAGS = -DTEST_THREADED +unix_multithreaded_LDADD = $(progs_ldadd) $(top_builddir)/gthread/libgthread-2.0.la diff --git a/po/es.po b/po/es.po index 5576d5438..a861d0dfd 100644 --- a/po/es.po +++ b/po/es.po @@ -13,8 +13,8 @@ msgstr "" "Project-Id-Version: glib.master\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" "product=glib&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2011-03-17 11:53+0000\n" -"PO-Revision-Date: 2011-03-17 20:35+0100\n" +"POT-Creation-Date: 2011-04-26 00:04+0000\n" +"PO-Revision-Date: 2011-04-28 10:22+0200\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Español \n" "MIME-Version: 1.0\n" @@ -559,32 +559,32 @@ msgstr "Falló al abrir el archivo «%s»: open() falló: %s" msgid "Failed to map file '%s': mmap() failed: %s" msgstr "Falló al mapear el archivo «%s»: mmap() falló: %s" -#: ../glib/gmarkup.c:354 ../glib/gmarkup.c:395 +#: ../glib/gmarkup.c:355 ../glib/gmarkup.c:396 #, c-format msgid "Error on line %d char %d: " msgstr "Error en la línea %d, carácter %d: " -#: ../glib/gmarkup.c:417 ../glib/gmarkup.c:500 +#: ../glib/gmarkup.c:418 ../glib/gmarkup.c:501 #, c-format msgid "Invalid UTF-8 encoded text in name - not valid '%s'" msgstr "Texto codificado como UTF-8 en el nombre no válido; «%s» no es válido" -#: ../glib/gmarkup.c:428 +#: ../glib/gmarkup.c:429 #, c-format msgid "'%s' is not a valid name " msgstr "«%s» no es un nombre válido " -#: ../glib/gmarkup.c:444 +#: ../glib/gmarkup.c:445 #, c-format msgid "'%s' is not a valid name: '%c' " msgstr "«%s» no es un nombre válido: «%c» " -#: ../glib/gmarkup.c:553 +#: ../glib/gmarkup.c:554 #, c-format msgid "Error on line %d: %s" msgstr "Error en la línea %d: %s" -#: ../glib/gmarkup.c:637 +#: ../glib/gmarkup.c:638 #, c-format msgid "" "Failed to parse '%-.*s', which should have been a digit inside a character " @@ -594,7 +594,7 @@ msgstr "" "carácter de referencia( por ejemplo ê) - tal vez el dígito es demasiado " "grande" -#: ../glib/gmarkup.c:649 +#: ../glib/gmarkup.c:650 msgid "" "Character reference did not end with a semicolon; most likely you used an " "ampersand character without intending to start an entity - escape ampersand " @@ -604,24 +604,24 @@ msgstr "" "un carácter «&» sin pretender iniciar una entidad, escape el carácter \"&\" " "como &" -#: ../glib/gmarkup.c:675 +#: ../glib/gmarkup.c:676 #, c-format msgid "Character reference '%-.*s' does not encode a permitted character" msgstr "El carácter de referencia «%-.*s» no codifica un carácter permitido" -#: ../glib/gmarkup.c:713 +#: ../glib/gmarkup.c:714 msgid "" "Empty entity '&;' seen; valid entities are: & " < > '" msgstr "" "La entidad '&;' está vacía; las entidades válidas son: & " < " "> '" -#: ../glib/gmarkup.c:721 +#: ../glib/gmarkup.c:722 #, c-format msgid "Entity name '%-.*s' is not known" msgstr "El nombre de la entidad «%-.*s» es desconocido" -#: ../glib/gmarkup.c:726 +#: ../glib/gmarkup.c:727 msgid "" "Entity did not end with a semicolon; most likely you used an ampersand " "character without intending to start an entity - escape ampersand as &" @@ -630,11 +630,11 @@ msgstr "" "\"&\" sin la intención de indicar una entidad, escape el signo \"&\" como " "&" -#: ../glib/gmarkup.c:1077 +#: ../glib/gmarkup.c:1078 msgid "Document must begin with an element (e.g. )" msgstr "El documento debe comenzar con un elemento (por ejemplo: )" -#: ../glib/gmarkup.c:1117 +#: ../glib/gmarkup.c:1118 #, c-format msgid "" "'%s' is not a valid character following a '<' character; it may not begin an " @@ -643,16 +643,16 @@ msgstr "" "«%s» no es un carácter válido a continuación del carácter '<'; no debe " "iniciar un nombre de elemento" -#: ../glib/gmarkup.c:1185 +#: ../glib/gmarkup.c:1186 #, 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:1269 +#: ../glib/gmarkup.c:1270 #, c-format msgid "" "Odd character '%s', expected a '=' after attribute name '%s' of element '%s'" @@ -660,7 +660,7 @@ msgstr "" "Carácter «%s» impropio, se esperaba el carácter '=' después del nombre de " "atributo «%s» del elemento «%s»" -#: ../glib/gmarkup.c:1310 +#: ../glib/gmarkup.c:1311 #, c-format msgid "" "Odd character '%s', expected a '>' or '/' character to end the start tag of " @@ -671,25 +671,25 @@ msgstr "" "etiqueta de inicio del elemento «%s» u opcionalmente un atributo; tal vez " "utilizó un carácter que no es válido en un nombre de atributo" -#: ../glib/gmarkup.c:1354 +#: ../glib/gmarkup.c:1355 #, 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 "" -"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:1487 +#: ../glib/gmarkup.c:1488 #, c-format msgid "" "'%s' is not a valid character following the characters ''" -#: ../glib/gmarkup.c:1534 +#: ../glib/gmarkup.c:1535 #, c-format msgid "Element '%s' was closed, no element is currently open" msgstr "El elemento «%s» fue cerrado, no existe ningún elemento abierto" -#: ../glib/gmarkup.c:1543 +#: ../glib/gmarkup.c:1544 #, 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:1711 +#: ../glib/gmarkup.c:1712 msgid "Document was empty or contained only whitespace" msgstr "El documento estaba vacío o sólo contenía espacios en blanco" -#: ../glib/gmarkup.c:1725 +#: ../glib/gmarkup.c:1726 msgid "Document ended unexpectedly just after an open angle bracket '<'" msgstr "El documento termina inesperadamente justo después de un '<'" -#: ../glib/gmarkup.c:1733 ../glib/gmarkup.c:1778 +#: ../glib/gmarkup.c:1734 ../glib/gmarkup.c:1779 #, c-format msgid "" "Document ended unexpectedly with elements still open - '%s' was the last " @@ -727,7 +727,7 @@ msgstr "" "El documento termina inesperadamente con elementos todavía abiertos - «%s» " "fue el último elemento abierto" -#: ../glib/gmarkup.c:1741 +#: ../glib/gmarkup.c:1742 #, c-format msgid "" "Document ended unexpectedly, expected to see a close angle bracket ending " @@ -736,21 +736,21 @@ msgstr "" "El documento termina inesperadamente, se esperaba un carácter '>' " "finalizando la etiqueta <%s/>" -#: ../glib/gmarkup.c:1747 +#: ../glib/gmarkup.c:1748 msgid "Document ended unexpectedly inside an element name" msgstr "El documento termina inesperadamente dentro de un nombre de elemento" -#: ../glib/gmarkup.c:1753 +#: ../glib/gmarkup.c:1754 msgid "Document ended unexpectedly inside an attribute name" msgstr "El documento termina inesperadamente dentro de un nombre de atributo" -#: ../glib/gmarkup.c:1758 +#: ../glib/gmarkup.c:1759 msgid "Document ended unexpectedly inside an element-opening tag." msgstr "" "El documento terminó inesperadamente dentro de una etiqueta de apertura de " "elemento." -#: ../glib/gmarkup.c:1764 +#: ../glib/gmarkup.c:1765 msgid "" "Document ended unexpectedly after the equals sign following an attribute " "name; no attribute value" @@ -758,18 +758,18 @@ msgstr "" "El documento termina inesperadamente después de los signos igual que siguen " "al nombre de atributo; sin valor de atributo" -#: ../glib/gmarkup.c:1771 +#: ../glib/gmarkup.c:1772 msgid "Document ended unexpectedly while inside an attribute value" msgstr "El documento termina inesperadamente dentro del valor de un atributo" -#: ../glib/gmarkup.c:1787 +#: ../glib/gmarkup.c:1788 #, c-format msgid "Document ended unexpectedly inside the close tag for element '%s'" msgstr "" "El documento termina inesperadamente dentro de la etiqueta de cierre del " "elemento «%s»" -#: ../glib/gmarkup.c:1793 +#: ../glib/gmarkup.c:1794 msgid "Document ended unexpectedly inside a comment or processing instruction" msgstr "" "El documento termina inesperadamente dentro de un comentario o instrucción " @@ -796,7 +796,7 @@ msgid "the pattern contains items not supported for partial matching" msgstr "" "el patrón contiene elementos no soportados para una coincidencia parcial" -#: ../glib/gregex.c:211 ../gio/glocalfile.c:2111 +#: ../glib/gregex.c:211 ../gio/glocalfile.c:2117 msgid "internal error" msgstr "error interno" @@ -1100,15 +1100,14 @@ msgstr "" #: ../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)" @@ -1287,7 +1286,7 @@ msgstr "Error al analizar la opción: %s" msgid "Missing argument for %s" msgstr "Falta un argumento para %s" -#: ../glib/goption.c:1921 +#: ../glib/goption.c:1957 #, c-format msgid "Unknown option %s" msgstr "Opción desconocida %s" @@ -1426,7 +1425,7 @@ msgstr "El flujo ya se cerró" #: ../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/glocalfile.c:2110 ../gio/gsimpleasyncresult.c:810 #: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "Se canceló la operación" @@ -1443,7 +1442,7 @@ msgstr "Secuencia multibyte incompleta en la entrada" msgid "Not enough space in destination" msgstr "No hay suficiente espacio en el destino" -#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:832 +#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:833 msgid "Cancellable initialization not supported" msgstr "La inicialización cancelable no eestá soportada" @@ -1474,7 +1473,7 @@ msgid "Unexpected early end-of-stream" msgstr "Final de flujo inesperadamente prematuro" #: ../gio/gdbusaddress.c:142 ../gio/gdbusaddress.c:230 -#: ../gio/gdbusaddress.c:304 +#: ../gio/gdbusaddress.c:311 #, c-format msgid "Unsupported key `%s' in address entry `%s'" msgstr "Clave «%s» no soportada en la entrada de dirección «%s»" @@ -1493,40 +1492,40 @@ msgid "Meaningless key/value pair combination in address entry `%s'" msgstr "" "Combinación del par clave/valor sin sentido en la entrada de dirección «%s»" -#: ../gio/gdbusaddress.c:245 ../gio/gdbusaddress.c:319 +#: ../gio/gdbusaddress.c:245 ../gio/gdbusaddress.c:326 #, c-format msgid "Error in address `%s' - the port attribute is malformed" msgstr "Error en la dirección «%s»; el atributo de puerto está mal formado" -#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:330 +#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:337 #, c-format msgid "Error in address `%s' - the family attribute is malformed" msgstr "Error en la dirección «%s»; el atributo de familia está mal formado" -#: ../gio/gdbusaddress.c:434 +#: ../gio/gdbusaddress.c:446 #, c-format msgid "Address element `%s', does not contain a colon (:)" msgstr "El elemento de dirección «%s» no contiene dos puntos (:)" -#: ../gio/gdbusaddress.c:455 +#: ../gio/gdbusaddress.c:467 #, c-format msgid "" "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 +#: ../gio/gdbusaddress.c:481 #, c-format msgid "" "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 +#: ../gio/gdbusaddress.c:559 #, c-format msgid "" "Error in address `%s' - the unix transport requires exactly one of the keys " @@ -1535,94 +1534,93 @@ msgstr "" "Error en la dirección «%s»: el transporte UNIX requiere exactamente que una " "de las claves «path» o «abstract» esté establecida" -#: ../gio/gdbusaddress.c:583 +#: ../gio/gdbusaddress.c:595 #, c-format msgid "Error in address `%s' - the host attribute is missing or malformed" msgstr "" "Error en la dirección «%s»: falta o está mal formado el atributo para el " "servidor" -#: ../gio/gdbusaddress.c:597 +#: ../gio/gdbusaddress.c:609 #, c-format msgid "Error in address `%s' - the port attribute is missing or malformed" msgstr "" "Error en la dirección «%s»: falta o está mal formado el atributo para el " "puerto" -#: ../gio/gdbusaddress.c:611 +#: ../gio/gdbusaddress.c:623 #, c-format msgid "Error in address `%s' - the noncefile attribute is missing or malformed" msgstr "" "Error en la dirección «%s»: falta o está mal formado el atributo para el " "archivo de número usado una sola vez" -#: ../gio/gdbusaddress.c:632 +#: ../gio/gdbusaddress.c:644 msgid "Error auto-launching: " msgstr "Error al autolanzar: " -#: ../gio/gdbusaddress.c:640 +#: ../gio/gdbusaddress.c:652 #, c-format msgid "Unknown or unsupported transport `%s' for address `%s'" msgstr "Transporte «%s» desconocido o no soportado para la dirección «%s»" -#: ../gio/gdbusaddress.c:676 +#: ../gio/gdbusaddress.c:688 #, c-format msgid "Error opening nonce file `%s': %s" msgstr "Error al abrir el archivo de número usado una sola vez «%s»: %s" -#: ../gio/gdbusaddress.c:694 +#: ../gio/gdbusaddress.c:706 #, c-format msgid "Error reading from nonce file `%s': %s" msgstr "Error al leer el archivo de número usado una sola vez «%s»: %s" -#: ../gio/gdbusaddress.c:703 +#: ../gio/gdbusaddress.c:715 #, c-format msgid "Error reading from nonce file `%s', expected 16 bytes, got %d" msgstr "" "Error al leer el archivo de número usado una sola vez «%s», se esperaban 16 " "bytes, se obtuvieron %d" -#: ../gio/gdbusaddress.c:721 +#: ../gio/gdbusaddress.c:733 #, c-format msgid "Error writing contents of nonce file `%s' to stream:" msgstr "" "Error al escribir el contenido del archivo de número usado una sola vez «%s» " "al flujo:" -#: ../gio/gdbusaddress.c:939 +#: ../gio/gdbusaddress.c:951 msgid "The given address is empty" msgstr "La dirección proporcionada está vacía" -#: ../gio/gdbusaddress.c:1008 +#: ../gio/gdbusaddress.c:1020 msgid "Cannot spawn a message bus without a machine-id: " msgstr "No se puede lanzar («spawn») un mensaje al bus sin un ID de máquina: " -#: ../gio/gdbusaddress.c:1045 +#: ../gio/gdbusaddress.c:1057 #, c-format msgid "Error spawning command line `%s': " msgstr "Error al lanzar («spawn») el comando «%s»: " -#: ../gio/gdbusaddress.c:1056 +#: ../gio/gdbusaddress.c:1068 #, 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 +#: ../gio/gdbusaddress.c:1082 #, 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 +#: ../gio/gdbusaddress.c:1155 #, c-format msgid "Cannot determine session bus address (not implemented for this OS)" msgstr "" "No se puede determinar la dirección del bus de sesión (no implementado para " "este SO)" -#: ../gio/gdbusaddress.c:1242 ../gio/gdbusconnection.c:6186 +#: ../gio/gdbusaddress.c:1254 ../gio/gdbusconnection.c:6183 #, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " @@ -1631,7 +1629,7 @@ msgstr "" "No se puede determinar la dirección del bus desde la variable de entorno " "DBUS_STARTER_BUS_TYPE; variable «%s» desconocida" -#: ../gio/gdbusaddress.c:1251 ../gio/gdbusconnection.c:6195 +#: ../gio/gdbusaddress.c:1263 ../gio/gdbusconnection.c:6192 msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" @@ -1639,7 +1637,7 @@ msgstr "" "No se puede determinar la dirección del bus porque la variable de entorno " "DBUS_STARTER_BUS_TYPE no está establecida" -#: ../gio/gdbusaddress.c:1261 +#: ../gio/gdbusaddress.c:1273 #, c-format msgid "Unknown bus type %d" msgstr "Tipo de bus %d desconocido" @@ -1661,7 +1659,7 @@ msgstr "" "Se agotaron todos los mecanismos de autenticación (intentados: %s) " "(disponibles: %s)" -#: ../gio/gdbusauth.c:1150 +#: ../gio/gdbusauth.c:1159 msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer" msgstr "Cancelado a través de GDBusAuthObserver::authorize-authenticated-peer" @@ -1688,64 +1686,62 @@ msgstr "Error al crear el directorio «%s»: %s" msgid "Error opening keyring `%s' for reading: " msgstr "Error al abrir el depósito de claves «%s» para su lectura: " -#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:715 +#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:718 #, 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 +#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:732 #, 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 +#: ../gio/gdbusauthmechanismsha1.c:435 ../gio/gdbusauthmechanismsha1.c:746 #, 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 +#: ../gio/gdbusauthmechanismsha1.c:459 #, c-format msgid "Didn't find cookie with id %d in the keyring at `%s'" msgstr "No se encontró la «cookie» con ID %d en el depósito de claves en «%s»" -#: ../gio/gdbusauthmechanismsha1.c:535 +#: ../gio/gdbusauthmechanismsha1.c:536 #, c-format msgid "Error deleting stale lock file `%s': %s" msgstr "Error al eliminar el archivo de bloqueo antiguo «%s»: %s" -#: ../gio/gdbusauthmechanismsha1.c:566 +#: ../gio/gdbusauthmechanismsha1.c:568 #, c-format msgid "Error creating lock file `%s': %s" msgstr "Error al crear el archivo de bloqueo «%s»: %s" -#: ../gio/gdbusauthmechanismsha1.c:596 +#: ../gio/gdbusauthmechanismsha1.c:598 #, c-format msgid "Error closing (unlinked) lock file `%s': %s" msgstr "Error al cerrar (desenlazar) el archivo de bloqueo «%s»: %s" -#: ../gio/gdbusauthmechanismsha1.c:606 +#: ../gio/gdbusauthmechanismsha1.c:608 #, c-format msgid "Error unlinking lock file `%s': %s" msgstr "Error al desenlazar el archivo de bloqueo «%s»: %s" -#: ../gio/gdbusauthmechanismsha1.c:682 +#: ../gio/gdbusauthmechanismsha1.c:685 #, c-format msgid "Error opening keyring `%s' for writing: " msgstr "Error al abrir el depósito de claves «%s» para su escritura:" -#: ../gio/gdbusauthmechanismsha1.c:877 +#: ../gio/gdbusauthmechanismsha1.c:882 #, 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:1737 @@ -1756,14 +1752,14 @@ msgstr "La conexión está cerrada" msgid "Timeout was reached" msgstr "Se alcanzó el tiempo de expiración" -#: ../gio/gdbusconnection.c:2300 +#: ../gio/gdbusconnection.c:2301 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:3752 ../gio/gdbusconnection.c:4070 +#: ../gio/gdbusconnection.c:3761 ../gio/gdbusconnection.c:4078 #, c-format msgid "" "No such interface `org.freedesktop.DBus.Properties' on object at path %s" @@ -1771,68 +1767,68 @@ msgstr "" "No existe la interfaz «org.freedesktop.DBus.Properties» en el objeto en la " "ruta %s" -#: ../gio/gdbusconnection.c:3824 +#: ../gio/gdbusconnection.c:3833 #, 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:3919 +#: ../gio/gdbusconnection.c:3928 #, c-format msgid "No such property `%s'" msgstr "No existe la propiedad «%s»" -#: ../gio/gdbusconnection.c:3931 +#: ../gio/gdbusconnection.c:3940 #, c-format msgid "Property `%s' is not readable" msgstr "No se puede leer la clave «%s»" -#: ../gio/gdbusconnection.c:3942 +#: ../gio/gdbusconnection.c:3951 #, c-format msgid "Property `%s' is not writable" msgstr "No se puede escribir la clave «%s»" -#: ../gio/gdbusconnection.c:4012 ../gio/gdbusconnection.c:5620 +#: ../gio/gdbusconnection.c:4021 ../gio/gdbusconnection.c:5627 #, c-format msgid "No such interface `%s'" msgstr "La interfaz «%s» no existe" -#: ../gio/gdbusconnection.c:4200 +#: ../gio/gdbusconnection.c:4206 msgid "No such interface" msgstr "No existe tal interfaz" -#: ../gio/gdbusconnection.c:4419 ../gio/gdbusconnection.c:6136 +#: ../gio/gdbusconnection.c:4425 ../gio/gdbusconnection.c:6133 #, 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:4471 +#: ../gio/gdbusconnection.c:4477 #, c-format msgid "No such method `%s'" msgstr "No existe el método «%s»" -#: ../gio/gdbusconnection.c:4502 +#: ../gio/gdbusconnection.c:4508 #, 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:4721 +#: ../gio/gdbusconnection.c:4727 #, 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:4915 +#: ../gio/gdbusconnection.c:4922 #, 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:5731 +#: ../gio/gdbusconnection.c:5738 #, 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:5849 +#: ../gio/gdbusconnection.c:5856 #, c-format msgid "A subtree is already exported for %s" msgstr "Ya se ha exportado un subárbol para %s" @@ -1893,8 +1889,7 @@ msgstr "" #, 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:1234 #, c-format @@ -1928,111 +1923,111 @@ msgstr "" "Error al deserializar GVariant con el tipo de cadena «%s» al formato de " "mensaje de D-Bus" -#: ../gio/gdbusmessage.c:1686 +#: ../gio/gdbusmessage.c:1688 #, c-format msgid "" "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:1700 +#: ../gio/gdbusmessage.c:1702 #, c-format msgid "Invalid major protocol version. Expected 1 but found %d" msgstr "" "La versión principal del protocolo no es válida. Se esperaba 1 pero se " "encontró %d." -#: ../gio/gdbusmessage.c:1757 +#: ../gio/gdbusmessage.c:1759 #, c-format msgid "Signature header with signature `%s' found but message body is empty" msgstr "" "Se encontró la cabecera de firma con firma «%s» pero el cuerpo del mensaje " "está vacío" -#: ../gio/gdbusmessage.c:1771 +#: ../gio/gdbusmessage.c:1773 #, c-format msgid "Parsed value `%s' is not a valid D-Bus signature (for body)" msgstr "" "El valor analizado «%s» no es una firma de D-Bus válida (para el cuerpo)" -#: ../gio/gdbusmessage.c:1801 +#: ../gio/gdbusmessage.c:1803 #, c-format msgid "No signature header in message but the message body is %u bytes" msgstr "" "No existe la cabecera de firma en el mensaje pero el cuerpo del mensaje " "tiene %u bytes" -#: ../gio/gdbusmessage.c:1809 +#: ../gio/gdbusmessage.c:1811 msgid "Cannot deserialize message: " msgstr "No se puede deserializar el mensaje: " -#: ../gio/gdbusmessage.c:2134 +#: ../gio/gdbusmessage.c:2136 #, c-format 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:2275 +#: ../gio/gdbusmessage.c:2274 #, c-format msgid "Message has %d fds but the header field indicates %d fds" msgstr "El mensaje tiene %d fds pero el campo de cabecera indica %d fds" -#: ../gio/gdbusmessage.c:2283 +#: ../gio/gdbusmessage.c:2282 msgid "Cannot serialize message: " msgstr "No se puede serializar el mensaje: " -#: ../gio/gdbusmessage.c:2327 +#: ../gio/gdbusmessage.c:2326 #, c-format msgid "Message body has signature `%s' but there is no signature header" msgstr "" "El cuerpo del mensaje tiene la firma «%s» pero no existe la cabecera de firma" -#: ../gio/gdbusmessage.c:2337 +#: ../gio/gdbusmessage.c:2336 #, 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»" -#: ../gio/gdbusmessage.c:2353 +#: ../gio/gdbusmessage.c:2352 #, 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:2910 +#: ../gio/gdbusmessage.c:2909 #, c-format msgid "Error return with body of type `%s'" msgstr "Error al devolver el cuerpo de tipo «%s»" -#: ../gio/gdbusmessage.c:2918 +#: ../gio/gdbusmessage.c:2917 msgid "Error return with empty body" msgstr "Error al devolver un cuepro vacío" -#: ../gio/gdbusmethodinvocation.c:375 +#: ../gio/gdbusmethodinvocation.c:376 #, c-format msgid "Type of return value is incorrect, got `%s', expected `%s'" msgstr "" "El tipo del valor devuelto es incorrecto, se obtuvo «%s», se esperaba «%s»" -#: ../gio/gdbusmethodinvocation.c:406 ../gio/gsocket.c:3027 -#: ../gio/gsocket.c:3108 +#: ../gio/gdbusmethodinvocation.c:407 ../gio/gsocket.c:3032 +#: ../gio/gsocket.c:3113 #, c-format msgid "Error sending message: %s" msgstr "Error al enviar el mensaje: %s" -#: ../gio/gdbusprivate.c:1768 +#: ../gio/gdbusprivate.c:1769 msgid "Unable to load /var/lib/dbus/machine-id: " msgstr "No se puede cargar /var/lib/dbus/machine-id: " -#: ../gio/gdbusproxy.c:715 +#: ../gio/gdbusproxy.c:717 #, c-format msgid "" "Trying to set property %s of type %s but according to the expected interface " @@ -2041,17 +2036,17 @@ msgstr "" "Intentando establecer la propiedad %s del tipo %s pero según la interfaz " "esperada el tipo es %s" -#: ../gio/gdbusproxy.c:1235 +#: ../gio/gdbusproxy.c:1281 #, c-format msgid "Error calling StartServiceByName for %s: " msgstr "Error al llamar StartSereviceByName para %s: " -#: ../gio/gdbusproxy.c:1256 +#: ../gio/gdbusproxy.c:1302 #, c-format msgid "Unexpected reply %d from StartServiceByName(\"%s\") method" msgstr "Respuesta %d no esperada del método StartServiceByName(«%s»)" -#: ../gio/gdbusproxy.c:2312 ../gio/gdbusproxy.c:2470 +#: ../gio/gdbusproxy.c:2364 ../gio/gdbusproxy.c:2523 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" @@ -2060,27 +2055,27 @@ msgstr "" "conocido y el proxy se construyó con la opción " "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START" -#: ../gio/gdbusserver.c:715 +#: ../gio/gdbusserver.c:706 msgid "Abstract name space not supported" msgstr "No se soporta el espacio de nombres abstracto" -#: ../gio/gdbusserver.c:805 +#: ../gio/gdbusserver.c:793 msgid "Cannot specify nonce file when creating a server" msgstr "" "No se puede especificar el archivo de número usado una sola vez al crear un " "servidor" -#: ../gio/gdbusserver.c:882 +#: ../gio/gdbusserver.c:870 #, c-format msgid "Error writing nonce file at `%s': %s" msgstr "Error al escribir el archivo de número usado una sola vez en «%s»: %s" -#: ../gio/gdbusserver.c:1044 +#: ../gio/gdbusserver.c:1037 #, c-format msgid "The string `%s' is not a valid D-Bus GUID" msgstr "La cadena «%s» no es un GUID válido de D-Bus" -#: ../gio/gdbusserver.c:1084 +#: ../gio/gdbusserver.c:1077 #, c-format msgid "Cannot listen on unsupported transport `%s'" msgstr "No se puede escuchar en un transporte no soportado «%s»" @@ -2154,8 +2149,7 @@ msgstr "Se especificaron varios puntos de conexión extremos" 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:471 #, c-format @@ -2163,8 +2157,8 @@ msgid "" "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:533 msgid "Destination name to invoke method on" @@ -2361,7 +2355,7 @@ msgstr "Operación no soportada" msgid "Containing mount does not exist" msgstr "El punto de montaje contenido no existe" -#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2260 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2266 msgid "Can't copy over directory" msgstr "No se puede copiar sobre el directorio" @@ -2369,7 +2363,7 @@ msgstr "No se puede copiar sobre el directorio" msgid "Can't copy directory over directory" msgstr "No se puede copiar directorio sobre directorio" -#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2269 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2275 msgid "Target file exists" msgstr "El archivo destino ya existe" @@ -2452,37 +2446,37 @@ msgstr "No se permite truncar en el flujo de entrada" msgid "Truncate not supported on stream" msgstr "No se soporta el truncamiento en el flujo" -#: ../gio/gicon.c:287 +#: ../gio/gicon.c:284 #, c-format msgid "Wrong number of tokens (%d)" msgstr "Número de tokens (%d) incorrecto" -#: ../gio/gicon.c:307 +#: ../gio/gicon.c:304 #, c-format msgid "No type for class name %s" msgstr "No existe el tipo para la clase de nombre %s" -#: ../gio/gicon.c:317 +#: ../gio/gicon.c:314 #, c-format msgid "Type %s does not implement the GIcon interface" msgstr "El tipo %s no implementa la interfaz GIcon" -#: ../gio/gicon.c:328 +#: ../gio/gicon.c:325 #, c-format msgid "Type %s is not classed" msgstr "El tipo %s no tiene clase" -#: ../gio/gicon.c:342 +#: ../gio/gicon.c:339 #, c-format msgid "Malformed version number: %s" msgstr "Número de versión mal formado: %s" -#: ../gio/gicon.c:356 +#: ../gio/gicon.c:353 #, c-format msgid "Type %s does not implement from_tokens() on the GIcon interface" msgstr "El tipo %s no implementa from_tokens() en la interfaz GIcon" -#: ../gio/gicon.c:432 +#: ../gio/gicon.c:430 msgid "Can't handle the supplied version the icon encoding" msgstr "" "No se puede manejar la versión proporcionada de la codificación de icono" @@ -2511,55 +2505,55 @@ msgstr "No hay suficiente espacio para la dirección del socket" msgid "Unsupported socket address" msgstr "Dirección del socket no soportada" -#: ../gio/glib-compile-schemas.c:713 +#: ../gio/glib-compile-schemas.c:742 msgid "empty names are not permitted" msgstr "no se permiten nombres vacíos" -#: ../gio/glib-compile-schemas.c:723 +#: ../gio/glib-compile-schemas.c:752 #, c-format msgid "invalid name '%s': names must begin with a lowercase letter" msgstr "" "nombre «%s» no válido: los nombres deben comenzar por una letra minúscula" -#: ../gio/glib-compile-schemas.c:735 +#: ../gio/glib-compile-schemas.c:764 #, c-format msgid "" "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 +#: ../gio/glib-compile-schemas.c:773 #, c-format msgid "invalid name '%s': two successive dashes ('--') are not permitted." msgstr "nombre «%s» no válido: no se permiten dos guiones seguidos («--»)." -#: ../gio/glib-compile-schemas.c:753 +#: ../gio/glib-compile-schemas.c:782 #, c-format msgid "invalid name '%s': the last character may not be a dash ('-')." msgstr "nombre «%s» no válido: el último caracter no puede ser un guión («-»)." -#: ../gio/glib-compile-schemas.c:761 +#: ../gio/glib-compile-schemas.c:790 #, c-format msgid "invalid name '%s': maximum length is 32" msgstr "nombre «%s» no válido: la longitud máxima es 32" -#: ../gio/glib-compile-schemas.c:830 +#: ../gio/glib-compile-schemas.c:859 #, c-format msgid " already specified" msgstr " ya especificado" -#: ../gio/glib-compile-schemas.c:856 +#: ../gio/glib-compile-schemas.c:885 msgid "can not add keys to a 'list-of' schema" msgstr "no se pueden añadir claves a un esquema de «lista-de»" -#: ../gio/glib-compile-schemas.c:867 +#: ../gio/glib-compile-schemas.c:896 #, c-format msgid " already specified" msgstr " ya especificada" -#: ../gio/glib-compile-schemas.c:885 +#: ../gio/glib-compile-schemas.c:914 #, c-format msgid "" " shadows in ; use " @@ -2568,65 +2562,65 @@ msgstr "" " eclipsa a en ; use " " para modificar el valor" -#: ../gio/glib-compile-schemas.c:896 +#: ../gio/glib-compile-schemas.c:925 #, c-format msgid "" "exactly one of 'type', 'enum' or 'flags' must be specified as an attribute " "to " msgstr "" -"se debe especificar exactamente uno de «type», «enum» o «flags» como " -"atributo para " +"se debe especificar exactamente uno de «type», «enum» o «flags» como atributo " +"para " -#: ../gio/glib-compile-schemas.c:915 +#: ../gio/glib-compile-schemas.c:944 #, c-format msgid "<%s id='%s'> not (yet) defined." msgstr "<%s id='%s'> aún no especificado." -#: ../gio/glib-compile-schemas.c:930 +#: ../gio/glib-compile-schemas.c:959 #, c-format msgid "invalid GVariant type string '%s'" msgstr "tipo de cadena GVarian «%s» no válida" -#: ../gio/glib-compile-schemas.c:960 +#: ../gio/glib-compile-schemas.c:989 msgid " given but schema isn't extending anything" msgstr "Se proporcionó pero el esquema no está extendiendo nada" -#: ../gio/glib-compile-schemas.c:973 +#: ../gio/glib-compile-schemas.c:1002 #, c-format msgid "no to override" msgstr "no existe para sobreescribir" -#: ../gio/glib-compile-schemas.c:981 +#: ../gio/glib-compile-schemas.c:1010 #, c-format msgid " already specified" msgstr " ya especificada" -#: ../gio/glib-compile-schemas.c:1052 +#: ../gio/glib-compile-schemas.c:1081 #, c-format msgid " already specified" msgstr " ya especificado" -#: ../gio/glib-compile-schemas.c:1064 +#: ../gio/glib-compile-schemas.c:1093 #, c-format msgid " extends not yet existing schema '%s'" msgstr " extiende el esquema «%s» que aún no existe" -#: ../gio/glib-compile-schemas.c:1080 +#: ../gio/glib-compile-schemas.c:1109 #, c-format msgid " is list of not yet existing schema '%s'" msgstr " es una lista del esquema «%s» que aún no existe" -#: ../gio/glib-compile-schemas.c:1088 +#: ../gio/glib-compile-schemas.c:1117 #, c-format msgid "Can not be a list of a schema with a path" msgstr "No puede ser una lista de un esquema con una ruta" -#: ../gio/glib-compile-schemas.c:1098 +#: ../gio/glib-compile-schemas.c:1127 #, c-format msgid "Can not extend a schema with a path" msgstr "No se puede extender un esquema con una ruta" -#: ../gio/glib-compile-schemas.c:1108 +#: ../gio/glib-compile-schemas.c:1137 #, c-format msgid "" " is a list, extending which is not a list" @@ -2634,96 +2628,96 @@ msgstr "" " es una lista, extendiendo que no es una " "lista" -#: ../gio/glib-compile-schemas.c:1118 +#: ../gio/glib-compile-schemas.c:1147 #, c-format msgid "" " extends but '%s' " "does not extend '%s'" msgstr "" -" extiende pero " -"«%s» no extiende «%s»" +" extiende pero «%" +"s» no extiende «%s»" -#: ../gio/glib-compile-schemas.c:1135 +#: ../gio/glib-compile-schemas.c:1164 #, c-format msgid "a path, if given, must begin and end with a slash" msgstr "si se especifica una ruta, debe comenzar y terminar con una barra" -#: ../gio/glib-compile-schemas.c:1142 +#: ../gio/glib-compile-schemas.c:1171 #, c-format msgid "the path of a list must end with ':/'" msgstr "la ruta de la lista debe terminar con «:/»" -#: ../gio/glib-compile-schemas.c:1168 +#: ../gio/glib-compile-schemas.c:1197 #, c-format msgid "<%s id='%s'> already specified" msgstr "<%s id='%s'> ya especificado" -#: ../gio/glib-compile-schemas.c:1387 +#: ../gio/glib-compile-schemas.c:1417 #, c-format msgid "Element <%s> not allowed inside <%s>" msgstr "No se permite el elemento <%s> dentro de <%s>" -#: ../gio/glib-compile-schemas.c:1391 +#: ../gio/glib-compile-schemas.c:1421 #, c-format msgid "Element <%s> not allowed at toplevel" msgstr "No se permite el elemento <%s> en el nivel superior" -#: ../gio/glib-compile-schemas.c:1485 +#: ../gio/glib-compile-schemas.c:1512 #, c-format msgid "text may not appear inside <%s>" msgstr "El texto no debe aparecer dentro de <%s>" #. Translators: Do not translate "--strict". -#: ../gio/glib-compile-schemas.c:1654 ../gio/glib-compile-schemas.c:1725 -#: ../gio/glib-compile-schemas.c:1801 +#: ../gio/glib-compile-schemas.c:1697 ../gio/glib-compile-schemas.c:1768 +#: ../gio/glib-compile-schemas.c:1844 #, c-format msgid "--strict was specified; exiting.\n" msgstr "se especificó --strict; saliendo.\n" -#: ../gio/glib-compile-schemas.c:1662 +#: ../gio/glib-compile-schemas.c:1705 #, c-format msgid "This entire file has been ignored.\n" msgstr "Se ha ignorado este archivo completamente.\n" -#: ../gio/glib-compile-schemas.c:1721 +#: ../gio/glib-compile-schemas.c:1764 #, c-format msgid "Ignoring this file.\n" msgstr "Ignorando este archivo.\n" -#: ../gio/glib-compile-schemas.c:1761 +#: ../gio/glib-compile-schemas.c:1804 #, 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 +#: ../gio/glib-compile-schemas.c:1810 ../gio/glib-compile-schemas.c:1868 +#: ../gio/glib-compile-schemas.c:1896 #, c-format msgid "; ignoring override for this key.\n" msgstr "; ignorando la sobreescritura para esta clave.\n" -#: ../gio/glib-compile-schemas.c:1771 ../gio/glib-compile-schemas.c:1829 -#: ../gio/glib-compile-schemas.c:1857 +#: ../gio/glib-compile-schemas.c:1814 ../gio/glib-compile-schemas.c:1872 +#: ../gio/glib-compile-schemas.c:1900 #, c-format msgid " and --strict was specified; exiting.\n" msgstr "y se especificó --strict; saliendo.\n" -#: ../gio/glib-compile-schemas.c:1787 +#: ../gio/glib-compile-schemas.c:1830 #, 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." -#: ../gio/glib-compile-schemas.c:1797 +#: ../gio/glib-compile-schemas.c:1840 #, c-format msgid "Ignoring override for this key.\n" msgstr "Ignorando la sobreescritura para esta clave.\n" -#: ../gio/glib-compile-schemas.c:1815 +#: ../gio/glib-compile-schemas.c:1858 #, c-format msgid "" "override for key `%s' in schema `%s' in override file `%s' is out of the " @@ -2732,7 +2726,7 @@ msgstr "" "la clave de sobreescritura «%s» en el esquema «%s» en el archivo de " "sobreescritura «%s» está fuera del rango proporcionado en el esquema" -#: ../gio/glib-compile-schemas.c:1843 +#: ../gio/glib-compile-schemas.c:1886 #, c-format msgid "" "override for key `%s' in schema `%s' in override file `%s' is not in the " @@ -2741,31 +2735,31 @@ msgstr "" "la clave de sobreescritura «%s» en el esquema «%s» en el archivo de " "sobreescritura «%s» no está en la lista de opciones válidas" -#: ../gio/glib-compile-schemas.c:1897 +#: ../gio/glib-compile-schemas.c:1940 msgid "where to store the gschemas.compiled file" msgstr "dónde almacenar el archivo gschemas.compiled" -#: ../gio/glib-compile-schemas.c:1897 ../gio/glib-compile-schemas.c:1923 +#: ../gio/glib-compile-schemas.c:1940 ../gio/glib-compile-schemas.c:1966 msgid "DIRECTORY" msgstr "DIRECTORIO" -#: ../gio/glib-compile-schemas.c:1898 +#: ../gio/glib-compile-schemas.c:1941 msgid "Abort on any errors in schemas" msgstr "Abortar ante cualquier error en los esquemas" -#: ../gio/glib-compile-schemas.c:1899 +#: ../gio/glib-compile-schemas.c:1942 msgid "Do not write the gschema.compiled file" msgstr "No escribir el archivo gschemas.compiled" -#: ../gio/glib-compile-schemas.c:1900 +#: ../gio/glib-compile-schemas.c:1943 msgid "This option will be removed soon." msgstr "Pronto se quitará esta opción." -#: ../gio/glib-compile-schemas.c:1901 +#: ../gio/glib-compile-schemas.c:1944 msgid "Do not enforce key name restrictions" msgstr "No forzar las restricciones de nombre de las claves" -#: ../gio/glib-compile-schemas.c:1926 +#: ../gio/glib-compile-schemas.c:1969 msgid "" "Compile all GSettings schema files into a schema cache.\n" "Schema files are required to have the extension .gschema.xml,\n" @@ -2776,22 +2770,22 @@ msgstr "" "Los archivos de esquema deben tener la extensión .gschema.xml,\n" "y el archivo de caché se llama gschemas.compiled." -#: ../gio/glib-compile-schemas.c:1942 +#: ../gio/glib-compile-schemas.c:1985 #, c-format msgid "You should give exactly one directory name\n" msgstr "Deberá proporcionar exactamente un nombre de directorio\n" -#: ../gio/glib-compile-schemas.c:1981 +#: ../gio/glib-compile-schemas.c:2024 #, c-format msgid "No schema files found: " msgstr "No se encontró ningún archivo de esquemas: " -#: ../gio/glib-compile-schemas.c:1984 +#: ../gio/glib-compile-schemas.c:2027 #, c-format msgid "doing nothing.\n" msgstr "sin hacer nada.\n" -#: ../gio/glib-compile-schemas.c:1987 +#: ../gio/glib-compile-schemas.c:2030 #, c-format msgid "removed existing output file.\n" msgstr "se quitó el archivo de salida existente.\n" @@ -2825,10 +2819,10 @@ msgstr "Error al renombrar el archivo: %s" msgid "Can't rename file, filename already exist" msgstr "No se puede renombrar el archivo, el nombre ya existe" -#: ../gio/glocalfile.c:1149 ../gio/glocalfile.c:2133 ../gio/glocalfile.c:2162 -#: ../gio/glocalfile.c:2322 ../gio/glocalfileoutputstream.c:571 +#: ../gio/glocalfile.c:1149 ../gio/glocalfile.c:2139 ../gio/glocalfile.c:2168 +#: ../gio/glocalfile.c:2328 ../gio/glocalfileoutputstream.c:571 #: ../gio/glocalfileoutputstream.c:624 ../gio/glocalfileoutputstream.c:669 -#: ../gio/glocalfileoutputstream.c:1151 +#: ../gio/glocalfileoutputstream.c:1157 msgid "Invalid filename" msgstr "Nombre de archivo inválido" @@ -2837,81 +2831,81 @@ msgstr "Nombre de archivo inválido" msgid "Error opening file: %s" msgstr "Error al abrir el archivo: %s" -#: ../gio/glocalfile.c:1320 +#: ../gio/glocalfile.c:1326 msgid "Can't open directory" msgstr "No se puede abrir el directorio" -#: ../gio/glocalfile.c:1445 +#: ../gio/glocalfile.c:1451 #, c-format msgid "Error removing file: %s" msgstr "Error al eliminar el archivo: %s" -#: ../gio/glocalfile.c:1812 +#: ../gio/glocalfile.c:1818 #, c-format msgid "Error trashing file: %s" msgstr "Error al mover a la papelera el archivo: %s" -#: ../gio/glocalfile.c:1835 +#: ../gio/glocalfile.c:1841 #, c-format msgid "Unable to create trash dir %s: %s" msgstr "No se pudo crear el directorio papelera %s: %s" -#: ../gio/glocalfile.c:1856 +#: ../gio/glocalfile.c:1862 msgid "Unable to find toplevel directory for trash" msgstr "" "No se pudo encontrar el directorio de nivel superior para mover a la papelera" -#: ../gio/glocalfile.c:1935 ../gio/glocalfile.c:1955 +#: ../gio/glocalfile.c:1941 ../gio/glocalfile.c:1961 msgid "Unable to find or create trash directory" msgstr "No se pudo encontrar o crear el directorio de la papelera" -#: ../gio/glocalfile.c:1989 +#: ../gio/glocalfile.c:1995 #, c-format msgid "Unable to create trashing info file: %s" msgstr "No se pudo crear la información de papelera para el archivo: %s" -#: ../gio/glocalfile.c:2018 ../gio/glocalfile.c:2023 ../gio/glocalfile.c:2103 -#: ../gio/glocalfile.c:2110 +#: ../gio/glocalfile.c:2024 ../gio/glocalfile.c:2029 ../gio/glocalfile.c:2109 +#: ../gio/glocalfile.c:2116 #, c-format msgid "Unable to trash file: %s" msgstr "No se pudo enviar a la papelera el archivo: %s" -#: ../gio/glocalfile.c:2137 +#: ../gio/glocalfile.c:2143 #, c-format msgid "Error creating directory: %s" msgstr "Error al crear el directorio: %s" -#: ../gio/glocalfile.c:2166 +#: ../gio/glocalfile.c:2172 #, c-format msgid "Filesystem does not support symbolic links" msgstr "El sistema de archivos no soporta enlaces simbólicos" -#: ../gio/glocalfile.c:2170 +#: ../gio/glocalfile.c:2176 #, c-format msgid "Error making symbolic link: %s" msgstr "Error al crear el enlace simbólico: %s" -#: ../gio/glocalfile.c:2232 ../gio/glocalfile.c:2326 +#: ../gio/glocalfile.c:2238 ../gio/glocalfile.c:2332 #, c-format msgid "Error moving file: %s" msgstr "Error al mover el archivo: %s" -#: ../gio/glocalfile.c:2255 +#: ../gio/glocalfile.c:2261 msgid "Can't move directory over directory" msgstr "No se puede mover un directorio sobre un directoro" -#: ../gio/glocalfile.c:2282 ../gio/glocalfileoutputstream.c:949 -#: ../gio/glocalfileoutputstream.c:963 ../gio/glocalfileoutputstream.c:978 -#: ../gio/glocalfileoutputstream.c:994 ../gio/glocalfileoutputstream.c:1008 +#: ../gio/glocalfile.c:2288 ../gio/glocalfileoutputstream.c:955 +#: ../gio/glocalfileoutputstream.c:969 ../gio/glocalfileoutputstream.c:984 +#: ../gio/glocalfileoutputstream.c:1000 ../gio/glocalfileoutputstream.c:1014 msgid "Backup file creation failed" msgstr "Falló la creación del archivo de respaldo" -#: ../gio/glocalfile.c:2301 +#: ../gio/glocalfile.c:2307 #, c-format msgid "Error removing target file: %s" msgstr "Error al eliminar el archivo destino: %s" -#: ../gio/glocalfile.c:2315 +#: ../gio/glocalfile.c:2321 msgid "Move between mounts not supported" msgstr "No se soporta mover archivos entre puntos de montaje" @@ -3018,7 +3012,7 @@ msgstr "Error al leer del archivo: %s" #: ../gio/glocalfileinputstream.c:216 ../gio/glocalfileinputstream.c:228 #: ../gio/glocalfileinputstream.c:340 ../gio/glocalfileoutputstream.c:470 -#: ../gio/glocalfileoutputstream.c:1026 +#: ../gio/glocalfileoutputstream.c:1032 #, c-format msgid "Error seeking in file: %s" msgstr "Error al buscar en el archivo: %s" @@ -3056,14 +3050,14 @@ msgstr "Error al crear una copia de respaldo: %s" msgid "Error renaming temporary file: %s" msgstr "Error al renombrar el archivo temporal: %s" -#: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1077 +#: ../gio/glocalfileoutputstream.c:516 ../gio/glocalfileoutputstream.c:1083 #, c-format msgid "Error truncating file: %s" msgstr "Error al truncar el archivo: %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:1064 ../gio/glocalfileoutputstream.c:1163 #, c-format msgid "Error opening file '%s': %s" msgstr "Error al abrir el archivo «%s»: %s" @@ -3080,7 +3074,7 @@ msgstr "El archivo destino no es un archivo regular" msgid "The file was externally modified" msgstr "El archivo se modificó externamente" -#: ../gio/glocalfileoutputstream.c:1042 +#: ../gio/glocalfileoutputstream.c:1048 #, c-format msgid "Error removing old file: %s" msgstr "Error al eliminar el archivo antiguo: %s" @@ -3188,27 +3182,27 @@ msgstr "El flujo de salida no implementa la escritura" msgid "Source stream is already closed" msgstr "El flujo de origen ya está cerrado" -#: ../gio/gresolver.c:737 +#: ../gio/gresolver.c:779 #, c-format msgid "Error resolving '%s': %s" msgstr "Error al resolver «%s»: %s" -#: ../gio/gresolver.c:787 +#: ../gio/gresolver.c:829 #, c-format msgid "Error reverse-resolving '%s': %s" msgstr "Error al resolver «%s» de forma invertida: %s" -#: ../gio/gresolver.c:822 ../gio/gresolver.c:900 +#: ../gio/gresolver.c:864 ../gio/gresolver.c:943 #, c-format msgid "No service record for '%s'" msgstr "No hay registro de servicio para «%s»" -#: ../gio/gresolver.c:827 ../gio/gresolver.c:905 +#: ../gio/gresolver.c:869 ../gio/gresolver.c:948 #, c-format msgid "Temporarily unable to resolve '%s'" msgstr "No se puede resolver «%s» temporalmente" -#: ../gio/gresolver.c:832 ../gio/gresolver.c:910 +#: ../gio/gresolver.c:874 ../gio/gresolver.c:953 #, c-format msgid "Error resolving '%s'" msgstr "Error al resolver «%s»" @@ -3253,36 +3247,42 @@ msgstr "La ruta no debe contener dos barras adyacentes (//)\n" msgid "No such key '%s'\n" msgstr "No existe la clave «%s»\n" -#: ../gio/gsettings-tool.c:444 +#: ../gio/gsettings-tool.c:493 #, 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:473 +#: ../gio/gsettings-tool.c:503 +#, c-format +msgid "Failed to set value\n" +msgstr "Falló al establecer el valor\n" + +#: ../gio/gsettings-tool.c:529 msgid "Print help" msgstr "Imprimir ayuda" -#: ../gio/gsettings-tool.c:479 +#: ../gio/gsettings-tool.c:535 msgid "List the installed (non-relocatable) schemas" msgstr "Listar los esquemas instalados (no reubicables)" -#: ../gio/gsettings-tool.c:485 +#: ../gio/gsettings-tool.c:541 msgid "List the installed relocatable schemas" msgstr "Listar los esquemas reubicables instalados" -#: ../gio/gsettings-tool.c:491 +#: ../gio/gsettings-tool.c:547 msgid "List the keys in SCHEMA" msgstr "Listar las claves en el ESQUEMA" -#: ../gio/gsettings-tool.c:492 ../gio/gsettings-tool.c:498 +#: ../gio/gsettings-tool.c:548 ../gio/gsettings-tool.c:554 +#: ../gio/gsettings-tool.c:591 msgid "SCHEMA[:PATH]" msgstr "ESQUEMA[:RUTA]" -#: ../gio/gsettings-tool.c:497 +#: ../gio/gsettings-tool.c:553 msgid "List the children of SCHEMA" msgstr "Listar los hijos del ESQUEMA" -#: ../gio/gsettings-tool.c:503 +#: ../gio/gsettings-tool.c:559 msgid "" "List keys and values, recursively\n" "If no SCHEMA is given, list all keys\n" @@ -3290,40 +3290,45 @@ msgstr "" "Listar las claves y valores recursivamente\n" "Si no se proporciona un ESQUEMA, listar todas las claves\n" -#: ../gio/gsettings-tool.c:505 +#: ../gio/gsettings-tool.c:561 msgid "[SCHEMA[:PATH]]" msgstr "[ESQUEMA[:RUTA]]" -#: ../gio/gsettings-tool.c:510 +#: ../gio/gsettings-tool.c:566 msgid "Get the value of KEY" msgstr "Obtener el valor de la CLAVE" -#: ../gio/gsettings-tool.c:511 ../gio/gsettings-tool.c:517 -#: ../gio/gsettings-tool.c:529 ../gio/gsettings-tool.c:535 +#: ../gio/gsettings-tool.c:567 ../gio/gsettings-tool.c:573 +#: ../gio/gsettings-tool.c:585 ../gio/gsettings-tool.c:597 msgid "SCHEMA[:PATH] KEY" msgstr "ESQUEMA[:RUTA] CLAVE" -#: ../gio/gsettings-tool.c:516 +#: ../gio/gsettings-tool.c:572 msgid "Query the range of valid values for KEY" msgstr "Consultar el rango de valores válidos para la CLAVE" -#: ../gio/gsettings-tool.c:522 +#: ../gio/gsettings-tool.c:578 msgid "Set the value of KEY to VALUE" msgstr "Establecer el valor de la CLAVE a VALOR" -#: ../gio/gsettings-tool.c:523 +#: ../gio/gsettings-tool.c:579 msgid "SCHEMA[:PATH] KEY VALUE" msgstr "ESQUEMA[:RUTA] CLAVE VALOR" -#: ../gio/gsettings-tool.c:528 +#: ../gio/gsettings-tool.c:584 msgid "Reset KEY to its default value" msgstr "Restablecer la CLAVE a su valor predeterminado" -#: ../gio/gsettings-tool.c:534 +#: ../gio/gsettings-tool.c:590 +msgid "Reset all keys in SCHEMA to their defaults" +msgstr "" +"Restablecer todas las claves en un ESQUEMA a sus valores predeterminados" + +#: ../gio/gsettings-tool.c:596 msgid "Check if KEY is writable" msgstr "Comprobar si la CLAVE se puede escribir" -#: ../gio/gsettings-tool.c:540 +#: ../gio/gsettings-tool.c:602 msgid "" "Monitor KEY for changes.\n" "If no KEY is specified, monitor all keys in SCHEMA.\n" @@ -3333,11 +3338,11 @@ msgstr "" "Si no se especifica una CLAVE, monitorizar todas las claves en el ESQUEMA.\n" "Use ^C para detener la monitorización.\n" -#: ../gio/gsettings-tool.c:543 +#: ../gio/gsettings-tool.c:605 msgid "SCHEMA[:PATH] [KEY]" msgstr "ESQUEMA[:RUTA] [CLAVE]" -#: ../gio/gsettings-tool.c:547 +#: ../gio/gsettings-tool.c:609 #, c-format msgid "" "Unknown command %s\n" @@ -3346,7 +3351,27 @@ msgstr "" "Comando «%s» desconocido\n" "\n" -#: ../gio/gsettings-tool.c:555 +#: ../gio/gsettings-tool.c:617 +#| 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" msgid "" "Usage:\n" " gsettings COMMAND [ARGS...]\n" @@ -3362,6 +3387,7 @@ msgid "" " get Get the value of a key\n" " set Set the value of a key\n" " reset Reset the value of a key\n" +" reset-recursively Reset all values in a given schema\n" " writable Check if a key is writable\n" " monitor Watch for changes\n" "\n" @@ -3378,17 +3404,19 @@ msgstr "" " list-keys Listar las claves en un esquema\n" " list-children Listar los hijos de un esquema\n" " list-recursively Listar claves y valores recursivamente\n" -" range Consulta el rango de una clave\n" +" range Consultar el rango de una clave\n" " get Obtener el valor de una clave\n" " set Establecer el valor de una clave\n" " reset Restablecer el valor de una clave\n" +" reset-recursively Restablecer todos los valores en un esquema " +"dado\n" " writable Comprobar si una clave se puede escribir\n" " monitor Monitorizar cambios\n" "\n" "Use «gsettings help COMANDO» para obtener una ayuda detallada.\n" "\n" -#: ../gio/gsettings-tool.c:576 +#: ../gio/gsettings-tool.c:639 #, c-format msgid "" "Usage:\n" @@ -3403,15 +3431,15 @@ msgstr "" "%s\n" "\n" -#: ../gio/gsettings-tool.c:581 +#: ../gio/gsettings-tool.c:644 msgid "Arguments:\n" msgstr "Argumentos:\n" -#: ../gio/gsettings-tool.c:585 +#: ../gio/gsettings-tool.c:648 msgid " COMMAND The (optional) command to explain\n" msgstr " COMANDO El comando (opcional) que explicar\n" -#: ../gio/gsettings-tool.c:589 +#: ../gio/gsettings-tool.c:652 msgid "" " SCHEMA The name of the schema\n" " PATH The path, for relocatable schemas\n" @@ -3419,19 +3447,19 @@ msgstr "" " SCHEMA El nombre del esquema\n" " RUTA La ruta, para esquemas reubicables\n" -#: ../gio/gsettings-tool.c:594 +#: ../gio/gsettings-tool.c:657 msgid " KEY The (optional) key within the schema\n" msgstr " CLAVE La clave (opcional) para el esquema\n" -#: ../gio/gsettings-tool.c:598 +#: ../gio/gsettings-tool.c:661 msgid " KEY The key within the schema\n" msgstr " CLAVE La clave para el esquema\n" -#: ../gio/gsettings-tool.c:602 +#: ../gio/gsettings-tool.c:665 msgid " VALUE The value to set\n" msgstr " VALOR El valor para establecer\n" -#: ../gio/gsettings-tool.c:691 +#: ../gio/gsettings-tool.c:757 #, c-format msgid "Empty schema name given\n" msgstr "Se proporcionó un nombre de esquema vacío\n" @@ -3449,7 +3477,7 @@ msgstr "Socket no válido, falló la instalación debido a: %s" msgid "Socket is already closed" msgstr "El socket ya está cerrado" -#: ../gio/gsocket.c:300 ../gio/gsocket.c:2769 ../gio/gsocket.c:2813 +#: ../gio/gsocket.c:300 ../gio/gsocket.c:2774 ../gio/gsocket.c:2818 msgid "Socket I/O timed out" msgstr "Expiró la E/S del socket" @@ -3458,7 +3486,7 @@ msgstr "Expiró la E/S del socket" msgid "creating GSocket from fd: %s" msgstr "creando el GSocket desde fd: %s" -#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2135 +#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2140 #, c-format msgid "Unable to create socket: %s" msgstr "No se pudo crear el socket: %s" @@ -3467,79 +3495,79 @@ msgstr "No se pudo crear el socket: %s" msgid "Unknown protocol was specified" msgstr "Se especificó un protocolo desconocido" -#: ../gio/gsocket.c:1246 +#: ../gio/gsocket.c:1247 #, c-format msgid "could not get local address: %s" msgstr "no se pudo obtener la dirección local: %s" -#: ../gio/gsocket.c:1289 +#: ../gio/gsocket.c:1290 #, c-format msgid "could not get remote address: %s" msgstr "no se pudo obtener la dirección remota: %s" -#: ../gio/gsocket.c:1350 +#: ../gio/gsocket.c:1351 #, c-format msgid "could not listen: %s" msgstr "no se pudo escuchar: %s" -#: ../gio/gsocket.c:1424 +#: ../gio/gsocket.c:1425 #, c-format msgid "Error binding to address: %s" msgstr "Error al vincular con la dirección: %s" -#: ../gio/gsocket.c:1544 +#: ../gio/gsocket.c:1545 #, c-format msgid "Error accepting connection: %s" msgstr "Error al aceptar la conexión: %s" -#: ../gio/gsocket.c:1661 +#: ../gio/gsocket.c:1662 msgid "Error connecting: " msgstr "Error al conectar: " -#: ../gio/gsocket.c:1666 +#: ../gio/gsocket.c:1667 msgid "Connection in progress" msgstr "Conexión en progreso" -#: ../gio/gsocket.c:1673 +#: ../gio/gsocket.c:1674 #, c-format msgid "Error connecting: %s" msgstr "Error al conectar: %s" -#: ../gio/gsocket.c:1716 ../gio/gsocket.c:3532 +#: ../gio/gsocket.c:1717 ../gio/gsocket.c:3534 #, c-format msgid "Unable to get pending error: %s" msgstr "No se pudo obtener el error pendiente: %s" -#: ../gio/gsocket.c:1848 +#: ../gio/gsocket.c:1852 #, c-format msgid "Error receiving data: %s" msgstr "Error al recibir los datos: %s" -#: ../gio/gsocket.c:2022 +#: ../gio/gsocket.c:2027 #, c-format msgid "Error sending data: %s" msgstr "Error al enviar los datos: %s" -#: ../gio/gsocket.c:2214 +#: ../gio/gsocket.c:2219 #, c-format msgid "Error closing socket: %s" msgstr "Error al cerrar el socket: %s" -#: ../gio/gsocket.c:2762 +#: ../gio/gsocket.c:2767 #, c-format msgid "Waiting for socket condition: %s" msgstr "Esperando la condición del socket: %s" -#: ../gio/gsocket.c:3052 +#: ../gio/gsocket.c:3057 msgid "GSocketControlMessage not supported on windows" msgstr "GSocketControlMessage no está soportado en win32" -#: ../gio/gsocket.c:3311 ../gio/gsocket.c:3452 +#: ../gio/gsocket.c:3318 ../gio/gsocket.c:3454 #, c-format msgid "Error receiving message: %s" msgstr "Error al recibir el mensaje: %s" -#: ../gio/gsocket.c:3547 +#: ../gio/gsocket.c:3549 msgid "g_socket_get_credentials not implemented for this OS" msgstr "g_socket_get_credentials no está implementado en este SO" @@ -3679,12 +3707,12 @@ msgstr "No se pudo analizar el certificado codificado con PEM" msgid "Could not parse PEM-encoded private key" msgstr "No se pudo analizar la clave privada codificada con PEM" -#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:505 +#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:506 #, c-format msgid "Expecting 1 control message, got %d" msgstr "Se esperaba un mensaje de control, se obtuvieron %d" -#: ../gio/gunixconnection.c:177 ../gio/gunixconnection.c:515 +#: ../gio/gunixconnection.c:177 ../gio/gunixconnection.c:516 msgid "Unexpected type of ancillary data" msgstr "Tipos de datos complementarios inesperados" @@ -3720,14 +3748,14 @@ msgstr "" msgid "Error enabling SO_PASSCRED: %s" msgstr "Error al activar SO_PASSCRED: %s" -#: ../gio/gunixconnection.c:495 +#: ../gio/gunixconnection.c:496 msgid "" "Expecting to read a single byte for receiving credentials but read zero bytes" msgstr "" "Se esperaba leer un solo byte para recibir las credenciales pero se leyeron " "cero bytes" -#: ../gio/gunixconnection.c:538 +#: ../gio/gunixconnection.c:539 #, c-format msgid "Error while disabling SO_PASSCRED: %s" msgstr "Error al desactivar SO_PASSCRED: %s" @@ -3823,10 +3851,20 @@ msgstr "Se necesita más entrada" msgid "Invalid compressed data" msgstr "Datos comprimidos no válidos" +#~| msgid "" +#~| "Error in address `%s' - the noncefile attribute is missing or malformed" +#~ msgid "Error in address `%s' - missing noncefile attribute" +#~ msgstr "" +#~ "Error en la dirección «%s»: falta el atributo para el archivo de número " +#~ "usado una sola vez" + +#~| msgid "Error in address `%s' - the port attribute is malformed" +#~ msgid "Error in address `%s' - missing host attribute" +#~ msgstr "Error en la dirección «%s»; falta el atributo para el servidor" + #~ 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" @@ -3971,8 +4009,8 @@ msgstr "Datos comprimidos no válidos" #~ "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/tr.po b/po/tr.po index f3a3539b0..87c0d1e5f 100644 --- a/po/tr.po +++ b/po/tr.po @@ -5,352 +5,583 @@ # Arman Aksoy , 2003. # Onur Can ÇAKMAK , 2004, 2006. # Baris Cicek , 2005, 2007, 2008, 2009. +# Muhammet Kara , 2011. +# msgid "" msgstr "" "Project-Id-Version: glib\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-07 21:37-0400\n" -"PO-Revision-Date: 2009-08-25 00:32+0300\n" -"Last-Translator: Baris Cicek \n" +"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" +"product=glib&keywords=I18N+L10N&component=general\n" +"POT-Creation-Date: 2011-04-13 21:51+0000\n" +"PO-Revision-Date: 2011-04-26 03:02+0300\n" +"Last-Translator: Muhammet Kara \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=1; plural=0;\n" -#: glib/gbookmarkfile.c:737 +#: ../glib/gbookmarkfile.c:780 #, c-format msgid "Unexpected attribute '%s' for element '%s'" msgstr "'%2$s' öğesinde beklenmeyen '%1$s' özniteliği" -#: 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 "'%2$s' öğesinde '%1$s' özelliği bulunamadı" -#: 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 "Beklenmeyen etiket '%s', '%s' bekleniyordu" -#: 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 "'%2$s' içinde beklenmeyen etiket '%1$s'" -#: glib/gbookmarkfile.c:1793 +#: ../glib/gbookmarkfile.c:1834 msgid "No valid bookmark file found in data dirs" msgstr "Veri dizinlerinde geçerli bir yer imi dosyası bulunamadı" -#: glib/gbookmarkfile.c:1994 +#: ../glib/gbookmarkfile.c:2035 #, c-format msgid "A bookmark for URI '%s' already exists" msgstr "URI '%s' için bir yer imi zaten var" -#: 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 "URI '%s' için bir yer imi bulunamadı" -#: glib/gbookmarkfile.c:2372 +#: ../glib/gbookmarkfile.c:2413 #, c-format msgid "No MIME type defined in the bookmark for URI '%s'" msgstr "URI '%s' için yer iminde hiç bir MIME tipi belirtilmedi" -#: glib/gbookmarkfile.c:2457 +#: ../glib/gbookmarkfile.c:2498 #, c-format msgid "No private flag has been defined in bookmark for URI '%s'" msgstr "URI '%s' için yer iminde özel işareti tanımlanmadı" -#: glib/gbookmarkfile.c:2836 +#: ../glib/gbookmarkfile.c:2877 #, c-format msgid "No groups set in bookmark for URI '%s'" msgstr "URI '%s' için yer iminde grup tanımlanmadı" -#: 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 "'%s' adında hiçbir uygulama '%s' için yer imi kaydetmedi" -#: glib/gbookmarkfile.c:3417 +#: ../glib/gbookmarkfile.c:3458 #, c-format msgid "Failed to expand exec line '%s' with URI '%s'" msgstr "Exec satırı '%s' URI %s ile genişletilirken başarısız olundu" -#: 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 "'%s' karakter kümesinden '%s' karakter kümesine dönüşüm desteklenmiyor" -#: 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 "'%s'--'%s' dönüştürücüsü açılamıyor" -#: 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:1162 ../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 "Dönüşüm girdisinde geçersiz bayt dizisi" -#: glib/gconvert.c:646 glib/gconvert.c:956 glib/giochannel.c:1583 -#: glib/giochannel.c:2474 gio/gcharsetconverter.c:351 +#: ../glib/gconvert.c:777 ../glib/gconvert.c:1087 ../glib/giochannel.c:1582 +#: ../glib/giochannel.c:2472 ../gio/gcharsetconverter.c:350 #, c-format msgid "Error during conversion: %s" msgstr "Dönüşüm sırasında hata oluştu: %s" -#: glib/gconvert.c:678 glib/gutf8.c:985 glib/gutf8.c:1195 glib/gutf8.c:1336 -#: glib/gutf8.c:1440 +#: ../glib/gconvert.c:809 ../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 "Girdinin sonunda parçalı karakter dizisi" -#: glib/gconvert.c:928 +#: ../glib/gconvert.c:1059 #, c-format msgid "Cannot convert fallback '%s' to codeset '%s'" msgstr "" "Geridönüş karakter kümesi '%s', '%s' karakter kümesine dönüştürülemiyor" -#: glib/gconvert.c:1751 +#: ../glib/gconvert.c:1882 #, c-format msgid "The URI '%s' is not an absolute URI using the \"file\" scheme" msgstr "URI '%s', \"file\" şemasını kullanan kesin bir URI değil" -#: glib/gconvert.c:1761 +#: ../glib/gconvert.c:1892 #, c-format msgid "The local file URI '%s' may not include a '#'" msgstr "Yerel dosya URI'si '%s', '#' içeremez" -#: glib/gconvert.c:1778 +#: ../glib/gconvert.c:1909 #, c-format msgid "The URI '%s' is invalid" msgstr "URI '%s' geçersiz" -#: glib/gconvert.c:1790 +#: ../glib/gconvert.c:1921 #, c-format msgid "The hostname of the URI '%s' is invalid" msgstr "URI makine adı '%s' geçersiz" -#: glib/gconvert.c:1806 +#: ../glib/gconvert.c:1937 #, c-format msgid "The URI '%s' contains invalidly escaped characters" msgstr "URI '%s' geçersiz olarak çıkış yapılmış karakterler içeriyor" -#: glib/gconvert.c:1901 +#: ../glib/gconvert.c:2032 #, c-format msgid "The pathname '%s' is not an absolute path" msgstr "Yol adı '%s', kesin bir yol değil" -#: glib/gconvert.c:1911 +#: ../glib/gconvert.c:2042 msgid "Invalid hostname" msgstr "Geçersiz makine adı" -#: glib/gdir.c:112 glib/gdir.c:135 +#. Translators: 'before midday' indicator +#: ../glib/gdatetime.c:149 +msgctxt "GDateTime" +msgid "am" +msgstr "öö" + +#. Translators: 'before midday' indicator +#: ../glib/gdatetime.c:151 +msgctxt "GDateTime" +msgid "AM" +msgstr "ÖÖ" + +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:153 +msgctxt "GDateTime" +msgid "pm" +msgstr "ös" + +#. Translators: 'after midday' indicator +#: ../glib/gdatetime.c:155 +msgctxt "GDateTime" +msgid "PM" +msgstr "ÖS" + +#. 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 "Ocak" + +#: ../glib/gdatetime.c:195 +msgctxt "full month name" +msgid "February" +msgstr "Şubat" + +#: ../glib/gdatetime.c:197 +msgctxt "full month name" +msgid "March" +msgstr "Mart" + +#: ../glib/gdatetime.c:199 +msgctxt "full month name" +msgid "April" +msgstr "Nisan" + +#: ../glib/gdatetime.c:201 +msgctxt "full month name" +msgid "May" +msgstr "Mayıs" + +#: ../glib/gdatetime.c:203 +msgctxt "full month name" +msgid "June" +msgstr "Haziran" + +#: ../glib/gdatetime.c:205 +msgctxt "full month name" +msgid "July" +msgstr "Temmuz" + +#: ../glib/gdatetime.c:207 +msgctxt "full month name" +msgid "August" +msgstr "Ağustos" + +#: ../glib/gdatetime.c:209 +msgctxt "full month name" +msgid "September" +msgstr "Eylül" + +#: ../glib/gdatetime.c:211 +msgctxt "full month name" +msgid "October" +msgstr "Ekim" + +#: ../glib/gdatetime.c:213 +msgctxt "full month name" +msgid "November" +msgstr "Kasım" + +#: ../glib/gdatetime.c:215 +msgctxt "full month name" +msgid "December" +msgstr "Aralık" + +#: ../glib/gdatetime.c:230 +msgctxt "abbreviated month name" +msgid "Jan" +msgstr "Oca" + +#: ../glib/gdatetime.c:232 +msgctxt "abbreviated month name" +msgid "Feb" +msgstr "Şub" + +#: ../glib/gdatetime.c:234 +msgctxt "abbreviated month name" +msgid "Mar" +msgstr "Mar" + +#: ../glib/gdatetime.c:236 +msgctxt "abbreviated month name" +msgid "Apr" +msgstr "Nis" + +#: ../glib/gdatetime.c:238 +msgctxt "abbreviated month name" +msgid "May" +msgstr "May" + +#: ../glib/gdatetime.c:240 +msgctxt "abbreviated month name" +msgid "Jun" +msgstr "Haz" + +#: ../glib/gdatetime.c:242 +msgctxt "abbreviated month name" +msgid "Jul" +msgstr "Tem" + +#: ../glib/gdatetime.c:244 +msgctxt "abbreviated month name" +msgid "Aug" +msgstr "Ağu" + +#: ../glib/gdatetime.c:246 +msgctxt "abbreviated month name" +msgid "Sep" +msgstr "Eyl" + +#: ../glib/gdatetime.c:248 +msgctxt "abbreviated month name" +msgid "Oct" +msgstr "Eki" + +#: ../glib/gdatetime.c:250 +msgctxt "abbreviated month name" +msgid "Nov" +msgstr "Kas" + +#: ../glib/gdatetime.c:252 +msgctxt "abbreviated month name" +msgid "Dec" +msgstr "Ara" + +#: ../glib/gdatetime.c:267 +msgctxt "full weekday name" +msgid "Monday" +msgstr "Pazartesi" + +#: ../glib/gdatetime.c:269 +msgctxt "full weekday name" +msgid "Tuesday" +msgstr "Salı" + +#: ../glib/gdatetime.c:271 +msgctxt "full weekday name" +msgid "Wednesday" +msgstr "Çarşamba" + +#: ../glib/gdatetime.c:273 +msgctxt "full weekday name" +msgid "Thursday" +msgstr "Perşembe" + +#: ../glib/gdatetime.c:275 +msgctxt "full weekday name" +msgid "Friday" +msgstr "Cuma" + +#: ../glib/gdatetime.c:277 +msgctxt "full weekday name" +msgid "Saturday" +msgstr "Cumartesi" + +#: ../glib/gdatetime.c:279 +msgctxt "full weekday name" +msgid "Sunday" +msgstr "Pazar" + +#: ../glib/gdatetime.c:294 +msgctxt "abbreviated weekday name" +msgid "Mon" +msgstr "Pzt" + +#: ../glib/gdatetime.c:296 +msgctxt "abbreviated weekday name" +msgid "Tue" +msgstr "Sal" + +#: ../glib/gdatetime.c:298 +msgctxt "abbreviated weekday name" +msgid "Wed" +msgstr "Çar" + +#: ../glib/gdatetime.c:300 +msgctxt "abbreviated weekday name" +msgid "Thu" +msgstr "Per" + +#: ../glib/gdatetime.c:302 +msgctxt "abbreviated weekday name" +msgid "Fri" +msgstr "Cum" + +#: ../glib/gdatetime.c:304 +msgctxt "abbreviated weekday name" +msgid "Sat" +msgstr "Cmt" + +#: ../glib/gdatetime.c:306 +msgctxt "abbreviated weekday name" +msgid "Sun" +msgstr "Paz" + +#: ../glib/gdir.c:115 ../glib/gdir.c:138 #, c-format msgid "Error opening directory '%s': %s" msgstr "'%s' dizini açılamadı: %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 bayt \"%s\" dosyasını okumak için ayrılamadı" -#: glib/gfileutils.c:551 +#: ../glib/gfileutils.c:555 #, c-format msgid "Error reading file '%s': %s" msgstr "'%s' dosyası okunurken hata: %s" -#: glib/gfileutils.c:565 +#: ../glib/gfileutils.c:569 #, c-format msgid "File \"%s\" is too large" msgstr "Dosya \"%s\" çok büyük" -#: glib/gfileutils.c:648 +#: ../glib/gfileutils.c:652 #, c-format msgid "Failed to read from file '%s': %s" msgstr "'%s' dosyasından okuma başarısız: %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' dosyasını açma başarısız: %s" -#: glib/gfileutils.c:716 glib/gmappedfile.c:170 +#: ../glib/gfileutils.c:720 ../glib/gmappedfile.c:169 #, c-format msgid "Failed to get attributes of file '%s': fstat() failed: %s" msgstr "" "'%s' dosyasının özniteliklerini alma başarısız: fstat() başarısızlığı: %s" -#: glib/gfileutils.c:750 +#: ../glib/gfileutils.c:754 #, c-format msgid "Failed to open file '%s': fdopen() failed: %s" msgstr "'%s' dosyasını açma başarısız: fdopen() başarısızlığı: %s" -#: glib/gfileutils.c:858 +#: ../glib/gfileutils.c:862 #, c-format msgid "Failed to rename file '%s' to '%s': g_rename() failed: %s" msgstr "" "'%s' dosyasının adı '%s' olarak değiştirilirken hata: g_rename() " "başarısızlığı: %s" -#: glib/gfileutils.c:900 glib/gfileutils.c:1366 +#: ../glib/gfileutils.c:904 ../glib/gfileutils.c:1388 #, c-format msgid "Failed to create file '%s': %s" msgstr "'%s' dosyasını oluşturma başarısız: %s" -#: glib/gfileutils.c:914 +#: ../glib/gfileutils.c:918 #, c-format msgid "Failed to open file '%s' for writing: fdopen() failed: %s" msgstr "'%s' dosyası yazma için açılamadı: fdopen() başarısızlığı: %s" -#: glib/gfileutils.c:939 +#: ../glib/gfileutils.c:943 #, c-format msgid "Failed to write file '%s': fwrite() failed: %s" msgstr "'%s' dosyasına yazılamadı: fwrite() başarısızlığı: %s" -#: glib/gfileutils.c:958 +#: ../glib/gfileutils.c:962 #, c-format msgid "Failed to write file '%s': fflush() failed: %s" msgstr "Dosya '%s' yazılamadı: fflush() başarısız: %s" -#: glib/gfileutils.c:987 +#: ../glib/gfileutils.c:1005 #, c-format msgid "Failed to write file '%s': fsync() failed: %s" msgstr "Dosya '%s' yazılamadı: fsync() başarısız: %s" -#: glib/gfileutils.c:1006 +#: ../glib/gfileutils.c:1025 #, c-format msgid "Failed to close file '%s': fclose() failed: %s" msgstr "'%s' dosyası kapatılamadı: fclose() başarısızlığı: %s" -#: glib/gfileutils.c:1124 +#: ../glib/gfileutils.c:1146 #, c-format msgid "Existing file '%s' could not be removed: g_unlink() failed: %s" msgstr "Varolan dosya '%s' silinemedi: g_unlink() başarısızlığı: %s" -#: glib/gfileutils.c:1328 +#: ../glib/gfileutils.c:1350 #, c-format msgid "Template '%s' invalid, should not contain a '%s'" msgstr "Şablon '%s' geçersiz, '%s' içermemeli" -#: glib/gfileutils.c:1341 +#: ../glib/gfileutils.c:1363 #, c-format msgid "Template '%s' doesn't contain XXXXXX" msgstr "Şablon '%s' XXXXXX içermiyor" -#: glib/gfileutils.c:1774 +#: ../glib/gfileutils.c:1796 #, c-format msgid "%u byte" msgid_plural "%u bytes" -msgstr[0] "" +msgstr[0] "%u bayt" -#: glib/gfileutils.c:1782 +#: ../glib/gfileutils.c:1804 #, c-format msgid "%.1f KB" msgstr "%.1f KB" -#: glib/gfileutils.c:1787 +#: ../glib/gfileutils.c:1809 #, c-format msgid "%.1f MB" msgstr "%.1f MB" -#: glib/gfileutils.c:1792 +#: ../glib/gfileutils.c:1814 #, c-format msgid "%.1f GB" msgstr "%.1f GB" -#: glib/gfileutils.c:1797 -#, fuzzy, c-format +#: ../glib/gfileutils.c:1819 +#, c-format msgid "%.1f TB" -msgstr "%.1f KB" +msgstr "%.1f TB" -#: glib/gfileutils.c:1802 -#, fuzzy, c-format +#: ../glib/gfileutils.c:1824 +#, c-format msgid "%.1f PB" -msgstr "%.1f KB" +msgstr "%.1f PB" -#: glib/gfileutils.c:1807 -#, fuzzy, c-format +#: ../glib/gfileutils.c:1829 +#, c-format msgid "%.1f EB" -msgstr "%.1f KB" +msgstr "%.1f EB" -#: glib/gfileutils.c:1850 +#: ../glib/gfileutils.c:1872 #, c-format msgid "Failed to read the symbolic link '%s': %s" msgstr "'%s' sembolik bağını okuma başarısız: %s" -#: glib/gfileutils.c:1871 +#: ../glib/gfileutils.c:1893 msgid "Symbolic links not supported" msgstr "Sembolik bağlar desteklenmiyor" -#: glib/giochannel.c:1408 +#: ../glib/giochannel.c:1407 #, c-format msgid "Could not open converter from '%s' to '%s': %s" msgstr "`%s'-`%s' dönüştürücüsü açılamıyor: %s" -#: glib/giochannel.c:1753 +#: ../glib/giochannel.c:1752 msgid "Can't do a raw read in g_io_channel_read_line_string" msgstr "g_io_channel_read_line_string içinde okuma yapılamıyor" -#: glib/giochannel.c:1800 glib/giochannel.c:2058 glib/giochannel.c:2145 +#: ../glib/giochannel.c:1799 ../glib/giochannel.c:2056 +#: ../glib/giochannel.c:2143 msgid "Leftover unconverted data in read buffer" msgstr "Okuma tampon belleğinde kalıntı çevrilmemiş veri" -#: glib/giochannel.c:1881 glib/giochannel.c:1958 +#: ../glib/giochannel.c:1880 ../glib/giochannel.c:1957 msgid "Channel terminates in a partial character" msgstr "Kanal kısmi bir karakterde sonlanıyor" -#: glib/giochannel.c:1944 +#: ../glib/giochannel.c:1943 msgid "Can't do a raw read in g_io_channel_read_to_end" msgstr "g_io_channel_read_to_end içinde okuma başarısız" -#: glib/gmappedfile.c:151 +#: ../glib/gmappedfile.c:150 #, c-format msgid "Failed to open file '%s': open() failed: %s" msgstr "'%s' dosyası açılamadı: open() başarısızlığı: %s" -#: glib/gmappedfile.c:230 +#: ../glib/gmappedfile.c:229 #, c-format msgid "Failed to map file '%s': mmap() failed: %s" msgstr "'%s' için eşlem oluşturulamadı: mmap() başarısızlığı: %s" -#: glib/gmarkup.c:303 glib/gmarkup.c:343 +#: ../glib/gmarkup.c:355 ../glib/gmarkup.c:396 #, c-format msgid "Error on line %d char %d: " msgstr "Satır %d karakter %d hatalı: " -#: glib/gmarkup.c:363 glib/gmarkup.c:441 +#: ../glib/gmarkup.c:418 ../glib/gmarkup.c:501 #, c-format msgid "Invalid UTF-8 encoded text in name - not valid '%s'" msgstr "İsimde geçersiz UTF-8 kodlanmış metin - geçerli olmayan '%s'" -#: glib/gmarkup.c:374 +#: ../glib/gmarkup.c:429 #, c-format msgid "'%s' is not a valid name " msgstr "'%s' geçerli bir isim değil " -#: glib/gmarkup.c:390 +#: ../glib/gmarkup.c:445 #, c-format msgid "'%s' is not a valid name: '%c' " msgstr "'%s' geçerli bir isim değil: '% c'" -#: glib/gmarkup.c:494 +#: ../glib/gmarkup.c:554 #, c-format msgid "Error on line %d: %s" msgstr "Satır %d hata içeriyor: %s" -#: glib/gmarkup.c:578 +#: ../glib/gmarkup.c:638 #, c-format msgid "" "Failed to parse '%-.*s', which should have been a digit inside a character " @@ -359,7 +590,7 @@ msgstr "" "Karakter referansı içinde bir rakam olması gereken '%-.*s' ayrıştırılamadı, " "(örneğin; ê) - rakam çok büyük olabilir" -#: glib/gmarkup.c:590 +#: ../glib/gmarkup.c:650 msgid "" "Character reference did not end with a semicolon; most likely you used an " "ampersand character without intending to start an entity - escape ampersand " @@ -369,23 +600,23 @@ msgstr "" "başlatmak istemeksizin & karakteri kullandınız - & işaretini & olarak " "kullanabilirsiniz" -#: glib/gmarkup.c:616 +#: ../glib/gmarkup.c:676 #, c-format msgid "Character reference '%-.*s' does not encode a permitted character" msgstr "Karakter referansı '%-.*s' izin verilen karakteri kodlamıyor" -#: glib/gmarkup.c:654 +#: ../glib/gmarkup.c:714 msgid "" "Empty entity '&;' seen; valid entities are: & " < > '" msgstr "" "Boş özvarlık '&;' görüldü; geçerli öğeler: & " < &qt; '" -#: glib/gmarkup.c:662 +#: ../glib/gmarkup.c:722 #, c-format msgid "Entity name '%-.*s' is not known" msgstr "Varlık adı '%-.*s' bilinmiyor" -#: glib/gmarkup.c:667 +#: ../glib/gmarkup.c:727 msgid "" "Entity did not end with a semicolon; most likely you used an ampersand " "character without intending to start an entity - escape ampersand as &" @@ -394,11 +625,11 @@ msgstr "" "istemeksizin & karakteri kullandınız - & işaretini & olarak " "kullanabilirsiniz" -#: glib/gmarkup.c:1014 +#: ../glib/gmarkup.c:1078 msgid "Document must begin with an element (e.g. )" msgstr "Belge bir öğe ile başlamalı (örneğin )" -#: glib/gmarkup.c:1054 +#: ../glib/gmarkup.c:1118 #, c-format msgid "" "'%s' is not a valid character following a '<' character; it may not begin an " @@ -407,15 +638,15 @@ msgstr "" "'<' karakterinden sonra gelen '%s' geçerli bir karakter değil; bir öğe adı " "başlatmamalı" -#: glib/gmarkup.c:1122 +#: ../glib/gmarkup.c:1186 #, 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 "" "Tuhaf karakter '%s', boş öğe '%s' etiketinin sonunda '>' karakteri bekleniyor" -#: glib/gmarkup.c:1206 +#: ../glib/gmarkup.c:1270 #, c-format msgid "" "Odd character '%s', expected a '=' after attribute name '%s' of element '%s'" @@ -423,7 +654,7 @@ msgstr "" "Tuhaf karakter '%1$s', '%3$s' öğesinin '%2$s' özniteliğinin sonunda '=' " "karakteri bekleniyor" -#: glib/gmarkup.c:1247 +#: ../glib/gmarkup.c:1311 #, c-format msgid "" "Odd character '%s', expected a '>' or '/' character to end the start tag of " @@ -434,7 +665,7 @@ msgstr "" "veya bir öznitelik bekleniyor; öznitelik isminde geçersiz bir karakter " "kullanmış olabilirsiniz" -#: glib/gmarkup.c:1291 +#: ../glib/gmarkup.c:1355 #, c-format msgid "" "Odd character '%s', expected an open quote mark after the equals sign when " @@ -443,7 +674,7 @@ msgstr "" "Tuhaf karakter '%s', '%s' özniteliğini '%s' öğesinde değiştirmek için " "eşittir işaretinden sonra tırnak işareti bekleniyor" -#: glib/gmarkup.c:1425 +#: ../glib/gmarkup.c:1488 #, c-format msgid "" "'%s' is not a valid character following the characters ''" -#: glib/gmarkup.c:1472 +#: ../glib/gmarkup.c:1535 #, c-format msgid "Element '%s' was closed, no element is currently open" msgstr "'%s' öğesi kapatılmış, hiç bir öğe açık değil" -#: glib/gmarkup.c:1481 +#: ../glib/gmarkup.c:1544 #, c-format msgid "Element '%s' was closed, but the currently open element is '%s'" msgstr "'%s' öğesi kapatılmış, fakat şu an açık öğe '%s'" -#: glib/gmarkup.c:1648 +#: ../glib/gmarkup.c:1712 msgid "Document was empty or contained only whitespace" msgstr "Belge boş veya sadece boşluk karakteri içeriyor" -#: glib/gmarkup.c:1662 +#: ../glib/gmarkup.c:1726 msgid "Document ended unexpectedly just after an open angle bracket '<'" msgstr "" "Belge açık açı parantezi '<' işaretinden hemen sonra beklenmedik bir şekilde " "bitti" -#: glib/gmarkup.c:1670 glib/gmarkup.c:1715 +#: ../glib/gmarkup.c:1734 ../glib/gmarkup.c:1779 #, c-format msgid "" "Document ended unexpectedly with elements still open - '%s' was the last " "element opened" msgstr "" -"Belge öğeleri hala açıkken beklenmedik bir şekilde bitti - son açılan öğe: '%" -"s'" +"Belge öğeleri hala açıkken beklenmedik bir şekilde bitti - son açılan öğe: " +"'%s'" -#: glib/gmarkup.c:1678 +#: ../glib/gmarkup.c:1742 #, c-format msgid "" "Document ended unexpectedly, expected to see a close angle bracket ending " @@ -499,19 +730,19 @@ msgstr "" "Belge beklenmedik bir şekilde bitti, etiketi bitiren kapalı açı parantezi " "ile biten <%s/> beklendi" -#: glib/gmarkup.c:1684 +#: ../glib/gmarkup.c:1748 msgid "Document ended unexpectedly inside an element name" msgstr "Belge bir öğe isminin içinde beklenmedik bir şekilde bitti" -#: glib/gmarkup.c:1690 +#: ../glib/gmarkup.c:1754 msgid "Document ended unexpectedly inside an attribute name" msgstr "Belge bir öznitelik ismi içinde beklenmedik bir şekilde bitti" -#: glib/gmarkup.c:1695 +#: ../glib/gmarkup.c:1759 msgid "Document ended unexpectedly inside an element-opening tag." msgstr "Belge bir öğe-açma etiketi içinde beklenmedik bir şekilde bitti." -#: glib/gmarkup.c:1701 +#: ../glib/gmarkup.c:1765 msgid "" "Document ended unexpectedly after the equals sign following an attribute " "name; no attribute value" @@ -519,394 +750,404 @@ msgstr "" "Belge öznitelik adını takip eden eşittir işaretinden sonra beklenmedik bir " "şekilde bitti; öznitelik değeri yok" -#: glib/gmarkup.c:1708 +#: ../glib/gmarkup.c:1772 msgid "Document ended unexpectedly while inside an attribute value" msgstr "Belge bir öznitelik değeri içinde iken beklenmedik bir şekilde bitti" -#: glib/gmarkup.c:1724 +#: ../glib/gmarkup.c:1788 #, c-format msgid "Document ended unexpectedly inside the close tag for element '%s'" msgstr "" "Belge, '%s' öğesinin kapatma etiketi içinde beklenmedik bir şekilde bitti" -#: glib/gmarkup.c:1730 +#: ../glib/gmarkup.c:1794 msgid "Document ended unexpectedly inside a comment or processing instruction" msgstr "" "Belge bir yorum veya işlem talimatı içindeyken beklenmedik bir şekilde bitti" -#: glib/gregex.c:131 +#: ../glib/gregex.c:188 msgid "corrupted object" msgstr "bozuk nesne" -#: glib/gregex.c:133 +#: ../glib/gregex.c:190 msgid "internal error or corrupted object" msgstr "dahili hata ya da bozuk öğe" -#: glib/gregex.c:135 +#: ../glib/gregex.c:192 msgid "out of memory" msgstr "yetersiz bellek" -#: glib/gregex.c:140 +#: ../glib/gregex.c:197 msgid "backtracking limit reached" msgstr "geri takip sınırına ulaşıldı" -#: 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 "doku (pattern), kısmi eşleme için desteklenmeyen öğeler içeriyor" -#: glib/gregex.c:154 gio/glocalfile.c:2110 +#: ../glib/gregex.c:211 ../gio/glocalfile.c:2111 msgid "internal error" msgstr "dahili hata" -#: glib/gregex.c:162 +#: ../glib/gregex.c:219 msgid "back references as conditions are not supported for partial matching" msgstr "koşul olarak geri referanslar kısmi eşleme için desteklenmiyor" -#: glib/gregex.c:171 +#: ../glib/gregex.c:228 msgid "recursion limit reached" msgstr "iç içe tekrar sınırına ulaşıldı" -#: glib/gregex.c:173 +#: ../glib/gregex.c:230 msgid "workspace limit for empty substrings reached" msgstr "boş alt dizgiler için çalışma alanı sınırına ulaşıldı" -#: glib/gregex.c:175 +#: ../glib/gregex.c:232 msgid "invalid combination of newline flags" msgstr "yeni satır işaretlerinin geçersiz kombinasyonu" -#: glib/gregex.c:179 +#: ../glib/gregex.c:234 +msgid "bad offset" +msgstr "geçersiz ofset" + +#: ../glib/gregex.c:236 +msgid "short utf8" +msgstr "kısa utf8" + +#: ../glib/gregex.c:240 msgid "unknown error" msgstr "bilinmeyen hata" -#: glib/gregex.c:199 +#: ../glib/gregex.c:260 msgid "\\ at end of pattern" msgstr "\\ desenin sonunda" -#: glib/gregex.c:202 +#: ../glib/gregex.c:263 msgid "\\c at end of pattern" msgstr "\\c desenin sonunda" -#: glib/gregex.c:205 +#: ../glib/gregex.c:266 msgid "unrecognized character follows \\" msgstr "anlaşılamayan karakter \\ takip ediyor" -#: glib/gregex.c:212 +#: ../glib/gregex.c:273 msgid "case-changing escapes (\\l, \\L, \\u, \\U) are not allowed here" msgstr "" "büyük küçük harf değiştiren kaçış karakterleri (\\l, \\L, \\u, \\U) burada " "kullanılamaz" -#: glib/gregex.c:215 +#: ../glib/gregex.c:276 msgid "numbers out of order in {} quantifier" msgstr "sayılar {} niceliği içerisinde sıra dışı" -#: glib/gregex.c:218 +#: ../glib/gregex.c:279 msgid "number too big in {} quantifier" msgstr "sayılar {} niceliği içerisinde çok büyük" -#: glib/gregex.c:221 +#: ../glib/gregex.c:282 msgid "missing terminating ] for character class" msgstr "karakter sınıfı için eksik sonlanan ]" -#: glib/gregex.c:224 +#: ../glib/gregex.c:285 msgid "invalid escape sequence in character class" msgstr "karakter sınıfında geçersiz dizi" -#: glib/gregex.c:227 +#: ../glib/gregex.c:288 msgid "range out of order in character class" msgstr "karakter sınıfında sıra dışı kapsam" -#: glib/gregex.c:230 +#: ../glib/gregex.c:291 msgid "nothing to repeat" msgstr "tekrarlanacak bir şey yok" -#: glib/gregex.c:233 +#: ../glib/gregex.c:294 msgid "unrecognized character after (?" msgstr "(? sonrası tanımlanmayan karakter" -#: glib/gregex.c:237 +#: ../glib/gregex.c:298 msgid "unrecognized character after (?<" msgstr "(?< sonrası tanımlanmayan karakter" -#: glib/gregex.c:241 +#: ../glib/gregex.c:302 msgid "unrecognized character after (?P" msgstr "(?P sonrası tanımlanmayan karakter" -#: glib/gregex.c:244 +#: ../glib/gregex.c:305 msgid "POSIX named classes are supported only within a class" msgstr "POSIX isimlendirilmiş sınıflar sadece bir sınıf içinde desteklenir" -#: glib/gregex.c:247 +#: ../glib/gregex.c:308 msgid "missing terminating )" msgstr "eksik sonlandıran )" -#: glib/gregex.c:251 +#: ../glib/gregex.c:312 msgid ") without opening (" msgstr "açma ( olmayan )" #. 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:319 msgid "(?R or (?[+-]digits must be followed by )" msgstr "(?R ya da (?[+-]basamakları ) ile takip etmelidir" -#: glib/gregex.c:261 +#: ../glib/gregex.c:322 msgid "reference to non-existent subpattern" msgstr "mevcut olmayan alt desene referans" -#: glib/gregex.c:264 +#: ../glib/gregex.c:325 msgid "missing ) after comment" msgstr "açıklama sonrası eksik )" -#: glib/gregex.c:267 +#: ../glib/gregex.c:328 msgid "regular expression too large" msgstr "düzenli ifade çok büyük" -#: glib/gregex.c:270 +#: ../glib/gregex.c:331 msgid "failed to get memory" msgstr "hafıza alma başarısız oldu" -#: glib/gregex.c:273 +#: ../glib/gregex.c:334 msgid "lookbehind assertion is not fixed length" msgstr "geribakma iddiası sabit uzunlukta değil" -#: glib/gregex.c:276 +#: ../glib/gregex.c:337 msgid "malformed number or name after (?(" msgstr "(?( sonrası bozuk rakam ya da isim" -#: glib/gregex.c:279 +#: ../glib/gregex.c:340 msgid "conditional group contains more than two branches" msgstr "koşul grubu ikiden daha fazla branç içeriyor" -#: glib/gregex.c:282 +#: ../glib/gregex.c:343 msgid "assertion expected after (?(" msgstr "(?( sonrası iddia bekleniyor" -#: glib/gregex.c:285 +#: ../glib/gregex.c:346 msgid "unknown POSIX class name" msgstr "bilinmeyen POSIX sınıf ismi" -#: glib/gregex.c:288 +#: ../glib/gregex.c:349 msgid "POSIX collating elements are not supported" msgstr "POSIX karşılaştırma öğeleri desteklenmiyor" -#: glib/gregex.c:291 +#: ../glib/gregex.c:352 msgid "character value in \\x{...} sequence is too large" msgstr "\\x{...} dizisi içerisinde karakter değeri çok büyük" -#: glib/gregex.c:294 +#: ../glib/gregex.c:355 msgid "invalid condition (?(0)" msgstr "geçersiz koşul (?(0)" -#: glib/gregex.c:297 +#: ../glib/gregex.c:358 msgid "\\C not allowed in lookbehind assertion" msgstr "\\C geriye bakma iddiası içerisinde izin verilmiyor" -#: glib/gregex.c:300 +#: ../glib/gregex.c:361 msgid "recursive call could loop indefinitely" msgstr "tekrarlı çağrı sonsuz döngü yapamadı" -#: glib/gregex.c:303 +#: ../glib/gregex.c:364 msgid "missing terminator in subpattern name" msgstr "alt desen ismi içerisinde eksik sonlandırıcı" -#: glib/gregex.c:306 +#: ../glib/gregex.c:367 msgid "two named subpatterns have the same name" msgstr "iki isimli alt desenler aynı isme sahip" -#: glib/gregex.c:309 +#: ../glib/gregex.c:370 msgid "malformed \\P or \\p sequence" msgstr "bozulmuş \\P ya da \\p dizisi" -#: glib/gregex.c:312 +#: ../glib/gregex.c:373 msgid "unknown property name after \\P or \\p" msgstr "\\P ya da \\p sonrası bilinmeyen özellik ismi" -#: glib/gregex.c:315 +#: ../glib/gregex.c:376 msgid "subpattern name is too long (maximum 32 characters)" msgstr "alt desen ismi çok uzun (en fazla 32 karakter)" -#: glib/gregex.c:318 +#: ../glib/gregex.c:379 msgid "too many named subpatterns (maximum 10,000)" msgstr "çok fazla isimlendirilmiş alt desen (en fazla 10.000)" -#: glib/gregex.c:321 +#: ../glib/gregex.c:382 msgid "octal value is greater than \\377" msgstr "sekizlik değer \\377'den daha büyük" -#: glib/gregex.c:324 +#: ../glib/gregex.c:385 msgid "DEFINE group contains more than one branch" msgstr "DEFINE grubu birden daha fazla branş içeriyor" -#: glib/gregex.c:327 +#: ../glib/gregex.c:388 msgid "repeating a DEFINE group is not allowed" msgstr "bir DEFINE grubunu tekrarlamaya izin verilmiyor" -#: glib/gregex.c:330 +#: ../glib/gregex.c:391 msgid "inconsistent NEWLINE options" msgstr "kararsız NEWLINE seçenekleri" -#: glib/gregex.c:333 +#: ../glib/gregex.c:394 msgid "" "\\g is not followed by a braced name or an optionally braced non-zero number" msgstr "" "\\g bir parantezli isim ya da tercihten parentezli sıfır olmayan sayı " "tarafından takip edilmiyor" -#: glib/gregex.c:338 +#: ../glib/gregex.c:399 msgid "unexpected repeat" msgstr "beklenmeyen tekrar" -#: glib/gregex.c:342 +#: ../glib/gregex.c:403 msgid "code overflow" msgstr "kod akış taşması" -#: glib/gregex.c:346 +#: ../glib/gregex.c:407 msgid "overran compiling workspace" msgstr "derleme çalışma alanı kaplandı" -#: glib/gregex.c:350 +#: ../glib/gregex.c:411 msgid "previously-checked referenced subpattern not found" msgstr "onceden kontrol edilmiş referanslı alt desen bulunamadı" -#: glib/gregex.c:522 glib/gregex.c:1639 +#: ../glib/gregex.c:591 ../glib/gregex.c:1714 #, c-format msgid "Error while matching regular expression %s: %s" msgstr "Düzenli ifade %s eşleşirken hata: %s" -#: glib/gregex.c:1094 +#: ../glib/gregex.c:1167 msgid "PCRE library is compiled without UTF8 support" msgstr "PCRE kütüphanesi UTF8 desteği olmadan derlenmiş" -#: glib/gregex.c:1103 +#: ../glib/gregex.c:1176 msgid "PCRE library is compiled without UTF8 properties support" msgstr "PCRE kütüphanesi UTF8 özellikleri desteği olmadan derlenmiş" -#: glib/gregex.c:1157 +#: ../glib/gregex.c:1232 #, c-format msgid "Error while compiling regular expression %s at char %d: %s" msgstr "Düzenli ifade %s derlenirken karakter %d hatalı: %s" -#: glib/gregex.c:1193 +#: ../glib/gregex.c:1268 #, c-format msgid "Error while optimizing regular expression %s: %s" msgstr "Düzenli ifade %s eniyilemesinde (optimization) hata: %s" -#: glib/gregex.c:2067 +#: ../glib/gregex.c:2144 msgid "hexadecimal digit or '}' expected" msgstr "onaltılı rakam ya da '}' beklendi" -#: glib/gregex.c:2083 +#: ../glib/gregex.c:2160 msgid "hexadecimal digit expected" msgstr "onaltılı rakam beklendi" -#: glib/gregex.c:2123 +#: ../glib/gregex.c:2200 msgid "missing '<' in symbolic reference" msgstr "sembolik referansda eksik '<'" -#: glib/gregex.c:2132 +#: ../glib/gregex.c:2209 msgid "unfinished symbolic reference" msgstr "tamamlanmamış sembolik referans" -#: glib/gregex.c:2139 +#: ../glib/gregex.c:2216 msgid "zero-length symbolic reference" msgstr "sıfır-uzunlukta sembolik referans" -#: glib/gregex.c:2150 +#: ../glib/gregex.c:2227 msgid "digit expected" msgstr "rakam beklendi" -#: glib/gregex.c:2168 +#: ../glib/gregex.c:2245 msgid "illegal symbolic reference" msgstr "geçersiz sembolik referans" -#: glib/gregex.c:2230 +#: ../glib/gregex.c:2307 msgid "stray final '\\'" msgstr "son '\\' kayıp" -#: glib/gregex.c:2234 +#: ../glib/gregex.c:2311 msgid "unknown escape sequence" msgstr "geçersiz çıkış dizisi" -#: glib/gregex.c:2244 +#: ../glib/gregex.c:2321 #, c-format msgid "Error while parsing replacement text \"%s\" at char %lu: %s" msgstr "Yerine koyma metni \"%s\" işlenirken karakter %lu hatalı: %s" -#: glib/gshell.c:92 +#: ../glib/gshell.c:91 msgid "Quoted text doesn't begin with a quotation mark" msgstr "Alıntılı metin tırnak işareti ile başlamıyor" -#: glib/gshell.c:182 +#: ../glib/gshell.c:181 msgid "Unmatched quotation mark in command line or other shell-quoted text" msgstr "" "Komut satırında veya diğer kabuk alıntısı metinde eşlenmemiş tırnak işareti" -#: glib/gshell.c:560 +#: ../glib/gshell.c:559 #, c-format msgid "Text ended just after a '\\' character. (The text was '%s')" msgstr "Metin '\\' karakterinden hemen sonra bitti. (Metin: '%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 "%c için eşleşen tırnak işareti bulunmadan metin bitti. (Metin: '%s')" -#: glib/gshell.c:579 +#: ../glib/gshell.c:578 msgid "Text was empty (or contained only whitespace)" msgstr "Metin boştu (veya sadece boşluk içeriyordu)" -#: glib/gspawn-win32.c:283 +#: ../glib/gspawn-win32.c:282 msgid "Failed to read data from child process" msgstr "Alt süreçten bilgi okuma başarısızlığı" -#: 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 "Alt süreçle haberleşme için boru yaratılamadı (%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 "Alt süreç borusundan okuma başarısızlığı (%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 "'%s' dizinine değiştirme başarısızlığı (%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 "Alt süreç yürütme başarısızlığı (%s)" -#: glib/gspawn-win32.c:445 +#: ../glib/gspawn-win32.c:444 #, c-format msgid "Invalid program name: %s" msgstr "Geçersiz program adı: %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 "%d konumunda parametre vektörü içinde geçersiz dizgi: %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 "Çevre içinde geçersiz dizgi: %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 "Geçersiz çalışma dizini: %s" -#: glib/gspawn-win32.c:784 +#: ../glib/gspawn-win32.c:783 #, c-format msgid "Failed to execute helper program (%s)" msgstr "Yardımcı program (%s) çalıştırılamadı" -#: 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" @@ -914,136 +1155,136 @@ msgstr "" "Alt süreçten bilgi okurken g_io_channel_win32_poll() işleminde beklenmeyen " "hata" -#: glib/gspawn.c:190 +#: ../glib/gspawn.c:196 #, c-format msgid "Failed to read data from child process (%s)" msgstr "Alt süreçten bilgi okuma başarısızlığı (%s)" -#: glib/gspawn.c:329 +#: ../glib/gspawn.c:335 #, c-format msgid "Unexpected error in select() reading data from a child process (%s)" msgstr "Alt süreçten bilgi okurken select()'te beklenmeyen hata oluştu (%s)" -#: glib/gspawn.c:414 +#: ../glib/gspawn.c:420 #, c-format msgid "Unexpected error in waitpid() (%s)" msgstr "waitpid()'de beklenmeyen hata (%s)" -#: glib/gspawn.c:1206 +#: ../glib/gspawn.c:1212 #, c-format msgid "Failed to fork (%s)" msgstr "Çatallama başarısızlığı (%s)" -#: glib/gspawn.c:1356 +#: ../glib/gspawn.c:1362 #, c-format msgid "Failed to execute child process \"%s\" (%s)" msgstr "\"%s\" alt süreç çalıştırılırken hata oluştu (%s)" -#: glib/gspawn.c:1366 +#: ../glib/gspawn.c:1372 #, c-format msgid "Failed to redirect output or input of child process (%s)" msgstr "Alt sürecin girdisi veya çıktısı yönlendirilemedi (%s)" -#: glib/gspawn.c:1375 +#: ../glib/gspawn.c:1381 #, c-format msgid "Failed to fork child process (%s)" msgstr "Alt süreç çatallanamadı (%s)" -#: glib/gspawn.c:1383 +#: ../glib/gspawn.c:1389 #, c-format msgid "Unknown error executing child process \"%s\"" msgstr "Alt süreç \"%s\" çalıştırılırken bilinmeyen hata oluştu" -#: glib/gspawn.c:1407 +#: ../glib/gspawn.c:1413 #, c-format msgid "Failed to read enough data from child pid pipe (%s)" msgstr "Alt süreç borusundan yeterli bilgi okunamadı (%s)" -#: glib/gutf8.c:1063 +#: ../glib/gutf8.c:1066 msgid "Character out of range for UTF-8" msgstr "Karakter UTF-8 için sınırlarının dışında" -#: 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önüşüm girdisi içinde geçersiz dizi" -#: 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 "Karakter UTF-16 sınırlarının dışında" -#: glib/goption.c:755 +#: ../glib/goption.c:760 msgid "Usage:" msgstr "Kullanım:" -#: glib/goption.c:755 +#: ../glib/goption.c:760 msgid "[OPTION...]" msgstr "[SEÇENEK...]" -#: glib/goption.c:861 +#: ../glib/goption.c:866 msgid "Help Options:" msgstr "Yardım Seçenekleri:" -#: glib/goption.c:862 +#: ../glib/goption.c:867 msgid "Show help options" msgstr "Yardım seçeneklerini göster" -#: glib/goption.c:868 +#: ../glib/goption.c:873 msgid "Show all help options" msgstr "Tüm yardım seçeneklerini göster" -#: glib/goption.c:930 +#: ../glib/goption.c:935 msgid "Application Options:" msgstr "Uygulama Seçenekleri:" -#: 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 "%2$s için tamsayı değeri '%1$s' ayrıştırılamıyor" -#: 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 "%2$s için tamsayı değeri '%1$s' aralık dışında" -#: glib/goption.c:1027 +#: ../glib/goption.c:1032 #, c-format msgid "Cannot parse double value '%s' for %s" msgstr "'%2$s' için double değeri '%1$s' ayrıştırılamıyor" -#: glib/goption.c:1035 +#: ../glib/goption.c:1040 #, c-format msgid "Double value '%s' for %s out of range" msgstr "%2$s için double değeri '%1$s' aralık dışında" -#: glib/goption.c:1298 glib/goption.c:1377 +#: ../glib/goption.c:1303 ../glib/goption.c:1382 #, c-format msgid "Error parsing option %s" msgstr "%s seçeneği işlenirken hata" -#: glib/goption.c:1408 glib/goption.c:1522 +#: ../glib/goption.c:1413 ../glib/goption.c:1526 #, c-format msgid "Missing argument for %s" msgstr "%s için parametre eksik" -#: glib/goption.c:1917 +#: ../glib/goption.c:1957 #, c-format msgid "Unknown option %s" msgstr "Bilinmeyen seçenek %s" -#: glib/gkeyfile.c:363 +#: ../glib/gkeyfile.c:363 msgid "Valid key file could not be found in search dirs" msgstr "Arama dizinlerinde geçerli anahtar dosyası bulunamadı" -#: glib/gkeyfile.c:398 +#: ../glib/gkeyfile.c:398 msgid "Not a regular file" msgstr "Normal dosya değil" -#: glib/gkeyfile.c:406 +#: ../glib/gkeyfile.c:406 msgid "File is empty" msgstr "Dosya boş" -#: glib/gkeyfile.c:765 +#: ../glib/gkeyfile.c:765 #, c-format msgid "" "Key file contains line '%s' which is not a key-value pair, group, or comment" @@ -1051,54 +1292,54 @@ msgstr "" "Anahtar dosyası anahtar-değer çifti, grup veya yorum olmayan '%s' satırını " "içeriyor" -#: glib/gkeyfile.c:825 +#: ../glib/gkeyfile.c:825 #, c-format msgid "Invalid group name: %s" msgstr "Geçersiz grup adı: %s" -#: glib/gkeyfile.c:847 +#: ../glib/gkeyfile.c:847 msgid "Key file does not start with a group" msgstr "Anahtar dosyası bir grupla başlamıyor" -#: glib/gkeyfile.c:873 +#: ../glib/gkeyfile.c:873 #, c-format msgid "Invalid key name: %s" msgstr "Geçersiz anahtar adı: %s" -#: glib/gkeyfile.c:900 +#: ../glib/gkeyfile.c:900 #, c-format msgid "Key file contains unsupported encoding '%s'" msgstr "Anahtar dosya geçersiz kodlama '%s' içeriyor" -#: 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:1118 ../glib/gkeyfile.c:1280 ../glib/gkeyfile.c:2648 +#: ../glib/gkeyfile.c:2714 ../glib/gkeyfile.c:2849 ../glib/gkeyfile.c:2982 +#: ../glib/gkeyfile.c:3135 ../glib/gkeyfile.c:3322 ../glib/gkeyfile.c:3383 #, c-format msgid "Key file does not have group '%s'" msgstr "Anahtar dosyasında '%s' grubu yok" -#: glib/gkeyfile.c:1290 +#: ../glib/gkeyfile.c:1292 #, c-format msgid "Key file does not have key '%s'" msgstr "Anahtar dosyasında '%s' anahtarı yok" -#: glib/gkeyfile.c:1397 glib/gkeyfile.c:1512 +#: ../glib/gkeyfile.c:1399 ../glib/gkeyfile.c:1514 #, c-format msgid "Key file contains key '%s' with value '%s' which is not UTF-8" msgstr "Anahtar dosyası UTF-8 olmayan '%s' anahtarını '%s' değeriyle içeriyor" -#: glib/gkeyfile.c:1417 glib/gkeyfile.c:1911 +#: ../glib/gkeyfile.c:1419 ../glib/gkeyfile.c:1902 #, c-format msgid "Key file contains key '%s' which has value that cannot be interpreted." msgstr "Anahtar dosyası değeri yorumlanamayan '%s' değerini içeriyor." -#: glib/gkeyfile.c:1532 +#: ../glib/gkeyfile.c:1534 #, c-format msgid "" "Key file contains key '%s' which has a value that cannot be interpreted." msgstr "Anahtar dosyası yorumlanamayan bir değere sahip anahtar '%s' içerir." -#: glib/gkeyfile.c:2126 glib/gkeyfile.c:2488 +#: ../glib/gkeyfile.c:2117 ../glib/gkeyfile.c:2479 #, c-format msgid "" "Key file contains key '%s' in group '%s' which has value that cannot be " @@ -1106,526 +1347,702 @@ msgid "" msgstr "" "Anahtar dosyası, yorumlanamayan '%2$s' grubundaki '%1$s' anahtarını içeriyor." -#: glib/gkeyfile.c:2672 glib/gkeyfile.c:2873 glib/gkeyfile.c:3403 +#: ../glib/gkeyfile.c:2663 ../glib/gkeyfile.c:2864 ../glib/gkeyfile.c:3394 #, c-format msgid "Key file does not have key '%s' in group '%s'" msgstr "Anahtar dosyası '%2$s' grubunda '%1$s' anahtarı içermiyor" -#: glib/gkeyfile.c:3637 +#: ../glib/gkeyfile.c:3628 msgid "Key file contains escape character at end of line" msgstr "Anahtar dosyası satır sonunda çıkış karakteri içeriyor" -#: glib/gkeyfile.c:3659 +#: ../glib/gkeyfile.c:3650 #, c-format msgid "Key file contains invalid escape sequence '%s'" msgstr "URI '%s' geçersiz çıkış dizisi içeriyor" -#: glib/gkeyfile.c:3801 +#: ../glib/gkeyfile.c:3792 #, c-format msgid "Value '%s' cannot be interpreted as a number." msgstr "'%s' değeri bir sayı olarak yorumlanamıyor." -#: glib/gkeyfile.c:3815 +#: ../glib/gkeyfile.c:3806 #, c-format msgid "Integer value '%s' out of range" msgstr "Tamsayı değeri '%s' aralık dışında" -#: glib/gkeyfile.c:3848 +#: ../glib/gkeyfile.c:3839 #, c-format msgid "Value '%s' cannot be interpreted as a float number." msgstr "'%s' değeri bir gerçel sayı olarak yorumlanamıyor." -#: glib/gkeyfile.c:3872 +#: ../glib/gkeyfile.c:3863 #, c-format msgid "Value '%s' cannot be interpreted as a boolean." msgstr "'%s' değeri mantıksal değer olarak yorumlanamıyor." -#: 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 "%s için çok büyük sayaç değeri geçildi" -#: gio/gbufferedinputstream.c:883 gio/ginputstream.c:892 gio/giostream.c:305 -#: gio/goutputstream.c:1196 +#: ../gio/gbufferedinputstream.c:881 ../gio/ginputstream.c:888 +#: ../gio/giostream.c:306 ../gio/goutputstream.c:1197 msgid "Stream is already closed" msgstr "Akış zaten kapalı" -#: 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:2104 ../gio/gsimpleasyncresult.c:810 +#: ../gio/gsimpleasyncresult.c:836 msgid "Operation was cancelled" msgstr "İşlem iptal edildi" -#: gio/gcharsetconverter.c:264 -#, fuzzy +#: ../gio/gcharsetconverter.c:263 msgid "Invalid object, not initialized" -msgstr "Geçersiz soket, başlatılmamış" +msgstr "Geçersiz nesne, ilklendirilmemiş" -#: gio/gcharsetconverter.c:285 gio/gcharsetconverter.c:313 -#, fuzzy +#: ../gio/gcharsetconverter.c:284 ../gio/gcharsetconverter.c:312 msgid "Incomplete multibyte sequence in input" -msgstr "Dönüşüm girdisinde geçersiz bayt dizisi" +msgstr "Girdide tamamlanmamış çokbaytlı dizi" -#: gio/gcharsetconverter.c:319 gio/gcharsetconverter.c:328 -#, fuzzy +#: ../gio/gcharsetconverter.c:318 ../gio/gcharsetconverter.c:327 msgid "Not enough space in destination" -msgstr "Soket adresi için yeterli alan yok" +msgstr "Hedefte yeterli alan yok" -#: gio/gcharsetconverter.c:448 gio/gsocket.c:804 +#: ../gio/gcharsetconverter.c:447 ../gio/gsocket.c:833 msgid "Cancellable initialization not supported" msgstr "İptal edilebilir başlatma desteklenmiyor" -#: gio/gcontenttype.c:180 +#: ../gio/gcontenttype.c:179 msgid "Unknown type" msgstr "Bilinmeyen tür" -#: gio/gcontenttype.c:181 +#: ../gio/gcontenttype.c:180 #, c-format msgid "%s filetype" msgstr "%s dosya türü" -#: gio/gcontenttype.c:681 +#: ../gio/gcontenttype.c:679 #, c-format msgid "%s type" msgstr "%s türü" -#: 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 "Bu iştetim sisteminde GCredentials gerçeklemesi mevcut değil" -#: gio/gcredentials.c:296 +#: ../gio/gcredentials.c:396 msgid "There is no GCredentials support for your platform" -msgstr "" +msgstr "Platformunuz için GCredentials desteği yok" -#: gio/gdatainputstream.c:311 +#: ../gio/gdatainputstream.c:311 msgid "Unexpected early end-of-stream" msgstr "Beklenmeyen erken akış-sonu" -#: gio/gdbusaddress.c:135 gio/gdbusaddress.c:226 gio/gdbusaddress.c:300 -#, fuzzy, c-format -msgid "Unsupported key `%s' in address entry `%s'" -msgstr "Desteklenmeyen soket adresi" - -#: gio/gdbusaddress.c:165 +#: ../gio/gdbusaddress.c:142 ../gio/gdbusaddress.c:230 +#: ../gio/gdbusaddress.c:311 #, c-format +msgid "Unsupported key `%s' in address entry `%s'" +msgstr "`%2$s' adres girdisinde desteklenmeyen anahtar `%1$s'" + +#: ../gio/gdbusaddress.c:169 +#, fuzzy, c-format msgid "" "Address `%s' is invalid (need exactly one of path, tmpdir or abstract keys)" msgstr "" +"`%s' adresi geçersiz (tam olarak bir yol, tmpdir veya soyut anahtarlar " +"gerekiyor)" -#: gio/gdbusaddress.c:178 -#, c-format +#: ../gio/gdbusaddress.c:182 +#, fuzzy, c-format msgid "Meaningless key/value pair combination in address entry `%s'" -msgstr "" +msgstr "`%s' adres girdisinde anlamsız anahtar/değer kombinasyonu" -#: gio/gdbusaddress.c:241 gio/gdbusaddress.c:315 -#, c-format +#: ../gio/gdbusaddress.c:245 ../gio/gdbusaddress.c:326 +#, fuzzy, c-format msgid "Error in address `%s' - the port attribute is malformed" -msgstr "" +msgstr "`%s' adresinde hata - `port' özniteliği kusurlu" -#: gio/gdbusaddress.c:252 gio/gdbusaddress.c:326 -#, c-format +#: ../gio/gdbusaddress.c:256 ../gio/gdbusaddress.c:337 +#, fuzzy, c-format msgid "Error in address `%s' - the family attribute is malformed" -msgstr "" +msgstr "`%s' adresinde hata - `family' özniteliği kusurlu" -#: gio/gdbusaddress.c:428 -#, c-format +#: ../gio/gdbusaddress.c:446 +#, fuzzy, c-format msgid "Address element `%s', does not contain a colon (:)" -msgstr "" +msgstr "Adress öğesi `%s', iki nokta (:) içermiyor" -#: gio/gdbusaddress.c:449 -#, c-format +#: ../gio/gdbusaddress.c:467 +#, fuzzy, c-format msgid "" "Key/Value pair %d, `%s', in address element `%s', does not contain an equal " "sign" msgstr "" +"Adres öğesi `%3$s' içerisindeki %1$d, `%2$s' Anahtar/Değer çifti, eşittir " +"işareti içermiyor" -#: gio/gdbusaddress.c:523 -#, c-format +#: ../gio/gdbusaddress.c:481 +#, fuzzy, c-format +msgid "" +"Error unescaping key or value in Key/Value pair %d, `%s', in address element " +"`%s'" +msgstr "" +"Adres öğesi `%3$s' içerisindeki %1$d, `%2$s' Anahtar/Değer çiftindeki " +"anahtar ya da değeri açmada hata" + +#: ../gio/gdbusaddress.c:559 +#, fuzzy, c-format msgid "" "Error in address `%s' - the unix transport requires exactly one of the keys " "`path' or `abstract' to be set" msgstr "" +"`%s' adresinde hata - unix transport, `path' veya `abstract' anahtarlarından " +"tam olarak bir tanesine değer atanmış olmasını gereksinir." -#: gio/gdbusaddress.c:559 -#, c-format -msgid "Error in address `%s' - the host attribute is missing or malformed" -msgstr "" - -#: gio/gdbusaddress.c:573 -#, c-format -msgid "Error in address `%s' - the port attribute is missing or malformed" -msgstr "" - -#: gio/gdbusaddress.c:587 -#, c-format -msgid "Error in address `%s' - the noncefile attribute is missing or malformed" -msgstr "" - -#: gio/gdbusaddress.c:601 -#, c-format -msgid "Unknown or unsupported transport `%s' for address `%s'" -msgstr "" - -#: gio/gdbusaddress.c:635 +#: ../gio/gdbusaddress.c:595 #, fuzzy, c-format -msgid "Error reading nonce file `%s':" -msgstr "'%s' dosyası okunurken hata: %s" +msgid "Error in address `%s' - the host attribute is missing or malformed" +msgstr "`%s' adresinde hata - host özniteliği eksik ya da kusurlu" -#: gio/gdbusaddress.c:646 -msgid "The nonce-file `%s' was %" +#: ../gio/gdbusaddress.c:609 +#, fuzzy, c-format +msgid "Error in address `%s' - the port attribute is missing or malformed" +msgstr "`%s' adresinde hata - port özniteliği eksik ya da kusurlu" + +#: ../gio/gdbusaddress.c:623 +#, fuzzy, c-format +msgid "Error in address `%s' - the noncefile attribute is missing or malformed" +msgstr "`%s' adresinde hata - noncefile özniteliği eksik ya da kusurlu" + +#: ../gio/gdbusaddress.c:644 +#, fuzzy +#| msgid "Error connecting: " +msgid "Error auto-launching: " +msgstr "Kendiliğinden çalışmada hata:" + +#: ../gio/gdbusaddress.c:652 +#, fuzzy, c-format +msgid "Unknown or unsupported transport `%s' for address `%s'" +msgstr "`%2$s' adresi için bilinmeyen ya da desteklenmeyen transport `%1$s'" + +#: ../gio/gdbusaddress.c:688 +#, fuzzy, c-format +#| msgid "Error opening file '%s': %s" +msgid "Error opening nonce file `%s': %s" +msgstr "`%s' nonce dosyası açılırken hata: %s" + +#: ../gio/gdbusaddress.c:706 +#, fuzzy, c-format +msgid "Error reading from nonce file `%s': %s" +msgstr "`%s' nonce dosyası okunurken hata: %s" + +#: ../gio/gdbusaddress.c:715 +#, fuzzy, c-format +msgid "Error reading from nonce file `%s', expected 16 bytes, got %d" +msgstr "`%s' nonce dosyasından okunurken hata, beklenen 16 bayt, alınan %d" + +#: ../gio/gdbusaddress.c:733 +#, fuzzy, c-format +msgid "Error writing contents of nonce file `%s' to stream:" +msgstr "`%s' nonce dosyasının içeriğini akışa yazma hatası:" + +#: ../gio/gdbusaddress.c:951 +#, fuzzy +msgid "The given address is empty" +msgstr "Verilen adres boş" + +#: ../gio/gdbusaddress.c:1020 +#, fuzzy +msgid "Cannot spawn a message bus without a machine-id: " +msgstr "machine-id olmadan mesaj veriyolu meydana getirilemiyor:" + +#: ../gio/gdbusaddress.c:1057 +#, fuzzy, c-format +msgid "Error spawning command line `%s': " +msgstr "`%s' komut satırını meydana getirmede hata:" + +#: ../gio/gdbusaddress.c:1068 +#, fuzzy, c-format +msgid "Abnormal program termination spawning command line `%s': %s" +msgstr "`%s' komut satırın meydana getirirken program olağan dışı sonlandı: %s" + +#: ../gio/gdbusaddress.c:1082 +#, fuzzy, c-format +msgid "Command line `%s' exited with non-zero exit status %d: %s" +msgstr "Komut satırı `%s', sıfır olmayan bir durum ile kapandı %d: %s" + +#: ../gio/gdbusaddress.c:1155 +#, fuzzy, c-format +msgid "Cannot determine session bus address (not implemented for this OS)" msgstr "" +"Oturum veriyolu adresi belirlenemiyor (bu işletim sistem için bu işlev " +"gerçeklenmedi)" -#: gio/gdbusaddress.c:662 -#, c-format -msgid "Error write contents of nonce file `%s' to stream:" -msgstr "" - -#: gio/gdbusaddress.c:978 -#, c-format -msgid "" -"Cannot determine session bus address (TODO: run dbus-launch to find out)" -msgstr "" - -#: gio/gdbusaddress.c:1002 gio/gdbusconnection.c:5309 -#, c-format +#: ../gio/gdbusaddress.c:1254 ../gio/gdbusconnection.c:6183 +#, fuzzy, c-format msgid "" "Cannot determine bus address from DBUS_STARTER_BUS_TYPE environment variable " "- unknown value `%s'" msgstr "" +"DBUS_STARTER_BUS_TYPE ortam değişkeninden veriyolu adresi belirlenemiyor - " +"bilinmeyen değer `%s'" -#: gio/gdbusaddress.c:1011 gio/gdbusconnection.c:5318 +#: ../gio/gdbusaddress.c:1263 ../gio/gdbusconnection.c:6192 +#, fuzzy msgid "" "Cannot determine bus address because the DBUS_STARTER_BUS_TYPE environment " "variable is not set" msgstr "" +"DBUS_STARTER_BUS_TYPE ortam değişkenine değer atanmadığı için veriyolu " +"adresi belirlenemiyor" -#: gio/gdbusaddress.c:1021 +#: ../gio/gdbusaddress.c:1273 #, fuzzy, c-format msgid "Unknown bus type %d" -msgstr "Bilinmeyen tür" +msgstr "Bilinmeyen veriyolu türü %d" -#: gio/gdbusauth.c:289 +#: ../gio/gdbusauth.c:288 +#, fuzzy msgid "Unexpected lack of content trying to read a line" -msgstr "" +msgstr "Satır okumada beklenmeyen içerik eksikliği" -#: gio/gdbusauth.c:333 +#: ../gio/gdbusauth.c:332 +#, fuzzy msgid "Unexpected lack of content trying to (safely) read a line" -msgstr "" +msgstr "Satır okumada (güvenli), beklenmeyen içerik eksikliği" -#: gio/gdbusauth.c:504 -#, c-format +#: ../gio/gdbusauth.c:503 +#, fuzzy, c-format msgid "" "Exhausted all available authentication mechanisms (tried: %s) (available: %s)" msgstr "" +"Tüm olası kimlik doğrulama yöntemleri tükendi (denenen: %s) (mevcut: %s)" -#: gio/gdbusauth.c:1146 +#: ../gio/gdbusauth.c:1151 +#, fuzzy msgid "Cancelled via GDBusAuthObserver::authorize-authenticated-peer" -msgstr "" +msgstr "GDBusAuthObserver::authorize-authenticated-peer üzerinden iptal edildi" -#: gio/gdbusauthmechanismsha1.c:264 +#: ../gio/gdbusauthmechanismsha1.c:266 #, fuzzy, c-format msgid "Error statting directory `%s': %s" -msgstr "'%s' dizini açılamadı: %s" +msgstr "`%s' dizininin bilgilerini almada (stat) hata: %s" -#: gio/gdbusauthmechanismsha1.c:276 -#, c-format +#: ../gio/gdbusauthmechanismsha1.c:278 +#, fuzzy, c-format msgid "" "Permissions on directory `%s' are malformed. Expected mode 0700, got 0%o" msgstr "" +"`%s' dizini üzerindeki izinler kusurlu. Beklenen kip 0700, elde edilen 0%o" -#: gio/gdbusauthmechanismsha1.c:295 +#: ../gio/gdbusauthmechanismsha1.c:299 #, fuzzy, c-format msgid "Error creating directory `%s': %s" -msgstr "Dizin oluşturulurken hata: %s" +msgstr "Dizin oluşturmada hata: `%s': %s" -#: gio/gdbusauthmechanismsha1.c:378 +#: ../gio/gdbusauthmechanismsha1.c:382 #, fuzzy, c-format msgid "Error opening keyring `%s' for reading: " -msgstr "'%s' dosyası açılırken hata: %s" +msgstr "`%s' anahtarlığı okuma için açılırken hata: " -#: gio/gdbusauthmechanismsha1.c:402 gio/gdbusauthmechanismsha1.c:711 -#, c-format +#: ../gio/gdbusauthmechanismsha1.c:406 ../gio/gdbusauthmechanismsha1.c:717 +#, fuzzy, c-format msgid "Line %d of the keyring at `%s' with content `%s' is malformed" -msgstr "" +msgstr "`%2$s' konumundaki anahtarlığın `%3$s' içerikli %1$d. satırı kusurlu" -#: gio/gdbusauthmechanismsha1.c:416 gio/gdbusauthmechanismsha1.c:725 -#, c-format +#: ../gio/gdbusauthmechanismsha1.c:420 ../gio/gdbusauthmechanismsha1.c:731 +#, fuzzy, c-format msgid "" "First token of line %d of the keyring at `%s' with content `%s' is malformed" msgstr "" +"`%2$s' konumundaki anahtarlığın, `%3$s' içerikli %1$d. satırındaki ilk simge " +"kusurlu" -#: gio/gdbusauthmechanismsha1.c:430 gio/gdbusauthmechanismsha1.c:739 -#, c-format +#: ../gio/gdbusauthmechanismsha1.c:435 ../gio/gdbusauthmechanismsha1.c:745 +#, fuzzy, c-format msgid "" "Second token of line %d of the keyring at `%s' with content `%s' is malformed" msgstr "" +"`%2$s' konumundaki anahtarlığın, `%3$s' içerikli %1$d. satırındaki ikinci " +"simge kusurlu" -#: gio/gdbusauthmechanismsha1.c:454 -#, c-format +#: ../gio/gdbusauthmechanismsha1.c:459 +#, fuzzy, c-format msgid "Didn't find cookie with id %d in the keyring at `%s'" -msgstr "" +msgstr "`%2$s konumundaki anahtarlıkta %1$d kimlikli çerez bulunamadı'" -#: gio/gdbusauthmechanismsha1.c:531 +#: ../gio/gdbusauthmechanismsha1.c:536 #, fuzzy, c-format -msgid "Error deleting stale lock-file `%s': %s" -msgstr "'%s' dosyası okunurken hata: %s" +msgid "Error deleting stale lock file `%s': %s" +msgstr "Eskimiş kilit dosyası `%s' silinirken hata: %s" -#: gio/gdbusauthmechanismsha1.c:562 +#: ../gio/gdbusauthmechanismsha1.c:568 #, fuzzy, c-format -msgid "Error creating lock-file `%s': %s" -msgstr "'%s' dosyası okunurken hata: %s" +msgid "Error creating lock file `%s': %s" +msgstr "Kilit dosyası `%s' oluşturulurken hata: %s" -#: gio/gdbusauthmechanismsha1.c:592 +#: ../gio/gdbusauthmechanismsha1.c:598 #, fuzzy, c-format -msgid "Error closing (unlinked) lock-file `%s': %s" -msgstr "Dosya kapatılırken hata: %s" +msgid "Error closing (unlinked) lock file `%s': %s" +msgstr "(Bağı kaldırılmış) kilit dosyası `%s' kapatılırken hata: %s" -#: gio/gdbusauthmechanismsha1.c:602 +#: ../gio/gdbusauthmechanismsha1.c:608 #, fuzzy, c-format -msgid "Error unlinking lock-file `%s': %s" -msgstr "'%s' dosyası açılırken hata: %s" +msgid "Error unlinking lock file `%s': %s" +msgstr "`%s' kilit dosyasının bağı kaldırılırken hata: %s" -#: gio/gdbusauthmechanismsha1.c:678 +#: ../gio/gdbusauthmechanismsha1.c:684 #, fuzzy, c-format msgid "Error opening keyring `%s' for writing: " -msgstr "'%s' dosyası açılırken hata: %s" +msgstr "'%s' anahtarlığını, yazma için açarken hata:" -#: gio/gdbusauthmechanismsha1.c:873 -#, c-format +#: ../gio/gdbusauthmechanismsha1.c:881 +#, fuzzy, c-format msgid "(Additionally, releasing the lock for `%s' also failed: %s) " -msgstr "" +msgstr "(Ayrıca, `%s' kilit dosyasını serbest bırakma da başarısız oldu: %s)" -#: gio/gdbusconnection.c:1001 gio/gdbusconnection.c:1311 +#: ../gio/gdbusconnection.c:1148 ../gio/gdbusconnection.c:1374 +#: ../gio/gdbusconnection.c:1413 ../gio/gdbusconnection.c:1737 #, fuzzy msgid "The connection is closed" -msgstr "Eklenen soket kapalı" +msgstr "Bağlantı kapalı" -#: gio/gdbusconnection.c:1256 +#: ../gio/gdbusconnection.c:1681 +#, fuzzy msgid "Timeout was reached" -msgstr "" +msgstr "Zaman aşımı gerçekleşti" -#: gio/gdbusconnection.c:1757 +#: ../gio/gdbusconnection.c:2301 +#, fuzzy msgid "" "Unsupported flags encountered when constructing a client-side connection" msgstr "" +"İstemci taraflı bağlantı kurulurken desteklenmeyen etiketlerle karşılaşıldı" -#: gio/gdbusconnection.c:3158 -#, c-format +#: ../gio/gdbusconnection.c:3761 ../gio/gdbusconnection.c:4078 +#, fuzzy, c-format +msgid "" +"No such interface `org.freedesktop.DBus.Properties' on object at path %s" +msgstr "" +"%s konumundaki nesnede `org.freedesktop.DBus.Properties' gibi bir arayüz yok" + +#: ../gio/gdbusconnection.c:3833 +#, fuzzy, c-format msgid "Error setting property `%s': Expected type `%s' but got `%s'" -msgstr "" +msgstr "`%s' özelliği ayarlanırken hata: Beklenen tür `%s', elde edilen `%s'" -#: gio/gdbusconnection.c:3250 -#, c-format +#: ../gio/gdbusconnection.c:3928 +#, fuzzy, c-format msgid "No such property `%s'" -msgstr "" +msgstr "`%s' gibi bir özellik yok" -#: gio/gdbusconnection.c:3262 +#: ../gio/gdbusconnection.c:3940 #, fuzzy, c-format msgid "Property `%s' is not readable" -msgstr "Tür %s sınıflandırılmış değil" +msgstr "`%s' özelliği okunabilir değil" -#: gio/gdbusconnection.c:3273 +#: ../gio/gdbusconnection.c:3951 #, fuzzy, c-format msgid "Property `%s' is not writable" -msgstr "Tür %s sınıflandırılmış değil" +msgstr "`%s' özelliği yazılabilir değil" -#: gio/gdbusconnection.c:3341 gio/gdbusconnection.c:4768 -#, c-format +#: ../gio/gdbusconnection.c:4021 ../gio/gdbusconnection.c:5627 +#, fuzzy, c-format msgid "No such interface `%s'" -msgstr "" +msgstr "`%s' gibi bir arabirim yok" -#: gio/gdbusconnection.c:3504 +#: ../gio/gdbusconnection.c:4206 +#, fuzzy msgid "No such interface" -msgstr "" +msgstr "Böyle bir arabirim yok" -#: gio/gdbusconnection.c:3748 -#, c-format +#: ../gio/gdbusconnection.c:4425 ../gio/gdbusconnection.c:6133 +#, fuzzy, c-format +msgid "No such interface `%s' on object at path %s" +msgstr "%s yolundaki nesnede `%s' gibi bir arabirim yok" + +#: ../gio/gdbusconnection.c:4477 +#, fuzzy, c-format msgid "No such method `%s'" -msgstr "" +msgstr "%s gibi bir yöntem yok" -#: gio/gdbusconnection.c:3779 -#, c-format +#: ../gio/gdbusconnection.c:4508 +#, fuzzy, c-format msgid "Type of message, `%s', does not match expected type `%s'" -msgstr "" +msgstr "`%s' mesajının türü, beklenen `%s' türü ile örtüşmüyor" -#: gio/gdbusconnection.c:3993 -#, c-format +#: ../gio/gdbusconnection.c:4727 +#, fuzzy, c-format msgid "An object is already exported for the interface %s at %s" -msgstr "" +msgstr "%2$s konumundaki %1$s arabirimi için bir nesne zaten dışa aktarıldı" -#: gio/gdbusconnection.c:4173 -#, c-format +#: ../gio/gdbusconnection.c:4922 +#, fuzzy, c-format msgid "Method `%s' returned type `%s', but expected `%s'" -msgstr "" +msgstr "`%s' yöntemi `%s' türü döndürdü, fakat `%s' bekleniyordu" -#: gio/gdbusconnection.c:4866 -#, c-format +#: ../gio/gdbusconnection.c:5738 +#, fuzzy, c-format msgid "Method `%s' on interface `%s' with signature `%s' does not exist" -msgstr "" +msgstr "`%s' imzalı arayüz `%s' üzerindeki `%s' yöntemi mevcut değil" -#: gio/gdbusconnection.c:4981 +#: ../gio/gdbusconnection.c:5856 #, fuzzy, c-format msgid "A subtree is already exported for %s" -msgstr "Dinleyici zaten kapalı" +msgstr "%s için bir alt ağaç zaten dışa aktarılmış" -#: gio/gdbusconnection.c:5089 -#, c-format -msgid "Unable to load /var/lib/dbus/machine-id: %s" +#: ../gio/gdbusmessage.c:859 +#, fuzzy +msgid "type is INVALID" +msgstr "tür GEÇERSİZ" + +#: ../gio/gdbusmessage.c:870 +#, fuzzy +msgid "METHOD_CALL message: PATH or MEMBER header field is missing" +msgstr "METHOD_CALL mesajı: PATH ya da MEMBER başlık alanı eksik" + +#: ../gio/gdbusmessage.c:881 +#, fuzzy +msgid "METHOD_RETURN message: REPLY_SERIAL header field is missing" +msgstr "METHOD_RETURN mesajı: REPLY_SERIAL başlık alanı eksik " + +#: ../gio/gdbusmessage.c:893 +#, fuzzy +msgid "ERROR message: REPLY_SERIAL or ERROR_NAME header field is missing" +msgstr "HATA mesajı: REPLY_SERIAL ya da ERROR_NAME başlık alanı eksik" + +#: ../gio/gdbusmessage.c:906 +#, fuzzy +msgid "SIGNAL message: PATH, INTERFACE or MEMBER header field is missing" +msgstr "SIGNAL mesajı: PATH, INTERFACE ya da MEMBER başlık alanı eksik" + +#: ../gio/gdbusmessage.c:914 +#, fuzzy +msgid "" +"SIGNAL message: The PATH header field is using the reserved value /org/" +"freedesktop/DBus/Local" msgstr "" +"SIGNAL mesajı: PATH başlık alanı, ayrılmış olan /org/freedesktop/DBus/Local " +"değerini kullanıyor" -#: gio/gdbusconnection.c:5259 -#, c-format -msgid "No such interface `%s' on object at path %s" +#: ../gio/gdbusmessage.c:922 +#, fuzzy +msgid "" +"SIGNAL message: The INTERFACE header field is using the reserved value org." +"freedesktop.DBus.Local" msgstr "" +"SIGNAL mesajı: INTERFACE başlık alanı, ayrılmış olan org.freedesktop.DBus." +"Local değerini kullanıyor" -#: gio/gdbusmessage.c:723 -msgid "Wanted to read %" +#: ../gio/gdbusmessage.c:997 +#, fuzzy, c-format +msgid "Wanted to read %lu bytes but got EOF" +msgstr "%lu bayt okumak istendi fakat EOF alındı" + +#: ../gio/gdbusmessage.c:1022 +#, fuzzy, c-format +msgid "" +"Expected valid UTF-8 string but found invalid bytes at byte offset %d " +"(length of string is %d). The valid UTF-8 string up until that point was `%s'" msgstr "" +"Geçerli bir UTF-8 dizgesi bekleniyordu fakat %d bayt ofsetinde " +"geçersizbaytlar bulunda (dizge uzunluğu %d). Bu noktaya kadar geçerli olan " +"dizge `%s'" -#: gio/gdbusmessage.c:744 -#, c-format -msgid "Expected NUL byte after the string `%s' but found `%c' (%d)" -msgstr "" +#: ../gio/gdbusmessage.c:1035 +#, fuzzy, c-format +msgid "Expected NUL byte after the string `%s' but found byte %d" +msgstr "`%s' dizgesinden sonra NUL bayt bekleniyordu, fakat %d baytı bulundu" -#: gio/gdbusmessage.c:927 -#, c-format +#: ../gio/gdbusmessage.c:1234 +#, fuzzy, c-format msgid "Parsed value `%s' is not a valid D-Bus object path" -msgstr "" +msgstr "Ayrıştırılan değer `%s', geçerli bir D-Bus nesne yolu değil" -#: gio/gdbusmessage.c:953 +#: ../gio/gdbusmessage.c:1260 #, fuzzy, c-format msgid "Parsed value `%s' is not a valid D-Bus signature" -msgstr "'%s' geçerli bir isim değil " +msgstr "Ayrıştırılan değer `%s', geçerli bir D-Bus imzası değil" -#: gio/gdbusmessage.c:979 -msgid "Encountered array of length %" +#: ../gio/gdbusmessage.c:1314 +#, fuzzy, c-format +msgid "" +"Encountered array of length %u bytes. Maximum length is 2<<26 bytes (64 MiB)." msgstr "" +"%u bayt uzunluğunda dizi ile karşılaşıldı. Olabilecek en fazla uzunluk 2<<26 " +"bayt (64 MiB)." -#: gio/gdbusmessage.c:1116 -#, c-format +#: ../gio/gdbusmessage.c:1475 +#, fuzzy, c-format msgid "Parsed value `%s' for variant is not a valid D-Bus signature" -msgstr "" +msgstr "Varyant için ayrıştırılmış değer `%s' geçerli bir D-Bus imzası değil" -#: gio/gdbusmessage.c:1141 -#, c-format +#: ../gio/gdbusmessage.c:1502 +#, fuzzy, c-format msgid "" -"Error deserializing GVariant with type-string `%s' from the D-Bus wire format" +"Error deserializing GVariant with type string `%s' from the D-Bus wire format" msgstr "" +"`%s' tür dizgeli GVariant, D-Bus wire biçiminden geri dönüştürülürken hata" -#: gio/gdbusmessage.c:1286 -#, c-format -msgid "Invalid endianness value. Expected 'l' or 'B' but found '%c' (%d)" +#: ../gio/gdbusmessage.c:1688 +#, fuzzy, c-format +msgid "" +"Invalid endianness value. Expected 0x6c ('l') or 0x42 ('B') but found value " +"0x%02x" msgstr "" +"Geçersiz sonluluk değeri. 0x6c ('l') veya 0x42 ('B') bekleniyordu fakat 0x" +"%02x bulundu" -#: gio/gdbusmessage.c:1300 -#, c-format +#: ../gio/gdbusmessage.c:1702 +#, fuzzy, c-format msgid "Invalid major protocol version. Expected 1 but found %d" -msgstr "" +msgstr "Geçersiz protokol baş sürümü. 1 bekleniyordu, fakat %d bulundu" -#: gio/gdbusmessage.c:1342 -#, c-format +#: ../gio/gdbusmessage.c:1759 +#, fuzzy, c-format msgid "Signature header with signature `%s' found but message body is empty" -msgstr "" +msgstr "`%s' imzalı bir imza başlığı bulundu, fakat mesaj gövdesi boş" -#: gio/gdbusmessage.c:1356 -#, c-format +#: ../gio/gdbusmessage.c:1773 +#, fuzzy, c-format msgid "Parsed value `%s' is not a valid D-Bus signature (for body)" -msgstr "" +msgstr "Ayrıştırılan değer `%s' geçerli bir D-Bus imzası değil (gövde için)" -#: gio/gdbusmessage.c:1385 -msgid "No signature header in message but the message body is %" -msgstr "" +#: ../gio/gdbusmessage.c:1803 +#, fuzzy, c-format +msgid "No signature header in message but the message body is %u bytes" +msgstr "Mesaj içinde imza başlığı yok, fakat mesaj %u bayt" -#: gio/gdbusmessage.c:1694 -#, c-format +#: ../gio/gdbusmessage.c:1811 +#, fuzzy +msgid "Cannot deserialize message: " +msgstr "Mesaj geri dönüştürülemiyor: " + +#: ../gio/gdbusmessage.c:2136 +#, fuzzy, c-format msgid "" -"Error serializing GVariant with type-string `%s' to the D-Bus wire format" -msgstr "" +"Error serializing GVariant with type string `%s' to the D-Bus wire format" +msgstr "`%s' tür dizgeli GVariant, D-Bus wire biçimine dönüştürülürken hata" -#: gio/gdbusmessage.c:1823 -#, c-format +#: ../gio/gdbusmessage.c:2274 +#, fuzzy, c-format msgid "Message has %d fds but the header field indicates %d fds" -msgstr "" +msgstr "Mesaj %d fd'ye sahip, fakat başlık alanı %d fd olduğuna işaret ediyor" -#: gio/gdbusmessage.c:1869 -#, c-format +#: ../gio/gdbusmessage.c:2282 +#, fuzzy +msgid "Cannot serialize message: " +msgstr "Mesaj dönüştürülemiyor: " + +#: ../gio/gdbusmessage.c:2326 +#, fuzzy, c-format msgid "Message body has signature `%s' but there is no signature header" -msgstr "" +msgstr "Mesaj gövdesi `%s' imzasına sahip, fakat imza başlığı bulunmamakta" -#: gio/gdbusmessage.c:1879 -#, c-format +#: ../gio/gdbusmessage.c:2336 +#, fuzzy, 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 "" +"Mesaj gövdesi `%s' tür imzasına sahip, fakat başlık alanındaki imza `%s'" -#: gio/gdbusmessage.c:1895 -#, c-format +#: ../gio/gdbusmessage.c:2352 +#, fuzzy, c-format msgid "Message body is empty but signature in the header field is `(%s)'" -msgstr "" +msgstr "Mesaj gövdesi boş, fakat başlık alanındaki imza `(%s)'" -#: gio/gdbusmessage.c:2448 +#: ../gio/gdbusmessage.c:2909 #, fuzzy, c-format msgid "Error return with body of type `%s'" -msgstr "Dosyaya yazılırken hata: %s" +msgstr "%s türünden bir gövdeyle dönüş hatası" -#: gio/gdbusmessage.c:2456 +#: ../gio/gdbusmessage.c:2917 +#, fuzzy msgid "Error return with empty body" -msgstr "" +msgstr "Boş bir gövdeyle dönüş hatası" -#: gio/gdbusmethodinvocation.c:357 -#, c-format +#: ../gio/gdbusmethodinvocation.c:376 +#, fuzzy, c-format msgid "Type of return value is incorrect, got `%s', expected `%s'" -msgstr "" +msgstr "Dönüş değerinin türü yanlış, `%s' mevcut, fakat `%s' bekleniyordu" -#: gio/gdbusmethodinvocation.c:371 gio/gsocket.c:2859 gio/gsocket.c:2940 +#: ../gio/gdbusmethodinvocation.c:407 ../gio/gsocket.c:3032 +#: ../gio/gsocket.c:3113 #, c-format msgid "Error sending message: %s" msgstr "Mesaj gönderme hatası: %s" -#: gio/gdbusprivate.c:775 -msgid "Error writing first 16 bytes of message to socket: " -msgstr "" +#: ../gio/gdbusprivate.c:1769 +#, fuzzy +msgid "Unable to load /var/lib/dbus/machine-id: " +msgstr "Yükleme başarısız /var/lib/dbus/machine-id: " -#: gio/gdbusproxy.c:633 -#, c-format +#: ../gio/gdbusproxy.c:717 +#, fuzzy, c-format msgid "" "Trying to set property %s of type %s but according to the expected interface " "the type is %s" msgstr "" +"%2$s türünden %1$s özelliği ayarlanmaya çalışılıyor, fakat beklenen arayüze " +"göre tür %3$s" -#: gio/gdbusserver.c:669 +#: ../gio/gdbusproxy.c:1281 +#, fuzzy, c-format +msgid "Error calling StartServiceByName for %s: " +msgstr "%s için StartServiceByName çağrısında hata: " + +#: ../gio/gdbusproxy.c:1302 +#, fuzzy, c-format +msgid "Unexpected reply %d from StartServiceByName(\"%s\") method" +msgstr "StartServiceByName(\"%2$s\") yönteminden beklenmeyen yanıt %1$d" + +#: ../gio/gdbusproxy.c:2364 ../gio/gdbusproxy.c:2523 +#, fuzzy +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 "" +"Yöntem çağırılamıyor; vekil, sahibi olmayan bilindik bir ad için ve vekil " +"G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START seçeneği ile oluşturuldu" + +#: ../gio/gdbusserver.c:706 #, fuzzy msgid "Abstract name space not supported" -msgstr "Çöp desteklenmiyor" +msgstr "Soyut ad alanı desteklenmiyor" -#: gio/gdbusserver.c:759 +#: ../gio/gdbusserver.c:793 +#, fuzzy msgid "Cannot specify nonce file when creating a server" -msgstr "" +msgstr "Bir sunucu oluşturulurken nonce dosyası belirtilemez" -#: gio/gdbusserver.c:836 +#: ../gio/gdbusserver.c:870 #, fuzzy, c-format msgid "Error writing nonce file at `%s': %s" -msgstr "Dosyaya yazılırken hata: %s" +msgstr "`%s' konumundaki nonce dosyasına yazma hatası: %s" -#: gio/gdbusserver.c:988 +#: ../gio/gdbusserver.c:1032 #, fuzzy, c-format msgid "The string `%s' is not a valid D-Bus GUID" -msgstr "'%s' geçerli bir isim değil " +msgstr "`%s', geçerli bir D-Bus GUID değil" -#: gio/gdbusserver.c:1028 -#, c-format +#: ../gio/gdbusserver.c:1072 +#, fuzzy, c-format msgid "Cannot listen on unsupported transport `%s'" -msgstr "" +msgstr "Desteklenmeyen transport `%s' üzerinden dinlenemiyor" -#: gio/gdbus-tool.c:87 gio/gsettings-tool.c:38 +#: ../gio/gdbus-tool.c:88 +#, fuzzy msgid "COMMAND" -msgstr "" +msgstr "KOMUT" -#: gio/gdbus-tool.c:92 -#, c-format +#: ../gio/gdbus-tool.c:93 +#, fuzzy, c-format msgid "" "Commands:\n" " help Shows this information\n" @@ -1635,231 +2052,264 @@ msgid "" "\n" "Use \"%s COMMAND --help\" to get help on each command.\n" msgstr "" +"Komutlar:\n" +" help Bu bilgiyi gösterir\n" +" introspect Bir uzak nesyene içgözlem yap\n" +" monitor Bir uzak nesneyi gözlemle\n" +" call Bir uzak nesne üzerinde yöntem çağır\n" +"\n" +"Her bir komut hakkında yardım almak için \"%s KOMUT --help\" kullanın.\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 +#: ../gio/gdbus-tool.c:161 ../gio/gdbus-tool.c:217 ../gio/gdbus-tool.c:289 +#: ../gio/gdbus-tool.c:313 ../gio/gdbus-tool.c:817 ../gio/gdbus-tool.c:1327 #, fuzzy, c-format msgid "Error: %s\n" -msgstr "Satır %d hata içeriyor: %s" +msgstr "Hata: %s\n" -#: gio/gdbus-tool.c:171 gio/gdbus-tool.c:229 gio/gdbus-tool.c:1332 +#: ../gio/gdbus-tool.c:172 ../gio/gdbus-tool.c:230 ../gio/gdbus-tool.c:1343 #, fuzzy, c-format msgid "Error parsing introspection XML: %s\n" -msgstr "%s seçeneği işlenirken hata" +msgstr "İçgözlem XML'ini ayrıştırmada hata: %s\n" -#: gio/gdbus-tool.c:346 +#: ../gio/gdbus-tool.c:347 +#, fuzzy msgid "Connect to the system bus" -msgstr "" +msgstr "Sistem veriyoluna bağlan" -#: gio/gdbus-tool.c:347 +#: ../gio/gdbus-tool.c:348 +#, fuzzy msgid "Connect to the session bus" -msgstr "" +msgstr "Oturum veriyoluna bağlan" -#: gio/gdbus-tool.c:348 +#: ../gio/gdbus-tool.c:349 #, fuzzy msgid "Connect to given D-Bus address" -msgstr "Bağlantı devam ediyor" +msgstr "Verilen D-Bus adresine bağlan" -#: gio/gdbus-tool.c:358 +#: ../gio/gdbus-tool.c:359 #, fuzzy msgid "Connection Endpoint Options:" -msgstr "Bağlantı devam ediyor" +msgstr "Bağlantı Uç Noktası Seçenekleri" -#: gio/gdbus-tool.c:359 +#: ../gio/gdbus-tool.c:360 +#, fuzzy msgid "Options specifying the connection endpoint" -msgstr "" +msgstr "Bağlantı uç noktasını belirten seçenekler" -#: gio/gdbus-tool.c:379 -#, c-format +#: ../gio/gdbus-tool.c:382 +#, fuzzy, c-format msgid "No connection endpoint specified" -msgstr "" +msgstr "Hiçbir bağlantı uç noktası belirtilmedi" -#: gio/gdbus-tool.c:389 -#, c-format +#: ../gio/gdbus-tool.c:392 +#, fuzzy, c-format msgid "Multiple connection endpoints specified" -msgstr "" +msgstr "Birden fazla bağlantı uç noktası belirtildi" -#: gio/gdbus-tool.c:459 -#, c-format +#: ../gio/gdbus-tool.c:462 +#, fuzzy, c-format msgid "" "Warning: According to introspection data, interface `%s' does not exist\n" -msgstr "" +msgstr "Uyarı: İçgözlem verisine göre, `%s' arayüzü bulunmuyor\n" -#: gio/gdbus-tool.c:468 -#, c-format +#: ../gio/gdbus-tool.c:471 +#, fuzzy, c-format msgid "" "Warning: According to introspection data, method `%s' does not exist on " "interface `%s'\n" msgstr "" +"Uyarı: İçgözlem verisine göre, `%s' yöntemi `%s' arayüzü üzerinde mevcut " +"değil\n" -#: gio/gdbus-tool.c:530 +#: ../gio/gdbus-tool.c:533 +#, fuzzy msgid "Destination name to invoke method on" -msgstr "" +msgstr "Yöntemin üzerinde çağırılacağı hedefin ismi" -#: gio/gdbus-tool.c:531 +#: ../gio/gdbus-tool.c:534 +#, fuzzy msgid "Object path to invoke method on" -msgstr "" +msgstr "Yöntemin üzerinde çağırılacağı nesnenin yolu" -#: gio/gdbus-tool.c:532 +#: ../gio/gdbus-tool.c:535 +#, fuzzy msgid "Method and interface name" -msgstr "" +msgstr "Yönten ve arayüz ismi" -#: gio/gdbus-tool.c:571 +#: ../gio/gdbus-tool.c:574 +#, fuzzy msgid "Invoke a method on a remote object." -msgstr "" +msgstr "Uzak nesne üzerinde bir yöntem çağır" -#: gio/gdbus-tool.c:626 gio/gdbus-tool.c:1243 gio/gdbus-tool.c:1495 +#: ../gio/gdbus-tool.c:629 ../gio/gdbus-tool.c:1248 ../gio/gdbus-tool.c:1508 #, fuzzy, c-format msgid "Error connecting: %s\n" -msgstr "Bağlarken hata: %s" +msgstr "Bağlarken hata: %s\n" -#: gio/gdbus-tool.c:646 gio/gdbus-tool.c:1262 gio/gdbus-tool.c:1514 -#, c-format +#: ../gio/gdbus-tool.c:649 ../gio/gdbus-tool.c:1267 ../gio/gdbus-tool.c:1527 +#, fuzzy, c-format msgid "Error: Destination is not specified\n" -msgstr "" +msgstr "Hata: Varılacak veriyolu adı belirtilmedi\n" -#: gio/gdbus-tool.c:667 gio/gdbus-tool.c:1281 -#, c-format +#: ../gio/gdbus-tool.c:670 ../gio/gdbus-tool.c:1286 +#, fuzzy, c-format msgid "Error: Object path is not specified\n" -msgstr "" +msgstr "Hata: Nesne yolu belirtilmedi\n" -#: gio/gdbus-tool.c:687 gio/gdbus-tool.c:1301 gio/gdbus-tool.c:1554 +#: ../gio/gdbus-tool.c:690 ../gio/gdbus-tool.c:1306 ../gio/gdbus-tool.c:1567 #, fuzzy, c-format msgid "Error: %s is not a valid object path\n" -msgstr "'%s' geçerli bir isim değil " +msgstr "Hata: %s geçerli bir nesne yolu değil\n" -#: gio/gdbus-tool.c:702 -#, c-format +#: ../gio/gdbus-tool.c:705 +#, fuzzy, c-format msgid "Error: Method name is not specified\n" -msgstr "" +msgstr "Hata: Yöntem adı belirtilmedi\n" -#: gio/gdbus-tool.c:713 -#, c-format +#: ../gio/gdbus-tool.c:716 +#, fuzzy, c-format msgid "Error: Method name `%s' is invalid\n" -msgstr "" +msgstr "Hata: Yöntem adı `%s' geçersiz\n" -#: gio/gdbus-tool.c:778 +#: ../gio/gdbus-tool.c:781 #, fuzzy, c-format msgid "Error parsing parameter %d of type `%s': %s\n" -msgstr "'%s' dizini açılamadı: %s" +msgstr "`%2$s' türünden olan %1$d parametresini ayrıştırmada hata: %3$s\n" -#: gio/gdbus-tool.c:786 +#: ../gio/gdbus-tool.c:789 #, fuzzy, c-format msgid "Error parsing parameter %d: %s\n" -msgstr "%s seçeneği işlenirken hata" +msgstr "%d parametresini ayrıştırmada hata: %s\n" -#: gio/gdbus-tool.c:1161 +#: ../gio/gdbus-tool.c:1165 +#, fuzzy msgid "Destination name to introspect" -msgstr "" +msgstr "İçgözlem yapılacak hedefin adı" -#: gio/gdbus-tool.c:1162 +#: ../gio/gdbus-tool.c:1166 +#, fuzzy msgid "Object path to introspect" -msgstr "" +msgstr "İçgözlem yapılacak nesnenin yolu" -#: gio/gdbus-tool.c:1195 +#: ../gio/gdbus-tool.c:1167 +#, fuzzy +msgid "Print XML" +msgstr "XML yazdır" + +#: ../gio/gdbus-tool.c:1200 +#, fuzzy msgid "Introspect a remote object." -msgstr "" +msgstr "Uzak nesneye içgözlem yap." -#: gio/gdbus-tool.c:1413 +#: ../gio/gdbus-tool.c:1426 +#, fuzzy msgid "Destination name to monitor" -msgstr "" +msgstr "Gözlemlenecek hedefin adı" -#: gio/gdbus-tool.c:1414 +#: ../gio/gdbus-tool.c:1427 +#, fuzzy msgid "Object path to monitor" -msgstr "" +msgstr "Gözlemlenecek nesnenin yolu" -#: gio/gdbus-tool.c:1447 +#: ../gio/gdbus-tool.c:1460 #, fuzzy msgid "Monitor a remote object." -msgstr "bozuk nesne" +msgstr "Uzak nesneyi gözlemle." -#: gio/gdesktopappinfo.c:468 gio/gwin32appinfo.c:222 +#: ../gio/gdesktopappinfo.c:480 ../gio/gwin32appinfo.c:221 msgid "Unnamed" msgstr "İsimlendirilmemiş" -#: gio/gdesktopappinfo.c:742 +#: ../gio/gdesktopappinfo.c:764 msgid "Desktop file didn't specify Exec field" msgstr "Desktop dosyası Exec alanı belirtmemiş" -#: gio/gdesktopappinfo.c:935 +#: ../gio/gdesktopappinfo.c:1045 msgid "Unable to find terminal required for application" msgstr "Uygulama için gerekli uçbirim bulunamadı" -#: gio/gdesktopappinfo.c:1144 +#: ../gio/gdesktopappinfo.c:1344 #, c-format msgid "Can't create user application configuration folder %s: %s" msgstr "Kullanıcı uygulaması yapılandırma klasörü %s oluşturulamıyor: %s" -#: gio/gdesktopappinfo.c:1148 +#: ../gio/gdesktopappinfo.c:1348 #, c-format msgid "Can't create user MIME configuration folder %s: %s" msgstr "Kullanıcı MIME yapılandırma klasörü %s oluşturulamıyor: %s" -#: gio/gdesktopappinfo.c:1556 +#: ../gio/gdesktopappinfo.c:1841 #, c-format msgid "Can't create user desktop file %s" msgstr "Kullanıcı masaüstü dosyası %s oluşturulamıyor" -#: gio/gdesktopappinfo.c:1670 +#: ../gio/gdesktopappinfo.c:1957 #, c-format msgid "Custom definition for %s" msgstr "%s için özel tanım" -#: gio/gdrive.c:364 +#: ../gio/gdrive.c:363 msgid "drive doesn't implement eject" msgstr "sürücü çıkartmayı uygulamıyor" #. 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:444 msgid "drive doesn't implement eject or eject_with_operation" msgstr "sürücü eject veya eject_with_operation uygulamıyor" -#: gio/gdrive.c:521 +#: ../gio/gdrive.c:521 msgid "drive doesn't implement polling for media" msgstr "sürücü ortam için yoklamayı uygulamıyor" -#: gio/gdrive.c:726 +#: ../gio/gdrive.c:728 msgid "drive doesn't implement start" msgstr "sürücü start uygulamıyor" -#: gio/gdrive.c:828 +#: ../gio/gdrive.c:831 msgid "drive doesn't implement stop" msgstr "sürücü stop uygulamıyor" -#: gio/gemblem.c:325 +#: ../gio/gdummytlsbackend.c:156 ../gio/gdummytlsbackend.c:274 +#, fuzzy +msgid "TLS support is not available" +msgstr "TLS desteği kullanılabilir değil" + +#: ../gio/gemblem.c:324 #, c-format msgid "Can't handle version %d of GEmblem encoding" msgstr "GEmblem kodlamasının %d sürümü işlenemiyor" -#: gio/gemblem.c:335 +#: ../gio/gemblem.c:334 #, c-format msgid "Malformed number of tokens (%d) in GEmblem encoding" msgstr "GEmblem kodlaması içerisinde bozuk sayıda token (%d)" -#: gio/gemblemedicon.c:296 +#: ../gio/gemblemedicon.c:368 #, c-format msgid "Can't handle version %d of GEmblemedIcon encoding" msgstr "GEmblemedIcon kodlaması %d sürümü işlenemiyor" -#: gio/gemblemedicon.c:306 +#: ../gio/gemblemedicon.c:378 #, c-format msgid "Malformed number of tokens (%d) in GEmblemedIcon encoding" msgstr "GEmblemedIcon kodlaması içerisinde bozuk sayıda token (%d)" -#: gio/gemblemedicon.c:329 +#: ../gio/gemblemedicon.c:401 msgid "Expected a GEmblem for GEmblemedIcon" msgstr "GEmblemedIcon için bir Gemblem beklendi" -#: 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 "İşlem desteklenmiyor" @@ -1871,138 +2321,138 @@ msgstr "İşlem desteklenmiyor" #. 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:1061 ../gio/glocalfile.c:1072 +#: ../gio/glocalfile.c:1085 msgid "Containing mount does not exist" msgstr "Bağlama mevcut değil içeriyor" -#: gio/gfile.c:2409 gio/glocalfile.c:2259 +#: ../gio/gfile.c:2412 ../gio/glocalfile.c:2260 msgid "Can't copy over directory" msgstr "Dizin üzerine kopyalanamıyor" -#: gio/gfile.c:2469 +#: ../gio/gfile.c:2473 msgid "Can't copy directory over directory" msgstr "Dizin dizin üzerine kopyalanamıyor" -#: gio/gfile.c:2477 gio/glocalfile.c:2268 +#: ../gio/gfile.c:2481 ../gio/glocalfile.c:2269 msgid "Target file exists" msgstr "Hedef dosya mevcut" -#: gio/gfile.c:2495 +#: ../gio/gfile.c:2499 msgid "Can't recursively copy directory" msgstr "Dizin iç içe kopyalanamıyor" -#: gio/gfile.c:2755 +#: ../gio/gfile.c:2759 #, fuzzy msgid "Splice not supported" -msgstr "Sembolik bağlar desteklenmiyor" +msgstr "Splice ile veri taşıma desteklenmiyor" -#: gio/gfile.c:2759 +#: ../gio/gfile.c:2763 #, fuzzy, c-format msgid "Error splicing file: %s" -msgstr "Dosya açılırken hata: %s" +msgstr "Splice ile veri taşımada hata: %s" -#: gio/gfile.c:2906 +#: ../gio/gfile.c:2910 msgid "Can't copy special file" msgstr "Özel dosya kopyalanamıyor" -#: gio/gfile.c:3480 +#: ../gio/gfile.c:3484 msgid "Invalid symlink value given" msgstr "Geçersiz sembolik bağ değeri verildi" -#: gio/gfile.c:3573 +#: ../gio/gfile.c:3578 msgid "Trash not supported" msgstr "Çöp desteklenmiyor" -#: gio/gfile.c:3622 +#: ../gio/gfile.c:3627 #, c-format msgid "File names cannot contain '%c'" msgstr "Dosy adları '%c' içeremez" -#: gio/gfile.c:6039 gio/gvolume.c:331 +#: ../gio/gfile.c:6004 ../gio/gvolume.c:332 msgid "volume doesn't implement mount" msgstr "sistem bağlama uygulamıyor" -#: gio/gfile.c:6150 +#: ../gio/gfile.c:6115 msgid "No application is registered as handling this file" msgstr "Bu dosyayı işlemek için hiçbir uygulama kayıtlı değil" -#: gio/gfileenumerator.c:206 +#: ../gio/gfileenumerator.c:205 msgid "Enumerator is closed" msgstr "Enumerator kapalı" -#: 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 "Dosya numaralandırıcı sıradışı işleme sahip" -#: gio/gfileenumerator.c:362 gio/gfileenumerator.c:471 +#: ../gio/gfileenumerator.c:361 ../gio/gfileenumerator.c:470 msgid "File enumerator is already closed" msgstr "Dosya numaralandırıcı zaten kapalı" -#: gio/gfileicon.c:237 +#: ../gio/gfileicon.c:236 #, c-format msgid "Can't handle version %d of GFileIcon encoding" msgstr "GFileIcon kodlaması %d sürümü işlenemiyor" -#: gio/gfileicon.c:247 +#: ../gio/gfileicon.c:246 msgid "Malformed input data for GFileIcon" msgstr "GFileIcon için bozuk girdi verisi" -#: 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 "Akış query_info desteklemiyor" -#: 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 "Atlama akışta desteklenmiyor" -#: gio/gfileinputstream.c:381 +#: ../gio/gfileinputstream.c:379 msgid "Truncate not allowed on input stream" msgstr "Sonunu kesmeye giriş akışında izin verilmiyor" -#: gio/gfileiostream.c:465 gio/gfileoutputstream.c:459 +#: ../gio/gfileiostream.c:463 ../gio/gfileoutputstream.c:457 msgid "Truncate not supported on stream" msgstr "Akış üzerinde sonunun kesilmesi desteklenmiyor" -#: gio/gicon.c:286 +#: ../gio/gicon.c:284 #, c-format msgid "Wrong number of tokens (%d)" msgstr "Yanlış sayıda token (%d)" -#: gio/gicon.c:306 +#: ../gio/gicon.c:304 #, c-format msgid "No type for class name %s" msgstr "Sınıf ismi %s için tür yok" -#: gio/gicon.c:316 +#: ../gio/gicon.c:314 #, c-format msgid "Type %s does not implement the GIcon interface" msgstr "Tür %s GIcon arayüzü uygulamıyor" -#: gio/gicon.c:327 +#: ../gio/gicon.c:325 #, c-format msgid "Type %s is not classed" msgstr "Tür %s sınıflandırılmış değil" -#: gio/gicon.c:341 +#: ../gio/gicon.c:339 #, c-format msgid "Malformed version number: %s" msgstr "Bozuk sürüm numarası: %s" -#: gio/gicon.c:355 +#: ../gio/gicon.c:353 #, c-format msgid "Type %s does not implement from_tokens() on the GIcon interface" msgstr "Tür %s GIcon arayüzü üzerinde from_tokens() uygulamıyor" -#: gio/gicon.c:431 +#: ../gio/gicon.c:430 msgid "Can't handle the supplied version the icon encoding" msgstr "Simge kodlamasının verilen sürümü işlenemiyor" -#: gio/ginputstream.c:195 +#: ../gio/ginputstream.c:194 msgid "Input stream doesn't implement read" msgstr "Giriş akımı okumayı uygulamıyor" @@ -2012,800 +2462,1373 @@ msgstr "Giriş akımı okumayı uygulamıyor" #. Translators: This is an error you get if there is #. * already an operation running against this stream when #. * you try to start one -#: gio/ginputstream.c: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 "Akışın sıradışı işlemi var" -#: 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 "Soket adresi için yeterli alan yok" -#: gio/ginetsocketaddress.c:212 +#: ../gio/ginetsocketaddress.c:211 msgid "Unsupported socket address" msgstr "Desteklenmeyen soket adresi" -#: gio/glocaldirectorymonitor.c:288 +#: ../gio/glib-compile-schemas.c:742 +#, fuzzy +msgid "empty names are not permitted" +msgstr "boş adlara izin verilmiyor" + +#: ../gio/glib-compile-schemas.c:752 +#, fuzzy, c-format +msgid "invalid name '%s': names must begin with a lowercase letter" +msgstr "geçersiz ad '%s': adlar küçük harf ile başlamalıdır" + +#: ../gio/glib-compile-schemas.c:764 +#, fuzzy, c-format +msgid "" +"invalid name '%s': invalid character '%c'; only lowercase letters, numbers " +"and dash ('-') are permitted." +msgstr "" +"geçersiz ad '%s': geçersiz karakter '%c'; sadece küçük harfler, sayılar ve " +"tire ('-') işareti kullanılabilir" + +#: ../gio/glib-compile-schemas.c:773 +#, fuzzy, c-format +msgid "invalid name '%s': two successive dashes ('--') are not permitted." +msgstr "geçersiz ad '%s': birbirini izleyen iki tire ('--') kullanılamaz" + +#: ../gio/glib-compile-schemas.c:782 +#, fuzzy, c-format +msgid "invalid name '%s': the last character may not be a dash ('-')." +msgstr "geçersiz ad '%s': son karakter tire ('-') olamaz." + +#: ../gio/glib-compile-schemas.c:790 +#, fuzzy, c-format +msgid "invalid name '%s': maximum length is 32" +msgstr "geçersiz ad '%s': olabilecek en fazla uzunluk 32" + +#: ../gio/glib-compile-schemas.c:859 +#, fuzzy, c-format +msgid " already specified" +msgstr " zaten belirtilmiş" + +#: ../gio/glib-compile-schemas.c:885 +#, fuzzy +msgid "can not add keys to a 'list-of' schema" +msgstr "'list-of' şemasına anahtarlar eklenemiyor" + +#: ../gio/glib-compile-schemas.c:896 +#, fuzzy, c-format +msgid " already specified" +msgstr " zaten belirtilmiş" + +#: ../gio/glib-compile-schemas.c:914 +#, fuzzy, c-format +msgid "" +" shadows in ; use " +"to modify value" +msgstr "" +", içindeki 'i gölgeliyor; " +" kullanın" + +#: ../gio/glib-compile-schemas.c:925 +#, fuzzy, c-format +msgid "" +"exactly one of 'type', 'enum' or 'flags' must be specified as an attribute " +"to " +msgstr "" +"'e öznitelik olarak, 'type', 'enum', ya da 'flags' özniteliklerinden " +"tam olarak bir tanesi belirtilmeli" + +#: ../gio/glib-compile-schemas.c:944 +#, fuzzy, c-format +msgid "<%s id='%s'> not (yet) defined." +msgstr "<%s id='%s'> henüz tanımlanmadı " + +#: ../gio/glib-compile-schemas.c:959 +#, fuzzy, c-format +#| msgid "Invalid attribute type (string expected)" +msgid "invalid GVariant type string '%s'" +msgstr "geçersiz GVariant tür dizgisi '%s'" + +#: ../gio/glib-compile-schemas.c:989 +#, fuzzy +msgid " given but schema isn't extending anything" +msgstr " verildi, fakat şema hiçbir şeyi genişletmedi" + +#: ../gio/glib-compile-schemas.c:1002 +#, fuzzy, c-format +msgid "no to override" +msgstr "üzerine yazılacak hiç yok" + +#: ../gio/glib-compile-schemas.c:1010 +#, fuzzy, c-format +msgid " already specified" +msgstr " zaten belirtildi" + +#: ../gio/glib-compile-schemas.c:1081 +#, fuzzy, c-format +msgid " already specified" +msgstr " zaten belirtildi" + +#: ../gio/glib-compile-schemas.c:1093 +#, fuzzy, c-format +msgid " extends not yet existing schema '%s'" +msgstr ", henüz mevcut olmayan '%s' şemasını genişletiyor" + +#: ../gio/glib-compile-schemas.c:1109 +#, fuzzy, c-format +msgid " is list of not yet existing schema '%s'" +msgstr ", henüz mevcut olmayan '%s' şemasının bir listesi" + +#: ../gio/glib-compile-schemas.c:1117 +#, fuzzy, c-format +msgid "Can not be a list of a schema with a path" +msgstr "Yolu olan bir şemanın bir listesi olamaz" + +#: ../gio/glib-compile-schemas.c:1127 +#, fuzzy, c-format +msgid "Can not extend a schema with a path" +msgstr "Yolu olan bir şemayı genişletemez" + +#: ../gio/glib-compile-schemas.c:1137 +#, fuzzy, c-format +msgid "" +" is a list, extending which is not a list" +msgstr "" +", bir liste olmayan 'i genişleten bir liste" + +#: ../gio/glib-compile-schemas.c:1147 +#, fuzzy, c-format +msgid "" +" extends but '%s' " +"does not extend '%s'" +msgstr "" +", 'i genişletiyor " +"fakat '%s', '%s' 'i genişletmiyor" + +#: ../gio/glib-compile-schemas.c:1164 +#, fuzzy, c-format +msgid "a path, if given, must begin and end with a slash" +msgstr "eğer verilmişse, bir yol, mutlaka bir taksim '/' ile başlayıp bitmeli" + +#: ../gio/glib-compile-schemas.c:1171 +#, fuzzy, c-format +msgid "the path of a list must end with ':/'" +msgstr "bir listenin yoku mutlaka ':/' ile sonlanmalı" + +#: ../gio/glib-compile-schemas.c:1197 +#, fuzzy, c-format +msgid "<%s id='%s'> already specified" +msgstr "<%s id='%s'> zaten belirtilmiş" + +#: ../gio/glib-compile-schemas.c:1417 +#, fuzzy, c-format +msgid "Element <%s> not allowed inside <%s>" +msgstr "<%2$s> içinde <%1$s> öğesine izin verilmiyor" + +#: ../gio/glib-compile-schemas.c:1421 +#, fuzzy, c-format +msgid "Element <%s> not allowed at toplevel" +msgstr "<%s> öğesinin üst seviyede bulunmasına izin verilmiyor" + +#: ../gio/glib-compile-schemas.c:1512 +#, fuzzy, c-format +msgid "text may not appear inside <%s>" +msgstr "<%s> içinde metin bulunamaz" + +#. Translators: Do not translate "--strict". +#: ../gio/glib-compile-schemas.c:1697 ../gio/glib-compile-schemas.c:1768 +#: ../gio/glib-compile-schemas.c:1844 +#, fuzzy, c-format +msgid "--strict was specified; exiting.\n" +msgstr "--strict belirtildi; çıkılıyor.\n" + +#: ../gio/glib-compile-schemas.c:1705 +#, fuzzy, c-format +msgid "This entire file has been ignored.\n" +msgstr "Tüm dosya gözardı edildi.\n" + +#: ../gio/glib-compile-schemas.c:1764 +#, fuzzy, c-format +msgid "Ignoring this file.\n" +msgstr "Bu dosya gözardı ediliyor.\n" + +#: ../gio/glib-compile-schemas.c:1804 +#, fuzzy, c-format +msgid "No such key `%s' in schema `%s' as specified in override file `%s'" +msgstr "" +"`%3$s' üzerine yazma dosyasında belirtilen `%2$s' şemasında `%1$s'anahtarı " +"yok." + +#: ../gio/glib-compile-schemas.c:1810 ../gio/glib-compile-schemas.c:1868 +#: ../gio/glib-compile-schemas.c:1896 +#, fuzzy, c-format +msgid "; ignoring override for this key.\n" +msgstr "; bu anahtar için üzerine yazma gözardı ediliyor.\n" + +#: ../gio/glib-compile-schemas.c:1814 ../gio/glib-compile-schemas.c:1872 +#: ../gio/glib-compile-schemas.c:1900 +#, fuzzy, c-format +msgid " and --strict was specified; exiting.\n" +msgstr "ve --strict belirtildi; çıkılıyor.\n" + +#: ../gio/glib-compile-schemas.c:1830 +#, fuzzy, c-format +msgid "" +"error parsing key `%s' in schema `%s' as specified in override file `%s': " +"%s. " +msgstr "" +"`%3$s' üzerine yazma dosyasında belirtilen `%2$s' şemasındaki `%1$s' " +"anahtarını ayrıştırmada hata: %4$s. " + +#: ../gio/glib-compile-schemas.c:1840 +#, fuzzy, c-format +msgid "Ignoring override for this key.\n" +msgstr "Bu anahtar için üzerine yazma gözardı ediliyor.\n" + +#: ../gio/glib-compile-schemas.c:1858 +#, fuzzy, c-format +msgid "" +"override for key `%s' in schema `%s' in override file `%s' is out of the " +"range given in the schema" +msgstr "" +"`%3$s' üzerine yazma dosyasındaki `%2$s' şemasının `%1$s' anahtarının " +"üzerine yazma, şemada verilen aralığın dışında" + +#: ../gio/glib-compile-schemas.c:1886 +#, fuzzy, c-format +msgid "" +"override for key `%s' in schema `%s' in override file `%s' is not in the " +"list of valid choices" +msgstr "" +"`%3$s' üzerine yazma dosyasındaki `%2$s' şemasının `%1$s' anahtarının " +"üzerine yazma, geçerli seçenekler listesinde değil" + +#: ../gio/glib-compile-schemas.c:1940 +#, fuzzy +msgid "where to store the gschemas.compiled file" +msgstr "gschemas.compiled dosyasının saklanacağı yer" + +#: ../gio/glib-compile-schemas.c:1940 ../gio/glib-compile-schemas.c:1966 +#, fuzzy +msgid "DIRECTORY" +msgstr "DİZİN" + +#: ../gio/glib-compile-schemas.c:1941 +#, fuzzy +msgid "Abort on any errors in schemas" +msgstr "Şemalardaki herhangi bir hatada iptal et" + +#: ../gio/glib-compile-schemas.c:1942 +#, fuzzy +msgid "Do not write the gschema.compiled file" +msgstr "gschema.compiled dosyasını yazma" + +#: ../gio/glib-compile-schemas.c:1943 +#, fuzzy +msgid "This option will be removed soon." +msgstr "Bu şeçenek yakında kaldırılacak." + +#: ../gio/glib-compile-schemas.c:1944 +#, fuzzy +msgid "Do not enforce key name restrictions" +msgstr "Anahtar adı kısıtlamalarına zorlama" + +#: ../gio/glib-compile-schemas.c:1969 +#, fuzzy +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 "" +"Tüm GSettings şema dosyalarını bir şema önbelleği içerisine derle.\n" +"Şema dosyalarının .gschema.xml uzantısına sahip olmaları gerekir,\n" +"ve önbellek dosyası gschemas.compiled olarak anılır." + +#: ../gio/glib-compile-schemas.c:1985 +#, fuzzy, c-format +msgid "You should give exactly one directory name\n" +msgstr "Tam olarak bir dizin adı vermelisiniz\n" + +#: ../gio/glib-compile-schemas.c:2024 +#, fuzzy, c-format +msgid "No schema files found: " +msgstr "Hiç şema dosyası bulunmadı: " + +#: ../gio/glib-compile-schemas.c:2027 +#, fuzzy, c-format +msgid "doing nothing.\n" +msgstr "hiçbir şey yapılmıyor.\n" + +#: ../gio/glib-compile-schemas.c:2030 +#, fuzzy, c-format +msgid "removed existing output file.\n" +msgstr "varolan çıktı dosyası silindi.\n" + +#: ../gio/glocaldirectorymonitor.c:287 msgid "Unable to find default local directory monitor type" msgstr "Öntanımlı yerel dizin izleme tipi bulunamadı" -#: 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 "Geçersiz dosya adı %s" -#: gio/glocalfile.c:968 +#: ../gio/glocalfile.c:969 #, c-format msgid "Error getting filesystem info: %s" msgstr "Dosya sistemi bilgisi alınırken hata: %s" -#: gio/glocalfile.c:1106 +#: ../gio/glocalfile.c:1107 msgid "Can't rename root directory" msgstr "Kök dizini yeniden adlandırılamıyor" -#: gio/glocalfile.c:1126 gio/glocalfile.c:1152 +#: ../gio/glocalfile.c:1127 ../gio/glocalfile.c:1153 #, c-format msgid "Error renaming file: %s" msgstr "Dosya yeniden adlandırılırken hata: %s" -#: gio/glocalfile.c:1135 +#: ../gio/glocalfile.c:1136 msgid "Can't rename file, filename already exist" msgstr "Dosya yeniden adlandırılamıyor, dosya ismi zaten mevcut" -#: 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: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 "Geçersiz dosya adı" -#: gio/glocalfile.c:1309 +#: ../gio/glocalfile.c:1310 #, c-format msgid "Error opening file: %s" msgstr "Dosya açılırken hata: %s" -#: gio/glocalfile.c:1319 +#: ../gio/glocalfile.c:1320 msgid "Can't open directory" msgstr "Dizin açılamıyor" -#: gio/glocalfile.c:1444 +#: ../gio/glocalfile.c:1445 #, c-format msgid "Error removing file: %s" msgstr "Dosya silinirken hata: %s" -#: gio/glocalfile.c:1811 +#: ../gio/glocalfile.c:1812 #, c-format msgid "Error trashing file: %s" msgstr "Dosya çöpe atılırken hata: %s" -#: gio/glocalfile.c:1834 +#: ../gio/glocalfile.c:1835 #, c-format msgid "Unable to create trash dir %s: %s" msgstr "Çöp dizini %s oluşturulamıyor: %s" -#: gio/glocalfile.c:1855 +#: ../gio/glocalfile.c:1856 msgid "Unable to find toplevel directory for trash" msgstr "Çöp için en üst seviye dizin bulunamıyor" -#: gio/glocalfile.c:1934 gio/glocalfile.c:1954 +#: ../gio/glocalfile.c:1935 ../gio/glocalfile.c:1955 msgid "Unable to find or create trash directory" msgstr "Çöp dizini bulunamıyor ya da oluşturulamıyor" -#: gio/glocalfile.c:1988 +#: ../gio/glocalfile.c:1989 #, c-format msgid "Unable to create trashing info file: %s" msgstr "Çöp bilgi dosyası oluşturulamıyor: %s" -#: gio/glocalfile.c:2017 gio/glocalfile.c:2022 gio/glocalfile.c:2102 -#: gio/glocalfile.c:2109 +#: ../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 "Dosya çöpe atılamıyor: %s" -#: gio/glocalfile.c:2136 +#: ../gio/glocalfile.c:2137 #, c-format msgid "Error creating directory: %s" msgstr "Dizin oluşturulurken hata: %s" -#: gio/glocalfile.c:2165 +#: ../gio/glocalfile.c:2166 #, fuzzy, c-format msgid "Filesystem does not support symbolic links" -msgstr "'%s' sembolik bağını okuma başarısız: %s" +msgstr "Dosya sistemi sembolik bağları desteklemiyor" -#: gio/glocalfile.c:2169 +#: ../gio/glocalfile.c:2170 #, c-format msgid "Error making symbolic link: %s" msgstr "Sembolik bağ yaparken hata: %s" -#: gio/glocalfile.c:2231 gio/glocalfile.c:2325 +#: ../gio/glocalfile.c:2232 ../gio/glocalfile.c:2326 #, c-format msgid "Error moving file: %s" msgstr "Dosya taşınırken hata: %s" -#: gio/glocalfile.c:2254 +#: ../gio/glocalfile.c:2255 msgid "Can't move directory over directory" msgstr "Dizin dizin üzerine taşınamıyor" -#: 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: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 "Yedek dosyası oluşturma başarısız oldu" -#: gio/glocalfile.c:2300 +#: ../gio/glocalfile.c:2301 #, c-format msgid "Error removing target file: %s" msgstr "Hedef dosya silerken hata: %s" -#: gio/glocalfile.c:2314 +#: ../gio/glocalfile.c:2315 msgid "Move between mounts not supported" msgstr "Bağlı sistemler arasında taşıma desteklenmiyor" -#: gio/glocalfileinfo.c:721 +#: ../gio/glocalfileinfo.c:720 msgid "Attribute value must be non-NULL" msgstr "Öznitelik değeri NULL olmamalı" -#: gio/glocalfileinfo.c:728 +#: ../gio/glocalfileinfo.c:727 msgid "Invalid attribute type (string expected)" msgstr "Geçersiz öznitelik türü (dizgi beklendi)" -#: gio/glocalfileinfo.c:735 +#: ../gio/glocalfileinfo.c:734 msgid "Invalid extended attribute name" msgstr "Geçersiz genişletilmiş öznitelik ismi" -#: gio/glocalfileinfo.c:775 +#: ../gio/glocalfileinfo.c:774 #, c-format msgid "Error setting extended attribute '%s': %s" msgstr "Genişletilmiş öznitelik '%s' atanırken hata: %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 "'%s' dosyası durumlandırılırken hata: %s" -#: gio/glocalfileinfo.c:1552 +#: ../gio/glocalfileinfo.c:1567 msgid " (invalid encoding)" msgstr " (geçersiz kodlama)" -#: gio/glocalfileinfo.c:1750 +#: ../gio/glocalfileinfo.c:1769 #, c-format msgid "Error stating file descriptor: %s" msgstr "Dosya tanımlayıcı durumlandırılırken hata: %s" -#: gio/glocalfileinfo.c:1795 +#: ../gio/glocalfileinfo.c:1814 msgid "Invalid attribute type (uint32 expected)" msgstr "Geçersiz öznitelik türü (uint32 beklendi)" -#: gio/glocalfileinfo.c:1813 +#: ../gio/glocalfileinfo.c:1832 msgid "Invalid attribute type (uint64 expected)" msgstr "Geçersiz öznitelik türü (uint64 beklendi)" -#: gio/glocalfileinfo.c:1832 gio/glocalfileinfo.c:1851 +#: ../gio/glocalfileinfo.c:1851 ../gio/glocalfileinfo.c:1870 msgid "Invalid attribute type (byte string expected)" msgstr "Geçersiz öznitelik türü (byte dizisi beklendi)" -#: gio/glocalfileinfo.c:1886 +#: ../gio/glocalfileinfo.c:1905 #, fuzzy msgid "Cannot set permissions on symlinks" -msgstr "İzinler atanırken hata: %s" +msgstr "Sembolik bağ uzerindeki yetkiler değiştirilemiyor" -#: gio/glocalfileinfo.c:1902 +#: ../gio/glocalfileinfo.c:1921 #, c-format msgid "Error setting permissions: %s" msgstr "İzinler atanırken hata: %s" -#: gio/glocalfileinfo.c:1953 +#: ../gio/glocalfileinfo.c:1972 #, c-format msgid "Error setting owner: %s" msgstr "Sahip atanırken hata: %s" -#: gio/glocalfileinfo.c:1976 +#: ../gio/glocalfileinfo.c:1995 msgid "symlink must be non-NULL" msgstr "sembolik bağ NULL olmamalı" -#: 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 "Sembolik bağ atanırken hata: %s" -#: gio/glocalfileinfo.c:1995 +#: ../gio/glocalfileinfo.c:2014 msgid "Error setting symlink: file is not a symlink" msgstr "Sembolik bağ atanırken hata: dosya bir sembolik bağ değil" -#: gio/glocalfileinfo.c:2121 +#: ../gio/glocalfileinfo.c:2140 #, c-format msgid "Error setting modification or access time: %s" msgstr "Değiştirme veya erişim süresi atanırken hata: %s" -#: gio/glocalfileinfo.c:2144 +#: ../gio/glocalfileinfo.c:2163 msgid "SELinux context must be non-NULL" msgstr "SELinux bağlamı NULL olmamalı" -#: gio/glocalfileinfo.c:2159 +#: ../gio/glocalfileinfo.c:2178 #, c-format msgid "Error setting SELinux context: %s" msgstr "SELinux bağlamı atanırken hata: %s" -#: gio/glocalfileinfo.c:2166 +#: ../gio/glocalfileinfo.c:2185 msgid "SELinux is not enabled on this system" msgstr "SELinux bu sistede etkin değil" -#: gio/glocalfileinfo.c:2258 +#: ../gio/glocalfileinfo.c:2277 #, c-format msgid "Setting attribute %s not supported" msgstr "Öznitelik %s ataması desteklenmiyor" -#: 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 "Dosyadan okunurken hata: %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 "Dosya içinde atlama yapılırken hata: %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 "Dosya kapatılırken hata: %s" -#: gio/glocalfilemonitor.c:213 +#: ../gio/glocalfilemonitor.c:212 msgid "Unable to find default local file monitor type" msgstr "Öntanımlı yerel dosya izleme türü bulunamadı" -#: 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 "Dosyaya yazılırken hata: %s" -#: gio/glocalfileoutputstream.c:282 +#: ../gio/glocalfileoutputstream.c:283 #, c-format msgid "Error removing old backup link: %s" msgstr "Eski yedek bağı silinirken hata: %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 "Yedek kopyası oluşturulurken hata: %s" -#: gio/glocalfileoutputstream.c:327 +#: ../gio/glocalfileoutputstream.c:328 #, c-format msgid "Error renaming temporary file: %s" msgstr "Geçici dosya yeniden adlandırılırken hata: %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 "Dosyanın sonu kesilirken hata: %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 "'%s' dosyası açılırken hata: %s" -#: gio/glocalfileoutputstream.c:845 +#: ../gio/glocalfileoutputstream.c:846 msgid "Target file is a directory" msgstr "Hedef dosya bir dizin" -#: gio/glocalfileoutputstream.c:850 +#: ../gio/glocalfileoutputstream.c:851 msgid "Target file is not a regular file" msgstr "Hedef dosya normal dosya değil" -#: gio/glocalfileoutputstream.c:862 +#: ../gio/glocalfileoutputstream.c:863 msgid "The file was externally modified" msgstr "Dosya harici olarak değiştirilmiş" -#: gio/glocalfileoutputstream.c:1041 +#: ../gio/glocalfileoutputstream.c:1042 #, c-format msgid "Error removing old file: %s" msgstr "Eski dosya silinirken hata: %s" -#: gio/gmemoryinputstream.c:487 gio/gmemoryoutputstream.c:718 +#: ../gio/gmemoryinputstream.c:486 ../gio/gmemoryoutputstream.c:746 msgid "Invalid GSeekType supplied" msgstr "Geçersiz GSeekType sağlandı" -#: gio/gmemoryinputstream.c:497 +#: ../gio/gmemoryinputstream.c:496 msgid "Invalid seek request" msgstr "Geçersiz atlama isteği" -#: gio/gmemoryinputstream.c:521 +#: ../gio/gmemoryinputstream.c:520 msgid "Cannot truncate GMemoryInputStream" msgstr "GMemoryInputStream sonu silinemiyor" -#: gio/gmemoryoutputstream.c:468 +#: ../gio/gmemoryoutputstream.c:496 msgid "Memory output stream not resizable" msgstr "Hafıza çıktı akışı yeniden boyutlandırılamaz" -#: gio/gmemoryoutputstream.c:484 +#: ../gio/gmemoryoutputstream.c:512 msgid "Failed to resize memory output stream" msgstr "Hafız çıktı açışı yeniden boyutlandırma başarısız oldu" -#: gio/gmemoryoutputstream.c:572 +#: ../gio/gmemoryoutputstream.c:600 +#, fuzzy msgid "" "Amount of memory required to process the write is larger than available " "address space" msgstr "" +"Yazma işlemi için gereken bellek miktarı, mevcut adres uzayından dahabüyük" -#: gio/gmemoryoutputstream.c:728 +#: ../gio/gmemoryoutputstream.c:756 +#, fuzzy msgid "Requested seek before the beginning of the stream" -msgstr "" +msgstr "Akışın başından öncesine denk düşen bir atlama istendi" -#: gio/gmemoryoutputstream.c:737 +#: ../gio/gmemoryoutputstream.c:765 +#, fuzzy msgid "Requested seek beyond the end of the stream" -msgstr "" +msgstr "Akışın sonundan da ötesine denk düşen bir atlama istendi" #. Translators: This is an error #. * message for mount objects that #. * don't implement unmount. -#: gio/gmount.c:364 +#: ../gio/gmount.c:363 #, fuzzy msgid "mount doesn't implement \"unmount\"" -msgstr "mount unmount uygulamıyor" +msgstr "mount nesnesi için \"unmount\" gerçeklenmemiş" #. Translators: This is an error #. * message for mount objects that #. * don't implement eject. -#: gio/gmount.c:443 +#: ../gio/gmount.c:442 #, fuzzy msgid "mount doesn't implement \"eject\"" -msgstr "mount eject uygulamıyor" +msgstr "mount nesnesi için \"eject\" gerçeklenmemiş" #. 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:523 #, fuzzy msgid "mount doesn't implement \"unmount\" or \"unmount_with_operation\"" -msgstr "mount, unmount veya unmount_with_operation uygulamıyor" +msgstr "" +"mount nesnesi için \"unmount\" veya \"unmount_with_operation\" gerçeklenmemiş" #. 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:611 #, fuzzy msgid "mount doesn't implement \"eject\" or \"eject_with_operation\"" -msgstr "mount, eject veya eject_with_operation uygulamıyor" +msgstr "" +"mount nesnesi için \"eject\" veya \"eject_with_operation\" gerçeklenmemiş" #. Translators: This is an error #. * message for mount objects that #. * don't implement remount. -#: gio/gmount.c:699 +#: ../gio/gmount.c:701 #, fuzzy msgid "mount doesn't implement \"remount\"" -msgstr "mount remount uygulamıyor" +msgstr "mount nesnesi için \"remount\" gerçeklenmemiş" #. Translators: This is an error #. * message for mount objects that #. * don't implement content type guessing. -#: gio/gmount.c:783 +#: ../gio/gmount.c:785 msgid "mount doesn't implement content type guessing" msgstr "mount içerik türü tahminini uygulamıyor" #. Translators: This is an error #. * message for mount objects that #. * don't implement content type guessing. -#: gio/gmount.c:872 +#: ../gio/gmount.c:874 msgid "mount doesn't implement synchronous content type guessing" msgstr "mount senkron içerik türü tahminini uygulamıyor" -#: gio/gnetworkaddress.c:295 +#: ../gio/gnetworkaddress.c:318 #, c-format msgid "Hostname '%s' contains '[' but not ']'" msgstr "Makine ismi '%s' içeriyor '[' var ama ']' yok" -#: gio/goutputstream.c:207 gio/goutputstream.c:408 +#: ../gio/goutputstream.c:207 ../gio/goutputstream.c:408 msgid "Output stream doesn't implement write" msgstr "Çıktı akışı write uygulamıyor" -#: gio/goutputstream.c:369 gio/goutputstream.c:845 +#: ../gio/goutputstream.c:369 ../gio/goutputstream.c:849 msgid "Source stream is already closed" msgstr "Kaynak akışı zaten kapalı" -#: gio/gresolver.c:736 +#: ../gio/gresolver.c:738 #, c-format msgid "Error resolving '%s': %s" msgstr "'%s' çözülürken hata: %s" -#: gio/gresolver.c:786 +#: ../gio/gresolver.c:788 #, c-format msgid "Error reverse-resolving '%s': %s" msgstr "'%s' tersine çözülürken hata: %s" -#: gio/gresolver.c:821 gio/gresolver.c:899 +#: ../gio/gresolver.c:823 ../gio/gresolver.c:902 #, c-format msgid "No service record for '%s'" msgstr "'%s' için servis kaydı yok" -#: gio/gresolver.c:826 gio/gresolver.c:904 +#: ../gio/gresolver.c:828 ../gio/gresolver.c:907 #, c-format msgid "Temporarily unable to resolve '%s'" msgstr "Geçici olarak '%s' çözülemiyor" -#: gio/gresolver.c:831 gio/gresolver.c:909 +#: ../gio/gresolver.c:833 ../gio/gresolver.c:912 #, c-format msgid "Error resolving '%s'" msgstr "'%s' çözerken hata" -#: gio/gschema-compile.c:659 -msgid "where to store the gschemas.compiled file" -msgstr "" +#: ../gio/gsettings-tool.c:60 +#, fuzzy, c-format +msgid "Schema '%s' is not relocatable (path must not be specified)\n" +msgstr "'%s' şeması yeniden konumlandırılamaz (yol belirtilmemeli)\n" -#: gio/gschema-compile.c:659 gio/gschema-compile.c:671 -msgid "DIRECTORY" -msgstr "" +#: ../gio/gsettings-tool.c:65 ../gio/gsettings-tool.c:82 +#, fuzzy, c-format +msgid "No such schema '%s'\n" +msgstr "'%s' gibi bir şema yok\n" -#: gio/gschema-compile.c:660 -msgid "Do not write the gschema.compiled file" -msgstr "" +#: ../gio/gsettings-tool.c:77 +#, fuzzy, c-format +msgid "Schema '%s' is relocatable (path must be specified)\n" +msgstr "'%s' şeması konumlandırılabilir (yol mutlaka belirtilmeli)\n" -#: gio/gschema-compile.c:661 +#: ../gio/gsettings-tool.c:92 +#, fuzzy, c-format +msgid "Empty path given.\n" +msgstr "Boş bir yol belirtildi.\n" + +#: ../gio/gsettings-tool.c:98 +#, fuzzy, c-format +msgid "Path must begin with a slash (/)\n" +msgstr "Yol, mutlaka taksim (/) ile başlamalı\n" + +#: ../gio/gsettings-tool.c:104 +#, fuzzy, c-format +msgid "Path must end with a slash (/)\n" +msgstr "Yol, mutlaka bir taksim (/) ile bitmeli\n" + +#: ../gio/gsettings-tool.c:110 +#, fuzzy, c-format +msgid "Path must not contain two adjacent slashes (//)\n" +msgstr "Yol, ardışık olan iki taksim (//) içeremez\n" + +#: ../gio/gsettings-tool.c:131 +#, fuzzy, c-format +msgid "No such key '%s'\n" +msgstr "'%s' gibi bir anahtar yok\n" + +#: ../gio/gsettings-tool.c:493 +#, fuzzy, c-format +msgid "The provided value is outside of the valid range\n" +msgstr "Belirtilen değer geçerli aralığın dışında\n" + +#: ../gio/gsettings-tool.c:503 +#, fuzzy, c-format +#| msgid "failed to get memory" +msgid "Failed to set value\n" +msgstr "ANAHTAR'ın değerini DEĞER'e ata" + +#: ../gio/gsettings-tool.c:529 #, fuzzy -msgid "Do not give error for empty directory" -msgstr "Dizin dizin üzerine taşınamıyor" +msgid "Print help" +msgstr "Yardımı yazdır" -#: gio/gschema-compile.c:662 -msgid "Do not enforce key name restrictions" -msgstr "" +#: ../gio/gsettings-tool.c:535 +#, fuzzy +msgid "List the installed (non-relocatable) schemas" +msgstr "Yükli (yeniden konumlandırılamaz) şemaları listele" -#: gio/gschema-compile.c:674 +#: ../gio/gsettings-tool.c:541 +#, fuzzy +msgid "List the installed relocatable schemas" +msgstr "Yeniden konumlandırılabilir şemaları listele" + +#: ../gio/gsettings-tool.c:547 +#, fuzzy +msgid "List the keys in SCHEMA" +msgstr "ŞEMA içindeki anahtarları listele" + +#: ../gio/gsettings-tool.c:548 ../gio/gsettings-tool.c:554 +#: ../gio/gsettings-tool.c:591 +#, fuzzy +msgid "SCHEMA[:PATH]" +msgstr "ŞEMA[:YOL]" + +#: ../gio/gsettings-tool.c:553 +#, fuzzy +msgid "List the children of SCHEMA" +msgstr "ŞEMA altlarını listele" + +#: ../gio/gsettings-tool.c:559 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." +"List keys and values, recursively\n" +"If no SCHEMA is given, list all keys\n" msgstr "" -#: gio/gschema-compile.c:690 -#, c-format -msgid "You should give exactly one directory name\n" -msgstr "" +#: ../gio/gsettings-tool.c:561 +#, fuzzy +msgid "[SCHEMA[:PATH]]" +msgstr "ŞEMA[:YOL]" -#: gio/gschema-compile.c:729 -#, c-format -msgid "No schema files found\n" -msgstr "" - -#: gio/gsettings-tool.c:41 -#, 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" -" 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 "" - -#: 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 +#: ../gio/gsettings-tool.c:566 +#, fuzzy msgid "Get the value of KEY" +msgstr "ANAHTAR'ın değerini al" + +#: ../gio/gsettings-tool.c:567 ../gio/gsettings-tool.c:573 +#: ../gio/gsettings-tool.c:585 ../gio/gsettings-tool.c:597 +#, fuzzy +msgid "SCHEMA[:PATH] KEY" +msgstr "ŞEMA[:YOL] ANAHTAR" + +#: ../gio/gsettings-tool.c:572 +#, fuzzy +msgid "Query the range of valid values for KEY" +msgstr "ANAHTAR için geçerli değerler aralığını sorgula" + +#: ../gio/gsettings-tool.c:578 +#, fuzzy +msgid "Set the value of KEY to VALUE" +msgstr "ANAHTAR'ın değerini DEĞER'e ata" + +#: ../gio/gsettings-tool.c:579 +#, fuzzy +msgid "SCHEMA[:PATH] KEY VALUE" +msgstr "ŞEMA[:YOL] ANAHTAR DEĞER" + +#: ../gio/gsettings-tool.c:584 +#, fuzzy +msgid "Reset KEY to its default value" +msgstr "ANAHTAR'ı varsayılan değerine döndür" + +#: ../gio/gsettings-tool.c:590 +msgid "Reset all keys in SCHEMA to their defaults" msgstr "" -#: gio/gsettings-tool.c:114 gio/gsettings-tool.c:264 gio/gsettings-tool.c:340 +#: ../gio/gsettings-tool.c:596 +#, fuzzy +msgid "Check if KEY is writable" +msgstr "ANAHTAR'ın yazılabilir olup olmadığını kontrol et" + +#: ../gio/gsettings-tool.c:602 +#, fuzzy msgid "" -"Arguments:\n" -" SCHEMA The id of the schema\n" -" KEY The name of the key\n" +"Monitor KEY for changes.\n" +"If no KEY is specified, monitor all keys in SCHEMA.\n" +"Use ^C to stop monitoring.\n" msgstr "" +"Bir ANAHTAR'daki değişiklikleri gözlemle\n" +"Eğer hiçbir ANAHTAR belirtilmemişse, ŞEMA'daki tüm anahtarları gözlemle.\n" +"Gözlemlemeyi durdurmak için ^C kullanın.\n" -#: gio/gsettings-tool.c:169 -msgid "SCHEMA KEY VALUE" -msgstr "" +#: ../gio/gsettings-tool.c:605 +#, fuzzy +msgid "SCHEMA[:PATH] [KEY]" +msgstr "ŞEMA[:YOL] [ANAHTAR]" -#: gio/gsettings-tool.c:171 -msgid "Set the value of KEY" -msgstr "" - -#: gio/gsettings-tool.c:173 -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:212 +#: ../gio/gsettings-tool.c:609 #, fuzzy, c-format -msgid "Key %s is not writable\n" -msgstr "Tür %s sınıflandırılmış değil" - -#: gio/gsettings-tool.c:262 -msgid "Find out whether KEY is writable" -msgstr "" - -#: gio/gsettings-tool.c:336 msgid "" -"Monitor KEY for changes and print the changed values.\n" -"Monitoring will continue until the process is terminated." +"Unknown command %s\n" +"\n" +msgstr "" +"Bilinmeyen komut %s\n" +"\n" + +#: ../gio/gsettings-tool.c:617 +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" +" reset-recursively Reset all values in a given schema\n" +" writable Check if a key is writable\n" +" monitor Watch for changes\n" +"\n" +"Use 'gsettings help COMMAND' to get detailed help.\n" +"\n" msgstr "" -#: gio/gsettings-tool.c:399 +#: ../gio/gsettings-tool.c:639 #, fuzzy, c-format -msgid "Unknown command '%s'\n" -msgstr "Bilinmeyen seçenek %s" +msgid "" +"Usage:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" +msgstr "" +"Kullanım:\n" +" gsettings %s %s\n" +"\n" +"%s\n" +"\n" -#: gio/gsocket.c:275 +#: ../gio/gsettings-tool.c:644 +#, fuzzy +msgid "Arguments:\n" +msgstr "Argümanlar:\n" + +#: ../gio/gsettings-tool.c:648 +#, fuzzy +msgid " COMMAND The (optional) command to explain\n" +msgstr " KOMUT Açıklanacak (isteğe bağlı) komut\n" + +#: ../gio/gsettings-tool.c:652 +#, fuzzy +msgid "" +" SCHEMA The name of the schema\n" +" PATH The path, for relocatable schemas\n" +msgstr "" +" ŞEMA Şemanın adı\n" +" YOL Yol, yeniden konumlandırılabilir şemalar için\n" + +#: ../gio/gsettings-tool.c:657 +#, fuzzy +msgid " KEY The (optional) key within the schema\n" +msgstr " ANAHTAR Şema içinde (isteğe bağlı) anahtar\n" + +#: ../gio/gsettings-tool.c:661 +#, fuzzy +msgid " KEY The key within the schema\n" +msgstr " ANAHTAR Şema içindeki anahtar\n" + +#: ../gio/gsettings-tool.c:665 +#, fuzzy +msgid " VALUE The value to set\n" +msgstr " DEĞER Atanacak değer\n" + +#: ../gio/gsettings-tool.c:757 +#, fuzzy, c-format +msgid "Empty schema name given\n" +msgstr "Boş şema adı verildi" + +#: ../gio/gsocket.c:277 msgid "Invalid socket, not initialized" msgstr "Geçersiz soket, başlatılmamış" -#: gio/gsocket.c:282 +#: ../gio/gsocket.c:284 #, c-format msgid "Invalid socket, initialization failed due to: %s" msgstr "Geçersiz soket, başlatma başarısız oldu: %s" -#: gio/gsocket.c:290 +#: ../gio/gsocket.c:292 msgid "Socket is already closed" msgstr "Soket zaten kapalı" -#: gio/gsocket.c:298 gio/gsocket.c:2609 gio/gsocket.c:2653 +#: ../gio/gsocket.c:300 ../gio/gsocket.c:2774 ../gio/gsocket.c:2818 +#, fuzzy msgid "Socket I/O timed out" -msgstr "" +msgstr "Soket Girdi/Çıktı zaman aşımı" -#: gio/gsocket.c:420 +#: ../gio/gsocket.c:443 #, c-format msgid "creating GSocket from fd: %s" msgstr "fd'den GSocket oluşturuluyor: %s" -#: gio/gsocket.c:454 gio/gsocket.c:468 gio/gsocket.c:2020 +#: ../gio/gsocket.c:477 ../gio/gsocket.c:493 ../gio/gsocket.c:2140 #, c-format msgid "Unable to create socket: %s" msgstr "Soket oluşturulamadı: %s" -#: gio/gsocket.c:454 +#: ../gio/gsocket.c:477 msgid "Unknown protocol was specified" msgstr "Bilinmeyen protokol belirtildi" -#: gio/gsocket.c:1218 +#: ../gio/gsocket.c:1247 #, c-format msgid "could not get local address: %s" msgstr "yerel adres alınamadı: %s" -#: gio/gsocket.c:1251 +#: ../gio/gsocket.c:1290 #, c-format msgid "could not get remote address: %s" msgstr "uzaktaki adres alınamadı: %s" -#: gio/gsocket.c:1309 +#: ../gio/gsocket.c:1351 #, c-format msgid "could not listen: %s" msgstr "dinlenemedi: %s" -#: gio/gsocket.c:1383 +#: ../gio/gsocket.c:1425 #, c-format msgid "Error binding to address: %s" msgstr "Adrese bağlarken hata: %s" -#: gio/gsocket.c:1503 +#: ../gio/gsocket.c:1545 #, c-format msgid "Error accepting connection: %s" msgstr "Bağlantı kabul edilirken hata: %s" -#: gio/gsocket.c:1616 +#: ../gio/gsocket.c:1662 msgid "Error connecting: " msgstr "Bağlarken hata:" -#: gio/gsocket.c:1620 +#: ../gio/gsocket.c:1667 msgid "Connection in progress" msgstr "Bağlantı devam ediyor" -#: gio/gsocket.c:1625 +#: ../gio/gsocket.c:1674 #, c-format msgid "Error connecting: %s" msgstr "Bağlarken hata: %s" -#: gio/gsocket.c:1668 +#: ../gio/gsocket.c:1717 ../gio/gsocket.c:3534 #, c-format msgid "Unable to get pending error: %s" msgstr "Bekleyen hata alınamıyor: %s" -#: gio/gsocket.c:1764 +#: ../gio/gsocket.c:1852 #, c-format msgid "Error receiving data: %s" msgstr "Veri alırken hata: %s" -#: gio/gsocket.c:1907 +#: ../gio/gsocket.c:2027 #, c-format msgid "Error sending data: %s" msgstr "Veri gönderirken hata: %s" -#: gio/gsocket.c:2099 +#: ../gio/gsocket.c:2219 #, c-format msgid "Error closing socket: %s" msgstr "Soket kapatılırken hata: %s" -#: gio/gsocket.c:2602 +#: ../gio/gsocket.c:2767 #, c-format msgid "Waiting for socket condition: %s" msgstr "Soket durumu bekleniyor: %s" -#: gio/gsocket.c:2884 +#: ../gio/gsocket.c:3057 msgid "GSocketControlMessage not supported on windows" msgstr "GSocketControlMessage windows'ta desteklenmiyor" -#: gio/gsocket.c:3143 gio/gsocket.c:3284 +#: ../gio/gsocket.c:3318 ../gio/gsocket.c:3454 #, c-format msgid "Error receiving message: %s" msgstr "Mesaj alma hatası: %s" -#: gio/gsocketclient.c:521 gio/gsocketclient.c:770 +#: ../gio/gsocket.c:3549 +#, fuzzy +msgid "g_socket_get_credentials not implemented for this OS" +msgstr "bu işletim sistemi için g_socket_get_credentials gerçeklenmedi" + +#: ../gio/gsocketclient.c:798 ../gio/gsocketclient.c:1368 msgid "Unknown error on connect" msgstr "Bağlanırken bilinmeyen bir hata" -#: gio/gsocketlistener.c:192 +#: ../gio/gsocketclient.c:836 ../gio/gsocketclient.c:1252 +#, fuzzy +msgid "Trying to proxy over non-TCP connection is not supported." +msgstr "TCP olmayan bağlantılar üzerinden vekillik desteklenmiyor." + +#: ../gio/gsocketclient.c:858 ../gio/gsocketclient.c:1277 +#, fuzzy, c-format +msgid "Proxy protocol '%s' is not supported." +msgstr "'%s' vekil protokolü desteklenmiyor" + +#: ../gio/gsocketlistener.c:191 msgid "Listener is already closed" msgstr "Dinleyici zaten kapalı" -#: gio/gsocketlistener.c:233 +#: ../gio/gsocketlistener.c:232 msgid "Added socket is closed" msgstr "Eklenen soket kapalı" -#: gio/gthemedicon.c:499 +#: ../gio/gsocks4aproxy.c:121 +#, fuzzy, c-format +msgid "SOCKSv4 does not support IPv6 address '%s'" +msgstr "SOCKSv4, '%s' IPv6 adresini desteklemiyor" + +#: ../gio/gsocks4aproxy.c:139 +#, fuzzy, c-format +msgid "SOCKSv4 implementation limits username to %i characters" +msgstr "SOCKSv4 gerçeklemesi, kullanıcı adını %i karakterle sınırlandırıyor" + +#: ../gio/gsocks4aproxy.c:157 +#, fuzzy, c-format +msgid "SOCKSv4a implementation limits hostname to %i characters" +msgstr "SOCKSv4 gerçeklemesi, makine adını %i karakterle sınırlandırıyor" + +#: ../gio/gsocks4aproxy.c:183 +#, fuzzy +msgid "The server is not a SOCKSv4 proxy server." +msgstr "Bu sunucu bir SOCKSv4 vekil sunucusu değil." + +#: ../gio/gsocks4aproxy.c:190 +#, fuzzy +msgid "Connection through SOCKSv4 server was rejected" +msgstr "SOCKSv4 sunucusu ile bağlantı, reddedildi" + +#: ../gio/gsocks5proxy.c:155 ../gio/gsocks5proxy.c:328 +#: ../gio/gsocks5proxy.c:338 +#, fuzzy +msgid "The server is not a SOCKSv5 proxy server." +msgstr "Sunucu, bir SOCKSv5 vekil sunucusu değil." + +#: ../gio/gsocks5proxy.c:169 +#, fuzzy +msgid "The SOCKSv5 proxy requires authentication." +msgstr "SOCKSv5 vekil sunucusu kimlik doğrulatma gerektiriyor." + +#: ../gio/gsocks5proxy.c:179 +#, fuzzy +msgid "" +"The SOCKSv5 proxy requires an authentication method that is not supported by " +"GLib." +msgstr "" +"SOCKSv5 vekil sunucusu, Glib tarafından desteklenmeyen bir kimlik doğrulama " +"yöntemini gereksiniyor." + +#: ../gio/gsocks5proxy.c:208 +#, fuzzy, c-format +msgid "Username or password is too long for SOCKSv5 protocol (max. is %i)." +msgstr "Kullanıcı adı veya parola SOCKSv5 protokolü için çok uzun (azami %i)." + +#: ../gio/gsocks5proxy.c:239 +#, fuzzy +msgid "SOCKSv5 authentication failed due to wrong username or password." +msgstr "" +"Yanlış kullanıcı adı veya paroladan dolayı SOCKSv5 kimlik doğrulatma " +"başarısız oldu." + +#: ../gio/gsocks5proxy.c:289 +#, fuzzy, c-format +msgid "Hostname '%s' too long for SOCKSv5 protocol (maximum is %i bytes)" +msgstr "'%s' makine adı SOCKSv5 protokolü için çok uzun (azami %i bayt)" + +#: ../gio/gsocks5proxy.c:352 +#, fuzzy +msgid "The SOCKSv5 proxy server uses unkown address type." +msgstr "SOCKSv5 vekil sunucusu, bilinmeyen bir adres türü kullanıyor." + +#: ../gio/gsocks5proxy.c:359 +#, fuzzy +msgid "Internal SOCKSv5 proxy server error." +msgstr "İçsel SOCKSv5 vekil sunucu hatası." + +#: ../gio/gsocks5proxy.c:365 +#, fuzzy +msgid "SOCKSv5 connection not allowed by ruleset." +msgstr "Kural kümesi tarafından, SOCKSv5 bağlantısına izin verilmiyor." + +#: ../gio/gsocks5proxy.c:372 +#, fuzzy +msgid "Host unreachable through SOCKSv5 server." +msgstr "SOCKSv5 sunucusu ile makineye erişim sağlanamıyor." + +#: ../gio/gsocks5proxy.c:378 +#, fuzzy +msgid "Network unreachable through SOCKSv5 proxy." +msgstr "SOCKSv5 vekili ile ağa erişilemiyor" + +#: ../gio/gsocks5proxy.c:384 +#, fuzzy +msgid "Connection refused through SOCKSv5 proxy." +msgstr "SOCKSv5 ile bağlantı reddedildi." + +#: ../gio/gsocks5proxy.c:390 +#, fuzzy +msgid "SOCKSv5 proxy does not support 'connect' command." +msgstr "SOCKSv5 vekili, 'connect' komutunu desteklemiyor." + +#: ../gio/gsocks5proxy.c:396 +#, fuzzy +msgid "SOCKSv5 proxy does not support provided address type." +msgstr "Sağlanan adres türü SOCKSv5 vekili tarafından desteklenmiyor." + +#: ../gio/gsocks5proxy.c:402 +#, fuzzy +msgid "Unknown SOCKSv5 proxy error." +msgstr "Bilinmeyen SOCKSv5 vekil hatası." + +#: ../gio/gthemedicon.c:498 #, c-format msgid "Can't handle version %d of GThemedIcon encoding" msgstr "GThemedIcon kodlaması %d sürümü işlenemiyor" -#: gio/gunixconnection.c:165 gio/gunixconnection.c:502 +#: ../gio/gtlscertificate.c:228 +#, fuzzy +msgid "No PEM-encoded certificate found" +msgstr "Hiç PEM-encoded sertifika bulunamadı" + +#: ../gio/gtlscertificate.c:237 +#, fuzzy +msgid "Could not parse PEM-encoded certificate" +msgstr "PEM-encoded sertifika ayrıştırılamadı" + +#: ../gio/gtlscertificate.c:258 +#, fuzzy +msgid "Could not parse PEM-encoded private key" +msgstr "PEM-encoded özel anahtar ayrıştırılamadı" + +#: ../gio/gunixconnection.c:164 ../gio/gunixconnection.c:506 #, c-format msgid "Expecting 1 control message, got %d" msgstr "1 kontrol mesajı bekleniyor, %d alındı" -#: gio/gunixconnection.c:178 gio/gunixconnection.c:512 +#: ../gio/gunixconnection.c:177 ../gio/gunixconnection.c:516 msgid "Unexpected type of ancillary data" msgstr "Yardımcı veri'nin beklenmeyen türü" -#: gio/gunixconnection.c:196 +#: ../gio/gunixconnection.c:195 #, c-format msgid "Expecting one fd, but got %d\n" msgstr "Bir fd bekleniyordu, ancak %d alındı\n" -#: gio/gunixconnection.c:212 +#: ../gio/gunixconnection.c:211 msgid "Received invalid fd" msgstr "Geçersiz fd alındı" -#: gio/gunixconnection.c:359 +#: ../gio/gunixconnection.c:359 #, fuzzy msgid "Error sending credentials: " -msgstr "Veri gönderirken hata: %s" +msgstr "Kimlik bilgisi göndermede hata:" -#: gio/gunixconnection.c:436 -#, c-format +#: ../gio/gunixconnection.c:439 +#, fuzzy, c-format msgid "Error checking if SO_PASSCRED is enabled for socket: %s" -msgstr "" +msgstr "Soket için SO_PASSCRED'in etkin olup olmadığını kontrol hatası: %s" -#: gio/gunixconnection.c:445 -#, c-format +#: ../gio/gunixconnection.c:448 +#, fuzzy, c-format msgid "" "Unexpected option length while checking if SO_PASSCRED is enabled for " "socket. Expected %d bytes, got %d" msgstr "" +"SO_PASSCRED'in soket için etkin olup olmadığı kontrol edilirken beklenmeyen " +"seçenek uzunluğu. %d bayt bekleniyordu, fakat %d bayt bulundu." -#: gio/gunixconnection.c:462 +#: ../gio/gunixconnection.c:465 #, fuzzy, c-format msgid "Error enabling SO_PASSCRED: %s" -msgstr "Dosya yeniden adlandırılırken hata: %s" +msgstr "SO_PASSCRED etkinleştirmede hata: %s" -#: gio/gunixconnection.c:492 +#: ../gio/gunixconnection.c:496 +#, fuzzy msgid "" "Expecting to read a single byte for receiving credentials but read zero bytes" msgstr "" +"Kimlik bilgileri almak için bir bayt okunması bekleniyordu, sıfır bayt okundu" -#: gio/gunixconnection.c:535 -#, c-format +#: ../gio/gunixconnection.c:539 +#, fuzzy, c-format msgid "Error while disabling SO_PASSCRED: %s" -msgstr "" +msgstr "SO_PASSCRED devre dışı bırakılırken hata: %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 "Unix'den okurken hata: %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 "Unix kapatılırken hata: %s" -#: gio/gunixmounts.c:1846 gio/gunixmounts.c:1883 +#: ../gio/gunixmounts.c:1848 ../gio/gunixmounts.c:1885 msgid "Filesystem root" msgstr "Dosya sistemi kök dizini" -#: 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 "Unix'e yazılırken hata: %s" -#: gio/gunixsocketaddress.c:245 +#: ../gio/gunixsocketaddress.c:244 msgid "Abstract unix domain socket addresses not supported on this system" msgstr "Soyut unix soket adresleri bu sistemde desteklenmiyor" -#: gio/gvolume.c:407 +#: ../gio/gvolume.c:408 msgid "volume doesn't implement eject" msgstr "volume eject uygulamıyor" #. 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:488 msgid "volume doesn't implement eject or eject_with_operation" msgstr "sistem, eject ya da eject_with_operation uygulamıyor" -#: gio/gwin32appinfo.c:277 +#: ../gio/gwin32appinfo.c:276 msgid "Can't find application" msgstr "Uygulama bulunamıyor" -#: gio/gwin32appinfo.c:300 +#: ../gio/gwin32appinfo.c:299 #, c-format msgid "Error launching application: %s" msgstr "Uygulama başlatılırken hata: %s" -#: gio/gwin32appinfo.c:336 +#: ../gio/gwin32appinfo.c:335 msgid "URIs not supported" msgstr "URI'ler desteklenmiyor" -#: gio/gwin32appinfo.c:358 +#: ../gio/gwin32appinfo.c:357 msgid "association changes not supported on win32" msgstr "eşleştirme değişimleri win32 üzerinde desteklenmiyor" -#: gio/gwin32appinfo.c:370 +#: ../gio/gwin32appinfo.c:369 msgid "Association creation not supported on win32" msgstr "Eşleştirme oluşturulması win32 üzerinde desteklenmiyor" -#: gio/gwin32inputstream.c:319 +#: ../gio/gwin32inputstream.c:318 #, fuzzy, c-format msgid "Error reading from handle: %s" -msgstr "Dosyadan okunurken hata: %s" +msgstr "Tutamaçtan okumada hata: %s" -#: gio/gwin32inputstream.c:349 gio/gwin32outputstream.c:349 +#: ../gio/gwin32inputstream.c:348 ../gio/gwin32outputstream.c:348 #, fuzzy, c-format msgid "Error closing handle: %s" -msgstr "Dosya kapatılırken hata: %s" +msgstr "Tutamacı kapatmada hata: %s" -#: gio/gwin32outputstream.c:319 +#: ../gio/gwin32outputstream.c:318 #, fuzzy, c-format msgid "Error writing to handle: %s" -msgstr "Dosyaya yazılırken hata: %s" +msgstr "Tutamaca yazmada hata: %s" -#: gio/gzlibcompressor.c:279 gio/gzlibdecompressor.c:250 -#, fuzzy +#: ../gio/gzlibcompressor.c:396 ../gio/gzlibdecompressor.c:349 msgid "Not enough memory" -msgstr "yetersiz bellek" +msgstr "Yeterli bellek yok" -#: gio/gzlibcompressor.c:286 gio/gzlibdecompressor.c:257 -#, fuzzy, c-format +#: ../gio/gzlibcompressor.c:403 ../gio/gzlibdecompressor.c:356 +#, c-format msgid "Internal error: %s" -msgstr "dahili hata" +msgstr "İç hata: %s" -#: gio/gzlibcompressor.c:299 gio/gzlibdecompressor.c:271 +#: ../gio/gzlibcompressor.c:416 ../gio/gzlibdecompressor.c:370 msgid "Need more input" -msgstr "" +msgstr "Daha fazla girdi gerekli" -#: gio/gzlibdecompressor.c:243 -#, fuzzy +#: ../gio/gzlibdecompressor.c:342 msgid "Invalid compressed data" -msgstr "Geçersiz makine adı" +msgstr "Geçersiz sıkıştırılmış veri" + +#, fuzzy +#~ msgid "Do not give error for empty directory" +#~ msgstr "Dizin dizin üzerine taşınamıyor" + +#, fuzzy +#~ msgid "Key %s is not writable\n" +#~ msgstr "Tür %s sınıflandırılmış değil" #, fuzzy #~ msgid "Invalid UTF-8 sequence in input"