Skip to content

Commit 889e915

Browse files
committed
Made the file import adhere to the VBE's encoding convention.
1 parent a6ea3c8 commit 889e915

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

Rubberduck.VBEEditor/SafeComWrappers/VBA/VBComponents.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.IO;
55
using System.Linq;
66
using System.Runtime.InteropServices;
7+
using System.Text;
78
using Rubberduck.VBEditor.Events;
89
using Rubberduck.VBEditor.Extensions;
910
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
@@ -108,8 +109,6 @@ public void ImportSourceFile(string path)
108109
return;
109110
}
110111

111-
var codeString = File.ReadAllText(path);
112-
var codeLines = codeString.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
113112
if (ext == ComponentTypeExtensions.DocClassExtension)
114113
{
115114
try
@@ -123,6 +122,8 @@ public void ImportSourceFile(string path)
123122

124123
var component = this[name];
125124
component.CodeModule.Clear();
125+
126+
var codeString = File.ReadAllText(path);
126127
component.CodeModule.AddFromString(codeString);
127128
}
128129
else if (ext == ComponentTypeExtensions.FormExtension)
@@ -138,6 +139,9 @@ public void ImportSourceFile(string path)
138139

139140
var component = this[name];
140141

142+
var codeString = File.ReadAllText(path, Encoding.Default); //The VBE uses the current ANSI codepage from the windows settings to export and import.
143+
var codeLines = codeString.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
144+
141145
var nonAttributeLines = codeLines.TakeWhile(line => !line.StartsWith("Attribute")).Count();
142146
var attributeLines = codeLines.Skip(nonAttributeLines).TakeWhile(line => line.StartsWith("Attribute")).Count();
143147
var declarationsStartLine = nonAttributeLines + attributeLines + 1;

0 commit comments

Comments
 (0)