*** 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:
parent
89d5b286df
commit
59155a06c2
5 changed files with 50 additions and 17 deletions
|
|
@ -292,6 +292,23 @@ int DohPrintf(DOH *obj, char *format, ...) {
|
||||||
return ret;
|
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 */
|
/* Split by a character */
|
||||||
|
|
||||||
DOH *DohSplit(DOH *in, char *chs, int nsplits) {
|
DOH *DohSplit(DOH *in, char *chs, int nsplits) {
|
||||||
|
|
|
||||||
|
|
@ -317,7 +317,6 @@ Hash_getattr(DOH *ho, DOH *k) {
|
||||||
HashNode *n;
|
HashNode *n;
|
||||||
Hash *h;
|
Hash *h;
|
||||||
|
|
||||||
|
|
||||||
h = (Hash *) ho;
|
h = (Hash *) ho;
|
||||||
hv = Hashval(k) % h->hashsize;
|
hv = Hashval(k) % h->hashsize;
|
||||||
n = h->hashtable[hv];
|
n = h->hashtable[hv];
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,13 @@ typedef struct List {
|
||||||
/* Forward references */
|
/* Forward references */
|
||||||
|
|
||||||
DOH *CopyList(DOH *);
|
DOH *CopyList(DOH *);
|
||||||
void DelList(DOH *);
|
void DelList(DOH *);
|
||||||
void List_clear(DOH *);
|
void List_clear(DOH *);
|
||||||
DOH *List_get(DOH *, int pos);
|
DOH *List_get(DOH *, int pos);
|
||||||
int List_set(DOH *, int pos, DOH *obj);
|
int List_set(DOH *, int pos, DOH *obj);
|
||||||
int List_insert(DOH *, int pos, DOH *item);
|
int List_insert(DOH *, int pos, DOH *item);
|
||||||
int List_remove(DOH *, int pos);
|
int List_remove(DOH *, int pos);
|
||||||
int List_len(DOH *);
|
int List_len(DOH *);
|
||||||
DOH *List_first(DOH *);
|
DOH *List_first(DOH *);
|
||||||
DOH *List_next(DOH *);
|
DOH *List_next(DOH *);
|
||||||
DOH *List_str(DOH *);
|
DOH *List_str(DOH *);
|
||||||
|
|
@ -349,7 +349,6 @@ List_dump(DOH *lo, DOH *out) {
|
||||||
return nsent;
|
return nsent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SORT
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
* void List_sort(DOH *DOH)
|
* void List_sort(DOH *DOH)
|
||||||
*
|
*
|
||||||
|
|
@ -369,8 +368,3 @@ void List_sort(DOH *so) {
|
||||||
l = (List *) so;
|
l = (List *) so;
|
||||||
qsort(l->items,l->nitems,sizeof(DOH *), objcmp);
|
qsort(l->items,l->nitems,sizeof(DOH *), objcmp);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -238,9 +238,24 @@ int
|
||||||
String_cmp(DOH *so1, DOH *so2)
|
String_cmp(DOH *so1, DOH *so2)
|
||||||
{
|
{
|
||||||
String *s1, *s2;
|
String *s1, *s2;
|
||||||
|
char *c1, *c2;
|
||||||
|
int maxlen,i,ret;
|
||||||
s1 = (String *) so1;
|
s1 = (String *) so1;
|
||||||
s2 = (String *) so2;
|
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;
|
String *s = (String *) so;
|
||||||
char *c;
|
char *c;
|
||||||
int i, h = 0, len;
|
int i, h = 0, len;
|
||||||
if (s->hashkey >= 0) return s->hashkey;
|
/* if (s->hashkey >= 0) return s->hashkey; */
|
||||||
c = s->str;
|
c = s->str;
|
||||||
len = s->len > 50 ? 50 : s->len;
|
len = s->len > 50 ? 50 : s->len;
|
||||||
for (i = 0; i < len; i++) {
|
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)
|
int String_delitem(DOH *so, int pos)
|
||||||
{
|
{
|
||||||
String *s = (String *) so;
|
String *s = (String *) so;
|
||||||
|
s->hashkey = -1;
|
||||||
if (pos == DOH_END) pos = s->len-1;
|
if (pos == DOH_END) pos = s->len-1;
|
||||||
if (pos == DOH_BEGIN) pos = 0;
|
if (pos == DOH_BEGIN) pos = 0;
|
||||||
|
|
||||||
|
|
@ -461,13 +477,14 @@ int
|
||||||
String_write(DOH *so, void *buffer, int len) {
|
String_write(DOH *so, void *buffer, int len) {
|
||||||
int reallen, newlen, newmaxsize;
|
int reallen, newlen, newmaxsize;
|
||||||
String *s = (String *) so;
|
String *s = (String *) so;
|
||||||
newlen = s->sp + len + 1;
|
s->hashkey = -1;
|
||||||
|
newlen = s->sp + len+1;
|
||||||
if (newlen > s->maxsize) {
|
if (newlen > s->maxsize) {
|
||||||
assert(s->str = (char *) realloc(s->str,newlen));
|
assert(s->str = (char *) realloc(s->str,newlen));
|
||||||
s->maxsize = newlen;
|
s->maxsize = newlen;
|
||||||
s->len = s->sp + len;
|
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);
|
memmove(s->str+s->sp,buffer,len);
|
||||||
s->sp += len;
|
s->sp += len;
|
||||||
s->pbi = 0;
|
s->pbi = 0;
|
||||||
|
|
@ -516,6 +533,7 @@ String_tell(DOH *so) {
|
||||||
int
|
int
|
||||||
String_putc(DOH *so, int ch) {
|
String_putc(DOH *so, int ch) {
|
||||||
String *s = (String *) so;
|
String *s = (String *) so;
|
||||||
|
s->hashkey = -1;
|
||||||
if (s->sp >= s->len) {
|
if (s->sp >= s->len) {
|
||||||
String_addchar(s,(char) ch);
|
String_addchar(s,(char) ch);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -534,6 +552,7 @@ String_putc(DOH *so, int ch) {
|
||||||
|
|
||||||
int String_getc(DOH *so) {
|
int String_getc(DOH *so) {
|
||||||
String *s = (String *) so;
|
String *s = (String *) so;
|
||||||
|
|
||||||
if (s->pbi) {
|
if (s->pbi) {
|
||||||
return (int) s->pb[--s->pbi];
|
return (int) s->pb[--s->pbi];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 *NewFile(char *file, char *mode);
|
||||||
extern DOH *NewFileFromFile(FILE *f);
|
extern DOH *NewFileFromFile(FILE *f);
|
||||||
extern DOH *NewFileFromFd(int fd);
|
extern DOH *NewFileFromFd(int fd);
|
||||||
|
extern int DohCopyto(DOH *input, DOH *output);
|
||||||
|
|
||||||
|
#define Copyto DohCopyto
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
* List
|
* List
|
||||||
|
|
@ -276,6 +279,7 @@ extern DOH *Hash_keys(DOH *);
|
||||||
|
|
||||||
extern DOH *NewVoid(void *ptr, void (*del)(void *));
|
extern DOH *NewVoid(void *ptr, void (*del)(void *));
|
||||||
|
|
||||||
|
|
||||||
extern DOH *DohSplit(DOH *input, char *chs, int nsplits);
|
extern DOH *DohSplit(DOH *input, char *chs, int nsplits);
|
||||||
#define Split DohSplit
|
#define Split DohSplit
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue