diff options
author | Aaron Bentley <aaron.bentley@utoronto.ca> | 2006-04-16 17:14:27 -0400 |
---|---|---|
committer | Aaron Bentley <aaron.bentley@utoronto.ca> | 2006-04-16 17:14:27 -0400 |
commit | 3b618f172c11d251f5f09874baa999b38e8ccc1f (patch) | |
tree | 62d3b273f04066ee68dd4ab51bf549506460a836 | |
parent | 17694fa83dbb2e237173de89610c82988405ca37 (diff) | |
download | bugseverywhere-3b618f172c11d251f5f09874baa999b38e8ccc1f.tar.gz |
Added prompt to comments
-rw-r--r-- | becommands/comment.py | 2 | ||||
-rw-r--r-- | libbe/utility.py | 32 |
2 files changed, 28 insertions, 6 deletions
diff --git a/becommands/comment.py b/becommands/comment.py index 4f0bf3b..5f7128d 100644 --- a/becommands/comment.py +++ b/becommands/comment.py @@ -49,7 +49,7 @@ def execute(args): bug, parent_comment = cmdutil.get_bug_and_comment(args[0]) if len(args) == 1: try: - body = utility.editor_string() + body = utility.editor_string("Please enter your comment above") except utility.CantFindEditor: raise cmdutil.UserError( "No comment supplied, and EDITOR not specified.") diff --git a/libbe/utility.py b/libbe/utility.py index e62f2cd..a8c3e24 100644 --- a/libbe/utility.py +++ b/libbe/utility.py @@ -98,7 +98,7 @@ class CantFindEditor(Exception): def __init__(self): Exception.__init__(self, "Can't find editor to get string from") -def editor_string(): +def editor_string(comment=None): """Invokes the editor, and returns the user_produced text as a string @@ -117,15 +117,37 @@ def editor_string(): raise CantFindEditor() fhandle, fname = tempfile.mkstemp() try: + if comment is not None: + os.write(fhandle, '\n'+comment_string(comment)) os.close(fhandle) oldmtime = os.path.getmtime(fname) os.system("%s %s" % (editor, fname)) - if oldmtime == os.path.getmtime(fname) and\ - file(fname, "rb").read() == "": + output = trimmed_string(file(fname, "rb").read()) + if output.rstrip('\n') == "": output = None - else: - output = file(fname, "rb").read() finally: os.unlink(fname) return output + +def comment_string(comment): + """ + >>> comment_string('hello') + '== Anything below this line will be ignored ==\\nhello' + """ + return '== Anything below this line will be ignored ==\n' + comment + + +def trimmed_string(instring): + """ + >>> trimmed_string("hello\\n== Anything below this line will be ignored") + 'hello\\n' + >>> trimmed_string("hi!\\n" + comment_string('Booga')) + 'hi!\\n' + """ + out = [] + for line in instring.splitlines(True): + if line.startswith('== Anything below this line will be ignored'): + break + out.append(line) + return ''.join(out) |