diff --git a/NAPS2.App.Tests/NAPS2.App.Tests.csproj b/NAPS2.App.Tests/NAPS2.App.Tests.csproj index 8a1f3eb52..336263359 100644 --- a/NAPS2.App.Tests/NAPS2.App.Tests.csproj +++ b/NAPS2.App.Tests/NAPS2.App.Tests.csproj @@ -1,7 +1,8 @@ - net8 + net8-windows + net8 true None Debug;Release;DebugLang diff --git a/NAPS2.Images/ImageContext.cs b/NAPS2.Images/ImageContext.cs index 78f19fb6b..49a56f140 100644 --- a/NAPS2.Images/ImageContext.cs +++ b/NAPS2.Images/ImageContext.cs @@ -245,7 +245,7 @@ public abstract class ImageContext return RenderFromStorage(image.Storage, (image as IPdfRendererProvider)?.PdfRenderer); } - private IMemoryImage RenderFromStorage(IImageStorage storage, IPdfRenderer pdfRenderer) + private IMemoryImage RenderFromStorage(IImageStorage storage, IPdfRenderer? pdfRenderer) { switch (storage) { diff --git a/NAPS2.Images/ImageExtensions.cs b/NAPS2.Images/ImageExtensions.cs index e54f51511..8f732e9c0 100644 --- a/NAPS2.Images/ImageExtensions.cs +++ b/NAPS2.Images/ImageExtensions.cs @@ -16,8 +16,7 @@ public static class ImageExtensions /// /// /// - internal static bool IsUntransformedJpegFile(this IRenderableImage image, - [MaybeNullWhen(false)] out string jpegPath) + internal static bool IsUntransformedJpegFile(this IRenderableImage image, out string jpegPath) { if (image is { Storage: ImageFileStorage fileStorage, TransformState.IsEmpty: true } && ImageContext.GetFileFormatFromExtension(fileStorage.FullPath) == ImageFileFormat.Jpeg) @@ -25,7 +24,7 @@ public static class ImageExtensions jpegPath = fileStorage.FullPath; return true; } - jpegPath = null; + jpegPath = null!; return false; } diff --git a/NAPS2.Images/NAPS2.Images.csproj b/NAPS2.Images/NAPS2.Images.csproj index 1e739199b..9cc3f1d34 100644 --- a/NAPS2.Images/NAPS2.Images.csproj +++ b/NAPS2.Images/NAPS2.Images.csproj @@ -18,7 +18,6 @@ - diff --git a/NAPS2.Internals/Threading/AsyncProducers.cs b/NAPS2.Internals/Threading/AsyncProducers.cs index 09f3d705c..c7a58bf24 100644 --- a/NAPS2.Internals/Threading/AsyncProducers.cs +++ b/NAPS2.Internals/Threading/AsyncProducers.cs @@ -3,6 +3,7 @@ namespace NAPS2.Util; public static class AsyncProducers { +#pragma warning disable CS1998 public static async IAsyncEnumerable Empty() { yield break; diff --git a/NAPS2.Lib.Gtk/Util/GLibLogInterceptor.cs b/NAPS2.Lib.Gtk/Util/GLibLogInterceptor.cs index 586221569..1fffeca5b 100644 --- a/NAPS2.Lib.Gtk/Util/GLibLogInterceptor.cs +++ b/NAPS2.Lib.Gtk/Util/GLibLogInterceptor.cs @@ -75,6 +75,7 @@ public static class GLibLogInterceptor nint nFields, IntPtr user_data); + [StructLayout(LayoutKind.Sequential)] struct GLogField { public string key; diff --git a/NAPS2.Lib.WinForms/EtoForms/Ui/WinFormsDesktopForm.cs b/NAPS2.Lib.WinForms/EtoForms/Ui/WinFormsDesktopForm.cs index c770f8741..bc865bf26 100644 --- a/NAPS2.Lib.WinForms/EtoForms/Ui/WinFormsDesktopForm.cs +++ b/NAPS2.Lib.WinForms/EtoForms/Ui/WinFormsDesktopForm.cs @@ -169,7 +169,7 @@ public class WinFormsDesktopForm : DesktopForm TextAlign = ContentAlignment.MiddleLeft, Image = Image.FromStream(new MemoryStream(Icons.control_play_blue_small)) }; - item.Click += (_, _) => _desktopScanController.ScanWithProfile((ScanProfile) item.Tag); + item.Click += (_, _) => _desktopScanController.ScanWithProfile((ScanProfile) item.Tag!); toolbarItems.Add(item); } for (int i = 0; i < profiles.Count; i++) diff --git a/NAPS2.Lib/EtoForms/Ui/OcrSetupForm.cs b/NAPS2.Lib/EtoForms/Ui/OcrSetupForm.cs index 88b4f0612..27108cbf1 100644 --- a/NAPS2.Lib/EtoForms/Ui/OcrSetupForm.cs +++ b/NAPS2.Lib/EtoForms/Ui/OcrSetupForm.cs @@ -143,7 +143,7 @@ public class OcrSetupForm : EtoDialogBase LoadLanguages(); } - private void OcrLang_SelectedIndexChanged(object sender, EventArgs e) + private void OcrLang_SelectedIndexChanged(object? sender, EventArgs e) { if (_suppressLangChangeEvent) return; if (_ocrLang.SelectedIndex == _ocrLang.Items.Count - 1) diff --git a/NAPS2.Lib/Scan/ScanPerformer.cs b/NAPS2.Lib/Scan/ScanPerformer.cs index b0714f052..46c191f01 100644 --- a/NAPS2.Lib/Scan/ScanPerformer.cs +++ b/NAPS2.Lib/Scan/ScanPerformer.cs @@ -236,10 +236,10 @@ internal class ScanPerformer : IScanPerformer : TwainTransferMode.Native, ShowProgress = scanProfile.TwainProgress, IncludeWiaDevices = false - // TODO: Consider adding a user option for TwainOptions.ShowProgress instead of our progress window }, SaneOptions = { + // We use a worker process for SANE so we should clean up after each operation KeepInitialized = false }, KeyValueOptions = scanProfile.KeyValueOptions != null diff --git a/NAPS2.Sdk.ScannerTests/NAPS2.Sdk.ScannerTests.csproj b/NAPS2.Sdk.ScannerTests/NAPS2.Sdk.ScannerTests.csproj index b964c098b..1cafcea3c 100644 --- a/NAPS2.Sdk.ScannerTests/NAPS2.Sdk.ScannerTests.csproj +++ b/NAPS2.Sdk.ScannerTests/NAPS2.Sdk.ScannerTests.csproj @@ -1,7 +1,7 @@ - net8;net462 + net8-windows;net462 net8 NAPS2.Sdk.ScannerTests diff --git a/NAPS2.Sdk.Tests/Pdf/PdfFontTests.cs b/NAPS2.Sdk.Tests/Pdf/PdfFontTests.cs index dc1fa164c..a5d9d9145 100644 --- a/NAPS2.Sdk.Tests/Pdf/PdfFontTests.cs +++ b/NAPS2.Sdk.Tests/Pdf/PdfFontTests.cs @@ -9,6 +9,9 @@ using Alphabet = NAPS2.Pdf.PdfFontPicker.Alphabet; namespace NAPS2.Sdk.Tests.Pdf; +// As we use the same data for multiple methods, some parameters may be unused +#pragma warning disable xUnit1026 + public class PdfFontTests : ContextualTests { private readonly PdfImporter _importer; @@ -36,7 +39,7 @@ public class PdfFontTests : ContextualTests [Theory] [MemberData(nameof(AlphabetTestCases))] - internal async Task MapLanguageCodeToAlphabet(Alphabet alphabet, string langCode, string text, bool rtl) + internal void MapLanguageCodeToAlphabet(Alphabet alphabet, string langCode, string text, bool rtl) { Assert.Equal(alphabet, PdfFontPicker.MapLanguageCodeToAlphabet(langCode)); }