diff -r 262204877004 Doc/library/argparse.rst --- a/Doc/library/argparse.rst Mon Apr 14 11:20:45 2014 -0400 +++ b/Doc/library/argparse.rst Tue Apr 15 11:09:13 2014 -0400 @@ -492,7 +492,10 @@ :meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if they were in the same place as the original file referencing argument on the command line. So in the example above, the expression ``['-f', 'foo', '@args.txt']`` -is considered equivalent to the expression ``['-f', 'foo', '-f', 'bar']``. +is considered equivalent to the expression ``['-f', 'foo', '-f', 'bar']``. By +default, empty lines in a file are interpreted as empty strings. An empty +string is not an acceptable argument; but it is an acceptable value for an +argument. The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that arguments will never be treated as file references. diff -r 262204877004 Lib/argparse.py --- a/Lib/argparse.py Mon Apr 14 11:20:45 2014 -0400 +++ b/Lib/argparse.py Tue Apr 15 11:09:13 2014 -0400 @@ -1717,7 +1717,7 @@ args, argv = self.parse_known_args(args, namespace) if argv: msg = _('unrecognized arguments: %s') - self.error(msg % ' '.join(argv)) + self.error(msg % ' '.join(repr(x) for x in argv)) return args def parse_known_args(self, args=None, namespace=None):