|
|
|
|
@ -170,158 +170,4 @@ xaccGroupToList (Account *acc)
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------ */
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
ledgerListCount (struct _RegWindow **list)
|
|
|
|
|
{
|
|
|
|
|
struct _RegWindow *reg;
|
|
|
|
|
int n;
|
|
|
|
|
|
|
|
|
|
if (!list) return 0;
|
|
|
|
|
|
|
|
|
|
n = 0;
|
|
|
|
|
reg = list[0];
|
|
|
|
|
while (reg) {
|
|
|
|
|
n++;
|
|
|
|
|
reg = list[n];
|
|
|
|
|
}
|
|
|
|
|
return n;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------ */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
ledgerListAdd (Account * acc, struct _RegWindow *addreg)
|
|
|
|
|
{
|
|
|
|
|
struct _RegWindow **oldlist;
|
|
|
|
|
struct _RegWindow **newlist;
|
|
|
|
|
struct _RegWindow *reg;
|
|
|
|
|
int n;
|
|
|
|
|
|
|
|
|
|
if (!acc) return;
|
|
|
|
|
if (!addreg) return;
|
|
|
|
|
|
|
|
|
|
/* oldlist = acc->ledgerList; */
|
|
|
|
|
n = ledgerListCount (oldlist);
|
|
|
|
|
|
|
|
|
|
newlist = (struct _RegWindow **)
|
|
|
|
|
_malloc ((n+2) * sizeof (struct _RegWindow *));
|
|
|
|
|
|
|
|
|
|
n = 0;
|
|
|
|
|
if (oldlist) {
|
|
|
|
|
reg = oldlist[0];
|
|
|
|
|
while (reg) {
|
|
|
|
|
newlist[n] = reg;
|
|
|
|
|
n++;
|
|
|
|
|
reg = oldlist[n];
|
|
|
|
|
}
|
|
|
|
|
_free (oldlist);
|
|
|
|
|
}
|
|
|
|
|
newlist[n] = addreg;
|
|
|
|
|
newlist[n+1] = NULL;
|
|
|
|
|
|
|
|
|
|
/* acc->ledgerList = newlist; */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------ */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
ledgerListRemove (Account * acc, struct _RegWindow *delreg)
|
|
|
|
|
{
|
|
|
|
|
struct _RegWindow **oldlist;
|
|
|
|
|
struct _RegWindow **newlist;
|
|
|
|
|
struct _RegWindow *reg;
|
|
|
|
|
int n, i;
|
|
|
|
|
|
|
|
|
|
if (!acc) return;
|
|
|
|
|
if (!delreg) return;
|
|
|
|
|
|
|
|
|
|
/* oldlist = acc->ledgerList; */
|
|
|
|
|
n = ledgerListCount (oldlist);
|
|
|
|
|
|
|
|
|
|
newlist = (struct _RegWindow **)
|
|
|
|
|
_malloc ((n+1) * sizeof (struct _RegWindow *));
|
|
|
|
|
|
|
|
|
|
n = 0;
|
|
|
|
|
i = 0;
|
|
|
|
|
if (oldlist) {
|
|
|
|
|
reg = oldlist[0];
|
|
|
|
|
while (reg) {
|
|
|
|
|
newlist[i] = reg;
|
|
|
|
|
if (delreg == reg) i--;
|
|
|
|
|
i++;
|
|
|
|
|
n++;
|
|
|
|
|
reg = oldlist[n];
|
|
|
|
|
}
|
|
|
|
|
_free (oldlist);
|
|
|
|
|
}
|
|
|
|
|
newlist[i] = NULL;
|
|
|
|
|
|
|
|
|
|
/* acc->ledgerList = newlist; */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------ */
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
ledgerListIsMember (Account * acc, struct _RegWindow *memreg)
|
|
|
|
|
{
|
|
|
|
|
struct _RegWindow **list;
|
|
|
|
|
struct _RegWindow *reg;
|
|
|
|
|
int n;
|
|
|
|
|
|
|
|
|
|
if (!acc) return 0;
|
|
|
|
|
if (!memreg) return 0;
|
|
|
|
|
|
|
|
|
|
/* list = acc->ledgerList; */
|
|
|
|
|
if (!list) return 0;
|
|
|
|
|
|
|
|
|
|
n = 0;
|
|
|
|
|
reg = list[0];
|
|
|
|
|
while (reg) {
|
|
|
|
|
if (memreg == reg) return 1;
|
|
|
|
|
n++;
|
|
|
|
|
reg = list[n];
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------ */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
ledgerListAddList (Account ** list, struct _RegWindow *reg)
|
|
|
|
|
{
|
|
|
|
|
Account *acc;
|
|
|
|
|
int n = 0;
|
|
|
|
|
|
|
|
|
|
if (!list) return;
|
|
|
|
|
if (!reg) return;
|
|
|
|
|
|
|
|
|
|
acc = list[0];
|
|
|
|
|
while (acc) {
|
|
|
|
|
ledgerListAdd (acc, reg);
|
|
|
|
|
n++;
|
|
|
|
|
acc = list[n];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------ */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
ledgerListRemoveList (Account ** list, struct _RegWindow *reg)
|
|
|
|
|
{
|
|
|
|
|
Account *acc;
|
|
|
|
|
int n = 0;
|
|
|
|
|
|
|
|
|
|
if (!list) return;
|
|
|
|
|
if (!reg) return;
|
|
|
|
|
|
|
|
|
|
acc = list[0];
|
|
|
|
|
while (acc) {
|
|
|
|
|
ledgerListRemove (acc, reg);
|
|
|
|
|
n++;
|
|
|
|
|
acc = list[n];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/************************** END OF FILE *************************/
|
|
|
|
|
|