From d2ed73f1ea100ce85b939557f683d3c50f62476d Mon Sep 17 00:00:00 2001 From: Dave Nicolson Date: Sun, 7 Dec 2025 22:04:00 +0100 Subject: [PATCH] Fix additional pluralization issues --- .../plugin/core/scalartable/ScalarSearchProvider.java | 6 ++++-- .../ghidra/app/util/bin/format/dwarf/DWARFImporter.java | 4 +++- .../fsbrowser/tasks/GFileSystemExtractAllTask.java | 9 ++++++--- .../core/decompiler/taint/TaintLabelsTableProvider.java | 2 +- .../src/main/java/ghidra/server/UserManager.java | 3 ++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java index 5dfbf74666..08b42fe106 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/scalartable/ScalarSearchProvider.java @@ -209,8 +209,10 @@ public class ScalarSearchProvider extends ComponentProviderAdapter { filter.setSecondaryFilter(new ScalarTableSecondaryFilter()); - scalarModel.addTableModelListener( - e -> setSubTitle(primarySubTitle + ' ' + scalarModel.getRowCount() + " items")); + scalarModel.addTableModelListener(e -> { + int rowCount = scalarModel.getRowCount(); + setSubTitle(primarySubTitle + ' ' + rowCount + " item" + (rowCount == 1 ? "" : "s")); + }); scalarTable.installNavigation(tool); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFImporter.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFImporter.java index 6f0f9528e8..de1033d53f 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFImporter.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFImporter.java @@ -253,7 +253,9 @@ public class DWARFImporter { } monitor.setIndeterminate(true); - monitor.setMessage("Sorting " + sourceInfo.size() + " entries"); + int sourceInfoSize = sourceInfo.size(); + monitor.setMessage("Sorting " + sourceInfoSize + " entr" + + (sourceInfoSize == 1 ? "y" : "ies")); sourceInfo.sort((i, j) -> Long.compareUnsigned(i.address(), j.address())); monitor.setIndeterminate(false); monitor.initialize(sourceInfo.size(), "DWARF: Applying Source Map Info"); diff --git a/Ghidra/Features/Base/src/main/java/ghidra/plugins/fsbrowser/tasks/GFileSystemExtractAllTask.java b/Ghidra/Features/Base/src/main/java/ghidra/plugins/fsbrowser/tasks/GFileSystemExtractAllTask.java index d9de3acdc2..b56308b092 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/plugins/fsbrowser/tasks/GFileSystemExtractAllTask.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/plugins/fsbrowser/tasks/GFileSystemExtractAllTask.java @@ -69,9 +69,12 @@ public class GFileSystemExtractAllTask extends AbstractFileExtractorTask { catch (UnsupportedOperationException | IOException e) { Msg.showError(this, parentComponent, "Error extracting file", e.getMessage()); } - Msg.info(this, - "Exported " + getTotalFilesExportedCount() + " files, " + getTotalDirsExportedCount() + - " directories, " + getTotalBytesExportedCount() + " bytes"); + long files = getTotalFilesExportedCount(); + long dirs = getTotalDirsExportedCount(); + long bytes = getTotalBytesExportedCount(); + Msg.info(this, "Exported " + files + " file" + (files == 1 ? "" : "s") + ", " + dirs + + " director" + (dirs == 1 ? "y" : "ies") + ", " + bytes + " byte" + + (bytes == 1 ? "" : "s")); long elapsed = System.currentTimeMillis() - start_ts; diff --git a/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/decompiler/taint/TaintLabelsTableProvider.java b/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/decompiler/taint/TaintLabelsTableProvider.java index e85966553e..4b8a7d99e9 100644 --- a/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/decompiler/taint/TaintLabelsTableProvider.java +++ b/Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/decompiler/taint/TaintLabelsTableProvider.java @@ -92,7 +92,7 @@ public class TaintLabelsTableProvider extends ComponentProviderAdapter { int unfilteredCount = model.getUnfilteredRowCount(); model.getDataFrame().dumpTableToDebug(); - setSubTitle("" + rowCount + " items" + + setSubTitle("" + rowCount + " item" + (rowCount == 1 ? "" : "s") + (rowCount != unfilteredCount ? " (of " + unfilteredCount + ")" : "")); filterTable.repaint(); }); diff --git a/Ghidra/Features/GhidraServer/src/main/java/ghidra/server/UserManager.java b/Ghidra/Features/GhidraServer/src/main/java/ghidra/server/UserManager.java index 634734ff32..37edfcf9f0 100644 --- a/Ghidra/Features/GhidraServer/src/main/java/ghidra/server/UserManager.java +++ b/Ghidra/Features/GhidraServer/src/main/java/ghidra/server/UserManager.java @@ -92,7 +92,8 @@ public class UserManager { try { readUserListIfNeeded(); clearExpiredPasswords(); - log.info("User file contains " + userList.size() + " entries"); + int size = userList.size(); + log.info("User file contains " + size + " entr" + (size == 1 ? "y" : "ies")); } catch (FileNotFoundException e) { log.error("Existing User file not found.");