View Issue Details

IDProjectCategoryView StatusLast Update
0038616FPCDocumentationpublic2021-03-14 00:39
ReporterDon Siders Assigned ToMichael Van Canneyt  
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Product Version3.2.1 
Fixed in Version3.3.1 
Summary0038616: Fixes for missing topics and invalid links.
DescriptionThis patch fixes missing topics and invalid links found in the most recent
build logs for rtl.chm and fcl.chm. This covers all issues except for those
in db, ibconnection, and sqldb.

Added skeletons for missing topics, and some new content.

Removed a few topics for symbols no longer in source.

Fixed invalid links that were malformed or pointed at private/protected
methods not in the docs.

Modified files:

* ascii85.xml
* avl_tree.xml
* base64.xml
* blowfish.xml
* bufdataset.xml
* bufstream.xml
* contnrs.xml
* custapp.xml
* daemonapp.xml
* db.xml
* dbugintf.xml
* eventlog.xml
* fpjson.xml
* fptimer.xml
* idea.xml
* inicol.xml
* inifiles.xml
* memds.xml
* pipes.xml
* process.xml
* rttiutils.xml
* simpleipc.xml
* sqltypes.xml
* streamex.xml
* uriparser.xml
* zipper.xml
* zstream.xml

See attached: fpdocs.diff
TagsNo tags attached.
Fixed in Revision1849
FPCOldBugId
FPCTarget3.2.2
Attached Files

Activities

Don Siders

2021-03-12 03:32

reporter  

fpdocs.diff (286,777 bytes)

Michael Van Canneyt

2021-03-12 07:22

administrator   ~0129589

Don, thanks for your work.

Unfortunately there are several things wrong with your patch.
- Don't change link texts. I don't know if this is intentional, but:
-<link id="TASCII85EncoderStream.Width">Width</link>
-<link id="TASCII85EncoderStream.Boundary">Boundary</link>
+<link id="TASCII85EncoderStream.Width"/>
+<link id="TASCII85EncoderStream.Boundary"/>
changes the text from Width to TASCII85EncoderStream.Width. That's a no-no.

- Don't move blocks around, it serves no purpose but clutters the patch.
  The patch for fpjson is almost uncheckable.

- Please provide a patch file per documentation file. I can't properly check a file of 8000 lines.

- To save you time: Don't document protected members.
  The documentation does not contain protected members anyway, so it is a waste of time.

I'll see if I can work with your patch, but this will take time.

Don Siders

2021-03-12 07:40

reporter   ~0129590

Based on those guidelines, I've committed a lot of no-nos. I wouldn't bother with this patch. You're going to find it very frustrating. Just close it, I'll re-submit when I feel motivated to re-create the effort.

Michael Van Canneyt

2021-03-12 08:19

administrator   ~0129592

As said, I'll see what I can do. I certainly don't want your work to go to waste.

I used a tool to split the patch in several files, and will go over them one by one.
I'll just remove the chunks that I deem not so good.

Don Siders

2021-03-12 11:22

reporter   ~0129599

I can give you the separate patch files easily enough. But they have all the other stuff you didn't want. That will take some time to undo.
avl_tree.diff (357 bytes)   
Index: avl_tree.xml
===================================================================
--- avl_tree.xml	(revision 1818)
+++ avl_tree.xml	(working copy)
@@ -906,8 +906,8 @@
 destroys the <var>TAVLTree</var> instance.
 </descr>
 <seealso>
+<link id="TAVLTree.Clear"/>
 <link id="TAVLTree.Create"/>
-<link id="TAVLTree.Clean"/>
 </seealso>
 </element>
 
avl_tree.diff (357 bytes)   
base64.diff (4,534 bytes)   
Index: base64.xml
===================================================================
--- base64.xml	(revision 1818)
+++ base64.xml	(working copy)
@@ -116,27 +116,6 @@
 </seealso>
 </element>
 
-<!-- constructor Visibility: public -->
-<element name="TBase64EncodingStream.Create">
-<short>Create a new instance of the <var>TBase64EncodingStream</var> class.</short>
-<descr>
-<var>Create</var> instantiates a new <var>TBase64EncodingStream</var> class.
-The <var>ASource</var> stream is stored and used to write the encoded
-data to.
-</descr>
-<seealso>
-<link id="TBase64EncodingStream.Destroy"/>
-<link id="TBase64DecodingStream.Create"/>
-</seealso>
-</element>
-
-<element name="TBase64EncodingStream.Create.ASource">
-<short>Destination stream for encoded data</short>
-</element>
-
-<element name="TBase64DecodingStream.Create.AMode">
-<short>Encoding mode to be used when encoding</short>
-</element>
 <element name="TBase64EncodingStream.Flush">
 <short>Flush the remaining bytes to the output stream.</short>
 <descr>
@@ -162,41 +141,10 @@
 closed.
 </errors>
 <seealso>
-<link id="TBase64EncodingStream.Create"/>
 </seealso>
 </element>
 
 <!-- function Visibility: public -->
-<element name="TBase64EncodingStream.Read">
-<short>Read data from the stream</short>
-<descr>
-<var>Read</var> always raises an exception, because the encoding stream is
-write-only.
-</descr>
-<seealso>
-<link id="TBase64EncodingStream.Write"/>
-<link id="TBase64EncodingStream.Seek"/>
-<link id="TBase64DecodingStream.Read"/>
-<link id="#rtl.classes.TStream.Read">TStream.Read</link>
-</seealso>
-</element>
-
-<!-- function result Visibility: default -->
-<element name="TBase64EncodingStream.Read.Result">
-<short>Number of bytes actually read</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TBase64EncodingStream.Read.Buffer">
-<short>Buffer to receive read data</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TBase64EncodingStream.Read.Count">
-<short>Number of bytes to read</short>
-</element>
-
-<!-- function Visibility: public -->
 <element name="TBase64EncodingStream.Write">
 <short>Write data to the stream.</short>
 <descr>
@@ -212,8 +160,6 @@
 </errors>
 <seealso>
 <link id="TBase64EncodingStream.Seek"/>
-<link id="TBase64EncodingStream.Read"/>
-<link id="TBase64DecodingStream.Write"/>
 <link id="#rtl.classes.TStream.Write">TStream.Write</link>
 </seealso>
 </element>
@@ -246,7 +192,6 @@
 An <var>EStreamError</var> error is raised.
 </errors>
 <seealso>
-<link id="TBase64EncodingStream.Read"/>
 <link id="TBase64EncodingStream.Write"/>
 <link id="#rtl.classes.TStream.Seek">TStream.Seek</link>
 </seealso>
@@ -306,7 +251,7 @@
 </p>
 </descr>
 <seealso>
-<link id="TBase64EncodingStream.Create"/>
+<link id="TBase64EncodingStream"/>
 <link id="TBase64DecodingMode"/>
 </seealso>
 </element>
@@ -351,7 +296,6 @@
 occur.
 </errors>
 <seealso>
-<link id="TBase64DecodingStream.Write"/>
 <link id="TBase64DecodingStream.Seek"/>
 <link id="#rtl.classes.TStream.Read">TStream.Read</link>
 </seealso>
@@ -373,41 +317,6 @@
 </element>
 
 <!-- function Visibility: public -->
-<element name="TBase64DecodingStream.Write">
-<short>Write data to the stream</short>
-<descr>
-<p>
-<var>Write</var> always raises an <var>EStreamError</var> exception, because
-the decoding stream is read-only. To write to an encrypted stream, use a
-<link id="TBase64EncodingStream"/> instance.
-</p>
-</descr>
-<errors>
-</errors>
-<seealso>
-<link id="TBase64DecodingStream.Read"/>
-<link id="TBase64DecodingStream.Seek"/>
-<link id="TBase64EncodingStream.Write"/>
-<link id="#rtl.classes.TStream.Write">TStream.Write</link>
-</seealso>
-</element>
-
-<!-- function result Visibility: default -->
-<element name="TBase64DecodingStream.Write.Result">
-<short>Number of bytes written</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TBase64DecodingStream.Write.Buffer">
-<short>Buffer with data to write to the stream</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TBase64DecodingStream.Write.Count">
-<short>Number of bytes to write</short>
-</element>
-
-<!-- function Visibility: public -->
 <element name="TBase64DecodingStream.Seek">
 <short>Set stream position.</short>
 <descr>
@@ -429,7 +338,6 @@
 </errors>
 <seealso>
 <link id="TBase64DecodingStream.Read"/>
-<link id="TBase64DecodingStream.Write"/>
 <link id="TBase64EncodingStream.Seek"/>
 <link id="#rtl.classes.TStream.Seek">TStream.Seek</link>
 </seealso>
base64.diff (4,534 bytes)   
blowfish.diff (3,149 bytes)   
Index: blowfish.xml
===================================================================
--- blowfish.xml	(revision 1818)
+++ blowfish.xml	(working copy)
@@ -388,7 +388,7 @@
 </p>
 </descr>
 <seealso>
-<link id="TBlowFishEncryptStream.Read"/>
+<link id="TBlowFishEncryptStream.Flush"/>
 </seealso>
 </element>
 
@@ -496,6 +496,43 @@
 </seealso>
 </element>
 
+<element name="TBlowFishDeCryptStream.Create">
+<short>Constructor for the class instance</short>
+<descr>
+<p>
+<var>Create</var> is the overridden constructor for the class instance.
+It calls the inherited constructor on entry using the values in <var>AKey</var>,
+<var>AKeySize</var>, and <var>Dest</var> as arguments.
+</p>
+<p>
+Create sets the value in an internal member to the current position in Dest.
+It acts as the relative origin for the TStream instance, and is used in the
+<var>Seek</var> method.
+</p>
+</descr>
+<seealso>
+<link id="TBlowFishDeCryptStream.Read"/>
+<link id="TBlowFishDeCryptStream.Seek"/>
+<link id="TBlowFishEnCryptStream.Write"/>
+</seealso>
+</element>
+<element name="TBlowFishDeCryptStream.Create.AKey">
+<short>
+Key used to decrypt values in Dest. Must match the key used to encrypt
+the stream content in TBlowFishEnCryptStream.
+</short>
+</element>
+<element name="TBlowFishDeCryptStream.Create.AKeySize">
+<short>
+Number of bytes in the Key.
+</short>
+</element>
+<element name="TBlowFishDeCryptStream.Create.Dest">
+<short>
+Stream instance with the values decrypted in the class instance.
+</short>
+</element>
+
 <!-- function Visibility: public -->
 <element name="TBlowFishDeCryptStream.Read">
 <short>Read data from the stream</short>
@@ -502,7 +539,7 @@
 <descr>
 <var>Read</var> reads <var>Count</var> bytes from the source stream,
 decrypts them using the key provided when the <var>TBlowFishDeCryptStream</var> 
-instance was created, and writes the decrypted data to <var>Buffer</var>
+instance was created, and writes the decrypted data to <var>Buffer</var>.
 </descr>
 <seealso>
 <link id="TBlowFishStream.Create">Create</link>
@@ -526,37 +563,6 @@
 </element>
 
 <!-- function Visibility: public -->
-<element name="TBlowFishDeCryptStream.Write">
-<short>Write data to the stream</short>
-<descr>
-<var>Write</var> will raise an <var>EBlowFishError</var> exception:
-<var>TBlowFishDecryptStream</var> is a write-only stream.
-</descr>
-<errors>
-Calling this function always results in an <link id="EBlowFishError"/>
-exception.
-</errors>
-<seealso>
-<link id="TBlowFishDecryptStream.Read"/>
-</seealso>
-</element>
-
-<!-- function result Visibility: default -->
-<element name="TBlowFishDeCryptStream.Write.Result">
-<short>Number of bytes actually written.</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TBlowFishDeCryptStream.Write.Buffer">
-<short>Buffer with data to be written.</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TBlowFishDeCryptStream.Write.Count">
-<short>Number of bytes to write</short>
-</element>
-
-<!-- function Visibility: public -->
 <element name="TBlowFishDeCryptStream.Seek">
 <short>Set the stream position.</short>
 <descr>
blowfish.diff (3,149 bytes)   
bufdataset.diff (31,418 bytes)   
Index: bufdataset.xml
===================================================================
--- bufdataset.xml	(revision 1818)
+++ bufdataset.xml	(working copy)
@@ -36,7 +36,6 @@
         </descr>
         <seealso>
           <link id="TCustomBufDataset.OnUpdateError">TCustomBufDataset.OnUpdateError</link>
-          <link id="TBufDataset.OnUpdateError">TBufDataset.OnUpdateError</link>
         </seealso>
       </element>
       <element name="TResolverErrorEvent.Sender">
@@ -366,7 +365,7 @@
         </descr>
         <seealso>
           <link id="TCompareFunc">TCompareFunc</link>
-          <link id="TLocateOptions">TLocateOptions</link>
+          <link id="#fcl.db.TLocateOptions">TLocateOptions</link>
         </seealso>
       </element>
       <element name="TDBCompareRec.CompareFunc">
@@ -423,7 +422,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TBufDataset.BufferIndex">TBufDataset.BufferIndex</link>
           <link id="TDoubleLinkedBufIndex">TDoubleLinkedBufIndex</link>
           <link id="TUniDirectionalBufIndex">TUniDirectionalBufIndex</link>
           <link id="TArrayBufIndex">TArrayBufIndex</link>
@@ -1547,6 +1545,9 @@
           Data packets can be in any supported format (detected by the packet reader)
         </short>
       </element>
+      <element name="TDataPacketFormat.dfDefault">
+        <short>Use the default XML format. Same as using dfAny.</short>
+      </element>
 
       <element name="TDatapacketReaderClass">
         <short>Class type used to create data packet readers for TBufDataset</short>
@@ -1951,7 +1952,7 @@
           </p>
         </descr>
         <seealso>
-          <link id="TBufDataset">TBufDataset</link>
+          <link id="TBufDataset"/>
           <link id="#fcl.Db.TDBDataset">TDBDataset</link>
           <link id="#fcl.Db.TDataset">TDataset</link>
         </seealso>
@@ -1969,8 +1970,8 @@
           </p>
         </descr>
         <seealso>
+          <link id="TCustomBufDataset.TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
           <link id="TBufDatasetIndex.IndexType">TBufDatasetIndex.IndexType</link>
-          <link id="TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.TIndexType.itNormal">
@@ -1996,11 +1997,9 @@
           </p>
         </descr>
         <seealso>
-          <link id="TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
+          <link id="TCustomBufDataset.TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
+          <link id="TBufIndex"/>
           <link id="#fcl.Db.TIndexDef">TIndexDef</link>
-          <link id="TBufIndex">TBufIndex</link>
-          <link id="TBufDataset.CurrentIndexDef">TBufDataset.CurrentIndexDef</link>
-          <link id="TBufDataset.BufIndexDefs">TBufDataset.BufIndexDefs</link>
         </seealso>
       </element>
 
@@ -2047,7 +2046,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufferIndex">TCustomBufDataset.BufferIndex</link>
         </seealso>
       </element>
 
@@ -2064,7 +2062,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BuildIndexes">TCustomBufDataset.BuildIndexes</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.TBufDatasetIndex.MustBuild.Result">
@@ -2156,7 +2153,7 @@
           </p>
         </descr>
         <seealso>
-          <link id="TBufDatasetIndex">TBufDatasetIndex</link>
+          <link id="TCustomBufDataset.TBufDatasetIndex">TBufDatasetIndex</link>
           <link id="TBufIndex">TBufIndex</link>
           <link id="TBufDataset.GetIndexDefs">TBufDataset.GetIndexDefs</link>
         </seealso>
@@ -2300,7 +2297,7 @@
         <short>Ordinal position of the index</short>
       </element>
 
-      <element name="TCustomBufDataset.GetBufIndexDef"  link="TCustomBufDataset.BufIndexDefs">
+      <element name="TCustomBufDataset.GetBufIndexDef">
         <short>Gets the value for the BufIndexDefs property</short>
         <descr></descr>
       </element>
@@ -2332,9 +2329,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexDefs">
-            TCustomBufDataset.BufIndexDefs
-          </link>
           <link id="TCustomBufDataset.InternalOpen">
             TCustomBufDataset.InternalOpen
           </link>
@@ -2664,12 +2658,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.GetActiveRecordUpdateBuffer">
-            TCustomBufDataset.GetActiveRecordUpdateBuffer
-          </link>
-          <link id="TCustomBufDataset.GetRecordUpdateBufferCached">
-            TCustomBufDataset.GetRecordUpdateBufferCached
-          </link>
           <link id="TCustomBufDataset.GetDatasetPacket">
             TCustomBufDataset.GetDatasetPacket
           </link>
@@ -2724,21 +2712,9 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.GetActiveRecordUpdateBuffer">
-            TCustomBufDataset.GetActiveRecordUpdateBuffer
-          </link>
-          <link id="TCustomBufDataset.ActiveBuffer">
-            TCustomBufDataset.ActiveBuffer
-          </link>
           <link id="TCustomBufDataset.GetFieldData">
             TCustomBufDataset.GetFieldData
           </link>
-          <link id="TCustomBufDataset.InternalDelete">
-            TCustomBufDataset.InternalDelete
-          </link>
-          <link id="TCustomBufDataset.InternalPost">
-            TCustomBufDataset.InternalPost
-          </link>
           <link id="TCustomBufDataset.RevertRecord">
             TCustomBufDataset.RevertRecord
           </link>
@@ -2745,6 +2721,7 @@
           <link id="TCustomBufDataset.UpdateStatus">
             TCustomBufDataset.UpdateStatus
           </link>
+          <link id="#fcl.db.TDataset.ActiveBuffer">TDataset.ActiveBuffer</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.GetActiveRecordUpdateBuffer.Result">
@@ -2807,7 +2784,7 @@
           </p>
         </descr>
         <seealso>
-          <link id="TBufDatasetParser">TBufDatasetParser</link>
+          <link id="#fcl.db.TBufDatasetParser">TBufDatasetParser</link>
           <link id="TCustomBufDataset.FilterOptions">TCustomBufDataset.FilterOptions</link>
           <link id="#fcl.Db.TDataset.Active">TDataset.Active</link>
         </seealso>
@@ -2900,9 +2877,6 @@
           <link id="TCustomBufDataset.BuildIndex">
             TCustomBufDataset.BuildIndex
           </link>
-          <link id="TCustomBufDataset.DefaultBufferIndex">
-            TCustomBufDataset.DefaultBufferIndex
-          </link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.DefaultIndex.Result">
@@ -2925,9 +2899,6 @@
           <link id="TCustomBufDataset.GetNextPacket">
             TCustomBufDataset.GetNextPacket
           </link>
-          <link id="TCustomBufDataset.IntLoadRecordsFromFile">
-            TCustomBufDataset.IntLoadRecordsFromFile
-          </link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.DefaultBufferIndex.Result">
@@ -2970,18 +2941,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BuildIndexes">
-            TCustomBufDataset.BuildIndexes
-          </link>
-          <link id="TCustomBufDataset.BuildCustomIndex">
-            TCustomBufDataset.BuildCustomIndex
-          </link>
-          <link id="TCustomBufDataset.InternalCreateIndex">
-            TCustomBufDataset.InternalCreateIndex
-          </link>
           <link id="TBufIndex">TBufIndex</link>
           <link id="TDBCompareStruct">TDBCompareStruct</link>
-          <link id="IndexCompareRecords">IndexCompareRecords</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.BuildIndex.AIndex">
@@ -3004,36 +2965,15 @@
           </p>
         </descr>
         <seealso>
-          <link id="TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
+          <link id="TCustomBufDataset.TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
           <link id="TBufDatasetIndex">TBufDatasetIndex</link>
           <link id="TBufIndex">TBufIndex</link>
           <link id="TCustomBufDataset.MaxIndexesCount">
             TCustomBufDataset.MaxIndexesCount
           </link>
-          <link id="TCustomBufDataset.BufIndexDefs">
-            TCustomBufDataset.BufIndexDefs
-          </link>
-          <link id="TCustomBufDataset.BufIndexes">
-            TCustomBufDataset.BufIndexes
-          </link>
-          <link id="TCustomBufDataset.DefaultIndex">
-            TCustomBufDataset.DefaultIndex
-          </link>
-          <link id="TCustomBufDataset.DefaultBufIndex">
-            TCustomBufDataset.DefaultBufIndex
-          </link>
-          <link id="TCustomBufDataset.CurrentIndexDef">
-            TCustomBufDataset.CurrentIndexDef
-          </link>
-          <link id="TCustomBufDataset.CurrentIndexBuf">
-            TCustomBufDataset.CurrentIndexBuf
-          </link>
           <link id="TCustomBufDataset.BuildIndex">
             TCustomBufDataset.BuildIndex
           </link>
-          <link id="TCustomBufDataset.IntLoadRecordsFromFile">
-            TCustomBufDataset.IntLoadRecordsFromFile
-          </link>
         </seealso>
       </element>
 
@@ -3050,8 +2990,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexDefs">TCustomBufDataset.BufIndexDefs</link>
-          <link id="TCustomBufDataset.BufIndex">TCustomBufDataset.BufIndex</link>
           <link id="#fcl.Db.TDataset.Delete">TDataset.Delete</link>
           <link id="#fcl.Db.TDataset.Cancel">TDataset.Cancel</link>
         </seealso>
@@ -3129,7 +3067,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexDefs">TCustomBufDataset.BufIndexDefs</link>
         </seealso>
       </element>
 
@@ -3169,9 +3106,7 @@
         </descr>
         <seealso>
           <link id="TBufDatasetIndex">TBufDatasetIndex</link>
-          <link id="TCustomBufDataset.BufIndexes">TCustomBufDataset.BufIndexes</link>
           <link id="TCustomBufDataset.AddIndex">TCustomBufDataset.AddIndex</link>
-          <link id="TCustomBufDataset.BuildIndexes">TCustomBufDataset.BuildIndexes</link>
           <link id="TCustomBufDataset.ClearIndexes">TCustomBufDataset.ClearIndexes</link>
         </seealso>
       </element>
@@ -3195,11 +3130,10 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexDefs">TCustomBufDataset.BufIndexDefs</link>
           <link id="TCustomBufDataset.AddIndex">TCustomBufDataset.AddIndex</link>
           <link id="TCustomBufDataset.ClearIndexes">TCustomBufDataset.ClearIndexes</link>
           <link id="TBufIndex">TBufIndex</link>
-          <link id="TBufDataSetIndexDefs">TBufDataSetIndexDefs</link>
+          <link id="TCustomBufDataset.TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.BufIndexes.AIndex">
@@ -3255,16 +3189,10 @@
           </p>
         </descr>
         <seealso>
-          <link id="TRecordBuffer">TRecordBuffer</link>
-          <link id="TCustomBufDataset.RecordSize">
-            TCustomBufDataset.RecordSize
-          </link>
-          <link id="TCustomBufDataset.BookmarkSize">
-            TCustomBufDataset.BookmarkSize
-          </link>
-          <link id="TCustomBufDataset.CalcFieldsSize">
-            TCustomBufDataset.CalcFieldsSize
-          </link>
+          <link id="#fcl.db.TRecordBuffer">TRecordBuffer</link>
+          <link id="#fcl.db.TDataset.RecordSize">TDataset.RecordSize</link>
+          <link id="#fcl.db.TDataset.BookmarkSize">TDataset.BookmarkSize</link>
+          <link id="#fcl.db.TDataset.CalcFieldsSize">TDataset.CalcFieldsSize</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.AllocRecordBuffer.Result">
@@ -3368,15 +3296,8 @@
           <link id="#fcl.Db.TGetResult">
             TGetResult
           </link>
-          <link id="TCustomBufDataset.Filtered">
-            TCustomBufDataset.Filtered
-          </link>
-          <link id="TCustomBufDataset.DoFilterRecord">
-            TCustomBufDataset.DoFilterRecord
-          </link>
-          <link id="TCustomBufDataset.OnFilterRecord">
-            TCustomBufDataset.OnFilterRecord
-          </link>
+          <link id="#fcl.db.TDataset.Filtered">TDataset.Filtered</link>
+          <link id="#fcl.db.TDataset.OnFilterRecord">TDataset.OnFilterRecord</link>
           <link id="#fcl.Db.TDataset.GetNextRecord">
               TDataset.GetNextRecord
           </link>
@@ -3445,7 +3366,6 @@
         </descr>
         <seealso>
           <link id="TCustomBufDataset.FileName">TCustomBufDataset.FileName</link>
-          <link id="TCustomBufDataset.InitFieldDefs">TCustomBufDataset.InitFieldDefs</link>
           <link id="#fcl.Db.TDataset.OpenCursor">TDataset.OpenCursor</link>
         </seealso>
       </element>
@@ -3491,12 +3411,6 @@
           <link id="#fcl.Db.TDataset.Fields">
             TDataset.Fields
           </link>
-          <link id="TCustomBufDataset.InitDefaultIndexes">
-            TCustomBufDataset.InitDefaultIndexes
-          </link>
-          <link id="TCustomBufDataset.InitUserIndexes">
-            TCustomBufDataset.InitUserIndexes
-          </link>
           <link id="TCustomBufDataset.BuildCustomIndex">
             TCustomBufDataset.BuildCustomIndex
           </link>
@@ -3529,9 +3443,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexes">
-            TCustomBufDataset.BufIndexes
-          </link>
           <link id="TCustomBufDataset.Refresh">
             TCustomBufDataset.Refresh
           </link>
@@ -3567,9 +3478,9 @@
           </p>
         </descr>
         <seealso>
+          <link id="#fcl.db.TDataset.ActiveBuffer">TDataset.ActiveBuffer</link>
           <link id="#fcl.Db.TDataset.State">TDataset.State</link>
           <link id="#fcl.Db.TUpdateKind">TUpdateKind</link>
-          <link id="TCustomBufDataset.ActiveBuffer">TCustomBufDataset.ActiveBuffer</link>
         </seealso>
       </element>
 
@@ -3635,9 +3546,6 @@
           <link id="#fcl.Db.TDataset.First">
             TDataset.First
           </link>
-          <link id="TCustomBufDataset.SetCurrentRecord">
-            TCustomBufDataset.SetCurrentRecord
-          </link>
         </seealso>
       </element>
 
@@ -3658,18 +3566,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.FetchAll">
-            TCustomBufDataset.FetchAll
-          </link>
-          <link id="TCustomBufDataset.CurrentIndexBuf">
-            TCustomBufDataset.CurrentIndexBuf
-          </link>
-          <link id="TCustomBufDataset.SetCurrentRecord">
-            TCustomBufDataset.SetCurrentRecord
-          </link>
-          <link id="TCustomBufDataset.DoInsertAppend">
-            TCustomBufDataset.DoInsertAppend
-          </link>
           <link id="#fcl.Db.TDataset.Last">
             TDataset.Last
           </link>
@@ -3696,12 +3592,6 @@
           <link id="TRecordBuffer">
             TRecordBuffer
           </link>
-          <link id="TCustomBufDataset.SetCurrentRecord">
-            TCustomBufDataset.SetCurrentRecord
-          </link>
-          <link id="TCustomBufDataset.InternalDelete">
-            TCustomBufDataset.InternalDelete
-          </link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.InternalSetToRecord.Buffer">
@@ -3748,12 +3638,7 @@
         <seealso>
           <link id="TRecordBuffer">TRecordBuffer</link>
           <link id="PBufBookmark">PBufBookmark</link>
-          <link id="TCustomBufDataset.RecordSize">
-            TCustomBufDataset.RecordSize
-          </link>
-          <link id="TCustomBufDataset.DoInsertAppend">
-            TCustomBufDataset.DoInsertAppend
-          </link>
+          <link id="#fcl.db.TDataset.RecordSize">TDataset.RecordSize</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.SetBookmarkData.Buffer">
@@ -3783,12 +3668,7 @@
           <link id="TRecordBuffer">
             TRecordBuffer
           </link>
-          <link id="TCustomBufDataset.RecordSize">
-            TCustomBufDataset.RecordSize
-          </link>
-          <link id="TCustomBufDataset.DoInsertAppend">
-            TCustomBufDataset.DoInsertAppend
-          </link>
+          <link id="#fcl.db.TDataset.RecordSize">TDataset.RecordSize</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.SetBookmarkFlag.Buffer">
@@ -3812,9 +3692,7 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.RecordSize">
-            TCustomBufDataset.RecordSize
-          </link>
+          <link id="#fcl.db.TDataset.RecordSize">TDataset.RecordSize</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.GetBookmarkData.Buffer">
@@ -3841,14 +3719,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TBookmarkFlag">
-          </link>
-          <link id="TCustomBufDataset.BookmarkAvailable">
-            TCustomBufDataset.BookmarkAvailable
-          </link>
-          <link id="TCustomBufDataset.SetCurrentRecord">
-            TCustomBufDataset.SetCurrentRecord
-          </link>
+          <link id="#fcl.db.TBookmarkFlag">TBookmarkFlag</link>
+          <link id="#fcl.db.TDataset.BookmarkAvailable">TDataset.BookmarkAvailable</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.GetBookmarkFlag.Result">
@@ -3966,9 +3838,6 @@
           <link id="TCustomBufDataset.Create">
             TCustomBufDataset.Create
           </link>
-          <link id="TCustomBufDataset.LoadBuffer">
-            TCustomBufDataset.LoadBuffer
-          </link>
           <link id="TDataPacketReader.RestoreBlobField">
             TDataPacketReader.RestoreBlobField
           </link>
@@ -4022,12 +3891,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.InternalClose">
-            TCustomBufDataset.InternalClose
-          </link>
-          <link id="TCustomBufDataset.InternalCancel">
-            TCustomBufDataset.InternalCancel
-          </link>
           <link id="TCustomBufDataset.MergeChangeLog">
             TCustomBufDataset.MergeChangeLog
           </link>
@@ -4080,9 +3943,6 @@
           <link id="TCustomBufDataset.AddIndex">
             TCustomBufDataset.AddIndex
           </link>
-          <link id="TCustomBufDataset.InitDefaultIndexes">
-            TCustomBufDataset.InitDefaultIndexes
-          </link>
           <link id="TBufDatasetIndex">TBufDatasetIndex</link>
         </seealso>
       </element>
@@ -4128,15 +3988,10 @@
         <seealso>
           <link id="#fcl.Db.TDataset.Filter">TDataset.Filter</link>
           <link id="#fcl.Db.TDataset.Filtered">TDataset.Filtered</link>
-          <link id="TCustomBufDataset.GetRecord">
-            TCustomBufDataset.GetRecord
-          </link>
           <link id="TCustomBufDataset.Locate">
             TCustomBufDataset.Locate
           </link>
-          <link id="TCustomBufDataset.OnFilterRecord">
-            TCustomBufDataset.OnFilterRecord
-          </link>
+          <link id="#fcl.db.TDataset.OnFilterRecord">TDataset.OnFilterRecord</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.DoFilterRecord.Acceptable">
@@ -4180,12 +4035,6 @@
           <link id="TCustomBufDataset.PacketRecords">
             TCustomBufDataset.PacketRecords
           </link>
-          <link id="TCustomBufDataset.FetchAll">
-            TCustomBufDataset.FetchAll
-          </link>
-          <link id="TCustomBufDataset.GetRecord">
-          TCustomBufDataset.GetRecord
-        </link>
           <link id="TCustomBufDataset.GetDatasetPacket">
             TCustomBufDataset.GetDatasetPacket
           </link>
@@ -4192,9 +4041,7 @@
           <link id="TCustomBufDataset.Locate">
             TCustomBufDataset.Locate
           </link>
-          <link id="TCustomBufDataset.RecNo">
-            TCustomBufDataset.RecNo
-          </link>
+          <link id="#fcl.db.TDataset.RecNo">TDataset.RecNo</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.GetNextPacket.Result">
@@ -4221,9 +4068,6 @@
           <link id="TCustomBufDataset.LoadFromStream">
             TCustomBufDataset.LoadFromStream
           </link>
-          <link id="TCustomBufDataset.IntLoadFieldDefsFromFile">
-            TCustomBufDataset.IntLoadFieldDefsFromFile
-          </link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.GetPacketReader.Result">
@@ -4260,7 +4104,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.LoadBuffer">TCustomBufDataset.LoadBuffer</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.LoadField.Result">
@@ -4303,9 +4146,6 @@
           <link id="#fcl.Db.TDataset.Refresh">
             TDataset.Refresh
           </link>
-          <link id="TCustomBufDataset.InternalRefresh">
-            TCustomBufDataset.InternalRefresh
-          </link>
         </seealso>
       </element>
 
@@ -4338,12 +4178,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexDefs">
-            TCustomBufDataset.BufIndexDefs
-          </link>
-          <link id="TCustomBufDataset.BufIndexes">
-            TCustomBufDataset.BufIndexes
-          </link>
           <link id="TCustomBufDataset.MaxIndexesCount">
             TCustomBufDataset.MaxIndexesCount
           </link>
@@ -4422,9 +4256,6 @@
           <link id="TRecUpdateBuffer">
             TRecUpdateBuffer
           </link>
