diff --git a/.gitignore b/.gitignore index 06d1bbfc..56fef459 100644 --- a/.gitignore +++ b/.gitignore @@ -241,3 +241,5 @@ _Pvt_Extensions # FAKE - F# Make .fake/ +/src/CodeCoverage/OpenCover.4.6.519 +/src/test-results.xml diff --git a/src/CodeCoverage/CodeCoverage.cmd b/src/CodeCoverage/CodeCoverage.cmd new file mode 100644 index 00000000..a6c3a55b --- /dev/null +++ b/src/CodeCoverage/CodeCoverage.cmd @@ -0,0 +1,15 @@ +@echo off + +cd src\CodeCoverage + +nuget restore packages.config -PackagesDirectory . + +cd .. + +dotnet restore UglyToad.Pdf.sln +dotnet build UglyToad.Pdf.sln --no-incremental -c debug /p:codecov=true + +rem The -threshold options prevents this taking ages... +CodeCoverage\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test UglyToad.Pdf.Tests\UglyToad.Pdf.Tests.csproj --no-build -c debug" -register:user -output:.\test-results.xml -hideskipped:All -returntargetcode -oldStyle -filter:"+[UglyToad.Pdf*]* -[UglyToad.Pdf.Tests*]*" + +if %errorlevel% neq 0 exit /b %errorlevel% diff --git a/src/CodeCoverage/nuget.exe b/src/CodeCoverage/nuget.exe new file mode 100644 index 00000000..a34c3675 Binary files /dev/null and b/src/CodeCoverage/nuget.exe differ diff --git a/src/CodeCoverage/packages.config b/src/CodeCoverage/packages.config new file mode 100644 index 00000000..973b7f81 --- /dev/null +++ b/src/CodeCoverage/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/UglyToad.Pdf/Fonts/TrueType/Tables/IndexToLocationTable.cs b/src/UglyToad.Pdf/Fonts/TrueType/Tables/IndexToLocationTable.cs new file mode 100644 index 00000000..2790ae9a --- /dev/null +++ b/src/UglyToad.Pdf/Fonts/TrueType/Tables/IndexToLocationTable.cs @@ -0,0 +1,29 @@ +namespace UglyToad.Pdf.Fonts.TrueType.Tables +{ + /// + /// Stores the offset to the glyph locations relative to the start of the glyph data table. + /// Index zero points to the "missing character" which is used for characters not provided by the font. + /// The number of glpyhs in this table should match the maximum profile table. + /// + internal class IndexToLocationTable : ITable + { + public string Tag => TrueTypeHeaderTable.Loca; + + public TrueTypeHeaderTable DirectoryTable { get; } + + public long[] GlyphOffsets { get; } + + public IndexToLocationTable(TrueTypeHeaderTable directoryTable, long[] glyphOffsets) + { + DirectoryTable = directoryTable; + GlyphOffsets = glyphOffsets; + } + + public static IndexToLocationTable Load(TrueTypeDataBytes data, TrueTypeHeaderTable table) + { + data.Seek(table.Offset); + + return null; + } + } +}