giseldo/neodataset huggingface dataset:
Generics type name conflict (Identifier not found)


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

I can't compile attached code (in Delphi it's ok):

``` pascal
{$mode delphi}{$H+}

type
  TA<T> = class(TObject);

  TB<T> = class(TA< T >);

  TC<T> = class
  public
    type
      TA = class(TB<T>);

    function Foo: TA<T>; virtual; abstract; // Error: Identifier not found "TA$1"
  end;

var
  C: TC<string>;  
```

## Mantis conversion info:

- **Mantis ID:** 24287
- **Version:** 2.7.1
- **Fixed in version:** 3.1.1

Story points: 100.0
Generics syntax error, ">" expected but "<" found


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

I can't compile attached code:

``` pascal
{$mode delphi}{$H+}

type
  TA<T> = record
  end;

  TB<T> = class
  end;

  TC<T> = class(TB<TA<T>>)
  end;      
```

## Mantis conversion info:

- **Mantis ID:** 24283
- **Version:** 2.7.1
- **Fixed in version:** 3.3.1
- **Monitored by:** » PeterJanRoes (Peter-Jan Roes), » Andrey Paramonov (Andrey Paramonov), » daniel_sap (Daniel Sapoundjiev)

Story points: 100.0
Generics forward declaration not solved


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

I can't compile attached code:

``` pascal
{$mode delphi}{$H+} 
type
  TA<T> = class
    class function Foo: T; // Error: Forward declaration not solved "class procedure Foo:AnsiString;"
  end;

  TB<T> = class
    constructor Create;
  end;

class function TA<T>.Foo: T;
begin

end;

constructor TB<T>.Create;
begin
  TA<T>.Foo;
end;

var
  b: TB<string>;  
```

## Mantis conversion info:

- **Mantis ID:** 24282
- **Version:** 2.7.1

Story points: 100.0
Generics methods/class methods syntax error


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

I can't compile attached code (in Delphi it's working):

``` pascal
{$MODE DELPHI}
type
  TX = class
    procedure Foo<T>; // Fatal: Syntax error, ";" expected but "<" found 
    class procedure Foo2<T>;
  end;
```

{ TX }

``` pascal
class procedure TX.Foo2<T>;
begin

end;

procedure TX.Foo<T>;
begin

end;

var
  x: TX;
begin
  TX.Foo2<Int32>;
  x := TX.Create;
  x.Foo<string>;
  x.Free;
end.
```

## Mantis conversion info:

- **Mantis ID:** 24254
- **Version:** 2.7.1

Story points: 100.0
Package cairo is not being built on win64 platform


<h3><details><summary>Original Reporter info from Mantis: <small>madeinoz</small></summary><small>

- **Reporter name:** Stephen Eaton
</small></details></h3>

## Description:

On windows 7 64 OS the package cairo is not included in the makefile and is not being built when a make is performed on a checkout of FPC from SVN is performed.  

This is causing win64 version of lazarus build to fail due to cairocanvas not able to find cairo 

## Steps to reproduce:

clean build on Windows 7 64

## Additional information:

lazarus bug tracker of original problem I logged #24215

## Mantis conversion info:

- **Mantis ID:** 24232
- **OS:** Windows
- **OS Build:** Windows 7
- **Build:** 23948
- **Platform:** win64
- **Version:** 2.6.2

Story points: 300.0
Patch: RTTI for tkProcVar


<h3><details><summary>Original Reporter info from Mantis: <small>Necem</small></summary><small>

- **Reporter name:** 
</small></details></h3>

## Description:

Well Why did I do this patch:<br/>
To implement a less "hacky" way of generic method invokation.<br/>
Supporting several calling conventions I can call a method based on<br/>
the<br/>
address and an array of const as parameters.<br/>
Without RTTI there would've been a need for hard coded meta<br/>
information,<br/>
wich is error prone and rather time consuming.<br/>
Since tkMethod supports RTTI any method contained in a record, class,<br/>
object would work without additional meta information. 

## Additional information:

Allows to get RTTI for alle tkProcVar types that have a TypeSym meaning:
``` pascal
type TFoo = procedure(bar : byte);
var
  // this will not generate any TypeData structure
  noTypeSym : procedure(bar : byte); 
  // while this will
  withTypeSym : TFoo;
```

