build: add the SIBO SDK
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
/* NOENGINE.C */
|
||||
|
||||
#include <notes.g>
|
||||
#include <notes.rsg>
|
||||
#include <hwim.h>
|
||||
|
||||
GLREF_D PR_VAFLAT *DatApp1;
|
||||
|
||||
GLDEF_C NOTE *ePointToNote(INT pos)
|
||||
{
|
||||
return((NOTE *)p_send3(DatApp1,O_VA_PREC,pos));
|
||||
}
|
||||
|
||||
GLDEF_C INT eAppendNullEntry(VOID)
|
||||
{
|
||||
NOTE note;
|
||||
|
||||
if (DatApp1->varoot.nrec==MAX_NUMBER_NOTES)
|
||||
{
|
||||
hInfoPrint(NOSTR_MAX_NUMBER_NOTES);
|
||||
p_leave(RUN_ACTIVE_CLEANUP_NONOTIFY);
|
||||
}
|
||||
p_bfil(¬e,sizeof(NOTE),0);
|
||||
p_send3(DatApp1,O_VA_APPEND,¬e);
|
||||
return(DatApp1->varoot.nrec-1);
|
||||
}
|
||||
|
||||
LOCAL_C VOID ZeroLenBuf(LENBUF *lb)
|
||||
{
|
||||
p_free(lb->buf);
|
||||
lb->buf=NULL;
|
||||
lb->len=0;
|
||||
}
|
||||
|
||||
GLDEF_C VOID eZeroNote(NOTE *pn)
|
||||
{
|
||||
ZeroLenBuf(&pn->title);
|
||||
ZeroLenBuf(&pn->note);
|
||||
pn->tagged=FALSE;
|
||||
}
|
||||
|
||||
GLDEF_C INT eDeleteNote(INT pos)
|
||||
{
|
||||
if (DatApp1->varoot.nrec==1)
|
||||
{
|
||||
eZeroNote(ePointToNote(0));
|
||||
return(0);
|
||||
}
|
||||
p_send3(DatApp1,O_VA_DELETE,pos);
|
||||
p_send(DatApp1,O_VA_COMPRESS);
|
||||
if (pos==DatApp1->varoot.nrec)
|
||||
pos--;
|
||||
return(pos);
|
||||
}
|
||||
|
||||
GLDEF_C VOID eInitialiseEngine(VOID)
|
||||
{
|
||||
DatApp1=f_newsend(CAT_NOTES_OLIB,C_VAFLAT,O_VA_INIT,sizeof(NOTE),4);
|
||||
eAppendNullEntry();
|
||||
}
|
||||
|
||||
GLDEF_C INT eCountTaggedNotes(VOID)
|
||||
{
|
||||
INT ret;
|
||||
INT i;
|
||||
NOTE *pn;
|
||||
|
||||
ret=0;
|
||||
pn=ePointToNote(0);
|
||||
i=DatApp1->varoot.nrec;
|
||||
while (i--)
|
||||
{
|
||||
if (pn->tagged)
|
||||
ret++;
|
||||
pn++;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
GLDEF_C VOID eTagAllNotes(INT clear)
|
||||
{
|
||||
INT set;
|
||||
INT i;
|
||||
NOTE *pn;
|
||||
|
||||
set=(!clear);
|
||||
pn=ePointToNote(0);
|
||||
i=DatApp1->varoot.nrec;
|
||||
while (i--)
|
||||
{
|
||||
pn->tagged=set;
|
||||
pn++;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma save,ENTER_CALL
|
||||
|
||||
LOCAL_C INT TakeCopyLenBuf(LENBUF *targ,LENBUF *src)
|
||||
{
|
||||
targ->buf=f_alloc(src->len);
|
||||
p_bcpy(targ->buf,src->buf,src->len);
|
||||
targ->len=src->len;
|
||||
return(0);
|
||||
}
|
||||
|
||||
#pragma restore
|
||||
|
||||
GLDEF_C VOID eTakeCopy(NOTE *targ,NOTE *src)
|
||||
{
|
||||
INT ret;
|
||||
|
||||
TakeCopyLenBuf(&targ->title,&src->title);
|
||||
ret=p_enter3(TakeCopyLenBuf,&targ->note,&src->note);
|
||||
if (ret)
|
||||
{
|
||||
p_free(targ->title.buf);
|
||||
targ->title.buf=0;
|
||||
p_leave(ret);
|
||||
}
|
||||
targ->tagged=src->tagged;
|
||||
}
|
||||
|
||||
GLDEF_C VOID eMoveNoteTo(INT newpos,INT pos)
|
||||
{
|
||||
NOTE moving;
|
||||
|
||||
moving=*ePointToNote(pos);
|
||||
p_send3(DatApp1,O_VA_DELETE,pos);
|
||||
p_send4(DatApp1,O_VA_INSERT,newpos,&moving);
|
||||
}
|
||||
Reference in New Issue
Block a user