summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2022-02-15 20:08:06 -0500
committerGlenn Smith <glenn@vector35.com>2022-02-16 15:32:39 -0500
commit925323f286e2ff2b866c2c65cdcc342cafa4afe7 (patch)
tree0540cb24a37fad76fa46d20af49c0a6ac402b916 /binaryninjaapi.h
parentff9ee07f19597d90ac68d0bd04ab58947f2e604f (diff)
Escape type names and definitions
Closes #2427, #2585, #1658, #1632, probably others
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h24
1 files changed, 15 insertions, 9 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index e89a572a..d0feb2d1 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1267,10 +1267,13 @@ namespace BinaryNinja {
virtual size_t size() const;
virtual size_t StringSize() const;
- virtual std::string GetString() const;
+ virtual std::string GetString(BNTokenEscapingType escaping = NoTokenEscapingType) const;
virtual std::string GetJoinString() const { return m_join; }
virtual bool IsEmpty() const { return m_name.size() == 0; }
+ static std::string EscapeTypeName(const std::string& name, BNTokenEscapingType escaping);
+ static std::string UnescapeTypeName(const std::string& name, BNTokenEscapingType escaping);
+
BNNameList GetAPIObject() const;
static void FreeAPIObject(BNNameList* name);
static NameList FromAPIObject(BNNameList* name);
@@ -2932,17 +2935,20 @@ namespace BinaryNinja {
uint64_t GetElementCount() const;
uint64_t GetOffset() const;
- std::string GetString(Platform* platform = nullptr) const;
- std::string GetTypeAndName(const QualifiedName& name) const;
- std::string GetStringBeforeName(Platform* platform = nullptr) const;
- std::string GetStringAfterName(Platform* platform = nullptr) const;
+ std::string GetString(Platform* platform = nullptr, BNTokenEscapingType escaping = NoTokenEscapingType) const;
+ std::string GetTypeAndName(const QualifiedName& name, BNTokenEscapingType escaping = NoTokenEscapingType) const;
+ std::string GetStringBeforeName(Platform* platform = nullptr, BNTokenEscapingType escaping = NoTokenEscapingType) const;
+ std::string GetStringAfterName(Platform* platform = nullptr, BNTokenEscapingType escaping = NoTokenEscapingType) const;
std::vector<InstructionTextToken> GetTokens(
- Platform* platform = nullptr, uint8_t baseConfidence = BN_FULL_CONFIDENCE) const;
+ Platform* platform = nullptr, uint8_t baseConfidence = BN_FULL_CONFIDENCE,
+ BNTokenEscapingType escaping = NoTokenEscapingType) const;
std::vector<InstructionTextToken> GetTokensBeforeName(
- Platform* platform = nullptr, uint8_t baseConfidence = BN_FULL_CONFIDENCE) const;
+ Platform* platform = nullptr, uint8_t baseConfidence = BN_FULL_CONFIDENCE,
+ BNTokenEscapingType escaping = NoTokenEscapingType) const;
std::vector<InstructionTextToken> GetTokensAfterName(
- Platform* platform = nullptr, uint8_t baseConfidence = BN_FULL_CONFIDENCE) const;
+ Platform* platform = nullptr, uint8_t baseConfidence = BN_FULL_CONFIDENCE,
+ BNTokenEscapingType escaping = NoTokenEscapingType) const;
Ref<Type> Duplicate() const;
@@ -3014,7 +3020,7 @@ namespace BinaryNinja {
bool AddTypeMemberTokens(BinaryView* data, std::vector<InstructionTextToken>& tokens, int64_t offset,
std::vector<std::string>& nameList, size_t size = 0, bool indirect = false);
std::vector<TypeDefinitionLine> GetLines(Ref<BinaryView> data, const std::string& name,
- int lineWidth = 80, bool collapsed = false);
+ int lineWidth = 80, bool collapsed = false, BNTokenEscapingType escaping = NoTokenEscapingType);
static std::string GetSizeSuffix(size_t size);
};