-          <link id="TCustomBufDataset.ApplyRecUpdate">
-            TCustomBufDataset.ApplyRecUpdate
-          </link>
           <link id="TCustomBufDataset.OnUpdateError">
             TCustomBufDataset.OnUpdateError
           </link>
@@ -4478,9 +4309,6 @@
           <link id="#fcl.Db.TDataset.Active">
             TDataset.Active
           </link>
-          <link id="TCustomBufDataset.CancelRecordUpdateBuffer">
-            TCustomBufDataset.CancelRecordUpdateBuffer
-          </link>
           <link id="TCustomBufDataset.Resync">
             TCustomBufDataset.Resync
           </link>
@@ -4509,9 +4337,6 @@
           <link id="#fcl.Db.TDataset.Active">
             TDataset.Active
           </link>
-          <link id="TCustomBufDataset.CancelRecordUpdateBuffer">
-            TCustomBufDataset.CancelRecordUpdateBuffer
-          </link>
           <link id="TCustomBufDataset.Resync">
             TCustomBufDataset.Resync
           </link>
@@ -4569,15 +4394,9 @@
           <link id="TCustomBufDataset.UniDirectional">
             TCustomBufDataset.UniDirectional
           </link>
-          <link id="TCustomBufDataset.Active">
-            TCustomBufDataset.Active
-          </link>
-          <link id="TCustomBufDataset.Filter">
-            TCustomBufDataset.Filter
-          </link>
-          <link id="TCustomBufDataset.OnFilterRecord">
-            TCustomBufDataset.OnFilterRecord
-          </link>
+          <link id="#fcl.db.TDataset.Active">TDataset.Active</link>
+          <link id="#fcl.db.TDataset.Filter">TDataset.Filter</link>
+          <link id="#fcl.db.TDataset.Filter">TDataset.OnFilterRecord</link>
           <link id="#fcl.Db.TLocateOptions">
             TLocateOptions
           </link>
@@ -4651,9 +4470,7 @@
           <link id="TCustomBufDataset.Locate">
             TCustomBufDataset.Locate
           </link>
-          <link id="TCustomBufDataset.Active">
-            TCustomBufDataset.Active
-          </link>
+          <link id="#fcl.db.TDataset.Active">TDataset.Active</link>
           <link id="TCustomBufDataset.UniDirectional">
             TCustomBufDataset.UniDirectional
           </link>
@@ -4696,12 +4513,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TUpdateStatus">
-            TUpdateStatus
-          </link>
-          <link id="TCustomBufDataset.ActiveRecord">
-            TCustomBufDataset.ActiveRecord
-          </link>
+          <link id="#fcl.db.TUpdateStatus">TUpdateStatus</link>
+          <link id="#fcl.db.TDataset.ActiveRecord">TDataset.ActiveRecord</link>
         </seealso>
       </element>
       <element name="TCustomBufDataset.UpdateStatus.Result">
@@ -4751,9 +4564,6 @@
             TCustomBufDataset.UniDirectional
           </link>
           <link id="#fcl.Db.TDataset.Active">TDataset.Active</link>
-          <link id="TCustomBufDataset.InternalAddIndex">
-            TCustomBufDataset.InternalAddIndex
-          </link>
           <link id="TBufDatasetIndex">TBufDatasetIndex</link>
         </seealso>
       </element>
@@ -4789,12 +4599,7 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexDefs">
-            TCustomBufDataset.BufIndexDefs
-          </link>
-          <link id="TCustomBufDataset.CheckInactive">
-            TCustomBufDataset.CheckInactive
-          </link>
+          <link id="#fcl.db.TDataset.CheckInactive">TDataset.CheckInactive</link>
           <link id="TCustomBufDataset.UniDirectional">
             TCustomBufDataset.UniDirectional
           </link>
@@ -4862,7 +4667,7 @@
         <short>Data packet reader for the operation</short>
       </element>
 
-      <element name="TCustomBufDataset.LoadFromStream" link="#fcl.Db.TDataset.LoadFromStream">
+      <element name="TCustomBufDataset.LoadFromStream">
         <short>
           Loads the dataset from the specified stream using the given data format
         </short>
@@ -4908,7 +4713,7 @@
         <short>Format expected in the stream</short>
       </element>
 
-      <element name="TCustomBufDataset.SaveToStream"  link="#fcl.Db.TDataset.SaveToStream">
+      <element name="TCustomBufDataset.SaveToStream">
         <short>
           Saves the dataset to the specified stream using the given data format
         </short>
@@ -4988,8 +4793,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.FIleName">
-            TCustomBufDataset.FIleName
+          <link id="TCustomBufDataset.FileName">
+            TCustomBufDataset.FileName
           </link>
           <link id="TCustomBufDataset.LoadFromStream">
             TCustomBufDataset.LoadFromStream
@@ -5034,8 +4839,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.FIleName">
-            TCustomBufDataset.FIleName
+          <link id="TCustomBufDataset.FileName">
+            TCustomBufDataset.FileName
           </link>
           <link id="TCustomBufDataset.SaveToStream">
             TCustomBufDataset.SaveToStream
@@ -5077,11 +4882,6 @@
           <link id="#fcl.Db.TDataset.Active">TDataset.Active</link>
           <link id="#fcl.Db.TDataset.FieldDefs">TDataset.FieldDefs</link>
           <link id="#fcl.Db.TDataset.Fields">TDataset.Fields</link>
-          <link id="#fcl.Db.TDataset.CreateFields">TDataset.CreateFields</link>
-          <link id="#fcl.Db.TDataset.InitFieldDefsFromFields">
-            TDataset.InitFieldDefsFromFields
-          </link>
-          <link id="#fcl.Db.TDataset.BindFields">TDataset.BindFields</link>
           <link id="#fcl.Db.TDataset.Open">TDataset.Open</link>
           <link id="TCustomBufDataset.FileName">TCustomBufDataset.FileName</link>
         </seealso>
@@ -5097,7 +4897,7 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.Close">TCustomBufDataset.Close</link>
+          <link id="#fcl.Db.TDataset.Close">TDataset.Close</link>
           <link id="#fcl.Db.TDataset.FieldDefs">TDataset.FieldDefs</link>
           <link id="#fcl.Db.TDataset.Fields">TDataset.Fields</link>
         </seealso>
@@ -5116,9 +4916,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.CurrentIndexBuf">
-            TCustomBufDataset.CurrentIndexBuf
-          </link>
           <link id="TBufIndex.BookmarkValid">
             TBufIndex.BookmarkValid
           </link>
@@ -5161,9 +4958,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.CurrentIndexBuf">
-            TCustomBufDataset.CurrentIndexBuf
-          </link>
           <link id="TBufIndex">TBufIndex</link>
         </seealso>
       </element>
@@ -5245,7 +5039,6 @@
         <seealso>
           <link id="#fcl.Db.TDataset.Active">TDataset.Active</link>
           <link id="TCustomBufDataset.AddIndex">TCustomBufDataset.AddIndex</link>
-          <link id="TCustomBufDataset.BuffOffset">TCustomBufDataset.BuffOffset</link>
         </seealso>
       </element>
 
@@ -5376,10 +5169,8 @@
           </p>
         </descr>
         <seealso>
+          <link id="TCustomBufDataset.TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
           <link id="#fcl.Db.TIndexDefs">TIndexDefs</link>
-          <link id="TBufDatasetIndexDefs">TBufDatasetIndexDefs</link>
-          <link id="TCustomBufDataset.BufIndexDefs">TCustomBufDataset.BufIndexDefs</link>
-          <link id="TCustomBufDataset.BufIndexes">TCustomBufDataset.BufIndexes</link>
         </seealso>
       </element>
 
@@ -5396,12 +5187,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.CurrentIndexDef">
-            TCustomBufDataset.CurrentIndexDef
-          </link>
-          <link id="TCustomBufDataset.CurrentIndexBuf">
-            TCustomBufDataset.CurrentIndexBuf
-          </link>
           <link id="#fcl.Db.TDataset.Active">
             TDataset.Active
           </link>
@@ -5436,12 +5221,7 @@
           <link id="TCustomBufDataset.CurrentIndexDef">
             TCustomBufDataset.CurrentIndexDef
           </link>
-          <link id="TDataset.Active">
-            TDataset.Active
-          </link>
-          <link id="TCustomBufDataset.BuildCustomIndex">
-            TCustomBufDataset.BuildCustomIndex
-          </link>
+          <link id="#fcl.db.TDataset.Active">TDataset.Active</link>
         </seealso>
       </element>
 
@@ -5464,8 +5244,6 @@
           </p>
         </descr>
         <seealso>
-          <link id="TCustomBufDataset.BufIndexDefs">TCustomBufDataset.BufIndexDefs</link>
-          <link id="TCustomBufDataset.BufIndexes">TCustomBufDataset.BufIndexes</link>
           <link id="#fcl.Db.TDataset.ReadOnly">TDataset.ReadOnly</link>
           <link id="#fcl.Db.TDataset.Active">TDataset.Active</link>
         </seealso>
@@ -5549,9 +5327,7 @@
           <link id="TDataPacketFormat">
             TDataPacketFormat
           </link>
-          <link id="#lcl.xmldatapacketreader.TXMLDatapacketReader">
-            TXMLDatapacketReader
-          </link>
+          <link id="#fcl.db.TXMLDatapacketReader">TXMLDatapacketReader</link>
         </seealso>
       </element>
       <element name="RegisterDatapacketReader.ADatapacketReaderClass">
bufdataset.diff (31,418 bytes)   
bufstream.diff (1,875 bytes)   
Index: bufstream.xml
===================================================================
--- bufstream.xml	(revision 1818)
+++ bufstream.xml	(working copy)
@@ -231,7 +231,6 @@
 <seealso>
 <link id="TWriteBufStream.Seek"/>
 <link id="TReadBufStream.Read"/>
-<link id="TReadBufStream.Write"/>
 </seealso>
 </element>
 
@@ -257,20 +256,6 @@
 </seealso>
 </element>
 
-<!-- function Visibility: public -->
-<element name="TReadBufStream.Write">
-<short>Writes data to the stream</short>
-<descr>
-<var>Write</var> always raises an <var>EStreamError</var> exception, because
-the stream is read-only. A <link id="TWriteBufStream"/> write stream must be
-used to write data in a buffered way.
-</descr>
-<seealso>
-<link id="TReadBufStream.Seek"/>
-<link id="TReadBufStream.Read"/>
-</seealso>
-</element>
-
 <!--
   ********************************************************************
     #fcl.bufstream.TWriteBufStream
@@ -327,27 +312,11 @@
 </errors>
 <seealso>
 <link id="TWriteBufStream.Write"/>
-<link id="TWriteBufStream.Read"/>
 <link id="TReadBufStream.Seek"/>
 </seealso>
 </element>
 
 <!-- function Visibility: public -->
-<element name="TWriteBufStream.Read">
-<short>Read data from the stream</short>
-<descr>
-<var>Read</var> always raises an <var>EStreamError</var> 
-exception since <var>TWriteBufStream</var> is write-only.
-To read data in a buffered way, <link id="TReadBufStream"/> should be used.
-</descr>
-<seealso>
-<link id="TWriteBufStream.Seek"/>
-<link id="TWriteBufStream.Write"/>
-<link id="TReadBufStream.Read"/>
-</seealso>
-</element>
-
-<!-- function Visibility: public -->
 <element name="TWriteBufStream.Write">
 <short>Write data to the stream</short>
 <descr>
@@ -362,8 +331,6 @@
 </errors>
 <seealso>
 <link id="TWriteBufStream.Seek"/>
-<link id="TWriteBufStream.Read"/>
-<link id="TReadBufStream.Write"/>
 </seealso>
 </element>
 
bufstream.diff (1,875 bytes)   
contnrs.diff (16,661 bytes)   
Index: contnrs.xml
===================================================================
--- contnrs.xml	(revision 1818)
+++ contnrs.xml	(working copy)
@@ -56,10 +56,10 @@
 <descr>
 <p>
 <var>TFPObjectList</var> is a <link id="#rtl.classes.TFPList">TFPList</link>
-based list which has as the default array property <link id="#rtl.system.TObject">TObjects</link> 
-instead of pointers. By default it also manages the objects: when an object is deleted
-or removed from the list, it is automatically freed. This behaviour can be
-disabled when the list is created. 
+based list which has as the default array property
+<link id="#rtl.system.TObject">TObjects</link> instead of pointers. By default
+it also manages the objects: when an object is deleted or removed from the
+list, it is automatically freed. This behaviour can be disabled when the list is created.
 </p>
 <p>
 In difference with <link id="TObjectList"/>, <var>TFPObjectList</var> offers
@@ -118,9 +118,7 @@
 Removes all objects from the list, freeing all objects in the list if <link
 id="TFPObjectList.OwnsObjects">OwnsObjects</link>  is <var>True</var>.
 </descr>
-<seealso>
-<link id="TObjectList.Destroy"/>
-</seealso>
+<seealso/>
 </element>
 
 <!-- function Visibility: public -->
@@ -654,7 +652,7 @@
 </element>
 
 <!-- constructor Visibility: public -->
-<element name="TObjectList.create">
+<element name="TObjectList.Create">
 <short>Create a new object list.</short>
 <descr>
 <var>Create</var> instantiates a new object list. The <var>FreeObjects</var>
@@ -666,7 +664,6 @@
 None.
 </errors>
 <seealso>
-<link id="TObjectList.Destroy"/>
 <link id="TObjectList.OwnsObjects"/>
 <link id="TFPObjectList"/>
 </seealso>
@@ -891,7 +888,6 @@
 </errors>
 <seealso>
 <link id="TObjectList.Last"/>
-<link id="TObjectList.Pack"/>
 </seealso>
 </element>
 
@@ -913,7 +909,6 @@
 </errors>
 <seealso>
 <link id="TObjectList.First"/>
-<link id="TObjectList.Pack"/>
 </seealso>
 </element>
 
@@ -939,9 +934,8 @@
 </descr>
 <seealso>
 <link id="TObjectList.Create"/>
-<link id="TObjectList.Delete"/>
 <link id="TObjectList.Remove"/>
-<link id="TObjectList.Clear"/>
+<link id="TObjectList.Extract"/>
 </seealso>
 </element>
 
@@ -1361,18 +1355,14 @@
 
 <!-- function Visibility: public -->
 <element name="TClassList.First">
-<short>Return first non-nil class pointer</short>
+<short>Returns the  first non-nil class pointer</short>
 <descr>
 <var>First</var> returns a reference to the first non-<var>Nil</var> class
-pointer in the
-list. If no non-<var>Nil</var> element is found, <var>Nil</var> is returned.
+pointer in the list. If no non-<var>Nil</var> element is found,
+<var>Nil</var> is returned.
 </descr>
-<errors>
-None.
-</errors>
 <seealso>
 <link id="TClassList.Last"/>
-<link id="TClassList.Pack"/>
 </seealso>
 </element>
 
@@ -1386,15 +1376,11 @@
 <short>Return last non-<var>Nil</var> class pointer</short>
 <descr>
 <var>Last</var> returns a reference to the last non-<var>Nil</var> class
-pointer in the
-list. If no non-<var>Nil</var> element is found, <var>Nil</var> is returned.
+pointer in the list. If no non-<var>Nil</var> element is found, <var>Nil</var>
+is returned.
 </descr>
-<errors>
-None.
-</errors>
 <seealso>
 <link id="TClassList.First"/>
-<link id="TClassList.Pack"/>
 </seealso>
 </element>
 
@@ -1831,9 +1817,11 @@
 <element name="TObjectListCallback">
 <short>Method callback type for <link id="#fcl.contnrs.TFPObjectList.ForEachCall">TFPObjectList.ForEachCall</link></short>
 <descr>
-<var>TObjectListCallback</var> is used as the prototype for the <link id="TFPObjectList.ForEachCall"/> link call 
-when a method should be called. The <var>Data</var> argument will contain each of the objects in the list in turn, 
-and the <var>Data</var> argument will contain the data passed to the <var>ForEachCall</var> call.
+<var>TObjectListCallback</var> is used as the prototype for the
+<link id="TFPObjectList.ForEachCall"/> link callwhen a method should be called.
+The <var>Data</var> argument will contain each of the objects in the list in turn,
+and the <var>Data</var> argument will contain the data passed to the
+<var>ForEachCall</var> call.
 </descr>
 <seealso>
 <link id="TFPObjectList.ForEachCall"/>
@@ -1852,11 +1840,16 @@
 
 <!-- procedure type Visibility: default -->
 <element name="TObjectListStaticCallback">
-<short>Plan procedure callback type for <link id="#fcl.contnrs.TFPObjectList.ForEachCall">TFPObjectList.ForEachCall</link></short>
+<short>
+Plan procedure callback type for
+<link id="#fcl.contnrs.TFPObjectList.ForEachCall">TFPObjectList.ForEachCall</link>
+</short>
 <descr>
-<var>TObjectListCallback</var> is used as the prototype for the <link id="TFPObjectList.ForEachCall"/> link call
-when a plain procedure should be called. The <var>Data</var> argument will contain each of the objects in the list in turn,
-and the <var>Data</var> argument will contain the data passed to the <var>ForEachCall</var> call.
+<var>TObjectListCallback</var> is used as the prototype for the
+<link id="TFPObjectList.ForEachCall"/> link call when a plain procedure should be
+called. The <var>Data</var> argument will contain each of the objects in the list
+in turn, and the <var>Data</var> argument will contain the data passed to the
+<var>ForEachCall</var> call.
 </descr>
 <seealso>
 <link id="TFPObjectList.ForEachCall"/>
@@ -2027,18 +2020,6 @@
 </seealso>
 </element>
 
-<!-- property Visibility: public -->
-<element name="THTCustomNode.Data">
-<short>Data associated with this hash value.</short>
-<descr>
-<var>Data</var> is the (optional) data associated with this hash value. 
-It will be set by the <link id="TFPCustomHashTable.Add"/>  method.
-</descr>
-<seealso>
-<link id="TFPCustomHashTable.Add"/>
-</seealso>
-</element>
-
 <!--
   ********************************************************************
     #fcl.contnrs.TFPCustomHashTable
@@ -2056,7 +2037,7 @@
 is implemented in <link id="RSHash"/>.
 </p>
 <p>
-The <link id="TFPHasList">TFPHasList</link> can also be used when fast 
+The <link id="TFPHashList">TFPHashList</link> can also be used when fast
 lookup of data based on some key is required. It is slightly faster than
 the <var>TFPCustomHashTable</var> implementation, but the keys are limited
 to a length of 256 characters, and it is not suitable for re-use: it is a
@@ -2115,17 +2096,14 @@
 <element name="TFPCustomHashTable.Destroy">
 <short>Free the hash table.</short>
 <descr>
-<var>Destroy</var> removes the hash table from memory. If any data was associated with the keys in the hash table, 
-then this data is not freed. This must be done by the programmer.
+<var>Destroy</var> removes the hash table from memory. If any data was
+associated with the keys in the hash table, then this data is not freed. This
+must be done by the programmer.
 </descr>
-<errors>
-None.
-</errors>
 <seealso>
-<link id="TFPCustomHashTable.Destroy">Destroy</link>
-<link id="TFPCustomHashTable.Create">Create</link>
-<link id="TFPCustomHashTable.CreateWith">Create</link>
-<link id="THTCustomNode.Data"/>
+<link id="TFPCustomHashTable.Destroy"/>
+<link id="TFPCustomHashTable.Create"/>
+<link id="TFPCustomHashTable.CreateWith"/>
 </seealso>
 </element>
 
@@ -2165,37 +2143,6 @@
 </element>
 
 <!-- procedure Visibility: public -->
-<element name="TFPCustomHashTable.Add">
-<short>Add a new key and its associated data to the hash.</short>
-<descr>
-<p>
-<var>Add</var> calculates the hash value of <var>aKey</var> and adds key 
-and it's associated data to the corresponding hash chain.
-</p>
-<p>
-A given key can only be added once. It is an error to attempt to add the same key value twice.
-</p>
-</descr>
-<errors>
-If the key is already in the list, adding it a second time will raise an <link id="EDuplicate"/>.
-</errors>
-<seealso>
-<link id="TFPCustomHashTable.Find"/>
-<link id="TFPCustomHashTable.Delete"/>
-</seealso>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TFPCustomHashTable.Add.aKey">
-<short>Key to add</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TFPCustomHashTable.Add.AItem">
-<short>Data to associate with key</short>
-</element>
-
-<!-- procedure Visibility: public -->
 <element name="TFPCustomHashTable.Delete">
 <short>Delete a key from the hash list.</short>
 <descr>
@@ -2208,7 +2155,6 @@
 </errors>
 <seealso>
 <link id="TFPCustomHashTable.Find"/>
-<link id="TFPCustomHashTable.Add"/>
 </seealso>
 </element>
 
@@ -2236,8 +2182,7 @@
 None.
 </errors>
 <seealso>
-<link id="TFPCustomHashTable.Add">Add</link>
-<link id="TFPCustomHashTable.Delete">Delete</link>
+<link id="TFPCustomHashTable.Delete"/>
 </seealso>
 </element>
 
@@ -2277,14 +2222,14 @@
 <element name="TFPCustomHashTable.HashFunction">
 <short>Hash function currently in use</short>
 <descr>
-<var>HashFunction</var> is the hash function currently in use to calculate hash values from keys.
-The property can be set, this simply calls <link id="TFPCustomHashTable.SetHashFunction">SetHashFunction</link>.
-Note that setting the hash function does NOT the hash value of all keys to be recomputed, so changing the
-value while there are still keys in the table is not a good idea.
+<var>HashFunction</var> is the hash function currently in use to calculate
+hash values from keys. The property can be set, this simply calls
+<var>SetHashFunction</var>. Note that setting the hash function does
+<b>NOT</b> cause the hash value of all keys to be recomputed, so changing
+the value while there are still keys in the table is not a good idea.
 </descr>
 <seealso>
-<link id="TFPCustomHashTable.SetHashFunction">SetHashFunction</link>
-<link id="TFPCustomHashTable.HashTableSize">HashTableSize</link>
+<link id="TFPCustomHashTable.HashTableSize"/>
 </seealso>
 </element>
 
@@ -2330,7 +2275,6 @@
 </descr>
 <seealso>
 <link id="TFPCustomHashTable.Find"/>
-<link id="TFPCustomHashTable.Add"/>
 </seealso>
 </element>
 
@@ -2415,7 +2359,7 @@
 <link id="TFPCustomHashTable.IsEmpty"/>
 <link id="TFPCustomHashTable.Count"/>
 <link id="TFPCustomHashTable.LoadFactor"/>
-<link id="TFPCustomHashTable.AvgChainLength"/>
+<link id="TFPCustomHashTable.AVGChainLen"/>
 <link id="TFPCustomHashTable.VoidSlots"/>
 <link id="TFPCustomHashTable.Density"/>
 <link id="TFPCustomHashTable.NumberOfCollisions"/>
@@ -2434,7 +2378,7 @@
 <link id="TFPCustomHashTable.IsEmpty"/>
 <link id="TFPCustomHashTable.Count"/>
 <link id="TFPCustomHashTable.LoadFactor"/>
-<link id="TFPCustomHashTable.AvgChainLength"/>
+<link id="TFPCustomHashTable.AVGChainLen"/>
 <link id="TFPCustomHashTable.VoidSlots"/>
 <link id="TFPCustomHashTable.Density"/>
 </seealso>
@@ -2450,7 +2394,7 @@
 <link id="TFPCustomHashTable.IsEmpty"/>
 <link id="TFPCustomHashTable.Count"/>
 <link id="TFPCustomHashTable.LoadFactor"/>
-<link id="TFPCustomHashTable.AvgChainLength"/>
+<link id="TFPCustomHashTable.AVGChainLen"/>
 <link id="TFPCustomHashTable.VoidSlots"/>
 <link id="TFPCustomHashTable.Density"/>
 </seealso>
@@ -2466,7 +2410,6 @@
 <element name="EDuplicate">
 <short>Exception raised when a key is stored twice in a hash table.</short>
 <seealso>
-<link id="TFPCustomHashTable.Add"/>
 </seealso>
 </element>
 
@@ -2813,7 +2756,7 @@
 If <var>Index</var> is out of the valid range, an exception is raised.
 </errors>
 <seealso>
-<link id="TFPHashList.HashOfName"/>
+<link id="TFPHashList.NameOfIndex"/>
 <link id="TFPHashList.Find"/>
 <link id="TFPHashList.FindIndexOf"/>
 <link id="TFPHashList.FindWithHash"/>
@@ -3544,7 +3487,7 @@
 If <var>Index</var> is out of the valid range, an exception is raised.
 </errors>
 <seealso>
-<link id="TFPHashObjectList.HashOfName"/>
+<link id="TFPHashObjectList.NameOfIndex"/>
 <link id="TFPHashObjectList.Find"/>
 <link id="TFPHashObjectList.FindIndexOf"/>
 <link id="TFPHashObjectList.FindWithHash"/>
@@ -4190,11 +4133,14 @@
 <element name="TStringIteratorMethod">
 <short>Iterator callback type</short>
 <descr>
-<var>TStringIteratorMethod</var> is the callback prototype for the <link
-id="TFPCustomHashTable.Iterate">Iterate</link> method. It is called for each
-element in the hash table, with the string. If <var>Continue</var> is set to <var>false</var>, 
-the iteration stops.
+<var>TStringIteratorMethod</var> is the callback prototype for the
+<link id="TFPStringHashTable.Iterate">TFPStringHashTable</link>
+method. It is called for each element in the hash table, with the string.
+If <var>Continue</var> is set to <var>False</var>, the iteration stops.
 </descr>
+<seealso>
+<link id="TFPStringHashTable.Iterate"/>
+</seealso>
 </element>
 
 <!-- argument Visibility: default -->
@@ -4216,11 +4162,14 @@
 <element name="TStringIteratorCallBack">
 <short>Iterator callback type</short>
 <descr>
-<var>TStringIteratorCallBack</var> is the callback prototype for the <link
-id="TFPCustomHashTable.Iterate">Iterate</link> method. It is called for each
-element in the hash table, with the string. If <var>Continue</var> is set to <var>false</var>, 
-the iteration stops.
+<var>TStringIteratorCallBack</var> is the callback prototype for the
+<link id="TFPStringHashTable.Iterate">TFPStringHashTable</link>
+method. It is called for each element in the hash table, with the string.
+If <var>Continue</var> is set to <var>False</var>, the iteration stops.
 </descr>
+<seealso>
+<link id="TFPStringHashTable.Iterate">TFPStringHashTable</link>
+</seealso>
 </element>
 
 <!-- argument Visibility: default -->
@@ -5224,18 +5173,19 @@
 <short>Iterate over the pointers in the hash table</short>
 <descr>
 <p>
-<var>Iterate</var> iterates over all elements in the array, calling <var>aMethod</var> for each
-pointer, or until the method returns <var>False</var> in its <var>continue</var> parameter. 
-It returns <var>Nil</var> if all elements were processed, or the pointer that was being 
-processed when <var>aMethod</var> returned <var>False</var> in the <var>Continue</var> parameter.
+<var>Iterate</var> iterates over all elements in the array, calling
+<var>aMethod</var> for each pointer, or until the method returns
+<var>False</var> in its <var>continue</var> parameter. It returns
+<var>Nil</var> if all elements were processed, or the pointer that
+was being processed when <var>aMethod</var> returned
+<var>False</var> in the <var>Continue</var> parameter.
 </p>
 <p>
-The <var>aMethod</var> callback can be a method of an object, or a normal, static procedure.
+The <var>aMethod</var> callback can be a method of an object, or
+a normal, static procedure.
 </p>
 </descr>
-<seealso>
-<link id="ForeachCall"/>
-</seealso>
+<seealso/>
 </element>
 
 <!-- function result Visibility: public -->
@@ -5252,14 +5202,14 @@
 <element name="TFPStringHashTable.Iterate">
 <short>Iterate over the strings in the hash table</short>
 <descr>
-<var>Iterate</var> iterates over all elements in the array, calling <var>aMethod</var> for each
-string, or until the method returns <var>False</var> in its <var>continue</var> parameter.
-It returns an empty string if all elements were processed, or the string that was being
-processed when <var>aMethod</var> returned <var>False</var> in the <var>Continue</var> parameter.
+<var>Iterate</var> iterates over all elements in the array, calling
+<var>aMethod</var> for each string, or until the method returns
+<var>False</var> in its <var>continue</var> parameter. It returns
+an empty string if all elements were processed, or the string that
+was being processed when <var>aMethod</var> returned
+<var>False</var> in the <var>Continue</var> parameter.
 </descr> 
-<seealso>
-<link id="ForeachCall"/>
-</seealso>
+<seealso/>
 </element>
 
 <!-- function result Visibility: public -->
@@ -5276,14 +5226,14 @@
 <element name="TFPObjectHashTable.Iterate">
 <short>Iterate over the objects in the hash table</short>
 <descr>
-<var>Iterate</var> iterates over all elements in the array, calling <var>aMethod</var> 
-for each object, or until the method returns <var>False</var> in its <var>continue</var> parameter.
-It returns <var>Nil</var> if all elements were processed, or the object that was being 
-processed when <var>aMethod</var> returned <var>False</var> in the <var>Continue</var> parameter.
+<var>Iterate</var> iterates over all elements in the array, calling
+<var>aMethod</var> for each object, or until the method returns
+<var>False</var> in its <var>continue</var> parameter. It returns
+<var>Nil</var> if all elements were processed, or the object that was
+being processed when <var>aMethod</var> returned <var>False</var>
+in the <var>Continue</var> parameter.
 </descr>
-<seealso>
-<link id="ForeachCall"/>
-</seealso>
+<seealso/>
 </element>
 
 <!-- function result Visibility: public -->
contnrs.diff (16,661 bytes)   
custapp.diff (2,848 bytes)   
Index: custapp.xml
===================================================================
--- custapp.xml	(revision 1818)
+++ custapp.xml	(working copy)
@@ -226,7 +226,7 @@
 </descr>
 <seealso>
 <link id="TCustomApplication.HandleException"/>
-<link id="TCustomApplication.StopException"/>
+<link id="TCustomApplication.StopOnException"/>
 </seealso>
 </element>
 
@@ -252,7 +252,7 @@
 <seealso>
 <link id="#rtl.sysutils.ShowException">ShowException</link>
 <link id="TCustomApplication.HandleException"/>
-<link id="TCustomApplication.StopException"/>
+<link id="TCustomApplication.StopOnException"/>
 </seealso>
 </element>
 
@@ -617,17 +617,17 @@
 <p>
 <var>OnException</var> can be set to provide custom handling of events,
 instead of the default action, which is simply to show the event using
-<link id="TCustomApplication.ShowEvent">ShowEvent</link>.
+<link id="TCustomApplication.ShowException">ShowException</link>.
 </p>
 <p>
 If set, <var>OnException</var> is called by the 
-<link id="TCustomApplication.HandleEvent">HandleEvent</link> routine. Do not
-use the <var>OnException</var> event directly, instead call
-<var>HandleEvent</var>
+<link id="TCustomApplication.HandleException">HandleException</link> routine.
+Do not use the <var>OnException</var> event directly, instead call
+<var>HandleException</var>.
 </p>
 </descr>
 <seealso>
-<link id="TCustomApplication.ShowEvent">ShowEvent</link>
+<link id="TCustomApplication.ShowException"/>
 </seealso>
 </element>
 
@@ -996,9 +996,10 @@
 <element name="TCustomApplication.SingleInstance">
 <short>Single instance used to control single application instance behaviour</short>
 <descr>
-<var>SingleInstance</var> is used when <link id="SingleInstanceEnabled"/> is set to <var>True</var>.
-It can be used to send a message to an already running instance, or to check for messages if the 
-current instance is the sole ("server") instance running.
+<var>SingleInstance</var> is used when
+<link id="TCustomApplication.SingleInstanceEnabled"/> is set to <var>True</var>.
+It can be used to send a message to an already running instance, or to check for
+messages if the current instance is the sole ("server") instance running.
 </descr>
 <seealso>
 <link id="TCustomApplication.SingleInstanceClass"/>
@@ -1014,11 +1015,11 @@
 instantiate <link
 id="TCustomApplication.SingleInstance">SingleInstance</link>.
 The default class is determined by the global singleinstance default class
-as specified in <link id="singleinstance.DefaultSingleInstanceClass"/>.
+as specified in <link id="#fcl.singleinstance.DefaultSingleInstanceClass"/>.
 </descr>
 <seealso>
 <link id="TCustomApplication.SingleInstance"/>
-<link id="singleinstance.DefaultSingleInstanceClass"/>
+<link id="#fcl.singleinstance.DefaultSingleInstanceClass">DefaultSingleInstanceClass</link>
 </seealso>
 </element>
 
custapp.diff (2,848 bytes)   
daemonapp.diff (14,026 bytes)   
Index: daemonapp.xml
===================================================================
--- daemonapp.xml	(revision 1818)
+++ daemonapp.xml	(working copy)
@@ -22,17 +22,18 @@
 <dl>
 <dt>TDaemon</dt><dd>This is a class that implements the daemon's
 functionality. One or more descendents of this class can be implemented and
