add buffer_putsa, buffer_get_token_sa, buffer_getline_sa, stralloc_chomp

and stralloc_chop
This commit is contained in:
leitner
2002-10-17 20:32:03 +00:00
parent 2354c458a8
commit 053aadde58
14 changed files with 174 additions and 0 deletions

12
stralloc/stralloc_chomp.3 Normal file
View File

@@ -0,0 +1,12 @@
.TH stralloc_chomp 3
.SH NAME
stralloc_chomp \- remove trailing CR, LF or CRLF
.SH SYNTAX
.B #include <stralloc.h>
extern int \fBstralloc_chomp\fP(stralloc* \fIsa\fR);
.SH DESCRIPTION
stralloc_chomp removes trailing CRLF, CR or LF from \fIsa\fR and returns
the number of removed characters (i.e. 0, 1 or 2).
.SH "SEE ALSO"
stralloc_chop(3)

19
stralloc/stralloc_chomp.c Normal file
View File

@@ -0,0 +1,19 @@
#include <stralloc.h>
int stralloc_chomp(stralloc* sa) {
unsigned int max=sa->len;
if (max>0) {
register char x;
--max;
x=sa->s[max];
if (x=='\n' || x=='\r') {
if (x=='\n' && max>1 && sa->s[max-1]=='\r') {
sa->len-=2;
return 2;
}
--sa->len;
return 1;
}
}
return 0;
}

13
stralloc/stralloc_chop.3 Normal file
View File

@@ -0,0 +1,13 @@
.TH stralloc_chop 3
.SH NAME
stralloc_chop \- remove and return last char
.SH SYNTAX
.B #include <stralloc.h>
extern int \fBstralloc_chop\fP(stralloc* \fIsa\fR);
.SH DESCRIPTION
stralloc_chop removes the last char in the stralloc (if it is empty,
stralloc_chop does nothing and returns -1). This character is cast to
unsigned char and returned.
.SH "SEE ALSO"
stralloc_chomp(3)

7
stralloc/stralloc_chop.c Normal file
View File

@@ -0,0 +1,7 @@
#include <stralloc.h>
int stralloc_chop(stralloc* sa) {
if (sa->len==0) return -1;
--sa->len;
return (unsigned char)(sa->s[sa->len]);
}

View File

@@ -12,5 +12,8 @@ is the same as
\fIsafrom\fR must already be allocated.
The data that \fIsa\fR previously contained is overwritten and truncated.
If stralloc_copy has trouble allocating memory, it returns 0. Otherwise
it returns 1.
.SH "SEE ALSO"
stralloc_copyb(3)