]> Kevux Git Server - fll/commitdiff
Progress: Continue working on getting FSS Embedded Read working and also add Object...
authorKevin Day <Kevin@kevux.org>
Sun, 25 Aug 2024 22:07:47 +0000 (17:07 -0500)
committerKevin Day <Kevin@kevux.org>
Sun, 25 Aug 2024 22:07:47 +0000 (17:07 -0500)
This starts the work for the handling of the depths.
I noticed the tests now pass despite the depths being incomplete.
Looks like I need to add some runtime tests for depths for both 0.6 and 0.7.

This brings in the runtime test expects from the 0.6 branch.

I have some brain storming to do so that I can determine how I want to handle the depth processing logic.

I decided that now is a good time to add support for the Object close.
This is to address the problem where I cannot print the original Object close for FSS Extended List and FSS Embedded List.
The reason being that the necessary data is not actually recorded.
I have not yet updated the unit tests.
I have not yet did any actual tests to confirm that this works.
I have not yet actually utilized this in the FSS Extended List Read and FSS Embedded List Read programs.
I have only made the low level changes and made sure everything compiles.

214 files changed:
level_0/f_fss/c/fss/item.h
level_1/fl_fss/c/fss/basic.h
level_1/fl_fss/c/fss/basic_list.h
level_1/fl_fss/c/fss/embedded_list.c
level_1/fl_fss/c/fss/embedded_list.h
level_1/fl_fss/c/fss/extended.h
level_1/fl_fss/c/fss/extended_list.c
level_1/fl_fss/c/fss/extended_list.h
level_1/fl_fss/c/fss/private-payload-helper.h
level_1/fl_fss/c/fss/private-payload.h
level_2/fll_fss/c/fss/basic.h
level_2/fll_fss/c/fss/basic_list.h
level_2/fll_fss/c/fss/embedded_list.c
level_2/fll_fss/c/fss/embedded_list.h
level_2/fll_fss/c/fss/extended.h
level_2/fll_fss/c/fss/extended_list.c
level_2/fll_fss/c/fss/extended_list.h
level_2/fll_fss/c/fss/payload.h
level_3/fss_read/c/embedded_list/fss_read.c
level_3/fss_read/c/embedded_list/process_normal.c
level_3/fss_read/c/extended_list/fss_read.c
level_3/fss_read/c/main/common.c
level_3/fss_read/c/main/common/define.h
level_3/fss_read/c/main/common/type.c
level_3/fss_read/c/main/common/type.h
level_3/fss_read/c/main/fss_read.c
level_3/fss_read/c/main/process_normal.c
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-content-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-line-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-line-1.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-line-100.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-line-5.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-line-6.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-line-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-line-1.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-line-100.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-line-5.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-line-6.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-a-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-привет_has_space-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-name-привет_has_space-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0000-basic-object_and_content-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-content-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-line-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-line-1.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-line-100.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-line-5.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-line-6.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-line-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-line-1.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-line-100.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-line-5.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-line-6.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name--select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name--total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-a-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-hi-select-0-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-hi-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-hi-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0001-empty_name_list-object_and_content-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-name-a-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-name-привет_has_space-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-name-привет_has_space-select-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-name-привет_has_space-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-name-привет_has_space.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-original.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-select-0-original.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-select-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content-trim.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-content.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-line-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-line-1.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-line-100.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-line-5.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-line-6.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-line-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-line-1.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-line-100.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-line-5.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-line-6.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name--select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-columns-empty.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-columns.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-select-100-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-select-2-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-select-5-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-select-6-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-a-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-hi-select-0-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-hi-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-hi-select-1-empty-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-hi-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-hi-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-payload-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-мир-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-привет_has_space-select-0-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-привет_has_space-select-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-привет_has_space-select-1-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-name-привет_has_space-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-original.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-select-0.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-total.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content-trim.expect
level_3/fss_read/tests/runtime/fss_0008/expect/test-0002-mixed-object_and_content.expect

