X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/f9a2b5dae96b05071105a9b84e98bcc8942960ed..99c529152847b7e20e48dc477925e315918eed5d:/stgit/commands/common.py diff --git a/stgit/commands/common.py b/stgit/commands/common.py index 0e1bb44..4e802bc 100644 --- a/stgit/commands/common.py +++ b/stgit/commands/common.py @@ -284,7 +284,7 @@ def name_email_date(address): return str_list[0] -def make_patch_name(msg): +def patch_name_from_msg(msg): """Return a string to be used as a patch name. This is generated from the first 30 characters of the top line of the string passed as argument.""" @@ -293,3 +293,18 @@ def make_patch_name(msg): subject_line = msg[:30].lstrip().split('\n', 1)[0].lower() return re.sub('[\W]+', '-', subject_line).strip('-') + +def make_patch_name(msg, unacceptable, default_name = 'patch', + alternative = True): + """Return a patch name generated from the given commit message, + guaranteed to make unacceptable(name) be false. If the commit + message is empty, base the name on default_name instead.""" + patchname = patch_name_from_msg(msg) + if not patchname: + patchname = default_name + if alternative and unacceptable(patchname): + suffix = 0 + while unacceptable('%s-%d' % (patchname, suffix)): + suffix += 1 + patchname = '%s-%d' % (patchname, suffix) + return patchname