Modify and debug allocation routines.
[mLib] / man / dstr.3
index f0b2a32..d8a5b54 100644 (file)
@@ -36,6 +36,7 @@ dstr \- a simple dynamic string type
 .\" @dstr_putline
 .\" @dstr_write
 .\"
 .\" @dstr_putline
 .\" @dstr_write
 .\"
+.\" @DSTR_INIT
 .\" @DCREATE
 .\" @DDESTROY
 .\" @DRESET
 .\" @DCREATE
 .\" @DDESTROY
 .\" @DRESET
@@ -62,12 +63,13 @@ dstr \- a simple dynamic string type
 .BI "void dstr_putz(dstr *" d );
 .BI "void dstr_puts(dstr *" d ", const char *" s );
 .BI "int dstr_vputf(dstr *" d ", va_list " ap );
 .BI "void dstr_putz(dstr *" d );
 .BI "void dstr_puts(dstr *" d ", const char *" s );
 .BI "int dstr_vputf(dstr *" d ", va_list " ap );
-.BI "int dstr_putf(dstr *" d ", ...);
+.BI "int dstr_putf(dstr *" d ", ...);"
 .BI "void dstr_putd(dstr *" d ", const dstr *" p );
 .BI "void dstr_putm(dstr *" d ", const void *" p ", size_t " sz );
 .BI "int dstr_putline(dstr *" d ", FILE *" fp );
 .BI "size_t dstr_write(const dstr *" d ", FILE *" fp );
 
 .BI "void dstr_putd(dstr *" d ", const dstr *" p );
 .BI "void dstr_putm(dstr *" d ", const void *" p ", size_t " sz );
 .BI "int dstr_putline(dstr *" d ", FILE *" fp );
 .BI "size_t dstr_write(const dstr *" d ", FILE *" fp );
 
+.BI "dstr " d " = DSTR_INIT;"
 .BI "void DCREATE(dstr *" d );
 .BI "void DDESTROY(dstr *" d );
 .BI "void DRESET(dstr *" d );
 .BI "void DCREATE(dstr *" d );
 .BI "void DDESTROY(dstr *" d );
 .BI "void DRESET(dstr *" d );
@@ -150,9 +152,9 @@ is a null pointer.
 At all times,
 .BI sz " >= " len\fR.
 .PP
 At all times,
 .BI sz " >= " len\fR.
 .PP
-Note that there is no equaivalent of the standard C distinction between
+Note that there is no equivalent of the standard C distinction between
 the empty string (a pointer to an array of characters whose first
 the empty string (a pointer to an array of characters whose first
-element is zero) and the nonexistant string (a null pointer).  Any
+element is zero) and the nonexistent string (a null pointer).  Any
 .B dstr
 whose
 .B len
 .B dstr
 whose
 .B len
@@ -197,12 +199,12 @@ The
 function empties a string
 .I without
 deallocating any memory.  Therefore appending more characters is quick,
 function empties a string
 .I without
 deallocating any memory.  Therefore appending more characters is quick,
-beause the old buffer is still there and doesn't need to be allocated.
+because the old buffer is still there and doesn't need to be allocated.
 Calling
 .VS
 dstr_reset(d);
 .VE
 Calling
 .VS
 dstr_reset(d);
 .VE
-is equivalent to directly assinging
+is equivalent to directly assigning
 .VS
 d->len = 0;
 .VE
 .VS
 d->len = 0;
 .VE
@@ -254,7 +256,7 @@ The function
 `trims' a string's buffer so that it's just large enough for the string
 contents and a null terminating byte.  This might raise an exception due
 to lack of memory.  (There are two possible ways this might happen.
 `trims' a string's buffer so that it's just large enough for the string
 contents and a null terminating byte.  This might raise an exception due
 to lack of memory.  (There are two possible ways this might happen.
-Firstly, the underlying allocator might just be braindamaged enough to
+Firstly, the underlying allocator might just be brain-damaged enough to
 fail on reducing a block's size.  Secondly, tidying an empty string with no
 buffer allocated for it causes allocation of a buffer large enough for
 the terminating null byte.)
 fail on reducing a block's size.  Secondly, tidying an empty string with no
 buffer allocated for it causes allocation of a buffer large enough for
 the terminating null byte.)
@@ -320,7 +322,7 @@ because the former has to do most of its work itself.  In particular,
 .B dstr_putf
 doesn't (and probably never will) understand the
 .RB ` n$ '
 .B dstr_putf
 doesn't (and probably never will) understand the
 .RB ` n$ '
-positional paramter notation accepted by many Unix C libraries.  There
+positional parameter notation accepted by many Unix C libraries.  There
 is no macro equivalent of
 .BR dstr_putf .
 .PP
 is no macro equivalent of
 .BR dstr_putf .
 .PP
@@ -383,13 +385,13 @@ The macro
 .B DWRITE
 is equivalent.
 .SH "SECURITY CONSIDERATIONS"
 .B DWRITE
 is equivalent.
 .SH "SECURITY CONSIDERATIONS"
-The implemenetation of the
+The implementation of the
 .B dstr
 functions is designed to do string handling in security-critical
 programs.  However, there may be bugs in the code somewhere.  In
 particular, the
 .B dstr_putf
 .B dstr
 functions is designed to do string handling in security-critical
 programs.  However, there may be bugs in the code somewhere.  In
 particular, the
 .B dstr_putf
-functions is quite complicated, and could do with some checking by
+functions are quite complicated, and could do with some checking by
 independent people who know what they're doing.
 .SH "SEE ALSO"
 .BR exc (3),
 independent people who know what they're doing.
 .SH "SEE ALSO"
 .BR exc (3),