-instantiated in a single daemon application. For more information, see <link
-id="TDaemon"/>.</dd>
-<dt>TDaemonApplication</dt><dd>This is  the actual daemon application class. 
-A global instance of this class is instantiated. It handles the command-line
-arguments, and instantiates the various daemons. For more information, see
+instantiated in a single daemon application. For more information, see
+<link id="TDaemon"/>.</dd>
+<dt>TDaemonApplication</dt>
+<dd>This is the actual daemon application class. A global instance of this
+class is instantiated. It handles the command-line arguments, and instantiates
+the various daemons. For more information, see
 <link id="TDaemonApplication"/>.</dd>
-<dt>TDaemonDef</dt><dd>This class defines the daemon in the operation
-system. The <var>TDaemonApplication</var> class has a collection of
+<dt>TDaemonDef</dt>
+<dd>This class defines the daemon in the operation system. The
+<var>TDaemonApplication</var> class has a collection of
 <var>TDaemonDef</var> instances, which it uses to start the various daemons.
-For more information, see <link id="TDaemonDef"/>.
-</dd>
+For more information, see <link id="TDaemonDef"/>.</dd>
 </dl>
 <p>
 As can be seen, a single application can implement one ore more daemons
@@ -40,7 +41,8 @@
 by the application class.
 </p>
 <p>
-The classes take care of logging through the <link id="#fcl.eventlog.teventlog">TEventLog</link> class.
+The classes take care of logging through the
+<link id="#fcl.eventlog.TEventLog">TEventLog</link> class.
 </p>
 <p>
 Many options are needed only to make the application behave as a windows
@@ -51,9 +53,8 @@
 
 <topic name="Architecture">
 <short>Daemon application architecture</short>
-<descr>
-<p>[Still needs to be completed]</p>
-</descr>
+<descr/>
+<notes><note>TODO: Still needs to be completed.</note></notes>
 </topic>
 
 <!-- unresolved type reference Visibility: default -->
@@ -310,6 +311,15 @@
 <short>The daemon is paused: running but not active.</short>
 </element>
 
+<element name="TCustomDaemon.CheckControlMessages">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+<element name="TCustomDaemon.CheckControlMessages.Wait">
+  <short/>
+</element>
+
 <!-- procedure Visibility: public -->
 <element name="TCustomDaemon.LogMessage">
 <short>Log a message to the system log</short>
@@ -474,6 +484,32 @@
 <short>Was the control code handled ?</short>
 </element>
 
+<element name="TCustomControlCodeEvEvent">
+  <short/>
+  <descr>
+  <p>
+  TCustomControlCodeEvEvent is the type used for the OnControlCodeEvent
+  property in TDaemon.
+  </p>
+  </descr>
+  <seealso/>
+</element>
+<element name="TCustomControlCodeEvEvent.Sender">
+  <short>Daemon instance for the event notification</short>
+</element>
+<element name="TCustomControlCodeEvEvent.ACode">
+  <short>Control code sent to the daemon</short>
+</element>
+<element name="TCustomControlCodeEvEvent.AEventType">
+  <short>Event type for the notification</short>
+</element>
+<element name="TCustomControlCodeEvEvent.AEventData">
+  <short>Pointer to the arbitrary data for the notification</short>
+</element>
+<element name="TCustomControlCodeEvEvent.Handled">
+  <short>True if the control code and event type were handled</short>
+</element>
+
 <!--
   ********************************************************************
     #fcl.daemonapp.TDaemon
@@ -721,6 +757,12 @@
 </seealso>
 </element>
 
+<element name="TDaemon.OnControlCodeEvent">
+<short/>
+<descr/>
+<seealso/>
+</element>
+
 <!-- constructor Visibility: public -->
 <element name="TDaemonController.Create">
 <short>Create a new instance of the <var>TDaemonController</var> class</short>
@@ -849,7 +891,7 @@
 If an error occurs, an error message is sent to the system log.
 </errors>
 <seealso>
-<link id="TDaemon.ReportStatus"/>
+<link id="TCustomDaemon.ReportStatus"/>
 <link id="TDaemonController.LastStatus"/>
 </seealso>
 </element>
@@ -1114,6 +1156,48 @@
 <short>Zero based index of the dependency</short>
 </element>
 
+<element name="TWinControlCode">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+<element name="TWinControlCode.wccNetBindChange">
+  <short/>
+</element>
+<element name="TWinControlCode.wccParamChange">
+  <short/>
+</element>
+<element name="TWinControlCode.wccPreShutdown">
+  <short/>
+</element>
+<element name="TWinControlCode.wccShutdown">
+  <short/>
+</element>
+<element name="TWinControlCode.wccHardwareProfileChange">
+  <short/>
+</element>
+<element name="TWinControlCode.wccPowerEvent">
+  <short/>
+</element>
+<element name="TWinControlCode.wccSessionChange">
+  <short/>
+</element>
+<element name="TWinControlCode.wccTimeChange">
+  <short/>
+</element>
+<element name="TWinControlCode.wccTriggerEvent">
+  <short/>
+</element>
+<element name="TWinControlCode.wccUserModeReboot">
+  <short/>
+</element>
+
+<element name="TWinControlCodes">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
 <!--
   ********************************************************************
     #fcl.daemonapp.TWinBindings
@@ -1178,7 +1262,7 @@
 <short>Service specific error code</short>
 <descr>
 <var>ErrCode</var> contains a service specific error code that is reported with 
-<link id="TDaemon.ReportStatus"/> to the windows service manager. If it is zero,
+<link id="TCustomDaemon.ReportStatus"/> to the windows service manager. If it is zero,
 then the contents of <link id="TWinBindings.Win32ErrCode">Win32ErrCode</link>
 are reported. If it is nonzero, then the windows-errorcode is set to 
 <var>ERROR_SERVICE_SPECIFIC_ERROR</var>.
@@ -1193,7 +1277,7 @@
 <short>General windows error code</short>
 <descr>
 <var>Win32ErrCode</var> is a general windows service error code that can be
-reported with <link id="TDaemon.ReportStatus"/> to the windows service manager.
+reported with <link id="TCustomDaemon.ReportStatus"/> to the windows service manager.
 It is sent if <link id="TWinBindings.ErrCode">ErrCode</link> is zero.
 </descr>
 <seealso>
@@ -1298,7 +1382,7 @@
 </p>
 </descr>
 <seealso>
-<link id="TDaemon.ReportStatus"/>
+<link id="TCustomDaemon.ReportStatus"/>
 </seealso>
 </element>
 
@@ -1346,6 +1430,12 @@
 </descr>
 </element>
 
+<element name="TWinBindings.AcceptedCodes">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
 <!-- constructor Visibility: public -->
 <element name="TDaemonDef.Create">
 <short>Create a new <var>TDaemonDef</var> instance</short>
@@ -1402,10 +1492,10 @@
 <element name="TDaemonDef.DaemonClassName">
 <short>Name of the <var>TDaemon</var> class to use for this daemon</short>
 <descr>
-<var>DaemonClassName</var> is the name of the <var>TDaemon</var> class that
+<var>DaemonClassName</var> is the name of the <var>TCustomDaemon</var> class that
 will be used whenever the service is needed. The name is used to look up the
 class pointer registered in the daemon mapper, when <link
-id="TCustomDaemonApplication.CreateDaemonInstance"/> creates an instance of
+id="TCustomDaemonApplication"/> creates an instance of
 the daemon.
 </descr>
 <seealso>
@@ -1412,6 +1502,8 @@
 <link id="TDaemonDef.Instance"/>
 <link id="TDaemonDef.DaemonClass"/>
 <link id="RegisterDaemonClass"/>
+<link id="TCustomDaemon"/>
+<link id="TCustomDaemonApplication"/>
 </seealso>
 </element>
 
@@ -1496,7 +1588,7 @@
 the daemon.
 </descr>
 <seealso>
-<link id="TDaemon.ReportStatus"/>
+<link id="TCustomDaemon.ReportStatus"/>
 </seealso>
 </element>
 
@@ -1999,13 +2091,17 @@
 <element name="TDaemonThread.StopDaemon">
 <short>Stops the daemon</short>
 <descr>
-<var>StopDaemon</var> attempts to stop the daemon using its <link
-id="TDaemon.Stop"/> method, and terminates the thread.
+<var>StopDaemon</var> attempts to stop the <var>Daemon</var> by calling
+methods in the <var>TCustomDaemon</var> instance. StopDaemon also
+terminates the thread. The return value is True if the Daemon was successfully
+stopped in the method.
 </descr>
 <seealso>
-<link id="TDaemon.Stop"/>
+<link id="TDaemonThread.Daemon"/>
 <link id="TDaemonThread.PauseDaemon"/>
 <link id="TDaemonThread.ShutDownDaemon"/>
+<link id="TCustomDaemon"/>
+<link id="#rtl.classes.TThread.Terminate">TThread.Terminate</link>
 </seealso>
 </element>
 
@@ -2019,16 +2115,17 @@
 <short>Pause the daemon</short>
 <descr>
 <p>
-<var>PauseDaemon</var> attempts to stop the daemon using its 
-<link id="TDaemon.Pause"/> method, and suspends the thread.
-It returns <var>True</var> if the attempt was successful.
+<var>PauseDaemon</var> attempts to pause the <var>Daemon</var> by calling
+methods in the <link id="TCustomDaemon"/> instance, and calling <var>Suspend</var>
+to suspend the thread. It returns <var>True</var> if the attempt was successful.
 </p>
 </descr>
 <seealso>
-<link id="TDaemon.Pause"/>
 <link id="TDaemonThread.StopDaemon"/>
 <link id="TDaemonThread.ContinueDaemon"/>
 <link id="TDaemonThread.ShutDownDaemon"/>
+<link id="TCustomDaemon"/>
+<link id="#rtl.classes.TThread.Suspend">TThread.Suspend</link>
 </seealso>
 </element>
 
@@ -2041,15 +2138,16 @@
 <element name="TDaemonThread.ContinueDaemon">
 <short>Continue the daemon</short>
 <descr>
-<var>ContinueDaemon</var> attempts to stop the daemon using its
-<link id="TDaemon.Continue"/> method. It returns <var>True</var>
-if the attempt was successful.
+<var>ContinueDaemon</var> attempts to restart the <var>Daemon</var>
+by calling methods in the <link id="TCustomDaemon"/> instance. It returns
+<var>True</var> if the attempt was successful.
 </descr>
 <seealso>
-<link id="TDaemon.Continue"/>
+<link id="TDaemonThread.Daemon"/>
 <link id="TDaemonThread.StopDaemon"/>
 <link id="TDaemonThread.PauseDaemon"/>
 <link id="TDaemonThread.ShutDownDaemon"/>
+<link id="TCustomDaemon"/>
 </seealso>
 </element>
 
@@ -2062,22 +2160,23 @@
 <element name="TDaemonThread.ShutDownDaemon">
 <short>Shut down daemon</short>
 <descr>
-<var>ShutDownDaemon</var> shuts down the daemon. This happens normally only
-when the system is shut down and the daemon didn't respond to the stop
-request. The return result is the result of the <link id="TDaemon.Shutdown"/>
-function. The thread is terminated by this method.
+<var>ShutDownDaemon</var> shuts down the <var>Daemon</var> for the thread.
+This happens normally only when the system is shut down and the daemon didn't
+respond to the stop request. The return valuie is the result from the method in the
+<link id="TCustomDaemon"/> instance. The thread is terminated in this method.
 </descr>
 <seealso>
-<link id="TDaemon.Shutdown"/>
 <link id="TDaemonThread.StopDaemon"/>
 <link id="TDaemonThread.PauseDaemon"/>
 <link id="TDaemonThread.ContinueDaemon"/>
+<link id="TCustomDaemon"/>
+<link id="#rtl.classes.TThread.Terminate">TThread.Terminate</link>
 </seealso>
 </element>
 
 <!-- function result Visibility: default -->
 <element name="TDaemonThread.ShutDownDaemon.Result">
-<short>The result of <var>TDaemon.Shutdown</var></short>
+<short>The result from the <var>Daemon</var> method</short>
 </element>
 
 <!-- function Visibility: public -->
@@ -2084,12 +2183,12 @@
 <element name="TDaemonThread.InterrogateDaemon">
 <short>Report the daemon status</short>
 <descr>
-<var>InterrogateDaemon</var> simply calls <link id="TDaemon.ReportStatus"/>
+<var>InterrogateDaemon</var> simply calls <link id="TCustomDaemon.ReportStatus"/>
 for the daemon that is running in this thread. It always returns
 <var>True</var>.
 </descr>
 <seealso>
-<link id="TDaemon.ReportStatus"/>
+<link id="TCustomDaemon.ReportStatus"/>
 </seealso>
 </element>
 
@@ -2154,6 +2253,15 @@
 </seealso>
 </element>
 
+<element name="TCustomDaemonApplication.Create">
+<short>Constructor for the class instance</short>
+<descr/>
+<seealso/>
+</element>
+<element name="TCustomDaemonApplication.Create.AOwner">
+<short>Owner of the class instance</short>
+</element>
+
 <!-- procedure Visibility: public -->
 <element name="TCustomDaemonApplication.ShowException">
 <short>Show an exception</short>
@@ -2360,6 +2468,12 @@
 </seealso>
 </element>
 
+<element name="TCustomDaemonApplication.AutoRegisterMessageFile">
+<short></short>
+<descr/>
+<seealso/>
+</element>
+
 <!-- "class of" type Visibility: default -->
 <element name="TCustomDaemonApplicationClass">
 <short>Class pointer for <var>TCustomDaemonApplication</var></short>
@@ -2671,19 +2785,6 @@
 </descr>  
 </element>
 
-
-<element name="TCustomDaemonApplication.Log">             
-<short>Log a message to the system event log.</short>
-<descr>   
-<var>Log</var> logs <var>Msg</var> to the system event log with event type
-<var>EventType</var>.
-</descr>  
-<seealso> 
-<link id="TCustomDaemonApplication.EventLog">EventLog</link>
-</seealso>
-</element>
-
-
 <element name="TCustomDaemonApplication.OnRun">             
 <short>Event executed when the daemon is run.</short>
 <descr>   
@@ -2697,23 +2798,18 @@
 </seealso>
 </element>
 
-
 <element name="TCustomDaemonApplication.EventLog">             
 <short>Event logger instance</short>
 <descr>   
-<var>EventLog</var> is the <link id="#fcl.eventlog.TEventLog">TEventLog</link>  instance 
-which is used to log events to the system log with the <link
-id="TCustomDaemonApplication.Log">Log</link> method. It is created when the
-application instance is created, and destroyed when the application is
-destroyed.
+<var>EventLog</var> is the <link id="#fcl.eventlog.TEventLog">TEventLog</link>
+instance which is used to log events to the system log. It is created when the
+application instance is created, and destroyed when the application is destroyed.
 </descr>  
 <seealso> 
 <link id="#fcl.eventlog.TEventLog">TEventLog</link>
-<link id="TCustomDaemonApplication.Log">Log</link>
 </seealso>
 </element>
 
-
 </module> <!-- daemonapp -->
 </package>
 </fpdoc-descriptions>
daemonapp.diff (14,026 bytes)   
db.diff (5,271 bytes)   
Index: db.xml
===================================================================
--- db.xml	(revision 1818)
+++ db.xml	(working copy)
@@ -21,6 +21,31 @@
 themselves are abstracted in the <link id="TDatabase"/> class.
 </descr>
 
+<!-- uses unit Visibility: default -->
+<element name="Classes">
+<short>Collections and lists</short>
+</element>
+
+<!-- uses unit Visibility: default -->
+<element name="SysUtils">
+<short>Formatting and conversions</short>
+</element>
+
+<!-- uses unit Visibility: default -->
+<element name="Variants">
+<short>Variant support</short>
+</element>
+
+<!-- uses unit Visibility: default -->
+<element name="FmtBCD">
+<short>BCD support</short>
+</element>
+
+<!-- uses unit Visibility: default -->
+<element name="MaskUtils">
+<short>Mask string support</short>
+</element>
+
 <!-- constant Visibility: default
      Declaration: dsMaxBufferCount = MAXINT div 8 -->
 <element name="dsMaxBufferCount">
@@ -1615,6 +1640,30 @@
 </seealso>
 </element>
 
+<element name="TFieldDef.Codepage">
+<short>System code page for the values in string and wide string field types</short>
+<descr>
+<p>
+Codepage is a read-only TSystemCodePage property with the system code page used
+for values in the field. The value in CodePage is assigned in the overloaded constructor
+which includes a TSystemCodePage argument. CodePage is relevant for string or wide
+string field types, and uses the following values:
+</p>
+<dl>
+  <dt>ftString, ftFixedChar, ftMemo</dt>
+  <dd>Uses the value passed in the argument. The default value is 0.</dd>
+  <dt>ftWideString, ftFixedWideChar, ftWideMemo</dt>
+  <dd>Use the value in the CP_UTF16 constant.</dd>
+  <dt>Other non-string field types</dt>
+  <dd>Uses the value 0 in Codepage.</dd>
+</dl>
+</descr>
+<seealso>
+<link id="TFieldDef.Create"/>
+<link id="TFieldDef.DataType"/>
+</seealso>
+</element>
+
 <!-- property Visibility: published
      Declaration: Attributes : TFieldAttributes -->
 <element name="TFieldDef.Attributes">
@@ -11608,6 +11657,55 @@
 </seealso>
 </element>
 
+<element name="TSQLParseOption">
+<short>Represents SQL parser options available to the TParams collection</short>
+<descr>
+TSQLParseOption is an enumerated type with values that represent SQL parser
+options available for use in the <var>TParams</var> collection. Value(s) from
+TSQLParseOption are stored in the <var>TSQLParseOptions</var> set type, and
+passed as an argument to the <var>TParams.ParseSQL</var> method. When a
+value from the enumeration is included in the set, the feature or behavior is
+enabled while parsing the SQL statement.
+</descr>
+<seealso>
+  <link id="TParams.ParseSQL"/>
+  <link id="TSQLParseOptions"/>
+</seealso>
+</element>
+<element name="TSQLParseOption.spoCreate">
+<short>Indicates existing parameters are cleared and re-created, not updated</short>
+</element>
+<element name="TSQLParseOption.spoEscapeSlash">
+<short>Causes the Slash character ('/') to be escaped</short>
+</element>
+<element name="TSQLParseOption.spoEscapeRepeat">
+<short>Causes an escaped character to be repeated</short>
+</element>
+<element name="TSQLParseOption.spoUseMacro">
+<short>Enables macro expansion in a SQL statement</short>
+</element>
+
+<element name="TSQLParseOptions">
+<short>Set type used to store value(s) from the TSQLParseOption enumeration</short>
+<descr>
+<p>
+<var>TSQLParseOptions</var> is a set type used to store zero or more values
+from the <var>TSQLParseOption</var> enumeration. TSQLParseOptions is used
+in the <var>TParams.ParseSQL</var> method to indicate the options enabled
+when the SQL statement is parsed. The set type can be passed as an argument to
+the method.
+</p>
+<p>
+See <link id="TSQLParseOption"/> for information about the enumeration values and their
+meanings.
+</p>
+</descr>
+<seealso>
+  <link id="TParams.ParseSQL"/>
+  <link id="TSQLParseOption"/>
+</seealso>
+</element>
+
 <!-- property Visibility: published
      Declaration: Size : Integer -->
 <element name="TParam.Size">
@@ -11946,6 +12044,14 @@
 <short>Placeholder string.</short>
 </element>
 
+<element name="TParams.ParseSQL.Options">
+  <short>Contains the parser options enabled when parsing the SQL statement</short>
+</element>
+
+<element name="TParams.ParseSQL.MacroChar">
+  <short>Character which triggers expansion of a named macro in the SQL statement</short>
+</element>
+
 <!-- procedure Visibility: public
      Declaration: procedure RemoveParam(Value: TParam) -->
 <element name="TParams.RemoveParam">
@@ -13700,31 +13806,6 @@
 </seealso>
 </element>
 
-<!-- uses unit Visibility: default -->
-<element name="Classes">
-<short>Collections and lists</short>
-</element>
-
-<!-- uses unit Visibility: default -->
-<element name="SysUtils">
-<short>Formatting and conversions</short>
-</element>
-
-<!-- uses unit Visibility: default -->
-<element name="Variants">
-<short>Variant support</short>
-</element>
-
-<!-- uses unit Visibility: default -->
-<element name="FmtBCD">
-<short>BCD support</short>
-</element>
-
-<!-- uses unit Visibility: default -->
-<element name="MaskUtils">
-<short>Mask string support</short>
-</element>
-
 <!-- argument Visibility: default -->
 <element name="TFieldDef.Create.ACodePage">
 <short>Codepage for the string field</short>
db.diff (5,271 bytes)   
ascii85.diff (1,403 bytes)   
Index: ascii85.xml
===================================================================
--- ascii85.xml	(revision 1818)
+++ ascii85.xml	(working copy)
@@ -435,6 +435,15 @@
 <link id="TASCII85EncoderStream.Boundary">Boundary</link>
 </seealso>
 </element>
+<element name="TASCII85EncoderStream.Create.ADest">
+<short>Stream where the encoded data is stored</short>
+</element>
+<element name="TASCII85EncoderStream.Create.AWidth">
+<short>Width of the lines written by the encoder</short>
+</element>
+<element name="TASCII85EncoderStream.Create.ABoundary">
+<short>True to write a delineator before and after the encoded data</short>
+</element>
 
 <element name="TASCII85EncoderStream.Boundary">
 <short>Is a boundary delineator written before and after the data</short>
@@ -480,6 +489,15 @@
 <link id="TASCII85EncoderStream.Destroy"/>
 </seealso>
 </element>
+<element name="TASCII85EncoderStream.Write.Result">
+<short>Returns the number of bytes from the buffer encoded in the method</short>
+</element>
+<element name="TASCII85EncoderStream.Write.aBuffer">
+<short>Untyped buffer with the data encoded in the method</short>
+</element>
+<element name="TASCII85EncoderStream.Write.aCount">
+<short>Number of bytes from the buffer encoded in the method</short>
+</element>
 
 <element name="TASCII85EncoderStream.Destroy">
 <short>Flushed the data to the output stream and cleans up the encoder
ascii85.diff (1,403 bytes)   
dbugintf.diff (4,354 bytes)   
Index: dbugintf.xml
===================================================================
--- dbugintf.xml	(revision 1818)
+++ dbugintf.xml	(working copy)
@@ -70,22 +70,37 @@
 <link id="SendDebugEx"/>
 </seealso>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TDebugLevel.dlInformation">
 <short>Informational message</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TDebugLevel.dlWarning">
 <short>Warning message</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TDebugLevel.dlError">
 <short>Error message</short>
 </element>
 
+<element name="TErrorLevel ">
+<short>Array type with Integer values representing debug error levels</short>
+<descr>
+<p>
+<var>TErrorLevel</var> is an <var>Array</var> type with <var>Integer</var>
+values representing debug error levels. Elements in the array are accessed
+using the values from the <var>TDebugLevel</var> enumeration. The value
+in each element is the debug message type constant for the error level.
+</p>
+<p>
+TErrorLevel is the type used for the <var>ErrorLevel</var> constant in the
+implementation for the <file>dbugintf.pp</file> unit. For example:
+</p>
+<code>
+var
+  ErrorLevel: TErrorLevel = (dmtInformation, dmtWarning, dmtError);
+</code>
+</descr>
+<seealso/>
+</element>
+
 <!-- procedure Visibility: default -->
 <element name="SendBoolean">
 <short>Send the value of a boolean variable</short>
@@ -450,6 +465,9 @@
 <element name="StartDebugServer.Result">
 <short>True if started successfully, false otherwise</short>
 </element>
+<element name="StartDebugServer.aLogFilename">
+<short>Log file for the debug server</short>
+</element>
 
 <!-- procedure Visibility: default -->
 <element name="InitDebugClient">
@@ -473,15 +491,23 @@
 </seealso>
 </element>
 
-<!-- constant Visibility: default -->
-<element name="SendError">
-<short>Last error in the debug system.</short>
-<descr>
-Whenever a call encounters an exception, the exception message is stored in
-this variable.
-</descr>
+<!-- function result Visibility: default -->
+<element name="InitDebugClient.Result">
+<short>True if the client was successfully started.</short>
 </element>
+<element name="InitDebugClient.ShowPID">
+<short>True to display the Process ID in debug messages</short>
+</element>
+<element name="InitDebugClient.ServerLogFilename">
+<short>Log file name where the debug server writes log messages</short>
+</element>
 
+<element name="FreeDebugClient;">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
 <!-- resource string Visibility: default -->
 <element name="SProcessID">
 <short>String used when sending identification message to the server.</short>
@@ -550,15 +576,21 @@
 <short>True if sending debug messages is currently enabled.</short>
 </element>
 
-<!-- function result Visibility: default -->
-<element name="InitDebugClient.Result">
-<short>True if the client was successfully started.</short>
-</element>
-
 <element name="SServerStartFailed">
 <short>String used to display an error message when the start of the debug server failed</short>
 </element>
 
+<!-- variable Visibility: default -->
+<element name="DebugServerExe">
+  <short>Name of default debug server executable</short>
+  <descr>
+    <var>DefaultDebugServerExe</var> is the filename for default debug server executable.
+  </descr>
+  <seealso>
+    <link id="DefaultDebugServer"/>
+  </seealso>
+</element>
+
 <!-- constant Visibility: default -->
 <element name="DefaultDebugServer">
 <short>Name of default debug server</short>
@@ -566,19 +598,17 @@
 <var>DefaultDebugServer</var> is the name at which the default debug server can be reached.
 </descr>
 <seealso>
-<link id="DefaultDebugServerExe"/>
+<link id="DebugServerExe"/>
 </seealso>
 </element>
 
-<!-- variable Visibility: default -->
-<element name="DebugServerExe">
-<short>Name of default debug server executable</short>
+<!-- constant Visibility: default -->
+<element name="SendError">
+<short>Last error in the debug system.</short>
 <descr>
-<var>DefaultDebugServerExe</var> is the filename for default debug server executable.
+Whenever a call encounters an exception, the exception message is stored in
+this variable.
 </descr>
-<seealso>
-<link id="DefaultDebugServer"/>
-</seealso>
 </element>
 
 </module> <!-- dbugintf -->
dbugintf.diff (4,354 bytes)   
fptimer.diff (6,721 bytes)   
Index: fptimer.xml
===================================================================
--- fptimer.xml	(revision 1818)
+++ fptimer.xml	(working copy)
@@ -135,6 +135,139 @@
 </seealso>
 </element>
 
+<element name="TFPCustomTimer.Enabled">
+<short>Starts or stops the timer</short>
+<descr>
+<p>
+<var>Enabled</var> controls whether the timer can become Active. Setting
+<var>Enabled</var> to <var>True</var> will start the timer (by calling <link
+id="TFPCustomTimer.StartTimer">StartTimer</link>). Setting it to
+<var>False</var> will stop the timer (by calling
+<link id="TFPCustomTimer.StopTimer">StopTimer</link>).
+</p>
+<p>
+Use the <var>Interval</var> property to set the elapsed time before the
+<var>OnTimer</var> event is signalled. Assign the <var>OnTimer</var>,
+<var>OnStartTimer</var>, and <var>OnStopTimer</var> event handlers
+prior to setting Enabled to True.
+</p>
+</descr>
+<seealso>
+<link id="TFPCustomTimer.StartTimer"/>
+<link id="TFPCustomTimer.StopTimer"/>
+<link id="TFPTimer.OnTimer"/>
+<link id="TFPTimer.OnStartTimer"/>
+<link id="TFPTimer.OnStopTimer"/>
+<link id="TFPTimer.Interval"/>
+</seealso>
+</element>
+
+<element name="TFPCustomTimer.Interval">
+<short>Timer tick interval in milliseconds.</short>
+<descr>
+<p>
+<var>Interval</var> specifies the timer interval in milliseconds. Every
+<var>Interval</var> milliseconds, the <var>OnTimer</var> event handler
+will be called.
+</p>
+<p>
+Please note that the number of milliseconds in Interval is a minimum value.
+Under high system load, the timer tick may occur later than expected.
+</p>
+</descr>
+<seealso>
+<link id="TFPCustomTimer.OnTimer"/>
+<link id="TFPCustomTimer.Enabled"/>
+</seealso>
+</element>
+
+<element name="TFPCustomTimer.UseTimerThread">
+<short>Indicates if a thread is used to execute the timer event</short>
+<descr>
+<p>
+When set to <b>False</b>, a threaded timer calls the
+<var>Thread.Synchronize</var> method to execute the <var>OnTimer</var>
+event handler in the context of the main thread for the application. When Set to
+<b>True</b>, a threaded timer can simply call its <var>Timer</var> method
+without synchronizing to the main thread. The latter implies that GUI updates are
+not performed in the OnTimer event.
+</p>
+</descr>
+<seealso>
+  <link id="DefaultTimerDriverClass"/>
+  <link id="TFPTimerDriverClass"/>
+</seealso>
+</element>
+
+<element name="TFPCustomTimer.OnTimer">
+<short>Event handler signalled when the Interval for the timer has elapsed</short>
+<descr>
+<p>
+<var>OnTimer</var> is a <var>TNotifyEvent</var> property with the event handler
+signalled when the Interval for the timer has elapsed.  An object procedure must
+be assigned to perform the actions needed when the timer interval has elapsed.
+</p>
+<p>
+Use the <var>OnStartTimer</var> and <var>OnStopTimer</var> event handlers to
+perform actions needed when the timer is started or stopped.
+</p>
+<p>
+Assign event handler routines to the properties before setting <var>Enabled</var>
+to <b>True</b>.
+</p>
+</descr>
+<seealso>
+<link id="TFPCustomTimer.Interval"/>
+<link id="TFPCustomTimer.Enabled"/>
+<link id="TFPCustomTimer.OnStartTimer"/>
+<link id="TFPCustomTimer.OnStopTimer"/>
+</seealso>
+</element>
+
+<element name="TFPCustomTimer.OnStartTimer">
+<short>Event handler signalled when the timer is started</short>
+<descr>
+<p>
+<var>OnStartTimer</var> is signalled when the <var>StartTimer</var> method
+is called to activate a timer. It occurs after the timer instance is initialized for
+the timer driver, and the Active property is set to <b>True</b>.
+</p>
+<p>
+Assign an object procedure to the handler to perform any actions needed when
+the timer is started. The handler routine must be assigned before setting
+<var>Enabled</var> to <b>True</b>.
+</p>
+</descr>
+<seealso>
+  <link id="TFPCustomTimer.StartTimer"/>
+  <link id="TFPCustomTimer.Enabled"/>
+  <link id="TFPCustomTimer.OnStopTimer"/>
+  <link id="TFPCustomTimer.OnTimer"/>
+</seealso>
+</element>
+
+<element name="TFPCustomTimer.OnStopTimer">
+<short>Event handler signalled when the timer is stopped</short>
+<descr>
+<p>
+<var>OnStopTimer</var> is signalled when the <var>StopTimer</var> method
+is called to deactivate a timer. It occurs after the timer instance is updated in
+the timer driver, and the Active property is set to <b>False</b>.
+</p>
+<p>
+Assign an object procedure to the handler to perform any actions needed when
+the timer is stopped. The handler routine must be assigned before setting
+<var>Enabled</var> to <b>True</b>.
+</p>
+</descr>
+<seealso>
+  <link id="TFPCustomTimer.StopTimer"/>
+  <link id="TFPCustomTimer.Enabled"/>
+  <link id="TFPCustomTimer.OnStartTimer"/>
+  <link id="TFPCustomTimer.OnTimer"/>
+</seealso>
+</element>
+
 <!-- class Visibility: default -->
 <element name="TFPTimer">
 <short>Timer class with published properties</short>
@@ -152,9 +285,9 @@
 </descr>
 <seealso>
 <link id="TFPCustomTimer"/>
-<link id="TFPTimer.Enabled">Enabled</link>
-<link id="TFPTimer.OnTimer">OnTimer</link>
-<link id="TFPTimer.Interval">Interval</link>
+<link id="TFPTimer.Enabled"/>
+<link id="TFPTimer.OnTimer"/>
+<link id="TFPTimer.Interval"/>
 </seealso>
 </element>
 
@@ -190,11 +323,13 @@
 </p>
 </descr>
 <seealso>
-<link id="TFPTimer.OnTimer">OnTimer</link>
-<link id="TFPTimer.Enabled">Enabled</link>
+<link id="TFPTimer.OnTimer"/>
+<link id="TFPTimer.Enabled"/>
 </seealso>
 </element>
 
+<element name="TFPTimer.UseTimerThread" link="#fcl.fptimer.TFPCustomTimer.UseTimerThread"/>
+
 <!-- property Visibility: published -->
 <element name="TFPTimer.OnTimer">
 <short>Event called on each timer tick.</short>