index 6620cddc89e5a9aa9d1a9feeeb29de6841092bce..3bd8c734b4f53c5fff118616b979dace58c5e6af 100644 (file)
@@ -28,24 +28,27 @@ extern "C" {
  * Any resizing must be manually performed on each applicable property.
  *
  * Properties:
- *   - object:  The object.
- *   - content: The content associated with the object.
- *   - parent:  A location referencing a parrent object or content that this object content is nested under.
+ *   - object:  The Object.
+ *   - close:   The range representing where the Object closes for standards that require closing characters (such as after the Content).
+ *   - content: The Content associated with the Object.
+ *   - parent:  A location referencing a parrent Object or Content that this Object Content is nested under.
  */
 #ifndef _di_f_fss_item_t_
   typedef struct {
     f_range_t object;
+    f_range_t close;
     f_ranges_t content;
 
     f_number_unsigned_t parent;
   } f_fss_item_t;
 
-  #define f_fss_item_t_initialize { f_range_t_initialize, f_ranges_t_initialize, 0 }
+  #define f_fss_item_t_initialize { f_range_t_initialize, f_range_t_initialize, f_ranges_t_initialize, 0 }
 
-  #define macro_f_fss_item_t_initialize_1(object, content, parent) macro_f_number_unsigneds_t_initialize_1(object, content, parent)
+  #define macro_f_fss_item_t_initialize_1(object, close, content, parent) macro_f_number_unsigneds_t_initialize_1(object, close, content, parent)
 
   #define macro_f_fss_item_t_clear(item) \
     macro_f_range_t_clear(item.object); \
+    macro_f_range_t_clear(item.close); \
     macro_f_ranges_t_clear(item.content); \
     item.parent = 0;
 #endif // _di_f_fss_item_t_
index ea3e74eb95485b71ddd9a80c77c5918ac33b30b7..7d50ae2f1b8ed993981f200b13ff6efea255bc63 100644 (file)
@@ -41,10 +41,16 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A set of all locations where a valid content was found.
+ *
+ *   Must not be NULL.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -103,8 +109,12 @@ extern "C" {
  *   If f_fss_complete_full_e, this will write any appropriate open and close aspects of this content, including the final newline.
  * @param range
  *   The start/stop location within the content string to write as an content.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -152,14 +162,20 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A location where a valid object was found.
+ *
+ *   Must not be NULL.
  * @param quote
  *   (optional) This will store the quote type representing the character to use (from the f_fss_quote_type_*_e).
  *
  *   Set to NULL to not use.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -231,8 +247,12 @@ extern "C" {
  *   If f_fss_complete_partial_trim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object (inside the quotes).
  * @param range
  *   The start/stop location within the object string to write as an object.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the object is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index 892978da4a3ba8e91d77a9ce444e749ce9882172..d26f88ac8b909ab2e90c2e10bdc507f7e3a6e913 100644 (file)
@@ -41,14 +41,22 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A set of all locations where a valid content was found.
+ *
+ *   Must not be NULL.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param comments
  *   An array of ranges representing where comments are found within any valid content.
  *   This only stores comments found within valid content only.
  *   The comment range will include the trailing newline.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -116,8 +124,12 @@ extern "C" {
  *   Set to NULL to not use.
  * @param range
  *   The start/stop location within the content string to write as an content.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -174,10 +186,16 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A location where a valid object was found.
+ *
+ *   Must not be NULL.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -245,8 +263,12 @@ extern "C" {
  *   If f_fss_complete_partial_tim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object.
  * @param range
  *   The start/stop location within the object string to write as an object.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the object is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index ca20a75b5e4c0b0f1f429c7aec33865101cd3f4d..e001f6ec4c590145c5b023a5b6237921e9def51b 100644 (file)
@@ -19,8 +19,7 @@ extern "C" {
 
     f_fss_skip_past_delimit(buffer, range, state);
     if (F_status_is_error(state->status)) return;
-    if (state->status == F_data_not) return;
-    if (state->status == F_okay_eos || state->status == F_okay_stop) return;
+    if (state->status == F_data_not || state->status == F_okay_eos || state->status == F_okay_stop) return;
 
     fl_fss_data_embedded_list_t * const cache = (fl_fss_data_embedded_list_t *) state->data;
 
@@ -37,7 +36,7 @@ extern "C" {
     state->status = f_memory_array_increase(state->step_small, sizeof(f_fss_nest_t), (void **) &found->depth, &found->used, &found->size);
     if (F_status_is_error(state->status)) return;
 
-    state->status = f_memory_array_increase(state->step_small, sizeof(f_number_unsigned_t), (void **) &cache->objects->array, &cache->objects->used, &cache->objects->size);
+    state->status = f_memory_array_increase(state->step_small, sizeof(f_range_t), (void **) &cache->objects->array, &cache->objects->used, &cache->objects->size);
     if (F_status_is_error(state->status)) return;
 
     state->status = f_memory_array_increase(state->step_small, sizeof(f_number_unsigned_t), (void **) &cache->positions->array, &cache->positions->used, &cache->positions->size);
@@ -603,6 +602,9 @@ extern "C" {
             delimits->array[delimits->used++] = comment_delimit;
           }
 
+          found->depth[depth].array[position].close.start = line_start;
+          found->depth[depth].array[position].close.stop = range->start - 1;
+
           newline_last = range->start;
           line_start = range->start + 1;
           graph_first = 0x1;
index f1077bc1fa7089fd91dfa5957df5536926d636b5..58dd6a01d235de91b9d4327f6a8cd6ad1cf90fd7 100644 (file)
@@ -48,7 +48,7 @@ extern "C" {
 
   #define fl_fss_data_embedded_list_t_initialize { 0, 0, 0 }
 
-  #define macro_fl_fss_data_embedded_list_t_initialize_1(objects, positions, slashes) { objects, positions, slashes }
+  #define macro_fl_fss_data_embedded_list_t_initialize_1(objects, closes, positions, slashes) { objects, positions, slashes }
 
   #define macro_fl_fss_data_embedded_list_t_clear(data) \
     data.objects = 0; \
@@ -72,14 +72,22 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A set of all locations where a valid content was found.
+ *
+ *   Must not be NULL.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param comments
  *   An array of ranges representing where comments are found within any valid content.
  *   This only stores comments found within valid content only.
  *   The comment range will include the trailing newline.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -155,8 +163,12 @@ extern "C" {
  *   Set to NULL to not use.
  * @param range
  *   The start/stop location within the content string to write as an content.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -212,10 +224,16 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A location where a valid object was found.
+ *
+ *   Must not be NULL.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -283,8 +301,12 @@ extern "C" {
  *   If f_fss_complete_partial_tim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object.
  * @param range
  *   The start/stop location within the object string to write as an object.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the object is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index 0251e8581e940f2cea6a5b71bf7c9858b285d9e2..14fcbb0af391208465a96df00f0fafb9fc9f8814 100644 (file)
@@ -41,8 +41,12 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A set of all locations where a valid content was found.
+ *
+ *   Must not be NULL.
  * @param quotes
  *   (optional) This will store the quote type representing the character to use (from the f_fss_quote_type_*_e).
  *   Each index in quotes represents a position within the found array index.
@@ -50,6 +54,8 @@ extern "C" {
  *   Set to NULL to not use.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -121,8 +127,12 @@ extern "C" {
  *   If f_fss_complete_full_e, this will write any appropriate open and close aspects of this content, including the final newline.
  * @param range
  *   The start/stop location within the content string to write as an content.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -180,14 +190,20 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A location where a valid object was found.
+ *
+ *   Must not be NULL.
  * @param quote
  *   (optional) This will store the quote type representing the character to use (from the f_fss_quote_type_*_e).
  *
  *   Set to NULL to not use.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -258,8 +274,12 @@ extern "C" {
  *   If f_fss_complete_partial_e, this will write any appropriate open and close aspects of this object.
  * @param range
  *   The start/stop location within the object string to write as an object.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the object is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index 3c0e393906e3eb176a4dc18161a16eb623a76a6b..58fb27d92acd9996b56b5517c6ad7745f9164455 100644 (file)
@@ -6,11 +6,11 @@ extern "C" {
 #endif
 
 #ifndef _di_fl_fss_extended_list_content_read_
-  void fl_fss_extended_list_content_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const found, f_number_unsigneds_t * const delimits, f_ranges_t * const comments, f_state_t * const state) {
+  void fl_fss_extended_list_content_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const found, f_range_t * const close, f_number_unsigneds_t * const delimits, f_ranges_t * const comments, f_state_t * const state) {
     #ifndef _di_level_1_parameter_checking_
       if (!state) return;
 
-      if (!range || !found || !delimits || !comments) {
+      if (!range || !found || !close || !delimits || !comments) {
         state->status = F_status_set_error(F_parameter);
 
         return;
@@ -48,7 +48,7 @@ extern "C" {
     f_number_unsigned_t newline_last = range->start;
     f_number_unsigned_t slash_first = 0;
     f_number_unsigned_t slash_count = 0;
-    f_number_unsigned_t start = 0;
+    f_number_unsigned_t line_start = 0;
 
     // Identify where the content ends.
     while (range->start <= range->stop && range->start < buffer.used) {
@@ -63,6 +63,7 @@ extern "C" {
 
       if (state->status == F_okay_eol) {
         newline_last = range->start++;
+        line_start = range->start;
 
         continue;
       }
@@ -165,6 +166,9 @@ extern "C" {
 
         // Found a valid content close, set stop point to last newline.
         if (buffer.string[range->start] == f_fss_eol_s.string[0]) {
+          close->start = line_start;
+          close->stop = range->start - 1;
+
           ++range->start;
 
           // If the last newline is the entire start, then there is no Content.
@@ -189,12 +193,7 @@ extern "C" {
       if (buffer.string[range->start] == f_fss_comment_s.string[0]) {
 
         // The newline_last is initialized to the range->start, which may not actually be a new line.
-        if (buffer.string[newline_last] == f_string_eol_s.string[0]) {
-          start = newline_last + 1;
-        }
-        else {
-          start = newline_last;
-        }
+        line_start = (buffer.string[newline_last] == f_string_eol_s.string[0]) ? newline_last + 1 : newline_last;
 
         f_fss_seek_to_eol(buffer, range, state);
         if (F_status_is_error(state->status)) break;
@@ -209,9 +208,12 @@ extern "C" {
           newline_last = range->start;
         }
 
-        comments->array[comments->used].start = start;
+        comments->array[comments->used].start = line_start;
         comments->array[comments->used++].stop = range->start++;
 
+        // The newline_last is initialized to the range->start, which may not actually be a new line.
+        line_start = (buffer.string[newline_last] == f_string_eol_s.string[0]) ? newline_last + 1 : newline_last;
+
         continue;
       }
 
index a6e946884b8ee5b6cb8bc907bcb501d79940fb82..3a8e5f967afc2ce37dc6775eefefbac6a3aaab6c 100644 (file)
@@ -43,14 +43,26 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
  *   A set of all locations where a valid content was found.
+ *
+ *   Must not be NULL.
+ * @param close
+ *   A location where a valid Object close is found.
+ *
+ *   Must not be NULL.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param comments
  *   An array of ranges representing where comments are found within any valid content.
  *   This only stores comments found within valid content only.
  *   The comment range will include the trailing newline.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -92,7 +104,7 @@ extern "C" {
  * @see f_utf_buffer_increment()
  */
 #ifndef _di_fl_fss_extended_list_content_read_
-  extern void fl_fss_extended_list_content_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const found, f_number_unsigneds_t * const delimits, f_ranges_t * const comments, f_state_t * const state);
+  extern void fl_fss_extended_list_content_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const found, f_range_t * const close, f_number_unsigneds_t * const delimits, f_ranges_t * const comments, f_state_t * const state);
 #endif // _di_fl_fss_extended_list_content_read_
 
 /**
@@ -124,8 +136,12 @@ extern "C" {
  *   Set to NULL to not use.
  * @param range
  *   The start/stop location within the content string to write as an content.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -181,10 +197,16 @@ extern "C" {
  *   The start location will be updated as the buffer is being processed.
  *   The start location will represent where the read stopped on return.
  *   A start location past the stop location or buffer used means that the entire range was processed.
+ *
+ *   Must not be NULL.
  * @param found
- *   A location where a valid object was found.
+ *   A location where a valid Object is found.
+ *
+ *   Must not be NULL.
  * @param delimits
  *   A delimits array representing where delimits exist within the buffer.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -252,8 +274,12 @@ extern "C" {
  *   If f_fss_complete_partial_tim, this will write any appropriate open and close aspects of this object, but will omit whitespace before and after the object.
  * @param range
  *   The start/stop location within the object string to write as an object.
+ *
+ *   Must not be NULL.
  * @param destination
  *   The buffer where the object is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index bb5fa65e50e0f21a1c83e3e0851db1ed1d667dff..64eb631afa68f670f407a091f203e7f9b29351b1 100644 (file)
@@ -20,6 +20,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -34,9 +35,11 @@ extern "C" {
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
  *   The internal.range is modified.
+ *
  *   Must not be NULL.
  * @param buffer
  *   The buffer to write using the FLL Extended (FSS-0001) format.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -57,6 +60,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -72,9 +76,11 @@ extern "C" {
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
  *   The internal.range is modified.
+ *
  *   Must not be NULL.
  * @param buffer
  *   The buffer to write using the FLL Extended (FSS-0001) format.
+ *
  *   Must not be NULL.
  * @param append_on_empty
  *   Append the quoted empty string when the this flag is set.
@@ -98,6 +104,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -113,9 +120,11 @@ extern "C" {
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
  *   The internal.range is modified.
+ *
  *   Must not be NULL.
  * @param destination
  *   The buffer to append to.
+ *
  *   Must not be NULL.
  * @param separator
  *   The separate to use between each quoted empty string.
@@ -139,6 +148,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -154,9 +164,11 @@ extern "C" {
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
  *   The internal.range is modified.
+ *
  *   Must not be NULL.
  * @param destination
  *   The buffer to append to.
+ *
  *   Must not be NULL.
  * @param separator
  *   The separate to use between each quoted empty string.
index dacfd2a0b40e67114bede2688a83ab0099af6888..7eeca90fdd9e5d7efbbc4053a6a1749199976a18 100644 (file)
@@ -25,6 +25,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -42,14 +43,17 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param buffers
  *   The array of dynamic strings to read from.
+ *
  *   Must not be NULL.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -76,6 +80,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -90,14 +95,17 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param map
  *   The map to read from.
+ *
  *   Must not be NULL.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -123,6 +131,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -137,14 +146,17 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param map
  *   The map to read from.
+ *
  *   Must not be NULL.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -170,6 +182,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -184,14 +197,17 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param maps
  *   The maps to read from.
+ *
  *   Must not be NULL.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -217,6 +233,7 @@ extern "C" {
  *
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -231,14 +248,17 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param maps
  *   The maps to read from.
+ *
  *   Must not be NULL.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -268,6 +288,7 @@ extern "C" {
  *   The fl_fss_payload_header_state_t pointer.
  *   This caller must reset data.cache.used as needed.
  *   If data.cache.used is not 0, then this will append a space before adding the converted number.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -281,9 +302,11 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param number
  *   The signed number.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -323,9 +346,11 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param number
  *   The unsigned number.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -351,6 +376,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -367,6 +393,7 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param quantity
  *   The quantity to process.
@@ -374,6 +401,7 @@ extern "C" {
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -403,6 +431,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -419,13 +448,15 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
- * @param quantity
- *   The quantity to process.
+ * @param quantitys
+ *   The quantitys to process.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -455,6 +486,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -471,6 +503,7 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param range
  *   The range to process.
@@ -478,6 +511,7 @@ extern "C" {
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -507,6 +541,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -523,6 +558,7 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param range
  *   The range to process.
@@ -530,6 +566,7 @@ extern "C" {
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -559,6 +596,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -575,14 +613,17 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param buffers
  *   The array of NULL terminated strings to read from.
+ *
  *   Must not be NULL.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -612,6 +653,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -628,6 +670,7 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
  * @param triple
  *   The triple to process.
@@ -635,6 +678,7 @@ extern "C" {
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
@@ -664,6 +708,7 @@ extern "C" {
  * @param data
  *   The fl_fss_payload_header_state_t pointer.
  *   This modifies data.cache.
+ *
  *   Must not be NULL.
  * @param state
  *   The state passed directly from the fl_fss_payload_header_map() parameters.
@@ -680,13 +725,15 @@ extern "C" {
  *   Must not be NULL.
  * @param internal
  *   The internal state, fl_fss_payload_header_internal_t, created inside of fl_fss_payload_header_map().
+ *
  *   Must not be NULL.
- * @param triple
- *   The triple to process.
+ * @param triples
+ *   The triples to process.
  * @param destinations
  *   A map of strings representing the header names and values after being safely converted into the valid payload header format.
  *   This built header names and values are appended onto this.
  *   This is updated as appropriate.
+ *
  *   Must not be NULL.
  *
  * @return
index 0c066b5ebcd172ff1d36d0b06a708593560413bb..fc1556958c85926eda5e91ad7f774161a2ef517b 100644 (file)
@@ -33,10 +33,16 @@ extern "C" {
  *   The buffer to read from.
  * @param range
  *   The range within the buffer that is currently being read.
+ *
+ *   Must not be NULL.
  * @param objects
  *   This will be populated with all valid objects found.
+ *
+ *   Must not be NULL.
  * @param contents
  *   This will be populated with all valid contents found.
+ *
+ *   Must not be NULL.
  * @param objects_quoted
  *   (optional) An array mapped to each object in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any.
  *
@@ -44,9 +50,12 @@ extern "C" {
  * @param objects_delimits
  *   An array of delimits for objects detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
+ *   Must not be NULL.
  * @param contents_delimits
  *   (optional) An array of delimits for contents detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
  *   Set to NULL and all delimits will instead utilize objects_delimits.
  * @param state
  A state for providing flags and handling interrupts during long running operations.
@@ -94,6 +103,8 @@ extern "C" {
  *   Otherwise, this is quote character to wrap the object in when writing.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index fecbb9fd30e80a023410837b3b3ee2d24e600af5..de826b6b7641cc4c245b9c3ad60978314bbeaf9f 100644 (file)
@@ -33,20 +33,31 @@ extern "C" {
  *   The buffer to read from.
  * @param range
  *   The range within the buffer that is currently being read.
+ *
+ *   Must not be NULL.
  * @param objects
  *   This will be populated with all valid objects found.
+ *
+ *   Must not be NULL.
  * @param contents
  *   This will be populated with all valid contents found.
+ *
+ *   Must not be NULL.
  * @param objects_delimits
  *   An array of delimits for objects detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
+ *   Must not be NULL.
  * @param contents_delimits
  *   (optional) An array of delimits for contents detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
  *   Set to NULL and all delimits will instead utilize objects_delimits.
  * @param comments
  *   An array of ranges representing where comments are found within any valid content.
  *   This only stores comments found within valid content only.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -93,6 +104,8 @@ extern "C" {
  *   Set to NULL to not use.
  * @param destination
  *   The buffer to write to.
+ *
+ *   Must not be NULL.
  * @param state
  A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -122,7 +135,7 @@ extern "C" {
  * @see fl_fss_basic_list_object_write()
  */
 #ifndef _di_fll_fss_basic_list_write_
-  extern void fll_fss_basic_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t *content_prepend, f_string_dynamic_t * const destination, f_state_t * const state);
+  extern void fll_fss_basic_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t * const content_prepend, f_string_dynamic_t * const destination, f_state_t * const state);
 #endif // _di_fll_fss_basic_list_write_
 
 #ifdef __cplusplus
index a6796177b205552fa4c80226c43672fab4f32caa..f795fe44b7b1b1fefa55de3a79fa6a088319c535 100644 (file)
@@ -117,7 +117,7 @@ extern "C" {
 #endif // _di_fll_fss_embedded_list_read_
 
 #ifndef _di_fll_fss_embedded_list_write_
-  void fll_fss_embedded_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t *content_prepend, const f_ranges_t *ignore, f_string_dynamic_t * const destination, f_state_t * const state) {
+  void fll_fss_embedded_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t * const content_prepend, const f_ranges_t * const ignore, f_string_dynamic_t * const destination, f_state_t * const state) {
     #ifndef _di_level_2_parameter_checking_
       if (!state) return;
     #endif // _di_level_2_parameter_checking_
index b1b83b5e70c8359a2eeca0518a33e942c595e13e..0daeebf8968b869afc1a2231df14e38b58659db4 100644 (file)
@@ -35,16 +35,23 @@ extern "C" {
  *   The range within the buffer that is currently being read.
  * @param nest
  *   An nested set of all objects and content.
+ *
+ *   Must not be NULL.
  * @param objects_delimits
  *   An array of delimits for objects detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
+ *   Must not be NULL.
  * @param contents_delimits
  *   (optional) An array of delimits for contents detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
  *   Set to NULL and all delimits will instead utilize objects_delimits.
  * @param comments
  *   An array of ranges representing where comments are found within any valid content.
  *   This only stores comments found within valid content only.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -101,6 +108,8 @@ extern "C" {
  *   Set to NULL to not use.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -130,7 +139,7 @@ extern "C" {
  * @see fl_fss_embedded_list_object_write()
  */
 #ifndef _di_fll_fss_embedded_list_write_
-  extern void fll_fss_embedded_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t *content_prepend, const f_ranges_t *ignore, f_string_dynamic_t * const destination, f_state_t * const state);
+  extern void fll_fss_embedded_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t * const content_prepend, const f_ranges_t * const ignore, f_string_dynamic_t * const destination, f_state_t * const state);
 #endif // _di_fll_fss_embedded_list_write_
 
 #ifdef __cplusplus
index 56e78bb41c5f60fd951d70f884c185f75d7f1cd0..eea3b73f6ba76c3a6920790a337a0ec167fd186d 100644 (file)
@@ -33,10 +33,16 @@ extern "C" {
  *   The buffer to read from.
  * @param range
  *   The range within the buffer that is currently being read.
+ *
+ *   Must not be NULL.
  * @param objects
  *   This will be populated with all valid objects found.
+ *
+ *   Must not be NULL.
  * @param contents
  *   This will be populated with all valid contents found.
+ *
+ *   Must not be NULL.
  * @param objects_quoted
  *   (optional) An array mapped to each object in objects representing the quote type discovered (from the f_fss_quote_type_*_e), if any.
  *
@@ -48,9 +54,12 @@ extern "C" {
  * @param objects_delimits
  *   An array of delimits for objects detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
+ *   Must not be NULL.
  * @param contents_delimits
  *   (optional) An array of delimits for contents detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
  *   Set to NULL and all delimits will instead utilize objects_delimits.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
@@ -98,6 +107,8 @@ extern "C" {
  *   Otherwise, this is quote character to wrap the object in when writing.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index c28d302ce4dda7aac7cc0178658b437283431b9f..5ef33a9019fa6570425360e8b134470336fa3e6c 100644 (file)
@@ -5,11 +5,11 @@ extern "C" {
 #endif
 
 #ifndef _di_fll_fss_extended_list_read_
-  void fll_fss_extended_list_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const objects, f_rangess_t * const contents, f_number_unsigneds_t * const objects_delimits, f_number_unsigneds_t * const contents_delimits, f_ranges_t * const comments, f_state_t * const state) {
+  void fll_fss_extended_list_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const objects, f_ranges_t * const closes, f_rangess_t * const contents, f_number_unsigneds_t * const objects_delimits, f_number_unsigneds_t * const contents_delimits, f_ranges_t * const comments, f_state_t * const state) {
     #ifndef _di_level_2_parameter_checking_
       if (!state) return;
 
-      if (!range || !objects || !contents) {
+      if (!range || !objects || !closes || !contents) {
         state->status = F_status_set_error(F_parameter);
 
         return;
@@ -25,6 +25,9 @@ extern "C" {
       state->status = f_memory_array_increase(state->step_small, sizeof(f_range_t), (void **) &objects->array, &objects->used, &objects->size);
       if (F_status_is_error(state->status)) return;
 
+      state->status = f_memory_array_increase(state->step_small, sizeof(f_range_t), (void **) &closes->array, &closes->used, &closes->size);
+      if (F_status_is_error(state->status)) return;
+
       state->status = f_memory_array_increase(state->step_small, sizeof(f_ranges_t), (void **) &contents->array, &contents->used, &contents->size);
       if (F_status_is_error(state->status)) return;
 
@@ -57,7 +60,7 @@ extern "C" {
           found_data = F_true;
           contents->array[contents->used].used = 0;
 
-          fl_fss_extended_list_content_read(buffer, range, &contents->array[contents->used], contents_delimits ? contents_delimits : objects_delimits, comments, state);
+          fl_fss_extended_list_content_read(buffer, range, &contents->array[contents->used], &closes->array[closes->used], contents_delimits ? contents_delimits : objects_delimits, comments, state);
           if (F_status_is_error(state->status)) return;
 
           break;
@@ -125,7 +128,7 @@ extern "C" {
 #endif // _di_fll_fss_extended_list_read_
 
 #ifndef _di_fll_fss_extended_list_write_
-  void fll_fss_extended_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t *content_prepend, const f_ranges_t *ignore, f_string_dynamic_t * const destination, f_state_t * const state) {
+  void fll_fss_extended_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t * const content_prepend, const f_ranges_t * const ignore, f_string_dynamic_t * const destination, f_state_t * const state) {
     #ifndef _di_level_2_parameter_checking_
       if (!state) return;
     #endif // _di_level_2_parameter_checking_
index 81afd10ab197dc526844dfd6b234c9f1b570b610..e1f2fa4bea58599b30d581d6020e05d9966e2ca6 100644 (file)
@@ -35,20 +35,35 @@ extern "C" {
  *   The buffer to read from.
  * @param range
  *   The range within the buffer that is currently being read.
+ *
+ *   Must not be NULL.
  * @param objects
  *   This will be populated with all valid objects found.
+ *
+ *   Must not be NULL.
+ * @param closes
+ *   This will be populated with all close location of found Objects.
+ *
+ *   Must not be NULL.
  * @param contents
  *   This will be populated with all valid contents found.
+ *
+ *   Must not be NULL.
  * @param objects_delimits
  *   An array of delimits for objects detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
+ *   Must not be NULL.
  * @param contents_delimits
  *   (optional) An array of delimits for contents detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
  *   Set to NULL 0 and all delimits will instead utilize objects_delimits.
  * @param comments
  *   An array of ranges representing where comments are found within any valid content.
  *   This only stores comments found within valid content only.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -81,7 +96,7 @@ extern "C" {
  * @see fl_fss_extended_list_object_read()
  */
 #ifndef _di_fll_fss_extended_list_read_
-  extern void fll_fss_extended_list_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const objects, f_rangess_t * const contents, f_number_unsigneds_t * const objects_delimits, f_number_unsigneds_t * const contents_delimits, f_ranges_t * const comments, f_state_t * const state);
+  extern void fll_fss_extended_list_read(const f_string_static_t buffer, f_range_t * const range, f_ranges_t * const objects, f_ranges_t * const closes, f_rangess_t * const contents, f_number_unsigneds_t * const objects_delimits, f_number_unsigneds_t * const contents_delimits, f_ranges_t * const comments, f_state_t * const state);
 #endif // _di_fll_fss_extended_list_read_
 
 /**
@@ -103,6 +118,8 @@ extern "C" {
  *   Set to NULL to not use.
  * @param destination
  *   The buffer where the content is written to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -132,7 +149,7 @@ extern "C" {
  * @see fl_fss_extended_list_object_write()
  */
 #ifndef _di_fll_fss_extended_list_write_
-  extern void fll_fss_extended_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t *content_prepend, const f_ranges_t *ignore, f_string_dynamic_t * const destination, f_state_t * const state);
+  extern void fll_fss_extended_list_write(const f_string_static_t object, const f_string_static_t content, const f_string_static_t * const content_prepend, const f_ranges_t * const ignore, f_string_dynamic_t * const destination, f_state_t * const state);
 #endif // _di_fll_fss_extended_list_write_
 
 #ifdef __cplusplus
index 0118f7b665efc04e62e37392f9523f060011518c..ec199dcb1cf9f6b5ccdf607f71f3e9d540e5f91d 100644 (file)
@@ -39,20 +39,31 @@ extern "C" {
  *   The buffer to read from.
  * @param range
  *   The range within the buffer that is currently being read.
+ *
+ *   Must not be NULL.
  * @param objects
  *   This will be populated with all valid objects found.
+ *
+ *   Must not be NULL.
  * @param contents
  *   This will be populated with all valid contents found.
+ *
+ *   Must not be NULL.
  * @param objects_delimits
  *   An array of delimits for objects detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
+ *   Must not be NULL.
  * @param contents_delimits
  *   (optional) An array of delimits for contents detected during processing.
  *   The caller is expected to decide if and when to process them.
+ *
  *   Set to NULL and all delimits will instead utilize objects_delimits.
  * @param comments
  *   An array of ranges representing where comments are found within any valid content.
  *   This only stores comments found within valid content only.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
@@ -118,6 +129,8 @@ extern "C" {
  *   Set to NULL to not use.
  * @param destination
  *   The buffer to append to.
+ *
+ *   Must not be NULL.
  * @param state
  *   A state for providing flags and handling interrupts during long running operations.
  *   There is no state.handle().
index 77f488cbe32c12ae430b891c5405736aea5f4e61..8d532e63b99251dd5f5ed3e9acf938ae3ed2d0df 100644 (file)
@@ -23,7 +23,7 @@ extern "C" {
 
     {
       f_state_t state = main->setting.state;
-      fl_fss_data_embedded_list_t cache = macro_fl_fss_data_embedded_list_t_initialize_1(&main->cache.objects, &main->cache.positions, &main->cache.slashes);
+      fl_fss_data_embedded_list_t cache = macro_fl_fss_data_embedded_list_t_initialize_1(&main->cache.objects, &main->cache.closes, &main->cache.positions, &main->cache.slashes);
 
       state.data = (void *) &cache;
 
@@ -56,14 +56,6 @@ extern "C" {
       }
     }
 
-    fss_read_ensure_quotes_length(main);
-
-    if (F_status_is_error(main->setting.state.status)) {
-      fss_read_print_error(&main->program.error, macro_fss_read_f(fss_read_ensure_quotes_length));
-
-      return;
-    }
-
     main->setting.state.status = F_okay;
   }
 #endif // _di_fss_read_embedded_list_process_load_
index ecdf5452d4825bf91d94c58f5035504c79a8299d..34f8e89a53c2f6d37128a1b28d8d70525a77f6b0 100644 (file)
@@ -112,33 +112,49 @@ extern "C" {
   void fss_read_embedded_list_process_normal_determine_depth(fss_read_main_t * const main) {
 
     if (!main) return;
+    if (!main->setting.nest.used || !main->setting.nest.depth[0].used || !main->setting.depths.used) return;
+
+    f_number_unsigned_t depth = main->setting.depths.array[0].depth;
+
+    if (depth >= main->setting.nest.used) {
+      main->setting.state.status = F_status_set_error(F_parameter);
 
-    if (main->setting.flag & fss_read_main_flag_depth_d) {
-      // @todo determine depth and dynamically construct the objects and therefore content based on any of --at, --depth, and --name.
       return;
     }
 
-    if (!main->setting.nest.used || !main->setting.nest.depth[0].used) return;
+    if ((main->setting.flag & fss_read_main_flag_depth_d) && main->setting.nest.used > 1) {
+      f_number_unsigned_t i = 0;
 
-    main->setting.objects.used = 0;
-    main->setting.contents.used = 0;
+      // @todo make an array of depths based on size.
+      // @todo determine which ones have --at or --name used for them.
+
+      //if (main->setting.nest.depth[depth].array[main->setting.objects.used].content.used) {
 
-    main->setting.state.status = f_memory_array_resize(main->setting.nest.depth[0].used, sizeof(f_range_t), (void **) &main->setting.objects.array, &main->setting.objects.used, &main->setting.objects.size);
+      //main->setting.depth
+      //main->setting.nest.depth
+
+      //for (; i < main->setting.objects.used; ++i) {
+      //} // for
+
+      // @todo determine depth and dynamically construct the objects and therefore content based on any of --at, --depth, and --name.
+      return;
+    }
+
+    main->setting.state.status = f_memory_array_resize(main->setting.nest.depth[depth].used, sizeof(f_range_t), (void **) &main->setting.objects.array, &main->setting.objects.used, &main->setting.objects.size);
     if (F_status_is_error(main->setting.state.status)) return;
 
-    main->setting.state.status = f_memory_array_resize(main->setting.nest.depth[0].used, sizeof(f_ranges_t), (void **) &main->setting.contents.array, &main->setting.contents.used, &main->setting.contents.size);
+    main->setting.state.status = f_memory_array_resize(main->setting.nest.depth[depth].used, sizeof(f_ranges_t), (void **) &main->setting.contents.array, &main->setting.contents.used, &main->setting.contents.size);
     if (F_status_is_error(main->setting.state.status)) return;
 
-    for (; main->setting.objects.used < main->setting.nest.depth[0].used; ++main->setting.objects.used) {
+    for (; main->setting.objects.used < main->setting.nest.depth[depth].used; ++main->setting.objects.used) {
 
-      main->setting.objects.array[main->setting.objects.used] = main->setting.nest.depth[0].array[main->setting.objects.used].object;
+      main->setting.objects.array[main->setting.objects.used] = main->setting.nest.depth[depth].array[main->setting.objects.used].object;
 
       // Use a static array for the inner Content that points to the depth, and so ensure the size is 0 to designate this is not dynamically allocated here.
-      if (main->setting.nest.depth[0].array[main->setting.objects.used].content.used) {
-        main->setting.contents.array[main->setting.objects.used].array = main->setting.nest.depth[0].array[main->setting.objects.used].content.array;
-        main->setting.contents.array[main->setting.objects.used].used = main->setting.nest.depth[0].array[main->setting.objects.used].content.used;
+      if (main->setting.nest.depth[depth].array[main->setting.objects.used].content.used) {
+        main->setting.contents.array[main->setting.objects.used].array = main->setting.nest.depth[depth].array[main->setting.objects.used].content.array;
+        main->setting.contents.array[main->setting.objects.used].used = main->setting.nest.depth[depth].array[main->setting.objects.used].content.used;
         main->setting.contents.array[main->setting.objects.used].size = 0;
-        main->setting.contents.array[main->setting.objects.used].used = main->setting.nest.depth[0].array[main->setting.objects.used].content.used;
       }
       else {
         main->setting.contents.array[main->setting.objects.used].array = 0;
@@ -148,6 +164,8 @@ extern "C" {
     } // for
 
     main->setting.contents.used = main->setting.objects.used;
+
+    fss_read_ensure_quotes_length(main);
   }
 #endif // _di_fss_read_embedded_list_process_normal_determine_depth_
 
index 18dafb716ffbf563083afe551cfbdffc926056ed..b894701f02c7013d3506fc05e30c1b4907a5aecb 100644 (file)
@@ -21,7 +21,7 @@ extern "C" {
 
     fss_read_main_t * const main = (fss_read_main_t *) void_main;
 
-    fll_fss_extended_list_read(main->setting.buffer, &main->setting.range, &main->setting.objects, &main->setting.contents, &main->setting.delimits_object, &main->setting.delimits_content, &main->setting.comments, &main->setting.state);
+    fll_fss_extended_list_read(main->setting.buffer, &main->setting.range, &main->setting.objects, &main->setting.closes, &main->setting.contents, &main->setting.delimits_object, &main->setting.delimits_content, &main->setting.comments, &main->setting.state);
 
     if (F_status_is_error(main->setting.state.status)) {
       if (F_status_set_fine(main->setting.state.status) == F_interrupt) return;
index 7ee8a8cee8b25187415cfc700e42a224299098c6..704f49f1e4319dfa01e446c935a37a7a531f1f7d 100644 (file)
@@ -711,6 +711,10 @@ extern "C" {
       } // for
     } // for
 
+    if (main->setting.depths.used) {
+      main->setting.depth = main->setting.depths.array[0];
+    }
+
     main->setting.state.status = F_okay;
   }
 #endif // _di_fss_read_setting_load_depth_
index 8255b37abf0e794fb72f84ae20d56b80908ed36f..cc217f8055157bf9bbec8f969b8da0941ea33ed8 100644 (file)
@@ -68,6 +68,7 @@ extern "C" {
  *   - name:                   A specific Object name has been requested.
  *   - object:                 The Object is to be printed.
  *   - object_as_line:         The Object is counted as its own line for the purpose of -l/--line or any other similar behavior.
+ *   - object_content:         A helper flag representing object and content flag bits being set.
  *   - object_trim:            Empty space before an after Objects are ignored while processing without affecting printing behavior.
  *   - original:               Enable original printing, where the quotes are printed and no delimits are applied.
  *   - payload_create:         Create the payload Object with empty Content if the payload Object is missing (when using FSS Payload and related).
@@ -104,6 +105,7 @@ extern "C" {
   #define fss_read_main_flag_name_d                   0x4000
   #define fss_read_main_flag_object_d                 0x8000
   #define fss_read_main_flag_object_as_line_d         0x10000
+  #define fss_read_main_flag_object_content_d         0x8004
   #define fss_read_main_flag_object_trim_d            0x20000
   #define fss_read_main_flag_original_d               0x40000
   #define fss_read_main_flag_payload_create_d         0x80000
index de2485cda117196b038a2dfc2c9934c53c2427fa..4ddb5afa21a52e85e995f20bb47f1f7e9524a5d6 100644 (file)
@@ -90,6 +90,7 @@ extern "C" {
     f_memory_array_resize(0, sizeof(f_char_t), (void **) &setting->buffer.string, &setting->buffer.used, &setting->buffer.size);
 
     f_memory_array_resize(0, sizeof(f_range_t), (void **) &setting->objects.array, &setting->objects.used, &setting->objects.size);
+    f_memory_array_resize(0, sizeof(f_range_t), (void **) &setting->closes.array, &setting->closes.used, &setting->closes.size);
     f_memory_array_resize(0, sizeof(f_range_t), (void **) &setting->comments.array, &setting->comments.used, &setting->comments.size);
     f_memory_arrays_resize(0, sizeof(f_ranges_t), (void **) &setting->contents.array, &setting->contents.used, &setting->contents.size, &f_rangess_delete_callback);
 
index f629a97dbbb0ea98bfc769afea6522f4a36970be..1511b4c77fade12a54b372741969743973770e7f 100644 (file)
@@ -117,18 +117,20 @@ extern "C" {
 /**
  * The FSS Read cache.
  *
- * objects:   An objects array used by the fll_fss_embedded_list_read() function.
+ * objects:   An Objects array used by the fll_fss_embedded_list_read() function.
+ * closes:    An Object closes array used by the fll_fss_embedded_list_read() function.
  * positions: A positions array used by the fll_fss_embedded_list_read() function.
  * slashes:   A slashes array used by the fll_fss_embedded_list_read() function.
  */
 #ifndef _di_fss_read_cache_t_
   typedef struct {
     f_ranges_t objects;
+    f_ranges_t closes;
     f_number_unsigneds_t positions;
     f_number_unsigneds_t slashes;
   } fss_read_cache_t;
 
-  #define fss_read_cache_t_initialize { f_ranges_t_initialize, f_number_unsigneds_t_initialize, f_number_unsigneds_t_initialize }
+  #define fss_read_cache_t_initialize { f_ranges_t_initialize, f_ranges_t_initialize, f_number_unsigneds_t_initialize, f_number_unsigneds_t_initialize }
 #endif // _di_fss_read_cache_t_
 
 /**
@@ -226,6 +228,7 @@ extern "C" {
  * range: A range used in conjunction with some buffer during processing.
  *
  * files:  A statically allocated array of files for designating where in the buffer a file is represented.
+ * depth:  The active depth to use.
  * depths: The array of parameters for each given depth.
  *
  * standard: A human-friendly string describing the standard in use, such as "FSS-0000 (Basic)".
@@ -255,11 +258,13 @@ extern "C" {
     f_range_t range;
 
     fss_read_files_t files;
+    fss_read_depth_t depth;
     fss_read_depths_t depths;
 
     f_string_static_t standard;
     f_string_dynamic_t buffer;
 
+    f_ranges_t closes;
     f_ranges_t comments;
     f_rangess_t contents;
     f_number_unsigneds_t delimits_object;
@@ -282,10 +287,12 @@ extern "C" {
       0, \
       f_range_t_initialize, \
       fss_read_files_t_initialize, \
+      fss_read_depth_t_initialize, \
       fss_read_depths_t_initialize, \
       f_string_static_t_initialize, \
       f_string_dynamic_t_initialize, \
       f_ranges_t_initialize, \
+      f_ranges_t_initialize, \
       f_rangess_t_initialize, \
       f_number_unsigneds_t_initialize, \
       f_number_unsigneds_t_initialize, \
index ed81862866c6c40880d4d2a891e5e07ad54ffe1e..328666c23c7ce12893cfa0d316bafd2c69f292d7 100644 (file)
@@ -75,7 +75,7 @@ extern "C" {
       return;
     }
 
-    if (main->setting.flag & (fss_read_main_flag_object_d | fss_read_main_flag_content_d)) {
+    if (main->setting.flag & fss_read_main_flag_object_content_d) {
       if (main->callback.process_normal) {
         main->callback.process_normal(void_main);
       }
index 4a36a89295f16ae43b06ae49de01fabe78a591f5..5972fa6faa421a9b278b1898977008e6bf780720 100644 (file)
@@ -13,7 +13,7 @@ extern "C" {
 
     // For depth, most standards do not support nesting, so any depth greater than 0 can be predicted without processing the buffer.
     // For select, most standards do not support multiple select, so any select greater than 0 can be predicted without processing the buffer.
-    if (!(main->setting.flag & fss_read_main_flag_depth_multiple_d) && main->setting.depths.array[0].depth || !(main->setting.flag & fss_read_main_flag_content_multiple_d) && ((main->setting.flag & fss_read_main_flag_select_d) && main->setting.select)) {
+    if (!(main->setting.flag & fss_read_main_flag_depth_multiple_d) && main->setting.depth.depth || !(main->setting.flag & fss_read_main_flag_content_multiple_d) && ((main->setting.flag & fss_read_main_flag_select_d) && main->setting.select)) {
       if (main->setting.flag & fss_read_main_flag_total_d) {
         fss_read_print_number(&main->program.output, 0);
       }
@@ -119,7 +119,7 @@ extern "C" {
 
     fss_read_main_t * const main = (fss_read_main_t *) void_main;
 
-    if (main->setting.depths.array[0].value_at >= main->setting.objects.used) {
+    if (main->setting.depth.value_at >= main->setting.objects.used) {
       if (main->setting.flag & (fss_read_main_flag_columns_d | fss_read_main_flag_total_d)) {
         fss_read_print_number(&main->program.output, 0);
       }
@@ -146,7 +146,7 @@ extern "C" {
       if (!names[i]) continue;
       if (fss_read_signal_check(main)) return;
 
-      if (at == main->setting.depths.array[0].value_at) {
+      if (at == main->setting.depth.value_at) {
         if (main->setting.flag & fss_read_main_flag_line_d) {
 
           // If using "--at" for standards that only support one line per Object, then the only valid line is line 0.
@@ -489,7 +489,7 @@ extern "C" {
 
     fss_read_main_t * const main = (fss_read_main_t *) void_main;
 
-    if (main->setting.depths.array[0].index_name) {
+    if (main->setting.depth.index_name) {
       f_number_unsigned_t i = 0;
 
       memset(names, F_false, sizeof(bool) * main->setting.objects.used);
@@ -499,7 +499,7 @@ extern "C" {
 
           if (fss_read_signal_check(main)) return;
 
-          if (f_compare_dynamic_partial_except_trim_dynamic(main->setting.depths.array[0].value_name, main->setting.buffer, main->setting.objects.array[i], fss_read_except_none_c, main->setting.delimits_object) == F_equal_to) {
+          if (f_compare_dynamic_partial_except_trim_dynamic(main->setting.depth.value_name, main->setting.buffer, main->setting.objects.array[i], fss_read_except_none_c, main->setting.delimits_object) == F_equal_to) {
             names[i] = F_true;
           }
         } // for
@@ -509,7 +509,7 @@ extern "C" {
 
           if (fss_read_signal_check(main)) return;
 
-          if (f_compare_dynamic_partial_except_dynamic(main->setting.depths.array[0].value_name, main->setting.buffer, main->setting.objects.array[i], fss_read_except_none_c, main->setting.delimits_object) == F_equal_to) {
+          if (f_compare_dynamic_partial_except_dynamic(main->setting.depth.value_name, main->setting.buffer, main->setting.objects.array[i], fss_read_except_none_c, main->setting.delimits_object) == F_equal_to) {
             names[i] = F_true;
           }
         } // for
@@ -540,7 +540,7 @@ extern "C" {
         if (fss_read_signal_check(main)) return;
 
         if (main->setting.flag & fss_read_main_flag_at_d) {
-          if (main->setting.depths.array[0].value_at != i) continue;
+          if (main->setting.depth.value_at != i) continue;
         }
 
         if (main->setting.contents.array[i].used) {
@@ -561,8 +561,7 @@ extern "C" {
         if (!names[i]) continue;
         if (fss_read_signal_check(main)) return;
 
-        // @fixme all uses of "depths" may need to be changed so that standards that handle depth and those that don't select the currect structure at places like this.
-        if (at < main->setting.depths.array[0].value_at) {
+        if (at < main->setting.depth.value_at) {
           ++at;
 
           continue;
@@ -625,7 +624,7 @@ extern "C" {
         if (fss_read_signal_check(main)) return;
 
         if (main->setting.flag & fss_read_main_flag_at_d) {
-          if (main->setting.depths.array[0].value_at != at) continue;
+          if (main->setting.depth.value_at != at) continue;
         }
 
         if (main->setting.flag & fss_read_main_flag_object_d) {
@@ -691,7 +690,7 @@ extern "C" {
         if (fss_read_signal_check(main)) return;
 
         if (main->setting.flag & fss_read_main_flag_at_d) {
-          if (main->setting.depths.array[0].value_at != at) continue;
+          if (main->setting.depth.value_at != at) continue;
         }
 
         if (!(main->setting.flag & fss_read_main_flag_object_d) && (main->setting.flag & fss_read_main_flag_content_d)) {
index 5c6833df139138214ac4838a051ef86b2b53e589..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,11 +1 @@
-  b c
-  e f
-  g h
-  мир
-  z
-  quoted, "yep".
-  \"and so does this" "have space"
-  But still a valid list.
-  Check this.
-  ...
-  a second "a".
+1
index 5c6833df139138214ac4838a051ef86b2b53e589..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,11 +1 @@
-  b c
-  e f
-  g h
-  мир
-  z
-  quoted, "yep".
-  \"and so does this" "have space"
-  But still a valid list.
-  Check this.
-  ...
-  a second "a".
+1
index 65b0a48c6425f622a732200ffd9e43a94511843a..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,13 +1 @@
-empty
-d
-a
-привет
-y 
-"мир"
-привет has space
-"This is quoted"
-AlsoGood
-hi     
-привет has space   
-a
-also_empty
+1
index 65b0a48c6425f622a732200ffd9e43a94511843a..c6cac69265af1e1684d2e3038f8fc90b84c87e9c 100644 (file)
@@ -1,13 +1 @@
 empty
-d
-a
-привет
-y 
-"мир"
-привет has space
-"This is quoted"
-AlsoGood
-hi     
-привет has space   
-a
-also_empty
index 65b0a48c6425f622a732200ffd9e43a94511843a..4bcfe98e640c8284511312660fb8709b0afa888e 100644 (file)
@@ -1,13 +1 @@
-empty
 d
-a
-привет
-y 
-"мир"
-привет has space
-"This is quoted"
-AlsoGood
-hi     
-привет has space   
-a
-also_empty
index 65b0a48c6425f622a732200ffd9e43a94511843a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,13 +0,0 @@
-empty
-d
-a
-привет
-y 
-"мир"
-привет has space
-"This is quoted"
-AlsoGood
-hi     
-привет has space   
-a
-also_empty
index 65b0a48c6425f622a732200ffd9e43a94511843a..2057e0fc84fd3f1879cd95acf6fcd56a2c2d6990 100644 (file)
@@ -1,13 +1 @@
-empty
-d
-a
-привет
-y 
 "мир"
-привет has space
-"This is quoted"
-AlsoGood
-hi     
-привет has space   
-a
-also_empty
index 65b0a48c6425f622a732200ffd9e43a94511843a..9a900be18a57f65d342d2aa71d5c2c14cf81284c 100644 (file)
@@ -1,13 +1 @@
-empty
-d
-a
-привет
-y 
-"мир"
 привет has space
-"This is quoted"
-AlsoGood
-hi     
-привет has space   
-a
-also_empty
index a3d6a83895d0106cc7e163b51eb098074a41f8c7..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,37 +1 @@
-empty{
-}
-d{
-  b c
-}
-a{
-  e f
-  g h
-}
-привет{
-  мир
-}
-y {
-  z
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  \"and so does this" "have space"
-}
-"This is quoted"{
-  But still a valid list.
-}
-AlsoGood{
-}
-hi     {
-  Check this.
-}
-привет has space   {
-  ...
-}
-a{
-  a second "a".
-}
-also_empty{
-}
+1
index a3d6a83895d0106cc7e163b51eb098074a41f8c7..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,37 +1 @@
-empty{
-}
-d{
-  b c
-}
-a{
-  e f
-  g h
-}
-привет{
-  мир
-}
-y {
-  z
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  \"and so does this" "have space"
-}
-"This is quoted"{
-  But still a valid list.
-}
-AlsoGood{
-}
-hi     {
-  Check this.
-}
-привет has space   {
-  ...
-}
-a{
-  a second "a".
-}
-also_empty{
-}
+1
index a3d6a83895d0106cc7e163b51eb098074a41f8c7..fec53807c5792051ae3700b41a041aefee372170 100644 (file)
@@ -1,37 +1 @@
 empty{
-}
-d{
-  b c
-}
-a{
-  e f
-  g h
-}
-привет{
-  мир
-}
-y {
-  z
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  \"and so does this" "have space"
-}
-"This is quoted"{
-  But still a valid list.
-}
-AlsoGood{
-}
-hi     {
-  Check this.
-}
-привет has space   {
-  ...
-}
-a{
-  a second "a".
-}
-also_empty{
-}
index a3d6a83895d0106cc7e163b51eb098074a41f8c7..5c34318c2147fb2285de5a1513f46168e33e6baf 100644 (file)
@@ -1,37 +1 @@
-empty{
-}
-d{
-  b c
-}
-a{
-  e f
-  g h
-}
-привет{
-  мир
-}
-y {
-  z
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  \"and so does this" "have space"
-}
-"This is quoted"{
-  But still a valid list.
-}
-AlsoGood{
-}
-hi     {
-  Check this.
-}
-привет has space   {
-  ...
-}
-a{
-  a second "a".
-}
-also_empty{
 }
index a3d6a83895d0106cc7e163b51eb098074a41f8c7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,37 +0,0 @@
-empty{
-}
-d{
-  b c
-}
-a{
-  e f
-  g h
-}
-привет{
-  мир
-}
-y {
-  z
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  \"and so does this" "have space"
-}
-"This is quoted"{
-  But still a valid list.
-}
-AlsoGood{
-}
-hi     {
-  Check this.
-}
-привет has space   {
-  ...
-}
-a{
-  a second "a".
-}
-also_empty{
-}
index a3d6a83895d0106cc7e163b51eb098074a41f8c7..85a90f60060215520429ea5a6e9cbe08ca6b2462 100644 (file)
@@ -1,37 +1 @@
-empty{
-}
-d{
-  b c
-}
 a{
-  e f
-  g h
-}
-привет{
-  мир
-}
-y {
-  z
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  \"and so does this" "have space"
-}
-"This is quoted"{
-  But still a valid list.
-}
-AlsoGood{
-}
-hi     {
-  Check this.
-}
-привет has space   {
-  ...
-}
-a{
-  a second "a".
-}
-also_empty{
-}
index a3d6a83895d0106cc7e163b51eb098074a41f8c7..b19e23b2804b69a5ebf485a3df3e37a503f9a225 100644 (file)
@@ -1,37 +1 @@
-empty{
-}
-d{
-  b c
-}
-a{
   e f
-  g h
-}
-привет{
-  мир
-}
-y {
-  z
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  \"and so does this" "have space"
-}
-"This is quoted"{
-  But still a valid list.
-}
-AlsoGood{
-}
-hi     {
-  Check this.
-}
-привет has space   {
-  ...
-}
-a{
-  a second "a".
-}
-also_empty{
-}
index 5b9284dd54727dd51e5ff9ffd2598af7cc565f3a..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,3 +1 @@
-  The object name is an empty string.
-  Quotes aren't supported here, so this is not an empty object..
-}
+1
index 49d85ba0e32044b8efe240529627c651794b5f0c..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,17 +1 @@
-a{
-}
-hi{
-}
-a{
-}
-a  {
-}
-{
-  The object name is an empty string.
-}
-{
-}
-""{
-  Quotes aren't supported here, so this is not an empty object..
-}
-}
+1
index 49d85ba0e32044b8efe240529627c651794b5f0c..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,17 +1 @@
-a{
-}
-hi{
-}
-a{
-}
-a  {
-}
-{
-  The object name is an empty string.
-}
-{
-}
-""{
-  Quotes aren't supported here, so this is not an empty object..
-}
-}
+1
index 49d85ba0e32044b8efe240529627c651794b5f0c..85a90f60060215520429ea5a6e9cbe08ca6b2462 100644 (file)
@@ -1,17 +1 @@
 a{
-}
-hi{
-}
-a{
-}
-a  {
-}
-{
-  The object name is an empty string.
-}
-{
-}
-""{
-  Quotes aren't supported here, so this is not an empty object..
-}
-}
index 49d85ba0e32044b8efe240529627c651794b5f0c..5c34318c2147fb2285de5a1513f46168e33e6baf 100644 (file)
@@ -1,17 +1 @@
-a{
-}
-hi{
-}
-a{
-}
-a  {
-}
-{
-  The object name is an empty string.
-}
-{
-}
-""{
-  Quotes aren't supported here, so this is not an empty object..
-}
 }
index 49d85ba0e32044b8efe240529627c651794b5f0c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,17 +0,0 @@
-a{
-}
-hi{
-}
-a{
-}
-a  {
-}
-{
-  The object name is an empty string.
-}
-{
-}
-""{
-  Quotes aren't supported here, so this is not an empty object..
-}
-}
index 49d85ba0e32044b8efe240529627c651794b5f0c..5c34318c2147fb2285de5a1513f46168e33e6baf 100644 (file)
@@ -1,17 +1 @@
-a{
-}
-hi{
-}
-a{
-}
-a  {
-}
-{
-  The object name is an empty string.
-}
-{
-}
-""{
-  Quotes aren't supported here, so this is not an empty object..
-}
 }
index 49d85ba0e32044b8efe240529627c651794b5f0c..2c3a87cce739dfaf504e3c5fbdc79ab475a765e1 100644 (file)
@@ -1,17 +1 @@
-a{
-}
-hi{
-}
-a{
-}
 a  {
-}
-{
-  The object name is an empty string.
-}
-{
-}
-""{
-  Quotes aren't supported here, so this is not an empty object..
-}
-}
index bbd7eb3efa3deedb03b6d974549148f9acdf22e7..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,20 +1 @@
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-  another "A" list.
-  quoted, "yep".
-  # has a comment
-  But this is not a comment.
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-  yep.
-  fin  
+1
index bbd7eb3efa3deedb03b6d974549148f9acdf22e7..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,20 +1 @@
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-  another "A" list.
-  quoted, "yep".
-  # has a comment
-  But this is not a comment.
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-  yep.
-  fin  
+1
index 0386be0c7a2395d1296be5fe21f694b1c44b3c5b..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,10 +1 @@
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-  another "A" list.
+1
index 0386be0c7a2395d1296be5fe21f694b1c44b3c5b..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,10 +1 @@
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-  another "A" list.
+1
index 53d1e7a2e50a721a4900ce9b62f54491fcdf27f9..959ccee90a5b2749f7aa926f70a00b71e2db4662 100644 (file)
@@ -9,7 +9,6 @@ c d
    with content.
   another "A" list.
   quoted, "yep".
-  # has a comment
   But this is not a comment.
   not a list\:
   a b привет
index 53d1e7a2e50a721a4900ce9b62f54491fcdf27f9..959ccee90a5b2749f7aa926f70a00b71e2db4662 100644 (file)
@@ -9,7 +9,6 @@ c d
    with content.
   another "A" list.
   quoted, "yep".
-  # has a comment
   But this is not a comment.
   not a list\:
   a b привет
index bbd7eb3efa3deedb03b6d974549148f9acdf22e7..9c5c57b3d21d40fcb62af9a31e73130d75905e34 100644 (file)
@@ -9,7 +9,6 @@ c d
    with content.
   another "A" list.
   quoted, "yep".
-  # has a comment
   But this is not a comment.
   not a list\:
   a b привет
index bbd7eb3efa3deedb03b6d974549148f9acdf22e7..9c5c57b3d21d40fcb62af9a31e73130d75905e34 100644 (file)
@@ -9,7 +9,6 @@ c d
    with content.
   another "A" list.
   quoted, "yep".
-  # has a comment
   But this is not a comment.
   not a list\:
   a b привет
index bbd7eb3efa3deedb03b6d974549148f9acdf22e7..9c5c57b3d21d40fcb62af9a31e73130d75905e34 100644 (file)
@@ -9,7 +9,6 @@ c d
    with content.
   another "A" list.
   quoted, "yep".
-  # has a comment
   But this is not a comment.
   not a list\:
   a b привет
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,34 +1 @@
-a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  # has a comment
-  But this is not a comment.
-}
-empty{
-}
-hi{
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-}
-has spaces {
-  yep.
-  fin  
-}
+1
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,34 +1 @@
-a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  # has a comment
-  But this is not a comment.
-}
-empty{
-}
-hi{
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-}
-has spaces {
-  yep.
-  fin  
-}
+1
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..85a90f60060215520429ea5a6e9cbe08ca6b2462 100644 (file)
@@ -1,34 +1 @@
 a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  # has a comment
-  But this is not a comment.
-}
-empty{
-}
-hi{
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-}
-has spaces {
-  yep.
-  fin  
-}
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..e50021b658bf269f7c01e3e12849ee0b59bfdfa7 100644 (file)
@@ -1,34 +1 @@
-a{
 a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  # has a comment
-  But this is not a comment.
-}
-empty{
-}
-hi{
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-}
-has spaces {
-  yep.
-  fin  
-}
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,34 +0,0 @@
-a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  # has a comment
-  But this is not a comment.
-}
-empty{
-}
-hi{
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-}
-has spaces {
-  yep.
-  fin  
-}
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..311f4e4f29a46a41a8b6173eb08312ea36aca3f3 100644 (file)
@@ -1,34 +1 @@
-a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  # has a comment
-  But this is not a comment.
-}
-empty{
-}
-hi{
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-}
-has spaces {
-  yep.
-  fin  
-}
+\\# even this is not.
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..9c5d8edc475bd18caf4901da7dc3bc58c901b69a 100644 (file)
@@ -1,34 +1 @@
-a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
 привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
-"мир"{
-  quoted, "yep".
-}
-привет has space{
-  # has a comment
-  But this is not a comment.
-}
-empty{
-}
-hi{
-  not a list\:
-  a b привет
-  c d
-  привет мир a 
-
-}
-has spaces {
-  yep.
-  fin  
-}
index e5f0c478ec437494aa4e9c8fdb4cdee05515b1b3..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,14 +1 @@
-a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
+1
index e5f0c478ec437494aa4e9c8fdb4cdee05515b1b3..d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 100644 (file)
@@ -1,14 +1 @@
-a{
-a b привет
-c d
- # not a comment
- \\# nor is this.
-\# even this is not.
-привет мир a 
-  
- # a valid list:
-   with content.
-}
-a{
-  another "A" list.
-}
+1
index 501583e9d24bb107b524e166861e91aecd32f579..025cdb431507752ab703bc835f0a7e8824509649 100644 (file)
@@ -16,7 +16,6 @@ a{
   quoted, "yep".
 }
 привет has space{
-  # has a comment
   But this is not a comment.
 }
 empty{
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..0a7c3b0cd76bd418f0aff3871b5f52b91a2f32a6 100644 (file)
@@ -16,7 +16,6 @@ a{
   quoted, "yep".
 }
 привет has space{
-  # has a comment
   But this is not a comment.
 }
 empty{
index 84340a2b14526aed143cc5d60ed3a8c43665b8d1..8ac8e0e9e2c7fccb784d8dc579156dcdf8f9b9af 100644 (file)
@@ -16,7 +16,6 @@ a{
   quoted, "yep".
 }
 привет has space{
-  # has a comment
   But this is not a comment.
 }
 empty{
index 9d794f30ef56f8278a9de6ebbc5a4dd9ddff701b..0a7c3b0cd76bd418f0aff3871b5f52b91a2f32a6 100644 (file)
@@ -16,7 +16,6 @@ a{
   quoted, "yep".
 }
 привет has space{
-  # has a comment
   But this is not a comment.
 }
 empty{