Make 'push --undo' safer
[stgit] / stgit / main.py
index c2797c9..800513b 100644 (file)
@@ -190,7 +190,8 @@ def main():
             command = commands[cmd]
             parser = OptionParser(usage = command.usage,
                                   option_list = command.options)
-            parser.print_help()
+            from pydoc import pager
+            pager(parser.format_help())
         else:
             print_help()
         sys.exit(0)
@@ -221,7 +222,7 @@ def main():
     # These modules are only used from this point onwards and do not
     # need to be imported earlier
     from stgit.config import config_setup
-    from ConfigParser import ParsingError
+    from ConfigParser import ParsingError, NoSectionError
     from stgit.stack import Series, StackException
     from stgit.git import GitException
     from stgit.commands.common import CmdException
@@ -240,8 +241,8 @@ def main():
             stgit.commands.common.crt_series = command.crt_series
 
         command.func(parser, options, args)
-    except (IOError, ParsingError, CmdException, StackException, GitException,
-            GitMergeException), err:
+    except (IOError, ParsingError, NoSectionError, CmdException,
+            StackException, GitException, GitMergeException), err:
         print >> sys.stderr, '%s %s: %s' % (prog, cmd, err)
         sys.exit(2)
     except KeyboardInterrupt: