add stralloc_diff and stralloc_diffs

This commit is contained in:
leitner
2002-10-28 20:15:03 +00:00
parent e108646f26
commit 2cd4641da9
8 changed files with 93 additions and 2 deletions

13
stralloc/stralloc_diff.3 Normal file
View File

@@ -0,0 +1,13 @@
.TH stralloc_diffs 3
.SH NAME
stralloc_diffs \- compare two strallocs
.SH SYNTAX
.B #include <stralloc.h>
int \fBstralloc_diff\fP(const stralloc* \fIa\fR,const stralloc* \fIb\fR);
.SH DESCRIPTION
stralloc_diff returns negative, 0, or positive, depending on whether
\fIa\fR is lexicographically smaller than, equal to, or greater than the
string \fIb\fR.
.SH "SEE ALSO"
stralloc_diffs(3), stralloc_starts(3)

14
stralloc/stralloc_diff.c Normal file
View File

@@ -0,0 +1,14 @@
#include "stralloc.h"
#include "byte.h"
#include "str.h"
extern int stralloc_diff(const stralloc* a,const stralloc* b) {
register unsigned int i;
register int j;
for (i=0;;++i) {
if (i==a->len) return i==b->len?0:-1; if (i==b->len) return 1;
if ((j=(a->s[i]-b->s[i]))) return j;
}
return j;
}

14
stralloc/stralloc_diffs.3 Normal file
View File

@@ -0,0 +1,14 @@
.TH stralloc_diffs 3
.SH NAME
stralloc_diffs \- check if string is prefix of stralloc
.SH SYNTAX
.B #include <stralloc.h>
int \fBstralloc_diffs\fP(stralloc* \fIa\fR,const char* \fIb\fR);
.SH DESCRIPTION
stralloc_diffs returns negative, 0, or positive, depending on whether
the \\0-terminated string in \fIa\fR, without
the terminating \\0, is lexicographically smaller than, equal to, or
greater than the string stored in \fIa\fR.
.SH "SEE ALSO"
stralloc_diff(3), stralloc_starts(3), str_diff(3)

14
stralloc/stralloc_diffs.c Normal file
View File

@@ -0,0 +1,14 @@
#include "stralloc.h"
#include "byte.h"
#include "str.h"
extern int stralloc_diffs(const stralloc* a,const char* b) {
register unsigned int i;
register int j;
for (i=0;;++i) {
if (i==a->len) return (!b[i])?0:-1; if (!b[i]) return 1;
if ((j=(a->s[i]-b[i]))) return j;
}
return j;
}

View File

@@ -6,7 +6,7 @@ stralloc_starts \- check if string is prefix of stralloc
int \fBstralloc_starts\fP(stralloc* \fIsa\fR,const char* \fIin\fR);
.SH DESCRIPTION
stralloc_starts returns 1 if the \\0-terminated string in \fIbuf\fR, without
stralloc_starts returns 1 if the \\0-terminated string in \fIin\fR, without
the terminating \\0, is a prefix of the string stored in \fIsa\fR. Otherwise
it returns 0. \fIsa\fR must already be allocated.
.SH "SEE ALSO"