]> git.sur5r.net Git - i3/i3/commitdiff
IPC: set ws reply "num" member to -1 when named
authorTony Crisci <tony@dubstepdish.com>
Mon, 22 Sep 2014 05:09:25 +0000 (01:09 -0400)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 29 Sep 2014 07:33:02 +0000 (09:33 +0200)
When a named workspace (i.e., a workspace that has a name that does not
begin with text that can be parsed as an integer greater than or equal
to zero) is represented by the ipc as a workspace json object such as
can be queried with `i3-msg -t get_workspaces`, set the num property to
-1 instead of json null.

This is for convenience of ipc consumers using type-constrained
languages such as C which have difficulty cleanly expressing nullable
integers.

fixes #1368

docs/ipc
src/ipc.c
testcases/t/139-ws-numbers.t

index f0829dc2a9e05ec4f1f90f3f65d7de647832a241..ce38a546e2687e4c483446da3142dacec2aaad80 100644 (file)
--- a/docs/ipc
+++ b/docs/ipc
@@ -156,7 +156,7 @@ following properties:
 
 num (integer)::
        The logical number of the workspace. Corresponds to the command
-       to switch to this workspace.
+       to switch to this workspace. For named workspaces, this will be -1.
 name (string)::
        The name of this workspace (by default num+1), as changed by the
        user. Encoded in UTF-8.
index 03b3d5ad8e2c71323eff1193a958520c42d28627..6dab654c06c8c1e2653172ea1bfae40fcd874b50 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -617,10 +617,7 @@ IPC_HANDLER(get_workspaces) {
             y(map_open);
 
             ystr("num");
-            if (ws->num == -1)
-                y(null);
-            else
-                y(integer, ws->num);
+            y(integer, ws->num);
 
             ystr("name");
             ystr(ws->name);
index 6829a1478cc078d643fc5fe450e8b569b6795383..f76ee04bf8e6006adb42dc182db7bc4898002299 100644 (file)
@@ -24,7 +24,7 @@ sub check_order {
     my ($msg) = @_;
 
     my @ws = @{$i3->get_workspaces->recv};
-    my @nums = map { $_->{num} } grep { defined($_->{num}) } @ws;
+    my @nums = map { $_->{num} } grep { $_->{num} != -1 } @ws;
     my @sorted = sort @nums;
 
     is_deeply(\@nums, \@sorted, $msg);