add buffer_putsa, buffer_get_token_sa, buffer_getline_sa, stralloc_chomp
and stralloc_chop
This commit is contained in:
12
stralloc/stralloc_chomp.3
Normal file
12
stralloc/stralloc_chomp.3
Normal 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
19
stralloc/stralloc_chomp.c
Normal 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
13
stralloc/stralloc_chop.3
Normal 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
7
stralloc/stralloc_chop.c
Normal 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]);
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user