anchor.diff:    ,Windows   // Graeme: temporary, just to see how the grid looks under Windows.
     {$ENDIF}
     {$IFDEF UNIX}
  -    {$IFDEF LINUX},libc{$ENDIF} // Graeme: temporary. libc is not available for FreeBSD.
  +    {$if defined(linux) and defined(cpu386)},libc{$endif} // Graeme: temporary. libc is not available for FreeBSD.
     ,baseunix
     {$ENDIF}
     ;
  
positive.code:   else
      result := '';
  end;
  {$ELSE}
  // Still need to find an alternative for FreeBSD as we can't use the libc unit.
  function GetUserName(uid: integer): string;
  begin
    result := IntToStr(uid);
  end;
  {$ENDIF LINUX}
  {$ENDIF UNIX}
  
  
  
negative.code:   if p <> nil then
      result := p^.gr_name;
  end;
  {$else}
  // Still need to find an alternative for FreeBSD as we can't use the libc unit.
  function GetGroupName(gid: integer): string;
  begin
    result := IntToStr(gid);
  end;
  {$endif}
  
  {$if defined(linux) and defined(cpu386)}
  function GetUserName(uid: integer): string;
  var
    p: PPasswd;
  