@@ -204,14 +339,17 @@
 timer fires.
 </descr>
 <seealso>
-<link id="TFPTimer.Interval">Interval</link>
-<link id="TFPTimer.Enabled">Enabled</link>
+<link id="TFPTimer.Interval"/>
+<link id="TFPTimer.Enabled"/>
 </seealso>
 </element>
 
+<element name="TFPTimer.OnStartTimer" link="#fcl.fptimer.TFPCustomTimer.OnStartTimer"/>
+<element name="TFPTimer.OnStopTimer" link="#fcl.fptimer.TFPCustomTimer.OnStopTimer"/>
+
 <!-- constructor Visibility: public -->
 <element name="TFPTimerDriver.Create">
-<short>Create new driver instance</short>
+<short>Creates a new driver instance</short>
 <descr>
 <var>Create</var> should be overridden by descendents of
 <var>TFPTimerDriver</var> to do additional initialization of the timer
@@ -274,6 +412,12 @@
 </seealso>
 </element>
 
+<element name="TFPTimerDriver.TimerStarted">
+  <short>True when the timer driver has called its StartTimer method</short>
+  <descr/>
+  <seealso/>
+</element>
+
 <!-- "class of" type Visibility: default -->
 <element name="TFPTimerDriverClass">
 <short>Class of <var>TFPTimerDriver</var></short>
fptimer.diff (6,721 bytes)   
eventlog.diff (1,195 bytes)   
Index: eventlog.xml
===================================================================
--- eventlog.xml	(revision 1818)
+++ eventlog.xml	(working copy)
@@ -762,7 +762,8 @@
 message was sent.
 </p>
 <p>
-The sending can be resumed by calling <link id="Resume"/>.
+The sending can be resumed by calling
+<link id="TEventLog.Resume">Resume</link>.
 </p>
 </descr>
 <seealso>
@@ -788,9 +789,10 @@
 <element name="TEventLog.Paused">
 <short>Is the message sending paused ?</short>
 <descr>
-<var>Paused</var> indicates whether the sending of messages is temporarily suspended or not.
-Setting it to <var>True</var> has the same effect as calling <link id="Pause"/>, setting it 
-to <var>False</var> has the same effect as calling <link id="Resume"/>.
+<var>Paused</var> indicates whether the sending of messages is temporarily
+suspended or not. Setting it to <var>True</var> has the same effect as calling
+<link id="TEventLog.Pause">Pause</link>. Setting it to <var>False</var> has
+the same effect as calling <link id="TEventLog.Resume">Resume</link>.
 </descr>
 <seealso>
 <link id="TEventLog.Pause"/>
@@ -801,4 +803,3 @@
 </module> <!-- eventlog -->
 </package>
 </fpdoc-descriptions>
-
eventlog.diff (1,195 bytes)   
fpjson.diff (50,939 bytes)   
Index: fpjson.xml
===================================================================
--- fpjson.xml	(revision 1818)
+++ fpjson.xml	(working copy)
@@ -63,7 +63,7 @@
 </p>
 <p>
 Parsing incoming JSON and constructing the JSON data structures is not implemented in
