Blob Blame History Raw
diff -rupN nsis-3.04-src/Contrib/ExDLL/SConscript nsis-3.04-src-new/Contrib/ExDLL/SConscript
--- nsis-3.04-src/Contrib/ExDLL/SConscript	2015-06-21 18:13:45.000000000 +0200
+++ nsis-3.04-src-new/Contrib/ExDLL/SConscript	2019-07-29 18:00:46.674960703 +0200
@@ -47,7 +47,7 @@ if PerformPluginExtrasDistOperationOnce(
 	env.DistributeExamples(api_files, path='Plugin/nsis')
 	env.DistributeExamples(example, path='Plugin')
 	if env['PLATFORM'] != 'win32':
-		if env.has_key('PREFIX_PLUGINAPI_INC'):
+		if 'PREFIX_PLUGINAPI_INC' in env:
 			env.Distribute(api_files, None, 'pluginapi_inc', '', 'nsis', 'pluginapi', 'pluginapi')
 
 
@@ -56,7 +56,7 @@ if env['PLATFORM'] == 'win32':
 else:
 	example += lib_files
 
-	if env.has_key('PREFIX_PLUGINAPI_LIB'):
+	if 'PREFIX_PLUGINAPI_LIB' in env:
 		env.Distribute(lib, None, 'pluginapi_lib', '', 'nsis', 'pluginapi', 'pluginapi')
 
 
diff -rupN nsis-3.04-src/Contrib/Graphics/SConscript nsis-3.04-src-new/Contrib/Graphics/SConscript
--- nsis-3.04-src/Contrib/Graphics/SConscript	2018-10-30 23:33:18.000000000 +0100
+++ nsis-3.04-src-new/Contrib/Graphics/SConscript	2019-07-29 22:29:55.181779206 +0200
@@ -90,8 +90,8 @@ wizards = Split("""
 
 Import('defenv')
 
-def join(prefix, list):
-	return map(lambda x: '%s/%s' % (prefix, x), list)
+def join(prefix, lst):
+	return list(map(lambda x: '%s/%s' % (prefix, x), lst))
 
 def dist(dir, files):
 	defenv.DistributeContrib(join(dir, files), path='Graphics/%s' % dir)
diff -rupN "nsis-3.04-src/Contrib/Modern UI/SConscript" "nsis-3.04-src-new/Contrib/Modern UI/SConscript"
--- "nsis-3.04-src/Contrib/Modern UI/SConscript"	2007-08-09 04:52:50.000000000 +0200
+++ "nsis-3.04-src-new/Contrib/Modern UI/SConscript"	2019-07-29 22:30:30.702820469 +0200
@@ -22,8 +22,8 @@ contribs = Split("""
 
 Import('defenv')
 
-def join(prefix, list):
-	return map(lambda x: '%s/%s' % (prefix, x), list)
+def join(prefix, lst):
+	return list(map(lambda x: '%s/%s' % (prefix, x), lst))
 
 defenv.DistributeDocs(docs, path=target)
 path = 'images'
diff -rupN "nsis-3.04-src/Contrib/Modern UI 2/SConscript" "nsis-3.04-src-new/Contrib/Modern UI 2/SConscript"
--- "nsis-3.04-src/Contrib/Modern UI 2/SConscript"	2007-12-22 11:13:29.000000000 +0100
+++ "nsis-3.04-src-new/Contrib/Modern UI 2/SConscript"	2019-07-29 22:30:25.801814859 +0200
@@ -34,8 +34,8 @@ pages = Split("""
 
 Import('defenv')
 
-def join(prefix, list):
-	return map(lambda x: '%s/%s' % (prefix, x), list)
+def join(prefix, lst):
+	return list(map(lambda x: '%s/%s' % (prefix, x), lst))
 
 defenv.DistributeDocs(docs, path=target)
 defenv.DistributeDocs(join('../Modern UI/images',doc_images), path='%s/%s'%(target,'images'))
diff -rupN nsis-3.04-src/Docs/src/SConscript nsis-3.04-src-new/Docs/src/SConscript
--- nsis-3.04-src/Docs/src/SConscript	2017-07-24 01:38:22.000000000 +0200
+++ nsis-3.04-src-new/Docs/src/SConscript	2019-07-29 22:31:52.744910698 +0200
@@ -50,8 +50,8 @@ chapters = 5
 appendices = 9
 
 htmls = Split('IndexPage.html Contents.html') \
-	+ map(lambda ch: 'Chapter' + str(ch + 1) + '.html', range(chapters)) \
-	+ map(lambda ap: 'Appendix' + chr(ord('A') + ap) + '.html', range(appendices))
+	+ list(map(lambda ch: 'Chapter' + str(ch + 1) + '.html', range(chapters))) \
+	+ list(map(lambda ap: 'Appendix' + chr(ord('A') + ap) + '.html', range(appendices)))
 
 docsdefault_install_basepath = 'Docs'
 
@@ -134,12 +134,12 @@ def docs_fixer(target, source, env):
 		return
 
 	for i, html in enumerate(target):
-		data = open(html.path,'rb').read()
+		data = open(html.path,'rb').read().decode('utf-8')
 
 		for pat, repl in fixes.items():
 			data = re.sub(env.subst(pat), env.subst(repl), data)
 
-		open(html.path, 'wb').write(data)
+		open(html.path, 'wb').write(data.encode('utf-8'))
 
 
 def docs_extras(target, source, env):
diff -rupN nsis-3.04-src/SCons/Tools/crossmingw.py nsis-3.04-src-new/SCons/Tools/crossmingw.py
--- nsis-3.04-src/SCons/Tools/crossmingw.py	2016-10-01 01:32:40.000000000 +0200
+++ nsis-3.04-src-new/SCons/Tools/crossmingw.py	2019-07-29 18:05:44.724766672 +0200
@@ -98,7 +98,7 @@ def shlib_emitter(target, source, env):
     no_import_lib = env.get('no_import_lib', 0)
 
     if not dll:
-        raise SCons.Errors.UserError, "A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX")
+        raise SCons.Errors.UserError("A shared library should have exactly one target with the suffix: %s" % env.subst("$SHLIBSUFFIX"))
     
     if not no_import_lib and \
        not env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX'):
@@ -141,9 +141,9 @@ def generate(env):
         if not path: 
             path = []
         if SCons.Util.is_String(path):
-            path = string.split(path, os.pathsep)
+            path = path.split(os.pathsep)
 
-        env['ENV']['PATH'] = string.join([dir] + path, os.pathsep)
+        env['ENV']['PATH'] = os.pathsep.join([dir] + path)
 
     # Most of mingw is the same as gcc and friends...
     gnu_tools = ['gcc', 'g++', 'gnulink', 'ar', 'gas']
diff -rupN nsis-3.04-src/SCons/Tools/mstoolkit.py nsis-3.04-src-new/SCons/Tools/mstoolkit.py
--- nsis-3.04-src/SCons/Tools/mstoolkit.py	2018-06-03 23:00:53.000000000 +0200
+++ nsis-3.04-src-new/SCons/Tools/mstoolkit.py	2019-07-29 18:00:46.675960697 +0200
@@ -67,13 +67,13 @@ def get_msvctoolkit_paths():
 		raise SCons.Errors.InternalError, "No Windows registry module was found"
 
 	# look for toolkit
-	if os.environ.has_key('VCToolkitInstallDir'):
+	if os.'VCToolkitInstallDir' in environ:
 		MSToolkitDir = os.path.normpath(os.environ['VCToolkitInstallDir'])
 	else:
 		raise SCons.Errors.InternalError, "Microsoft Visual C++ Toolkit 2003 directory was not found in the `VCToolkitInstallDir` environment variable."
 
 	# look for platform sdk
-	if os.environ.has_key('MSSdk'):
+	if os.'MSSdk' in environ:
 		PlatformSDKDir = os.path.normpath(os.environ['MSSdk'])
 	else:
 		try:
@@ -93,8 +93,8 @@ def get_msvctoolkit_paths():
 
 def validate_vars(env):
 	"""Validate the PDB, PCH, and PCHSTOP construction variables."""
-	if env.has_key('PCH') and env['PCH']:
-		if not env.has_key('PCHSTOP'):
+	if 'PCH' in env and env['PCH']:
+		if not 'PCHSTOP' in env:
 			raise SCons.Errors.UserError, "The PCHSTOP construction must be defined if PCH is defined."
 		if not SCons.Util.is_String(env['PCHSTOP']):
 			raise SCons.Errors.UserError, "The PCHSTOP construction variable must be a string: %r"%env['PCHSTOP']
@@ -119,7 +119,7 @@ def pch_emitter(target, source, env):
 
 	target = [pch, obj] # pch must be first, and obj second for the PCHCOM to work
 
-	if env.has_key('PDB') and env['PDB']:
+	if 'PDB' in env and env['PDB']:
 		env.SideEffect(env['PDB'], target)
 		env.Precious(env['PDB'])
 
@@ -132,11 +132,11 @@ def object_emitter(target, source, env,
 
 	parent_emitter(target, source, env)
 
-	if env.has_key('PDB') and env['PDB']:
+	if 'PDB' in env and env['PDB']:
 		env.SideEffect(env['PDB'], target)
 		env.Precious(env['PDB'])
 
-	if env.has_key('PCH') and env['PCH']:
+	if 'PCH' in env and env['PCH']:
 		env.Depends(target, env['PCH'])
 
 	return (target, source)
@@ -153,7 +153,7 @@ pch_builder = SCons.Builder.Builder(acti
 res_builder = SCons.Builder.Builder(action='$RCCOM', suffix='.res')
 
 def pdbGenerator(env, target, source, for_signature):
-	if target and env.has_key('PDB') and env['PDB']:
+	if target and 'PDB' in env and env['PDB']:
 		return ['/PDB:%s'%target[0].File(env['PDB']).get_string(for_signature),
 				'/DEBUG']
 
@@ -197,7 +197,7 @@ def win32LibEmitter(target, source, env)
 									  "SHLIBPREFIX", "SHLIBSUFFIX",
 									  "WIN32DEFPREFIX", "WIN32DEFSUFFIX"))
 
-	if env.has_key('PDB') and env['PDB']:
+	if 'PDB' in env and env['PDB']:
 		env.SideEffect(env['PDB'], target)
 		env.Precious(env['PDB'])
 
@@ -217,14 +217,14 @@ def win32LibEmitter(target, source, env)
 def prog_emitter(target, source, env):
 	#SCons.Tool.msvc.validate_vars(env)
 	
-	if env.has_key('PDB') and env['PDB']:
+	if 'PDB' in env and env['PDB']:
 		env.SideEffect(env['PDB'], target)
 		env.Precious(env['PDB'])
 		
 	return (target,source)
 
 def RegServerFunc(target, source, env):
-	if env.has_key('register') and env['register']:
+	if 'register' in env and env['register']:
 		ret = regServerAction([target[0]], [source[0]], env)
 		if ret:
 			raise SCons.Errors.UserError, "Unable to register %s" % target[0]
diff -rupN nsis-3.04-src/SCons/utils.py nsis-3.04-src-new/SCons/utils.py
--- nsis-3.04-src/SCons/utils.py	2018-06-03 23:00:53.000000000 +0200
+++ nsis-3.04-src-new/SCons/utils.py	2019-07-29 18:00:46.675960697 +0200
@@ -125,9 +125,9 @@ def GetOptionOrEnv(name, defval = None):
 	import os
 	#if optenv and optenv.has_key(name):
 	#	return optenv[name]
-	if ARGUMENTS.has_key(name):
+	if name in ARGUMENTS:
 		return ARGUMENTS[name]
-	if os.environ.has_key(name):
+	if name in os.environ:
 		return os.environ[name]
 	return defval
 
diff -rupN nsis-3.04-src/SConstruct nsis-3.04-src-new/SConstruct
--- nsis-3.04-src/SConstruct	2018-12-07 23:06:47.000000000 +0100
+++ nsis-3.04-src-new/SConstruct	2019-07-29 22:25:27.479413445 +0200
@@ -260,7 +260,7 @@ if (not defenv.has_key('VER_PACKED')) an
 if not defenv.has_key('VER_PACKED'):
 	import re
 	found = None
-	for v in re.compile(r'^\\H\{[v]?(\S+)\}', re.M).finditer(File('#/Docs/src/history.but').get_contents()): # Try to parse the Halibut history file
+	for v in re.compile(r'^\\H\{[v]?(\S+)\}', re.M).finditer(File('#/Docs/src/history.but').get_contents().decode('utf-8')): # Try to parse the Halibut history file
 		if v and not found:
 			v = v.group(1).split('.')
 			if len(v) >= 2:
@@ -305,9 +305,8 @@ def GetArcSuffix(env, unicode = None):
 	return GetArcCPU(env) + suff
 
 def SafeFile(f):
-	from types import StringType
 
-	if isinstance(f, StringType):
+	if type(f) is str:
 		return File(f)
 
 	return f
@@ -363,21 +362,20 @@ defenv.Execute(Delete('$INSTDISTDIR'))
 defenv.Execute(Delete('$TESTDISTDIR'))
 
 def Distribute(files, names, component, path, subpath, alias, install_alias=None):
-	from types import StringType
 
 	files = MakeFileList(files)
 
-	names = names or map(lambda x: x.name, files)
-	if isinstance(names, StringType):
+	names = names or list(map(lambda x: x.name, files))
+	if type(names) is str:
 		names = [names]
 
 	for d in ('$ZIPDISTDIR', '$INSTDISTDIR', '$TESTDISTDIR'):
-		paths = map(lambda file: os.path.join(d, path, subpath, file), names)
+		paths = list(map(lambda file: os.path.join(d, path, subpath, file), names))
 		defenv.InstallAs(paths, files)
 
 	if (defenv.has_key('PREFIX') and defenv['PREFIX']) or (defenv.has_key('PREFIX_DEST') and defenv['PREFIX_DEST']) :
 		prefix = '${PREFIX_DEST}${PREFIX_%s}' % component.upper()
-		paths = map(lambda file: os.path.join(prefix, path, subpath, file), names)
+		paths = list(map(lambda file: os.path.join(prefix, path, subpath, file), names))
 		ins = defenv.InstallAs(paths, files)
 	else:
 		ins = []