Package: svn-load
Version: 0.6-1
Severity: normal
Tags: patch
When including several lines in a move-map file which use the
convenience feature of specifying a string instead of a lambda,
that string is not stored properly for each line. Instead, the
last string in the file will be used with each regexp. For example,
if the move-map file contains
^foo$ "hello"
^bar$ "world"
this will in fact be interpreted as
^foo$ "world"
^bar$ "world"
The reason for this is that the variable "value" used in the lambda
is shared between all the lambdas. In lieu of proper lexical scoping,
there is a trick to get around this: Add a second parameter with a
default value. Since default values are stored in the lambda, this
will allow the lambdas to keep different values.
Patch:
--- svn-load.orig 2007-08-02 17:32:16.000000000 +0200
+++ svn-load 2007-08-02 17:19:13.000000000 +0200
@@ -504,7 +504,7 @@ def parse_move_map(filename):
# If it's actually a string, let's turn it into a trivial lambda
if type(value) == types.StringType:
- func = lambda m: value
+ func = lambda m,v=value: v
elif type(value) != types.FunctionType:
sys.stderr.write("Error: right field in map must be a lambda or "
"a string\n")
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.21-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US, LC_CTYPE=sv_SE.ISO-8859-1 (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash
Versions of packages svn-load depends on:
ii python 2.4.4-6 An interactive high-level object-o
ii python-svn 1.5.1-2 A(nother) Python interface to Subv
svn-load recommends no packages.
-- no debconf information
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]