From 7cc726097f7aea532ffbed7a01982c617155acf3 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Mon, 14 May 2018 03:26:38 -0600 Subject: [PATCH] cache: Strip tags from java names --- .../java/net/runelite/cache/util/Namer.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/cache/src/main/java/net/runelite/cache/util/Namer.java b/cache/src/main/java/net/runelite/cache/util/Namer.java index 2fba4e8e94..834da31f98 100644 --- a/cache/src/main/java/net/runelite/cache/util/Namer.java +++ b/cache/src/main/java/net/runelite/cache/util/Namer.java @@ -1,5 +1,6 @@ /* * Copyright (c) 2017, Adam + * Copyright (c) 2018, Joshua Filby * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -53,7 +54,8 @@ public class Namer private static String sanitize(String in) { - String s = in.toUpperCase() + String s = removeTags(in) + .toUpperCase() .replace(' ', '_') .replaceAll("[^a-zA-Z0-9_]", ""); if (s.isEmpty()) @@ -69,4 +71,30 @@ public class Namer return s; } } + + public static String removeTags(String str) + { + StringBuilder builder = new StringBuilder(str.length()); + boolean inTag = false; + + for (int i = 0; i < str.length(); i++) + { + char currentChar = str.charAt(i); + + if (currentChar == '<') + { + inTag = true; + } + else if (currentChar == '>') + { + inTag = false; + } + else if (!inTag) + { + builder.append(currentChar); + } + } + + return builder.toString(); + } }