You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
158 lines
5.1 KiB
158 lines
5.1 KiB
diff -aurN a/imediff2 b/imediff2
|
|
--- a/imediff2 2018-10-20 13:36:19.000000000 -0400
|
|
+++ b/imediff2 2021-03-03 10:03:31.121774492 -0500
|
|
@@ -167,19 +167,19 @@
|
|
def read_lines( filename ):
|
|
global assume_empty
|
|
try:
|
|
- fp = file( filename )
|
|
+ fp = open( filename )
|
|
l = fp.readlines()
|
|
fp.close()
|
|
return l
|
|
- except IOError, (error, message):
|
|
- if error == errno.ENOENT and assume_empty:
|
|
+ except IOError as e:
|
|
+ if e.errno == errno.ENOENT and assume_empty:
|
|
return ""
|
|
else:
|
|
- sys.stderr.write(_("Could not read '%s': %s\n") % (filename, message))
|
|
+ sys.stderr.write(_("Could not read '%s': %s\n") % (filename, e.strerror))
|
|
sys.exit(3)
|
|
|
|
def strip_end_lines( txt ):
|
|
- return string.replace(string.replace(txt,"%c"%10,""),"%c"%13,"")
|
|
+ return txt.replace("%c"%10,"").replace("%c"%13,"")
|
|
|
|
def main(stdscr, lines_a, lines_b, start_mode):
|
|
global sel, active_chunks, x,y, lines, textpad, contw,conth
|
|
@@ -283,7 +283,7 @@
|
|
active_chunks.append( [j, j+len(line_list), i] )
|
|
|
|
for l in line_list:
|
|
- lines.append( [string.expandtabs(strip_end_lines(l)),
|
|
+ lines.append( [strip_end_lines(l).expandtabs(),
|
|
decor, color_pair] )
|
|
j+=1
|
|
|
|
@@ -332,9 +332,9 @@
|
|
def sel_next( dir ):
|
|
global sel, active_chunks
|
|
if dir == 'up':
|
|
- rng = range(sel-1, -1, -1)
|
|
+ rng = list(range(sel-1, -1, -1))
|
|
else:
|
|
- rng = range(sel+1, len(active_chunks))
|
|
+ rng = list(range(sel+1, len(active_chunks)))
|
|
for j in rng:
|
|
if active_chunks[j][1] > y and active_chunks[j][0] < y+winh:
|
|
sel = j
|
|
@@ -487,7 +487,7 @@
|
|
elif c == ord('h') or c == ord('?') or c == curses.KEY_HELP:
|
|
helpw = 0
|
|
helph = 0
|
|
- for l in string.split(helptext(), "%c"%10):
|
|
+ for l in helptext().split("%c"%10):
|
|
helpw = max(helpw, len(l))
|
|
helph += 1
|
|
helppad = curses.newpad(helph+2, helpw+2)
|
|
@@ -502,7 +502,7 @@
|
|
elif c == ord('q') or c == curses.KEY_CANCEL:
|
|
quitw = 0
|
|
quith = 0
|
|
- for l in string.split(quittext(), "%c"%10):
|
|
+ for l in quittext().split("%c"%10):
|
|
quitw = max(quitw, len(l))
|
|
quith += 1
|
|
quitpad = curses.newpad(quith+2, quitw+2)
|
|
@@ -571,33 +571,33 @@
|
|
try:
|
|
opts, args = getopt.getopt(sys.argv[1:], "hmuo:abcNtV",
|
|
["help","mono","unresolved","output=", "template", "version", "new-file"])
|
|
-except getopt.GetoptError, e:
|
|
- print _("Error: ") + str(e)
|
|
- print usagetext()
|
|
+except getopt.GetoptError as e:
|
|
+ print((_("Error: ") + str(e)))
|
|
+ print(usagetext())
|
|
sys.exit(2)
|
|
|
|
for o, a in opts:
|
|
if o in ("-h", "--help"):
|
|
- print usagetext()
|
|
+ print((usagetext()))
|
|
sys.exit()
|
|
elif o in ("-t", "--template"):
|
|
try:
|
|
with open(config_file, 'w') as f:
|
|
- print >>f, "# Configuration for imediff2: (Erase this file to reset)"
|
|
- print >>f, "# <command_key_in_action> <command_key_in_manpage>"
|
|
- print >>f, "# edit only first character of each line to 'a'...'z'"
|
|
- print >>f, "#"
|
|
+ print(("# Configuration for imediff2: (Erase this file to reset)"), file=f)
|
|
+ print(("# <command_key_in_action> <command_key_in_manpage>"), file=f)
|
|
+ print(("# edit only first character of each line to 'a'...'z'"), file=f)
|
|
+ print(("#"), file=f)
|
|
for k in kcvalues:
|
|
- print >>f, "%s %s" % (k , k)
|
|
+ print(("%s %s" % (k , k)), file=f)
|
|
except:
|
|
- print "%s not writable, aborting" % config_file
|
|
+ print(("%s not writable, aborting" % config_file))
|
|
sys.exit()
|
|
elif o in ("-V", "--version"):
|
|
- print "%s %s" % (PACKAGE, VERSION)
|
|
+ print(("%s %s" % (PACKAGE, VERSION)))
|
|
sys.exit()
|
|
|
|
if len(args)<2:
|
|
- print usagetext()
|
|
+ print((usagetext()))
|
|
sys.exit(2)
|
|
|
|
for o, a in opts:
|
|
@@ -692,14 +695,14 @@
|
|
assert( not editor is None )
|
|
try:
|
|
(of, of_name) = tempfile.mkstemp(prefix='imediff2')
|
|
- os.write( of, output )
|
|
+ os.write( of, output.encode() )
|
|
os.close(of)
|
|
time.sleep(0.1) # make the change visible - many editor look a lot like imediff2
|
|
editor_ret = os.system('%s %s' % (editor, of_name))
|
|
time.sleep(0.1)
|
|
if editor_ret == 0:
|
|
new_b_lines = read_lines(of_name)
|
|
- if string.join(new_b_lines, '') == output:
|
|
+ if ''.join(new_b_lines) == output:
|
|
chunk_mode = 'old'
|
|
elif new_b_lines != lines_a:
|
|
lines_b = new_b_lines
|
|
@@ -707,8 +710,8 @@
|
|
else:
|
|
chunks = 'old'
|
|
os.unlink(of_name)
|
|
- except IOError, (error, message):
|
|
- sys.stderr.write(_("Could not write to '%s': %s\n") % (of_name, message));
|
|
+ except IOError as e:
|
|
+ sys.stderr.write(_("Could not write to '%s': %s\n") % (of_name, e.strerror));
|
|
|
|
if not launch_editor:
|
|
break
|
|
@@ -719,11 +722,11 @@
|
|
else:
|
|
try:
|
|
if ofile is not None:
|
|
- of = file(ofile, 'wb')
|
|
- of.write( output )
|
|
+ of = open(ofile, 'wb')
|
|
+ of.write( output.encode() )
|
|
of.close()
|
|
sys.exit(0)
|
|
- except IOError, (error, message):
|
|
- sys.stderr.write(_("Could not write to '%s': %s\n") % (ofile, message));
|
|
+ except IOError as e:
|
|
+ sys.stderr.write(_("Could not write to '%s': %s\n") % (ofile, e.strerror));
|
|
|
|
sys.exit(3)
|