From 6ff38f09ebc1eb74a6df0da09cb2552c2ae4dfea Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Thu, 26 Mar 2020 17:46:30 -0700 Subject: [PATCH] + Added check for edge case of backtick escape. Added concept for only trimming ends, tho it remains commented out. --- src/network/NetworkColiru.java | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/network/NetworkColiru.java b/src/network/NetworkColiru.java index 6cf23fd..ceb475c 100644 --- a/src/network/NetworkColiru.java +++ b/src/network/NetworkColiru.java @@ -6,14 +6,41 @@ public class NetworkColiru { public String compileCPlusPlus(String query) { - // Escape characters that need escaping. - // Primarily types of whitespace. + // Escape characters that need escaping - mostly whitespace. query = query.replace("\\n", "\\\\n"); query = query.replace("\\t", "\\\\t"); query = query.replace("\n", "\\n"); query = query.replace("\"", "\\\""); query = query.replace("\t", "\\t"); + query = query.replace("`", ""); + +// // replace backticks on only the edges of the string. +// StringBuilder s = new StringBuilder(query); +// +// for(int i = 0; i < s.length(); ++i) +// { +// if(s.charAt(i) != '`') +// break; +// +// s.setCharAt(i, ' '); +// } +// +// for(int i = s.length() - 1; i >= 0; --i) +// { +// if(s.charAt(i) != '`') +// break; +// +// s.setCharAt(i, ' '); +// } +// +// query = s.toString().trim(); + // Determine if the query is effectively empty or not. If it is, don't attempt to compile it. + if(query.trim().length() == 0) + { + return "I can't compile nothing!"; + } + // Send the compilation request! String result = HTTPUtils.sendPOSTRequest("http://coliru.stacked-crooked.com/compile" , "{ \"cmd\": \"g++ main.cpp && ./a.out\", \"src\": \"" + query + "\" }");