docs: def ctrl_c_signal_handler(_, frame):
  	"""CTRL-c signal handler - enters a pause point if it can.
  	"""
  	global ctrl_c_calls
  	ctrl_c_calls += 1
  	if ctrl_c_calls > 10:
  		shutit_global.shutit_global_object.handle_exit(exit_code=1)
  	shutit_frame = get_shutit_frame(frame)
  	if in_ctrlc:
  		msg = 'CTRL-C hit twice, quitting'
  		if shutit_frame:
  			shutit_global.shutit_global_object.shutit_print('\n')
  			shutit = shutit_frame.f_locals['shutit']
  			shutit.log(msg,level=logging.CRITICAL)
  		else:
  			shutit_global.shutit_global_object.shutit_print(msg)
  		shutit_global.shutit_global_object.handle_exit(exit_code=1)
  	if shutit_frame:
  		shutit = shutit_frame.f_locals['shutit']
  		if shutit.build['ctrlc_passthrough']:
  			shutit.self.get_current_shutit_pexpect_session().pexpect_child.sendline(r'')
  			return
  		shutit_global.shutit_global_object.shutit_print(colorise(31,"\r" + r"You may need to wait for a command to complete before a pause point is available. Alternatively, CTRL-\ to quit."))
  		shutit.build['ctrlc_stop'] = True
  		t = threading.Thread(target=ctrlc_background)
  		t.daemon = True
  		t.start()
  		# Reset the ctrl-c calls
  		ctrl_c_calls = 0
  		return
  	shutit_global.shutit_global_object.shutit_print(colorise(31,'\n' + '*' * 80))
  	shutit_global.shutit_global_object.shutit_print(colorise(31,"CTRL-c caught, CTRL-c twice to quit."))
  	shutit_global.shutit_global_object.shutit_print(colorise(31,'*' * 80))
  	t = threading.Thread(target=ctrlc_background)
  	t.daemon = True
  	t.start()
  	# Reset the ctrl-c calls
  	ctrl_c_calls = 0