Skip to content

Commit

Permalink
Merge branch 'fix_string_literal_in_commit_msg' of https://github.com…
Browse files Browse the repository at this point in the history
…/lethliel/osc

Interprete unicode escape characters in a "--message" option. In some
cases, this breaks the existing UI (but that's OK because it can be
fixed by properly escaping the escape character(s)).
Note: if we are going to do more advanced stuff in the future, we should
move the logic into a separate function.
  • Loading branch information
marcus-h committed Jun 29, 2020
2 parents b13935a + 16fda31 commit ce291ab
Showing 1 changed file with 37 additions and 7 deletions.
44 changes: 37 additions & 7 deletions osc/commandline.py
Expand Up @@ -911,6 +911,10 @@ def do_meta(self, subcmd, opts, *args):
# If project or package arguments missing, assume to work
# with project and/or package in current local directory.
attributepath = []

if opts.message:
opts.message = str(opts.message.encode().decode('unicode_escape'))

if cmd in ['prj', 'prjconf']:
if len(args) < 1:
apiurl = store_read_apiurl(os.curdir)
Expand Down Expand Up @@ -1212,6 +1216,9 @@ def _check_service(root):
elif opts.no_update:
src_update = "noupdate"

if opts.message:
opts.message = str(opts.message.encode().decode('unicode_escape'))

myreqs = []
if opts.supersede:
myreqs = [opts.supersede]
Expand Down Expand Up @@ -1872,6 +1879,8 @@ def do_createrequest(self, subcmd, opts, *args):

if not opts.message:
opts.message = edit_message()
else:
opts.message = str(opts.message.encode().decode('unicode_escape'))

xml = """<request> %s <state name="new"/> <description>%s</description> </request> """ % \
(actionsxml, _html_escape(opts.message or ""))
Expand Down Expand Up @@ -1949,6 +1958,8 @@ def do_requestmaintainership(self, subcmd, opts, *args):
raise oscerr.WrongOptions('invalid \'--role\': either specify \'maintainer\' or \'bugowner\'')
if not opts.message:
opts.message = edit_message()
else:
opts.message = str(opts.message.encode().decode('unicode_escape'))

r = Request()
if user.startswith('group:'):
Expand Down Expand Up @@ -2027,6 +2038,8 @@ def do_deleterequest(self, subcmd, opts, *args):
footer = textwrap.TextWrapper(width = 66).fill(
'please explain why you like to delete project %s' % project)
opts.message = edit_message(footer)
else:
opts.message = str(opts.message.encode().decode('unicode_escape'))

r = Request()
r.add_action('delete', tgt_project=project, tgt_package=package, tgt_repository=repository)
Expand Down Expand Up @@ -2074,6 +2087,8 @@ def do_changedevelrequest(self, subcmd, opts, *args):
'please explain why you like to change the devel project of %s/%s to %s/%s'
% (project, package, devel_project, devel_package))
opts.message = edit_message(footer)
else:
opts.message = str(opts.message.encode().decode('unicode_escape'))

r = Request()
r.add_action('change_devel', src_project=devel_project, src_package=devel_package,
Expand Down Expand Up @@ -2241,6 +2256,9 @@ def do_request(self, subcmd, opts, *args):
if opts.incoming:
conf.config['include_request_from_project'] = False

if opts.message:
opts.message = str(opts.message.encode().decode('unicode_escape'))

if args[0] == 'help':
return self.do_help(['help', 'request'])

Expand Down Expand Up @@ -2785,7 +2803,8 @@ def do_detachbranch(self, subcmd, opts, *args):
raise oscerr.WrongArgs('Too many arguments (required none or two)')
else:
raise oscerr.WrongArgs('Too few arguments (required none or two)')

if opts.message:
opts.message = str(opts.message.encode().decode('unicode_escape'))
try:
copy_pac(apiurl, project, package, apiurl, project, package, expand=True, comment=opts.message)
except HTTPError as e:
Expand Down Expand Up @@ -2990,7 +3009,7 @@ def do_copypac(self, subcmd, opts, *args):
rev, dummy = parseRevisionOption(opts.revision)

if opts.message:
comment = opts.message
comment = str(opts.message.encode().decode('unicode_escape'))
else:
if not rev:
rev = show_upstream_rev(src_apiurl, src_project, src_package)
Expand Down Expand Up @@ -3123,6 +3142,8 @@ def do_releaserequest(self, subcmd, opts, *args):

if not opts.message:
opts.message = edit_message()
else:
opts.message = str(opts.message.encode().decode('unicode_escape'))

r = create_release_request(apiurl, source_project, opts.message)
print(r.reqid)
Expand Down Expand Up @@ -3156,6 +3177,8 @@ def do_createincident(self, subcmd, opts, *args):
maintenance_attribute = conf.config['maintenance_attribute']
if opts.attribute:
maintenance_attribute = opts.attribute
if opts.message:
opts.message = str(opts.message.encode().decode('unicode_escape'))

source_project = target_project = None

Expand Down Expand Up @@ -3292,6 +3315,8 @@ def do_maintenancerequest(self, subcmd, opts, *args):

if not opts.message:
opts.message = edit_message()
else:
opts.message = str(opts.message.encode().decode('unicode_escape'))

supersede_existing = False
reqs = []
Expand Down Expand Up @@ -3508,6 +3533,9 @@ def do_branch(self, subcmd, opts, *args):
if len(args) >= 4:
tpackage = args[3]

if opts.message:
opts.message = str(opts.message.encode().decode('unicode_escape'))

try:
exists, targetprj, targetpkg, srcprj, srcpkg = \
branch_pkg(apiurl, args[0], args[1],
Expand Down Expand Up @@ -3601,7 +3629,7 @@ def do_undelete(self, subcmd, opts, *args):

msg = ''
if opts.message:
msg = opts.message
msg = str(opts.message.encode().decode('unicode_escape'))
else:
msg = edit_message()

Expand Down Expand Up @@ -3648,7 +3676,7 @@ def do_rdelete(self, subcmd, opts, *args):

msg = ''
if opts.message:
msg = opts.message
msg = str(opts.message.encode().decode('unicode_escape'))
else:
msg = edit_message()

Expand Down Expand Up @@ -3694,6 +3722,8 @@ def do_lock(self, subcmd, opts, project, package=None):
${cmd_option_list}
"""
apiurl = self.get_api_url()
if opts.message:
opts.message = str(opts.message.encode().decode('unicode_escape'))
kind = 'prj'
path_args = (project,)
if package is not None:
Expand Down Expand Up @@ -3734,7 +3764,7 @@ def do_unlock(self, subcmd, opts, *args):

msg = ''
if opts.message:
msg = opts.message
msg = str(opts.message.encode().decode('unicode_escape'))
else:
msg = edit_message()

Expand Down Expand Up @@ -4810,7 +4840,7 @@ def _commit(self, subcmd, opts, args):

msg = ''
if opts.message:
msg = opts.message
msg = str(opts.message.encode().decode('unicode_escape'))
elif opts.file:
if opts.file == '-':
msg = sys.stdin.read()
Expand Down Expand Up @@ -8240,7 +8270,7 @@ def setBugownerHelper(apiurl, project, package, bugowner):

if requestactionsxml != "":
if opts.message:
message = opts.message
message = str(opts.message.encode().decode('unicode_escape'))
else:
message = edit_message()

Expand Down

0 comments on commit ce291ab

Please sign in to comment.