exit 1;
}
+# first pass: get workspace names
+for my $line (@lines) {
+ next if $line =~ /^#/ || $line =~ /^$/;
+
+ my ($statement, $parameters) = ($line =~ /([a-zA-Z._-]+)(.*)/);
+
+ # skip everything but workspace lines
+ next unless defined($statement) and $statement eq 'workspace';
+
+ my ($number, $params) = ($parameters =~ /[ \t]+([0-9]+) (.+)/);
+
+ # save workspace name (unless the line is actually a workspace assignment)
+ $workspace_names{$number} = $params unless $params =~ /^output/;
+}
+
for my $line (@lines) {
# directly use comments and empty lines
if ($line =~ /^#/ || $line =~ /^$/) {
print "$line\n";
next;
} else {
- print "# XXX: workspace name will end up in the bindings, see below\n";
- $workspace_names{$number} = $params;
+ print "# XXX: workspace name will end up in the corresponding bindings.\n";
next;
}
}
ok(!line_exists($output, qr|^workspace|), 'workspace name not present');
ok(line_exists($output, qr|^bindsym Mod1\+3 workspace work|), 'named workspace in bindings');
+# The same, but in reverse order
+$input = <<EOT;
+ bindsym Mod1+3 3
+ workspace 3 work
+EOT
+$output = migrate_config($input);
+ok(!line_exists($output, qr|^workspace|), 'workspace name not present');
+ok(line_exists($output, qr|^bindsym Mod1\+3 workspace work|), 'named workspace in bindings');
+
$output = migrate_config('bindsym Mod1+3 3');
ok(line_exists($output, qr|^bindsym Mod1\+3 workspace 3|), 'workspace changed');