@Override
	public String getMenuDisplay(long value, int size, boolean isSigned, Program program) {
		StringBuilder buffer = new StringBuilder();
		if (size > 1) {
			buffer.append('L');
		}
		if ((size == 1 && value >= 0x7f) || codePointNeedsEscape((int) value)) {
			switch ((int) value) {
				case 0:
					buffer.append("'\\0'");
					break;
				case 7:
					buffer.append("'\\a'");
					break;
				case 8:
					buffer.append("'\\b'");
					break;
				case 9:
					buffer.append("'\\t'");
					break;
				case 10:
					buffer.append("'\\n'");
					break;
				case 11:
					buffer.append("'\\v'");
					break;
				case 12:
					buffer.append("'\\f'");
					break;
				case 13:
					buffer.append("'\\r'");
					break;
				case '"':
					buffer.append("\\\"");
					break;
				case 92:
					buffer.append("\\\\");
					break;
				case '\'':
					buffer.append("\\'");
					break;
				default:
					// Generic unicode escape
					generateHexEscape(buffer, (int) value);
					break;
			}
		}
		else {
			buffer.append('\'').append((char) value).append('\'');
		}
		return buffer.toString();
	}
Return true for any unicode codepoint that needs to be represented with an escape sequence
@param codepoint is the code point value
@return true if the codepoint needs to be escaped
Ghidra/Features/Decompiler/src/main/java/ghidra/app/plugin/core/decompile/actions/ConvertCharAction.java