/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/msgeditor.py

  • Committer: Aaron Bentley
  • Date: 2007-03-03 17:17:53 UTC
  • mfrom: (2309 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2316.
  • Revision ID: aaron.bentley@utoronto.ca-20070303171753-o0s1yrxx5sn12p2k
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
71
71
        else:
72
72
            break
73
73
    raise BzrError("Could not start any editor.\nPlease specify one with:\n"
74
 
                   " - $BZR_EDITOR\n - editor=/some/path in %s\n - $EDITOR" % \
 
74
                   " - $BZR_EDITOR\n - editor=/some/path in %s\n"
 
75
                   " - $VISUAL\n - $EDITOR" % \
75
76
                    config.config_filename())
76
77
 
77
78
 
79
80
    { 'bar' : '-' * 14, 'msg' : 'This line and the following will be ignored' }
80
81
 
81
82
 
82
 
def edit_commit_message(infotext, ignoreline=DEFAULT_IGNORE_LINE):
 
83
def edit_commit_message(infotext, ignoreline=DEFAULT_IGNORE_LINE,
 
84
                        start_message=None):
83
85
    """Let the user edit a commit message in a temp file.
84
86
 
85
87
    This is run if they don't give a message or
89
91
        Text to be displayed at bottom of message for
90
92
        the user's reference; currently similar to
91
93
        'bzr status'.
 
94
 
 
95
    ignoreline:
 
96
        The separator to use above the infotext.
 
97
 
 
98
    start_message:
 
99
        The text to place above the separator, if any. This will not be
 
100
        removed from the message after the user has edited it.
92
101
    """
93
102
    import tempfile
94
103
 
95
104
    msgfilename = None
96
105
    try:
97
106
        tmp_fileno, msgfilename = tempfile.mkstemp(prefix='bzr_log.', dir=u'.')
98
 
        msgfile = os.close(tmp_fileno)
99
 
        if infotext is not None and infotext != "":
100
 
            hasinfo = True
101
 
            msgfile = file(msgfilename, "w")
102
 
            msgfile.write("\n\n%s\n\n%s" % (ignoreline,
103
 
                infotext.encode(bzrlib.user_encoding, 'replace')))
 
107
        msgfile = os.fdopen(tmp_fileno, 'w')
 
108
        try:
 
109
            if start_message is not None:
 
110
                msgfile.write("%s\n" % start_message.encode(
 
111
                                           bzrlib.user_encoding, 'replace'))
 
112
 
 
113
            if infotext is not None and infotext != "":
 
114
                hasinfo = True
 
115
                msgfile.write("\n\n%s\n\n%s" % (ignoreline,
 
116
                              infotext.encode(bzrlib.user_encoding,
 
117
                                                    'replace')))
 
118
            else:
 
119
                hasinfo = False
 
120
        finally:
104
121
            msgfile.close()
105
 
        else:
106
 
            hasinfo = False
107
122
 
108
123
        if not _run_editor(msgfilename):
109
124
            return None