[PATCH STABLE] fancyopts: don't show a traceback on invalid integer values
Idan Kamara
idankk86 at gmail.com
Mon Oct 8 08:38:51 CDT 2012
# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1349703316 -7200
# Branch stable
# Node ID 6cd5ee6df3c463d2025cf17158c4ad8ca484d00f
# Parent 67f7906491d804423d16cb151e7add017ca1138d
fancyopts: don't show a traceback on invalid integer values
diff --git a/mercurial/fancyopts.py b/mercurial/fancyopts.py
--- a/mercurial/fancyopts.py
+++ b/mercurial/fancyopts.py
@@ -5,7 +5,8 @@
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
-import getopt
+import getopt, util
+from i18n import _
def gnugetopt(args, options, longoptions):
"""Parse options mostly like getopt.gnu_getopt.
@@ -105,7 +106,11 @@
if t is type(fancyopts):
state[name] = defmap[name](val)
elif t is type(1):
- state[name] = int(val)
+ try:
+ state[name] = int(val)
+ except ValueError:
+ raise util.Abort(_('invalid value %r for option %s, '
+ 'expected int') % (val, opt))
elif t is type(''):
state[name] = val
elif t is type([]):
diff --git a/tests/test-import.t b/tests/test-import.t
--- a/tests/test-import.t
+++ b/tests/test-import.t
@@ -602,6 +602,9 @@
$ echo a > a
$ hg ci -Am t
adding a
+ $ hg import -p foo
+ abort: invalid value 'foo' for option -p, expected int
+ [255]
$ hg import -p0 - << EOF
> foobar
> --- a Sat Apr 12 22:43:58 2008 -0400
More information about the Mercurial-devel
mailing list