diff options
Diffstat (limited to 'engine/SCons/SConsign.py')
| -rw-r--r-- | engine/SCons/SConsign.py | 19 | 
1 files changed, 13 insertions, 6 deletions
diff --git a/engine/SCons/SConsign.py b/engine/SCons/SConsign.py index c619bc0..157468f 100644 --- a/engine/SCons/SConsign.py +++ b/engine/SCons/SConsign.py @@ -5,7 +5,7 @@ Writing and reading information to the .sconsign file or files.  """  # -# Copyright (c) 2001 - 2017 The SCons Foundation +# Copyright (c) 2001 - 2019 The SCons Foundation  #  # Permission is hereby granted, free of charge, to any person obtaining  # a copy of this software and associated documentation files (the @@ -29,7 +29,7 @@ Writing and reading information to the .sconsign file or files.  from __future__ import print_function -__revision__ = "src/engine/SCons/SConsign.py 74b2c53bc42290e911b334a6b44f187da698a668 2017/11/14 13:16:53 bdbaddog" +__revision__ = "src/engine/SCons/SConsign.py 72ae09dc35ac2626f8ff711d8c4b30b6138e08e3 2019-08-08 14:50:06 bdeegan"  import SCons.compat @@ -76,7 +76,8 @@ def Get_DataBase(dir):                  except KeyError:                      path = d.entry_abspath(DB_Name)                      try: db = DataBase[d] = DB_Module.open(path, mode) -                    except (IOError, OSError): pass +                    except (IOError, OSError): +                        pass                      else:                          if mode != "r":                              DB_sync_list.append(db) @@ -334,10 +335,15 @@ class DirFile(Dir):              Dir.__init__(self, fp, dir)          except KeyboardInterrupt:              raise -        except: +        except Exception:              SCons.Warnings.warn(SCons.Warnings.CorruptSConsignWarning,                                  "Ignoring corrupt .sconsign file: %s"%self.sconsign) +        try: +            fp.close() +        except AttributeError: +            pass +          global sig_files          sig_files.append(self) @@ -394,7 +400,8 @@ class DirFile(Dir):                  # here, or in any of the following calls, would get                  # raised, indicating something like a potentially                  # serious disk or network issue. -                open(self.sconsign, 'wb').write(open(fname, 'rb').read()) +                with open(self.sconsign, 'wb') as f, open(fname, 'rb') as f2: +                    f.write(f2.read())                  os.chmod(self.sconsign, mode)          try:              os.unlink(temp) @@ -416,7 +423,7 @@ def File(name, dbm_module=None):      else:          ForDirectory = DB          DB_Name = name -        if not dbm_module is None: +        if dbm_module is not None:              DB_Module = dbm_module  # Local Variables:  | 
