Changeset 226 for trunk/python/pyregfi/__init__.py
- Timestamp:
- 04/05/11 15:01:41 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/python/pyregfi/__init__.py
r225 r226 177 177 def GetLogMessages(): 178 178 msgs = regfi.regfi_log_get_str() 179 if msgs == None:179 if not msgs: 180 180 return '' 181 181 return msgs.decode('utf-8') … … 625 625 # @note Supplied file must be seekable 626 626 def __init__(self, fh): 627 # The fileno method may not exist, or it may throw an exception 628 # when called if the file isn't backed with a descriptor. 629 fn = None 627 630 try: 628 # The fileno method may not exist, or it may throw an exception 629 # when called if the file isn't backed with a descriptor. 630 if hasattr(fh, 'fileno'): 631 self.file = regfi.regfi_alloc(fh.fileno(), REGFI_ENCODING_UTF8) 632 return 631 # XXX: Native calls to Windows filenos don't seem to work. 632 # Need to investigate why. 633 if not is_win32 and hasattr(fh, 'fileno'): 634 fn = fh.fileno() 633 635 except: 634 636 pass 635 636 fh.seek(0) 637 self.raw_file = structures.REGFI_RAW_FILE() 638 self.raw_file.fh = fh 639 self.raw_file.seek = seek_cb_type(self.raw_file.cb_seek) 640 self.raw_file.read = read_cb_type(self.raw_file.cb_read) 641 self.file = regfi.regfi_alloc_cb(pointer(self.raw_file), REGFI_ENCODING_UTF8) 642 if not self.file: 643 # XXX: switch to non-generic exception 644 raise Exception("Could not open registry file. Current log:\n" 645 + GetLogMessages()) 637 638 if fn != None: 639 self.file = regfi.regfi_alloc(fn, REGFI_ENCODING_UTF8) 640 if not self.file: 641 # XXX: switch to non-generic exception 642 raise Exception("Could not open registry file. Current log:\n" 643 + GetLogMessages()) 644 else: 645 fh.seek(0) 646 self.raw_file = structures.REGFI_RAW_FILE() 647 self.raw_file.fh = fh 648 self.raw_file.seek = seek_cb_type(self.raw_file.cb_seek) 649 self.raw_file.read = read_cb_type(self.raw_file.cb_read) 650 self.file = regfi.regfi_alloc_cb(pointer(self.raw_file), REGFI_ENCODING_UTF8) 651 if not self.file: 652 # XXX: switch to non-generic exception 653 raise Exception("Could not open registry file. Current log:\n" 654 + GetLogMessages()) 655 646 656 647 657 def __getattr__(self, name): … … 703 713 def __init__(self, hive): 704 714 self._iter = regfi.regfi_iterator_new(hive.file, REGFI_ENCODING_UTF8) 705 if self._iter == None:715 if not self._iter: 706 716 raise Exception("Could not create iterator. Current log:\n" 707 717 + GetLogMessages())
Note: See TracChangeset
for help on using the changeset viewer.