--- al.pod 2002/10/22 15:33:16 1.11
+++ al.pod 2002/10/23 16:49:29 1.12
@@ -122,6 +122,14 @@
This is an opaque data type representing a data buffer.
Only pointers to this abstract data type are used in the API.
+=item B<al_label_t> (Label Type)
+
+This is an opaque pointer type representing a specific data flavour.
+You can restrict traversal operations to data that was marked with
+the specific flavour. Usually you would cast a pointer to the
+object that maintains the data to B<al_label_t>. You may use
+NULL as a label but on traversal NULL matches any label.
+
=item B<al_tx_t> (Traversal Context Type)
This is an opaque data type representing the state of a buffer
@@ -133,8 +141,10 @@
This is an exported enumerated integer type with the following possible
values:
- AL_FORWARD traverse assembly line from beginning to end
- AL_BACKWARD traverse assembly line from end to beginning
+ AL_FORWARD traverse assembly line from beginning to end
+ AL_BACKWARD traverse assembly line from end to beginning
+ AL_FORWARD_SPAN like AL_FORWARD, but stop when label does not match
+ AL_BACKWARD_SPAN like AL_BACKWARD, but stop when label does not match
=item B<al_chunk_t> (Chunk Type)
@@ -143,14 +153,6 @@
used in the API. The B<al_chunk_t> type is used to generate a pointer
and byte count to access the data in the buffer.
-=item B<al_label_t> (Label Type)
-
-This is a pointer type representing a specific data flavour. You
-can restrict traversal operations to data that was marked with
-the specific flavour. Usually you would cast a pointer to the
-object that maintains the data to B<al_label_t>. You may use
-NULL as a label but on traversal NULL matches any label.
-
=back
=head1 FUNCTIONS
@@ -335,7 +337,7 @@
=over 4
-=item al_rc_t B<al_flatten>(al_t *I<al>, size_t I<off>, size_t I<n>, char *I<dst>, size_t *I<lenp>);
+=item al_rc_t B<al_flatten>(al_t *I<al>, size_t I<off>, size_t I<n>, al_td_t I<dir>, char *I<dst>, size_t *I<lenp>);
I<off> and I<n> are byte counts that define a span of bytes with the
assembly line I<al>. These bytes are copied to the storage array I<dst>
@@ -348,6 +350,8 @@
still counted in I<lenp>. This can be used to precalculate the size
of the needed storage array by passing an arbitrary high maximum size
as I<n>.
+If I<dir> denotes a backwards traversal the storage array is filled
+from its end.
Example:
@@ -355,7 +359,7 @@
char buffer[42];
size_t actual;
- al_flatten(al, 500, 42, buffer, &actual);
+ al_flatten(al, 500, 42, AL_FORWARD, buffer, &actual);
=item al_rc_t B<al_copy>(al_t *I<al>, size_t I<off>, size_t I<n>, al_t *I<tal>);
|