From 9631736c86733243e55b82b6e3f0ce2bc8489d8c Mon Sep 17 00:00:00 2001 From: Conor Curran Date: Thu, 25 Aug 2011 18:52:42 +0100 Subject: fix the min users bug plus guest label utf8 issue --- src/session-service.c | 2 +- src/user-menu-mgr.c | 48 +++++++++++++++++++++++------------------------- src/users-service-dbus.h | 2 +- 3 files changed, 25 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/session-service.c b/src/session-service.c index 753e304..e16832c 100644 --- a/src/session-service.c +++ b/src/session-service.c @@ -97,7 +97,7 @@ main (int argc, char ** argv) /* Setting up i18n and gettext. Apparently, we need all of these. */ - setlocale (LC_ALL, ""); + setlocale (LC_ALL, "C"); bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); textdomain (GETTEXT_PACKAGE); diff --git a/src/user-menu-mgr.c b/src/user-menu-mgr.c index 64b29c5..1b404d3 100644 --- a/src/user-menu-mgr.c +++ b/src/user-menu-mgr.c @@ -188,17 +188,29 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) for (u = users; u != NULL; u = g_list_next (u)) { user = u->data; - g_debug ("%p: %s", user, user->real_name); + //g_debug ("%p: %s", user, user->real_name); user->service = self->users_dbus_interface; - + gboolean current_user = g_strcmp0 (user->user_name, g_get_user_name()) == 0; + if (current_user == TRUE){ + if (check_guest_session()){ + g_debug ("about to set the users real name to %s for user %s", + user->real_name, user->user_name); + session_dbus_set_users_real_name (self->session_dbus_interface, user->real_name); + } + else{ + g_debug ("about to set the users real name to GUEST"); + session_dbus_set_users_real_name (self->session_dbus_interface, + _("Guest")); + } + } + + if (g_strcmp0(user->user_name, "guest") == 0) { /* Check to see if the guest has sessions and so therefore should get a check mark. */ - if (user->sessions != NULL) { - dbusmenu_menuitem_property_set_bool (guest_mi, - USER_ITEM_PROP_LOGGED_IN, - TRUE); - } + dbusmenu_menuitem_property_set_bool (guest_mi, + USER_ITEM_PROP_LOGGED_IN, + user->sessions != NULL); /* If we're showing user accounts, keep going through the list */ if (self->user_count > MINIMUM_USERS && self->user_count < MAXIMUM_USERS) { continue; @@ -217,7 +229,7 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, conflictedname); g_free(conflictedname); } else { - g_debug ("%p: %s", user, user->real_name); + //g_debug ("%p: %s", user, user->real_name); dbusmenu_menuitem_property_set (mi, USER_ITEM_PROP_NAME, user->real_name); @@ -238,28 +250,14 @@ user_menu_mgr_rebuild_items (UserMenuMgr *self, gboolean greeter_mode) USER_ITEM_ICON_DEFAULT); } - gboolean logged_in = g_strcmp0 (user->user_name, g_get_user_name()) == 0; - g_debug ("user name = %s and g user name = %s", + /*g_debug ("user name = %s and g user name = %s", user->user_name, - g_get_user_name()); + g_get_user_name());*/ dbusmenu_menuitem_property_set_bool (mi, USER_ITEM_PROP_IS_CURRENT_USER, - logged_in); - if (logged_in == TRUE){ - if (check_guest_session()){ - g_debug ("about to set the users real name to %s for user %s", - user->real_name, user->user_name); - session_dbus_set_users_real_name (self->session_dbus_interface, user->real_name); - } - else{ - g_debug ("about to set the users real name to GUEST"); - session_dbus_set_users_real_name (self->session_dbus_interface, - _("Guest")); - } - } - + current_user); dbusmenu_menuitem_child_append (self->root_item, mi); g_signal_connect (G_OBJECT (mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, diff --git a/src/users-service-dbus.h b/src/users-service-dbus.h index c3f0171..4dbf2a4 100644 --- a/src/users-service-dbus.h +++ b/src/users-service-dbus.h @@ -57,7 +57,7 @@ struct _UserData /* XXX - MAXIMUM_USERS should be set to 7 once we've * got some gdm issues worked out. */ -#define MINIMUM_USERS 1 +#define MINIMUM_USERS 0 #define MAXIMUM_USERS 7 struct _UsersServiceDbus { -- cgit v1.2.3 From 24faed74de6b156999ba0c444e60c52d84d84030 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 25 Aug 2011 13:42:14 -0500 Subject: Change the function to assume nothing about the parameters and always allocate a string --- src/udev-mgr.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/udev-mgr.c b/src/udev-mgr.c index cf148e2..edc2262 100644 --- a/src/udev-mgr.c +++ b/src/udev-mgr.c @@ -50,8 +50,9 @@ static void debug_device (UdevMgr* self, UdevMgrDeviceAction action); static gchar* format_device_name (UdevMgr* self, - gchar* brand, - gchar* type); + const gchar* brand, + const gchar* generic, + const gchar* branded) G_GNUC_WARN_UNUSED_RESULT; struct _UdevMgr { GObject parent_instance; @@ -247,11 +248,11 @@ udev_mgr_handle_webcam (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ + gchar * label = format_device_name(self, manufacturer, _("Webcam"), _("%s Webcam")); dbusmenu_menuitem_property_set (self->webcam_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Webcam")); + label); + g_free(label); } g_hash_table_insert (self->webcams_present, @@ -322,11 +323,11 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ + gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Scanner")); + label); + g_free(label); } gchar* random_scanner_name = g_strdup_printf("%p--scanner", self); @@ -387,11 +388,11 @@ static void udev_mgr_handle_scsi_device (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ + gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Scanner")); + label); + g_free(label); } g_hash_table_insert (self->scanners_present, g_strdup(vendor), @@ -453,12 +454,11 @@ udev_mgr_check_if_usb_device_is_supported (UdevMgr* self, manufacturer = g_udev_device_get_property (device, "ID_VENDOR"); if (manufacturer != NULL){ - + gchar * label = format_device_name(self, manufacturer, _("Scanner"), _("%s Scanner")); dbusmenu_menuitem_property_set (self->scanner_item, DBUSMENU_MENUITEM_PROP_LABEL, - format_device_name (self, - g_strdup(manufacturer), - "Scanner")); + label); + g_free(label); } g_hash_table_insert (self->scanners_present, @@ -513,24 +513,25 @@ UdevMgr* udev_mgr_new (DbusmenuMenuitem* scanner, } static gchar* format_device_name (UdevMgr* self, - gchar* brand, - gchar* type) + const gchar* brand, + const gchar* generic, + const gchar* branded) { // We don't want to accommodate long names if (strlen(brand) > 7) - return type; + return g_strdup(generic); gint i = 0; // If it contains something other than an alphabetic entry ignore it. for(i = 0; i < sizeof(brand); i++){ if ( !g_ascii_isalpha (brand[i]) ) - return type; + return g_strdup(generic); } gchar* lowered = g_ascii_strdown (brand, -1); lowered[0] = g_ascii_toupper (lowered[0]); - gchar* label = g_strdup_printf(_("%s %s"), lowered, type); + gchar* label = g_strdup_printf(branded, lowered); g_free (lowered); return label; } -- cgit v1.2.3