From 1390f2ce304c25a40269c66d62d142dd6475510c Mon Sep 17 00:00:00 2001 From: joyfullservice Date: Wed, 8 Nov 2023 15:37:32 -0600 Subject: [PATCH] Move source reading function This is used in several areas, and allows us to maintain the source file encoding determination in a single location. --- .../modules/clsSourceParser.cls | 27 +------------- .../modules/modVCSUtility.bas | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/Version Control.accda.src/modules/clsSourceParser.cls b/Version Control.accda.src/modules/clsSourceParser.cls index d158b225..a0a55af8 100644 --- a/Version Control.accda.src/modules/clsSourceParser.cls +++ b/Version Control.accda.src/modules/clsSourceParser.cls @@ -45,33 +45,8 @@ Private this As udtThis '--------------------------------------------------------------------------------------- ' Public Function LoadSourceFile(strPath As String) - - Dim strTempFile As String - ResetContent - - ' Read text from file, and split into lines - If HasUcs2Bom(strPath) Then - this.strInput = ReadFile(strPath, "Unicode") - Else - ' ADP projects may contain mixed Unicode content - If CurrentProject.ProjectType = acADP Then - strTempFile = GetTempFile - ConvertUcs2Utf8 strPath, strTempFile, False - this.strInput = ReadFile(strTempFile) - DeleteFile strTempFile - Else - If DbVersion <= 4 Then - ' Access 2000 format exports using system codepage - ' See issue #217 - this.strInput = ReadFile(strPath, GetSystemEncoding) - Else - ' Newer versions export as UTF-8 - this.strInput = ReadFile(strPath) - End If - End If - End If - + this.strInput = ReadSourceFile(strPath) End Function diff --git a/Version Control.accda.src/modules/modVCSUtility.bas b/Version Control.accda.src/modules/modVCSUtility.bas index 9dbafb62..2974bbff 100644 --- a/Version Control.accda.src/modules/modVCSUtility.bas +++ b/Version Control.accda.src/modules/modVCSUtility.bas @@ -1027,3 +1027,39 @@ Public Function PassesSchemaFilter(strItem As String, varFilterArray As Variant) PassesSchemaFilter = blnPass End Function + + +'--------------------------------------------------------------------------------------- +' Procedure : ReadSourceFile +' Author : Adam Waller +' Date : 11/8/2023 +' Purpose : Load source file content into a string. (Considers BOM and file type) +'--------------------------------------------------------------------------------------- +' +Public Function ReadSourceFile(strPath As String) As String + + Dim strTempFile As String + + ' Read text from file, and split into lines + If HasUcs2Bom(strPath) Then + ReadSourceFile = ReadFile(strPath, "Unicode") + Else + ' ADP projects may contain mixed Unicode content + If CurrentProject.ProjectType = acADP Then + strTempFile = GetTempFile + ConvertUcs2Utf8 strPath, strTempFile, False + ReadSourceFile = ReadFile(strTempFile) + DeleteFile strTempFile + Else + If DbVersion <= 4 Then + ' Access 2000 format exports using system codepage + ' See issue #217 + ReadSourceFile = ReadFile(strPath, GetSystemEncoding) + Else + ' Newer versions export as UTF-8 + ReadSourceFile = ReadFile(strPath) + End If + End If + End If + +End Function