D5081: simplemerge: port to Python 3

2018-10-13 Thread durin42 (Augie Fackler)
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGb54d93fc3ba8: simplemerge: port to Python 3 (authored by 
durin42, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D5081?vs=12073=12087

REVISION DETAIL
  https://phab.mercurial-scm.org/D5081

AFFECTED FILES
  contrib/simplemerge

CHANGE DETAILS

diff --git a/contrib/simplemerge b/contrib/simplemerge
--- a/contrib/simplemerge
+++ b/contrib/simplemerge
@@ -41,44 +41,47 @@
 """Exception raised on errors in parsing the command line."""
 
 def showhelp():
-sys.stdout.write(usage)
-sys.stdout.write(b'\noptions:\n')
+pycompat.stdout.write(usage.encode('utf8'))
+pycompat.stdout.write(b'\noptions:\n')
 
 out_opts = []
 for shortopt, longopt, default, desc in options:
 out_opts.append((b'%2s%s' % (shortopt and b'-%s' % shortopt,
  longopt and b' --%s' % longopt),
  b'%s' % desc))
 opts_len = max([len(opt[0]) for opt in out_opts])
 for first, second in out_opts:
-sys.stdout.write(b' %-*s  %s\n' % (opts_len, first, second))
+pycompat.stdout.write(b' %-*s  %s\n' % (opts_len, first, second))
 
 try:
-for fp in (sys.stdin, sys.stdout, sys.stderr):
+for fp in (sys.stdin, pycompat.stdout, sys.stderr):
 procutil.setbinary(fp)
 
 opts = {}
 try:
-args = fancyopts.fancyopts(sys.argv[1:], options, opts)
+bargv = [a.encode('utf8') for a in sys.argv[1:]]
+args = fancyopts.fancyopts(bargv, options, opts)
 except getopt.GetoptError as e:
 raise ParseError(e)
 if opts[b'help']:
 showhelp()
 sys.exit(0)
 if len(args) != 3:
-raise ParseError(_(b'wrong number of arguments'))
+raise ParseError(_(b'wrong number of arguments').decode('utf8'))
 local, base, other = args
 sys.exit(simplemerge.simplemerge(uimod.ui.load(),
  context.arbitraryfilectx(local),
  context.arbitraryfilectx(base),
  context.arbitraryfilectx(other),
  **pycompat.strkwargs(opts)))
 except ParseError as e:
-sys.stdout.write(b"%s: %s\n" % (sys.argv[0], e))
+if pycompat.ispy3:
+e = str(e).encode('utf8')
+pycompat.stdout.write(b"%s: %s\n" % (sys.argv[0].encode('utf8'), e))
 showhelp()
 sys.exit(1)
 except error.Abort as e:
-sys.stderr.write(b"abort: %s\n" % e)
+pycompat.stderr.write(b"abort: %s\n" % e)
 sys.exit(255)
 except KeyboardInterrupt:
 sys.exit(255)



To: durin42, #hg-reviewers, pulkit
Cc: mjpieters, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


D5081: simplemerge: port to Python 3

2018-10-13 Thread durin42 (Augie Fackler)
durin42 created this revision.
Herald added subscribers: mercurial-devel, mjpieters.
Herald added a reviewer: hg-reviewers.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5081

AFFECTED FILES
  contrib/simplemerge

CHANGE DETAILS

diff --git a/contrib/simplemerge b/contrib/simplemerge
--- a/contrib/simplemerge
+++ b/contrib/simplemerge
@@ -41,44 +41,47 @@
 """Exception raised on errors in parsing the command line."""
 
 def showhelp():
-sys.stdout.write(usage)
-sys.stdout.write(b'\noptions:\n')
+pycompat.stdout.write(usage.encode('utf8'))
+pycompat.stdout.write(b'\noptions:\n')
 
 out_opts = []
 for shortopt, longopt, default, desc in options:
 out_opts.append((b'%2s%s' % (shortopt and b'-%s' % shortopt,
  longopt and b' --%s' % longopt),
  b'%s' % desc))
 opts_len = max([len(opt[0]) for opt in out_opts])
 for first, second in out_opts:
-sys.stdout.write(b' %-*s  %s\n' % (opts_len, first, second))
+pycompat.stdout.write(b' %-*s  %s\n' % (opts_len, first, second))
 
 try:
-for fp in (sys.stdin, sys.stdout, sys.stderr):
+for fp in (sys.stdin, pycompat.stdout, sys.stderr):
 procutil.setbinary(fp)
 
 opts = {}
 try:
-args = fancyopts.fancyopts(sys.argv[1:], options, opts)
+bargv = [a.encode('utf8') for a in sys.argv[1:]]
+args = fancyopts.fancyopts(bargv, options, opts)
 except getopt.GetoptError as e:
 raise ParseError(e)
 if opts[b'help']:
 showhelp()
 sys.exit(0)
 if len(args) != 3:
-raise ParseError(_(b'wrong number of arguments'))
+raise ParseError(_(b'wrong number of arguments').decode('utf8'))
 local, base, other = args
 sys.exit(simplemerge.simplemerge(uimod.ui.load(),
  context.arbitraryfilectx(local),
  context.arbitraryfilectx(base),
  context.arbitraryfilectx(other),
  **pycompat.strkwargs(opts)))
 except ParseError as e:
-sys.stdout.write(b"%s: %s\n" % (sys.argv[0], e))
+if pycompat.ispy3:
+e = str(e).encode('utf8')
+pycompat.stdout.write(b"%s: %s\n" % (sys.argv[0].encode('utf8'), e))
 showhelp()
 sys.exit(1)
 except error.Abort as e:
-sys.stderr.write(b"abort: %s\n" % e)
+pycompat.stderr.write(b"abort: %s\n" % e)
 sys.exit(255)
 except KeyboardInterrupt:
 sys.exit(255)



To: durin42, #hg-reviewers
Cc: mjpieters, mercurial-devel
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel