From c4083f843b3f3482c7d2fe82e1b87293db3233de Mon Sep 17 00:00:00 2001 From: cccs-jh <63320703+cccs-jh@users.noreply.github.com> Date: Thu, 13 Jul 2023 12:13:50 -0400 Subject: [PATCH 1/2] Ensure FileNode.data is initialized in __init__ and is not used if it is None. --- pyOneNote/FileNode.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyOneNote/FileNode.py b/pyOneNote/FileNode.py index a5f04d0..b75d3af 100644 --- a/pyOneNote/FileNode.py +++ b/pyOneNote/FileNode.py @@ -174,10 +174,12 @@ def __init__(self, file, document): # no data part self.data = None else: + # ensure self.data is initialized + self.data = None p = 1 current_offset = file.tell() - if self.file_node_header.baseType == 2: + if self.file_node_header.baseType == 2 and self.data is not None: self.children.append(FileNodeList(file, self.document, self.data.ref)) file.seek(current_offset) From e4c7305dd3593cb3a076391496d22113d3707a50 Mon Sep 17 00:00:00 2001 From: cccs-jh <63320703+cccs-jh@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:29:37 -0500 Subject: [PATCH 2/2] onetoc2 GlobalIdTable handling --- pyOneNote/FileNode.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pyOneNote/FileNode.py b/pyOneNote/FileNode.py index b75d3af..c91f537 100644 --- a/pyOneNote/FileNode.py +++ b/pyOneNote/FileNode.py @@ -173,6 +173,12 @@ def __init__(self, file, document): elif self.file_node_header.file_node_type in ["RevisionManifestEndFND", "ObjectGroupEndFND"]: # no data part self.data = None + elif self.file_node_header.file_node_type == "GlobalIdTableStartFNDX": + self.data = GlobalIdTableStartFNDX(file) + elif self.file_node_header.file_node_type == "GlobalIdTableEntry2FNDX": + self.data = GlobalIdTableEntry2FNDX(file) + elif self.file_node_header.file_node_type == "GlobalIdTableEntry3FNDX": + self.data = GlobalIdTableEntry3FNDX(file) else: # ensure self.data is initialized self.data = None @@ -326,6 +332,21 @@ def __init__(self, file): self.guid = uuid.UUID(bytes_le=self.guid) +class GlobalIdTableEntry2FNDX: + def __init__(self, file): + self.iIndexMapFrom, self.iIndexMapTo = struct.unpack('