From 8821c16206cc43f2cbc24c48bdf7f00d00806470 Mon Sep 17 00:00:00 2001
From: github-actions
Under the hood, scalar values are a special case of arrays containing a single element. Scalars have dimension zero i.e., a shape defined by an empty integer array, e.g. In this way scalars are distinguished from true arrays containing just a single elements, which have dimensionality <=1 and shapes e.g., Note, that there is no requirement that the native array has the same dimensionality as it's nominal format in the field. We could have declared Arrays of irregular shape or mixed element types can be represented by fields containing an array of Or, use and then eventually destroyed after use as: You can also remove existing fields from structures using The normal Note however, that preparing the lookup table has significant O(N) computational cost also. Therefore, a lookup table is practical only if you are going to use it repeatedly, many times over. As a rule of thumb, lookups may have the advantage if accessing fields in a structure by name hundreds of times, or more. The same performance limitation also applies to building large structures, since the The above produces a proper JSON document. Or, you can do the reverse and create an or parse it from a file, which contains a JSON definition of the structured data: Alternatively, you can also create partial JSON snippets for individual fields, e.g.: Alternatively, you can also create partial JSON fragments for individual fields, e.g.: For example, for a numerical array field with 4 elements the above might generate something like: If you print And the reverse, suppose you read back the above line from an input, containing the escaped form, and want to reconstruct from it the original C string with the special characters in it: References XStructure::firstField, XField::isSerialized, XField::name, XField::next, XField::type, XField::value, x_error(), X_RAW, X_STRING, X_STRUCT, x_trace_null(), xCopyOfStruct(), xDestroyField(), xElementSizeOf(), xGetFieldCount(), and xStringCopyOf(). References XField::isSerialized, XField::name, XField::next, XField::type, XField::value, x_error(), X_RAW, X_STRING, X_STRUCT, x_trace_null(), xCopyOfStruct(), xDestroyField(), xElementSizeOf(), xGetFieldCount(), and xStringCopyOf(). References XField::name, XField::ndim, XField::sizes, XField::type, XField::value, x_error(), X_MAX_DIMS, X_RAW, X_STRING, X_STRUCT, xDestroyField(), xElementSizeOf(), xGetElementCount(), xLastSeparator(), and xStringCopyOf(). References XField::name, XField::ndim, XField::sizes, XField::type, XField::value, x_error(), X_MAX_DIMS, X_RAW, X_STRING, X_STRUCT, x_trace_null(), xDestroyField(), xElementSizeOf(), xGetElementCount(), xLastSeparator(), and xStringCopyOf(). References XField::type, XField::value, X_STRUCT, and xGetField(). References XField::type, XField::value, x_error(), X_STRUCT, and xGetField(). References XLookupTable::priv. References XLookupTable::priv, x_error(), X_FAILURE, and X_NULL. References XLookupTable::priv, x_error(), X_FAILURE, and X_NULL. Recursively eliminates unneccessary embedding of singular structures inside a structure as well as reduces the dimension of all array fields with xReduceDims(). Reduces the dimensions by eliminating axes that contain a singular elements. Thus a size of {1, 3, 1, 5} will reduce to {3, 5} containing the same number of elements, in fewer dimensions. If any of the dimensions are zero then it reduces to { 0 }. References XStructure::firstField, XField::name, XField::ndim, XField::next, XStructure::parent, XField::sizes, XField::type, x_error(), X_STRUCT, X_STRUCT_INVALID, x_trace(), xGetFieldCount(), xReduceAllDims(), and xReduceDims(). References x_error(), X_SIZE_INVALID, and X_SUCCESS. Reduces a field by eliminating extraneous dimensions, and/or wrapping recursively. References XField::ndim, XField::sizes, XField::type, XField::value, x_error(), X_FIELD, X_NULL, X_STRUCT, X_SUCCESS, xGetFieldCount(), xReduceDims(), and xReduceStruct(). Reduces the dimensions by eliminating axes that contain a singular elements. Thus a size of {1, 3, 1, 5} will reduce to {3, 5} containing the same number of elements, in fewer dimensions. If any of the dimensions are zero then it reduces to { 0 }. Recursively eliminates unneccessary embedding of singular structures inside a structure as well as reduces the dimension of all array fields with xReduceDims(). It will also eliminate the unnecessary wrapping of a singular array into a single XField. References x_error(), X_SIZE_INVALID, and X_SUCCESS. References XStructure::firstField, XField::next, XStructure::parent, XField::type, XField::value, x_error(), X_STRUCT, X_STRUCT_INVALID, X_SUCCESS, xGetFieldCount(), xReduceField(), and xReduceStruct(). References XStructure::firstField, XField::next, TRUE, XField::type, XField::value, x_error(), X_NULL, X_STRUCT, X_SUCCESS, xGetFieldCount(), and xSortFields(). References XStructure::firstField, XField::next, TRUE, XField::type, XField::value, x_error(), X_FAILURE, X_NULL, X_STRUCT, X_SUCCESS, xGetFieldCount(), and xSortFields().- x -
diff --git a/apidoc/html/globals_func.html b/apidoc/html/globals_func.html
index 90add00..bc73124 100644
--- a/apidoc/html/globals_func.html
+++ b/apidoc/html/globals_func.html
@@ -128,16 +128,16 @@ - x -
- x -
- x -
- x -
- x -
- x -
- x -
int shape[0]
in a corresponding XField
element.int shape[1] = {1}
or int shape[2] = {1, 1}
. The difference, while subtle, becomes more obvious when serializing the array, e.g. to JSON. A scalar floating point value of 1.04, for example, will appear as 1.04
in JSON, whereas the 1D and 2D single-element arrays will be serialized as { 1.04 }
or {{ 1.04 }}
, respectively.
data
as a 1D array double data[2 * 3 * 4] = ...
, or really any array (pointer) containing doubles with storage for at least 24 elements. It is the sizes
array, along with the dimensionality, which together define the number of elements used from it, and the shape of the array for xchange.XField
entries:xCreateMixedArrayField()
to create a multi-dimensional array of heterogeneous elements the same way.
@@ -286,12 +286,12 @@
Aggregate IDs
@@ -325,11 +325,11 @@
xRemoveField()
, e.g.
Large structures
xGetField()
and xGetSubstruct()
functions have computational costs that scale linearly with the number of direct fields in the structure. It is not much of an issue for structures that contain dozens of, or even a couple hundred, fields (per layer). For much larger structures, which have a fixed layout, there is an option for a potentially much more efficient hash-based lookup also. E.g. instead of xGetField()
you may use xLookupField()
:
xSetField()
and xSetSubstruct()
functions iterate over the existing fields to check if a prior field by the same name was already present, and which should be removed before the new field is set (hence the time to build up a structure with N fields will scale as _O(N2)_ in general). The user may consider using xInsertField()
instead, which is much more scalable for building large structures, since it does not check for duplicates (hence scales as O(N) overall). However, xInsertField()
also makes the ordering of fields less intuitive, and it is left up to the caller to ensure that field names added this way are never duplicated. (Tip: if you used InsertField()
consistently, you may call xReverseFieldOrder()
at the end, so the fields will appear in the same order in which they were inserted.)
@@ -371,7 +371,7 @@
@@ -381,28 +381,28 @@
XStructure
from its JSON representation, either from a string (a 0-terminated char
array):
Snippets
-
@@ -412,7 +412,7 @@
string
to a file or the standard output, it will show up as 2 lines:
diff --git a/apidoc/html/navtreedata.js b/apidoc/html/navtreedata.js
index 3b8240a..5bc2bba 100644
--- a/apidoc/html/navtreedata.js
+++ b/apidoc/html/navtreedata.js
@@ -78,7 +78,7 @@ var NAVTREE =
var NAVTREEINDEX =
[
"annotated.html",
-"xlookup_8c.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9"
+"xlookup_8c.html#a02ea2d67e4c540ad706edcc1b3a0431e"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/apidoc/html/navtreeindex0.js b/apidoc/html/navtreeindex0.js
index d943daf..1cedad4 100644
--- a/apidoc/html/navtreeindex0.js
+++ b/apidoc/html/navtreeindex0.js
@@ -92,11 +92,12 @@ var NAVTREEINDEX0 =
"xchange_8c.html#afbe85067ddbc92577cd00ac8f6e3026f":[3,0,1,0,20],
"xchange_8h.html":[3,0,0,0],
"xchange_8h.html#a01a94b3210aed984dbee956fbb26fcfd":[3,0,0,0,60],
-"xchange_8h.html#a01d730a1a98963816de2dd73e72957a5":[3,0,0,0,122],
+"xchange_8h.html#a01d730a1a98963816de2dd73e72957a5":[3,0,0,0,123],
"xchange_8h.html#a02ea2d67e4c540ad706edcc1b3a0431e":[3,0,0,0,81],
"xchange_8h.html#a03b3076533e6967aaa48dcccf9ded4a0":[3,0,0,0,9],
"xchange_8h.html#a0783aebbbcc863bf212273131709ad3c":[3,0,0,0,29],
"xchange_8h.html#a12112584a34e07f9ef7b08f6ef1bc865":[3,0,0,0,78],
+"xchange_8h.html#a12fafe4020caa0baeaaf2698e8490874":[3,0,0,0,112],
"xchange_8h.html#a1324cef45d5b26097bf488ad3b7f9e7b":[3,0,0,0,30],
"xchange_8h.html#a13e81b8f1bf3e1c3572ca74edb2836fe":[3,0,0,0,96],
"xchange_8h.html#a13ea68e798d0cd9cab06667707737055":[3,0,0,0,50],
@@ -117,13 +118,14 @@ var NAVTREEINDEX0 =
"xchange_8h.html#a319ecdfb71bd7ccda1c7049965a64d6d":[3,0,0,0,27],
"xchange_8h.html#a32e104d7a23090f8ae0e6ea3cc55a84f":[3,0,0,0,86],
"xchange_8h.html#a3525be19588c2b740fc0dbd54a936dcb":[3,0,0,0,59],
-"xchange_8h.html#a3605bad086ec39e14f97e42e25334227":[3,0,0,0,125],
-"xchange_8h.html#a363b67b316973290c30c11bea7931c64":[3,0,0,0,127],
+"xchange_8h.html#a3605bad086ec39e14f97e42e25334227":[3,0,0,0,126],
+"xchange_8h.html#a363b67b316973290c30c11bea7931c64":[3,0,0,0,128],
"xchange_8h.html#a36405f1834eb7cd51a17f103b2942e21":[3,0,0,0,24],
-"xchange_8h.html#a36fb99b219c5a61db1d1c3d630277987":[3,0,0,0,111],
+"xchange_8h.html#a36fb99b219c5a61db1d1c3d630277987":[3,0,0,0,110],
"xchange_8h.html#a374255b53a06fcd02222b435d59e220f":[3,0,0,0,43],
"xchange_8h.html#a385df18f40a243b7c3d3d0b4ffbdb336":[3,0,0,0,31],
"xchange_8h.html#a3942401de37f774e72393ffa73c9fb9f":[3,0,0,0,23],
+"xchange_8h.html#a3a47073404ef29ef9d533f7ad77b40d7":[3,0,0,0,111],
"xchange_8h.html#a3b423bf135d2ed42319abff99fda78e4":[3,0,0,0,98],
"xchange_8h.html#a3eb8c827cfc2139687d175649284f7be":[3,0,0,0,108],
"xchange_8h.html#a4003d7fe06200f77805c52cc7db56784":[3,0,0,0,22],
@@ -138,10 +140,10 @@ var NAVTREEINDEX0 =
"xchange_8h.html#a606c4844e51124bee155e30bac8ca885":[3,0,0,0,84],
"xchange_8h.html#a621c38f1f10a1c565d897e3178b16d6e":[3,0,0,0,57],
"xchange_8h.html#a63de1f3edab36b1a53ee312ac0711cbb":[3,0,0,0,42],
-"xchange_8h.html#a6b7bdd2637d8a15a709e293d0c606699":[3,0,0,0,117],
-"xchange_8h.html#a6c1304b59a5882b2286e86c6837faead":[3,0,0,0,114],
+"xchange_8h.html#a6b7bdd2637d8a15a709e293d0c606699":[3,0,0,0,118],
+"xchange_8h.html#a6c1304b59a5882b2286e86c6837faead":[3,0,0,0,115],
"xchange_8h.html#a73012d5991cc49ef05bf1d621a1cde55":[3,0,0,0,6],
-"xchange_8h.html#a74d1f6b9b92ebe82353e75a3d7e9daae":[3,0,0,0,120],
+"xchange_8h.html#a74d1f6b9b92ebe82353e75a3d7e9daae":[3,0,0,0,121],
"xchange_8h.html#a76d723969626d4e25235eb24533e3e3a":[3,0,0,0,14],
"xchange_8h.html#a789489313df89d33aa50de911e1e42ff":[3,0,0,0,79],
"xchange_8h.html#a7a5743ece908b043528077f499c42d57":[3,0,0,0,26],
@@ -154,7 +156,7 @@ var NAVTREEINDEX0 =
"xchange_8h.html#a85f2c5443ebef48499398453a39710da":[3,0,0,0,100],
"xchange_8h.html#a867ae02d3e93665fa1b7c3c39534d692":[3,0,0,0,47],
"xchange_8h.html#a86d83cc351dfae22fe7346559f5a440e":[3,0,0,0,35],
-"xchange_8h.html#a8816199a4473325a942e14057dcd9ab8":[3,0,0,0,123],
+"xchange_8h.html#a8816199a4473325a942e14057dcd9ab8":[3,0,0,0,124],
"xchange_8h.html#a888dbfa464548f0b65794e172713160b":[3,0,0,0,21],
"xchange_8h.html#a8abfcc76130f3f991d124dd22d7e69bc":[3,0,0,0,7],
"xchange_8h.html#a90aae0dafd1d461877eef63c9c730592":[3,0,0,0,102],
@@ -170,30 +172,29 @@ var NAVTREEINDEX0 =
"xchange_8h.html#a9dc77bed0d8b738ba615019721a6a2b6":[3,0,0,0,77],
"xchange_8h.html#a9e947ab368178c7e248b3cf8b26defa1":[3,0,0,0,11],
"xchange_8h.html#a9ee406a1c0c8d1076620ae4f77695216":[3,0,0,0,109],
-"xchange_8h.html#aa1d006a2788adeb0fc9b4799297a69ff":[3,0,0,0,119],
+"xchange_8h.html#aa1d006a2788adeb0fc9b4799297a69ff":[3,0,0,0,120],
"xchange_8h.html#aa4405d56659397e044b6d4fdda394dfa":[3,0,0,0,71],
"xchange_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d":[3,0,0,0,10],
"xchange_8h.html#aa93f0eb578d23995850d61f7d61c55c1":[3,0,0,0,4],
"xchange_8h.html#aadbbe3ae01369cbddf4d57d430b33133":[3,0,0,0,34],
-"xchange_8h.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4":[3,0,0,0,115],
+"xchange_8h.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4":[3,0,0,0,116],
"xchange_8h.html#ab20a0213369a947a7e48ff45aabee3c0":[3,0,0,0,63],
"xchange_8h.html#ab7ac206d0ec3608a0872f09c7f7bc189":[3,0,0,0,69],
"xchange_8h.html#ab9a9fbc1235164bfeed5fbba1f7d8692":[3,0,0,0,95],
"xchange_8h.html#abe0465f7669775b6129551a7ef3300bc":[3,0,0,0,12],
"xchange_8h.html#abf5d02e3f3ec45ae6fe1e6afd09690a5":[3,0,0,0,18],
-"xchange_8h.html#acc31fe75f06a6e0e469fba3a57c4fb25":[3,0,0,0,110],
"xchange_8h.html#acc701c734a3b95d356660ca5ee16a96a":[3,0,0,0,85],
-"xchange_8h.html#acd6af91336f4b5501d0a0e3d5cf88ad3":[3,0,0,0,121],
-"xchange_8h.html#ace21b1dd3eab2ce044a2fea31e393e7b":[3,0,0,0,126],
+"xchange_8h.html#acd6af91336f4b5501d0a0e3d5cf88ad3":[3,0,0,0,122],
+"xchange_8h.html#ace21b1dd3eab2ce044a2fea31e393e7b":[3,0,0,0,127],
"xchange_8h.html#aced93c2ca8cef260663ff1f9cfc0140e":[3,0,0,0,107],
"xchange_8h.html#acf0823001995982977fe1e07b088c953":[3,0,0,0,75],
"xchange_8h.html#ad2fa86a7d296f1efa6b41079bc2a6b65":[3,0,0,0,68],
-"xchange_8h.html#ad32d8a3f211a3b101142879ae31146ec":[3,0,0,0,113],
+"xchange_8h.html#ad32d8a3f211a3b101142879ae31146ec":[3,0,0,0,114],
"xchange_8h.html#ad35e0d8c0ebbb4948c233f96c54bd8d6":[3,0,0,0,88],
"xchange_8h.html#ad3f1d50fc0f1553b806bedbd17d2206e":[3,0,0,0,89],
"xchange_8h.html#ad525869626b4f755aa27d6ef37a15c3d":[3,0,0,0,46],
"xchange_8h.html#ad78b2fb3d6d1474c8a44c57575a6e13b":[3,0,0,0,65],
-"xchange_8h.html#ad84cbb4639f2fbfb604b698a86caf944":[3,0,0,0,116],
+"xchange_8h.html#ad84cbb4639f2fbfb604b698a86caf944":[3,0,0,0,117],
"xchange_8h.html#adb72c72467963a6ace1632638a8a6a7b":[3,0,0,0,36],
"xchange_8h.html#adbb2c6827fb22c643243e54992da6c70":[3,0,0,0,3],
"xchange_8h.html#adcc86baacb3ddebcc529e269223274b8":[3,0,0,0,92],
@@ -202,9 +203,9 @@ var NAVTREEINDEX0 =
"xchange_8h.html#ae0ce99c867b11bd14971031eec8ba4ad":[3,0,0,0,80],
"xchange_8h.html#ae45c0a047c30a17aba84d2fc8c08a2dc":[3,0,0,0,62],
"xchange_8h.html#ae683dbdc302ce2ce78f77c5301e09386":[3,0,0,0,87],
-"xchange_8h.html#ae6b0637ea4bc09f522c67e4c49da13ce":[3,0,0,0,124],
+"xchange_8h.html#ae6b0637ea4bc09f522c67e4c49da13ce":[3,0,0,0,125],
"xchange_8h.html#aec6e78e07733ca246ca485b0fcf02d21":[3,0,0,0,93],
-"xchange_8h.html#aec9f913cdb79d8653668a5d9bdda6ab1":[3,0,0,0,112],
+"xchange_8h.html#aec9f913cdb79d8653668a5d9bdda6ab1":[3,0,0,0,113],
"xchange_8h.html#aecc19edf892709b39a9c0d3d944f8f9a":[3,0,0,0,48],
"xchange_8h.html#aef108c611a8388c435502dfd89c41a5f":[3,0,0,0,52],
"xchange_8h.html#af436eb535b32fa88ab4e600c0a37c19d":[3,0,0,0,103],
@@ -213,41 +214,40 @@ var NAVTREEINDEX0 =
"xchange_8h.html#af7447cdd983402a27a25a70cc7187275":[3,0,0,0,66],
"xchange_8h.html#af8bee9eeac947d7e36ea436252e8dc2d":[3,0,0,0,73],
"xchange_8h.html#afb01219635d162589ae5aadb90702bb0":[3,0,0,0,13],
-"xchange_8h.html#afbe85067ddbc92577cd00ac8f6e3026f":[3,0,0,0,118],
+"xchange_8h.html#afbe85067ddbc92577cd00ac8f6e3026f":[3,0,0,0,119],
"xchange_8h.html#afdb31906269568772fdf63adb6685fbc":[3,0,0,0,64],
"xchange_8h.html#afe3fda2f392bae11e136e8c0c90f086d":[3,0,0,0,82],
"xjson_8c.html":[3,0,1,1],
-"xjson_8c.html#a1f877c9790a53582cdda10659a3d033a":[3,0,1,1,11],
-"xjson_8c.html#a23a7bd364a80bc2bab9ce917ed5f22ea":[3,0,1,1,10],
-"xjson_8c.html#a42101fa63cb1c6e265f317e9b8719d5f":[3,0,1,1,4],
-"xjson_8c.html#a53128045970e973134867c96a6465abc":[3,0,1,1,12],
+"xjson_8c.html#a01bc599d67f70636a813b103a20170ac":[3,0,1,1,4],
+"xjson_8c.html#a1f877c9790a53582cdda10659a3d033a":[3,0,1,1,12],
+"xjson_8c.html#a23a7bd364a80bc2bab9ce917ed5f22ea":[3,0,1,1,11],
+"xjson_8c.html#a42101fa63cb1c6e265f317e9b8719d5f":[3,0,1,1,5],
+"xjson_8c.html#a53128045970e973134867c96a6465abc":[3,0,1,1,13],
"xjson_8c.html#a92336f3031a90784e8667aaa7ad07ca2":[3,0,1,1,3],
-"xjson_8c.html#a9bdaf6099829f03eb2658342e856f0ad":[3,0,1,1,8],
-"xjson_8c.html#a9f11227a58e797a4a335331d94c8e888":[3,0,1,1,5],
+"xjson_8c.html#a9bdaf6099829f03eb2658342e856f0ad":[3,0,1,1,9],
+"xjson_8c.html#a9f11227a58e797a4a335331d94c8e888":[3,0,1,1,6],
"xjson_8c.html#aa8cecfc5c5c054d2875c03e77b7be15d":[3,0,1,1,2],
"xjson_8c.html#aa93f0eb578d23995850d61f7d61c55c1":[3,0,1,1,1],
-"xjson_8c.html#aa94ae687d4c1775d35b03614ae2fcf62":[3,0,1,1,13],
-"xjson_8c.html#aacd36258562860dac1bcc8154cda47cf":[3,0,1,1,7],
+"xjson_8c.html#aa94ae687d4c1775d35b03614ae2fcf62":[3,0,1,1,14],
+"xjson_8c.html#aacd36258562860dac1bcc8154cda47cf":[3,0,1,1,8],
"xjson_8c.html#ac36bd75f87a1614fb477a0fbcd5df1f3":[3,0,1,1,0],
-"xjson_8c.html#af180900a4afeef713a3fdaeb77a9cba3":[3,0,1,1,6],
-"xjson_8c.html#afff9ee9473a0c939d18dba977cfac075":[3,0,1,1,9],
+"xjson_8c.html#af180900a4afeef713a3fdaeb77a9cba3":[3,0,1,1,7],
+"xjson_8c.html#afff9ee9473a0c939d18dba977cfac075":[3,0,1,1,10],
"xjson_8h.html":[3,0,0,1],
-"xjson_8h.html#a1f877c9790a53582cdda10659a3d033a":[3,0,0,1,10],
-"xjson_8h.html#a23a7bd364a80bc2bab9ce917ed5f22ea":[3,0,0,1,9],
-"xjson_8h.html#a42101fa63cb1c6e265f317e9b8719d5f":[3,0,0,1,3],
-"xjson_8h.html#a53128045970e973134867c96a6465abc":[3,0,0,1,11],
+"xjson_8h.html#a01bc599d67f70636a813b103a20170ac":[3,0,0,1,3],
+"xjson_8h.html#a1f877c9790a53582cdda10659a3d033a":[3,0,0,1,11],
+"xjson_8h.html#a23a7bd364a80bc2bab9ce917ed5f22ea":[3,0,0,1,10],
+"xjson_8h.html#a2c3bb6f2c4cfef06527f0a66c855b6cc":[3,0,0,1,1],
+"xjson_8h.html#a42101fa63cb1c6e265f317e9b8719d5f":[3,0,0,1,4],
+"xjson_8h.html#a53128045970e973134867c96a6465abc":[3,0,0,1,12],
"xjson_8h.html#a5a5c8657f14c4fe6dc43c552af88d65d":[3,0,0,1,0],
-"xjson_8h.html#a5b542fdced2080503cdbf2cf9a071324":[3,0,0,1,7],
-"xjson_8h.html#a6a6e84911afbf9ff6e8c0ffaf228bbcb":[3,0,0,1,12],
+"xjson_8h.html#a5b542fdced2080503cdbf2cf9a071324":[3,0,0,1,8],
+"xjson_8h.html#a6a6e84911afbf9ff6e8c0ffaf228bbcb":[3,0,0,1,13],
"xjson_8h.html#a92336f3031a90784e8667aaa7ad07ca2":[3,0,0,1,2],
-"xjson_8h.html#a9f11227a58e797a4a335331d94c8e888":[3,0,0,1,4],
-"xjson_8h.html#ab69c52214e2e6daa2626bf8722f2d73e":[3,0,0,1,1],
-"xjson_8h.html#acdb7d242c80b4c9dbeedc62b479bfcc7":[3,0,0,1,5],
-"xjson_8h.html#ad27c7a065fa6c61354e3293606617889":[3,0,0,1,6],
-"xjson_8h.html#afff9ee9473a0c939d18dba977cfac075":[3,0,0,1,8],
+"xjson_8h.html#a9f11227a58e797a4a335331d94c8e888":[3,0,0,1,5],
+"xjson_8h.html#acdb7d242c80b4c9dbeedc62b479bfcc7":[3,0,0,1,6],
+"xjson_8h.html#ad27c7a065fa6c61354e3293606617889":[3,0,0,1,7],
+"xjson_8h.html#afff9ee9473a0c939d18dba977cfac075":[3,0,0,1,9],
"xlookup_8c.html":[3,0,1,2],
-"xlookup_8c.html#a01a94b3210aed984dbee956fbb26fcfd":[3,0,1,2,1],
-"xlookup_8c.html#a02ea2d67e4c540ad706edcc1b3a0431e":[3,0,1,2,3],
-"xlookup_8c.html#a13e81b8f1bf3e1c3572ca74edb2836fe":[3,0,1,2,4],
-"xlookup_8c.html#a3b423bf135d2ed42319abff99fda78e4":[3,0,1,2,6]
+"xlookup_8c.html#a01a94b3210aed984dbee956fbb26fcfd":[3,0,1,2,1]
};
diff --git a/apidoc/html/navtreeindex1.js b/apidoc/html/navtreeindex1.js
index 2a294d7..9def4c9 100644
--- a/apidoc/html/navtreeindex1.js
+++ b/apidoc/html/navtreeindex1.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX1 =
{
+"xlookup_8c.html#a02ea2d67e4c540ad706edcc1b3a0431e":[3,0,1,2,3],
+"xlookup_8c.html#a13e81b8f1bf3e1c3572ca74edb2836fe":[3,0,1,2,4],
+"xlookup_8c.html#a3b423bf135d2ed42319abff99fda78e4":[3,0,1,2,6],
"xlookup_8c.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9":[3,0,1,2,5],
"xlookup_8c.html#a85f2c5443ebef48499398453a39710da":[3,0,1,2,8],
"xlookup_8c.html#a91a19055586ae79dee6d43c5de0cb32b":[3,0,1,2,7],
@@ -9,15 +12,17 @@ var NAVTREEINDEX1 =
"xstruct_8c.html":[3,0,1,3],
"xstruct_8c.html#a0b37b00634177189d5e717e3c84820e3":[3,0,1,3,13],
"xstruct_8c.html#a12112584a34e07f9ef7b08f6ef1bc865":[3,0,1,3,17],
+"xstruct_8c.html#a12fafe4020caa0baeaaf2698e8490874":[3,0,1,3,33],
"xstruct_8c.html#a1720e156de63fd0585224738ccbb5688":[3,0,1,3,24],
"xstruct_8c.html#a2b81d2bbe48788a9741e815cdaa336eb":[3,0,1,3,1],
"xstruct_8c.html#a2cbbd824406d862b2018e28a466ff318":[3,0,1,3,21],
-"xstruct_8c.html#a36fb99b219c5a61db1d1c3d630277987":[3,0,1,3,32],
+"xstruct_8c.html#a36fb99b219c5a61db1d1c3d630277987":[3,0,1,3,31],
+"xstruct_8c.html#a3a47073404ef29ef9d533f7ad77b40d7":[3,0,1,3,32],
"xstruct_8c.html#a42e4e75cbf8f721ef4b251c692dcd7cb":[3,0,1,3,10],
"xstruct_8c.html#a442f155b0c6549549737510ce42bb66d":[3,0,1,3,23],
"xstruct_8c.html#a4587dcd0157acce30373288e19f1237d":[3,0,1,3,12],
-"xstruct_8c.html#a6b7bdd2637d8a15a709e293d0c606699":[3,0,1,3,37],
-"xstruct_8c.html#a74d1f6b9b92ebe82353e75a3d7e9daae":[3,0,1,3,39],
+"xstruct_8c.html#a6b7bdd2637d8a15a709e293d0c606699":[3,0,1,3,38],
+"xstruct_8c.html#a74d1f6b9b92ebe82353e75a3d7e9daae":[3,0,1,3,40],
"xstruct_8c.html#a789489313df89d33aa50de911e1e42ff":[3,0,1,3,18],
"xstruct_8c.html#a7bb186343d1ff6dab01cc39e233b9069":[3,0,1,3,14],
"xstruct_8c.html#a90aae0dafd1d461877eef63c9c730592":[3,0,1,3,29],
@@ -25,25 +30,24 @@ var NAVTREEINDEX1 =
"xstruct_8c.html#a97a58e33c4730e272af459dfb7f016f9":[3,0,1,3,25],
"xstruct_8c.html#a9897f06ef8a22d5ddb8538d5fe223ae2":[3,0,1,3,7],
"xstruct_8c.html#a9dc77bed0d8b738ba615019721a6a2b6":[3,0,1,3,16],
-"xstruct_8c.html#aa1d006a2788adeb0fc9b4799297a69ff":[3,0,1,3,38],
+"xstruct_8c.html#aa1d006a2788adeb0fc9b4799297a69ff":[3,0,1,3,39],
"xstruct_8c.html#aa4405d56659397e044b6d4fdda394dfa":[3,0,1,3,11],
-"xstruct_8c.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4":[3,0,1,3,35],
+"xstruct_8c.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4":[3,0,1,3,36],
"xstruct_8c.html#ab20a0213369a947a7e48ff45aabee3c0":[3,0,1,3,3],
"xstruct_8c.html#ab7ac206d0ec3608a0872f09c7f7bc189":[3,0,1,3,9],
"xstruct_8c.html#ab9a9fbc1235164bfeed5fbba1f7d8692":[3,0,1,3,28],
"xstruct_8c.html#ac36bd75f87a1614fb477a0fbcd5df1f3":[3,0,1,3,0],
-"xstruct_8c.html#acc31fe75f06a6e0e469fba3a57c4fb25":[3,0,1,3,31],
-"xstruct_8c.html#acd6af91336f4b5501d0a0e3d5cf88ad3":[3,0,1,3,40],
+"xstruct_8c.html#acd6af91336f4b5501d0a0e3d5cf88ad3":[3,0,1,3,41],
"xstruct_8c.html#ad2fa86a7d296f1efa6b41079bc2a6b65":[3,0,1,3,8],
-"xstruct_8c.html#ad32d8a3f211a3b101142879ae31146ec":[3,0,1,3,34],
+"xstruct_8c.html#ad32d8a3f211a3b101142879ae31146ec":[3,0,1,3,35],
"xstruct_8c.html#ad6249db6da0a1294d5621cd9fd829f7a":[3,0,1,3,26],
"xstruct_8c.html#ad78b2fb3d6d1474c8a44c57575a6e13b":[3,0,1,3,5],
-"xstruct_8c.html#ad84cbb4639f2fbfb604b698a86caf944":[3,0,1,3,36],
+"xstruct_8c.html#ad84cbb4639f2fbfb604b698a86caf944":[3,0,1,3,37],
"xstruct_8c.html#ae0ce99c867b11bd14971031eec8ba4ad":[3,0,1,3,19],
"xstruct_8c.html#ae45c0a047c30a17aba84d2fc8c08a2dc":[3,0,1,3,2],
"xstruct_8c.html#ae683dbdc302ce2ce78f77c5301e09386":[3,0,1,3,22],
"xstruct_8c.html#aec6e78e07733ca246ca485b0fcf02d21":[3,0,1,3,27],
-"xstruct_8c.html#aec9f913cdb79d8653668a5d9bdda6ab1":[3,0,1,3,33],
+"xstruct_8c.html#aec9f913cdb79d8653668a5d9bdda6ab1":[3,0,1,3,34],
"xstruct_8c.html#af436eb535b32fa88ab4e600c0a37c19d":[3,0,1,3,30],
"xstruct_8c.html#af7447cdd983402a27a25a70cc7187275":[3,0,1,3,6],
"xstruct_8c.html#afdb31906269568772fdf63adb6685fbc":[3,0,1,3,4],
diff --git a/apidoc/html/search/all_14.js b/apidoc/html/search/all_14.js
index d8ff42b..aa77590 100644
--- a/apidoc/html/search/all_14.js
+++ b/apidoc/html/search/all_14.js
@@ -80,8 +80,8 @@ var searchData=
['xdestroystruct_77',['xdestroystruct',['../xstruct_8c.html#afe3fda2f392bae11e136e8c0c90f086d',1,'xDestroyStruct(XStructure *s): xstruct.c'],['../xchange_8h.html#afe3fda2f392bae11e136e8c0c90f086d',1,'xDestroyStruct(XStructure *s): xstruct.c']]],
['xdprintf_78',['xdprintf',['../xchange_8h.html#a2b0edfea798e9e08122f09dba5f189f8',1,'xchange.h']]],
['xelementsizeof_79',['xelementsizeof',['../xchange_8c.html#af5ec26d18b20fc0da9ec9032af73fa9e',1,'xElementSizeOf(XType type): xchange.c'],['../xchange_8h.html#af5ec26d18b20fc0da9ec9032af73fa9e',1,'xElementSizeOf(XType type): xchange.c']]],
- ['xerror_80',['xerror',['../xchange_8h.html#a606c4844e51124bee155e30bac8ca885',1,'xError(const char *fn, int code): xchange.c'],['../xchange_8c.html#a606c4844e51124bee155e30bac8ca885',1,'xError(const char *fn, int code): xchange.c']]],
- ['xerrordescription_81',['xerrordescription',['../xchange_8c.html#acc701c734a3b95d356660ca5ee16a96a',1,'xErrorDescription(int code): xchange.c'],['../xchange_8h.html#acc701c734a3b95d356660ca5ee16a96a',1,'xErrorDescription(int code): xchange.c']]],
+ ['xerror_80',['xerror',['../xchange_8c.html#a606c4844e51124bee155e30bac8ca885',1,'xError(const char *fn, int code): xchange.c'],['../xchange_8h.html#a606c4844e51124bee155e30bac8ca885',1,'xError(const char *fn, int code): xchange.c']]],
+ ['xerrordescription_81',['xerrordescription',['../xchange_8h.html#acc701c734a3b95d356660ca5ee16a96a',1,'xErrorDescription(int code): xchange.c'],['../xchange_8c.html#acc701c734a3b95d356660ca5ee16a96a',1,'xErrorDescription(int code): xchange.c']]],
['xfield_82',['XField',['../structXField.html',1,'']]],
['xgetaggregateid_83',['xgetaggregateid',['../xstruct_8c.html#a2cbbd824406d862b2018e28a466ff318',1,'xGetAggregateID(const char *table, const char *key): xstruct.c'],['../xchange_8h.html#a32e104d7a23090f8ae0e6ea3cc55a84f',1,'xGetAggregateID(const char *group, const char *key): xstruct.c']]],
['xgetelementatindex_84',['xgetelementatindex',['../xstruct_8c.html#ae683dbdc302ce2ce78f77c5301e09386',1,'xGetElementAtIndex(const XField *f, int idx): xstruct.c'],['../xchange_8h.html#ae683dbdc302ce2ce78f77c5301e09386',1,'xGetElementAtIndex(const XField *f, int idx): xstruct.c']]],
@@ -90,59 +90,61 @@ var searchData=
['xgetfieldcount_87',['xgetfieldcount',['../xstruct_8c.html#a1720e156de63fd0585224738ccbb5688',1,'xGetFieldCount(const XField *f): xstruct.c'],['../xchange_8h.html#a1720e156de63fd0585224738ccbb5688',1,'xGetFieldCount(const XField *f): xstruct.c']]],
['xgetsubstruct_88',['xgetsubstruct',['../xstruct_8c.html#a97a58e33c4730e272af459dfb7f016f9',1,'xGetSubstruct(const XStructure *s, const char *id): xstruct.c'],['../xchange_8h.html#a97a58e33c4730e272af459dfb7f016f9',1,'xGetSubstruct(const XStructure *s, const char *id): xstruct.c']]],
['xinsertfield_89',['xInsertField',['../xstruct_8c.html#ad6249db6da0a1294d5621cd9fd829f7a',1,'xstruct.c']]],
- ['xischarsequence_90',['xischarsequence',['../xchange_8h.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c'],['../xchange_8c.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c']]],
- ['xisfieldvalid_91',['xisfieldvalid',['../xstruct_8c.html#aec6e78e07733ca246ca485b0fcf02d21',1,'xIsFieldValid(const XField *f): xstruct.c'],['../xchange_8h.html#aec6e78e07733ca246ca485b0fcf02d21',1,'xIsFieldValid(const XField *f): xstruct.c']]],
+ ['xischarsequence_90',['xischarsequence',['../xchange_8c.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c'],['../xchange_8h.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c']]],
+ ['xisfieldvalid_91',['xisfieldvalid',['../xchange_8h.html#aec6e78e07733ca246ca485b0fcf02d21',1,'xIsFieldValid(const XField *f): xstruct.c'],['../xstruct_8c.html#aec6e78e07733ca246ca485b0fcf02d21',1,'xIsFieldValid(const XField *f): xstruct.c']]],
['xisverbose_92',['xisverbose',['../xchange_8c.html#a46a6c2d802ebadd46ffcfdde7fb438b8',1,'xIsVerbose(): xchange.c'],['../xchange_8h.html#a46a6c2d802ebadd46ffcfdde7fb438b8',1,'xIsVerbose(): xchange.c']]],
['xjson_2ec_93',['xjson.c',['../xjson_8c.html',1,'']]],
['xjson_2eh_94',['xjson.h',['../xjson_8h.html',1,'']]],
- ['xjson_5findent_95',['XJSON_INDENT',['../xjson_8h.html#ab69c52214e2e6daa2626bf8722f2d73e',1,'xjson.h']]],
+ ['xjson_5fdefault_5findent_95',['XJSON_DEFAULT_INDENT',['../xjson_8h.html#a2c3bb6f2c4cfef06527f0a66c855b6cc',1,'xjson.h']]],
['xjsonescape_96',['xjsonescape',['../xjson_8c.html#a92336f3031a90784e8667aaa7ad07ca2',1,'xjsonEscape(const char *src, int maxLength): xjson.c'],['../xjson_8h.html#a92336f3031a90784e8667aaa7ad07ca2',1,'xjsonEscape(const char *src, int maxLength): xjson.c']]],
- ['xjsonfieldtostring_97',['xjsonfieldtostring',['../xjson_8c.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c'],['../xjson_8h.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c']]],
- ['xjsongetindent_98',['xjsongetindent',['../xjson_8c.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c'],['../xjson_8h.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c']]],
- ['xjsonparseat_99',['xjsonparseat',['../xjson_8c.html#af180900a4afeef713a3fdaeb77a9cba3',1,'xjsonParseAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#acdb7d242c80b4c9dbeedc62b479bfcc7',1,'xjsonParseAt(char **src, int *lineNumber): xjson.c']]],
- ['xjsonparsefieldat_100',['xjsonparsefieldat',['../xjson_8c.html#aacd36258562860dac1bcc8154cda47cf',1,'xjsonParseFieldAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#ad27c7a065fa6c61354e3293606617889',1,'xjsonParseFieldAt(char **src, int *lineNumber): xjson.c']]],
- ['xjsonparsefile_101',['xjsonparsefile',['../xjson_8c.html#a9bdaf6099829f03eb2658342e856f0ad',1,'xjsonParseFile(FILE *fp, size_t length, int *lineNumber): xjson.c'],['../xjson_8h.html#a5b542fdced2080503cdbf2cf9a071324',1,'xjsonParseFile(FILE *file, size_t length, int *lineNumber): xjson.c']]],
- ['xjsonparsefilename_102',['xjsonparsefilename',['../xjson_8c.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c'],['../xjson_8h.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c']]],
- ['xjsonseterrorstream_103',['xjsonseterrorstream',['../xjson_8c.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c'],['../xjson_8h.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c']]],
- ['xjsonsetindent_104',['xjsonsetindent',['../xjson_8c.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c'],['../xjson_8h.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c']]],
- ['xjsontostring_105',['xjsontostring',['../xjson_8h.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c'],['../xjson_8c.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c']]],
- ['xjsonunescape_106',['xjsonunescape',['../xjson_8c.html#aa94ae687d4c1775d35b03614ae2fcf62',1,'xjsonUnescape(const char *str): xjson.c'],['../xjson_8h.html#a6a6e84911afbf9ff6e8c0ffaf228bbcb',1,'xjsonUnescape(const char *json): xjson.c']]],
- ['xlastseparator_107',['xlastseparator',['../xstruct_8c.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c'],['../xchange_8h.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c']]],
- ['xlookup_2ec_108',['xlookup.c',['../xlookup_8c.html',1,'']]],
- ['xlookupcount_109',['xlookupcount',['../xlookup_8c.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c'],['../xchange_8h.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c']]],
- ['xlookupfield_110',['xlookupfield',['../xlookup_8c.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c'],['../xchange_8h.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c']]],
- ['xlookupput_111',['xlookupput',['../xlookup_8c.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c'],['../xchange_8h.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c']]],
- ['xlookupputall_112',['xlookupputall',['../xlookup_8c.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xchange_8h.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
- ['xlookupremove_113',['xlookupremove',['../xchange_8h.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c'],['../xlookup_8c.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c']]],
- ['xlookupremoveall_114',['xlookupremoveall',['../xlookup_8c.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xchange_8h.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
- ['xlookuptable_115',['XLookupTable',['../structXLookupTable.html',1,'']]],
- ['xmatchnextid_116',['xmatchnextid',['../xstruct_8c.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c'],['../xchange_8h.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c']]],
- ['xnextidtoken_117',['xnextidtoken',['../xstruct_8c.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c'],['../xchange_8h.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c']]],
- ['xparseboolean_118',['xparseboolean',['../xchange_8h.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c'],['../xchange_8c.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c']]],
- ['xparsedims_119',['xparsedims',['../xchange_8c.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c'],['../xchange_8h.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c']]],
- ['xparsedouble_120',['xparsedouble',['../xchange_8c.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c'],['../xchange_8h.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c']]],
- ['xprintdims_121',['xprintdims',['../xchange_8c.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c'],['../xchange_8h.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c']]],
- ['xprintdouble_122',['xprintdouble',['../xchange_8c.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c'],['../xchange_8h.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c']]],
- ['xprintfloat_123',['xprintfloat',['../xchange_8c.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c'],['../xchange_8h.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c']]],
- ['xreducealldims_124',['xreducealldims',['../xchange_8h.html#acc31fe75f06a6e0e469fba3a57c4fb25',1,'xReduceAllDims(XStructure *s): xstruct.c'],['../xstruct_8c.html#acc31fe75f06a6e0e469fba3a57c4fb25',1,'xReduceAllDims(XStructure *s): xstruct.c']]],
- ['xreducedims_125',['xreducedims',['../xstruct_8c.html#a36fb99b219c5a61db1d1c3d630277987',1,'xReduceDims(int *ndim, int *sizes): xstruct.c'],['../xchange_8h.html#a36fb99b219c5a61db1d1c3d630277987',1,'xReduceDims(int *ndim, int *sizes): xstruct.c']]],
- ['xremovefield_126',['xremovefield',['../xstruct_8c.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c'],['../xchange_8h.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c']]],
- ['xreversefieldorder_127',['xreversefieldorder',['../xstruct_8c.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c'],['../xchange_8h.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c']]],
- ['xsetdebug_128',['xsetdebug',['../xchange_8c.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c'],['../xchange_8h.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c']]],
- ['xsetfield_129',['xsetfield',['../xstruct_8c.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c'],['../xchange_8h.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c']]],
- ['xsetsubstruct_130',['xsetsubstruct',['../xstruct_8c.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c'],['../xchange_8h.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c']]],
- ['xsetsubtype_131',['xsetsubtype',['../xchange_8h.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c'],['../xstruct_8c.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c']]],
- ['xsetverbose_132',['xsetverbose',['../xchange_8c.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c'],['../xchange_8h.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c']]],
- ['xsortfields_133',['xsortfields',['../xstruct_8c.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c'],['../xchange_8h.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c']]],
- ['xsortfieldsbyname_134',['xsortfieldsbyname',['../xstruct_8c.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c'],['../xchange_8h.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c']]],
- ['xsplitid_135',['xsplitid',['../xstruct_8c.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c'],['../xchange_8h.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c']]],
- ['xstringcopyof_136',['xstringcopyof',['../xchange_8c.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c'],['../xchange_8h.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c']]],
- ['xstringelementsizeof_137',['xstringelementsizeof',['../xchange_8c.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c'],['../xchange_8h.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c']]],
- ['xstruct_2ec_138',['xstruct.c',['../xstruct_8c.html',1,'']]],
- ['xstructure_139',['XStructure',['../structXStructure.html',1,'']]],
- ['xtype_140',['XType',['../xchange_8h.html#a1c7e02eda23566a7891310fd09307a70',1,'xchange.h']]],
- ['xtypechar_141',['xtypechar',['../xchange_8c.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c'],['../xchange_8h.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c']]],
- ['xverbose_142',['xverbose',['../xchange_8c.html#a363b67b316973290c30c11bea7931c64',1,'xVerbose: xchange.c'],['../xchange_8h.html#a363b67b316973290c30c11bea7931c64',1,'xVerbose: xchange.c']]],
- ['xvprintf_143',['xvprintf',['../xchange_8h.html#a1f038bf7ddb58819805cfc44162cb403',1,'xchange.h']]],
- ['xzero_144',['xzero',['../xchange_8c.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c'],['../xchange_8h.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c']]]
+ ['xjsonfieldtoindentedstring_97',['xjsonfieldtoindentedstring',['../xjson_8c.html#a01bc599d67f70636a813b103a20170ac',1,'xjsonFieldToIndentedString(int indent, const XField *f): xjson.c'],['../xjson_8h.html#a01bc599d67f70636a813b103a20170ac',1,'xjsonFieldToIndentedString(int indent, const XField *f): xjson.c']]],
+ ['xjsonfieldtostring_98',['xjsonfieldtostring',['../xjson_8c.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c'],['../xjson_8h.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c']]],
+ ['xjsongetindent_99',['xjsongetindent',['../xjson_8c.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c'],['../xjson_8h.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c']]],
+ ['xjsonparseat_100',['xjsonparseat',['../xjson_8c.html#af180900a4afeef713a3fdaeb77a9cba3',1,'xjsonParseAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#acdb7d242c80b4c9dbeedc62b479bfcc7',1,'xjsonParseAt(char **src, int *lineNumber): xjson.c']]],
+ ['xjsonparsefieldat_101',['xjsonparsefieldat',['../xjson_8c.html#aacd36258562860dac1bcc8154cda47cf',1,'xjsonParseFieldAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#ad27c7a065fa6c61354e3293606617889',1,'xjsonParseFieldAt(char **src, int *lineNumber): xjson.c']]],
+ ['xjsonparsefile_102',['xjsonparsefile',['../xjson_8c.html#a9bdaf6099829f03eb2658342e856f0ad',1,'xjsonParseFile(FILE *fp, size_t length, int *lineNumber): xjson.c'],['../xjson_8h.html#a5b542fdced2080503cdbf2cf9a071324',1,'xjsonParseFile(FILE *file, size_t length, int *lineNumber): xjson.c']]],
+ ['xjsonparsefilename_103',['xjsonparsefilename',['../xjson_8c.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c'],['../xjson_8h.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c']]],
+ ['xjsonseterrorstream_104',['xjsonseterrorstream',['../xjson_8c.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c'],['../xjson_8h.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c']]],
+ ['xjsonsetindent_105',['xjsonsetindent',['../xjson_8c.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c'],['../xjson_8h.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c']]],
+ ['xjsontostring_106',['xjsontostring',['../xjson_8c.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c'],['../xjson_8h.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c']]],
+ ['xjsonunescape_107',['xjsonunescape',['../xjson_8h.html#a6a6e84911afbf9ff6e8c0ffaf228bbcb',1,'xjsonUnescape(const char *json): xjson.c'],['../xjson_8c.html#aa94ae687d4c1775d35b03614ae2fcf62',1,'xjsonUnescape(const char *str): xjson.c']]],
+ ['xlastseparator_108',['xlastseparator',['../xstruct_8c.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c'],['../xchange_8h.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c']]],
+ ['xlookup_2ec_109',['xlookup.c',['../xlookup_8c.html',1,'']]],
+ ['xlookupcount_110',['xlookupcount',['../xlookup_8c.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c'],['../xchange_8h.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c']]],
+ ['xlookupfield_111',['xlookupfield',['../xlookup_8c.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c'],['../xchange_8h.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c']]],
+ ['xlookupput_112',['xlookupput',['../xlookup_8c.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c'],['../xchange_8h.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c']]],
+ ['xlookupputall_113',['xlookupputall',['../xlookup_8c.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xchange_8h.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
+ ['xlookupremove_114',['xlookupremove',['../xlookup_8c.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c'],['../xchange_8h.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c']]],
+ ['xlookupremoveall_115',['xlookupremoveall',['../xchange_8h.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xlookup_8c.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
+ ['xlookuptable_116',['XLookupTable',['../structXLookupTable.html',1,'']]],
+ ['xmatchnextid_117',['xmatchnextid',['../xstruct_8c.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c'],['../xchange_8h.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c']]],
+ ['xnextidtoken_118',['xnextidtoken',['../xchange_8h.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c'],['../xstruct_8c.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c']]],
+ ['xparseboolean_119',['xparseboolean',['../xchange_8c.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c'],['../xchange_8h.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c']]],
+ ['xparsedims_120',['xparsedims',['../xchange_8c.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c'],['../xchange_8h.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c']]],
+ ['xparsedouble_121',['xparsedouble',['../xchange_8c.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c'],['../xchange_8h.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c']]],
+ ['xprintdims_122',['xprintdims',['../xchange_8c.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c'],['../xchange_8h.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c']]],
+ ['xprintdouble_123',['xprintdouble',['../xchange_8c.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c'],['../xchange_8h.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c']]],
+ ['xprintfloat_124',['xprintfloat',['../xchange_8c.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c'],['../xchange_8h.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c']]],
+ ['xreducedims_125',['xreducedims',['../xchange_8h.html#a36fb99b219c5a61db1d1c3d630277987',1,'xReduceDims(int *ndim, int *sizes): xstruct.c'],['../xstruct_8c.html#a36fb99b219c5a61db1d1c3d630277987',1,'xReduceDims(int *ndim, int *sizes): xstruct.c']]],
+ ['xreducefield_126',['xreducefield',['../xstruct_8c.html#a3a47073404ef29ef9d533f7ad77b40d7',1,'xReduceField(XField *f): xstruct.c'],['../xchange_8h.html#a3a47073404ef29ef9d533f7ad77b40d7',1,'xReduceField(XField *f): xstruct.c']]],
+ ['xreducestruct_127',['xreducestruct',['../xstruct_8c.html#a12fafe4020caa0baeaaf2698e8490874',1,'xReduceStruct(XStructure *s): xstruct.c'],['../xchange_8h.html#a12fafe4020caa0baeaaf2698e8490874',1,'xReduceStruct(XStructure *s): xstruct.c']]],
+ ['xremovefield_128',['xremovefield',['../xstruct_8c.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c'],['../xchange_8h.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c']]],
+ ['xreversefieldorder_129',['xreversefieldorder',['../xstruct_8c.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c'],['../xchange_8h.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c']]],
+ ['xsetdebug_130',['xsetdebug',['../xchange_8c.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c'],['../xchange_8h.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c']]],
+ ['xsetfield_131',['xsetfield',['../xchange_8h.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c'],['../xstruct_8c.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c']]],
+ ['xsetsubstruct_132',['xsetsubstruct',['../xchange_8h.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c'],['../xstruct_8c.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c']]],
+ ['xsetsubtype_133',['xsetsubtype',['../xstruct_8c.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c'],['../xchange_8h.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c']]],
+ ['xsetverbose_134',['xsetverbose',['../xchange_8c.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c'],['../xchange_8h.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c']]],
+ ['xsortfields_135',['xsortfields',['../xstruct_8c.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c'],['../xchange_8h.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c']]],
+ ['xsortfieldsbyname_136',['xsortfieldsbyname',['../xstruct_8c.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c'],['../xchange_8h.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c']]],
+ ['xsplitid_137',['xsplitid',['../xstruct_8c.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c'],['../xchange_8h.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c']]],
+ ['xstringcopyof_138',['xstringcopyof',['../xchange_8h.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c'],['../xchange_8c.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c']]],
+ ['xstringelementsizeof_139',['xstringelementsizeof',['../xchange_8c.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c'],['../xchange_8h.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c']]],
+ ['xstruct_2ec_140',['xstruct.c',['../xstruct_8c.html',1,'']]],
+ ['xstructure_141',['XStructure',['../structXStructure.html',1,'']]],
+ ['xtype_142',['XType',['../xchange_8h.html#a1c7e02eda23566a7891310fd09307a70',1,'xchange.h']]],
+ ['xtypechar_143',['xtypechar',['../xchange_8c.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c'],['../xchange_8h.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c']]],
+ ['xverbose_144',['xverbose',['../xchange_8c.html#a363b67b316973290c30c11bea7931c64',1,'xVerbose: xchange.c'],['../xchange_8h.html#a363b67b316973290c30c11bea7931c64',1,'xVerbose: xchange.c']]],
+ ['xvprintf_145',['xvprintf',['../xchange_8h.html#a1f038bf7ddb58819805cfc44162cb403',1,'xchange.h']]],
+ ['xzero_146',['xzero',['../xchange_8c.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c'],['../xchange_8h.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c']]]
];
diff --git a/apidoc/html/search/defines_8.js b/apidoc/html/search/defines_8.js
index 4bb44f3..082bc4c 100644
--- a/apidoc/html/search/defines_8.js
+++ b/apidoc/html/search/defines_8.js
@@ -45,6 +45,6 @@ var searchData=
['xchange_5frelease_5fstring_42',['XCHANGE_RELEASE_STRING',['../xchange_8h.html#a1cda2967190e2d61c5560bf6b43d930d',1,'xchange.h']]],
['xchange_5fversion_5fstring_43',['XCHANGE_VERSION_STRING',['../xchange_8h.html#a2e8ac004db0f6cb82e1b7a13b79380c5',1,'xchange.h']]],
['xdprintf_44',['xdprintf',['../xchange_8h.html#a2b0edfea798e9e08122f09dba5f189f8',1,'xchange.h']]],
- ['xjson_5findent_45',['XJSON_INDENT',['../xjson_8h.html#ab69c52214e2e6daa2626bf8722f2d73e',1,'xjson.h']]],
+ ['xjson_5fdefault_5findent_45',['XJSON_DEFAULT_INDENT',['../xjson_8h.html#a2c3bb6f2c4cfef06527f0a66c855b6cc',1,'xjson.h']]],
['xvprintf_46',['xvprintf',['../xchange_8h.html#a1f038bf7ddb58819805cfc44162cb403',1,'xchange.h']]]
];
diff --git a/apidoc/html/search/functions_0.js b/apidoc/html/search/functions_0.js
index 4ef877e..9d4b549 100644
--- a/apidoc/html/search/functions_0.js
+++ b/apidoc/html/search/functions_0.js
@@ -13,16 +13,16 @@ var searchData=
['xcopyofstruct_10',['xcopyofstruct',['../xstruct_8c.html#ad78b2fb3d6d1474c8a44c57575a6e13b',1,'xCopyOfStruct(const XStructure *s): xstruct.c'],['../xchange_8h.html#ad78b2fb3d6d1474c8a44c57575a6e13b',1,'xCopyOfStruct(const XStructure *s): xstruct.c']]],
['xcountfields_11',['xcountfields',['../xstruct_8c.html#af7447cdd983402a27a25a70cc7187275',1,'xCountFields(const XStructure *s): xstruct.c'],['../xchange_8h.html#af7447cdd983402a27a25a70cc7187275',1,'xCountFields(const XStructure *s): xstruct.c']]],
['xcreate1dfield_12',['xcreate1dfield',['../xstruct_8c.html#a9897f06ef8a22d5ddb8538d5fe223ae2',1,'xCreate1DField(const char *name, XType type, int count, const void *values): xstruct.c'],['../xchange_8h.html#a9897f06ef8a22d5ddb8538d5fe223ae2',1,'xCreate1DField(const char *name, XType type, int count, const void *values): xstruct.c']]],
- ['xcreatebooleanfield_13',['xcreatebooleanfield',['../xstruct_8c.html#ad2fa86a7d296f1efa6b41079bc2a6b65',1,'xCreateBooleanField(const char *name, boolean value): xstruct.c'],['../xchange_8h.html#ad2fa86a7d296f1efa6b41079bc2a6b65',1,'xCreateBooleanField(const char *name, boolean value): xstruct.c']]],
+ ['xcreatebooleanfield_13',['xcreatebooleanfield',['../xchange_8h.html#ad2fa86a7d296f1efa6b41079bc2a6b65',1,'xCreateBooleanField(const char *name, boolean value): xstruct.c'],['../xstruct_8c.html#ad2fa86a7d296f1efa6b41079bc2a6b65',1,'xCreateBooleanField(const char *name, boolean value): xstruct.c']]],
['xcreatedoublefield_14',['xcreatedoublefield',['../xstruct_8c.html#ab7ac206d0ec3608a0872f09c7f7bc189',1,'xCreateDoubleField(const char *name, double value): xstruct.c'],['../xchange_8h.html#ab7ac206d0ec3608a0872f09c7f7bc189',1,'xCreateDoubleField(const char *name, double value): xstruct.c']]],
['xcreatefield_15',['xcreatefield',['../xstruct_8c.html#a42e4e75cbf8f721ef4b251c692dcd7cb',1,'xCreateField(const char *name, XType type, int ndim, const int *sizes, const void *value): xstruct.c'],['../xchange_8h.html#a42e4e75cbf8f721ef4b251c692dcd7cb',1,'xCreateField(const char *name, XType type, int ndim, const int *sizes, const void *value): xstruct.c']]],
['xcreateintfield_16',['xcreateintfield',['../xstruct_8c.html#aa4405d56659397e044b6d4fdda394dfa',1,'xCreateIntField(const char *name, int value): xstruct.c'],['../xchange_8h.html#aa4405d56659397e044b6d4fdda394dfa',1,'xCreateIntField(const char *name, int value): xstruct.c']]],
['xcreatelongfield_17',['xcreatelongfield',['../xstruct_8c.html#a4587dcd0157acce30373288e19f1237d',1,'xCreateLongField(const char *name, long long value): xstruct.c'],['../xchange_8h.html#a4587dcd0157acce30373288e19f1237d',1,'xCreateLongField(const char *name, long long value): xstruct.c']]],
- ['xcreatelookup_18',['xcreatelookup',['../xlookup_8c.html#af8bee9eeac947d7e36ea436252e8dc2d',1,'xCreateLookup(const XStructure *s, boolean recursive): xlookup.c'],['../xchange_8h.html#af8bee9eeac947d7e36ea436252e8dc2d',1,'xCreateLookup(const XStructure *s, boolean recursive): xlookup.c']]],
+ ['xcreatelookup_18',['xcreatelookup',['../xchange_8h.html#af8bee9eeac947d7e36ea436252e8dc2d',1,'xCreateLookup(const XStructure *s, boolean recursive): xlookup.c'],['../xlookup_8c.html#af8bee9eeac947d7e36ea436252e8dc2d',1,'xCreateLookup(const XStructure *s, boolean recursive): xlookup.c']]],
['xcreatemixed1dfield_19',['xcreatemixed1dfield',['../xstruct_8c.html#a0b37b00634177189d5e717e3c84820e3',1,'xCreateMixed1DField(const char *name, int size, XField *array): xstruct.c'],['../xchange_8h.html#a5b7c0e588603da8bd8893807408f51e3',1,'xCreateMixed1DField(const char *name, int size, XField *value): xstruct.c']]],
['xcreatemixedarrayfield_20',['xcreatemixedarrayfield',['../xstruct_8c.html#a7bb186343d1ff6dab01cc39e233b9069',1,'xCreateMixedArrayField(const char *name, int ndim, const int *sizes, XField *array): xstruct.c'],['../xchange_8h.html#acf0823001995982977fe1e07b088c953',1,'xCreateMixedArrayField(const char *name, int ndim, const int *sizes, XField *value): xstruct.c']]],
['xcreatescalarfield_21',['xcreatescalarfield',['../xstruct_8c.html#a965f7e58fd1c10570c6f6a472599b08f',1,'xCreateScalarField(const char *name, XType type, const void *value): xstruct.c'],['../xchange_8h.html#a965f7e58fd1c10570c6f6a472599b08f',1,'xCreateScalarField(const char *name, XType type, const void *value): xstruct.c']]],
- ['xcreatestringfield_22',['xcreatestringfield',['../xchange_8h.html#a9dc77bed0d8b738ba615019721a6a2b6',1,'xCreateStringField(const char *name, const char *value): xstruct.c'],['../xstruct_8c.html#a9dc77bed0d8b738ba615019721a6a2b6',1,'xCreateStringField(const char *name, const char *value): xstruct.c']]],
+ ['xcreatestringfield_22',['xcreatestringfield',['../xstruct_8c.html#a9dc77bed0d8b738ba615019721a6a2b6',1,'xCreateStringField(const char *name, const char *value): xstruct.c'],['../xchange_8h.html#a9dc77bed0d8b738ba615019721a6a2b6',1,'xCreateStringField(const char *name, const char *value): xstruct.c']]],
['xcreatestruct_23',['xcreatestruct',['../xstruct_8c.html#a12112584a34e07f9ef7b08f6ef1bc865',1,'xCreateStruct(): xstruct.c'],['../xchange_8h.html#a12112584a34e07f9ef7b08f6ef1bc865',1,'xCreateStruct(): xstruct.c']]],
['xdeepcountfields_24',['xdeepcountfields',['../xstruct_8c.html#a789489313df89d33aa50de911e1e42ff',1,'xDeepCountFields(const XStructure *s): xstruct.c'],['../xchange_8h.html#a789489313df89d33aa50de911e1e42ff',1,'xDeepCountFields(const XStructure *s): xstruct.c']]],
['xdestroyfield_25',['xdestroyfield',['../xstruct_8c.html#ae0ce99c867b11bd14971031eec8ba4ad',1,'xDestroyField(XField *f): xstruct.c'],['../xchange_8h.html#ae0ce99c867b11bd14971031eec8ba4ad',1,'xDestroyField(XField *f): xstruct.c']]],
@@ -38,49 +38,51 @@ var searchData=
['xgetfieldcount_35',['xgetfieldcount',['../xstruct_8c.html#a1720e156de63fd0585224738ccbb5688',1,'xGetFieldCount(const XField *f): xstruct.c'],['../xchange_8h.html#a1720e156de63fd0585224738ccbb5688',1,'xGetFieldCount(const XField *f): xstruct.c']]],
['xgetsubstruct_36',['xgetsubstruct',['../xstruct_8c.html#a97a58e33c4730e272af459dfb7f016f9',1,'xGetSubstruct(const XStructure *s, const char *id): xstruct.c'],['../xchange_8h.html#a97a58e33c4730e272af459dfb7f016f9',1,'xGetSubstruct(const XStructure *s, const char *id): xstruct.c']]],
['xinsertfield_37',['xInsertField',['../xstruct_8c.html#ad6249db6da0a1294d5621cd9fd829f7a',1,'xstruct.c']]],
- ['xischarsequence_38',['xischarsequence',['../xchange_8c.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c'],['../xchange_8h.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c']]],
+ ['xischarsequence_38',['xischarsequence',['../xchange_8h.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c'],['../xchange_8c.html#adcc86baacb3ddebcc529e269223274b8',1,'xIsCharSequence(XType type): xchange.c']]],
['xisfieldvalid_39',['xisfieldvalid',['../xstruct_8c.html#aec6e78e07733ca246ca485b0fcf02d21',1,'xIsFieldValid(const XField *f): xstruct.c'],['../xchange_8h.html#aec6e78e07733ca246ca485b0fcf02d21',1,'xIsFieldValid(const XField *f): xstruct.c']]],
['xisverbose_40',['xisverbose',['../xchange_8c.html#a46a6c2d802ebadd46ffcfdde7fb438b8',1,'xIsVerbose(): xchange.c'],['../xchange_8h.html#a46a6c2d802ebadd46ffcfdde7fb438b8',1,'xIsVerbose(): xchange.c']]],
['xjsonescape_41',['xjsonescape',['../xjson_8c.html#a92336f3031a90784e8667aaa7ad07ca2',1,'xjsonEscape(const char *src, int maxLength): xjson.c'],['../xjson_8h.html#a92336f3031a90784e8667aaa7ad07ca2',1,'xjsonEscape(const char *src, int maxLength): xjson.c']]],
- ['xjsonfieldtostring_42',['xjsonfieldtostring',['../xjson_8h.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c'],['../xjson_8c.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c']]],
- ['xjsongetindent_43',['xjsongetindent',['../xjson_8c.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c'],['../xjson_8h.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c']]],
- ['xjsonparseat_44',['xjsonparseat',['../xjson_8c.html#af180900a4afeef713a3fdaeb77a9cba3',1,'xjsonParseAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#acdb7d242c80b4c9dbeedc62b479bfcc7',1,'xjsonParseAt(char **src, int *lineNumber): xjson.c']]],
- ['xjsonparsefieldat_45',['xjsonparsefieldat',['../xjson_8c.html#aacd36258562860dac1bcc8154cda47cf',1,'xjsonParseFieldAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#ad27c7a065fa6c61354e3293606617889',1,'xjsonParseFieldAt(char **src, int *lineNumber): xjson.c']]],
- ['xjsonparsefile_46',['xjsonparsefile',['../xjson_8c.html#a9bdaf6099829f03eb2658342e856f0ad',1,'xjsonParseFile(FILE *fp, size_t length, int *lineNumber): xjson.c'],['../xjson_8h.html#a5b542fdced2080503cdbf2cf9a071324',1,'xjsonParseFile(FILE *file, size_t length, int *lineNumber): xjson.c']]],
- ['xjsonparsefilename_47',['xjsonparsefilename',['../xjson_8c.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c'],['../xjson_8h.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c']]],
- ['xjsonseterrorstream_48',['xjsonseterrorstream',['../xjson_8c.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c'],['../xjson_8h.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c']]],
- ['xjsonsetindent_49',['xjsonsetindent',['../xjson_8c.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c'],['../xjson_8h.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c']]],
- ['xjsontostring_50',['xjsontostring',['../xjson_8c.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c'],['../xjson_8h.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c']]],
- ['xjsonunescape_51',['xjsonunescape',['../xjson_8c.html#aa94ae687d4c1775d35b03614ae2fcf62',1,'xjsonUnescape(const char *str): xjson.c'],['../xjson_8h.html#a6a6e84911afbf9ff6e8c0ffaf228bbcb',1,'xjsonUnescape(const char *json): xjson.c']]],
- ['xlastseparator_52',['xlastseparator',['../xstruct_8c.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c'],['../xchange_8h.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c']]],
- ['xlookupcount_53',['xlookupcount',['../xlookup_8c.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c'],['../xchange_8h.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c']]],
- ['xlookupfield_54',['xlookupfield',['../xlookup_8c.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c'],['../xchange_8h.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c']]],
- ['xlookupput_55',['xlookupput',['../xlookup_8c.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c'],['../xchange_8h.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c']]],
- ['xlookupputall_56',['xlookupputall',['../xlookup_8c.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xchange_8h.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
- ['xlookupremove_57',['xlookupremove',['../xlookup_8c.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c'],['../xchange_8h.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c']]],
- ['xlookupremoveall_58',['xlookupremoveall',['../xlookup_8c.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xchange_8h.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
- ['xmatchnextid_59',['xmatchnextid',['../xstruct_8c.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c'],['../xchange_8h.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c']]],
- ['xnextidtoken_60',['xnextidtoken',['../xstruct_8c.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c'],['../xchange_8h.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c']]],
- ['xparseboolean_61',['xparseboolean',['../xchange_8c.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c'],['../xchange_8h.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c']]],
- ['xparsedims_62',['xparsedims',['../xchange_8h.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c'],['../xchange_8c.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c']]],
- ['xparsedouble_63',['xparsedouble',['../xchange_8c.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c'],['../xchange_8h.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c']]],
- ['xprintdims_64',['xprintdims',['../xchange_8c.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c'],['../xchange_8h.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c']]],
- ['xprintdouble_65',['xprintdouble',['../xchange_8c.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c'],['../xchange_8h.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c']]],
- ['xprintfloat_66',['xprintfloat',['../xchange_8c.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c'],['../xchange_8h.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c']]],
- ['xreducealldims_67',['xreducealldims',['../xstruct_8c.html#acc31fe75f06a6e0e469fba3a57c4fb25',1,'xReduceAllDims(XStructure *s): xstruct.c'],['../xchange_8h.html#acc31fe75f06a6e0e469fba3a57c4fb25',1,'xReduceAllDims(XStructure *s): xstruct.c']]],
+ ['xjsonfieldtoindentedstring_42',['xjsonfieldtoindentedstring',['../xjson_8c.html#a01bc599d67f70636a813b103a20170ac',1,'xjsonFieldToIndentedString(int indent, const XField *f): xjson.c'],['../xjson_8h.html#a01bc599d67f70636a813b103a20170ac',1,'xjsonFieldToIndentedString(int indent, const XField *f): xjson.c']]],
+ ['xjsonfieldtostring_43',['xjsonfieldtostring',['../xjson_8h.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c'],['../xjson_8c.html#a42101fa63cb1c6e265f317e9b8719d5f',1,'xjsonFieldToString(const XField *f): xjson.c']]],
+ ['xjsongetindent_44',['xjsongetindent',['../xjson_8c.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c'],['../xjson_8h.html#a9f11227a58e797a4a335331d94c8e888',1,'xjsonGetIndent(): xjson.c']]],
+ ['xjsonparseat_45',['xjsonparseat',['../xjson_8c.html#af180900a4afeef713a3fdaeb77a9cba3',1,'xjsonParseAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#acdb7d242c80b4c9dbeedc62b479bfcc7',1,'xjsonParseAt(char **src, int *lineNumber): xjson.c']]],
+ ['xjsonparsefieldat_46',['xjsonparsefieldat',['../xjson_8c.html#aacd36258562860dac1bcc8154cda47cf',1,'xjsonParseFieldAt(char **pos, int *lineNumber): xjson.c'],['../xjson_8h.html#ad27c7a065fa6c61354e3293606617889',1,'xjsonParseFieldAt(char **src, int *lineNumber): xjson.c']]],
+ ['xjsonparsefile_47',['xjsonparsefile',['../xjson_8c.html#a9bdaf6099829f03eb2658342e856f0ad',1,'xjsonParseFile(FILE *fp, size_t length, int *lineNumber): xjson.c'],['../xjson_8h.html#a5b542fdced2080503cdbf2cf9a071324',1,'xjsonParseFile(FILE *file, size_t length, int *lineNumber): xjson.c']]],
+ ['xjsonparsefilename_48',['xjsonparsefilename',['../xjson_8c.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c'],['../xjson_8h.html#afff9ee9473a0c939d18dba977cfac075',1,'xjsonParseFilename(const char *fileName, int *lineNumber): xjson.c']]],
+ ['xjsonseterrorstream_49',['xjsonseterrorstream',['../xjson_8c.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c'],['../xjson_8h.html#a23a7bd364a80bc2bab9ce917ed5f22ea',1,'xjsonSetErrorStream(FILE *fp): xjson.c']]],
+ ['xjsonsetindent_50',['xjsonsetindent',['../xjson_8c.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c'],['../xjson_8h.html#a1f877c9790a53582cdda10659a3d033a',1,'xjsonSetIndent(int nchars): xjson.c']]],
+ ['xjsontostring_51',['xjsontostring',['../xjson_8c.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c'],['../xjson_8h.html#a53128045970e973134867c96a6465abc',1,'xjsonToString(const XStructure *s): xjson.c']]],
+ ['xjsonunescape_52',['xjsonunescape',['../xjson_8c.html#aa94ae687d4c1775d35b03614ae2fcf62',1,'xjsonUnescape(const char *str): xjson.c'],['../xjson_8h.html#a6a6e84911afbf9ff6e8c0ffaf228bbcb',1,'xjsonUnescape(const char *json): xjson.c']]],
+ ['xlastseparator_53',['xlastseparator',['../xstruct_8c.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c'],['../xchange_8h.html#ab9a9fbc1235164bfeed5fbba1f7d8692',1,'xLastSeparator(const char *id): xstruct.c']]],
+ ['xlookupcount_54',['xlookupcount',['../xchange_8h.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c'],['../xlookup_8c.html#a13e81b8f1bf3e1c3572ca74edb2836fe',1,'xLookupCount(const XLookupTable *tab): xlookup.c']]],
+ ['xlookupfield_55',['xlookupfield',['../xlookup_8c.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c'],['../xchange_8h.html#a5e3a316b7d0c5c40ed079f3df2d9fcc9',1,'xLookupField(const XLookupTable *tab, const char *id): xlookup.c']]],
+ ['xlookupput_56',['xlookupput',['../xlookup_8c.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c'],['../xchange_8h.html#a3b423bf135d2ed42319abff99fda78e4',1,'xLookupPut(XLookupTable *tab, const char *prefix, const XField *field, XField **oldValue): xlookup.c']]],
+ ['xlookupputall_57',['xlookupputall',['../xlookup_8c.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xchange_8h.html#a91a19055586ae79dee6d43c5de0cb32b',1,'xLookupPutAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
+ ['xlookupremove_58',['xlookupremove',['../xlookup_8c.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c'],['../xchange_8h.html#a85f2c5443ebef48499398453a39710da',1,'xLookupRemove(XLookupTable *tab, const char *id): xlookup.c']]],
+ ['xlookupremoveall_59',['xlookupremoveall',['../xchange_8h.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c'],['../xlookup_8c.html#add4a6ffa5866d770bd21636d00b9d3d7',1,'xLookupRemoveAll(XLookupTable *tab, const char *prefix, const XStructure *s, boolean recursive): xlookup.c']]],
+ ['xmatchnextid_60',['xmatchnextid',['../xstruct_8c.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c'],['../xchange_8h.html#a90aae0dafd1d461877eef63c9c730592',1,'xMatchNextID(const char *token, const char *id): xstruct.c']]],
+ ['xnextidtoken_61',['xnextidtoken',['../xstruct_8c.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c'],['../xchange_8h.html#af436eb535b32fa88ab4e600c0a37c19d',1,'xNextIDToken(const char *id): xstruct.c']]],
+ ['xparseboolean_62',['xparseboolean',['../xchange_8c.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c'],['../xchange_8h.html#a994ae91adbbffc3b55b47b0219338282',1,'xParseBoolean(char *str, char **end): xchange.c']]],
+ ['xparsedims_63',['xparsedims',['../xchange_8c.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c'],['../xchange_8h.html#a309b9ae681c40121517672ca50ba665b',1,'xParseDims(const char *src, int *sizes): xchange.c']]],
+ ['xparsedouble_64',['xparsedouble',['../xchange_8c.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c'],['../xchange_8h.html#a7e2e177c11fe7f44ca5ce11f316c0ad9',1,'xParseDouble(const char *str, char **tail): xchange.c']]],
+ ['xprintdims_65',['xprintdims',['../xchange_8c.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c'],['../xchange_8h.html#aced93c2ca8cef260663ff1f9cfc0140e',1,'xPrintDims(char *dst, int ndim, const int *sizes): xchange.c']]],
+ ['xprintdouble_66',['xprintdouble',['../xchange_8c.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c'],['../xchange_8h.html#a3eb8c827cfc2139687d175649284f7be',1,'xPrintDouble(char *str, double value): xchange.c']]],
+ ['xprintfloat_67',['xprintfloat',['../xchange_8c.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c'],['../xchange_8h.html#a9ee406a1c0c8d1076620ae4f77695216',1,'xPrintFloat(char *str, float value): xchange.c']]],
['xreducedims_68',['xreducedims',['../xstruct_8c.html#a36fb99b219c5a61db1d1c3d630277987',1,'xReduceDims(int *ndim, int *sizes): xstruct.c'],['../xchange_8h.html#a36fb99b219c5a61db1d1c3d630277987',1,'xReduceDims(int *ndim, int *sizes): xstruct.c']]],
- ['xremovefield_69',['xremovefield',['../xstruct_8c.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c'],['../xchange_8h.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c']]],
- ['xreversefieldorder_70',['xreversefieldorder',['../xstruct_8c.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c'],['../xchange_8h.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c']]],
- ['xsetdebug_71',['xsetdebug',['../xchange_8c.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c'],['../xchange_8h.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c']]],
- ['xsetfield_72',['xsetfield',['../xchange_8h.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c'],['../xstruct_8c.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c']]],
- ['xsetsubstruct_73',['xsetsubstruct',['../xstruct_8c.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c'],['../xchange_8h.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c']]],
- ['xsetsubtype_74',['xsetsubtype',['../xstruct_8c.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c'],['../xchange_8h.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c']]],
- ['xsetverbose_75',['xsetverbose',['../xchange_8c.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c'],['../xchange_8h.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c']]],
- ['xsortfields_76',['xsortfields',['../xstruct_8c.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c'],['../xchange_8h.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c']]],
- ['xsortfieldsbyname_77',['xsortfieldsbyname',['../xchange_8h.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c'],['../xstruct_8c.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c']]],
- ['xsplitid_78',['xsplitid',['../xstruct_8c.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c'],['../xchange_8h.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c']]],
- ['xstringcopyof_79',['xstringcopyof',['../xchange_8c.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c'],['../xchange_8h.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c']]],
- ['xstringelementsizeof_80',['xstringelementsizeof',['../xchange_8c.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c'],['../xchange_8h.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c']]],
- ['xtypechar_81',['xtypechar',['../xchange_8c.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c'],['../xchange_8h.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c']]],
- ['xzero_82',['xzero',['../xchange_8c.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c'],['../xchange_8h.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c']]]
+ ['xreducefield_69',['xreducefield',['../xstruct_8c.html#a3a47073404ef29ef9d533f7ad77b40d7',1,'xReduceField(XField *f): xstruct.c'],['../xchange_8h.html#a3a47073404ef29ef9d533f7ad77b40d7',1,'xReduceField(XField *f): xstruct.c']]],
+ ['xreducestruct_70',['xreducestruct',['../xstruct_8c.html#a12fafe4020caa0baeaaf2698e8490874',1,'xReduceStruct(XStructure *s): xstruct.c'],['../xchange_8h.html#a12fafe4020caa0baeaaf2698e8490874',1,'xReduceStruct(XStructure *s): xstruct.c']]],
+ ['xremovefield_71',['xremovefield',['../xstruct_8c.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c'],['../xchange_8h.html#aec9f913cdb79d8653668a5d9bdda6ab1',1,'xRemoveField(XStructure *s, const char *name): xstruct.c']]],
+ ['xreversefieldorder_72',['xreversefieldorder',['../xstruct_8c.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c'],['../xchange_8h.html#ad32d8a3f211a3b101142879ae31146ec',1,'xReverseFieldOrder(XStructure *s, boolean recursive): xstruct.c']]],
+ ['xsetdebug_73',['xsetdebug',['../xchange_8c.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c'],['../xchange_8h.html#a6c1304b59a5882b2286e86c6837faead',1,'xSetDebug(boolean value): xchange.c']]],
+ ['xsetfield_74',['xsetfield',['../xchange_8h.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c'],['../xstruct_8c.html#ab1cb91bd6aa14c0dae9d24bfbe7b76f4',1,'xSetField(XStructure *s, XField *f): xstruct.c']]],
+ ['xsetsubstruct_75',['xsetsubstruct',['../xstruct_8c.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c'],['../xchange_8h.html#ad84cbb4639f2fbfb604b698a86caf944',1,'xSetSubstruct(XStructure *s, const char *name, XStructure *substruct): xstruct.c']]],
+ ['xsetsubtype_76',['xsetsubtype',['../xstruct_8c.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c'],['../xchange_8h.html#a6b7bdd2637d8a15a709e293d0c606699',1,'xSetSubtype(XField *f, const char *type): xstruct.c']]],
+ ['xsetverbose_77',['xsetverbose',['../xchange_8c.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c'],['../xchange_8h.html#afbe85067ddbc92577cd00ac8f6e3026f',1,'xSetVerbose(boolean value): xchange.c']]],
+ ['xsortfields_78',['xsortfields',['../xstruct_8c.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c'],['../xchange_8h.html#aa1d006a2788adeb0fc9b4799297a69ff',1,'xSortFields(XStructure *s, int(*cmp)(const XField **f1, const XField **f2), boolean recursive): xstruct.c']]],
+ ['xsortfieldsbyname_79',['xsortfieldsbyname',['../xchange_8h.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c'],['../xstruct_8c.html#a74d1f6b9b92ebe82353e75a3d7e9daae',1,'xSortFieldsByName(XStructure *s, boolean recursive): xstruct.c']]],
+ ['xsplitid_80',['xsplitid',['../xstruct_8c.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c'],['../xchange_8h.html#acd6af91336f4b5501d0a0e3d5cf88ad3',1,'xSplitID(char *id, char **pKey): xstruct.c']]],
+ ['xstringcopyof_81',['xstringcopyof',['../xchange_8c.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c'],['../xchange_8h.html#a01d730a1a98963816de2dd73e72957a5',1,'xStringCopyOf(const char *str): xchange.c']]],
+ ['xstringelementsizeof_82',['xstringelementsizeof',['../xchange_8c.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c'],['../xchange_8h.html#a8816199a4473325a942e14057dcd9ab8',1,'xStringElementSizeOf(XType type): xchange.c']]],
+ ['xtypechar_83',['xtypechar',['../xchange_8c.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c'],['../xchange_8h.html#ae6b0637ea4bc09f522c67e4c49da13ce',1,'xTypeChar(XType type): xchange.c']]],
+ ['xzero_84',['xzero',['../xchange_8c.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c'],['../xchange_8h.html#a3605bad086ec39e14f97e42e25334227',1,'xZero(void *buf, XType type, int count): xchange.c']]]
];
diff --git a/apidoc/html/toc.xml b/apidoc/html/toc.xml
index 1d055b0..93204b5 100644
--- a/apidoc/html/toc.xml
+++ b/apidoc/html/toc.xml
@@ -182,8 +182,9 @@
int xPrintFloat (char *str, float value)
-
-int xReduceAllDims (XStructure *s) int xReduceDims (int *ndim, int *sizes)
+
+int xReduceField (XField *f)
+
+int xReduceStruct (XStructure *s) XField * xRemoveField (XStructure *s, const char *name)
@@ -745,7 +747,7 @@ int xReverseFieldOrder (XStructure *s, boolean recursive)
-xGetField()
-
@@ -2047,7 +2049,7 @@
-
◆ xReduceAllDims()
+
+◆ xReduceDims()
-
+ int xReduceAllDims
+ int xReduceDims
(
- XStructure *
- s )
+ int *
+ ndim,
+
+
+
+
+ int *
+ sizes
+
+ )
+
-
-
+ s Pointer to a structure.
+ [in,out] ndim Pointer to the dimensions (will be updated in situ) [in,out] sizes Array of sizes along the dimensions (will be updated in situ)
-
+
+
-◆ xReduceDims()
+
+◆ xReduceField()
+
-
- int xReduceDims
+ int xReduceField
(
- int *
- ndim,
-
-
+
+ XField *
+ f )
- int *
- sizes
+
+
+
+ f Pointer to a field
+
+
+◆ xReduceStruct()
+
+
+
int xReduceStruct
+ (
+ XStructure *
+ s )
- )
-
-
-
- [in,out] ndim Pointer to the dimensions (will be updated in situ)
+ [in,out] sizes Array of sizes along the dimensions (will be updated in situ) s Pointer to a structure.
-
+
+
-xReverseFieldOrder()
-
char * xjsonEscape (const char *src, int maxLength)
+
+char * xjsonFieldToIndentedString (int indent, const XField *f) char * xjsonFieldToString (const XField *f)
@@ -205,6 +207,46 @@ int xjsonGetIndent () References x_error().
char * xjsonFieldToIndentedString | +( | +int | +indent, | +
+ | + | const XField * | +f | +
+ | ) | ++ |
Converts an XField into its JSON representation, with the specified indentation of white spaces in front of every line. Conversion errors are reported to stderr or the altenate stream set by xSetErrorStream().
+indent | Number of white spaces to insert in front of each line. |
f | Pointer to field |
References FALSE, x_error(), xErrorDescription(), and xStringCopyOf().
+References FALSE, xErrorDescription(), and xStringCopyOf().
+References xjsonFieldToIndentedString().
@@ -264,6 +306,8 @@References XJSON_DEFAULT_INDENT.
+ @@ -506,6 +550,8 @@References x_error().
+ diff --git a/apidoc/html/xjson_8c.js b/apidoc/html/xjson_8c.js index 1995e85..5661e50 100644 --- a/apidoc/html/xjson_8c.js +++ b/apidoc/html/xjson_8c.js @@ -4,6 +4,7 @@ var xjson_8c = [ "FALSE", "xjson_8c.html#aa93f0eb578d23995850d61f7d61c55c1", null ], [ "TRUE", "xjson_8c.html#aa8cecfc5c5c054d2875c03e77b7be15d", null ], [ "xjsonEscape", "xjson_8c.html#a92336f3031a90784e8667aaa7ad07ca2", null ], + [ "xjsonFieldToIndentedString", "xjson_8c.html#a01bc599d67f70636a813b103a20170ac", null ], [ "xjsonFieldToString", "xjson_8c.html#a42101fa63cb1c6e265f317e9b8719d5f", null ], [ "xjsonGetIndent", "xjson_8c.html#a9f11227a58e797a4a335331d94c8e888", null ], [ "xjsonParseAt", "xjson_8c.html#af180900a4afeef713a3fdaeb77a9cba3", null ], diff --git a/apidoc/html/xjson_8h.html b/apidoc/html/xjson_8h.html index 1e80657..4c6ab2c 100644 --- a/apidoc/html/xjson_8h.html +++ b/apidoc/html/xjson_8h.html @@ -125,15 +125,17 @@ #define