*** empty log message ***

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@13 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Dave Beazley 1999-08-12 00:25:40 +00:00
commit 59155a06c2
5 changed files with 50 additions and 17 deletions

View file

@ -292,6 +292,23 @@ int DohPrintf(DOH *obj, char *format, ...) {
return ret;
}
/* DohCopyto(DOH *in, DOH *out) */
int DohCopyto(DOH *in, DOH *out) {
int nbytes = 0, ret;
char buffer[16384];
while (1) {
ret = Read(in,buffer,16384);
if (ret > 0) {
Write(out,buffer,ret);
nbytes += ret;
} else {
return nbytes;
}
}
}
/* Split by a character */
DOH *DohSplit(DOH *in, char *chs, int nsplits) {

View file

@ -317,7 +317,6 @@ Hash_getattr(DOH *ho, DOH *k) {
HashNode *n;
Hash *h;
h = (Hash *) ho;
hv = Hashval(k) % h->hashsize;
n = h->hashtable[hv];

View file

@ -34,13 +34,13 @@ typedef struct List {
/* Forward references */
DOH *CopyList(DOH *);
void DelList(DOH *);
void List_clear(DOH *);
void DelList(DOH *);
void List_clear(DOH *);
DOH *List_get(DOH *, int pos);
int List_set(DOH *, int pos, DOH *obj);
int List_insert(DOH *, int pos, DOH *item);
int List_remove(DOH *, int pos);
int List_len(DOH *);
int List_set(DOH *, int pos, DOH *obj);
int List_insert(DOH *, int pos, DOH *item);
int List_remove(DOH *, int pos);
int List_len(DOH *);
DOH *List_first(DOH *);
DOH *List_next(DOH *);
DOH *List_str(DOH *);
@ -349,7 +349,6 @@ List_dump(DOH *lo, DOH *out) {
return nsent;
}
#ifdef SORT
/* -----------------------------------------------------------------------------
* void List_sort(DOH *DOH)
*
@ -369,8 +368,3 @@ void List_sort(DOH *so) {
l = (List *) so;
qsort(l->items,l->nitems,sizeof(DOH *), objcmp);
}
#endif

View file

@ -238,9 +238,24 @@ int
String_cmp(DOH *so1, DOH *so2)
{
String *s1, *s2;
char *c1, *c2;
int maxlen,i,ret;
s1 = (String *) so1;
s2 = (String *) so2;
return strcmp(s1->str,s2->str);
maxlen = s1->len;
if (s2->len < maxlen) maxlen = s2->len;
c1 = s1->str;
c2 = s2->str;
for (i = 0; i < maxlen; i++) {
if (*c1 != *c2) break;
}
if (i < maxlen) {
if (*c1 < *c2) return -1;
else return 1;
}
if (s1->len == s2->len) return 0;
if (s1->len > s2->len) return 1;
return -1;
}
/* -----------------------------------------------------------------------------
@ -251,7 +266,7 @@ int String_hash(DOH *so) {
String *s = (String *) so;
char *c;
int i, h = 0, len;
if (s->hashkey >= 0) return s->hashkey;
/* if (s->hashkey >= 0) return s->hashkey; */
c = s->str;
len = s->len > 50 ? 50 : s->len;
for (i = 0; i < len; i++) {
@ -400,6 +415,7 @@ String_insert(DOH *so, int pos, DOH *str)
int String_delitem(DOH *so, int pos)
{
String *s = (String *) so;
s->hashkey = -1;
if (pos == DOH_END) pos = s->len-1;
if (pos == DOH_BEGIN) pos = 0;
@ -461,13 +477,14 @@ int
String_write(DOH *so, void *buffer, int len) {
int reallen, newlen, newmaxsize;
String *s = (String *) so;
newlen = s->sp + len + 1;
s->hashkey = -1;
newlen = s->sp + len+1;
if (newlen > s->maxsize) {
assert(s->str = (char *) realloc(s->str,newlen));
s->maxsize = newlen;
s->len = s->sp + len;
}
if (newlen > s->len) s->len = newlen;
if ((s->sp+len) > s->len) s->len = s->sp + len;
memmove(s->str+s->sp,buffer,len);
s->sp += len;
s->pbi = 0;
@ -516,6 +533,7 @@ String_tell(DOH *so) {
int
String_putc(DOH *so, int ch) {
String *s = (String *) so;
s->hashkey = -1;
if (s->sp >= s->len) {
String_addchar(s,(char) ch);
} else {
@ -534,6 +552,7 @@ String_putc(DOH *so, int ch) {
int String_getc(DOH *so) {
String *s = (String *) so;
if (s->pbi) {
return (int) s->pb[--s->pbi];
}

View file

@ -253,6 +253,9 @@ extern void String_replace(DOH *s, DOH *token, DOH *rep, int flags);
extern DOH *NewFile(char *file, char *mode);
extern DOH *NewFileFromFile(FILE *f);
extern DOH *NewFileFromFd(int fd);
extern int DohCopyto(DOH *input, DOH *output);
#define Copyto DohCopyto
/* -----------------------------------------------------------------------------
* List
@ -276,6 +279,7 @@ extern DOH *Hash_keys(DOH *);
extern DOH *NewVoid(void *ptr, void (*del)(void *));
extern DOH *DohSplit(DOH *input, char *chs, int nsplits);
#define Split DohSplit