~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/msgeditor.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-01-12 07:32:41 UTC
  • mfrom: (4948.2.3 504842-subprocess-error)
  • Revision ID: pqm@pqm.ubuntu.com-20100112073241-u9oi9nbq4og7senr
(mbp) better message when failing to start message editor

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2009 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
63
63
            ## mutter("trying editor: %r", (edargs +[filename]))
64
64
            x = call(edargs + [filename])
65
65
        except OSError, e:
66
 
            # We're searching for an editor, so catch safe errors and continue
67
 
            # errno 193 is ERROR_BAD_EXE_FORMAT on Windows. Python2.4 uses the
68
 
            # winerror for errno. Python2.5+ use errno ENOEXEC and set winerror
69
 
            # to 193. However, catching 193 here should be fine. Other
70
 
            # platforms aren't likely to have that high of an error. And even
71
 
            # if they do, it is still reasonable to fall back to the next
72
 
            # editor.
73
 
            if e.errno in (errno.ENOENT, errno.EACCES, errno.ENOEXEC, 193):
74
 
                if candidate_source is not None:
75
 
                    # We tried this editor because some user configuration (an
76
 
                    # environment variable or config file) said to try it.  Let
77
 
                    # the user know their configuration is broken.
78
 
                    trace.warning(
79
 
                        'Could not start editor "%s" (specified by %s): %s\n'
80
 
                        % (candidate, candidate_source, str(e)))
81
 
                continue
 
66
            if candidate_source is not None:
 
67
                # We tried this editor because some user configuration (an
 
68
                # environment variable or config file) said to try it.  Let
 
69
                # the user know their configuration is broken.
 
70
                trace.warning(
 
71
                    'Could not start editor "%s" (specified by %s): %s\n'
 
72
                    % (candidate, candidate_source, str(e)))
 
73
            continue
82
74
            raise
83
75
        if x == 0:
84
76
            return True