]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: properly handle comments in colors {} blocks of bar config (+test) (Thanks...
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 25 Oct 2011 21:31:57 +0000 (22:31 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 25 Oct 2011 21:31:57 +0000 (22:31 +0100)
src/cfgparse.l
testcases/t/177-bar-config.t

index 2bab9d6a40dcea931bdaa2f50c5f3d73f60b5a43..1f584c327196476b31511391599885d3ef76c0ed 100644 (file)
@@ -106,6 +106,7 @@ EOL     (\r?\n)
 <BAR>colors                     { yy_push_state(BAR_COLORS); return TOK_BAR_COLORS; }
 <BAR_COLORS>"{"                 { return '{'; }
 <BAR_COLORS>"}"                 { yy_pop_state(); return '}'; }
+<BAR_COLORS>^[ \t]*#[^\n]*      { return TOKCOMMENT; }
 <BAR_COLORS>background          { yy_push_state(BAR_COLOR); return TOK_BAR_COLOR_BACKGROUND; }
 <BAR_COLORS>statusline          { yy_push_state(BAR_COLOR); return TOK_BAR_COLOR_STATUSLINE; }
 <BAR_COLORS>focused_workspace   { BAR_DOUBLE_COLOR; return TOK_BAR_COLOR_FOCUSED_WORKSPACE; }
index 72067316a1ee042388df084b6c6c9130c3bc75a6..0bf287b72af7dd9cd1fbb40003c7b8eb0cfa6529 100644 (file)
@@ -170,4 +170,39 @@ isnt($bar1_config->{outputs}, $bar2_config->{outputs}, 'outputs different');
 
 exit_gracefully($pid);
 
+#####################################################################
+# make sure comments work properly
+#####################################################################
+
+$config = <<EOT;
+# i3 config file (v4)
+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+
+bar {
+    # Start a default instance of i3bar which provides workspace buttons.
+    # Additionally, i3status will provide a statusline.
+    status_command i3status --bar
+    #status_command i3status --qux
+#status_command i3status --qux
+
+    output HDMI1
+    colors {
+        background #000000
+        #background #ffffff
+    }
+}
+EOT
+
+$pid = launch_with_config($config);
+
+$i3 = i3(get_socket_path(0));
+$bars = $i3->get_bar_config()->recv;
+$bar_id = shift @$bars;
+
+$bar_config = $i3->get_bar_config($bar_id)->recv;
+is($bar_config->{status_command}, 'i3status --bar', 'status_command correct');
+is($bar_config->{colors}->{background}, '#000000', 'background color ok');
+
+exit_gracefully($pid);
+
 done_testing;