]> git.sur5r.net Git - i3/i3/commitdiff
migrate-config: convert old 'with container' commands to 'focus parent; $command...
authorMichael Stapelberg <michael@stapelberg.de>
Wed, 27 Jul 2011 12:36:22 +0000 (14:36 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Wed, 27 Jul 2011 12:36:22 +0000 (14:36 +0200)
i3-migrate-config-to-v4.pl
testcases/t/71-config-migrate.t

index 99e58635e2f0c0500485c2e1fad1cf193068ec70..5f20cba1a0de97ec458a059242ef3bb41670347f 100755 (executable)
@@ -321,7 +321,24 @@ sub convert_command {
 
     # With Container-commands are now obsolete due to different abstraction
     if ($command =~ /^wc/) {
-        print "# XXX: 'with container' commands are obsolete in 4.x: $line\n";
+        $command =~ s/^wc//g;
+        my $wc_replaced = 0;
+        for (my $c = 0; $c < @replace; $c += 2) {
+            if ($command =~ $replace[$c]) {
+                $command = $replace[$c+1];
+                $wc_replaced = 1;
+                last;
+            }
+        }
+        if (!$wc_replaced) {
+            print "# XXX: migration script could not handle command: $line\n";
+        } else {
+            # NOTE: This is not 100% accurate, as it only works for one level
+            # of nested containers. As this is a common use case, we use 'focus
+            # parent; $command' nevertheless. For advanced use cases, the user
+            # has to modify his config.
+            print "$statement $key focus parent; $command\n";
+        }
         return;
     }
 
index ba83a6a1538d377b3a71195c03ea699475cff6ad..e93ca9e7a578fb9985e361d39e050c6781848f9f 100644 (file)
@@ -215,8 +215,8 @@ ok(line_exists($output, qr|^bindsym Mod1\+s border normal$|), 'bn replaced');
 ok(line_exists($output, qr|^bindsym Mod1\+s border 1pixel$|), 'bp replaced');
 ok(line_exists($output, qr|^bindsym Mod1\+s border none$|), 'bb replaced');
 ok(line_exists($output, qr|^bindsym Mod1\+s border toggle$|), 'bt replaced');
-ok(line_exists($output, qr|^#.*with container.*obsolete.*wch$|), 'with container removed');
-ok(line_exists($output, qr|^#.*with container.*obsolete.*wcml$|), 'with container removed');
+ok(line_exists($output, qr|^bindsym Mod1\+j focus parent; focus left$|), 'with container replaced with focus parent; focus left');
+ok(line_exists($output, qr|^bindsym Mod1\+j focus parent; move right$|), 'with container replaced with focus parent; move right');
 ok(line_exists($output, qr|^bindsym Mod1\+k kill$|), 'kill unchanged');
 ok(line_exists($output, qr|^bindsym Mod1\+n workspace next$|), 'nw replaced');
 ok(line_exists($output, qr|^bindsym Mod1\+p workspace prev$|), 'pw replaced');