diff --git a/cache/src/main/java/net/runelite/cache/script/disassembler/Disassembler.java b/cache/src/main/java/net/runelite/cache/script/disassembler/Disassembler.java index 0a6382fec8..523796c49f 100644 --- a/cache/src/main/java/net/runelite/cache/script/disassembler/Disassembler.java +++ b/cache/src/main/java/net/runelite/cache/script/disassembler/Disassembler.java @@ -24,6 +24,8 @@ */ package net.runelite.cache.script.disassembler; +import com.google.common.escape.Escaper; +import com.google.common.escape.Escapers; import java.io.IOException; import java.util.Map; import java.util.Map.Entry; @@ -37,6 +39,10 @@ import org.slf4j.LoggerFactory; public class Disassembler { private static final Logger logger = LoggerFactory.getLogger(Disassembler.class); + private static final Escaper ESCAPER = Escapers.builder() + .addEscape('"', "\\\"") + .addEscape('\\', "\\\\") + .build(); private final Instructions instructions = new Instructions(); @@ -165,7 +171,7 @@ public class Disassembler if (sop != null) { - writer.append(" \"").append(sop).append("\""); + writer.append(" \"").append(ESCAPER.escape(sop)).append("\""); } if (opcode == Opcodes.SWITCH)