Ask again

This commit is contained in:
Matthias Clasen 2013-05-30 19:28:18 -04:00
parent 08be57d7a9
commit 2095905691
2 changed files with 99 additions and 1 deletions

View File

@ -0,0 +1,91 @@
From 9c19d7fedadf38cc4fec21efdb3908572448f658 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Thu, 30 May 2013 19:21:11 -0400
Subject: [PATCH] Make the 'Don't ask again' checkbox work properly
We used to remove the user-dirs.locale file when this is checked,
but that prevents xdg-user-dirs-gtk-update from ever running again.
Instead, update it with the current locale. This has the effect
of keeping xdg-user-dirs-gtk-update from running until the locale
changes again, which is probably closer to the intended effect.
https://bugzilla.redhat.com/show_bug.cgi?id=968955
---
update.c | 40 +++++++++++++++++++++++++++++++---------
1 file changed, 31 insertions(+), 9 deletions(-)
diff --git a/update.c b/update.c
index 4697913..8710c79 100644
--- a/update.c
+++ b/update.c
@@ -48,12 +48,40 @@ has_xdg_translation (void)
if (strncmp (locale, "en_US", 5) == 0 ||
strcmp (locale, "C") == 0)
return TRUE;
-
+
str = "Desktop";
return dgettext ("xdg-user-dirs", str) != str;
}
static void
+save_locale (void)
+{
+ FILE *file;
+ char *user_locale_file;
+ char *locale, *dot;
+
+ user_locale_file = g_build_filename (g_get_user_config_dir (),
+ "user-dirs.locale", NULL);
+ file = fopen (user_locale_file, "w");
+ g_free (user_locale_file);
+
+ if (file == NULL)
+ {
+ fprintf (stderr, "Can't save user-dirs.locale\n");
+ return;
+ }
+
+ locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ /* Skip encoding part */
+ dot = strchr (locale, '.');
+ if (dot)
+ *dot = 0;
+ fprintf (file, "%s", locale);
+ g_free (locale);
+ fclose (file);
+}
+
+static void
update_locale (XdgDirEntry *old_entries)
{
XdgDirEntry *new_entries, *entry;
@@ -91,10 +119,9 @@ update_locale (XdgDirEntry *old_entries)
g_free (std_out);
g_free (std_err);
g_free (cmdline);
-
if (!WIFEXITED(exit_status) || WEXITSTATUS(exit_status) != 0)
return;
-
+
new_entries = parse_xdg_dirs (filename);
g_unlink (filename);
g_free (filename);
@@ -254,12 +281,7 @@ update_locale (XdgDirEntry *old_entries)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check)))
{
- char *file;
-
- file = g_build_filename (g_get_user_config_dir (),
- "user-dirs.locale", NULL);
- g_unlink (file);
- g_free (file);
+ save_locale ();
}
g_free (new_entries);
--
1.8.2.1

View File

@ -1,6 +1,6 @@
Name: xdg-user-dirs-gtk
Version: 0.10
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Gnome integration of special directories
Group: User Interface/Desktops
@ -8,6 +8,8 @@ License: GPL+
URL: http://freedesktop.org/wiki/Software/xdg-user-dirs
Source0: http://download.gnome.org/sources/xdg-user-dirs-gtk/%{version}/%{name}-%{version}.tar.xz
# upstream fix
Patch0: 0001-Make-the-Don-t-ask-again-checkbox-work-properly.patch
BuildRequires: desktop-file-utils
BuildRequires: gettext
BuildRequires: gtk3-devel
@ -23,6 +25,7 @@ locale changes.
%prep
%setup -q
%patch0 -p1
%build
%configure
@ -42,7 +45,11 @@ desktop-file-validate $RPM_BUILD_ROOT%{_sysconfdir}/xdg/autostart/user-dirs-upda
%{_bindir}/*
%config(noreplace) %{_sysconfdir}/xdg/autostart/user-dirs-update-gtk.desktop
%changelog
* Thu May 30 2013 Matthias Clasen <mclasen@redhat.com> - 0.10-2
- Make 'Don't ask again' checkbox work properly (#968955)
* Wed Feb 06 2013 Kalev Lember <kalevlember@gmail.com> - 0.10-1
- Update to 0.10