aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/data/uzbl/plugins/bind.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/data/uzbl/plugins/bind.py')
-rw-r--r--examples/data/uzbl/plugins/bind.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/examples/data/uzbl/plugins/bind.py b/examples/data/uzbl/plugins/bind.py
index 1cba7b2..668b595 100644
--- a/examples/data/uzbl/plugins/bind.py
+++ b/examples/data/uzbl/plugins/bind.py
@@ -306,9 +306,19 @@ class Bind(object):
def expand(cmd, args):
'''Replaces "%s %1 %2 %3..." with "<all args> <arg 0> <arg 1>...".'''
+ # Direct string replace.
if '%s' in cmd:
cmd = cmd.replace('%s', ' '.join(map(unicode, args)))
+ # Escaped and quoted string replace.
+ if '%r' in cmd:
+ joined = ('%r' % ' '.join(map(unicode, args)))[1:]
+ for char in ['\\', '@']:
+ joined = joined.replace(char, '\\'+char)
+
+ cmd = cmd.replace('%r', joined)
+
+ # Arg index string replace.
for (index, arg) in enumerate(args):
index += 1
if '%%%d' % index in cmd: