private void mergeFunction(Address entryPt, int chosenConflictOption, TaskMonitor monitor)
			throws CancelledException {
		updateProgressMessage("Merging function @ " + entryPt.toString(true));
		ProgramMerge pgmMerge = getProgramListingMerge(chosenConflictOption);
		if (pgmMerge == null) {
			return;
		}
		Program origPgm = pgmMerge.getOriginProgram();
		if (origPgm == null) {
			return;
		}
		Function f = pgmMerge.mergeFunction(entryPt, monitor);
		if (f != null) {
			try {
				Function origF = origPgm.getFunctionManager().getFunctionAt(entryPt);
				if (origF != null) {
					Namespace ns =
						listingMergeManager.resolveNamespace(origPgm, origF.getParentNamespace());
					f.setParentNamespace(ns);
				}
			}
			catch (DuplicateNameException e) {
				MergeManager.showBlockingError("Error Setting Function Namespace", e.getMessage());
			}
			catch (InvalidInputException e) {
				MergeManager.showBlockingError("Error Setting Function Namespace", e.getMessage());
			}
			catch (CircularDependencyException e) {
				MergeManager.showBlockingError("Error Setting Function Namespace", e.getMessage());
			}
		}
	}
This is a generic method for displaying the contents of the information 
buffer to the user.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/AbstractFunctionMerger.java