trying to get lda.c working
This commit is contained in:
@ -1,341 +0,0 @@
|
||||
/*
|
||||
* $Id: dar.c 337 2008-08-20 09:17:25Z baconevi $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
|
||||
#include <ase/cmn/dar.h>
|
||||
#include "mem.h"
|
||||
|
||||
ase_dar_t* ase_dar_open (ase_mmgr_t* dar, ase_size_t ext, ase_size_t capa)
|
||||
{
|
||||
ase_dar_t* dar;
|
||||
|
||||
if (mmgr == ASE_NULL)
|
||||
{
|
||||
mmgr = ASE_MMGR_GETDFL();
|
||||
|
||||
ASE_ASSERTX (mmgr != ASE_NULL,
|
||||
"Set the memory manager with ASE_MMGR_SETDFL()");
|
||||
|
||||
if (mmgr == ASE_NULL) return ASE_NULL;
|
||||
}
|
||||
|
||||
dar = ASE_MMGR_ALLOC (mmgr, ASE_SIZEOF(ase_dar_t) + ext);
|
||||
if (dar == ASE_NULL) return ASE_NULL;
|
||||
|
||||
return ase_dar_init (dar, mmgr, capa);
|
||||
}
|
||||
|
||||
void ase_dar_close (ase_dar_t* dar)
|
||||
{
|
||||
ase_dar_fini (dar);
|
||||
ASE_MMGR_FREE (dar->mmgr, dar);
|
||||
}
|
||||
|
||||
ase_dar_t* ase_dar_init (ase_dar_t* dar, ase_mmgr_t* mmgr, ase_size_t capa)
|
||||
{
|
||||
ASE_MEMSET (dar, 0, ASE_SIZEOF(*dar));
|
||||
|
||||
dar->mmgr = mmgr;
|
||||
dar->size = 0;
|
||||
dar->capa = capa;
|
||||
|
||||
if (capa == 0) dar->buf = ASE_NULL;
|
||||
else
|
||||
{
|
||||
dar->buf = ASE_MMGR_ALLOC (....);
|
||||
if (dar->buf == ASE_NULL) return ASE_NULL;
|
||||
}
|
||||
|
||||
return dar;
|
||||
}
|
||||
|
||||
void ase_dar_fini (ase_dar_t* dar)
|
||||
{
|
||||
ase_dar_clear (dar);
|
||||
|
||||
if (dar->buf != ASE_NULL)
|
||||
{
|
||||
ASE_MMGR_FREE (dar->mmgr, dar->buf);
|
||||
dar->buf = ASE_NULL;
|
||||
dar->capa = 0;
|
||||
}
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_getsize (ase_dar_t* dar)
|
||||
{
|
||||
return dar->size;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_getcapa (ase_dar_t* dar)
|
||||
{
|
||||
return dar->capa;
|
||||
}
|
||||
|
||||
ase_dar_t* ase_dar_setcapa (ase_dar_t* dar, ase_size_t capa)
|
||||
{
|
||||
void* tmp;
|
||||
|
||||
if (dar->size > capa)
|
||||
{
|
||||
ase_dar_delete (dar, capa, dar->size - capa);
|
||||
ASE_ASSERT (dar->size <= capa);
|
||||
}
|
||||
|
||||
if (capa > 0)
|
||||
{
|
||||
if (dar->awk->mmgr->realloc != ASE_NULL)
|
||||
{
|
||||
tmp = ASE_AWK_REALLOC (dar->awk,
|
||||
dar->buf, ASE_SIZEOF(*dar->buf) * capa);
|
||||
if (tmp == ASE_NULL) return ASE_NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = ASE_AWK_ALLOC (
|
||||
dar->awk, ASE_SIZEOF(*dar->buf) * capa);
|
||||
if (tmp == ASE_NULL) return ASE_NULL;
|
||||
if (dar->buf != ASE_NULL)
|
||||
{
|
||||
ase_size_t x;
|
||||
x = (capa > dar->capa)? dar->capa: capa;
|
||||
ASE_MEMCPY (
|
||||
tmp, dar->buf,
|
||||
ASE_SIZEOF(*dar->buf) * x);
|
||||
ASE_AWK_FREE (dar->awk, dar->buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dar->buf != ASE_NULL) ASE_AWK_FREE (dar->awk, dar->buf);
|
||||
tmp = ASE_NULL;
|
||||
}
|
||||
|
||||
dar->buf = tmp;
|
||||
dar->capa = capa;
|
||||
|
||||
return dar;
|
||||
}
|
||||
|
||||
void ase_dar_clear (ase_dar_t* dar)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
for (i = 0; i < dar->size; i++)
|
||||
{
|
||||
ASE_AWK_FREE (dar->awk, dar->buf[i].name.ptr);
|
||||
dar->buf[i].name.ptr = ASE_NULL;
|
||||
dar->buf[i].name.len = 0;
|
||||
}
|
||||
|
||||
dar->size = 0;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_insert (
|
||||
ase_dar_t* dar, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
ase_char_t* dup;
|
||||
|
||||
dup = ASE_AWK_STRXDUP (dar->awk, str, len);
|
||||
if (dup == ASE_NULL) return (ase_size_t)-1;
|
||||
|
||||
if (index >= dar->capa)
|
||||
{
|
||||
ase_size_t capa;
|
||||
|
||||
if (dar->capa <= 0) capa = (index + 1);
|
||||
else
|
||||
{
|
||||
do { capa = dar->capa * 2; } while (index >= capa);
|
||||
}
|
||||
|
||||
if (ase_dar_setcapa(dar,capa) == ASE_NULL)
|
||||
{
|
||||
ASE_AWK_FREE (dar->awk, dup);
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = dar->size; i > index; i--) dar->buf[i] = dar->buf[i-1];
|
||||
dar->buf[index].name.ptr = dup;
|
||||
dar->buf[index].name.len = len;
|
||||
|
||||
if (index > dar->size) dar->size = index + 1;
|
||||
else dar->size++;
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_delete (
|
||||
ase_dar_t* dar, ase_size_t index, ase_size_t count)
|
||||
{
|
||||
ase_size_t i, j, k;
|
||||
|
||||
if (index >= dar->size) return 0;
|
||||
if (count > dar->size - index) count = dar->size - index;
|
||||
|
||||
i = index;
|
||||
j = index + count;
|
||||
k = index + count;
|
||||
|
||||
while (i < k)
|
||||
{
|
||||
ASE_AWK_FREE (dar->awk, dar->buf[i].name.ptr);
|
||||
|
||||
if (j >= dar->size)
|
||||
{
|
||||
dar->buf[i].name.ptr = ASE_NULL;
|
||||
dar->buf[i].name.len = 0;
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
dar->buf[i].name.ptr = dar->buf[j].name.ptr;
|
||||
dar->buf[i].name.len = dar->buf[j].name.len;
|
||||
i++; j++;
|
||||
}
|
||||
}
|
||||
|
||||
dar->size -= count;
|
||||
return count;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_add (
|
||||
ase_dar_t* dar, const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
return ase_dar_insert (dar, dar->size, str, len);
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_adduniq (
|
||||
ase_dar_t* dar, const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
i = ase_dar_find (dar, 0, str, len);
|
||||
if (i != (ase_size_t)-1) return i; /* found. return the current index */
|
||||
|
||||
/* insert a new entry */
|
||||
return ase_dar_insert (dar, dar->size, str, len);
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_find (
|
||||
ase_dar_t* dar, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
for (i = index; i < dar->size; i++)
|
||||
{
|
||||
if (ase_strxncmp (
|
||||
dar->buf[i].name.ptr, dar->buf[i].name.len,
|
||||
str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_rfind (
|
||||
ase_dar_t* dar, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= dar->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = index + 1; i-- > 0; )
|
||||
{
|
||||
if (ase_strxncmp (
|
||||
dar->buf[i].name.ptr, dar->buf[i].name.len,
|
||||
str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_rrfind (
|
||||
ase_dar_t* dar, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= dar->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = dar->size - index; i-- > 0; )
|
||||
{
|
||||
if (ase_strxncmp (
|
||||
dar->buf[i].name.ptr, dar->buf[i].name.len,
|
||||
str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_findx (
|
||||
ase_dar_t* dar, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len,
|
||||
void(*transform)(ase_size_t, ase_cstr_t*,void*), void* arg)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
for (i = index; i < dar->size; i++)
|
||||
{
|
||||
ase_cstr_t x;
|
||||
|
||||
x.ptr = dar->buf[i].name.ptr;
|
||||
x.len = dar->buf[i].name.len;
|
||||
|
||||
transform (i, &x, arg);
|
||||
if (ase_strxncmp (x.ptr, x.len, str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_rfindx (
|
||||
ase_dar_t* dar, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len,
|
||||
void(*transform)(ase_size_t, ase_cstr_t*,void*), void* arg)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= dar->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = index + 1; i-- > 0; )
|
||||
{
|
||||
ase_cstr_t x;
|
||||
|
||||
x.ptr = dar->buf[i].name.ptr;
|
||||
x.len = dar->buf[i].name.len;
|
||||
|
||||
transform (i, &x, arg);
|
||||
if (ase_strxncmp (x.ptr, x.len, str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_dar_rrfindx (
|
||||
ase_dar_t* dar, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len,
|
||||
void(*transform)(ase_size_t, ase_cstr_t*,void*), void* arg)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= dar->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = dar->size - index; i-- > 0; )
|
||||
{
|
||||
ase_cstr_t x;
|
||||
|
||||
x.ptr = dar->buf[i].name.ptr;
|
||||
x.len = dar->buf[i].name.len;
|
||||
|
||||
transform (i, &x, arg);
|
||||
if (ase_strxncmp (x.ptr, x.len, str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
374
ase/lib/cmn/lda.c
Normal file
374
ase/lib/cmn/lda.c
Normal file
@ -0,0 +1,374 @@
|
||||
/*
|
||||
* $Id: lda.c 337 2008-08-20 09:17:25Z baconevi $
|
||||
*
|
||||
* {License}
|
||||
*/
|
||||
|
||||
#include <ase/cmn/lda.h>
|
||||
#include "mem.h"
|
||||
|
||||
#define TOB(lda,len) ((len)*(lda)->scale)
|
||||
|
||||
ase_lda_t* ase_lda_open (ase_mmgr_t* mmgr, ase_size_t ext, ase_size_t capa)
|
||||
{
|
||||
ase_lda_t* lda;
|
||||
|
||||
if (mmgr == ASE_NULL)
|
||||
{
|
||||
mmgr = ASE_MMGR_GETDFL();
|
||||
|
||||
ASE_ASSERTX (mmgr != ASE_NULL,
|
||||
"Set the memory manager with ASE_MMGR_SETDFL()");
|
||||
|
||||
if (mmgr == ASE_NULL) return ASE_NULL;
|
||||
}
|
||||
|
||||
lda = ASE_MMGR_ALLOC (mmgr, ASE_SIZEOF(ase_lda_t) + ext);
|
||||
if (lda == ASE_NULL) return ASE_NULL;
|
||||
|
||||
return ase_lda_init (lda, mmgr, capa);
|
||||
}
|
||||
|
||||
void ase_lda_close (ase_lda_t* lda)
|
||||
{
|
||||
ase_lda_fini (lda);
|
||||
ASE_MMGR_FREE (lda->mmgr, lda);
|
||||
}
|
||||
|
||||
ase_lda_t* ase_lda_init (ase_lda_t* lda, ase_mmgr_t* mmgr, ase_size_t capa)
|
||||
{
|
||||
ASE_MEMSET (lda, 0, ASE_SIZEOF(*lda));
|
||||
|
||||
lda->mmgr = mmgr;
|
||||
lda->size = 0;
|
||||
lda->capa = 0;
|
||||
lda->slot = ASE_NULL;
|
||||
|
||||
if (ase_lda_setcapa (lda, capa) == ASE_NULL) return ASE_NULL;
|
||||
return lda;
|
||||
}
|
||||
|
||||
void ase_lda_fini (ase_lda_t* lda)
|
||||
{
|
||||
ase_lda_clear (lda);
|
||||
|
||||
if (lda->slot != ASE_NULL)
|
||||
{
|
||||
ASE_MMGR_FREE (lda->mmgr, lda->slot);
|
||||
lda->slot = ASE_NULL;
|
||||
lda->capa = 0;
|
||||
}
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_getsize (ase_lda_t* lda)
|
||||
{
|
||||
return lda->size;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_getcapa (ase_lda_t* lda)
|
||||
{
|
||||
return lda->capa;
|
||||
}
|
||||
|
||||
ase_lda_t* ase_lda_setcapa (ase_lda_t* lda, ase_size_t capa)
|
||||
{
|
||||
void* tmp;
|
||||
|
||||
if (lda->size > capa)
|
||||
{
|
||||
ase_lda_delete (lda, capa, lda->size - capa);
|
||||
ASE_ASSERT (lda->size <= capa);
|
||||
}
|
||||
|
||||
if (capa > 0)
|
||||
{
|
||||
if (lda->mmgr->realloc != ASE_NULL)
|
||||
{
|
||||
tmp = ASE_MMGR_REALLOC (lda->mmgr,
|
||||
lda->slot, ASE_SIZEOF(*lda->slot) * capa);
|
||||
if (tmp == ASE_NULL) return ASE_NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp = ASE_MMGR_ALLOC (
|
||||
lda->mmgr, ASE_SIZEOF(*lda->slot) * capa);
|
||||
if (tmp == ASE_NULL) return ASE_NULL;
|
||||
if (lda->slot != ASE_NULL)
|
||||
{
|
||||
ase_size_t x;
|
||||
x = (capa > lda->capa)? lda->capa: capa;
|
||||
ASE_MEMCPY (
|
||||
tmp, lda->slot,
|
||||
ASE_SIZEOF(*lda->slot) * x);
|
||||
ASE_MMGR_FREE (lda->mmgr, lda->slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (lda->slot != ASE_NULL) ASE_MMGR_FREE (lda->mmgr, lda->slot);
|
||||
tmp = ASE_NULL;
|
||||
}
|
||||
|
||||
lda->slot = tmp;
|
||||
lda->capa = capa;
|
||||
|
||||
return lda;
|
||||
}
|
||||
|
||||
static ase_lda_slot_t* alloc_slot (ase_lda_t* lda, void* dptr, ase_size_t dlen)
|
||||
{
|
||||
ase_lda_slot_t* n;
|
||||
|
||||
if (lda->copier == ASE_NULL)
|
||||
{
|
||||
n = ASE_MMGR_ALLOC (lda->mmgr, ASE_SIZEOF(ase_lda_slot_t));
|
||||
if (n == ASE_NULL) return ASE_NULL;
|
||||
DPTR(n) = dptr;
|
||||
}
|
||||
else if (lda->copier == ASE_LDA_COPIER_INLINE)
|
||||
{
|
||||
n = ASE_MMGR_ALLOC (lda->mmgr,
|
||||
ASE_SIZEOF(ase_lda_slot_t) + TOB(lda,dlen));
|
||||
if (n == ASE_NULL) return ASE_NULL;
|
||||
|
||||
ASE_MEMCPY (n + 1, dptr, TOB(lda,dlen));
|
||||
DPTR(n) = n + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
n = ASE_MMGR_ALLOC (lda->mmgr, ASE_SIZEOF(slot_t));
|
||||
if (n == ASE_NULL) return ASE_NULL;
|
||||
DPTR(n) = lda->copier (lda, dptr, dlen);
|
||||
if (DPTR(n) == ASE_NULL)
|
||||
{
|
||||
ASE_MMGR_FREE (lda->mmgr, n);
|
||||
return ASE_NULL;
|
||||
}
|
||||
}
|
||||
|
||||
DLEN(n) = dlen;
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
ase_lda_slot_t* ase_lda_insert (
|
||||
ase_lda_t* lda, ase_size_t index, void* dptr, ase_size_t dlen)
|
||||
{
|
||||
ase_size_t i;
|
||||
ase_lda_slot_t* slot;
|
||||
|
||||
slot = alloc_slot (lda, dptr, dlen);
|
||||
if (slot == ASE_NULL) return ASE_NULL;
|
||||
|
||||
if (index >= lda->capa)
|
||||
{
|
||||
ase_size_t capa;
|
||||
|
||||
if (lda->capa <= 0) capa = (index + 1);
|
||||
else
|
||||
{
|
||||
do { capa = lda->capa * 2; } while (index >= capa);
|
||||
}
|
||||
|
||||
if (ase_lda_setcapa(lda,capa) == ASE_NULL)
|
||||
{
|
||||
if (lda->freeer)
|
||||
lda->freeer (lda, slot->dptr, slot->dlen);
|
||||
return ASE_NULL;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = lda->size; i > index; i--)
|
||||
lda->slot[i] = lda->slot[i-1];
|
||||
lda->slot[index] = slot;
|
||||
|
||||
if (index > lda->size) lda->size = index + 1;
|
||||
else lda->size++;
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_delete (
|
||||
ase_lda_t* lda, ase_size_t index, ase_size_t count)
|
||||
{
|
||||
ase_size_t i, j, k;
|
||||
|
||||
if (index >= lda->size) return 0;
|
||||
if (count > lda->size - index) count = lda->size - index;
|
||||
|
||||
i = index;
|
||||
j = index + count;
|
||||
k = index + count;
|
||||
|
||||
while (i < k)
|
||||
{
|
||||
ASE_AWK_FREE (lda->awk, lda->slot[i].name.ptr);
|
||||
|
||||
if (j >= lda->size)
|
||||
{
|
||||
lda->slot[i].name.ptr = ASE_NULL;
|
||||
lda->slot[i].name.len = 0;
|
||||
i++;
|
||||
}
|
||||
else
|
||||
{
|
||||
lda->slot[i].name.ptr = lda->slot[j].name.ptr;
|
||||
lda->slot[i].name.len = lda->slot[j].name.len;
|
||||
i++; j++;
|
||||
}
|
||||
}
|
||||
|
||||
lda->size -= count;
|
||||
return count;
|
||||
}
|
||||
|
||||
void ase_lda_clear (ase_lda_t* lda)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
for (i = 0; i < lda->size; i++)
|
||||
{
|
||||
ASE_MMGR_FREE (lda->mmgr, lda->slot[i].name.ptr);
|
||||
lda->slot[i].name.ptr = ASE_NULL;
|
||||
lda->slot[i].name.len = 0;
|
||||
}
|
||||
|
||||
lda->size = 0;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_add (
|
||||
ase_lda_t* lda, ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
return ase_lda_insert (lda, lda->size, str, len);
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_adduniq (
|
||||
ase_lda_t* lda, ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
i = ase_lda_find (lda, 0, str, len);
|
||||
if (i != (ase_size_t)-1) return i; /* found. return the current index */
|
||||
|
||||
/* insert a new entry */
|
||||
return ase_lda_insert (lda, lda->size, str, len);
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_find (
|
||||
ase_lda_t* lda, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
for (i = index; i < lda->size; i++)
|
||||
{
|
||||
if (ase_strxncmp (
|
||||
lda->slot[i].name.ptr, lda->slot[i].name.len,
|
||||
str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_rfind (
|
||||
ase_lda_t* lda, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= lda->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = index + 1; i-- > 0; )
|
||||
{
|
||||
if (ase_strxncmp (
|
||||
lda->slot[i].name.ptr, lda->slot[i].name.len,
|
||||
str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_rrfind (
|
||||
ase_lda_t* lda, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= lda->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = lda->size - index; i-- > 0; )
|
||||
{
|
||||
if (ase_strxncmp (
|
||||
lda->slot[i].name.ptr, lda->slot[i].name.len,
|
||||
str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_findx (
|
||||
ase_lda_t* lda, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len,
|
||||
void(*transform)(ase_size_t, ase_cstr_t*,void*), void* arg)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
for (i = index; i < lda->size; i++)
|
||||
{
|
||||
ase_cstr_t x;
|
||||
|
||||
x.ptr = lda->slot[i].name.ptr;
|
||||
x.len = lda->slot[i].name.len;
|
||||
|
||||
transform (i, &x, arg);
|
||||
if (ase_strxncmp (x.ptr, x.len, str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_rfindx (
|
||||
ase_lda_t* lda, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len,
|
||||
void(*transform)(ase_size_t, ase_cstr_t*,void*), void* arg)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= lda->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = index + 1; i-- > 0; )
|
||||
{
|
||||
ase_cstr_t x;
|
||||
|
||||
x.ptr = lda->slot[i].name.ptr;
|
||||
x.len = lda->slot[i].name.len;
|
||||
|
||||
transform (i, &x, arg);
|
||||
if (ase_strxncmp (x.ptr, x.len, str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
||||
|
||||
ase_size_t ase_lda_rrfindx (
|
||||
ase_lda_t* lda, ase_size_t index,
|
||||
const ase_char_t* str, ase_size_t len,
|
||||
void(*transform)(ase_size_t, ase_cstr_t*,void*), void* arg)
|
||||
{
|
||||
ase_size_t i;
|
||||
|
||||
if (index >= lda->size) return (ase_size_t)-1;
|
||||
|
||||
for (i = lda->size - index; i-- > 0; )
|
||||
{
|
||||
ase_cstr_t x;
|
||||
|
||||
x.ptr = lda->slot[i].name.ptr;
|
||||
x.len = lda->slot[i].name.len;
|
||||
|
||||
transform (i, &x, arg);
|
||||
if (ase_strxncmp (x.ptr, x.len, str, len) == 0) return i;
|
||||
}
|
||||
|
||||
return (ase_size_t)-1;
|
||||
}
|
@ -4,7 +4,8 @@ AM_CFLAGS = -I$(top_builddir)/include
|
||||
|
||||
lib_LTLIBRARIES = libasecmn.la
|
||||
libasecmn_la_SOURCES = mem.h chr.h \
|
||||
mem.c chr.c map.c misc.c rex.c str_bas.c str_cnv.c str_dyn.c \
|
||||
sll.c dll.c opt.c
|
||||
mem.c chr.c rex.c str_bas.c str_cnv.c str_dyn.c \
|
||||
lda.c map.c sll.c dll.c opt.c \
|
||||
misc.c
|
||||
libasecmn_la_LDFLAGS = -version-info 1:0:0
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
# makefile.in generated by automake 1.9.6 from makefile.am.
|
||||
# makefile.in generated by automake 1.9.2 from makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# 2003, 2004 Free Software Foundation, Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,6 +14,8 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
SOURCES = $(libasecmn_la_SOURCES)
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
@ -55,19 +57,19 @@ am__installdirs = "$(DESTDIR)$(libdir)"
|
||||
libLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
libasecmn_la_LIBADD =
|
||||
am_libasecmn_la_OBJECTS = mem.lo chr.lo map.lo misc.lo rex.lo \
|
||||
str_bas.lo str_cnv.lo str_dyn.lo sll.lo dll.lo opt.lo
|
||||
am_libasecmn_la_OBJECTS = mem.lo chr.lo rex.lo str_bas.lo str_cnv.lo \
|
||||
str_dyn.lo lda.lo map.lo sll.lo dll.lo opt.lo misc.lo
|
||||
libasecmn_la_OBJECTS = $(am_libasecmn_la_OBJECTS)
|
||||
DEFAULT_INCLUDES =
|
||||
depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(libasecmn_la_SOURCES)
|
||||
DIST_SOURCES = $(libasecmn_la_SOURCES)
|
||||
@ -140,14 +142,19 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
RM = @RM@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CJ = @ac_ct_CJ@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_GREP = @ac_ct_GREP@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_RM = @ac_ct_RM@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
@ -164,30 +171,23 @@ build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
@ -196,8 +196,9 @@ AUTOMAKE_OPTIONS = nostdinc
|
||||
AM_CFLAGS = -I$(top_builddir)/include
|
||||
lib_LTLIBRARIES = libasecmn.la
|
||||
libasecmn_la_SOURCES = mem.h chr.h \
|
||||
mem.c chr.c map.c misc.c rex.c str_bas.c str_cnv.c str_dyn.c \
|
||||
sll.c dll.c opt.c
|
||||
mem.c chr.c rex.c str_bas.c str_cnv.c str_dyn.c \
|
||||
lda.c map.c sll.c dll.c opt.c \
|
||||
misc.c
|
||||
|
||||
libasecmn_la_LDFLAGS = -version-info 1:0:0
|
||||
all: all-am
|
||||
@ -271,6 +272,7 @@ distclean-compile:
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chr.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dll.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lda.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/map.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mem.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Plo@am__quote@
|
||||
|
Reference in New Issue
Block a user