comparison hgext/patchbomb.py @ 4480:6b84c8d2f66f

patchbomb: Defer the import of readline. If imported at the top of the module, the import appears to succeed, but raw_input doesn't acquire magic editing fu. I suspect this has something to do with the newish demandimport code, because the prior code worked with demandload.
author Bryan O'Sullivan <bos@serpentine.com>
date Sun, 27 May 2007 13:41:35 -0700
parents 82bc6aef8b43
children a11e13d50645
comparison
equal deleted inserted replaced
4479:82bc6aef8b43 4480:6b84c8d2f66f
68 import email.Utils, email.Encoders 68 import email.Utils, email.Encoders
69 from mercurial import cmdutil, commands, hg, mail, ui, patch, util 69 from mercurial import cmdutil, commands, hg, mail, ui, patch, util
70 from mercurial.i18n import _ 70 from mercurial.i18n import _
71 from mercurial.node import * 71 from mercurial.node import *
72 72
73 try:
74 # readline gives raw_input editing capabilities, but is not
75 # present on windows
76 import readline
77 except ImportError: pass
78
79 def patchbomb(ui, repo, *revs, **opts): 73 def patchbomb(ui, repo, *revs, **opts):
80 '''send changesets by email 74 '''send changesets by email
81 75
82 By default, diffs are sent in the format generated by hg export, 76 By default, diffs are sent in the format generated by hg export,
83 one per message. The series starts with a "[PATCH 0 of N]" 77 one per message. The series starts with a "[PATCH 0 of N]"
118 Before using this command, you will need to enable email in your hgrc. 112 Before using this command, you will need to enable email in your hgrc.
119 See the [email] section in hgrc(5) for details. 113 See the [email] section in hgrc(5) for details.
120 ''' 114 '''
121 115
122 def prompt(prompt, default = None, rest = ': ', empty_ok = False): 116 def prompt(prompt, default = None, rest = ': ', empty_ok = False):
117 try:
118 # readline gives raw_input editing capabilities, but is not
119 # present on windows
120 import readline
121 except ImportError: pass
122
123 if default: prompt += ' [%s]' % default 123 if default: prompt += ' [%s]' % default
124 prompt += rest 124 prompt += rest
125 while True: 125 while True:
126 r = raw_input(prompt) 126 r = raw_input(prompt)
127 if r: return r 127 if r: return r