*** 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;
|
||||
}
|
||||
|
||||
/* 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) {
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue