@Override
		public void handleCSI(String param, String inter, String finalChar)
				throws BadLocationException {
			if (finalChar.equals("m")) {
				/* Select Graphic Rendition */
				if (param.isEmpty()) {
					param = "0";
				}
				String[] bits = param.split("[:;]");
				int pos = 0;
				while (pos < bits.length) {
					try {
						int advance = handleSGRAttribute(bits, pos);
						pos += advance;
					}
					catch (NumberFormatException e) {
						pos += 1;
					}
				}
			}
			/* For now, ignore all other CSI commands */
		}
Handler for a Select Graphic Rendition attribute (for CSI final byte {@code m})

<p>
See <a href=
"https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters">ANSI
escape codes</a> on Wikipedia.

@param bits the semicolon-separated pieces, named {@code n} in the Wikipedia page.
@param pos the index in {@code bits} to process next
@return the number of {@code bits} processed (to advance before the next invocation)
@throws NumberFormatException if a bit to process was not an integer (in decimal).
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/interpreter/AnsiRenderer.java