-the <var>fpJSON</var> unit. For this, the <link id="jsonscanner"/> unit must
+the <var>fpJSON</var> unit. For this, the <file>jsonscanner</file> unit must
 be included in the program unit clause. This sets several callback hooks
 (using <link id="SetJSONParserHandler"/> and then the <link id="GetJSON"/> 
 function can then be used to transform a string or stream to JSON data
@@ -107,6 +107,13 @@
 <short>Variant support routines</short>
 </element>
 
+<element name="JS"/>
+<element name="RTLConsts"/>
+<element name="Types"/>
+<element name="SysUtils"/>
+<element name="Classes"/>
+<element name="Contnrs"/>
+
 <!-- enumeration type Visibility: default -->
 <element name="TJSONtype">
 <short>Possible types of JSON data</short>
@@ -241,6 +248,11 @@
 <short>Use the tabulator character for indents</short>
 </element>
 
+<!-- enumeration value Visibility: default -->
+<element name="TFormatOption.foSkipWhiteSpaceOnlyLeading">
+<short>Only skip leading whitespace when formatting JSON</short>
+</element>
+
 <!-- set type Visibility: default -->
 <element name="TFormatOptions">
 <short>Set of <var>TFormatOption</var> options.</short>
@@ -338,6 +350,41 @@
 </seealso>
 </element>
 
+<!-- class function Visibility: public -->
+<element name="TJSONData.JSONType">
+<short>The native JSON data type represented by this object</short>
+<descr>
+<var>JSONType</var> indicates the JSON data type that this object will be
+written as, or the JSON data type that instantiated this object.
+In <var>TJSONData</var>, this function returns <var>jtUnknown</var>.
+Descendents override this method to return the correct data type.
+</descr>
+<seealso>
+<link id="TJSONtype"/>
+</seealso>
+</element>
+<element name="TJSONData.JSONType.Result">
+<short>The native JSON data type</short>
+</element>
+
+<!-- property Visibility: public -->
+<element name="TJSONData.CompressedJSON">
+<short>Compress JSON - skip whitespace</short>
+<descr>
+<var>CompressedJSON</var> can be used to let <link id="TJSONData.AsJSON"/>
+return JSON which does not contain any whitespace. By default it is
+<var>False</var> and whitespace is inserted. If set to <var>True</var>,
+output will contain no whitespace.
+</descr>
+<seealso>
+<link id="TJSONData.FormatJSON"/>
+<link id="TJSONData.AsJSON"/>
+<link id="TJSONData.UnquotedMemberNames"/>
+<link id="TJSONData.AsCompressedJSON"/>
+<link id="TJSONObject.UnquotedMemberNames"/>
+</seealso>
+</element>
+
 <!-- constructor Visibility: public -->
 <element name="TJSONData.Create">
 <short>Create a new instance of TJSONData.</short>
@@ -356,39 +403,202 @@
 </seealso>
 </element>
 
-<!-- class function Visibility: public -->
-<element name="TJSONData.JSONType">
-<short>The native JSON data type represented by this object</short>
+<!-- procedure Visibility: public -->
+<element name="TJSONData.Clear">
+  <short>Clear the raw value of this data object</short>
 <descr>
-<var>JSONType</var> indicates the JSON data type that this object will be
-written as, or the JSON data type that instantiated this object. 
-In <var>TJSONData</var>, this function returns <var>jtUnknown</var>. 
-Descendents override this method to return the correct data type.
+    <var>Clear</var> is implemented by the descendents of <var>TJSONData</var>
+    to clear the data. An array will be emptied, an object will remove all
+    properties, numbers are set to zero, strings set to the empty string, etc.
 </descr>
 <seealso>
-<link id="TJSONtype"/>
+    <link id="Create"/>
 </seealso>
 </element>
 
-<!-- function result Visibility: public -->
-<element name="TJSONData.JSONType.Result">
-<short>The native JSON data type</short>
+<!-- procedure Visibility: public -->
+<element name="TJSONData.DumpJSON">
+<short>Fast, memory efficient dump of JSON in stream</short>
+<descr>
+<var>DumpJSON</var> writes the data as a JSON string to the stream <var>S</var>.
+No intermediate strings are created, making this a more fast and memory efficient
+operation than creating a string with <link id="TJSONData.AsJSON"/> and writing it to
+stream.
+</descr>
+<errors>
+None.
+</errors>
+<seealso>
+<link id="TJSONData.FormatJSON"/>
+<link id="TJSONData.AsJSON"/>
+</seealso>
 </element>
+<element name="TJSONData.DumpJSON.S">
+<short>Stream to write JSON to</short>
+</element>
 
-<!-- procedure Visibility: public -->
-<element name="TJSONData.Clear">
-<short>Clear the raw value of this data object</short>
+<!-- function Visibility: public -->
+<element name="TJSONData.GetEnumerator">
+<short>Return an enumerator for the data</short>
 <descr>
-<var>Clear</var> is implemented by the descendents of <var>TJSONData</var>
-to clear the data. An array will be emptied, an object will remove all
-properties, numbers are set to zero, strings set to the empty string, etc.
+<var>GetEnumerator</var> returns an enumerator for the JSON data. For simple
+types, the enumerator will just contain the current value. For arrays and
+objects, the enumerator will loop over the values in the array. The return
+value is not a <link id="TJSONData"/> type, but a <link id="TJSONEnum"/>
+structure, which contains the value, and for structured types, the key
+(numerical or string).
 </descr>
 <seealso>
-<link id="Create"/>
+<link id="TJSONEnum"/>
+<link id="TJSONArray"/>
+<link id="TJSONObject"/>
 </seealso>
 </element>
+<element name="TJSONData.GetEnumerator.Result">
+<short>The new enumerator</short>
+</element>
 
 <!-- function Visibility: public -->
+<element name="TJSONData.FindPath">
+<short>Find data by name</short>
+<descr>
+<p>
+<var>FindPath</var> finds a value based on its path. If none is found, <var>Nil</var> is returned.
+The path elements are separated by dots and square brackets, as in object
+member notation or array notation. The path is case sensitive.
+</p>
+<ul>
+<li>For simple values, the path must be empty.</li>
+<li>For <link id="TJSONObject">objects</link>, a member can be specified using its name,
+and the object value itself can be retrieved with the empty path. </li>
+<li>For <link id="TJSONObject">Arrays</link>, the elements can be
+found based on an array index. The array value itself can be retrieved with
+the empty path.</li>
+</ul>
+<p>
+The following code will return the value itself, i.e. <var>E</var> will contain the same
+element as D:
+</p>
+<code>
+Var
+  D,E : TJSONData;
+
+begin
+  D:=TJSONIntegerNumber.Create(123);
+  E:=D.FindPath('');
+end.
+</code>
+<p>
+The following code will not return anything:
+</p>
+<code>
+Var
+  D,E : TJSONData;
+
+begin
+  D:=TJSONIntegerNumber.Create(123);
+  E:=D.FindPath('a');
+end.
+</code>
+<p>
+The following code will return the third element from the array:
+</p>
+<code>
+Var
+  D,E : TJSONData;
+
+begin
+  D:=TJSONArray.Create([1,2,3,4,5]);
+  E:=D.FindPath('[2]');
+  Writeln(E.AsJSON);
+end.
+</code>
+<p>The output of this program is 3.</p>
+<p>The following code returns the element <var>Age</var> from the object:</p>
+<code>
+Var
+  D,E : TJSONData;
+
+begin
+  D:=TJSONObject.Create(['Age',23,
+                         'Lastame','Rodriguez',
+                         'FirstName','Roberto']);
+  E:=D.FindPath('Age');
+  Writeln(E.AsJSON);
+end.
+</code>
+<p>The code will print 23.</p>
+<p>Obviously, this can be combined:</p>
+<code>
+Var
+  D,E : TJSONData;
+
+begin
+  D:=TJSONObject.Create(['Age',23,
+                         'Names', TJSONObject.Create([
+                             'LastName','Rodriguez',
+                             'FirstName','Roberto'])]);
+  E:=D.FindPath('Names.LastName');
+  Writeln(E.AsJSON);
+end.
+</code>
+<p>And mixed:</p>
+<code>
+var
+  D,E : TJSONData;
+
+begin
+  D:=TJSONObject.Create(['Children',
+       TJSONArray.Create([
+         TJSONObject.Create(['Age',23,
+                             'Names', TJSONObject.Create([
+                               'LastName','Rodriguez',
+                               'FirstName','Roberto'])
+         ]),
+         TJSONObject.Create(['Age',20,
+                             'Names', TJSONObject.Create([
+                                   'LastName','Rodriguez',
+                                   'FirstName','Maria'])
+        ])
+      ])
+     ]);
+  E:=D.FindPath('Children[1].Names.FirstName');
+  Writeln(E.AsJSON);
+end.
+</code>
+</descr>
+<errors>
+</errors>
+<seealso>
+<link id="TJSONArray"/>
+<link id="TJSONObject"/>
+<link id="GetPath"/>
+</seealso>
+</element>
+
+<!-- function Visibility: public -->
+<element name="TJSONData.GetPath">
+<short>Get data by name</short>
+<descr>
+<var>GetPath</var> is identical to <link id="FindPath"/> but raises an
+exception if no element was found. The exception message contains the piece
+of path that was not found.
+</descr>
+<errors>
+An <link id="EJSON"/> exception is raised if the path does not exist.
+</errors>
+<seealso>
+<link id="FindPath"/>
+</seealso>
+</element>
+<element name="TJSONData.GetPath.Result">
+<short>The found data element</short>
+</element>
+<element name="TJSONData.GetPath.APath">
+<short>The path of the data element to retrieve.</short>
+</element>
+
+<!-- function Visibility: public -->
 <element name="TJSONData.Clone">
 <short>Duplicate the value of the JSON data</short>
 <descr>
@@ -410,8 +620,6 @@
 <link id="Clear"/>
 </seealso>
 </element>
-
-<!-- function result Visibility: public -->
 <element name="TJSONData.Clone.Result">
 <short>A new instance with the same JSON representation</short>
 </element>
@@ -441,18 +649,12 @@
 <link id="TFormatOptions"/>
 </seealso>
 </element>
-
-<!-- function result Visibility: public -->
 <element name="TJSONData.FormatJSON.Result">
 <short>The JSON representation of the instance.</short>
 </element>
-
-<!-- argument Visibility: public -->
 <element name="TJSONData.FormatJSON.Options">
 <short>Formatting options to apply</short>
 </element>
-
-<!-- argument Visibility: public -->
 <element name="TJSONData.FormatJSON.Indentsize">
 <short>Amount of indent to use when starting new lines.</short>
 </element>
@@ -487,8 +689,6 @@
 <link id="TJSONObject"/>
 </seealso>
 </element>
-
-<!-- argument Visibility: public -->
 <element name="TJSONData.Items.Index">
 <short>The index in the array</short>
 </element>
@@ -542,17 +742,30 @@
 </element>
 
 <!-- property Visibility: public -->
-<element name="TJSONData.AsFloat">
-<short>Access the raw JSON value as a float</short>
+<element name="TJSONData.AsUnicodeString">
+<short>Return the value as a Unicode string</short>
 <descr>
+<var>AsUnicodeString</var> returns the value of a simple JSON value as a
+Unicode string.
+</descr>
+<seealso>
+<link id="TJSONData.AsString"/>
+</seealso>
+</element>
+
+<!-- property Visibility: public -->
+<element name="TJSONData.AsInt64">
+<short>Access the raw JSON value as an 64-bit integer</short>
+<descr>
 <p>
-<var>AsFloat</var> allows access to the raw value as a floating-point value. When
-reading, it converts the native value of the data to a floating-point. When writing,
-it attempts to transform the floating-point value to a native value. If this
-conversion fails, an <var>EConvertError</var> exception is raised.
+<var>AsInt64</var> allows access to the raw value as a 64-bit integer value.
+When reading, it attempts to convert the native value of the data to a
+64-bit integer value.  When writing, it attempts to transform the 64-bit
+integer value to a native value.
+If either conversion fails, an <var>EConvertError</var> exception is raised.
 </p>
 <p>
-For <link id="TJSONFloatNumber"/> this will return the native value.
+For <link id="TJSONInt64Number"/> this will return the native value.
 </p>
 <p> 
 For complex values, reading or writing this property will always result in an
@@ -560,8 +773,39 @@
 </p>
 </descr>
 <seealso>
+<link id="AsFloat"/>
+<link id="Value"/>
 <link id="AsInteger"/>
+<link id="AsString"/>
+<link id="AsBoolean"/>
+<link id="IsNull"/>
+<link id="AsJSON"/>
+</seealso>
+</element>
+
+<!-- property Visibility: public -->
+<element name="TJSONData.AsQWord">
+<short>Access the raw JSON value as an 64-bit unsigned integer</short>
+<descr>
+<p>
+<var>AsQWord</var> allows access to the raw value as a 64-bit unsigned integer value.
+When reading, it attempts to convert the native value of the data to a
+64-bit unsigned integer value.  When writing, it attempts to transform the 64-bit
+unsigned integer value to a native value.
+If either conversion fails, an <var>EConvertError</var> exception is raised.
+</p>
+<p>
+For <link id="TJSONQwordNumber"/> this will return the native value.
+</p>
+<p>
+For complex values, reading or writing this property will always result in an
+<var>EConvertError</var> exception.
+</p>
+</descr>
+<seealso>
+<link id="AsFloat"/>
 <link id="Value"/>
+<link id="AsInteger"/>
 <link id="AsInt64"/>
 <link id="AsString"/>
 <link id="AsBoolean"/>
@@ -570,18 +814,30 @@
 </seealso>
 </element>
 
+<element name="TJSONData.AsLargeInt">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
+<element name="TJSONData.AsNativeInt">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
 <!-- property Visibility: public -->
-<element name="TJSONData.AsInteger">
-<short>Access the raw JSON value as an 32-bit integer</short>
+<element name="TJSONData.AsFloat">
+<short>Access the raw JSON value as a float</short>
 <descr>
 <p>
-<var>AsInteger</var> allows access to the raw value as a 32-bit integer value.
-When reading, it attempts to convert the native value of the data to a 32-bit integer
-value.  When writing, it attempts to transform the 32-bit integer value to 
-a native value. If either conversion fails, an <var>EConvertError</var> exception is raised.
+<var>AsFloat</var> allows access to the raw value as a floating-point value. When
+reading, it converts the native value of the data to a floating-point. When writing,
+it attempts to transform the floating-point value to a native value. If this
+conversion fails, an <var>EConvertError</var> exception is raised.
 </p>
 <p>
-For <link id="TJSONIntegerNumber"/> this will return the native value.
+For <link id="TJSONFloatNumber"/> this will return the native value.
 </p>
 <p> 
 For complex values, reading or writing this property will always result in an
@@ -589,7 +845,7 @@
 </p>
 </descr>
 <seealso>
-<link id="AsFloat"/>
+<link id="AsInteger"/>
 <link id="Value"/>
 <link id="AsInt64"/>
 <link id="AsString"/>
@@ -600,18 +856,17 @@
 </element>
 
 <!-- property Visibility: public -->
-<element name="TJSONData.AsInt64">
-<short>Access the raw JSON value as an 64-bit integer</short>
+<element name="TJSONData.AsInteger">
+<short>Access the raw JSON value as an 32-bit integer</short>
 <descr>
 <p>
-<var>AsInt64</var> allows access to the raw value as a 64-bit integer value.
-When reading, it attempts to convert the native value of the data to a
-64-bit integer value.  When writing, it attempts to transform the 64-bit 
-integer value to a native value. 
-If either conversion fails, an <var>EConvertError</var> exception is raised.           
+<var>AsInteger</var> allows access to the raw value as a 32-bit integer value.
+When reading, it attempts to convert the native value of the data to a 32-bit integer
+value.  When writing, it attempts to transform the 32-bit integer value to
+a native value. If either conversion fails, an <var>EConvertError</var> exception is raised.
 </p>
 <p>
-For <link id="TJSONInt64Number"/> this will return the native value.
+For <link id="TJSONIntegerNumber"/> this will return the native value.
 </p>
 <p> 
 For complex values, reading or writing this property will always result in an
@@ -621,7 +876,7 @@
 <seealso>
 <link id="AsFloat"/>
 <link id="Value"/>
-<link id="AsInteger"/>
+<link id="AsInt64"/>
 <link id="AsString"/>
 <link id="AsBoolean"/>
 <link id="IsNull"/>   
@@ -670,7 +925,6 @@
 </descr>
 <seealso>
 <link id="TJSONType"/>
-<link id="JSONType"/>
 <link id="TJSONNull"/>
 <link id="AsFloat"/>
 <link id="Value"/>
@@ -731,21 +985,21 @@
 <link id="TJSONNumber.NumberType"/>
 </seealso>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TJSONNumberType.ntFloat">
 <short>Floating point value</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TJSONNumberType.ntInteger">
 <short>32-bit Integer value</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TJSONNumberType.ntInt64">
 <short>64-bit integer value</short>
 </element>
+<element name="TJSONNumberType.ntQWord">
+<short>64-bit unsigned integer value</short>
+</element>
+<element name="TJSONNumberType.ntNativeInt">
+<short></short>
+</element>
 
 <!--
   ********************************************************************
@@ -780,8 +1034,6 @@
 <link id="TJSONData.JSONType"/>
 </seealso>
 </element>
-
-<!-- function result Visibility: public -->
 <element name="TJSONNumber.JSONType.Result">
 <short>Always <var>jtNumber</var></short>
 </element>
@@ -800,8 +1052,6 @@
 <link id="JSONType"/>
 </seealso>
 </element>
-
-<!-- function result Visibility: public -->
 <element name="TJSONNumber.NumberType.Result">
 <short>the kind of numerical data managed by this class.</short>
 </element>
@@ -817,11 +1067,12 @@
 <short>Class to represent floating-point JSON data.</short>
 <descr>
 <var>TJSONFloatNumber</var> must be used whenever floating point data must
-be represented. It can handle <link id="TJSONFloatType"/> data (normally a
+be represented. It can handle <link id="TJSONFloat"/> data (normally a
 double). For integer data, <link id="TJSONIntegerNumber"/> or <link
 id="TJSONInt64Number"/> are better suited.
 </descr>
 <seealso>
+<link id="TJSONFloat"/>
 <link id="TJSONIntegerNumber"/>
 <link id="TJSONInt64Number"/>
 </seealso>
@@ -892,6 +1143,20 @@
 <short>New instance of <var>TJSONFloatNumber</var> with the same value</short>
 </element>
 
+<!-- "class of" type Visibility: default -->
+<element name="TJSONIntegerNumberClass">
+<short>Class of <var>TJSONIntegerNumber</var></short>
+<descr>
+<var>TJSONIntegerNumberClass</var> is the class type of <link
+id="TJSONIntegerNumber"/>. It is used in the factory methods.
+</descr>
+<seealso>
+<link id="TJSONIntegerNumber"/>
+<link id="SetJSONInstanceType"/>
+<link id="GetJSONInstanceType"/>
+</seealso>
+</element>
+
 <!--
   ********************************************************************
     #fcl.fpjson.TJSONIntegerNumber
@@ -1369,21 +1634,21 @@
 that will be converted to JSON objects and added to the initial JSON array.
 </p>
 <p>
-The items in the array are available as raw JSON objects in the <link
-id="TJSONData.Items"/> property. The data can also be accessed (read-write) 
-as native Pascal types through the <link id="Integers"/>, <link id="Floats"/>, 
-<link id="Booleans"/> etc. array properties.  The actual JSON types are available
-in the <link id="Types"/> array.
+The items in the array are available as raw JSON objects in the
+<link id="TJSONArray.Items"/> property. The data can also be accessed
+(read-write) as native Pascal types using the array properties for the type:
+Integers, Int64s, Floats, QWords, UnicodeStrings, Strings, Booleans, Arrays,
+and Objects. The actual JSON types are available in the
+<link id="TJSONArray.Types"/> array.
 </p>
-<p>Elements can be added to the array using the various forms of the
-<link id="Add"/> and <link id="Insert"/> methods. Elements can be deleted
-with the <link id="Delete"/> method.
+<p>
+Elements can be added to the array using the various forms of the
+<link id="TJSONArray.Add"/> and <link id="THSONArray.Insert"/> methods.
+Elements can be deleted with the <link id="TJSONArray.Delete"/> method.
 </p>
 </descr>
 <seealso>
-<link id="Types"/>
-<link id="Integers"/>
-<link id="Floats"/>
+<link id="TJSONDataTypes"/>
 <link id="TJSONData.Items"/>
 </seealso>
 </element>
@@ -1522,8 +1787,8 @@
 call to clear, <link id="TJSONData.Count">Count</link> returns 0.
 </descr>
 <seealso>
-<link id="Delete"/>
-<link id="Extract"/>
+<link id="TJSONArray.Delete"/>
+<link id="TJSONArray.Extract"/>
 </seealso>
 </element>
 
@@ -1545,8 +1810,8 @@
 </p>
 </descr>
 <seealso>
-<link id="Delete"/>
-<link id="Extract"/>
+<link id="TJSONArray.Delete"/>
+<link id="TJSONArray.Extract"/>
 </seealso>
 </element>
 
@@ -1601,10 +1866,10 @@
 If an invalid index is passed, an exception is raised.
 </errors>
 <seealso>
-<link id="Clear"/>
-<link id="Add"/>
-<link id="Extract"/>
-<link id="Exchange"/>
+<link id="TJSONArray.Clear"/>
+<link id="TJSONArray.Add"/>
+<link id="TJSONArray.Extract"/>
+<link id="TJSONArray.Exchange"/>
 </seealso>
 </element>
 
@@ -1691,10 +1956,10 @@
 If an invalid index is specified, an exception is raised.
 </errors>
 <seealso>
-<link id="Add"/>
-<link id="Delete"/>
-<link id="Extract"/>
-<link id="Clear"/>
+<link id="TJSONArray.Add"/>
+<link id="TJSONArray.Delete"/>
+<link id="TJSONArray.Extract"/>
+<link id="TJSONArray.Clear"/>
 </seealso>
 </element>
 
@@ -1748,7 +2013,7 @@
 element manually.
 </descr>
 <seealso>
-<link id="Exchange"/>
+<link id="TJSONArray.Exchange"/>
 </seealso>
 </element>
 
@@ -1771,8 +2036,8 @@
 Note that the element is freed if it was in the array and is removed.
 </descr>
 <seealso>
-<link id="Delete"/>
-<link id="Extract"/>
+<link id="TJSONArray.Delete"/>
+<link id="TJSONArray.Extract"/>
 </seealso>
 </element>
 
@@ -1909,7 +2174,68 @@
 <short>Index of element to read/write</short>
 </element>
 
+<element name="TJSONArray.LargeInts">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+<element name="TJSONArray.LargeInts.Index">
+  <short/>
+</element>
+
 <!-- property Visibility: public -->
+<element name="TJSONArray.QWords">
+<short>Get or set elements as QWord values</short>
+<descr>
+<p>
+<var>QWords</var> gives direct access to the <link id="TJSONData.AsQWord"/>
+property when reading. Reading it is the equivalent to accessing
+</p>
+<code>
+Items[Index].AsQWord
+</code>
+<p>
+When writing, it will check if an 64-bit unsigned integer JSON value is located at the given
+location, and replace it with the new value. If a non-64-bit unsigned integer JSON value is
+there, it is replaced with the written QWord value.
+</p>
+</descr>
+<seealso>
+<link id="TJSONData.Items"/>
+<link id="TJSONData.IsNull"/>
+<link id="TJSONArray.Types"/>
+<link id="TJSONArray.Integers"/>
+<link id="TJSONArray.QWords"/>
+<link id="TJSONArray.Floats"/>
+<link id="TJSONArray.Strings"/>
+<link id="TJSONArray.Booleans"/>
+</seealso>
+</element>
+
+<!-- argument Visibility: public -->
+<element name="TJSONArray.QWords.Index">
+<short>Index of element to read/write</short>
+</element>
+
+<element name="TJSONArray.UnicodeStrings">
+<short/>
+<descr/>
+<seealso/>
+</element>
+<element name="TJSONArray.UnicodeStrings.Index">
+<short/>
+</element>
+
+<element name="TJSONArray.NativeInts">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+<element name="TJSONArray.NativeInts.Index">
+  <short/>
+</element>
+
+<!-- property Visibility: public -->
 <element name="TJSONArray.Strings">
 <short>Get or set elements as string values</short>
 <descr>
@@ -2081,6 +2407,19 @@
 <short>Index of element to read/write</short>
 </element>
 
+<!-- "class of" type Visibility: default -->
+<element name="TJSONArrayClass">
+<short>Class of TJSONArray</short>
+<descr>
+<var>TJSONArray</var> is the class type for the <link id="TJSONArray"/> class.
+It is used in <link id="CreateJSONArray"/>.
+</descr>
+<seealso>
+<link id="SetJSONInstanceType"/>
+<link id="TJSONObjectClass"/>
+</seealso>
+</element>
+
 <!-- procedure type Visibility: default -->
 <element name="TJSONObjectIterator">
 <short>Iterator callback for <var>TJSONObject.Iterate</var></short>
@@ -2141,21 +2480,21 @@
 that will be converted to JSON objects and added to the initial JSON array.
 </p>
 <p> 
-The items in the object are available with a numerical index as raw JSON objects in the <link
-id="TJSONData.Items"/> and with their names in the  <link id="Elements"/> property. 
-The data can also be accessed (read-write) as native Pascal types through the <link id="Integers"/>, <link
-id="Floats"/>, <link id="Booleans"/> etc. array properties, using their name
-as a key. The actual JSON types are available in the <link id="Types"/> array. 
+The items in the object are available with a numerical index as raw JSON objects in
+the <link id="TJSONData.Items"/> and with their names in the
+<link id="TJSONData.Elements"/> property. The data can also be accessed
+(read-write) as native Pascal types through the <link id="TJSONObject.Integers"/>,
+<link id="TJSONObject.Floats"/>, <link id="TJSONObject.Booleans"/> etc. array
+properties, using their name as a key. The actual JSON types are available in the
+<link id="TJSONObject.Types"/> array.
 </p>
-<p>Elements can be added to the array using the various forms of the
-<link id="Add"/> method. Elements can be deleted with the <link id="Delete"/> method.
+<p>
+Elements can be added to the array using the various forms of the
+<link id="TJSONObject.Add"/> method. Elements can be deleted with the
+<link id="TJSONObject.Delete"/> method.
 </p>
 </descr>
 <seealso>
-<link id="Types"/>
-<link id="Integers"/>
-<link id="Floats"/>  
-<link id="TJSONData.Items"/>
 </seealso>
 </element>
 
@@ -2200,7 +2539,7 @@
 </ol>
 </errors>
 <seealso>
-<link id="Add"/>
+<link id="TJSONObject.Add"/>
 <link id="GetJSONInstanceType"/>
 </seealso>
 </element>
@@ -2294,8 +2633,8 @@
 elements match, the function returns -1.
 </descr>
 <seealso>
-<link id="Clear"/>
-<link id="IndexOfName"/>
+<link id="TJSONObject.Clear"/>
+<link id="TJSONObject.IndexOfName"/>
 </seealso>
 </element>
 
@@ -2326,7 +2665,7 @@
 </p>
 </descr>
 <seealso>
-<link id="IndexOf"/>
+<link id="TJSONObject.IndexOf"/>
 </seealso>
 </element>
 
@@ -2359,13 +2698,13 @@
 case-sensitively.
 </p>
 <p>
-If <var>AType</var> is specified then the element's type must also match the
+If <var>AType</var> is specified the element type must also match the
 specified type.
 </p>
 </descr>
 <seealso>
-<link id="IndexOf"/>
-<link id="IndexOfName"/>
+<link id="TJSONObject.IndexOf"/>
+<link id="TJSONObject.IndexOfName"/>
 </seealso>
 </element>
 
@@ -2400,21 +2739,15 @@
 or Null if no value was found.
 </p>
 <p>
-The other value retrieval properties such as <link id="Integers"/>
-<link id="Int64s"/>, <link id="Booleans"/>, <link id="Strings"/>, 
-<link id="Floats"/>, <link id="Arrays"/>, <link id="Objects"/>
-will raise an exception if the name is not found. The <var>Get</var>
-function does not raise an exception.
+The other value retrieval properties such as <link id="TJSONObject.Integers"/>,
+<link id="TJSONObject.Int64s"/>, <link id="TJSONObject.Booleans"/>,
+<link id="TJSONObject.Strings"/>, <link id="TJSONObject.Floats"/>,
+<link id="TJSONObject.Arrays"/>, <link id="TJSONObject.Objects"/> will raise an
+exception if the name is not found. The <var>Get</var> function does not raise an
+exception.
 </p>
 </descr>
 <seealso>
-<link id="Integers"/>
-<link id="Int64s"/>
-<link id="Booleans"/>
-<link id="Strings"/>
-<link id="Floats"/>
-<link id="Arrays"/>
-<link id="Objects"/>
 </seealso>
 </element>
 
@@ -2441,8 +2774,8 @@
 call to <var>Clear</var>, <link id="TJSONData.Count">Count</link> returns 0.
 </descr>
 <seealso>
-<link id="Delete"/>
-<link id="Extract"/>
+<link id="TJSONObject.Delete"/>
+<link id="TJSONObject.Extract"/>
 </seealso>
 </element>
 
@@ -2457,10 +2790,11 @@
 <var>TJSONData</var> descendent that was created to add the value.
 </p>
 <p>
-The properties <link id="Integers"/>, <link id="Int64s"/>, <link id="Booleans"/>
-<link id="Strings"/>, <link id="Floats"/>, <link id="Arrays"/> and <link id="Objects"/>
-will not raise an exception if an existing name is used, they will overwrite
-any existing value.
+The properties <link id="TJSONObject.Integers"/>, <link id="TJSONObject.Int64s"/>,
+<link id="TJSONObject.Booleans"/> <link id="TJSONObject.Strings"/>,
+<link id="TJSONObject.Floats"/>, <link id="TJSONObject.Arrays"/> and
+<link id="TJSONObject.Objects"/> will not raise an exception if an existing name is
+used, they will overwrite any existing value.
 </p>
 </descr>
 <errors>
@@ -2467,13 +2801,6 @@
 If a value with the same name already exists, an exception is raised.
 </errors>
 <seealso>
-<link id="Integers"/>
-<link id="Int64s"/>
-<link id="Booleans"/>
-<link id="Strings"/>
-<link id="Floats"/>
-<link id="Arrays"/>
-<link id="Objects"/>
 </seealso>
 </element>
 
@@ -2504,10 +2831,10 @@
 If an invalid index is passed, an exception is raised.
 </errors>
 <seealso>
-<link id="Clear"/>
-<link id="Add"/>
-<link id="Extract"/>
-<link id="Exchange"/>
+<link id="TJSONObject.Clear"/>
+<link id="TJSONObject.Add"/>
+<link id="TJSONObject.Extract"/>
+<link id="TJSONObject.Exchange"/>
 </seealso>
 </element>
 
@@ -2529,8 +2856,8 @@
 values, and removes it if it exists. The item is freed.
 </descr>
 <seealso>
-<link id="Delete"/>
-<link id="Extract"/>
+<link id="TJSONObject.Delete"/>
+<link id="TJSONObject.Extract"/>
 </seealso>
 </element>
 
@@ -2544,16 +2871,16 @@
 <short>Extract an element from the object</short>
 <descr>
 <var>Extract</var> removes the element at position <var>Index</var> or with the
-<var>AName</var> from the list, just as <link id="Delete"/> does. In difference 
-with <var>Delete</var>, it does not free the object instance. Instead,
-it returns the extracted element. The result is <var>Nil</var> if a
-non-existing name is specified.
+<var>AName</var> from the list, just as <link id="TJSONObject.Delete"/> does.
+In difference with <var>Delete</var>, it does not free the object instance. Instead,
+it returns the extracted element. The result is <var>Nil</var> if a non-existing name
+is specified.
 </descr>
 <seealso>
-<link id="Delete"/>
-<link id="Clear"/>
-<link id="Insert"/>
-<link id="Add"/>
+<link id="TJSONObject.Delete"/>
+<link id="TJSONObject.Clear"/>
+<link id="TJSONObject.Insert"/>
+<link id="TJSONObject.Add"/>
 </seealso>
 </element>
 
@@ -2580,8 +2907,8 @@
 The index is zero-based, running from 0 to <var>Count-1</var>.
 </descr>
 <seealso>
-<link id="Types"/>
-<link id="Elements"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Elements"/>
 </seealso>
 </element>
 
@@ -2600,15 +2927,15 @@
 </descr>
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>
-<link id="Types"/>
-<link id="Integers"/>
-<link id="Int64s"/>
-<link id="Booleans"/>
-<link id="Strings"/>
-<link id="Floats"/>
-<link id="Arrays"/>
-<link id="Objects"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2627,16 +2954,16 @@
 </descr>
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>   
-<link id="Elements"/>   
-<link id="Integers"/>
-<link id="Int64s"/>  
-<link id="Booleans"/>
-<link id="Strings"/> 
-<link id="Floats"/>  
-<link id="Arrays"/> 
-<link id="Nulls"/>
-<link id="Objects"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2656,16 +2983,16 @@
 </descr>
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>
-<link id="Elements"/>
-<link id="Integers"/>
-<link id="Int64s"/>  
-<link id="Booleans"/>
-<link id="Strings"/> 
-<link id="Floats"/>
-<link id="Arrays"/>
-<link id="Types"/>  
-<link id="Objects"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2685,16 +3012,16 @@
 </descr>
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>
-<link id="Elements"/>
-<link id="Integers"/>
-<link id="Int64s"/>  
-<link id="Booleans"/>
-<link id="Strings"/> 
-<link id="Nulls"/>  
-<link id="Arrays"/>  
-<link id="Types"/>   
-<link id="Objects"/> 
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2714,16 +3041,16 @@
 </descr>
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>
-<link id="Elements"/>
-<link id="Floats"/>
-<link id="Int64s"/>  
-<link id="Booleans"/>
-<link id="Strings"/> 
-<link id="Nulls"/>   
-<link id="Arrays"/>  
-<link id="Types"/>   
-<link id="Objects"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2743,16 +3070,16 @@
 </descr>
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>
-<link id="Elements"/>
-<link id="Floats"/>  
-<link id="Integers"/>  
-<link id="Booleans"/>
-<link id="Strings"/> 
-<link id="Nulls"/>   
-<link id="Arrays"/>  
-<link id="Types"/>   
-<link id="Objects"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2761,6 +3088,15 @@
 <short>Name of int64 value</short>
 </element>
 
+<element name="TJSONObject.LargeInts">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+<element name="TJSONObject.LargeInts.AName">
+  <short/>
+</element>
+
 <!-- property Visibility: public -->
 <element name="TJSONObject.Strings">
 <short>Named access to string values</short>
@@ -2772,17 +3108,17 @@
 </descr> 
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>   
-<link id="Elements"/>
-<link id="Floats"/>  
-<link id="Integers"/>
-<link id="Booleans"/>
-<link id="Int64s"/>
-<link id="Nulls"/> 
-<link id="Arrays"/> 
-<link id="Types"/>  
-<link id="Objects"/>
-<link id="UnicodeStrings"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Objects"/>
+<link id="TJSONObject.UnicodeStrings"/>
 </seealso>
 </element>
 
@@ -2802,16 +3138,16 @@
 </descr> 
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>   
-<link id="Elements"/>
-<link id="Floats"/>  
-<link id="Integers"/>
-<link id="Strings"/>
-<link id="Int64s"/>  
-<link id="Nulls"/>   
-<link id="Arrays"/>  
-<link id="Types"/>   
-<link id="Objects"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Arrays"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2831,16 +3167,16 @@
 </descr> 
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>   
-<link id="Elements"/>
-<link id="Floats"/>  
-<link id="Integers"/>
-<link id="Strings"/> 
-<link id="Int64s"/>  
-<link id="Nulls"/>   
-<link id="Booleans"/>  
-<link id="Types"/>   
-<link id="Objects"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Objects"/>
 </seealso>
 </element>
 
@@ -2860,16 +3196,16 @@
 </descr> 
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>   
-<link id="Elements"/>
-<link id="Floats"/>  
-<link id="Integers"/>
-<link id="Strings"/> 
-<link id="Int64s"/>  
-<link id="Nulls"/>   
-<link id="Booleans"/>
-<link id="Types"/>   
-<link id="Arrays"/>
+<link id="TJSONObject.Names"/>
+<link id="TJSONObject.Elements"/>
+<link id="TJSONObject.Floats"/>
+<link id="TJSONObject.Integers"/>
+<link id="TJSONObject.Strings"/>
+<link id="TJSONObject.Int64s"/>
+<link id="TJSONObject.Nulls"/>
+<link id="TJSONObject.Booleans"/>
+<link id="TJSONObject.Types"/>
+<link id="TJSONObject.Arrays"/>
 </seealso>
 </element>
 
@@ -3008,6 +3344,15 @@
 </element>
 
 <!-- enumeration value Visibility: default -->
+<element name="TJSONInstanceType.jitNumberQWord">
+<short>Qword integer number type</short>
+</element>
+
+<element name="TJSONInstanceType.jitNumberNativeInt">
+<short></short>
+</element>
+
+<!-- enumeration value Visibility: default -->
 <element name="TJSONInstanceType.jitNumberFloat">
 <short>Floating point real number value</short>
 </element>
@@ -3145,148 +3490,7 @@
 </seealso>
 </element>
 
-<!-- function Visibility: public -->
-<element name="TJSONData.GetEnumerator">
-<short>Return an enumerator for the data</short>
-<descr>
-<var>GetEnumerator</var> returns an enumerator for the JSON data. For simple
-types, the enumerator will just contain the current value. For arrays and
-objects, the enumerator will loop over the values in the array. The return
-value is not a <link id="TJSONData"/> type, but a <link id="TJSONEnum"/>
-structure, which contains the value, and for structured types, the key
-(numerical or string).
-</descr>
-<seealso>
-<link id="TJSONEnum"/>
-<link id="TJSONArray"/>
-<link id="TJSONObject"/>
-</seealso>
-</element>
-
 <!-- function result Visibility: public -->
-<element name="TJSONData.GetEnumerator.Result">
-<short>The new enumerator</short>
-</element>
-
-<!-- function Visibility: public -->
-<element name="TJSONData.FindPath">
-<short>Find data by name</short>
-<descr>
-<p>
-<var>FindPath</var> finds a value based on its path. If none is found, <var>Nil</var> is returned.
-The path elements are separated by dots and square brackets, as in object
-member notation or array notation. The path is case sensitive.
-</p>
-<ul>
-<li>For simple values, the path must be empty.</li>
-<li>For <link id="TJSONObject">objects</link>, a member can be specified using its name,
-and the object value itself can be retrieved with the empty path. </li>
-<li>For <link id="TJSONObject">Arrays</link>, the elements can be 
-found based on an array index. The array value itself can be retrieved with
-the empty path.</li>
-</ul>
-<p>
-The following code will return the value itself, i.e. <var>E</var> will contain the same
-element as D:
-</p>
-<code>
-Var
-  D,E : TJSONData;
-  
-begin
-  D:=TJSONIntegerNumber.Create(123);
-  E:=D.FindPath('');
-end.  
-</code>
-<p>
-The following code will not return anything:
-</p>
-<code>
-Var   
-  D,E : TJSONData;
-    
-begin
-  D:=TJSONIntegerNumber.Create(123);
-  E:=D.FindPath('a');
-end.  
-</code>
-<p>
-The following code will return the third element from the array:
-</p>
-<code>
-Var   
-  D,E : TJSONData;
-      
-begin
-  D:=TJSONArray.Create([1,2,3,4,5]);
-  E:=D.FindPath('[2]');
-  Writeln(E.AsJSON);
-end.  
-</code>
-<p>The output of this program is 3.</p>
-<p>The following code returns the element <var>Age</var> from the object:</p>
-<code>
-Var   
-  D,E : TJSONData;
-  
-begin
-  D:=TJSONObject.Create(['Age',23, 
-                         'Lastame','Rodriguez',
-                         'FirstName','Roberto']);
-  E:=D.FindPath('Age');
-  Writeln(E.AsJSON);   
-end.
-</code>
-<p>The code will print 23.</p>
-<p>Obviously, this can be combined:</p>
-<code>
-Var   
-  D,E : TJSONData;
-        
-begin 
-  D:=TJSONObject.Create(['Age',23,
-                         'Names', TJSONObject.Create([
-                             'LastName','Rodriguez',
-                             'FirstName','Roberto'])]);
-  E:=D.FindPath('Names.LastName');
-  Writeln(E.AsJSON);   
-end.
-</code>
-<p>And mixed:</p>
-<code>
-var   
-  D,E : TJSONData;
-        
-begin 
-  D:=TJSONObject.Create(['Children',
-       TJSONArray.Create([
-         TJSONObject.Create(['Age',23,
-                             'Names', TJSONObject.Create([
-                               'LastName','Rodriguez',
-                               'FirstName','Roberto'])
-         ]),
-         TJSONObject.Create(['Age',20,
-                             'Names', TJSONObject.Create([
-                                   'LastName','Rodriguez',
-                                   'FirstName','Maria'])
-        ])
-      ]) 
-     ]);
-  E:=D.FindPath('Children[1].Names.FirstName');
-  Writeln(E.AsJSON);
-end.  
-</code>
-</descr>
-<errors>
-</errors>
-<seealso>
-<link id="TJSONArray"/>
-<link id="TJSONObject"/>
-<link id="GetPath"/>
-</seealso>
-</element>
-
-<!-- function result Visibility: public -->
 <element name="TJSONData.FindPath.Result">
 <short>The found data element, or nil</short>
 </element>
@@ -3296,32 +3500,6 @@
 <short>Path to search for</short>
 </element>
 
-<!-- function Visibility: public -->
-<element name="TJSONData.GetPath">
-<short>Get data by name</short>
-<descr>
-<var>GetPath</var> is identical to <link id="FindPath"/> but raises an
-exception if no element was found. The exception message contains the piece
-of path that was not found.
-</descr>
-<errors>
-An <link id="EJSON"/> exception is raised if the path does not exist.
-</errors>
-<seealso>
-<link id="FindPath"/>
-</seealso>
-</element>
-
-<!-- function result Visibility: public -->
-<element name="TJSONData.GetPath.Result">
-<short>The found data element</short>
-</element>
-
-<!-- argument Visibility: public -->
-<element name="TJSONData.GetPath.APath">
-<short>The path of the data element to retrieve.</short>
-</element>
-
 <!-- "class of" type Visibility: default -->
 <element name="TJSONFloatNumberClass">
 <short>Class of <var>TJSONFloatNumber</var></short>
@@ -3337,20 +3515,6 @@
 </element>
 
 <!-- "class of" type Visibility: default -->
-<element name="TJSONIntegerNumberClass">
-<short>Class of <var>TJSONIntegerNumber</var></short>
-<descr>
-<var>TJSONIntegerNumberClass</var> is the class type of <link
-id="TJSONIntegerNumber"/>. It is used in the factory methods.
-</descr>
-<seealso>
-<link id="TJSONIntegerNumber"/>
-<link id="SetJSONInstanceType"/>
-<link id="GetJSONInstanceType"/>
-</seealso>
-</element>
-
-<!-- "class of" type Visibility: default -->
 <element name="TJSONInt64NumberClass">
 <short>Class of <var>TJSONInt64Number</var></short>
 <descr>
@@ -3364,6 +3528,18 @@
 </seealso>
 </element>
 
+<element name="TJSONLargeIntNumber">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
+<element name="TJSONLargeIntNumberClass">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
 <!-- "class of" type Visibility: default -->
 <element name="TJSONStringClass">
 <short>Class of <var>TJSONString</var></short>
@@ -3514,6 +3690,21 @@
 <short>Resulting JSON data.</short>
 </element>
 
+<element name="TJSONStringParserHandler">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+<element name="TJSONStringParserHandler.aJSON">
+  <short/>
+</element>
+<element name="TJSONStringParserHandler.AUseUTF8">
+  <short/>
+</element>
+<element name="TJSONStringParserHandler.Data">
+  <short/>
+</element>
+
 <!-- procedure Visibility: default -->
 <element name="SetJSONInstanceType">
 <short>JSON factory: Set the JSONData class types to use</short>
@@ -3774,6 +3965,18 @@
 <short>The new value for the handler</short>
 </element>
 
+<element name="SetJSONStringParserHandler">
+<short/>
+<descr/>
+<seealso/>
+</element>
+<element name="SetJSONStringParserHandler.Result">
+<short/>
+</element>
+<element name="SetJSONStringParserHandler.AHandler">
+<short/>
+</element>
+
 <!-- function Visibility: default -->
 <element name="GetJSONParserHandler">
 <short>Get the current JSON parser handler</short>
@@ -3801,11 +4004,6 @@
 </element>
 
 <!-- enumeration value Visibility: default -->
-<element name="TJSONInstanceType.jitNumberQWord">
-<short>Qword integer number type</short>
-</element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TFormatOption.foSkipWhiteSpace">
 <short>Skip whitespace</short>
 </element>
@@ -3843,83 +4041,6 @@
 </seealso>
 </element>
 
-<!-- property Visibility: public -->
-<element name="TJSONData.CompressedJSON">
-<short>Compress JSON - skip whitespace</short>
-<descr>
-<var>CompressedJSON</var> can be used to let <link id="TJSONData.AsJSON"/>
-return JSON which does not contain any whitespace. By default it is
-<var>False</var> and whitespace is inserted. If set to <var>True</var>,
-output will contain no whitespace.
-</descr>
-<seealso>
-<link id="TJSONData.FormatJSON"/>
-<link id="TJSONData.AsJSON"/>
-<link id="TJSONData.UnquotedMemberNames"/>
-<link id="TJSONData.AsCompressedJSON"/>
-<link id="TJSONObject.UnquotedMemberNames"/>
-</seealso>
-</element>
-
-<!-- procedure Visibility: public -->
-<element name="TJSONData.DumpJSON">
-<short>Fast, memory efficient dump of JSON in stream</short>
-<descr>
-<var>DumpJSON</var> writes the data as a JSON string to the stream <var>S</var>.
-No intermediate strings are created, making this a more fast and memory efficient 
-operation than creating a string with <link id="TJSONData.AsJSON"/> and writing it to
-stream.
-</descr>
-<errors>
-None.
-</errors>
-<seealso>
-<link id="TJSONData.FormatJSON"/>
-<link id="TJSONData.AsJSON"/>
-</seealso>
-</element>
-
-<!-- argument Visibility: public -->
-<element name="TJSONData.DumpJSON.S">
-<short>Stream to write JSON to</short>
-</element>
-
-<!-- property Visibility: public -->
-<element name="TJSONData.AsQWord">
-<short>Access the raw JSON value as an 64-bit unsigned integer</short>
-<descr>
-<p>
-<var>AsQWord</var> allows access to the raw value as a 64-bit unsigned integer value.
-When reading, it attempts to convert the native value of the data to a
-64-bit unsigned integer value.  When writing, it attempts to transform the 64-bit 
-unsigned integer value to a native value. 
-If either conversion fails, an <var>EConvertError</var> exception is raised.           
-</p>
-<p>
-For <link id="TJSONQwordNumber"/> this will return the native value.
-</p>
-<p> 
-For complex values, reading or writing this property will always result in an
-<var>EConvertError</var> exception.
-</p>
-</descr>
-<seealso>
-<link id="AsFloat"/>
-<link id="Value"/>
-<link id="AsInteger"/>
-<link id="AsInt64"/>
-<link id="AsString"/>
-<link id="AsBoolean"/>
-<link id="IsNull"/>   
-<link id="AsJSON"/>   
-</seealso>
-</element>
-
-<!-- enumeration value Visibility: default -->
-<element name="TJSONNumberType.ntQWord">
-<short>64-bit unsigned integer value</short>
-</element>
-
 <!--
   ********************************************************************
     #fcl.fpjson.TJSONQWordNumber
@@ -4022,53 +4143,6 @@
 </element>
 
 <!-- property Visibility: public -->
-<element name="TJSONArray.QWords">
-<short>Get or set elements as QWord values</short>
-<descr>
-<p>
-<var>QWords</var> gives direct access to the <link id="TJSONData.AsQWord"/>
-property when reading. Reading it is the equivalent to accessing
-</p>
-<code>
-Items[Index].AsQWord
-</code>
-<p>
-When writing, it will check if an 64-bit unsigned integer JSON value is located at the given
-location, and replace it with the new value. If a non-64-bit unsigned integer JSON value is 
-there, it is replaced with the written QWord value.
-</p>
-</descr>
-<seealso>
-<link id="TJSONData.Items"/>
-<link id="TJSONData.IsNull"/>
-<link id="TJSONArray.Types"/>
-<link id="TJSONArray.Integers"/>
-<link id="TJSONArray.QWords"/>
-<link id="TJSONArray.Floats"/>
-<link id="TJSONArray.Strings"/>
-<link id="TJSONArray.Booleans"/>
-</seealso>
-</element>
-
-<!-- argument Visibility: public -->
-<element name="TJSONArray.QWords.Index">
-<short>Index of element to read/write</short>
-</element>
-
-<!-- "class of" type Visibility: default -->
-<element name="TJSONArrayClass">
-<short>Class of TJSONArray</short>
-<descr>
-<var>TJSONArray</var> is the class type for the <link id="TJSONArray"/> class.
-It is used in <link id="CreateJSONArray"/>.
-</descr>
-<seealso>
-<link id="SetJSONInstanceType"/>
-<link id="TJSONObjectClass"/>
-</seealso>
-</element>
-
-<!-- property Visibility: public -->
 <element name="TJSONObject.UnquotedMemberNames">
 <short>Should member names be written unquoted or quoted in JSON</short>
 <descr>
@@ -4207,16 +4281,14 @@
 </seealso>
 </element>
 
-<!-- property Visibility: public -->
-<element name="TJSONData.AsUnicodeString">
-<short>Return the value as a Unicode string</short>
+<element name="jitNumberLargeInt">
+<short/>
 <descr>
-<var>AsUnicodeString</var> returns the value of a simple JSON value as a
-Unicode string.
+Alias to the type used for large integer values.
+jitNumberNativeInt when PAS2JS is defined.
+jitNumberInt64 when PAS2JS is not defined.
 </descr>
-<seealso>
-<link id="TJSONData.AsString"/>
-</seealso>
+<seealso/>
 </element>
 
 <!-- procedure Visibility: public -->
@@ -4287,17 +4359,17 @@
 </descr> 
 <seealso>
 <link id="TJSONData.Items"/>
-<link id="Names"/>   
-<link id="Elements"/>
-<link id="Floats"/>  
-<link id="Integers"/>
-<link id="Booleans"/>
-<link id="Int64s"/>
-<link id="Nulls"/> 
-<link id="Arrays"/> 
-<link id="Types"/>  
-<link id="Objects"/>
-<link id="Strings"/>
+<link id="TJSONData.Names"/>
+<link id="TJSONData.Elements"/>
+<link id="TJSONData.Floats"/>
+<link id="TJSONData.Integers"/>
+<link id="TJSONData.Booleans"/>
+<link id="TJSONData.Int64s"/>
+<link id="TJSONData.Nulls"/>
+<link id="TJSONData.Arrays"/>
+<link id="TJSONData.Types"/>
+<link id="TJSONData.Objects"/>
+<link id="TJSONData.Strings"/>
 </seealso>
 </element>
 
@@ -4338,9 +4410,10 @@
 </descr>
 </element>
 
-<!-- enumeration value Visibility: default -->
-<element name="TFormatOption.foSkipWhiteSpaceOnlyLeading">
-<short>Only skip leading whitespace when formatting JSON</short>
+<element name="TJSONLargeInt">
+  <short/>
+  <descr/>
+  <seealso/>
 </element>
 
 <!-- variable Visibility: public -->
fpjson.diff (50,939 bytes)   
idea.diff (347 bytes)   
Index: idea.xml
===================================================================
--- idea.xml	(revision 1818)
+++ idea.xml	(working copy)
@@ -494,7 +494,6 @@
 may be raised.
 </errors>
 <seealso>
-<link id="TIDEADecryptStream.Write">Write</link>
 <link id="TIDEADecryptStream.Seek">Seek</link>
 <link id="TIDEAEncryptStream"/>
 </seealso>
idea.diff (347 bytes)   
inicol.diff (1,353 bytes)   
Index: inicol.xml
===================================================================
--- inicol.xml	(revision 1818)
+++ inicol.xml	(working copy)
@@ -311,11 +311,12 @@
 After this method is called, the <link
 id="TIniCollection.GlobalSection">GlobalSection</link> property contains the
 value of <var>Section</var>, it will be used in the 
-<link id="TIniCollectionItem.Save">Save</link> method.
+<link id="TIniCollection.Save">Save</link> method.
 </p>
 </descr>
 <seealso>
 <link id="TIniCollectionItem.SaveToIni"/>
+<link id="TIniCollection.Save"/>
 </seealso>
 </element>
 
@@ -450,13 +451,17 @@
 <element name="TIniCollection.SectionPrefix">
 <short>Prefix string for section names</short>
 <descr>
+<p>
 <var>SectionPrefix</var> is a string that is prepended to the section name
-as returned by the <link id="TIniCollectionItem.SectionName"/> property to
-return the exact section name. It can be empty.
+  specified using the TIniCollectionItem.SectionName property. The two
+  elements form the actual section name where the collection items are
+  stored. The value can be an empty string (<b>''</b>) if a Prefix is not needed
+  in the realized SectionName.
+</p>
 </descr>
 <seealso>
-<link id="TIniCollection.Section"/>
 <link id="TIniCollection.GlobalSection"/>
+<link id="TIniCollectionItem.SectionName"/>
 </seealso>
 </element>
 
inicol.diff (1,353 bytes)   
inifiles.diff (12,988 bytes)   
Index: inifiles.xml
===================================================================
--- inifiles.xml	(revision 1818)
+++ inifiles.xml	(working copy)
@@ -575,14 +575,14 @@
 exists, but is empty, an empty string will be returned.
 </descr>
 <seealso>
-<link id="TCustomIniFile.WriteString">WriteString</link>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.ReadBool">ReadBool</link>
-<link id="TCustomIniFile.ReadDate">ReadDate</link>
-<link id="TCustomIniFile.ReadDateTime">ReadDateTime</link>
-<link id="TCustomIniFile.ReadTime">ReadTime</link>
-<link id="TCustomIniFile.ReadFloat">ReadFloat</link>
-<link id="TCustomIniFile.ReadBinaryStream">ReadBinaryStream</link>
+<link id="TCustomIniFile.WriteString"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.ReadBool"/>
+<link id="TCustomIniFile.ReadDate"/>
+<link id="TCustomIniFile.ReadDateTime"/>
+<link id="TCustomIniFile.ReadTime"/>
+<link id="TCustomIniFile.ReadFloat"/>
+<link id="TCustomIniFile.ReadBinaryStream"/>
 </seealso>
 </element>
 
@@ -658,14 +658,14 @@
 exists, but contains an invalid integer value, <var>Default</var> is also returned.
 </descr>
 <seealso>
-<link id="TCustomIniFile.WriteInteger">WriteInteger</link>
-<link id="TCustomIniFile.ReadString">ReadString</link>
-<link id="TCustomIniFile.ReadBool">ReadBool</link>
-<link id="TCustomIniFile.ReadDate">ReadDate</link>
-<link id="TCustomIniFile.ReadDateTime">ReadDateTime</link>
-<link id="TCustomIniFile.ReadTime">ReadTime</link>
-<link id="TCustomIniFile.ReadFloat">ReadFloat</link>
-<link id="TCustomIniFile.ReadBinaryStream">ReadBinaryStream</link>
+<link id="TCustomIniFile.WriteInteger"/>
+<link id="TCustomIniFile.ReadString"/>
+<link id="TCustomIniFile.ReadBool"/>
+<link id="TCustomIniFile.ReadDate"/>
+<link id="TCustomIniFile.ReadDateTime"/>
+<link id="TCustomIniFile.ReadTime"/>
+<link id="TCustomIniFile.ReadFloat"/>
+<link id="TCustomIniFile.ReadBinaryStream"/>
 </seealso>
 </element>
 
@@ -699,14 +699,14 @@
 exist.
 </descr>
 <seealso>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.WriteString">WriteString</link>
-<link id="TCustomIniFile.WriteBool">WriteBool</link>
-<link id="TCustomIniFile.WriteDate">WriteDate</link>
-<link id="TCustomIniFile.WriteDateTime">WriteDateTime</link>
-<link id="TCustomIniFile.WriteTime">WriteTime</link>
-<link id="TCustomIniFile.WriteFloat">WriteFloat</link>
-<link id="TCustomIniFile.WriteBinaryStream">WriteBinaryStream</link>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.WriteString"/>
+<link id="TCustomIniFile.WriteBool"/>
+<link id="TCustomIniFile.WriteDate"/>
+<link id="TCustomIniFile.WriteDateTime"/>
+<link id="TCustomIniFile.WriteTime"/>
+<link id="TCustomIniFile.WriteFloat"/>
+<link id="TCustomIniFile.WriteBinaryStream"/>
 </seealso>
 </element>
 
@@ -737,14 +737,14 @@
 <errors>
 </errors>
 <seealso>
-<link id="TCustomIniFile.WriteBool">WriteBool</link>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.ReadString">ReadString</link>
-<link id="TCustomIniFile.ReadDate">ReadDate</link>
-<link id="TCustomIniFile.ReadDateTime">ReadDateTime</link>
-<link id="TCustomIniFile.ReadTime">ReadTime</link>
-<link id="TCustomIniFile.ReadFloat">ReadFloat</link>
-<link id="TCustomIniFile.ReadBinaryStream">ReadBinaryStream</link>
+<link id="TCustomIniFile.WriteBool"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.ReadString"/>
+<link id="TCustomIniFile.ReadDate"/>
+<link id="TCustomIniFile.ReadDateTime"/>
+<link id="TCustomIniFile.ReadTime"/>
+<link id="TCustomIniFile.ReadFloat"/>
+<link id="TCustomIniFile.ReadBinaryStream"/>
 </seealso>
 </element>
 
@@ -818,14 +818,14 @@
 <errors>
 </errors>
 <seealso>
-<link id="TCustomIniFile.WriteDate">WriteDate</link>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.ReadBool">ReadBool</link>
-<link id="TCustomIniFile.ReadString">ReadString</link>
-<link id="TCustomIniFile.ReadDateTime">ReadDateTime</link>
-<link id="TCustomIniFile.ReadTime">ReadTime</link>
-<link id="TCustomIniFile.ReadFloat">ReadFloat</link>
-<link id="TCustomIniFile.ReadBinaryStream">ReadBinaryStream</link>
+<link id="TCustomIniFile.WriteDate"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.ReadBool"/>
+<link id="TCustomIniFile.ReadString"/>
+<link id="TCustomIniFile.ReadDateTime"/>
+<link id="TCustomIniFile.ReadTime"/>
+<link id="TCustomIniFile.ReadFloat"/>
+<link id="TCustomIniFile.ReadBinaryStream"/>
 </seealso>
 </element>
 
@@ -861,14 +861,14 @@
 account when deciding if the read value is a correct date/time.
 </descr>
 <seealso>
-<link id="TCustomIniFile.WriteDateTime">WriteDateTime</link>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.ReadBool">ReadBool</link>
-<link id="TCustomIniFile.ReadDate">ReadDate</link>
-<link id="TCustomIniFile.ReadString">ReadString</link>
-<link id="TCustomIniFile.ReadTime">ReadTime</link>
-<link id="TCustomIniFile.ReadFloat">ReadFloat</link>
-<link id="TCustomIniFile.ReadBinaryStream">ReadBinaryStream</link>
+<link id="TCustomIniFile.WriteDateTime"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.ReadBool"/>
+<link id="TCustomIniFile.ReadDate"/>
+<link id="TCustomIniFile.ReadString"/>
+<link id="TCustomIniFile.ReadTime"/>
+<link id="TCustomIniFile.ReadFloat"/>
+<link id="TCustomIniFile.ReadBinaryStream"/>
 </seealso>
 </element>
 
@@ -904,14 +904,14 @@
 account when deciding if the read value is a correct float.
 </descr>
 <seealso>
-<link id="TCustomIniFile.WriteFloat">WriteFloat</link>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.ReadBool">ReadBool</link>
-<link id="TCustomIniFile.ReadDate">ReadDate</link>
-<link id="TCustomIniFile.ReadDateTime">ReadDateTime</link>
-<link id="TCustomIniFile.ReadTime">ReadTime</link>
-<link id="TCustomIniFile.ReadString">ReadString</link>
-<link id="TCustomIniFile.ReadBinaryStream">ReadBinaryStream</link>
+<link id="TCustomIniFile.WriteFloat"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.ReadBool"/>
+<link id="TCustomIniFile.ReadDate"/>
+<link id="TCustomIniFile.ReadDateTime"/>
+<link id="TCustomIniFile.ReadTime"/>
+<link id="TCustomIniFile.ReadString"/>
+<link id="TCustomIniFile.ReadBinaryStream"/>
 </seealso>
 </element>
 
@@ -949,14 +949,14 @@
 <errors>
 </errors>
 <seealso>
-<link id="TCustomIniFile.WriteTime">WriteTime</link>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.ReadBool">ReadBool</link>
-<link id="TCustomIniFile.ReadDate">ReadDate</link>
-<link id="TCustomIniFile.ReadDateTime">ReadDateTime</link>
-<link id="TCustomIniFile.ReadString">ReadString</link>
-<link id="TCustomIniFile.ReadFloat">ReadFloat</link>
-<link id="TCustomIniFile.ReadBinaryStream">ReadBinaryStream</link>
+<link id="TCustomIniFile.WriteTime"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.ReadBool"/>
+<link id="TCustomIniFile.ReadDate"/>
+<link id="TCustomIniFile.ReadDateTime"/>
+<link id="TCustomIniFile.ReadString"/>
+<link id="TCustomIniFile.ReadFloat"/>
+<link id="TCustomIniFile.ReadBinaryStream"/>
 </seealso>
 </element>
 
@@ -997,14 +997,14 @@
 </p>
 </descr>
 <seealso>
-<link id="TCustomIniFile.WriteBinaryStream">WriteBinaryStream</link>
-<link id="TCustomIniFile.ReadInteger">ReadInteger</link>
-<link id="TCustomIniFile.ReadBool">ReadBool</link>
-<link id="TCustomIniFile.ReadDate">ReadDate</link>
-<link id="TCustomIniFile.ReadDateTime">ReadDateTime</link>
-<link id="TCustomIniFile.ReadTime">ReadTime</link>
-<link id="TCustomIniFile.ReadFloat">ReadFloat</link>
-<link id="TCustomIniFile.ReadString">ReadString</link>
+<link id="TCustomIniFile.WriteBinaryStream"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.ReadBool"/>
+<link id="TCustomIniFile.ReadDate"/>
+<link id="TCustomIniFile.ReadDateTime"/>
+<link id="TCustomIniFile.ReadTime"/>
+<link id="TCustomIniFile.ReadFloat"/>
+<link id="TCustomIniFile.ReadString"/>
 </seealso>
 </element>
 
@@ -1773,6 +1773,39 @@
 </seealso>
 </element>
 
+<element name="TIniFile.WriteBOM">
+<short>
+Indicates if a Byte Order Mark (BOM) is written at the start of the .INI file
+</short>
+<descr>
+<p>
+<var>WriteBOM</var> is a <var>Boolean</var> property which indicates if a
+<b>Byte Order Mark</b> (<b>BOM</b>) is written at the start of the .INI file.
+The default value for the property is <b>False</b>, and causes the BOM to
+be omitted when storing the .INI file content.
+</p>
+<p>
+Setting a new value for the property can cause the sections and section
+values to be re-written to the <var>FileName</var> or <var>Stream</var>
+where the .INI file content is stored. When <var>CacheUpdates</var> is
+<b>False</b>, the <var>UpdateFile</var> method is called to re-write the
+values in the storage. When CacheUpdates is <b>True</b>, the <var>Dirty</var>
+property is set to <b>True</b> and the action is deferred until the class
+instance is freed or update caching is disabled.
+</p>
+<p>
+The property value is used in the <var>UpdatFile</var> method, and is
+assigned to the <var>WriteBOM</var> property in the <var>TStrings</var>
+instance used to write the content for the .INI file.
+</p>
+</descr>
+<link id="TIniFile.CacheUpdates"/>
+<link id="TIniFile.UpdateFile"/>
+<link id="TIniFile.Stream"/>
+<link id="TCustomIniFile.FileName"/>
+<link id="#rtl.classes.TStrings.WriteBOM">TStrings.WriteBOM</link>
+</element>
+
 <!--
   ********************************************************************
     #fcl.IniFiles.TMemIniFile
@@ -1957,7 +1990,6 @@
 <var>Destroy</var>.
 </descr>
 <seealso>
-<link id="THashedStringList.Create"/>
 </seealso>
 </element>
 
@@ -2025,7 +2057,7 @@
 
 <!-- function Visibility: public -->
 <element name="TCustomIniFile.ReadInt64">
-<short>Read Int64 value</short>
+<short>Read an Int64 value</short>
 <descr>
 <p>
 <var>ReadInt64</var> reads a signed 64-bit integer value from the ini file.
@@ -2038,12 +2070,13 @@
 <var>Default</var> value is returned instead.
 </p>
 <p>
-This function is needed because <link id="ReadInteger"/> only reads at most a 32-bit value.
+This function is needed because <link id="TCustomIniFile.ReadInteger">ReadInteger</link>
+reads at most a 32-bit value.
 </p>
 </descr>
 <seealso>
-<link id="ReadInteger"/>
-<link id="WriteInt64"/>
+<link id="TCustomIniFile.ReadInteger"/>
+<link id="TCustomIniFile.WriteInt64"/>
 </seealso>
 </element>
 
@@ -2069,14 +2102,14 @@
 
 <!-- procedure Visibility: public -->
 <element name="TCustomIniFile.WriteInt64">
-<short>Write a Int64 value.</short>
+<short>Write an Int64 value.</short>
 <descr>
 <var>WriteInt64</var> writes <var>Value</var> as a signed 64-bit integer value
 to section <var>Section</var>, key <var>Ident</var>. 
 </descr>
 <seealso>
-<link id="WriteInteger"/>
-<link id="ReadInt64"/>
+<link id="TCustomIniFile.WriteInteger"/>
+<link id="TCustomIniFile.ReadInt64"/>
 </seealso>
 </element>
 
@@ -2300,15 +2333,21 @@
 <descr>
 <p>
 <var>TIniFileOption</var> enumerates the possible options when creating a
-new <link id="TCustomIniFileoption"/> instance.
+new <link id="TCustomIniFile">TCustomIniFile</link> instance.
 </p>
 <dl>
-<dt>ifoStripComments</dt><dd><printshort id="TIniFileOption.ifoStripComments"/></dd>
-<dt>ifoStripInvalid</dt><dd><printshort id="TIniFileOption.ifoStripInvalid"/></dd>
-<dt>ifoEscapeLineFeeds</dt><dd><printshort id="TIniFileOption.ifoEscapeLineFeeds"/></dd>
-<dt>ifoCaseSensitive</dt><dd><printshort id="TIniFileOption.ifoCaseSensitive"/></dd>
-<dt>ifoStripQuotes</dt><dd><printshort id="TIniFileOption.ifoStripQuotes"/></dd>
-<dt>ifoFormatSettingsActive</dt><dd><printshort id="TIniFileOption.ifoFormatSettingsActive"/></dd>
+<dt>ifoStripComments</dt>
+<dd><printshort id="TIniFileOption.ifoStripComments"/></dd>
+<dt>ifoStripInvalid</dt>
+<dd><printshort id="TIniFileOption.ifoStripInvalid"/></dd>
+<dt>ifoEscapeLineFeeds</dt>
+<dd><printshort id="TIniFileOption.ifoEscapeLineFeeds"/></dd>
+<dt>ifoCaseSensitive</dt>
+<dd><printshort id="TIniFileOption.ifoCaseSensitive"/></dd>
+<dt>ifoStripQuotes</dt>
+<dd><printshort id="TIniFileOption.ifoStripQuotes"/></dd>
+<dt>ifoFormatSettingsActive</dt>
+<dd><printshort id="TIniFileOption.ifoFormatSettingsActive"/></dd>
 </dl>
 </descr>
 <seealso>
@@ -2424,7 +2463,7 @@
 <link id="TCustomIniFile.ReadFloat"/> 
 or when writing values in 
 <link id="TCustomIniFile.WriteDateTime"/>, 
-<link id="TCustomIniFile.WrireDate"/>,
+<link id="TCustomIniFile.WriteDate"/>,
 <link id="TCustomIniFile.WriteTime"/> 
 and 
 <link id="TCustomIniFile.WriteFloat"/>.
@@ -2436,7 +2475,7 @@
 <link id="TCustomIniFile.ReadTime"/> 
 <link id="TCustomIniFile.ReadFloat"/> 
 <link id="TCustomIniFile.WriteDateTime"/>
-<link id="TCustomIniFile.WrireDate"/>
+<link id="TCustomIniFile.WriteDate"/>
 <link id="TCustomIniFile.WriteTime"/> 
 <link id="TCustomIniFile.WriteFloat"/>
 </seealso>
inifiles.diff (12,988 bytes)   
memds.diff (3,296 bytes)   
Index: memds.xml
===================================================================
--- memds.xml	(revision 1818)
+++ memds.xml	(working copy)
@@ -32,9 +32,7 @@
             MarkerSize is defined as the size for the Integer data type.
           </p>
         </descr>
-        <seealso>
-          <link id="TMemDataset.CheckMarker">TMemDataset.CheckMarker</link>
-        </seealso>
+        <seealso/>
       </element>
 
       <element name="smEOF">
@@ -47,9 +45,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TMemDataset.InternalOpen">TMemDataset.InternalOpen</link>
-          <link id="TMemDataset.LoadFromStream">TMemDataset.LoadFromStream</link>
-          <link id="TMemDataset.SaveToStream">TMemDataset.SaveToStream</link>
+          <link id="TMemDataset.LoadFromStream"/>
+          <link id="TMemDataset.SaveToStream"/>
         </seealso>
       </element>
 
@@ -63,12 +60,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TMemDataset.ReadFieldDefsFromStream">
-            TMemDataset.ReadFieldDefsFromStream
-          </link>
-          <link id="TMemDataset.SaveFieldDefsToStream">
-            TMemDataset.SaveFieldDefsToStream
-          </link>
+          <link id="TMemDataset.LoadFromStream"/>
+          <link id="TMemDataset.SaveToStream"/>
         </seealso>
       </element>
 
@@ -82,12 +75,8 @@
           </p>
         </descr>
         <seealso>
-          <link id="TMemDataset.LoadDataFromStream">
-            TMemDataset.LoadDataFromStream
-          </link>
-          <link id="TMemDataset.SaveDataToStream">
-            TMemDataset.SaveDataToStream
-          </link>
+          <link id="TMemDataset.LoadFromStream"/>
+          <link id="TMemDataset.SaveToStream"/>
         </seealso>
       </element>
 
@@ -129,9 +118,8 @@
           </ul>
         </descr>
         <seealso>
-          <link id="TMemDataset.RaiseError">TMemDataset.RaiseError</link>
-          <link id="TMemDataset.FieldDefs">TMemDataset.FieldDefs</link>
-          <link id="#fcl.Db.TField.FieldType">TField.FieldType</link>
+          <link id="TMemDataset.FieldDefs"/>
+          <link id="#fcl.db.TField.DataType">TField.DataType</link>
         </seealso>
       </element>
 
@@ -1519,10 +1507,10 @@
           </p>
         </descr>
         <seealso>
+          <link id="TMemDataset.Clear"/>
+          <link id="TMemDataset.CreateTable"/>
           <link id="#fcl.Db.TDataset.Active">TDataset.Active</link>
-          <link id="TMemDataset.Clear">TMemDataset.Clear</link>
           <link id="#fcl.Db.TDataset.FieldDefs">TDataset.FieldDefs</link>
-          <link id="TMemDataset.CalcRecordLayout">TMemDataset.CalcRecordLayout</link>
         </seealso>
       </element>
 
@@ -1763,7 +1751,7 @@
             FileName is a String property that specifies the file used to load field definitions and optional data when the dataset is opened. When FileName is assigned, and the dataset has been modified, it indicates the file name used to store field definitions and data in the local file system.
           </p>
         </descr>
-        <seealso><link id=""></link></seealso>
+        <seealso/>
       </element>
 
       <element name="TMemDataset.Filtered" link="#fcl.Db.TDataset.Filtered">
memds.diff (3,296 bytes)   
pipes.diff (4,234 bytes)   
Index: pipes.xml
===================================================================
--- pipes.xml	(revision 1818)
+++ pipes.xml	(working copy)
@@ -17,8 +17,8 @@
 </descr>
 
 <!-- unresolved type reference Visibility: default -->
-<element name="sysutils">
-<short>uses for exception support.</short>
+<element name="SysUtils">
+<short>Used for exception support.</short>
 </element>
 
 <!-- unresolved type reference Visibility: default -->
@@ -57,6 +57,18 @@
 </seealso>
 </element>
 
+<!-- destructor Visibility: public -->
+<element name="TInputPipeStream.Destroy">
+<short>Destroy this instance of the input pipe stream</short>
+<descr>
+<var>Destroy</var> overrides the destructor to close the pipe handle, prior
+to calling the inherited destructor.
+</descr>
+<seealso>
+<link id="#rtl.classes.THandleStream.Create">THandleStream.Create</link>
+</seealso>
+</element>
+
 <!-- function Visibility: public -->
 <element name="TInputPipeStream.Write">
 <short>Write data to the stream.</short>
@@ -204,12 +216,24 @@
 not allow reading.
 </descr>
 <seealso>
-<link id="#rtl.classes.TStream">TStream</link>
 <link id="CreatePipeStreams"/>
 <link id="TInputPipeStream"/>
+<link id="#rtl.classes.TStream">TStream</link>
 </seealso>
 </element>
 
+<!-- destructor Visibility: public -->
+<element name="TOutputPipeStream.Destroy">
+<short>Destroy this instance of the output pipe stream</short>
+<descr>
+<var>Destroy</var> overrides the destructor to close the pipe handle, prior
+to calling the inherited destructor.
+</descr>
+<seealso>
+<link id="#rtl.classes.THandleStream.Create">THandleStream.Create</link>
+</seealso>
+</element>
+
 <!-- function Visibility: public -->
 <element name="TOutputPipeStream.Seek">
 <short>Sets the position in the stream</short>
@@ -270,7 +294,6 @@
 <short>Number of bytes to read from the stream.</short>
 </element>
 
-
 <!-- function Visibility: default -->
 <element name="CreatePipeHandles">
 <short>Function to create a set of pipe handles</short>
@@ -303,6 +326,11 @@
 <short>File handle for writing end of the pipe</short>
 </element>
 
+<!-- argument Visibility: default -->
+<element name="CreatePipeHandles.APipeBufferSize">
+<short>Buffer size to be used for the pipe</short>
+</element>
+
 <!-- procedure Visibility: default -->
 <element name="CreatePipeStreams">
 <short>Create a pair of pipe stream.</short>
@@ -316,8 +344,9 @@
 <p>
 On some systems (notably: windows) the size of the buffer to be used for
 communication between 2 ends of the buffer can be specified in 
-the <link id="APipeBufferSize"/> parameter. This parameter is ignored on
-systems that do not support setting the buffer size.
+the <link id="CreatePipeHandles.APipeBufferSize">APipeBufferSize</link>
+parameter. This parameter is ignored on systems that do not support setting
+the buffer size.
 </p>
 </descr>
 <errors>
@@ -351,51 +380,6 @@
 <short>Constant used in <link id="#fcl.pipes.EPipeSeek">EPipeSeek</link> exception.</short>
 </element>
 
-<!-- unresolved type reference Visibility: default -->
-<element name="sysutils">
-<short>Exception support</short>
-</element>
-
-<!-- unresolved type reference Visibility: default -->
-<element name="Classes">
-<short>Stream definitions</short>
-</element>
-
-<!-- destructor Visibility: public -->
-<element name="TInputPipeStream.Destroy">
-<short>Destroy this instance of the input pipe stream</short>
-<descr>
-<var>Destroy</var> overrides the destructor to close the pipe handle, prior
-to calling the inherited destructor.
-</descr>
-<errors>
-None
-</errors>
-<seealso>
-<link id="TInputPipeStream.Create"/>
-</seealso>
-</element>
-
-<!-- destructor Visibility: public -->
-<element name="TOutputPipeStream.Destroy">
-<short>Destroy this instance of the output pipe stream</short>
-<descr>
-<var>Destroy</var> overrides the destructor to close the pipe handle, prior
-to calling the inherited destructor.
-</descr>
-<errors>
-None
-</errors>
-<seealso>
-<link id="TOutputPipeStream.Create"/>
-</seealso>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="CreatePipeHandles.APipeBufferSize">
-<short>Buffer size to be used for the pipe</short>
-</element>
-
 </module> <!-- Pipes -->
 </package>
 </fpdoc-descriptions>
pipes.diff (4,234 bytes)   
process.diff (8,923 bytes)   
Index: process.xml
===================================================================
--- process.xml	(revision 1818)
+++ process.xml	(working copy)
@@ -52,56 +52,52 @@
 </seealso>
 </element>
 
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poRunSuspended">
 <short>Start the process in suspended state.</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poWaitOnExit">
 <short>Wait for the process to terminate before returning.</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poUsePipes">
 <short>Use pipes to redirect standard input and output.</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poStderrToOutPut">
 <short>Redirect standard error to the standard output stream.</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poNoConsole">
 <short>Do not allow access to the console window for the process (Win32 only)</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poNewConsole">
 <short>Start a new console window for the process (Win32 only)</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poDefaultErrorMode">
 <short>Use default error handling.</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poNewProcessGroup">
 <short>Start the process in a new process group (Win32 only)</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poDebugProcess">
 <short>Allow debugging of the process (Win32 only)</short>
 </element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessOption.poDebugOnlyThisProcess">
 <short>Do not follow processes started by this process (Win32 only)</short>
 </element>
+<element name="TProcessOption.poDetached">
+<short>Runs a process using the DETACHED_PROCESS creation flag on Windows</short>
+</element>
+<element name="TProcessOption.poPassInput">
+<short>Pass standard input handle on to new process</short>
+</element>
+<element name="TProcessOption.poRunIdle">
+<short>
+Signals an event handler to wait for output in the run loop for a process.
+</short>
+</element>
 
+<element name="TProcessOptions">
+<short>Set of <link id="#fcl.process.TProcessOption">TProcessOption</link>.</short>
+</element>
+
 <!-- enumeration type Visibility: default -->
 <element name="TShowWindowOptions">
 <short>Description of the main window of the new process.</short>
@@ -252,12 +248,7 @@
 </element>
 
 <!-- set type Visibility: default -->
-<element name="TProcessOptions">
-<short>Set of <link id="#fcl.process.TProcessOption">TProcessOption</link>.</short>
-</element>
-
-<!-- set type Visibility: default -->
-<element name="TstartUpoptions">
+<element name="TStartUpOtions">
 <short>Set of <link id="#fcl.process.TStartupOption">TStartUpOption</link>.</short>
 </element>
 
@@ -724,6 +715,26 @@
 </element>
 
 <!-- property Visibility: public -->
+<element name="TProcess.ExitCode">
+<short>Exit code of the process</short>
+<descr>
+<p>
+<var>ExitCode</var> is the actual exit code of the process. On UNIX, this may
+differ from the <link id="ExitStatus"/> value if the process was terminated by a
+signal: in that case <var>ExitStatus</var> is the raw exit status as reported by
+one of the UNIX <var>Wait</var> command, and <var>ExitCode</var> is the
+exit code reported by the program.
+</p>
+</descr>
+<seealso>
+<link id="TProcess.ExitStatus"/>
+<link id="TProcess.Running"/>
+<link id="TProcess.WaitOnExit"/>
+<link id="TProcess.Terminate"/>
+</seealso>
+</element>
+
+<!-- property Visibility: public -->
 <element name="TProcess.InheritHandles">
 <short>Should the created process inherit the open handles of the current process.</short>
 <descr>
@@ -1334,6 +1345,11 @@
 </seealso>
 </element>
 
+<!-- argument Visibility: default -->
+<element name="TProcessForkEvent.Sender">
+<short><var>TProcess</var> instance that caused the fork.</short>
+</element>
+
 <!-- property Visibility: published -->
 <element name="TProcess.Executable">
 <short>Executable name. Supersedes <var>CommandLine</var> and <var>ApplicationName</var>.</short>
@@ -1586,50 +1602,34 @@
 <link id="TProcessOptions"/>
 </seealso>
 </element>
-
-<!-- function result Visibility: default -->
 <element name="RunCommandIndir.Result">
 <short>True if the command was started successfully (or zero in case of an integer return value).</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommandIndir.curdir">
 <short>Current working directory for the command.</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommandIndir.exename">
 <short>Executable to start.</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommandIndir.commands">
 <short>Command-line arguments for the executable.</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommandIndir.outputstring">
 <short>String to return the commands output.</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommandIndir.exitstatus">
 <short>On exit, contains the exit status of the process</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommandInDir.cmdline">
 <short>Filename of binary to start plus command-line arguments separated by whitespace</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommandIndir.Options">
 <short>Options to use when running the command</short>
 </element>
-
-<!-- argument Visibility: default -->
-<element name="RunCommand.Options">
-<short>Options to use when running the command</short>
+<element name="RunCommandIndir.SWOptions">
+<short>
+Show window options for the process. Default value is swoNone.
+</short>
 </element>
 
 <!-- function Visibility: default -->
@@ -1648,53 +1648,33 @@
 <link id="RunCommandInDir"/>
 </seealso>
 </element>
-
-<!-- function result Visibility: default -->
 <element name="RunCommand.Result">
 <short>True if the function executed successfully</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommand.exename">
 <short>Binary to start.</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommand.commands">
 <short>Command-line arguments</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommand.outputstring">
 <short>String containing the output of the process.</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="RunCommand.cmdline">
-<short>Filename of binary to start and command-line arguments, separated by whitespace.</short>
+<short>
+Qualified path to the binary to start, and command-line arguments separated
+by whitespace.
+</short>
 </element>
-
-<!-- argument Visibility: default -->
-<element name="TProcessForkEvent.Sender">
-<short><var>TProcess</var> instance that caused the fork.</short>
+<element name="RunCommand.Options">
+<short>
+Process options enabled in the run loop for the command.
+</short>
 </element>
-
-<!-- property Visibility: public -->
-<element name="TProcess.ExitCode">
-<short>Exit code of the process</short>
-<descr>
-<var>ExitCode</var> is the actual exit code of the process. On UNIX, this may differ
-from the <link id="ExitStatus"/> value if the process was terminated by a
-signal: in that case <var>ExitStatus</var> is the raw exit status as
-reported by one of the UNIX <var>Wait</var> command, and <var>ExitCode</var> is the
-exit code reported by the program.
-</descr>
-<seealso>
-<link id="TProcess.ExitStatus"/>
-<link id="TProcess.Running"/>
-<link id="TProcess.WaitOnExit"/>
-<link id="TProcess.Terminate"/>
-</seealso>
+<element name="RunCommand.SWOptions">
+<short>
+Show window options for the process. Default value is swoNone.
+</short>
 </element>
 
 <!-- uses unit Visibility: default -->
@@ -1703,11 +1683,6 @@
 </element>
 
 <!-- enumeration value Visibility: default -->
-<element name="TProcessOption.poPassInput">
-<short>Pass standard input handle on to new process</short>
-</element>
-
-<!-- enumeration value Visibility: default -->
 <element name="TProcessPriority.ppBelowNormal">
 <short>Below normal priority</short>
 </element>
@@ -1841,8 +1816,11 @@
 <element name="TProcessStringList">
 <short>Alias for <var>TProcessStrings</var></short>
 <descr>
+<p>
 <var>TProcessStringList</var> is an alias for <link id="TProcessStrings"/> in unicode code, 
-or an alias for the <link id="#classes.TStringList"/> class in single-byte string mode.
+or an alias for the <link id="#rtl.classes.TStringList">TStringList</link> class in single-byte
+string mode.
+</p>
 </descr>
 <seealso>
 <link id="TProcessStrings"/>
process.diff (8,923 bytes)   

Don Siders

2021-03-12 11:23

reporter   ~0129600

It dropped some.
rttiutils.diff (849 bytes)   
Index: rttiutils.xml
===================================================================
--- rttiutils.xml	(revision 1818)
+++ rttiutils.xml	(working copy)
@@ -71,7 +71,7 @@
 <var>Nil</var>
 </descr>
 <seealso>
-<link id="TPropInfoList.Destroy">Destroy</link>
+<link id="TPropInfoList.Destroy"/>
 </seealso>
 </element>
 
@@ -79,11 +79,12 @@
 <element name="TPropInfoList.Create.AObject">
 <short>Object whose properties should be listed</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="TPropInfoList.Create.Filter">
 <short>Filter on the kind of properties to retrieve</short>
 </element>
+<element name="TPropInfoList.Create.Sorted">
+<short>True if the properties list in Items should be sorted alphabetically</short>
+</element>
 
 <!-- destructor Visibility: public -->
 <element name="TPropInfoList.Destroy">
rttiutils.diff (849 bytes)   
simpleipc.diff (4,643 bytes)   
Index: simpleipc.xml
===================================================================
--- simpleipc.xml	(revision 1818)
+++ simpleipc.xml	(working copy)
@@ -609,12 +609,12 @@
 <descr>
 <var>InstanceID</var> is the unique identifier for this server 
 communication channel endpoint, and will be appended to the 
-<link id="TSimpleIPCServer.ServerID">ServerID</link> property 
+<link id="TSimpleIPC.ServerID">ServerID</link> property
 to form the unique server endpoint which a client should use.
 </descr>
 <seealso>
-<link id="TSimpleIPCServer.ServerID">ServerID</link>
-<link id="TSimpleIPCServer.GlobalID">Global</link>
+<link id="TSimpleIPC.ServerID"/>
+<link id="TSimpleIPCServer.Global"/>
 
 </seealso>
 </element>
@@ -630,8 +630,8 @@
 <var>ServerID</var> name.
 </descr>
 <seealso>
-<link id="TSimpleIPCServer.ServerID">ServerID</link>
-<link id="TSimpleIPCServer.InstanceID">InstanceID</link>
+<link id="TSimpleIPC.ServerID"/>
+<link id="TSimpleIPCServer.InstanceID"/>
 </seealso>
 </element>
 
@@ -786,15 +786,14 @@
 <element name="TIPCClientComm.ServerRunning">
 <short>Check if the server is running.</short>
 <descr>
-<var>ServerRunning</var> returns <var>True</var> if the server endpoint of
+<var>ServerRunning</var> returns <var>True</var> if the server endpoint for
 the communication channel can be found, or <var>False</var> if not. The
-server endpoint should be obtained from the <var>ServerID</var> and
-<var>InstanceID</var> properties of the owning <link id="TSimpleIPCClient"/>
-component.
+server endpoint is obtained from the <var>ServerID</var>  property in the owning
+<link id="TSimpleIPCClient"/> component.
 </descr>
 <seealso>
-<link id="TSimpleIPCClient.InstanceID"/>
-<link id="TSimpleIPCClient.ServerID"/>
+<link id="TSimpleIPC.ServerID"/>
+<link id="TSimpleIPCServer.InstanceID"/>
 </seealso>
 </element>
 
@@ -853,11 +852,10 @@
 <p>
 <var>TSimpleIPCClient</var> is the client side of the simple IPC
 communication protocol. The client program should create a
-<var>TSimpleIPCClient</var> instance, set its <link
-id="TSimpleIPC.ServerID">ServerID</link> property to the unique name for the
-server it wants to send messages to, and then set the <link id="TSimpleIPC.ServerID">Active</link>
-property to <var>True</var> (or call <link
-id="TSimpleIPCClient.StartServer">Connect</link>).
+<var>TSimpleIPCClient</var> instance, set its <var>ServerID</var>
+property to the unique name for the server it wants to send
+messages to, and then set the <var>Active</var> property to
+<var>True</var>.
 </p>
 <p>
 After the connection with the server was established, messages can be sent
@@ -918,7 +916,7 @@
 <p>
 <var>Connect</var> connects to the server indicated in the <link
 id="TSimpleIPC.ServerID">ServerID</link> and <link
-id="TSimpleIPCClient.InstanceID">InstanceID</link> properties. <var>Connect</var> is called
+id="TSimpleIPCServer.InstanceID">InstanceID</link> properties. <var>Connect</var> is called
 automatically if the <link id="TSimpleIPC.Active">Active</link> property is
 set to <var>True</var>.
 </p>
@@ -936,12 +934,12 @@
 raised.
 </errors>
 <seealso>
-<link id="TSimpleIPC.ServerID">ServerID</link> 
-<link id="TSimpleIPCClient.InstanceID">InstanceID</link>
-<link id="TSimpleIPC.Active">Active</link> 
-<link id="TSimpleIPCClient.SendMessage">SendMessage</link>
-<link id="TSimpleIPCClient.SendStringMessage">SendStringMessage</link>
-<link id="TSimpleIPCClient.Disconnect">Disconnect</link>
+<link id="TSimpleIPC.ServerID"/>
+<link id="TSimpleIPCServer.InstanceID"/>
+<link id="TSimpleIPC.Active"/>
+<link id="TSimpleIPCClient.SendMessage"/>
+<link id="TSimpleIPCClient.SendStringMessage"/>
+<link id="TSimpleIPCClient.Disconnect"/>
 </seealso>
 </element>
 
@@ -979,7 +977,7 @@
 <descr>
 <var>ServerRunning</var> verifies if the server indicated in the <link
 id="TSimpleIPC.ServerID">ServerID</link> and <link
-id="TSimpleIPCClient.InstanceID">InstanceID</link> properties is running.
+id="TSimpleIPCServer.InstanceID">InstanceID</link> properties is running.
 It returns <var>True</var> if the server communication endpoint can be
 reached, <var>False</var> otherwise. This function can be called before
 a connection is made.
@@ -1561,7 +1559,9 @@
 <short>Event called when a new message has arrived, and the queue is full</short>
 <descr>
 <var>OnMessageError</var> is called whenever the message queue is full and a
-new message arrives on the server, and <link id="maxaction"/> is <var>ipcmoaError</var>.
+new message arrives on the server, and
+<link id="TIPCServerMsgQueue.MaxAction">MaxAction</link> is
+<var>ipcmoaError</var>.
 </descr>
 <seealso>
 </seealso>
simpleipc.diff (4,643 bytes)   
streamex.diff (4,257 bytes)   
Index: streamex.xml
===================================================================
--- streamex.xml	(revision 1818)
+++ streamex.xml	(working copy)
@@ -327,9 +327,9 @@
 If not enough data is available an <var>EReadError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadDWordLE"/>
-<link id="ReadQWordLE"/>
-<link id="WriteWordLE"/>
+<link id="TStreamHelper.ReadDWordLE"/>
+<link id="TStreamHelper.ReadQWordLE"/>
+<link id="TStreamHelper.WriteWordLE"/>
 </seealso>
 </element>
 
@@ -349,9 +349,9 @@
 raised.
 </errors>
 <seealso>
-<link id="ReadWordLE"/>
-<link id="ReadQWordLE"/>
-<link id="WriteDWordLE"/>
+<link id="TStreamHelper.ReadWordLE"/>
+<link id="TStreamHelper.ReadQWordLE"/>
+<link id="TStreamHelper.WriteDWordLE"/>
 </seealso>
 </element>
 
@@ -372,9 +372,9 @@
 raised.
 </errors>
 <seealso>
-<link id="ReadWordLE"/>
-<link id="ReadDWordLE"/>
-<link id="WriteQWordLE"/>
+<link id="TStreamHelper.ReadWordLE"/>
+<link id="TStreamHelper.ReadDWordLE"/>
+<link id="TStreamHelper.WriteQWordLE"/>
 </seealso>
 </element>
 
@@ -393,9 +393,9 @@
 If not all data (2 bytes) can be written, an <var>EWriteError</var> exception is raised.  
 </errors>
 <seealso>
-<link id="ReadWordLE"/>  
-<link id="WriteDWordLE"/> 
-<link id="WriteQWordLE"/>
+<link id="TStreamHelper.ReadWordLE"/>
+<link id="TStreamHelper.WriteDWordLE"/>
+<link id="TStreamHelper.WriteQWordLE"/>
 </seealso>
 </element>
 
@@ -414,9 +414,9 @@
 If not all data (4 bytes) can be written, an <var>EWriteError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadDWordLE"/>
-<link id="WriteWordLE"/>
-<link id="WriteQWordLE"/>
+<link id="TStreamHelper.ReadDWordLE"/>
+<link id="TStreamHelper.WriteWordLE"/>
+<link id="TStreamHelper.WriteQWordLE"/>
 </seealso>
 </element>
 
@@ -435,9 +435,9 @@
 If not all data (8 bytes) can be written, an <var>EWriteError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadQWordLE"/>
-<link id="WriteDWordLE"/>
-<link id="WriteWordLE"/>
+<link id="TStreamHelper.ReadQWordLE"/>
+<link id="TStreamHelper.WriteDWordLE"/>
+<link id="TStreamHelper.WriteWordLE"/>
 </seealso>
 </element>
 
@@ -457,9 +457,9 @@
 If not enough data is available an <var>EReadError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadDWordBE"/>
-<link id="ReadQWordBE"/>
-<link id="WriteWordBE"/>
+<link id="TStreamHelper.ReadDWordBE"/>
+<link id="TStreamHelper.ReadQWordBE"/>
+<link id="TStreamHelper.WriteWordBE"/>
 </seealso>
 </element>
 
@@ -478,9 +478,9 @@
 If not enough data is available an <var>EReadError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadWordBE"/>
-<link id="ReadQWordBE"/>
-<link id="WriteDWordBE"/>
+<link id="TStreamHelper.ReadWordBE"/>
+<link id="TStreamHelper.ReadQWordBE"/>
+<link id="TStreamHelper.WriteDWordBE"/>
 </seealso>
 </element>
 
@@ -499,9 +499,9 @@
 If not enough data is available an <var>EReadError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadWordBE"/>
-<link id="ReadDWordBE"/>
-<link id="WriteQWordBE"/>
+<link id="TStreamHelper.ReadWordBE"/>
+<link id="TStreamHelper.ReadDWordBE"/>
+<link id="TStreamHelper.WriteQWordBE"/>
 </seealso>
 </element>
 
@@ -520,9 +520,9 @@
 If not all data (2 bytes) can be written, an <var>EWriteError</var> exception is raised.  
 </errors>
 <seealso>
-<link id="ReadWordBE"/>  
-<link id="WriteDWordBE"/> 
-<link id="WriteQWordBE"/>
+<link id="TStreamHelper.ReadWordBE"/>
+<link id="TStreamHelper.WriteDWordBE"/>
+<link id="TStreamHelper.WriteQWordBE"/>
 </seealso>
 </element>
 
@@ -541,9 +541,9 @@
 If not all data (4 bytes) can be written, an <var>EWriteError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadDWordBE"/>
-<link id="WriteWordBE"/>
-<link id="WriteQWordBE"/>
+<link id="TStreamHelper.ReadDWordBE"/>
+<link id="TStreamHelper.WriteWordBE"/>
+<link id="TStreamHelper.WriteQWordBE"/>
 </seealso>
 </element>
 
@@ -562,9 +562,9 @@
 If not all data (8 bytes) can be written, an <var>EWriteError</var> exception is raised.
 </errors>
 <seealso>
-<link id="ReadQWordBE"/>
-<link id="WriteDWordBE"/>
-<link id="WriteWordBE"/>
+<link id="TStreamHelper.ReadQWordBE"/>
+<link id="TStreamHelper.WriteDWordBE"/>
+<link id="TStreamHelper.WriteWordBE"/>
 </seealso>
 </element>
 
streamex.diff (4,257 bytes)   
uriparser.diff (1,416 bytes)   
Index: uriparser.xml
===================================================================
--- uriparser.xml	(revision 1818)
+++ uriparser.xml	(working copy)
@@ -132,15 +132,18 @@
 </seealso>
 </element>
 
-<!-- function result Visibility: default -->
 <element name="ParseURI.Result">
-<short>Record with the URI split out in parts.</short>
+<short>Record type with the component values for the URI</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="ParseURI.URI">
-<short>URI to decode</short>
+<short>String with the URI to parse in the routine</short>
 </element>
+<element name="ParseURI.Decode">
+<short>
+Indicates if encoded (escaped) values in the string are decoded in the
+routine. Default is True.
+</short>
+</element>
 
 <!-- argument Visibility: default -->
 <element name="ParseURI.DefaultProtocol">
@@ -241,16 +244,17 @@
 <link id="URIToFilename"/>
 </seealso>
 </element>
-
-<!-- function result Visibility: default -->
 <element name="FilenameToURI.Result">
 <short>file: protocol URI</short>
 </element>
-
-<!-- argument Visibility: default -->
 <element name="FilenameToURI.Filename">
 <short>Filename to construct URI from</short>
 </element>
+<element name="FilenameToURI.Encode">
+<short>
+True if invalid Path characters in FileName are encoded (escaped) in the URI
+</short>
+</element>
 
 <!-- function Visibility: default -->
 <element name="IsAbsoluteURI">
uriparser.diff (1,416 bytes)   
zipper.diff (59,996 bytes)   
Index: zipper.xml
===================================================================
--- zipper.xml	(revision 1818)
+++ zipper.xml	(working copy)
@@ -4,15 +4,33 @@
     <module name="zipper">
       <short>Unit implementing zip/unzip compression/decompression functionality</short>
       <descr>
-        <file>zipper</file> implements zip compression/decompression compatible with the popular .ZIP format. The zip file format is documented at 
+        <p>
+          <file>zipper</file> implements zip compression/decompression compatible with the popular .ZIP format. The zip file format is documented at:
+        </p>
+        <p>
+           <url href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">
+             http://www.pkware.com/documents/casestudies/APPNOTE.TXT</url>.
+        </p>
+         <p>
+           The Pascal conversion of the standard zlib library was implemented by Jacques Nomssi Nzali. It is used in the FCL to implement the <var>TCompressionStream</var> class.
+         </p>
+      </descr>
         
-        <url href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">http://www.pkware.com/documents/casestudies/APPNOTE.TXT</url>. The Pascal conversion of the standard zlib library was implemented by Jacques Nomssi Nzali. It is used in the FCL to implement the 
+      <!-- unresolved references -->
+      <element name="BaseUnix"/>
+      <element name="SysUtils"/>
+      <element name="Classes"/>
+      <element name="ZStream"/>
         
-        <link name="TCompressionStream"/> class.
-</descr>
       <element name="END_OF_CENTRAL_DIR_SIGNATURE">
         <short>Marker specifying end of directory within zip file</short>
       </element>
+      <element name="ZIP64_END_OF_CENTRAL_DIR_SIGNATURE">
+        <short>Marker specifying end of the directory within a 64-bit zip file</short>
+      </element>
+      <element name="ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE">
+        <short/>
+      </element>
       <element name="LOCAL_FILE_HEADER_SIGNATURE">
         <short>Marker specifying a file entry within the zip file</short>
         <descr>Denotes beginning of a file header within the zip file. A file header follows this marker, followed by the file data proper.</descr>
@@ -22,6 +40,91 @@
         <descr>Denotes beginning of a file entry inside the zip directory. A file header follows this marker.
 </descr>
       </element>
+      <element name="ZIP64_HEADER_ID">
+        <short/>
+      </element>
+      <element name="INFOZIP_UNICODE_PATH_ID">
+        <short/>
+      </element>
+      <element name="EFS_LANGUAGE_ENCODING_FLAG">
+        <short>
+          Language encoding flag (EFS). When set the file name  and comment fields must use UTF-8 encoding.
+        </short>
+      </element>
+
+      <element name="OS_FAT">
+        <short>MS-DOS and OS/2 (FAT/VFAT/FAT32)</short>
+      </element>
+      <element name="OS_UNIX">
+        <short>UNIX-like platforms</short>
+      </element>
+      <element name="OS_OS2">
+        <short>OS/2 HPFS</short>
+      </element>
+      <element name="OS_NTFS">
+        <short>NTFS</short>
+      </element>
+      <element name="OS_VFAT">
+        <short>VFAT</short>
+      </element>
+      <element name="OS_OSX">
+        <short>Mac OSX</short>
+      </element>
+      <element name="UNIX_MASK">
+        <short/>
+      </element>
+      <element name="UNIX_FIFO">
+        <short/>
+      </element>
+      <element name="UNIX_CHAR">
+        <short/>
+      </element>
+      <element name="UNIX_DIR">
+        <short/>
+      </element>
+      <element name="UNIX_BLK">
+        <short/>
+      </element>
+      <element name="UNIX_FILE">
+        <short/>
+      </element>
+      <element name="UNIX_LINK">
+        <short/>
+      </element>
+      <element name="UNIX_SOCK">
+        <short/>
+      </element>
+      <element name="UNIX_RUSR">
+        <short/>
+      </element>
+      <element name="UNIX_WUSR">
+        <short/>
+      </element>
+      <element name="UNIX_XUSR">
+        <short/>
+      </element>
+      <element name="UNIX_RGRP">
+        <short/>
+      </element>
+      <element name="UNIX_WGRP">
+        <short/>
+      </element>
+      <element name="UNIX_XGRP">
+        <short/>
+      </element>
+      <element name="UNIX_ROTH">
+        <short/>
+      </element>
+      <element name="UNIX_WOTH">
+        <short/>
+      </element>
+      <element name="UNIX_XOTH">
+        <short/>
+      </element>
+      <element name="UNIX_DEFAULT ">
+        <short/>
+      </element>
+
       <element name="Local_File_Header_Type">
         <short>Record structure containing local file header</short>
       </element>
@@ -33,8 +136,9 @@
       </element>
       <element name="Local_File_Header_Type.Bit_Flag">
         <short>General purpose bit flag</short>
-        <seealso>Please see zip format documentation for details.
-</seealso>
+        <descr>
+          Please see zip format documentation for details.
+        </descr>
       </element>
       <element name="Local_File_Header_Type.Compress_Method">
         <short>Compression method</short>
@@ -61,13 +165,90 @@
       </element>
       <element name="Local_File_Header_Type.Extra_Field_Length">
         <short>Extra field length</short>
-        <descr>Length of extra field in local file header. An extra field contains program-specific information and should be ignored if the extra field is not supported.
+        <descr>
+          Length of extra field in local file header. An extra field contains program-specific information and should be ignored if the extra field is not supported.
 </descr>
       </element>
+
+      <element name="Extensible_Data_Field_Header_Type">
+        <short/>
+        <descr>
+          Beginning of extra field. Occurs after the local file header and after the central directory header.
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="Extensible_Data_Field_Header_Type.Header_ID">
+        <short/>
+        <descr>
+          <p>
+            $0001 (ZIP64_HEADER_ID) Zip64 extended information extra field.
+            $0009 OS/2: extended attributes.
+            $000a NTFS: (Win32 really).
+            $000d UNIX: uid, gid etc.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="Extensible_Data_Field_Header_Type.Data_Size">
+        <short/>
+        <descr>
+          <p>
+            Size of following field data.
+            Field data should follow the extensible header type information.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="Zip64_Extended_Info_Field_Type ">
+        <short/>
+        <descr>
+          <p>
+            Packed Record occurs after Extensible_Data_Field_Header_Type.
+            Overrides the Local and Central Directory data.
+            Stored in extra field.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="Zip64_Extended_Info_Field_Type.Original_Size">
+        <short/>
+        <descr>
+          Uncompressed file size.
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="Zip64_Extended_Info_Field_Type.Compressed_Size">
+        <short/>
+        <descr>
+          Compressed data size.
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="Zip64_Extended_Info_Field_Type.Relative_Hdr_Offset">
+        <short/>
+        <descr>
+          Offset to the local header record.
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="Zip64_Extended_Info_Field_Type.Disk_Start_Number">
+        <short/>
+        <descr>
+          Disk number where this file starts.
+        </descr>
+        <seealso/>
+      </element>
+
       <element name="Central_File_Header_Type">
         <short>Record structure containing central file header</short>
-        <descr>This record contains the structure for a file header within the central directory.
-</descr>
+        <descr>This record contains the structure for a file header within the central directory.</descr>
       </element>
       <element name="Central_File_Header_Type.Signature">
         <short>Central file header signature</short>
@@ -80,13 +261,13 @@
       </element>
       <element name="Central_File_Header_Type.Bit_Flag">
         <short>Central file general purpose bit flag</short>
-        <descr>General purpose flag for a file entry in the central directory.
+        <descr>
+          General purpose flag for a file entry in the central directory.
 </descr>
       </element>
       <element name="Central_File_Header_Type.Compress_Method">
         <short>Compression method</short>
-        <descr>Method used to compress the file
-</descr>
+        <descr>Method used to compress the file</descr>
       </element>
       <element name="Central_File_Header_Type.Last_Mod_Time">
         <short>File last modification time</short>
@@ -108,13 +289,11 @@
       </element>
       <element name="Central_File_Header_Type.Extra_Field_Length">
         <short>Extra field length</short>
-        <descr>Length of extra field (or 0 if none). An extra field contains program-specific information and should be ignored if the extra field is not supported.
-</descr>
+        <descr>Length of extra field (or 0 if none). An extra field contains program-specific information and should be ignored if the extra field is not supported.</descr>
       </element>
       <element name="Central_File_Header_Type.File_Comment_Length">
         <short>File comment length</short>
-        <descr>Length of file comment (or 0 if none).
-</descr>
+        <descr>Length of file comment (or 0 if none).</descr>
       </element>
       <element name="Central_File_Header_Type.Starting_Disk_Num">
         <short>Starting disk number</short>
@@ -128,9 +307,14 @@
       <element name="Central_File_Header_Type.Local_Header_Offset">
         <short>Relative offset of local header</short>
       </element>
+
       <element name="End_of_Central_Dir_Type">
         <short>Record storing end of central directory information</short>
-        <descr>The end of central directory is placed at the end of the zip file. Note that the end of central directory record is distinct from the Zip64 end of central directory record and zip64 end of central directory locator, which precede the end of central directory, if implemented.</descr>
+        <descr>
+        <p>
+            The end of central directory is placed at the end of the zip file. Note that the end of central directory record is distinct from the Zip64 end of central directory record and zip64 end of central directory locator, which precede the end of central directory, if implemented.
+        </p>
+        </descr>
       </element>
       <element name="End_of_Central_Dir_Type.Signature">
         <short>End of central directory signature</short>
@@ -155,14 +339,76 @@
       </element>
       <element name="End_of_Central_Dir_Type.ZipFile_Comment_Length">
         <short>Length of the zip comment field</short>
-        <descr>Denotes the length of the comment for the entire zip file (or 0 if no comment)
+        <descr>
+          Denotes the length of the comment for the entire zip file (or 0 if no comment).
 </descr>
       </element>
+
+      <element name="Zip64_End_of_Central_Dir_type">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Signature">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Record_Size">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Version_Made_By">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Extract_Version_Reqd">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Disk_Number">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Central_Dir_Start_Disk">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Entries_This_Disk">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Total_Entries">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Central_Dir_Size">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_type.Start_Disk_Offset">
+        <short/>
+      </element>
+
+      <element name="Zip64_End_of_Central_Dir_Locator_type">
+        <short/>
+        <descr>
+          Comes after the Zip64_End_of_Central_Dir_type.
+        </descr>
+        <seealso/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_Locator_type.Signature">
+        <short/>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_Locator_type.Zip64_EOCD_Start_Disk">
+        <short>
+          Starting disk number for Zip64 End of Central Directory record.
+        </short>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_Locator_type.Central_Dir_Zip64_EOCD_Offset">
+        <short>Offset of Zip64 End of Central Directory record</short>
+      </element>
+      <element name="Zip64_End_of_Central_Dir_Locator_type.Total_Disks">
+        <short>
+          Total number of disks (contained in zip).
+        </short>
+      </element>
+
       <element name="Crc_32_Tab">
         <short>Table used in calculating CRC-32</short>
-        <descr>Table used in determining CRC-32 values. There are various CRC-32 algorithms in use; please refer to the ZIP file format specifications for details.
-</descr>
+        <descr>Table used in determining CRC-32 values. There are various CRC-32 algorithms in use; please refer to the ZIP file format specifications for details.</descr>
       </element>
+
       <element name="TProgressEvent">
         <short>Event procedure for capturing compression/decompression progress</short>
       </element>
@@ -172,6 +418,37 @@
       <element name="TProgressEvent.Pct">
         <short>Percentage completed</short>
       </element>
+
+      <element name="TProgressEventEx">
+        <short>
+          Specifies an event handler signalled to indicate compression/decompression progress
+        </short>
+        <descr>
+          <p>
+            <var>TProgressEventEx</var> is an object procedure which implements an event handler signalled to indicate compression/decompression progress. It is very similar to <var>TProgressEvent</var>, but provides separate values for the cumulative number of bytes handled and the total number of bytes to be processed.
+          </p>
+          <p>
+            TProgressEventEx is the type used to implement the <var>OnProgressEx</var> property in <var>TDeCompressor</var> and <var>TUnZipper</var>.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TDeCompressor.OnProgressEx"/>
+          <link id="TInflater.Decompress"/>
+          <link id="TUnZipper.OnProgressEx"/>
+          <link id="TUnZipper.UnZipAllFiles"/>
+          <link id="TProgressEvent"/>
+        </seealso>
+      </element>
+      <element name="TProgressEventEx.Sender">
+        <short>Object for the event notification</short>
+      </element>
+      <element name="TProgressEventEx.ATotPos">
+        <short>Cumulative number of bytes handled in the caller</short>
+      </element>
+      <element name="TProgressEventEx.ATotSize">
+        <short>Total number of bytes to be processed in the caller</short>
+      </element>
+
       <element name="TOnEndOfFileEvent">
         <short>Event procedure for an end of file (de)compression event</short>
       </element>
@@ -181,6 +458,7 @@
       <element name="TOnEndOfFileEvent.Ratio">
         <short>Ratio of total operation (compression/decompression) that is completed</short>
       </element>
+
       <element name="TOnStartFileEvent">
         <short>Event procedure for a start of file (de)compression event</short>
       </element>
@@ -190,6 +468,7 @@
       <element name="TOnStartFileEvent.AFileName">
         <short>File name of file to be processed</short>
       </element>
+
       <element name="TCompressor">
         <short>Compressor object</short>
         <descr>This object compresses a stream into a compressed zip stream.</descr>
@@ -216,7 +495,7 @@
         <short>Updates running CRC32 value</short>
       </element>
       <element name="TCompressor.Create">
-        <short>Creates a <link name="TCompressor"/> object</short>
+        <short>Creates a <link id="TCompressor"/> object</short>
       </element>
       <element name="TCompressor.Create.AInFile">
         <short>Input file that will be compressed</short>
@@ -236,20 +515,73 @@
       <element name="TCompressor.ZipID.Result">
         <short>Identifier for type of compression</short>
       </element>
+
+      <element name="TCompressor.ZipVersionReqd">
+        <short>ZIP version required in the method</short>
+        <descr>
+          Abstract virtual class function. Must be implemented in a descendent class.
+        </descr>
+        <seealso/>
+      </element>
+      <element name="TCompressor.ZipVersionReqd.Result">
+        <short>Word type with the required ZIP version</short>
+      </element>
+
+      <element name="TCompressor.ZipBitFlag">
+        <short/>
+        <descr>
+          Abstract virtual function. Must be implemented in a descendent class.
+        </descr>
+        <seealso/>
+      </element>
+      <element name="TCompressor.ZipBitFlag.Result">
+        <short/>
+      </element>
+
+      <element name="TCompressor.Terminate">
+        <short>Halts the compressor by setting the Terminated property to True</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TCompressor.BufferSize">
-        <short>Size of buffer used for compression</short>
+        <short>Size of the buffer used for compression</short>
+        <descr>
+          <p>
+            <var>BufferSize</var> is a read-only <var>LongWord</var> property with the size of the buffer used for compression. The property is set to the value passed as an argument to the <var>Create</var> constructor.
+          </p>
+          <p>
+            BufferSize is used in the <var>Compress</var> method (in descendent classes) to allocate a pointer to a memory block with the required size. It also determines  the read size used when processing an input file or stream.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TCompressor.Create"/>
+          <link id="TShrinker.Compress"/>
+          <link id="TDeflater.Compress"/>
+        </seealso>
       </element>
+
       <element name="TCompressor.OnPercent">
-        <short>Reference to OnPercent event handler</short>
+        <short>Threshold percentage which triggers an OnProgress update</short>
       </element>
+
       <element name="TCompressor.OnProgress">
-        <short>Reference to OnProgress event handler</short>
+        <short>
+          Event handler signalled to indicate the completion percentage for the compressor
+        </short>
       </element>
+
       <element name="TCompressor.Crc32Val">
         <short>Running CRC32 value</short>
-        <descr>Running CRC32 value used when writing zip header
-</descr>
+        <descr>Running CRC32 value used when writing zip header.</descr>
       </element>
+
+      <element name="TCompressor.Terminated">
+        <short>Set to True when the Terminate method is called</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TDeCompressor">
         <short>Decompressor object</short>
         <descr>This object decompresses a compressed zip stream.</descr>
@@ -262,8 +594,7 @@
       </element>
       <element name="TDeCompressor.FCrc32Val">
         <short>Running CRC32 value</short>
-        <descr>CRC32 value; used for checking zip file integrity
-</descr>
+        <descr>CRC32 value; used for checking zip file integrity.</descr>
       </element>
       <element name="TDeCompressor.FBufferSize">
         <short>Buffer size</short>
@@ -292,6 +623,13 @@
       <element name="TDeCompressor.DeCompress">
         <short>Decompress zip stream</short>
       </element>
+
+      <element name="TDeCompressor.Terminate">
+        <short>Halts decompression and sets Terminated to True</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TDeCompressor.ZipID">
         <short>Identifier for type of compression</short>
       </element>
@@ -307,35 +645,525 @@
       <element name="TDeCompressor.OnProgress">
         <short>Event handler for OnProgress procedure</short>
       </element>
+
+      <element name="TDeCompressor.OnProgressEx">
+        <short>
+          Event handler signalled to indicate progress using processed and total byte counts
+        </short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TDeCompressor.Crc32Val">
         <short>Running CRC32 value used for verifying zip file integrity</short>
       </element>
+
+      <element name="TDeCompressor.Terminated">
+        <short>Set to True when the Terminate method is called</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TABLESIZE">
+        <short>Size for the code table used in LZW compression</short>
+      </element>
+
+      <element name="FIRSTENTRY">
+        <short/>
+      </element>
+
+      <element name="CodeRec">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="CodeRec.Child">
+        <short/>
+      </element>
+      <element name="CodeRec.Sibling">
+        <short/>
+      </element>
+      <element name="CodeRec.Suffix">
+        <short/>
+      </element>
+
+      <element name="CodeArray">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TablePtr">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="FreeListPtr">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="FreeListArray">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="BufPtr">
+        <short>Implement the output buffer in TShrinker</short>
+        <descr>
+          <p>
+            Alias for the PByte type. Used to implement the output buffer in TShrinker.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
       <element name="TShrinker">
-        <short>Child of <link id="TCompressor">TCompressor</link> that implements the Shrink compression method</short>
+        <short>
+          Child of <link id="TCompressor">TCompressor</link> that implements the Shrink compression method
+        </short>
+        <descr>
+          TShrinker implements the LZW lossless data compression algorithm created by Abraham Lempel, Jacob Ziv, and Terry Welch also known as "shrink" compression.
+        </descr>
       </element>
+
+      <element name="TShrinker.Create">
+        <short>Constructor for the class instance</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TShrinker.Create.AInFile">
+        <short>Stream with the input processed in the class instance</short>
+      </element>
+      <element name="TShrinker.Create.AOutFile">
+        <short>Stream where the compressed values are written</short>
+      </element>
+      <element name="TShrinker.Create.ABufSize">
+        <short>Size of the buffer used to read and process values from the input stream</short>
+      </element>
+
+      <element name="TShrinker.Destroy">
+        <short>Destructor for the class instance</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TShrinker.Compress">
+        <short>Compresses input values using LZW (shrink) compression</short>
+        <descr>
+          <p>
+            Initializes the code table used for LZW compression. Processes buffer-size chunks from the input stream and calls the private Shrink method to generate values written to the output stream.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="TShrinker.ZipID">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TShrinker.ZipID.Result">
+        <short/>
+      </element>
+
+      <element name="TShrinker.ZipVersionReqd">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TShrinker.ZipVersionReqd.Result">
+        <short/>
+      </element>
+
+      <element name="TShrinker.ZipBitFlag">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TShrinker.ZipBitFlag.Result">
+        <short/>
+      </element>
+
       <element name="TDeflater">
         <short>Child of <link id="TCompressor">TCompressor</link> that implements the Deflate compression method</short>
       </element>
+
+      <element name="TDeflater.Create">
+        <short>Constructor for the class instance</short>
+        <descr>
+          <p>
+            <var>Create</var> is the overridden constructor for the class instance, and calls the inherited method on entry. Create sets the default value for the <var>CompressionLevel</var> property to <var>clNone</var>.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TDeflater.CompressionLevel"/>
+          <link id="TCompressor.Create"/>
+        </seealso>
+      </element>
+      <element name="TDeflater.Create.AInFile">
+        <short>Stream with the input values compressed in the class instance</short>
+      </element>
+      <element name="TDeflater.Create.AOutFile">
+        <short>
+          Stream with the output values after compression using the Deflate algorithm
+        </short>
+      </element>
+      <element name="TDeflater.Create.ABufSize">
+        <short>Buffer size used to read and process values from the input stream</short>
+      </element>
+
+      <element name="TDeflater.Compress">
+        <short>Performs compression using the Deflate algorithm</short>
+        <descr>
+          <p>
+            Creates a temporary TCompressionStream instance using the compression level specified in the CompressLevel property. Compress signals the OnProgress event handler (when assigned) when the number of bytes representing the OnPercent threshold are  processed in the method.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="TDeflater.ZipID">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TDeflater.ZipID.Result">
+        <short/>
+      </element>
+
+      <element name="TDeflater.ZipVersionReqd">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TDeflater.ZipVersionReqd.Result">
+        <short/>
+      </element>
+
+      <element name="TDeflater.ZipBitFlag">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TDeflater.ZipBitFlag.Result">
+        <short/>
+      </element>
+
+      <element name="TDeflater.CompressionLevel">
+        <short>Indicates the compression level applied in the Compress method</short>
+        <descr>
+          <p>
+            <var>CompressionLevel</var> is a <var>TCompressionLevel</var> property which Indicates the compression level applied in the <var>Compress</var> method.  Values include:
+          </p>
+          <dl>
+            <dt>clNone</dt>
+            <dd>Do not use compression, just copy data.</dd>
+            <dt>clFastest</dt>
+            <dd>Use the fast (but less) compression. </dd>
+            <dt>clDefault</dt>
+            <dd>Use the default compression.  dd</dd>
+            <dt>clMax</dt>
+            <dd>Use the maximum compression.</dd>
+          </dl>
+        </descr>
+        <seealso>
+          <link id="TDeflater.Compress"/>
+          <link id="#fcl.zstream.TCompressionLevel">TCompressionLevel</link>
+        </seealso>
+      </element>
+
       <element name="TInflater">
         <short>Child of <link id="TDeCompressor">TDeCompressor</link> that implements the Inflate decompression method</short>
       </element>
+
+      <element name="TInflater.Create">
+        <short>Constructor for the class instance</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TInflater.Create.AInFile">
+        <short>Stream with the compressed content processed in the class instance</short>
+      </element>
+      <element name="TInflater.Create.AOutFile">
+        <short>Stream where the de-compressed content is stored</short>
+      </element>
+      <element name="TInflater.Create.ABufSize">
+        <short>Buffer size used to read and process compressed content</short>
+      </element>
+
+      <element name="TInflater.DeCompress">
+        <short>Removes compression applied using the deflate algorithm</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TInflater.ZipID">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TInflater.ZipID.Result">
+        <short/>
+      </element>
+
+      <element name="TZipFileEntry">
+        <short>Represents a file or directory added to a .ZIP file</short>
+        <descr>
+          <p>
+            <var>TZipFileEntry</var> is a <var>TCollectionItem</var> descendant which represents a file or directory added to a .ZIP file archive. TZipFileEntry is the type used for items in the <var>Entries</var> property in the <var>TZipFileEntries</var> collection.
+          </p>
+          <p>
+            TZipFileEntry provides properties with metadata for the file or directory, including:
+          </p>
+          <dl>
+            <dt>ArchiveFileName</dt>
+            <dd>Name of the file or directory in the .ZIP archive.</dd>
+            <dt>UTF8ArchiveFileName</dt>
+            <dd>Name of the file or directory in the .ZIP archive using UTF-8 encoding.</dd>
+            <dt>DiskFileName</dt>
+            <dd>Name of the file or directory on the local file system.</dd>
+            <dt>UTF8DiskFileName</dt>
+            <dd>Name of the file or directory using UTF-8 encoding.</dd>
+            <dt>Size</dt>
+            <dd>Size of the compressed file or directory in the .ZIP archive.</dd>
+            <dt>DateTime</dt>
+            <dd>The timestamp for file or directory in the .ZIP archive.</dd>
+            <dt>OS</dt>
+            <dd>
+              Indicates the operating system device type / file system where the file or directory originated.
+            </dd>
+            <dt>Attributes</dt>
+            <dd>File attributes for the entry.</dd>
+            <dt>CompressionLevel</dt>
+            <dd>Compression level applied to the content in the .ZIP archive.</dd>
+            <dt>Stream</dt>
+            <dd>TStream instance with the content for the entry.</dd>
+          </dl>
+          <p>
+            Use <var>IsDirectory</var> to determine if the entry represents a directory.
+          </p>
+          <p>
+            Use <var>IsLink</var> to determine if the entry is a symbolic link on the local file system.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry.Create">
+        <short>Constructor for the class instance</short>
+        <descr>
+          <p>
+            <var>Create</var> is the overridden constructor for the class instance. Create sets the default values for properties, including:
+          </p>
+          <dl>
+            <dt>DateTime</dt>
+            <dd>Sets to the current date and time for the local computer.</dd>
+            <dt>OS</dt>
+            <dd>Set to OS_UNIX for UNIX-like environments, or OS_VFAT for all others.</dd>
+            <dt>Attributes</dt>
+            <dd>Set to 0 (no attributes).</dd>
+            <dt>CompressionLevel</dt>
+            <dd>Set to clDefault.</dd>
+          </dl>
+          <p>
+            Create calls the inherited constructor prior to exiting from the method.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+      <element name="TZipFileEntry.Create.ACollection">
+        <short>Collection which owns the class instance</short>
+      </element>
+
+      <element name="TZipFileEntry.IsDirectory">
+        <short>True if the entry is a directory on the local file system</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TZipFileEntry.IsDirectory.Result">
+        <short>True if the entry is a directory on the local file system</short>
+      </element>
+
+      <element name="TZipFileEntry.IsLink">
+        <short>True if the directory is a symbolic link on the local file system</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TZipFileEntry.IsLink.Result">
+        <short>True if the directory is a symbolic link on the local file system</short>
+      </element>
+
+      <element name="TZipFileEntry.Assign">
+        <short>Copies property values from the specified persistent object</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TZipFileEntry.Assign.Source">
+        <short>Persistent object with the values copied in the method</short>
+      </element>
+
+      <element name="TZipFileEntry.Stream">
+        <short>Stream with the content for the entry</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry.ArchiveFileName">
+        <short>Name of the file or directory in the .ZIP archive</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry. UTF8ArchiveFileName">
+        <short>Name of the file or directory in the .ZIP archive using UTF-8 encoding</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry.DiskFileName">
+        <short>Name of the file or directory on the local file system</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry.UTF8DiskFileName">
+        <short>
+          Name of the file or directory on the local file system using UTF-8 encoding
+        </short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry.Size">
+        <short>Size of the compressed content for the file or directory</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry.DateTime">
+        <short>Timestamp for the file or directory in the .ZIP archive</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TZipFileEntry.OS">
         <short>Indication of operating system/file system</short>
         <descr>Currently either OS_UNIX (if UNIX is defined) or OS_FAT.</descr>
       </element>
+
+      <element name="TZipFileEntry.Attributes">
+        <short>File attributes for the file or directory</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipFileEntry.CompressionLevel">
+        <short>Compression level applied to the content stored in the .ZIP archive</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TZipFileEntries">
-        <short>Files in the zip archive</short>
+        <short>
+          Collection used to store information about files and directories in the .zip archive
+        </short>
+        <descr>
+          <p>
+            <var>TZipFileEntries</var> is a <var>TCollection</var> descendant which provides support for using <var>TZipFileEntry</var> instances as the Items in the collection. It provides an indexed <var>Entries</var> property used to access the TZipFileEntry instances in the collection, and serves as the default property for enumerator access.
+          </p>
+          <p>
+            TZipFileEntries is the type used to implement the <var>Entries</var> property in <var>TZipper</var>.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TZipFileEntries.Entries"/>
+          <link id="TZipFileEntry"/>
+          <link id="TZipper.Entries"/>
+          <link id="TUnZipper.Entries"/>
+          <link id="TFullZipFileEntries"/>
+        </seealso>
       </element>
+
       <element name="TZipFileEntries.AddFileEntry">
         <short>Adds file to zip directory</short>
-        <descr>Adds a file to the list of files that will be written out in the zip file.</descr>
+        <descr>
+          <p>
+            <var>AddFileEntry</var> adds a file or directory to the list of entries that will be written out in the .zip file. AddFileEntry calls the <var>Add</var> method to create the new collection item, and casts it the <var>TZipFileEntry</var> type used in <var>TZipFileEntries</var>.
+          </p>
+          <p>
+            Values passed as arguments to the overloaded variants are stored in the corresponding properties in the TZipFileEntry instance.
+          </p>
+          <p>
+            The return value is the TZipFileEntry instance added to the collection.
+          </p>
+        </descr>
       </element>
+      <element name="TZipFileEntries.AddFileEntry.Result">
+        <short>Collection item added in the method</short>
+      </element>
       <element name="TZipFileEntries.AddFileEntry.AStream">
-        <short>Adds a zip file entry from a stream</short>
+        <short>Stream with the content for the zip file entry</short>
       </element>
+      <element name="TZipFileEntries.AddFileEntry.ADiskFileName">
+        <short>Name of the file or directory on the local file system</short>
+      </element>
+      <element name="TZipFileEntries.AddFileEntry.AArchiveFileName">
+        <short>Name used for the file or directory in the .ZIP archive</short>
+      </element>
+
+      <element name="TZipFileEntries.AddFileEntries">
+        <short>Adds TZipFileEntry instances in the collection for the file names in List</short>
+        <descr>
+          <p>
+            <var>AddFileEntries</var> is a method used to add a list of files names to the collection. <var>List</var> contains the file names added in the method. AddFileEntries iterates over the string values in List, and calls the <var>AddFileEntry</var> method to create new items in the collection.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TZipFileEntries.AddFileEntry"/>
+        </seealso>
+      </element>
+      <element name="TZipFileEntries.AddFileEntries.List">
+        <short>TStrings instance with the list of file names added to the collection</short>
+      </element>
+
       <element name="TZipFileEntries.Entries">
         <short>Entries (files) in the zip archive</short>
+        <descr>
+          <p>
+            <var>Entries</var> is an indexed <var>TZipFileEntry</var> property which provides indexed access to the <var>Items</var> in the collection by their ordinal position. The item values are cast to the <var>TZipFileEntry</var> type used in <var>TZipFileEntries</var>.
+          </p>
+          <p>
+            Entries is the default property in TZipFileEntries, and allows an enumerator to be used to access the TZipFileEntry values in the collection.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TZipFileEntry"/>
+          <link id="#rtl.classes.TCollection.Items">TCollection.Items</link>
+        </seealso>
       </element>
+
+      <element name="TZipper">
+        <short>Creates a .ZIP archive file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.Create">
+        <short>Constructor for the class instance</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.Destroy">
+        <short>Destructor for the class instance</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TZipper.ZipAllFiles">
         <short>Zips all files in object and writes zip to disk</short>
         <descr>
@@ -359,11 +1187,306 @@
 </code>
         </descr>
       </element>
+
+      <element name="TZipper.SaveToFile">
+        <short/>
+        <descr>
+          Saves a .ZIP file with a new name.
+        </descr>
+        <seealso/>
+      </element>
+      <element name="TZipper.SaveToFile.AFileName">
+        <short/>
+      </element>
+
+      <element name="TZipper.SaveToStream">
+        <short/>
+        <descr>
+        </descr>
+        <seealso/>
+      </element>
+      <element name="TZipper.SaveToStream.AStream">
+        <short/>
+      </element>
+
+      <element name="TZipper.ZipFile">
+        <short/>
+        <descr>
+           Zips the specified files into a zip with the name in AFileName.
+        </descr>
+        <seealso/>
+      </element>
+      <element name="TZipper.ZipFile.aFileToBeZipped">
+        <short/>
+      </element>
+      <element name="TZipper.ZipFile.AZipFileName">
+        <short/>
+      </element>
+
+      <element name="TZipper.ZipFiles">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TZipper.ZipFiles.AZipFileName">
+        <short/>
+      </element>
+      <element name="TZipper.ZipFiles.FileList">
+        <short/>
+      </element>
+      <element name="TZipper.ZipFiles.aFileList">
+        <short/>
+      </element>
+      <element name="TZipper.ZipFiles.Entries">
+        <short/>
+      </element>
+      <element name="TZipper.ZipFiles.Entries">
+        <short/>
+      </element>
+
+      <element name="TZipper.Zip">
+        <short>
+          Convenience method used to create a .zip file with the given name containing the  specified file(s)
+        </short>
+        <descr>
+          <p>
+            Zip is a class procedure used to create a .zip file with the name specified in AZipFileName. Overloaded variants are provided that allow one or more file names to be specified using the <var>AFileToBeZipped</var> or <var>AFileList</var> arguments.
+          </p>
+          <p>
+            For example:
+          </p>
+<code>
+var
+  SZip, SFile: RawByteString;
+
+  SZip := '/usr/tmp/docbook5-catalog.zip';
+  SFile := '/usr/share/xml/docbook/schema/sch/5.0/catalog.xml'
+
+  TZipper.Zip(SZip, SFile);
+  </code>
+        </descr>
+        <seealso>
+          <link id="TUnzipper.Unzip"/>
+        </seealso>
+      </element>
+      <element name="TZipper.Zip.AZipFileName">
+        <short>Name for the .zip file created in the method</short>
+      </element>
+      <element name="TZipper.Zip.AFileToBeZipped">
+        <short>Name of the file added to the .zip file</short>
+      </element>
+      <element name="TZipper.Zip.AFileList">
+        <short>Contains file names added to the .zip file</short>
+      </element>
+
+      <element name="TZipper.Clear">
+        <short>Removes all values in the Entries and Files properties</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.Terminate">
+        <short>
+          Halts an assigned compressor in the class instance, and sets Terminated to True
+        </short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.BufferSize">
+        <short>Buffer size used when reading and processing files</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.OnPercent">
+        <short>
+          Threshold percentage which triggers progress notifications when processing files
+        </short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.OnProgress">
+        <short>Event handler signalled to show a percent complete progress notifications</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.OnStartFile">
+        <short>Event handler signalled when compression for a file is started</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.OnEndFile">
+        <short>Event handler signalled when compression for a file has been completed</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.FileName">
+        <short>
+          Name of the .ZIP archive file where the compressed files and directories are stored
+        </short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.FileComment">
+        <short>Comment stored in the .ZIP archive file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.Files">
+        <short>Provides access to the list of files and directories in the archive</short>
+        <descr>
+          <p>
+            Deprecated. Use the Entries property to call its <var>AddFileEntry</var> or
+            <var>AddFileEntries</var> methods instead.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TZipper.Entries"/>
+          <link id="TZipperFileEntries.AddFileEntry"/>
+          <link id="TZipperFileEntries.AddFileEntries"/>
+        </seealso>
+      </element>
+
+      <element name="TZipper.InMemSize">
+        <short>Total memory used for the compressed content in the .ZIP file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.Entries">
+        <short>Collection with the TZipFileEntry instances in the .ZIP archive</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.Terminated">
+        <short>True if the Terminate method has been called</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TZipper.UseLanguageEncoding">
+        <short/>
+        <descr>
+           EFS/language encoding using UTF-8.
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="TFullZipFileEntry">
+        <short/>
+        <descr>
+          <p>
+            TFullZipFileEntry is a TZipFileEntry descendant which provides additional information about files in a .ZIP archive. TFullZipFileEntry extends the ancestor class to include properties like:
+          </p>
+          <dl>
+            <dt>BitFlags</dt>
+            <dd>General purpose bit flag from the Local Header in the .ZIP archive file.</dd>
+            <dt>CompressMethod</dt>
+            <dd>Compression method for the file.</dd>
+            <dt>CompressedSize</dt>
+            <dd>Size after applying the compression method and level.</dd>
+            <dt>CRC32</dt>
+            <dd>32-bit CRC value for the file.</dd>
+          </dl>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="TFullZipFileEntry.BitFlags">
+        <short>General purpose bit flag from the Local Header in the .ZIP archive file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TFullZipFileEntry.CompressMethod">
+        <short>Compression method for the file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TFullZipFileEntry.CompressedSize">
+        <short>Size after applying the compression method and level</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TFullZipFileEntry.CRC32">
+        <short>32-bit CRC value for the file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TOnCustomStreamEvent">
+        <short>Specifies an event handler signalled for stream actions in TUnZipper</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TOnCustomStreamEvent.Sender">
+        <short>TUnZipper object instance for the notification</short>
+      </element>
+      <element name="TOnCustomStreamEvent.AStream">
+        <short>TStream instance for the notification</short>
+      </element>
+      <element name="TOnCustomStreamEvent.AItem">
+        <short>File entry for the notification</short>
+      </element>
+
+      <element name="TCustomInputStreamEvent">
+        <short>Specifies an event handler signalled for actions to an input stream</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TCustomInputStreamEvent.Sender">
+        <short>TUnZipper object instance for the notification</short>
+      </element>
+      <element name="TCustomInputStreamEvent.AStream">
+        <short>TStream instance for the notification</short>
+      </element>
+
+      <element name="TFullZipFileEntries">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TFullZipFileEntries.FullEntries">
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper">
+        <short>Extracts and decompresses files and directories in a .ZIP archive file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.Create">
+        <short>Constructor for the class instance</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.Destroy">
+        <short>Destructor for the class instance</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TUnZipper.UnZipAllFiles">
         <short>Unzips all files in a zip file, writing them to disk</short>
         <descr>
-          <p>This procedure unzips all files in a <link name="TZipper"/> object and writes the unzipped files to disk.</p>
+          <p>This procedure unzips all files in a <link id="TZipper"/> object and writes the unzipped files to disk.</p>
           <p>The example below unzips the files into "C:\windows\temp":</p>
+
           <code>uses
   Zipper;
 var
@@ -381,43 +1504,235 @@
 </code>
         </descr>
       </element>
+      <element name="TUnZipper.UnZipAllFiles.AZipFileName">
+        <short>Name of the .zip file unzipped in the method</short>
+      </element>
+
+      <element name="TUnZipper.UnZipFile">
+        <short>Unzips a single file found in the specified .ZIP archive</short>
+        <descr/>
+        <seealso/>
+      </element>
+      <element name="TUnZipper.UnZipFile.AZipFileName">
+        <short>Name of the .ZIP archive file</short>
+      </element>
+      <element name="TUnZipper.UnZipFile.aExtractFileName">
+        <short>Name of the file to unzip in the method</short>
+      </element>
+
       <element name="TUnZipper.UnZipFiles">
-        <short>Unzips specified files</short>
+        <short>Unzips the specified files in a .ZIP archive file</short>
+        <descr/>
+        <seealso/>
       </element>
-      <element name="TUnZipper.UnZipFiles.AFileName">
-        <short>Name of zip file to unzip</short>
+      <element name="TUnZipper.UnZipFiles.AZipFileName">
+        <short>Name of the .ZIP file to unzip</short>
       </element>
       <element name="TUnZipper.UnZipFiles.FileList">
-        <short>Stringlist containing list of one or multiple files to be unzipped</short>
+        <short>Stringlist containing one or more files to be unzipped</short>
+        <short/>
       </element>
-      <element name="TUnZipper.UnZipAllFiles.AFileName">
-        <short>Name of zip file to unzip</short>
+      <element name="TUnZipper.UnZipFiles.aFileList">
+        <short>Stringlist containing one or more files to be unzipped</short>
       </element>
+
+      <element name="TUnZipper.Unzip">
+        <short>Unzips the specified .ZIP archive file</short>
+        <descr>
+          <p>
+            <var>UnZip</var> is an overloaded class method used to unzip one or more files in the specified .ZIP archive file. Overloaded variants are provided which allow the file or files to be specified using <var>RawByteString</var>, <var>Array</var>, or <var>TStrings</var> data types.
+          </p>
+          <p>
+            UnZip is a convenience method, and does not require an instance of the class. It uses the default options to perform the unzip operation.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+      <element name="TUnZipper.Unzip.AZipFileName">
+        <short>Name of the .ZIP archive file</short>
+      </element>
+      <element name="TUnZipper.Unzip.aExtractFileName">
+        <short>Name of a file or directory entry to extract in the method</short>
+      </element>
+      <element name="TUnZipper.Unzip.aFileList">
+        <short>List of file names to unzip in the method</short>
+      </element>
+
       <element name="TUnZipper.Clear">
         <short>Removes all entries and files from object</short>
+        <descr/>
+        <seealso/>
       </element>
+
       <element name="TUnZipper.Examine">
         <short>Opens zip file and reads the directory entries (list of zipped files)</short>
+        <descr/>
+        <seealso/>
       </element>
+
+      <element name="TUnZipper.Terminate">
+        <short>Sets the value in Terminated to True</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.BufferSize">
+        <short>Size of the buffer used to read and decompress entries in the .ZIP file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.OnOpenInputStream">
+        <short>Event handler signalled when the input stream for the .ZIP file is opened</short>
+        <short/>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.OnCloseInputStream">
+        <short>Event handler signalled when the input stream for the .ZIP file is closed</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.OnCreateStream">
+        <short>Event handler signalled when an output stream is created</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.OnDoneStream">
+        <short>Event handler signalled when an output stream is closed</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.OnPercent">
+        <short>Threshold percentage which triggers a progress notification</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.OnProgress">
+        <short>Progress event handler used when decompressing files</short>
+        <descr/>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.OnProgressEx">
+        <short>Extended progress event handler used when decompressing files</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TUnZipper.OnStartFile">
         <short>Callback procedure that will be called before unzipping a file</short>
+        <descr/>
+        <seealso/>
       </element>
+
       <element name="TUnZipper.OnEndFile">
         <short>Callback procedure that will be called after unzipping a file</short>
+        <descr/>
+        <seealso/>
       </element>
+
       <element name="TUnZipper.FileName">
-        <short>Zip file to be unzipped/processed</short>
+        <short>Path and file name for the .zip file to be unzipped / processed</short>
+        <descr/>
+        <seealso/>
       </element>
+
       <element name="TUnZipper.OutputPath">
         <short>Path where archive files will be unzipped</short>
+        <descr/>
+        <seealso/>
       </element>
+
+      <element name="TUnZipper.FileComment">
+        <short>Comment stored in the .ZIP archive file</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="TUnZipper.Files">
-        <short>Files in zip file (deprecated)</short>
-        <descr>List of files that should be compressed in the zip file. Note: deprecated. Use Entries.AddFileEntry(FileName) or Entries.AddFileEntries(List) instead.</descr>
+        <short>Files in the zip file (deprecated)</short>
+        <descr>List of files that should be compressed in the zip file. Deprecated. Use Entries.AddFileEntry(FileName) or Entries.AddFileEntries(List) instead.</descr>
+        <seealso/>
       </element>
+
+      <element name="TUnZipper.Entries">
+        <short>
+          Collection with TFullZipFileEntry instances for files and directories stored in the .ZIP archive
+        </short>
+        <descr>
+          <p>
+            <var>Entries</var> is a read-only <var>TFullZipFileEntries</var> property, and the collection representing the items stored in the .ZIP archive file. Entries contains <var>TFullZipFileEntry</var> instances which represent the files or directories present in the .ZIP file.
+          </p>
+          <p>
+            Values in the Entries collection are created and stored when file directory in the .ZIP file is read. This can occur when the <var>Examine</var> method is called, or when extracting one or more files using the <var>UnZipAllFiles</var> / <var>UnZipFiles</var> / <var>UnZipFile</var> methods.
+          </p>
+          <p>
+            The items in the Entries collection are removed when the <var>Clear</var> method is called.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TUnZipper.Examine"/>
+          <link id="TUnZipper.Clear"/>
+          <link id="TUnZipper.UnZipAllFiles"/>
+          <link id="TUnZipper.UnZipFiles"/>
+          <link id="TUnZipper.UnZipFile"/>
+          <link id="TUnZipper.UnZip"/>
+          <link id="TFullZipFileEntries"/>
+          <link id="TFullZipFileEntry"/>
+        </seealso>
+      </element>
+
+      <element name="TUnZipper.UseUTF8">
+        <short>
+          Indicates that the UTF-8-encoded names are used when locating and unzipping entries in the archive
+        </short>
+        <descr>
+          <p>
+            <var>UseUTF8</var> is a <var>Boolean</var> property which indicates if UTF-8-encoded names are used when locating and unzipping items stored in the .ZIP archive.
+          </p>
+          <p>
+            Each <var>TZipFileEntry</var> instance stored in the <var>Entries</var> collection has both UTF-8-encoded and RawByteString (same as AnsiString with no code page) variants of file or directory names. Set UseUTF8 to <b>True</b> to use the UTF-8-encoded version. The default value is <b>False</b>, and causes the <var>RawByteString</var> version to be used.
+          </p>
+          <p>
+            UseUTF8 is used when methods like <var>UnZipAllFiles</var>, <var>UnZipFiles</var>, and <var>UnZipFile</var> are called.
+          </p>
+        </descr>
+        <seealso>
+          <link id="TUnZipper.Entries"/>
+          <link id="TUnZipper.UnZipAllFiles"/>
+          <link id="TUnZipper.UnZipFiles"/>
+          <link id="TUnZipper.UnZipFile"/>
+          <link id="TZipFileEntries"/>
+          <link id="TZipFileEntry"/>
+        </seealso>
+      </element>
+
+      <element name="TUnZipper.Flat">
+        <short>Extracts files to a single directory</short>
+        <descr>
+          <p>
+            Enables flat extraction; like -j (also called junk paths) when using the unzip command-line utility. Directory structure(s) in the .zip file are not recreated, and files are extracted to the same directory.
+          </p>
+        </descr>
+        <seealso/>
+      </element>
+
+      <element name="TUnZipper.Terminated">
+        <short>True if the Terminate method has been called</short>
+        <descr/>
+        <seealso/>
+      </element>
+
       <element name="EZipError">
-        <short>Exception specific to the zipper unit</short>
+        <short>Exception raised for errors in TZipper and TUnZipper</short>
       </element>
+
     </module>
   </package>
 </fpdoc-descriptions>
zipper.diff (59,996 bytes)   
zstream.diff (3,189 bytes)   
Index: zstream.xml
===================================================================
--- zstream.xml	(revision 1818)
+++ zstream.xml	(working copy)
@@ -205,37 +205,6 @@
 </element>
 
 <!-- function Visibility: public -->
-<element name="TCompressionStream.Read">
-<short>Overridden to raise an exception.</short>
-<descr>
-The <var>Read</var> method of <var>TStream</var> is overridden, and always
-raises an exception, because <var>TCompressionStream</var> is write-only.
-</descr>
-<errors>
-An <link id="ECompressionError"/> exception is raised.
-</errors>
-<seealso>
-<link id="ECompressionError"/>
-<link id="TCompressionStream.Write"/>
-</seealso>
-</element>
-
-<!-- function result Visibility: default -->
-<element name="TCompressionStream.Read.Result">
-<short>Number of bytes actually read</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TCompressionStream.Read.Buffer">
-<short>Buffer to read data to</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TCompressionStream.Read.Count">
-<short>Number of bytes to read</short>
-</element>
-
-<!-- function Visibility: public -->
 <element name="TCompressionStream.Write">
 <short>Write data to the stream</short>
 <descr>
@@ -247,8 +216,8 @@
 If an error occurs, an <link id="ECompressionError"/> exception is raised.
 </errors>
 <seealso>
-<link id="TCompressionStream.Read">Read</link>
-<link id="TCompressionStream.Seek">Seek</link>
+<link id="TCompressionStream.Read"/>
+<link id="ECompressionError"/>
 </seealso>
 </element>
 
@@ -267,52 +236,7 @@
 <short>Number of bytes to take from the buffer.</short>
 </element>
 
-<!-- function Visibility: public -->
-<element name="TCompressionStream.Seek">
-<short>Overrides seek to raise an exception.</short>
-<descr>
-The <var>Seek</var> method of <var>TStream</var> is overridden, and always
-raises an exception, because <var>TCompressionStream</var> is write-only,
-and cannot seek.
-</descr>
-<errors>
-An <link id="ECompressionError"/> exception is raised.
-</errors>
-<seealso>
-<link id="ECompressionError"/>
-<link id="TCompressionStream.Read">Read</link>
-<link id="TCompressionStream.Write">Write</link>
-</seealso>
-</element>
-
-<!-- function result Visibility: default -->
-<element name="TCompressionStream.Seek.Result">
-<short>New location after seek</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TCompressionStream.Seek.Offset">
-<short>Offset to move stream position</short>
-</element>
-
-<!-- argument Visibility: default -->
-<element name="TCompressionStream.Seek.Origin">
-<short>Origin of seek operation.</short>
-</element>
-
 <!-- property Visibility: public -->
-<element name="TCompressionStream.CompressionRate">
-<short>Running compression rate of compression stream</short>
-<descr>
-The <var>Compressionrate</var> is updated as more data is written to the
-stream and represents the ratio of outputted data versus written data.
-</descr>
-<seealso>
-<link id="TCompressionStream.Write">Write</link>
-</seealso>
-</element>
-
-<!-- property Visibility: public -->
 <element name="TCompressionStream.OnProgress">
 <short>Progress handler</short>
 <descr>
zstream.diff (3,189 bytes)   
sqltypes.diff (8,829 bytes)   
Index: sqltypes.xml
===================================================================
--- sqltypes.xml	(revision 1818)
+++ sqltypes.xml	(working copy)
@@ -13,18 +13,28 @@
 <descr>
 </descr>
 
+<!-- used units -->
+<element name="classes">
+<short>Collections</short>
+</element>
+
+<element name="sysutils">
+<short>Various conversion and formatting routines</short>
+</element>
+
 <!-- enumeration type Visibility: default -->
 <element name="TSchemaType">
 <short>Schema type to retrieve</short>
 <descr>
 <var>TSchemaType</var> describes which schema information to retrieve in the
-<link id="TCustomSQLQuery.SetSchemaInfo"/> call. Depending on its value,
-the result set of the dataset will have different fields, describing the
-requested schema data. The result data will always have the same structure.
+<link id="#fcl.sqldb.TCustomSQLQuery.SetSchemaInfo">TCustomSQLQuery.SetSchemaInfo</link>
+call. Depending on its value, the result set of the dataset will have different fields,
+describing the requested schema data. The result data will always have the same
+structure.
 </descr>
 <seealso>
-<link id="RetrievingSchemaInformation"/>
-<link id="TCustomSQLQuery.SetSchemaInfo"/>
+<link id="#fcl.sqldb.TCustomSQLQuery.SetSchemaInfo">TCustomSQLQuery.SetSchemaInfo</link>
+<link id="#fcl.sqldb.RetrievingSchemaInformation">Retrieving Schema Information</link>
 </seealso>
 </element>
 
@@ -76,9 +86,12 @@
 <short>Type describing the kind of SQL statement</short>
 <descr>
 <var>TStatementType</var> describes the kind of SQL statement that was
-entered in the <var>SQL</var> property of a <link id="TSQLQuery"/> component.
+entered in the <var>SQL</var> property for a
+<link id="#fcl.sqldb.TSQLQuery">TSQLQuery</link> component.
 </descr>
-<seealso/>
+<seealso>
+  <link id="#fcl.sqldb.TSQLQuery">TSQLQuery</link>
+</seealso>
 </element>
 
 <!-- enumeration value Visibility: default -->
@@ -139,13 +152,14 @@
 <short>Type of database event</short>
 <descr>
 <var>TDBEventType</var> describes the type of a database event message as generated
-by <link id="TSQLConnection"/> through the <link id="TSQLConnection.OnLog"/>
+by <link id="#fcl.sqldb.TSQLConnection">TSQLConnection</link> through the
+<link id="#fcl.sqldb.TSQLConnection.OnLog">OnLog</link> event.
 event.
 </descr>
 <seealso>
-<link id="TSQLConnection"/>
-<link id="TDBLogNotifyEvent"/>
-<link id="TSQLConnection.OnLog"/>
+<link id="#fcl.sqldb.TSQLConnection">TSQLConnection</link>
+<link id="#fcl.sqldb.TSQLConnection.OnLog">TSQLConnection.OnLog</link>
+<link id="#fcl.sqldb.TDBLogNotifyEvent">TDBLogNotifyEvent</link>
 </seealso>
 </element>
 
@@ -196,13 +210,13 @@
 <descr>
 <var>TDBEventTypes</var> is a set of <link id="TDBEventType"/> values, which
 is used to filter the set of event messages that should be sent. The
-<link id="TSQLConnection.LogEvents"/> property determines which events a
-particular connection will send.
+<link id="#fcl.sqldb.TSQLConnection.LogEvents">TSQLConnection.LogEvents</link>
+property determines which events a particular connection will send.
 </descr>
 <seealso>
-<link id="TSQLConnection.LogEvents"/>
-<link id="TDBLogNotifyEvent"/>
-<link id="GlobalDBLogHook"/>
+<link id="#fcl.sqldb.TSQLConnection.LogEvents">TSQLConnection.LogEvents</link>
+<link id="#fcl.sqldb.TDBLogNotifyEvent">TDBLogNotifyEvent</link>
+<link id="#fcl.sqldb.GlobalDBLogHook">GlobalDBLogHook</link>
 </seealso>
 </element>
 
@@ -222,9 +236,9 @@
 
 <!-- class Visibility: default -->
 <element name="TSqlObjectIdentifierList">
-<short>List of <var>TSqlObjectIdenfier</var> instances</short>
+<short>List of <var>TSqlObjectIndentifier</var> instances</short>
 <descr>
-<var>TSqlObjectIdentifierList</var> is a list class holding a list of <link id="TSqlObjectIdenfier"/> elements.
+<var>TSqlObjectIdentifierList</var> is a list class holding a list of <link id="TSqlObjectIndentifier"/> elements.
 It is used in the <link id="#fcl.sqldb.TSQLConnection.GetObjectNames">TSQLConnection.GetObjectNames</link>
 to return the list of objects requested.
 </descr>
@@ -231,13 +245,13 @@
 <errors>
 </errors>
 <seealso>
-<link id="TSqlObjectIdenfier"/>
+<link id="TSqlObjectIndentifier"/>
 <link id="#fcl.sqldb.TSQLConnection.GetObjectNames"/>
 </seealso>
 </element>
 
 <!-- class Visibility: default -->
-<element name="TSqlObjectIdenfier">
+<element name="TSqlObjectIdentifier">
 <short>SQL Identifier properties object</short>
 <descr>
 <var>TSQLObjectIdentifier</var> is a class that represents an SQL identifier in a database.
@@ -244,7 +258,7 @@
 It has 2 parts: the schema name and the object name.
 </descr>
 <seealso>
-<link id="TSqlObjectIdenfierList"/>
+<link id="TSqlObjectIndentifierList"/>
 <link id="#fcl.sqldb.TSQLConnection.GetObjectNames"/>
 </seealso>
 </element>
@@ -251,7 +265,7 @@
 
 
 <!-- constructor Visibility: public -->
-<element name="TSqlObjectIdenfier.Create">
+<element name="TSqlObjectIndentifier.Create">
 <short></short>
 <descr>
 </descr>
@@ -262,22 +276,22 @@
 </element>
 
 <!-- argument Visibility: default -->
-<element name="TSqlObjectIdenfier.Create.ACollection">
+<element name="TSqlObjectIndentifier.Create.ACollection">
 <short>Collection which the object belongs to</short>
 </element>
 
 <!-- argument Visibility: default -->
-<element name="TSqlObjectIdenfier.Create.AObjectName">
+<element name="TSqlObjectIndentifier.Create.AObjectName">
 <short>Object name.</short>
 </element>
 
 <!-- argument Visibility: default -->
-<element name="TSqlObjectIdenfier.Create.ASchemaName">
+<element name="TSqlObjectIndentifier.Create.ASchemaName">
 <short>Schema in which object is defined.</short>
 </element>
 
 <!-- property Visibility: public -->
-<element name="TSqlObjectIdenfier.SchemaName">
+<element name="TSqlObjectIdentifier.SchemaName">
 <short>Schema name </short>
 <descr>
 <var>SchemaName</var> is the name of the schema in which the object is defined.
@@ -285,14 +299,14 @@
 it is empty.
 </descr>
 <seealso>
-<link id="TSqlObjectIdenfierList"/>
+<link id="TSqlObjectIndentifierList"/>
 <link id="#fcl.sqldb.TSQLConnection.GetObjectNames"/>
-<link id="TSqlObjectIdenfier.ObjectName"/>
+<link id="TSqlObjectIndentifier.ObjectName"/>
 </seealso>
 </element>
 
 <!-- property Visibility: public -->
-<element name="TSqlObjectIdenfier.ObjectName">
+<element name="TSqlObjectIndentifier.ObjectName">
 <short>Name of the object in the database</short>
 <descr>
 <var>ObjectName</var> is the name of the object in the database.
@@ -301,12 +315,18 @@
 property in order to create a unique name for the object.
 </descr>
 <seealso>
-<link id="TSqlObjectIdenfierList"/>
+<link id="TSqlObjectIndentifierList"/>
 <link id="#fcl.sqldb.TSQLConnection.GetObjectNames"/>
-<link id="TSqlObjectIdenfier.SchemaName"/>
+<link id="TSqlObjectIndentifier.SchemaName"/>
 </seealso>
 </element>
 
+<element name="TSqlObjectIndentifierList">
+  <short/>
+  <descr/>
+  <seealso/>
+</element>
+
 <!-- function Visibility: public -->
 <element name="TSqlObjectIdentifierList.AddIdentifier">
 <short>Add an identifier to the list</short>
@@ -345,8 +365,9 @@
 <element name="TSqlObjectIdentifierList.Identifiers">
 <short>Indexed access to all identifiers in the list.</short>
 <descr>
-<var>Identifiers</var> gives indexed access to all <link id="TSQLObjectIdentifier"/> objects in the list.
-Valid indexes run from 0 to <var>Count-1</var>. It is the default property of the list class.
+<var>Identifiers</var> gives indexed access to all <link id="TSqlObjectIdentifier"/>
+objects in the list. Valid indexes run from 0 to <var>Count-1</var>. It is the default
+property of the list class.
 </descr>
 <seealso>
 <link id="TSQLObjectIdentifierList.AddIdentifier"/>
@@ -358,18 +379,8 @@
 <short>Numerical index to the list</short>
 </element>
 
-<!-- uses unit Visibility: default -->
-<element name="classes">
-<short>Collections</short>
-</element>
-
-<!-- uses unit Visibility: default -->
-<element name="sysutils">
-<short>Various conversion and formatting routines</short>
-</element>
-
 <!-- function Visibility: public -->
-<element name="TSqlObjectIdenfier.FullName">
+<element name="TSqlObjectIndentifier.FullName">
 <short>Return the full name of the object</short>
 <descr>
 <var>FullName</var> returns the name of the object, prepended with the schema name if there is one. 
@@ -376,13 +387,13 @@
 Both parts are separated by a dot (.) character.
 </descr>
 <seealso>
-<link id="TSqlObjectIdenfier.SchemaName"/>
-<link id="TSqlObjectIdenfier.ObjectName"/>
+<link id="TSqlObjectIndentifier.SchemaName"/>
+<link id="TSqlObjectIndentifier.ObjectName"/>
 </seealso>
 </element>
 
 <!-- function result Visibility: default -->
-<element name="TSqlObjectIdenfier.FullName.Result">
+<element name="TSqlObjectIndentifier.FullName.Result">
 <short>The fully qualified name of the object</short>
 </element>
 
sqltypes.diff (8,829 bytes)   

Don Siders

2021-03-12 19:44

reporter   ~0129614

Discard the fpjson.diff file. I mangled the see also links. They're a mess. Sorry.

Don Siders

2021-03-13 17:09

reporter   ~0129631

I regenerated the diffs. They are separate files, and as bare-boned as I could humanly makes them.

See attached fpdocs-diff.zip.
fpdocs-diff.zip (48,945 bytes)

Michael Van Canneyt

2021-03-14 00:31

administrator   ~0129640

Thank you very much for your efforts.

I have applied all patches, and provided missing info in places where you simply added empty elements.

Many thanks.

Don Siders

2021-03-14 00:38

reporter   ~0129641

No problem. Sorry for the hassles with the pathch(es).

Issue History

Date Modified Username Field Change
2021-03-12 03:32 Don Siders New Issue
2021-03-12 03:32 Don Siders Status new => assigned
2021-03-12 03:32 Don Siders Assigned To => Michael Van Canneyt
2021-03-12 03:32 Don Siders File Added: fpdocs.diff
2021-03-12 07:22 Michael Van Canneyt Note Added: 0129589
2021-03-12 07:40 Don Siders Note Added: 0129590
2021-03-12 08:19 Michael Van Canneyt Note Added: 0129592
2021-03-12 11:22 Don Siders Note Added: 0129599
2021-03-12 11:22 Don Siders File Added: ascii85.diff
2021-03-12 11:22 Don Siders File Added: avl_tree.diff
2021-03-12 11:22 Don Siders File Added: base64.diff
2021-03-12 11:22 Don Siders File Added: blowfish.diff
2021-03-12 11:22 Don Siders File Added: bufdataset.diff
2021-03-12 11:22 Don Siders File Added: bufstream.diff
2021-03-12 11:22 Don Siders File Added: contnrs.diff
2021-03-12 11:22 Don Siders File Added: custapp.diff
2021-03-12 11:22 Don Siders File Added: daemonapp.diff
2021-03-12 11:22 Don Siders File Added: db.diff
2021-03-12 11:22 Don Siders File Added: dbugintf.diff
2021-03-12 11:22 Don Siders File Added: eventlog.diff
2021-03-12 11:22 Don Siders File Added: fpjson.diff
2021-03-12 11:22 Don Siders File Added: fptimer.diff
2021-03-12 11:22 Don Siders File Added: idea.diff
2021-03-12 11:22 Don Siders File Added: inicol.diff
2021-03-12 11:22 Don Siders File Added: inifiles.diff
2021-03-12 11:22 Don Siders File Added: memds.diff
2021-03-12 11:22 Don Siders File Added: pipes.diff
2021-03-12 11:22 Don Siders File Added: process.diff
2021-03-12 11:23 Don Siders Note Added: 0129600
2021-03-12 11:23 Don Siders File Added: rttiutils.diff
2021-03-12 11:23 Don Siders File Added: simpleipc.diff
2021-03-12 11:23 Don Siders File Added: sqltypes.diff
2021-03-12 11:23 Don Siders File Added: streamex.diff
2021-03-12 11:23 Don Siders File Added: uriparser.diff
2021-03-12 11:23 Don Siders File Added: zipper.diff
2021-03-12 11:23 Don Siders File Added: zstream.diff
2021-03-12 19:44 Don Siders Note Added: 0129614
2021-03-13 17:09 Don Siders Note Added: 0129631
2021-03-13 17:09 Don Siders File Added: fpdocs-diff.zip
2021-03-14 00:31 Michael Van Canneyt Status assigned => resolved
2021-03-14 00:31 Michael Van Canneyt Resolution open => fixed
2021-03-14 00:31 Michael Van Canneyt Fixed in Version => 3.3.1
2021-03-14 00:31 Michael Van Canneyt Fixed in Revision => 1849
2021-03-14 00:31 Michael Van Canneyt FPCTarget => 3.2.2
2021-03-14 00:31 Michael Van Canneyt Note Added: 0129640
2021-03-14 00:38 Don Siders Note Added: 0129641
2021-03-14 00:39 Don Siders Status resolved => closed