chiark / gitweb /
Various Debian fixes.
[mLib] / man / darray.3
index c5d936602893567db29c443cd41b7253e2fa1b18..db50fd12c1be29c3076bc7fe43bef88e860564a9 100644 (file)
@@ -19,7 +19,7 @@
 ..
 .ie t .ds o \(bu
 .el .ds o o
-.TH darray 3 "21 October 1999" mLib
+.TH darray 3 "21 October 1999" "Straylight/Edgeware" "mLib utilities library"
 .SH "NAME"
 darray \- dense, dynamically resizing arrays
 .\" @DA_INIT
@@ -43,6 +43,8 @@ darray \- dense, dynamically resizing arrays
 .\" @DA_UNSAFE_SHRINK
 .\" @DA_UNSLIDE
 .\" @DA_UNSAFE_UNSLIDE
+.\" @DA_FIRST
+.\" @DA_LAST
 .\" @DA_PUSH
 .\" @DA_POP
 .\" @DA_UNSHIFT
@@ -82,6 +84,8 @@ darray \- dense, dynamically resizing arrays
 .BI "void DA_UNSAFE_SLIDE(" type_v " *" a ", long " n );
 .BI "void DA_UNSAFE_UNSLIDE(" type_v " *" a ", long " n );
 
+.IB type " DA_FIRST(" type_v " *" a );
+.IB type " DA_LAST(" type_v " *" a );
 .BI "void DA_PUSH(" type_v " *" a ", " type " " x );
 .IB type " DA_POP(" type_v " *" a );
 .BI "void DA_UNSHIFT(" type_v " *" a ", " type " " x );
@@ -94,8 +98,8 @@ darray \- dense, dynamically resizing arrays
 .SH "DESCRIPTION"
 The
 .B <mLib/darray.h>
-declares a collection of types, macros and functions which implement
-dynamically resizing arrays.
+header file declares a collection of types, macros and functions which
+implement dynamically resizing arrays.
 .PP
 The macros described here may evaluate their arguments multiple times
 unless otherwise specified.
@@ -121,7 +125,7 @@ be used to prevent multiple declarations, e.g.,
 .VS
 #ifndef FOO_V
 #  define FOO_V
-   DA_DECL(foo_v, foo)
+   DA_DECL(foo_v, foo);
 #endif
 .VE
 The macro
@@ -129,7 +133,7 @@ The macro
 is a valid static initializer for all types of dynamic arrays.  For
 cases where this isn't appropriate, a dynamic array may be initialized
 using the macro
-.BR DA_INIT ,
+.BR DA_CREATE ,
 passing it the address of the array.
 .PP
 Arrays may be disposed of using the
@@ -179,7 +183,7 @@ is the base address of the actual array.  The elements are stored
 contiguously starting at this address.  An element at index
 .I i
 may be referenced using the syntax
-.BI DA( a )[ i \fR.
+.BI DA( a )[ i ]\fR.
 .PP
 The number of elements in the array
 .I a
@@ -284,7 +288,8 @@ and
 respectively, except that they interpret the sign of their second
 arguments in the opposite way.  This is useful if the argument is
 unsigned (e.g., if it's based on
-.BR DA_LEN ).  There are unsafed versions of both these macros too.
+.BR DA_LEN ).
+There are unsafe versions of both these macros too.
 .SS "Stack operations"
 Dynamic arrays support Perl-like stack operations.  Given an array
 (pointer)
@@ -328,6 +333,13 @@ and
 can fail because the array is empty, in which case
 .B DAEXC_UFLOW
 is thrown.
+.PP
+The operations
+.B DA_FIRST
+and
+.B DA_LAST
+are lvalues referring to the first and last elements in the array
+respectively.  They are unsafe if the array is empty.
 .SS "Low-level details"
 This section describes low-level details of the dynamic array
 implementation.  You should try to avoid making use of this information