private static void recurseString(Program program, Address start, int maxLen) {
		int newLength = getMaxStringLength(program, start, maxLen);
		if (newLength <= 0) {
			return;
		}

		try {
			program.getListing().clearCodeUnits(start, start, false);
			DataUtilities.createData(program, start, StringDataType.dataType, newLength,
				DataUtilities.ClearDataMode.CLEAR_ALL_CONFLICT_DATA);

			if (newLength < maxLen) {
				recurseString(program, start.add(newLength), maxLen - newLength);
			}
		}
		catch (Exception e) {
			// Couldn't define string
		}
	}
Splits non-terminated strings into separate strings
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/rust/RustStringAnalyzer.java