From ac3ea676aa380d2b2214f272ddafdadb19ab2a4d Mon Sep 17 00:00:00 2001 From: bwarsaw <> Date: Thu, 5 Apr 2007 18:37:08 +0000 Subject: Fix a very old bug in withlist which prevented -r from working with package paths more deeply nested than 1 level. IOW, -r package.package.module.func now works as intended. --- NEWS | 5 ++++- bin/withlist | 10 ++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index bed8e7cb..0f554217 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ Mailman - The GNU Mailing List Management System -Copyright (C) 1998-2006 by the Free Software Foundation, Inc. +Copyright (C) 1998-2007 by the Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Here is a history of user visible changes to Mailman. @@ -18,6 +18,9 @@ Here is a history of user visible changes to Mailman. and BYUSER on a straight change of address (1642388). Also fixed a bug that could result in a member key with uppercase in the domain. + - Fixed bin/withlist so that -r can take a full package path to a + callable. + 2.1.9 (12-Sep-2006) Security diff --git a/bin/withlist b/bin/withlist index ac0967b9..38ab9abb 100644 --- a/bin/withlist +++ b/bin/withlist @@ -1,6 +1,6 @@ #! @PYTHON@ # -# Copyright (C) 1998-2004 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2007 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -14,7 +14,8 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. """General framework for interacting with a mailing list object. @@ -254,7 +255,7 @@ def main(): # try to import the module for the callable func = None if run: - i = run.find('.') + i = run.rfind('.') if i < 0: module = run callable = run @@ -263,7 +264,8 @@ def main(): callable = run[i+1:] if VERBOSE: print >> sys.stderr, _('Importing %(module)s...') - mod = __import__(module) + __import__(module) + mod = sys.modules[module] if VERBOSE: print >> sys.stderr, _('Running %(module)s.%(callable)s()...') func = getattr(mod, callable) -- cgit v1.2.3