anchor.diff:  	      "View I/O logged after the test run</a></li>\n</ul>\n",
   	      [MiscIoName,MiscIoName]),
   
  -    print_style(Fd,group_leader(),undefined),
  +    print_style(Fd, fun io:format/3, undefined),
       io:format(Fd, 
   	      xhtml("<br><h2>Progress Log</h2>\n<pre>\n",
   		    "<br />\n<h4>PROGRESS LOG</h4>\n<pre>\n"), []),
       Fd.
   
  -print_style(Fd,GL,undefined) ->
  +print_style(Fd, IoFormat, undefined) ->
       case basic_html() of
   	true ->
   	    Style = "<style>\n
   		div.ct_internal { background:lightgrey; color:black; }\n
   		div.default     { background:lightgreen; color:black; }\n
   		</style>\n",
  -	    if Fd == GL -> io:format(["$tc_html",Style], []);
  -	       true     -> io:format(Fd, Style, [])
  -	    end;
  +	    IoFormat(Fd, Style, []);
   	_ ->
   	    ok
       end;
   
  -print_style(Fd,GL,StyleSheet) ->
  +print_style(Fd, IoFormat, StyleSheet) ->
       case file:read_file(StyleSheet) of
   	{ok,Bin} ->
   	    Str = b2s(Bin,encoding(StyleSheet)),
  
positive.code: 	    %% make sure no IO for this test case from the
  	    %% CT logger gets rejected
  	    test_server:permit_io(GL, self()),
  	    print_style(GL,GL,State#logger_state.stylesheet),
  	    set_evmgr_gl(GL),
  	    TCGLs = add_tc_gl(TCPid,GL,State),
  	    if not RefreshLog ->
  
negative.code: 		       N1 -> N1
  		   end,
  	    if (Pos0 == 0) and (Pos1 /= 0) ->
  		    print_style_error(Fd, IoFormat,
  				      StyleSheet, missing_style_start_tag);
  	       (Pos0 /= 0) and (Pos1 == 0) ->
  		    print_style_error(Fd, IoFormat,
  				      StyleSheet,missing_style_end_tag);
  	       Pos0 /= 0 ->
  		    Style = string:sub_string(Str,Pos0,Pos1+7),
  		    IoFormat(Fd,"~ts\n",[Style]);
  	       Pos0 == 0 ->
  		    IoFormat(Fd,"<style>\n~ts</style>\n",[Str])
  	    end;
  	{error,Reason} ->
  	    print_style_error(Fd,IoFormat,StyleSheet,Reason)
      end.
  
  print_style_error(Fd, IoFormat, StyleSheet, Reason) ->
      IO = io_lib:format("\n<!-- Failed to load stylesheet ~ts: ~p -->\n",
  		       [StyleSheet,Reason]),
      IoFormat(Fd, IO, []),
      print_style(Fd, IoFormat, undefined).
  
  close_ctlog(Fd) ->
      io:format(Fd, "\n</pre>\n", []),
      io:format(Fd, [xhtml("<br><br>\n", "<br /><br />\n") | footer()], []),
      file:close(Fd).
  
  %%%-----------------------------------------------------------------
  %%% tc_io_format/3
  %%% Tell common_test's IO server (group leader) not to escape
  %%% HTML characters.
  
  -spec tc_io_format(io:device(), io:format(), [term()]) -> 'ok'.
  
  tc_io_format(Fd, Format0, Args) ->
      %% We know that the specially wrapped format string is handled
      %% by our IO server, but Dialyzer does not and would tell us
      %% that the call to io:format/3 would fail. Therefore, we must
      %% fool dialyzer.
  
      Format = case cloaked_true() of
  		 true -> ["$tc_html",Format0];
  		 false -> Format0		%Never happens.
  	     end,
      io:format(Fd, Format, Args).
  
  %% Return 'true', but let dialyzer think that a boolean is returned.
  cloaked_true() ->
      is_process_alive(self()).
  
  
  %%%-----------------------------------------------------------------
  