From 1866158092c77bdc3da267ffaae68ad2feb7822f Mon Sep 17 00:00:00 2001 From: Luke Street Date: Mon, 22 Sep 2025 23:31:57 -0600 Subject: [PATCH] Add 'None' demangler option --- objdiff-core/config-schema.json | 28 ++++++++++++---------------- objdiff-core/src/diff/demangler.rs | 1 + objdiff-gui/src/views/demangle.rs | 4 +++- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/objdiff-core/config-schema.json b/objdiff-core/config-schema.json index 792b3c8..515f1bb 100644 --- a/objdiff-core/config-schema.json +++ b/objdiff-core/config-schema.json @@ -37,18 +37,23 @@ "name": "Auto", "description": "Try to automatically guess the mangling format." }, + { + "value": "none", + "name": "None", + "description": "Disable demangling." + }, { "value": "codewarrior", "name": "CodeWarrior" }, - { - "value": "msvc", - "name": "MSVC" - }, { "value": "itanium", "name": "Itanium" }, + { + "value": "msvc", + "name": "MSVC" + }, { "value": "gnu_legacy", "name": "GNU g++ (Legacy)", @@ -312,26 +317,17 @@ { "id": "mips", "name": "MIPS", - "properties": [ - "mips.abi", - "mips.instrCategory", - "mips.registerPrefix" - ] + "properties": ["mips.abi", "mips.instrCategory", "mips.registerPrefix"] }, { "id": "ppc", "name": "PowerPC", - "properties": [ - "ppc.calculatePoolRelocations", - "analyzeDataFlow" - ] + "properties": ["ppc.calculatePoolRelocations", "analyzeDataFlow"] }, { "id": "x86", "name": "x86", - "properties": [ - "x86.formatter" - ] + "properties": ["x86.formatter"] } ] } diff --git a/objdiff-core/src/diff/demangler.rs b/objdiff-core/src/diff/demangler.rs index 5bfbb90..30b987f 100644 --- a/objdiff-core/src/diff/demangler.rs +++ b/objdiff-core/src/diff/demangler.rs @@ -6,6 +6,7 @@ use crate::diff::Demangler; impl Demangler { pub fn demangle(&self, name: &str) -> Option { match self { + Demangler::None => None, Demangler::Codewarrior => Self::demangle_codewarrior(name), Demangler::Msvc => Self::demangle_msvc(name), Demangler::Itanium => Self::demangle_itanium(name), diff --git a/objdiff-gui/src/views/demangle.rs b/objdiff-gui/src/views/demangle.rs index 31a4788..33097c9 100644 --- a/objdiff-gui/src/views/demangle.rs +++ b/objdiff-gui/src/views/demangle.rs @@ -20,7 +20,9 @@ pub fn demangle_window( .selected_text(state.demangler.name().to_string()) .show_ui(ui, |ui| { for demangler in Demangler::variants() { - ui.selectable_value(&mut state.demangler, *demangler, demangler.name()); + if *demangler != Demangler::None { + ui.selectable_value(&mut state.demangler, *demangler, demangler.name()); + } } }); ui.separator();