chiark / gitweb /
localectl: fix localectl set-x11-keymap syntax description
[elogind.git] / src / login / loginctl.c
index 914f3169989551dd8c54de0ef6537b2efca7b6fd..fcdf6275e9cd6fef21cabaece41053fc452eebe9 100644 (file)
@@ -271,6 +271,7 @@ typedef struct SessionStatusInfo {
         const char *class;
         const char *state;
         const char *scope;
+        const char *desktop;
 } SessionStatusInfo;
 
 typedef struct UserStatusInfo {
@@ -363,6 +364,7 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
                 { "RemoteHost", "s", NULL, offsetof(SessionStatusInfo, remote_host) },
                 { "RemoteUser", "s", NULL, offsetof(SessionStatusInfo, remote_user) },
                 { "Service",    "s", NULL, offsetof(SessionStatusInfo, service) },
+                { "Desktop",    "s", NULL, offsetof(SessionStatusInfo, desktop) },
                 { "Type",       "s", NULL, offsetof(SessionStatusInfo, type) },
                 { "Class",      "s", NULL, offsetof(SessionStatusInfo, class) },
                 { "Scope",      "s", NULL, offsetof(SessionStatusInfo, scope) },
@@ -453,13 +455,18 @@ static int print_session_status_info(sd_bus *bus, const char *path, bool *new_li
 
                 printf("\n");
         } else if (i.type) {
-                printf("\t    Type: %s\n", i.type);
+                printf("\t    Type: %s", i.type);
 
                 if (i.class)
                         printf("; class %s", i.class);
+
+                printf("\n");
         } else if (i.class)
                 printf("\t   Class: %s\n", i.class);
 
+        if (!isempty(i.desktop))
+                printf("\t Desktop: %s\n", i.desktop);
+
         if (i.state)
                 printf("\t   State: %s\n", i.state);
 
@@ -1040,8 +1047,7 @@ static int terminate_seat(sd_bus *bus, char **args, unsigned n) {
         return 0;
 }
 
-static int help(void) {
-
+static void help(void) {
         printf("%s [OPTIONS...] {COMMAND} ...\n\n"
                "Send control commands to or query the login manager.\n\n"
                "  -h --help              Show this help\n"
@@ -1079,10 +1085,8 @@ static int help(void) {
                "  show-seat NAME...        Show properties of one or more seats\n"
                "  attach NAME DEVICE...    Attach one or more devices to a seat\n"
                "  flush-devices            Flush all device associations\n"
-               "  terminate-seat NAME...   Terminate all sessions on one or more seats\n",
-               program_invocation_short_name);
-
-        return 0;
+               "  terminate-seat NAME...   Terminate all sessions on one or more seats\n"
+               , program_invocation_short_name);
 }
 
 static int parse_argv(int argc, char *argv[]) {
@@ -1116,12 +1120,13 @@ static int parse_argv(int argc, char *argv[]) {
         assert(argc >= 0);
         assert(argv);
 
-        while ((c = getopt_long(argc, argv, "hp:als:H:M:", options, NULL)) >= 0) {
+        while ((c = getopt_long(argc, argv, "hp:als:H:M:", options, NULL)) >= 0)
 
                 switch (c) {
 
                 case 'h':
-                        return help();
+                        help();
+                        return 0;
 
                 case ARG_VERSION:
                         puts(PACKAGE_STRING);
@@ -1188,7 +1193,6 @@ static int parse_argv(int argc, char *argv[]) {
                 default:
                         assert_not_reached("Unhandled option");
                 }
-        }
 
         return 1;
 }
@@ -1291,7 +1295,7 @@ static int loginctl_main(sd_bus *bus, int argc, char *argv[]) {
 }
 
 int main(int argc, char *argv[]) {
-        _cleanup_bus_unref_ sd_bus *bus = NULL;
+        _cleanup_bus_close_unref_ sd_bus *bus = NULL;
         int r;
 
         setlocale(LC_ALL, "");