anchor.diff:      data := HELP_BOOK_HANDLER.(book.handler).HelpData(book, entrynr, type);
       if data <> fail then
         # show the data
  -      HELP_VIEWER_INFO.(viewer).show(data);
  -      break;
  +      return HELP_VIEWER_INFO.(viewer).show(
  +        [ book.bookname, StripEscapeSequences(book.entries[entrynr][1]), data]);
  +          # name of the help book, the text to be linked, and the URL
       else
  -      Print(" - no html help available. Please check other formats!<br/>");
  -      break;
  +      return rec( json := true
  +                  , source := "gap"
  +                  , data := rec( ("text/html") := Concatenation(
  +                      book.bookname, ": ", StripEscapeSequences(book.entries[entrynr][1]),
  +                     " - no html help available. Please check other formats!" ) ) );
       fi;
       HELP_LAST.VIEWER := viewer;
     od;
  
positive.code:     cnt := 0;
      # show exact matches first
      match := Concatenation(exact, match);
      for i  in match  do
        cnt := cnt+1;
        topic := Concatenation(i[1].bookname,": ",i[1].entries[i[2]][1]);
        Add(HELP_LAST.TOPICS, i);
        Add(lines,Concatenation("[",String(cnt),"] ",topic));
  
        str := Concatenation( i[1].bookname,": ",
                                                 StripEscapeSequences(i[1].entries[i[2]][1]), "\n");
        # to avoid line breaking when str contains escape sequences:
        n := 0;
        while n < Length(str) do
          Print(str{[n+1..Minimum(Length(str),
                                        n + QuoInt(SizeScreen()[1] ,2))]}, "\c");
          n := n + QuoInt(SizeScreen()[1] ,2);
        od;
        HELP_PRINT_URL(i);
      od;
      #Pager(rec(lines := lines, formatted := true, start := 2 ));
      return true;
    fi;
  end);
  
  
negative.code:   elif 1 = Length(exact) or (0 = Length(exact) and 1 = Length(match)) then
      if Length(exact) = 0 then exact := match; fi;
      i := exact[1];
      return GET_HELP_URL(i);
  
    # more than one topic found, show overview in pager
    else
  