## Mantis conversion info:

- **Mantis ID:** 24219
- **Fixed in version:** 3.0.0
- **Fixed in revision:** 24468 (#bc973e538d2a63a1252d81247007de64cffaa1d8)
- **Monitored by:** » luizamerico (Luiz Americo)

Story points: 100.0
Textmode Ide 1.0.12 simple asm turbo pascal compatible code not work


<h3><details><summary>Original Reporter info from Mantis: <small>atiati100</small></summary><small>

- **Reporter name:** Sarok Attila
</small></details></h3>

## Description:

``` pascal
Begin
  Asm
     Mov Ax, 100;
  end;
end.
```

{EAX work not also }

## Additional information:

in the source file (.pas) the Free Pascal Ide show green the asm code.

## Mantis conversion info:

- **Mantis ID:** 24212
- **OS:** Windows
- **OS Build:** XP Prof. SP3
- **Platform:** PC

Story points: 100.0
egyszerű for ciklus timerrel listboxxal es szépen akad rádásul nem lehet lezárni


<h3><details><summary>Original Reporter info from Mantis: <small>atiati100</small></summary><small>

- **Reporter name:** Sarok Attila
</small></details></h3>

## Description:

``` pascal
procedure TForm1.IdleTimer1Timer(Sender: TObject);
          var
             i : integer;
begin
  for i := 1 to 1000000 do begin
    listbox1.items.add(inttostr(i));
    application.ProcessMessages;
  end;
end;
```

## Additional information:

nem tud scrollozni nem tudja lecsukni a programot

## Mantis conversion info:

- **Mantis ID:** 24133
- **OS:** Windows
- **OS Build:** XP Prof. SP3
- **Platform:** PC
- **Version:** 2.6.2

Story points: 100.0
TSQLQuery has no means to clear indexes after a sort has been performed.


<h3><details><summary>Original Reporter info from Mantis: <small>snorkel</small></summary><small>

- **Reporter name:** 
</small></details></h3>

## Description:

TSQLQuery and hence TCustomBufDataset has no way to clear added indexes when sorting.  I added the following public procedure to fix the issue:

``` pascal
procedure TCustomBufDataset.ClearIndexes;
var
    i:integer;
begin
     For I:=0 to Length(FIndexes)-1 do
         FreeAndNil(Findexes[I]);
     SetLength(FIndexes,0);
     FIndexesCount:=0;
end;   
```

## Steps to reproduce:

Add indexes to sort columns, then change the SQL and a error is raised that <br/>
the field used in the old index cannot be found.

## Mantis conversion info:

- **Mantis ID:** 24110
- **Version:** 2.6.2
- **Fixed in version:** 3.0.0
- **Fixed in revision:** 26719 (#f59a2272d9f8b3f9d65387de7ba29b16ee4ffefe)
- **Target version:** 3.0.0

Story points: 100.0
Wrong behavior of generic "record parameter"


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

Check out attached code:

``` pascal
program project4;

{$mode delphi}

type
  TA<T: record> = record
  end;

  TUnamanagedRec = record
    x: integer;
  end;

  TManagedRec = record
    s: string;
  end;

var
  a: TA<TUnamanagedRec>; // should pass and it is ok
  b: TA<TManagedRec>;  // should pass and it is ok
  d: TA<Single>;  // should pass but it's not ok in FPC! Error: Record type expected
  e: TA<Integer>; // should pass but it's not ok in FPC! Error: Record type expected
  f: TA<Pointer>; // shouldn't pass and it's half ok. Expected message is - E2512 Type parameter 'T' must be a non-nullable value type!
  g: TA<TObject>; // shouldn't pass and it's half ok. Expected message is - E2512 Type parameter 'T' must be a non-nullable value type!
  h: TA<string>; // shouldn't pass and it's half ok. Expected message is - E2512 Type parameter 'T' must be a non-nullable value type!
  // and so on...
begin
end.  
```

## Mantis conversion info:

- **Mantis ID:** 24073
- **Version:** 2.7.1
- **Fixed in revision:** 35739 (#e4565378db6836c0e19e19eb8f59b5a78ad171cc)

Story points: 100.0
Generics fatal error for generic record specialization inside class.


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

"Fatal: Compilation aborted" for attached code:

``` pascal
program project3;

{$mode delphi}

type
  TA<T> = record
  end;

  TB<T> = class
  public
    type
      TC = TA<T>;

      TD = record
        Foo: TC; // ! FATAL !
      end;
  end;

begin
end.    
```

## Mantis conversion info:

- **Mantis ID:** 24072
- **Version:** 2.7.1
- **Fixed in version:** 3.0.0
- **Fixed in revision:** 27861 (#639a59df92dae758bd5cfed1128c9f7626eccc76)

Story points: 100.0
Generics internal error 200512113


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

I can't compile attached code:

``` pascal
program project2;

{$mode delphi}

type
  TA<T> = class
  end;

  TB<T> = class
  public
  type
    TC = class;
    TC = class(TA<TC>)
    private
      procedure Foo; virtual; abstract;
    end;
  end;

var
  X: TB<Integer>;
begin
end.   
```

## Mantis conversion info:

- **Mantis ID:** 24071
- **Version:** 2.7.1
- **Fixed in version:** 3.0.0
- **Fixed in revision:** 24572 (#2c792659cef9bd8bcd2c91aa00e1854943413a6b)

Story points: 100.0
Global Generic template references static symtable for procedure


<h3><details><summary>Original Reporter info from Mantis: <small>hnb</small></summary><small>

- **Reporter name:** Maciej Izak
</small></details></h3>

## Description:

For simple attached code I have error: Global Generic template references static symtable

## Mantis conversion info:

- **Mantis ID:** 24064
- **Version:** 2.7.1

Story points: 100.0
Can't build compiler from SVN r23794.


<h3><details><summary>Original Reporter info from Mantis: <small>Cyrax</small></summary><small>

- **Reporter name:** 
</small></details></h3>

## Description:

Excerpt from make log:<br/>
\----<br/>
Installation package fastcgi for target i386-win32 succeeded<br/>
Skipped package fcl-async which has been disabled for target i386-win32<br/>
Installing package fcl-base<br/>
The installer encountered the following error:<br/>
Failed to create directory "I:\free_pascal_and_lazarus\free_pascal_and_lazarus\fpc\trunk\build\trunk_x32\units\i386-win32\fcl-base\\"<br/>
make[3]: *** [distinstall] Error 1<br/>
make[3]: Leaving directory `I:/free_pascal_and_lazarus/free_pascal_and_lazarus/fpc/trunk/trunk_svn_exported/packages'<br/>
make[2]: *** [packages_distinstall] Error 2<br/>
make[2]: Leaving directory `I:/free_pascal_and_lazarus/free_pascal_and_lazarus/fpc/trunk/trunk_svn_exported'<br/>
make[1]: *** [installother] Error 2<br/>
make[1]: Leaving directory `I:/free_pascal_and_lazarus/free_pascal_and_lazarus/fpc/trunk/trunk_svn_exported'<br/>
make: *** [installall] Error 2<br/>
\---

Compiler is built by these make options:<br/>
\---<br/>
all<br/>
install<br/>
sourceinstall<br/>
UPXPROG=echo<br/>
OPT="-gw2 -godwarfsets -gl -O- -OoNO -Xs-"<br/>
COMPILER_OPTIONS="-gw2 -godwarfsets -gl -O- -OoNO -Xs-"<br/>
INSTALL_PREFIX=I:\free_pascal_and_lazarus\free_pascal_and_lazarus\fpc\trunk\build\trunk_x32<br/>
REVSTR=23794<br/>
IDE=1<br/>
\---


## Mantis conversion info:

- **Mantis ID:** 24030
- **Fixed in version:** 3.0.0
- **Fixed in revision:** 23804 (#9a26fc6994cec47124339a57804edff132a51542)

Story points: 100.0
Enable Win64 SEH by default so exceptions in DLLs can properly be caught


<h3><details><summary>Original Reporter info from Mantis: <small>BigChimp</small></summary><small>

- **Reporter name:** Reinier Olislagers
</small></details></h3>

## Description:

This patch enables Win64 SEH by default so errors in DLLs are correctly handled.

Enabling this clears up a lot of problems and bug reports with errors generated in DLLs that are incorrectly handled by FPC.

## Additional information:

Compiles for me, including Lazarus. Hope I made the correct changes (did a grep for WIN64_SEH).

Going to test with some Firebird bug reports

## Mantis conversion info:

- **Mantis ID:** 24012
- **OS:** Vista
- **Build:** 23705
- **Platform:** Windows x64
- **Version:** 2.7.1
- **Fixed in version:** 3.0.0
- **Fixed in revision:** 23732 (#2caa05ccd13b9b9ba59b1c458ede2d42c9274684)
- **Monitored by:** » Vincent (Vincent Snijders), » @PascalDragon (Sven Barth)
- **Target version:** 2.7.1

Story points: 100.0
Program crashes with message "Thread creation error"


<h3><details><summary>Original Reporter info from Mantis: <small>jixian.yang</small></summary><small>

- **Reporter name:** yang jixian
</small></details></h3>

## Description:

Program exits at runtime while there is enough thread created.

Run it with Lazarus IDE, the error message is "Thread creation error".

On the computer the threads amount can not be greater than 117.

## Mantis conversion info:

- **Mantis ID:** 23998
- **OS:** windows7
- **OS Build:** 6.1
- **Platform:** win32
- **Version:** 2.7.1

Story points: 100.0
Access violation then call from DLL virtual method base abstract class realized in Delphi.


<h3><details><summary>Original Reporter info from Mantis: <small>OldMan.pas</small></summary><small>

- **Reporter name:** Nikola
</small></details></h3>

## Description:

Dll writed in Lazarus. Main idea: 
```
 - application realize callback interface;
 - callback interface - base abstract class containing methods with stdcall;
 - in begin work application load library, create realized class and give him pointer (method InitLazDll);
 - after that application work with other exported function;
 - dll answer application over callback interface.
```

Appl. relized in delphi xe3. Source attach. If dll write in Delphi or C++ - AV absent

## Steps to reproduce:

1. Open project.<br/>
2. Run<br/>
3. Click button.

## Additional information:

Sorry, if Im mistaked

## Mantis conversion info:

- **Mantis ID:** 23969
- **OS:** Windows 7 x64
- **Platform:** Win32
- **Version:** 2.6.0

Story points: 100.0
Memory leak caused by for in do loop


<h3><details><summary>Original Reporter info from Mantis: <small>Necem</small></summary><small>

- **Reporter name:** 
</small></details></h3>

## Description:

The enumerator will only be created but never be freed. Naturally every application with for in do leaks memory. 

## Steps to reproduce:

type TStringList = specialize TFPGList&LtPos;String>;

``` pascal
var l : TStringList;
    a : String;    
begin
  l := TStringList.create;
  l.Add('test');
  for a in l do
    ; 
end;
```

and here we produced a memleak.

## Mantis conversion info:

- **Mantis ID:** 23892
- **Version:** 2.7.1
- **Monitored by:** » Vincent (Vincent Snijders)

Story points: 100.0
Can't build the compiler for WinCE as Target


<h3><details><summary>Original Reporter info from Mantis: <small>takeda99</small></summary><small>

- **Reporter name:** Takeda Matsuki
</small></details></h3>

## Description:

I use usual method, like describe on Wiki related about "How to build the compiler..".

Recently, I was tried to build the compiler but unfortunately it was failed (see attachment : FPC Failed.png).

I use, FPC 2.6.0 as bootstrap. Windows 7 x64 Ultimate.

## Mantis conversion info:

- **Mantis ID:** 23765
- **Version:** 2.7.1
- **Fixed in version:** 3.0.0
- **Fixed in revision:** 23528 (#bb00325d85dbb7a323389ab61921cdbb90d557e2)

Story points: 100.0
fcl-xml won't load thtmldocument due to XML version?


<h3><details><summary>Original Reporter info from Mantis: <small>marco @marcoonthegit</small></summary><small>

- **Reporter name:** Marco van de Voort
</small></details></h3>

## Description:

I get exceptions in TDomDocument.createelement using dom_html.readhtmlfile, but only on some files.

I tried printing the tag in createelement, but it says it is "link", which is also available in several other files that _are_ read.   

I saw a lot of changes in this XML versioning stuff in r15443.   

I think I scanned these documents before, and that they worked at the time, however I'm not 100% sure.

Is there a more general way to avoid this whole problem?<br/>
E.g. is there a way to enable some form of quirk mode, to avoid THTMLDocument to throw exceptions on every unknown tag? 

The whole html processing is very useful to me. (this particular example is from attempts to improve html scanning for files not in the project in package CHM), but within the FPC project it is also used to straighten out the online html docs.

## Steps to reproduce:

download archive, compile the .pp and run.

The last file (settingup.htm) throws the exception, the others seem to pass.

This is strange, since these files all seem to be generated by robohelp and have a very similar header. Therefore I doubt my conclusion that it is the LINK tag somewhat.

(the robohelp origin is which why they have funky &LtPos;object tags, these trigger certain CHM only functionality) 

## Additional information:

(note the "due to tag &LtPos;x>" addition is a quick hack from me to see which element causes the problem)

An unhandled exception occurred at $004252B2 :<br/>
EDOMError : EDOMError in DOMDocument.CreateElement due to tag link

```
  $004252B2  TDOMDOCUMENT__CREATEELEMENT,  line 2282 of src/dom.pp
  $0042811A  THTMLTODOMCONVERTER__READERSTARTELEMENT,  line 539 of src/sax_html.pp
  $0042974E  TSAXREADER__DOSTARTELEMENT,  line 770 of src/sax.pp
  $00427CD2  THTMLREADER__ENTERNEWSCANNERCONTEXT,  line 449 of src/sax_html.pp
  $0042717D  THTMLREADER__PARSE,  line 272 of src/sax_html.pp
  $0042937C  TSAXREADER__PARSESTREAM,  line 652 of src/sax.pp
  $0042858D  READHTMLFILE,  line 656 of src/sax_html.pp
  $004284E1  READHTMLFILE,  line 640 of src/sax_html.pp
  $0040189A  main,  line 88 of scannertest.pp
```


## Mantis conversion info:

- **Mantis ID:** 16906
- **Fixed in version:** 2.4.4
- **Fixed in revision:** 16396 (#4761ab00522806d505847643baa05d000834b30a)

Story points: 100.0
assign a packed record (as result of a function) to variable result in a memory overflow


<h3><details><summary>Original Reporter info from Mantis: <small>ivo_steinmann@gmx.net</small></summary><small>

- **Reporter name:** Ivo Steinmann
</small></details></h3>

## Description:

``` pascal
type
  TType = packed record
    a: byte;
    b: byte;
    c: longword;
  end;

function make: TType; assembler;
asm
  movq $-1, %rax
end;

var
  id: ttype
begin
  id := make();
end.
```

results in this asm code:

```
        call    P$TEST_MAKE$$TTYPE
        movq    %rax,U_P$TEST_ID
```


so 8 instead of 6 bytes are written!!

(took me hours to find the reason why my application crashed)




## Steps to reproduce:

see attached testcase 

## Mantis conversion info:

- **Mantis ID:** 16357
- **OS:** Linux Gentoo x86_64
- **OS Build:** latest
- **Build:** 15194
- **Platform:** AMD64 Phenom X4
- **Version:** 2.5.1
- **Fixed in version:** 2.6.0
- **Fixed in revision:** 15350 (#283018a3bf2d89eca3f9146dc24f8f9a7e06e825)
- **Target version:** 2.5.1

Story points: 100.0
Compiling shared library without -fPIC causes a crash


<h3><details><summary>Original Reporter info from Mantis: <small>cobines</small></summary><small>

- **Reporter name:** 
</small></details></h3>

## Description:

I'm not sure it makes sense building shared lib without -fPIC, anyway the compiler shouldn't crash, but rather give a message.

My system is i386-linux Debian/Unstable.<br/>
FPC is 2.5.1 rev. 13987.

Attached sample file causing a crash.

$ fpc example.lpr <br/>
Free Pascal Compiler version 2.5.1 [2009/10/31] for i386<br/>
Copyright (c) 1993-2009 by Florian Klaempfl<br/>
Target OS: Linux for i386<br/>
Compiling example.lpr<br/>
Fatal: Compilation aborted<br/>
An unhandled exception occurred at $081C5F24 :<br/>
```
EAccessViolation : Access violation<br/>
  $081C5F24  TEXPORTLIBUNIX__GENERATELIB,  line 168 of expunix.pas
  $08170E31  PROC_PROGRAM,  line 2193 of pmodules.pas
  $0815B024  COMPILE,  line 402 of parser.pas
  $0806642C  COMPILE,  line 246 of compiler.pas
  $08048256  main,  line 223 of pp.pas
```


[with -fPIC - no crash]<br/>
$ fpc -fPIC example.lpr <br/>
Free Pascal Compiler version 2.5.1 [2009/10/31] for i386<br/>
Copyright (c) 1993-2009 by Florian Klaempfl<br/>
Target OS: Linux for i386<br/>
Compiling example.lpr<br/>
Linking libexample.so<br/>
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?<br/>
13 lines compiled, 0.2 sec 


[Cross compiling to x86_64 - no crash]<br/>
$ fpc -Px86_64 example.lpr <br/>
Free Pascal Compiler version 2.5.1 [2009/10/31] for x86_64<br/>
Copyright (c) 1993-2009 by Florian Klaempfl<br/>
Target OS: Linux for x86-64<br/>
Compiling example.lpr<br/>
Linking libexample.so<br/>
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?<br/>
13 lines compiled, 0.2 sec 

## Mantis conversion info:

- **Mantis ID:** 14959
- **Version:** 2.5.1
- **Fixed in version:** 2.6.0
- **Fixed in revision:** 14181 (#122e5714d87cb2508e5af6dbec5fac8385f52067)

Story points: 100.0
SQLDb Patch: Fix assignment to connection's params property when editing using lazarus strings editor.


<h3><details><summary>Original Reporter info from Mantis: <small>Jesus @jramx</small></summary><small>

- **Reporter name:** Jesus Reyes
</small></details></h3>

## Description:

The lazarus strings editor copies the memo's strings property to connection's params property because the params property do not have a setter that copy the property content instead. The attached patch adds a setter method to Params property and does params.assign(value) instead of the current result of just params:=value

Please merge to fixes.

## Mantis conversion info:

- **Mantis ID:** 14438
- **Build:** 13596
- **Version:** 2.5.1
- **Fixed in version:** 2.4.0
- **Fixed in revision:** 13848 (#d4de9943dc44263aefdbd5381cc1572c1ad839e4)
- **Target version:** 2.4.0

Story points: 100.0
DispatchStr no longer works


<h3><details><summary>Original Reporter info from Mantis: <small>michael @mvancanneyt</small></summary><small>

- **Reporter name:** Michael Van Canneyt
</small></details></h3>

## Description:

The string dispatch table is not written to the assembler file.

## Steps to reproduce:

Compile attached program and run it. It should end up in the MyMethod, but it is not.<br/>
Examination of the assembler file shows that no string dispatch table is written (or it is empty)

## Mantis conversion info:

- **Mantis ID:** 14145
- **OS:** all
- **OS Build:** all
- **Platform:** All
- **Version:** 2.3.1
- **Fixed in version:** 2.4.0
- **Fixed in revision:** 13440 (#b4914d063a3e54f5b788eac9f7a1142b6ab8b487)
- **Target version:** 2.4.0

Story points: 100.0
whitespace handling sax_html


<h3><details><summary>Original Reporter info from Mantis: <small>marco @marcoonthegit</small></summary><small>

- **Reporter name:** Marco van de Voort
</small></details></h3>

## Description:

Hardly any whitespace is preserved in sax_html. The below patch corrects this.


## Mantis conversion info:

- **Mantis ID:** 14073
- **OS:** windows
- **Platform:** x86
- **Version:** 2.3.1
- **Fixed in version:** 2.4.0
- **Target version:** 2.4.0

Story points: 100.0