[Gnucash-changes] r12201 - gnucash/trunk/src/engine - Add 'const'
qualifier to Account pointers in the Account api.
Chris Shoemaker
chris at cvs.gnucash.org
Thu Dec 29 22:34:29 EST 2005
Author: chris
Date: 2005-12-29 22:34:22 -0500 (Thu, 29 Dec 2005)
New Revision: 12201
Trac: http://svn.gnucash.org/trac/changeset/12201
Modified:
gnucash/trunk/src/engine/Account.c
gnucash/trunk/src/engine/Account.h
gnucash/trunk/src/engine/AccountP.h
gnucash/trunk/src/engine/Group.c
gnucash/trunk/src/engine/Group.h
gnucash/trunk/src/engine/gw-engine-spec.scm
Log:
Add 'const' qualifier to Account pointers in the Account api.
Including necessary related changes to functions passed accounts
from the account functions.
Interestingly, the only g-wrap function that complained about the
new const function arguments was xaccAccountOrder(), the only one
using const Account ** types. It seems very uncommon to express
const-ness in g-wrap for any types other than gw:mchar. Actually
I couldn't find any other examples, anywhere, so I had to guess
at the syntax, but it works.
Oh, and one or two minor tweaks like my last commit snuck in, too.
Modified: gnucash/trunk/src/engine/Account.c
===================================================================
--- gnucash/trunk/src/engine/Account.c 2005-12-30 03:31:43 UTC (rev 12200)
+++ gnucash/trunk/src/engine/Account.c 2005-12-30 03:34:22 UTC (rev 12201)
@@ -47,7 +47,7 @@
* of the internals of the Account in one file. *
\********************************************************************/
-static void xaccAccountBringUpToDate (Account *ac);
+static void xaccAccountBringUpToDate (Account *acc);
/********************************************************************\
\********************************************************************/
@@ -391,7 +391,7 @@
}
gint32
-xaccAccountGetVersion (Account *acc)
+xaccAccountGetVersion (const Account *acc)
{
if (!acc) return 0;
return (acc->version);
@@ -401,7 +401,7 @@
\********************************************************************/
gboolean
-xaccAccountEqual(Account *aa, Account *ab, gboolean check_guids)
+xaccAccountEqual(const Account *aa, const Account *ab, gboolean check_guids)
{
if(!aa && !ab) return TRUE;
@@ -625,12 +625,9 @@
void
xaccAccountSortSplits (Account *acc, gboolean force)
{
- if(!acc) return;
- if(!acc->sort_dirty) return;
- if(!force && acc->inst.editlevel > 0) return;
+ if (!acc || !acc->sort_dirty || (!force && acc->inst.editlevel > 0)) return;
acc->splits = g_list_sort(acc->splits, split_sort_func);
-
acc->sort_dirty = FALSE;
acc->balance_dirty = TRUE;
}
@@ -638,7 +635,7 @@
static void
xaccAccountBringUpToDate(Account *acc)
{
- if(!acc) return;
+ if (!acc) return;
/* if a re-sort happens here, then everything will update, so the
cost basis and balance calls are no-ops */
@@ -678,17 +675,16 @@
\********************************************************************/
short
-xaccAccountGetMark (Account *acc)
+xaccAccountGetMark (const Account *acc)
{
- if (!acc) return 0;
- return acc->mark;
+ return acc ? acc->mark : 0;
}
void
xaccAccountSetMark (Account *acc, short m)
{
- if (!acc) return;
- acc->mark = m;
+ if (acc)
+ acc->mark = m;
}
void
@@ -1168,7 +1164,7 @@
int
-xaccAccountOrder (Account **aa, Account **ab)
+xaccAccountOrder (const Account **aa, const Account **ab)
{
char *da, *db;
char *endptr = NULL;
@@ -1433,37 +1429,37 @@
\********************************************************************/
AccountGroup *
-xaccAccountGetChildren (Account *acc)
+xaccAccountGetChildren (const Account *acc)
{
return acc ? acc->children : NULL;
}
AccountGroup *
-xaccAccountGetParent (Account *acc)
+xaccAccountGetParent (const Account *acc)
{
return acc ? acc->parent : NULL;
}
Account *
-xaccAccountGetParentAccount (Account * acc)
+xaccAccountGetParentAccount (const Account * acc)
{
return acc ? xaccGroupGetParentAccount(acc->parent) : NULL;
}
GList *
-xaccAccountGetDescendants (Account *acc)
+xaccAccountGetDescendants (const Account *acc)
{
return acc ? xaccGroupGetSubAccounts(acc->children) : NULL;
}
GNCAccountType
-xaccAccountGetType (Account *acc)
+xaccAccountGetType (const Account *acc)
{
return acc ? acc->type : NO_TYPE;
}
static const char*
-qofAccountGetTypeString (Account *acc)
+qofAccountGetTypeString (const Account *acc)
{
return acc ? xaccAccountTypeEnumAsString(acc->type) : NULL;
}
@@ -1475,15 +1471,15 @@
}
const char *
-xaccAccountGetName (Account *acc)
+xaccAccountGetName (const Account *acc)
{
return acc ? acc->accountName : NULL;
}
char *
-xaccAccountGetFullName(Account *account, const char separator)
+xaccAccountGetFullName(const Account *account, const char separator)
{
- Account *a;
+ const Account *a;
char *fullname;
const char *name;
char *p;
@@ -1536,19 +1532,19 @@
}
const char *
-xaccAccountGetCode (Account *acc)
+xaccAccountGetCode (const Account *acc)
{
return acc ? acc->accountCode : NULL;
}
const char *
-xaccAccountGetDescription (Account *acc)
+xaccAccountGetDescription (const Account *acc)
{
return acc ? acc->description : NULL;
}
const char *
-xaccAccountGetNotes (Account *acc)
+xaccAccountGetNotes (const Account *acc)
{
return acc ? kvp_frame_get_string(acc->inst.kvp_data, "notes") : NULL;
}
@@ -1580,25 +1576,25 @@
}
gnc_numeric
-xaccAccountGetBalance (Account *acc)
+xaccAccountGetBalance (const Account *acc)
{
return acc ? acc->balance : gnc_numeric_zero();
}
gnc_numeric
-xaccAccountGetClearedBalance (Account *acc)
+xaccAccountGetClearedBalance (const Account *acc)
{
return acc ? acc->cleared_balance : gnc_numeric_zero();
}
gnc_numeric
-xaccAccountGetReconciledBalance (Account *acc)
+xaccAccountGetReconciledBalance (const Account *acc)
{
return acc ? acc->reconciled_balance : gnc_numeric_zero();
}
gnc_numeric
-xaccAccountGetProjectedMinimumBalance (Account *acc)
+xaccAccountGetProjectedMinimumBalance (const Account *acc)
{
GList *node;
time_t today;
@@ -1707,7 +1703,7 @@
* one that walks from the tail of the split list.
*/
gnc_numeric
-xaccAccountGetPresentBalance (Account *acc)
+xaccAccountGetPresentBalance (const Account *acc)
{
GList *node;
time_t today;
@@ -1737,7 +1733,7 @@
* Convert a balance from one currency to another.
*/
gnc_numeric
-xaccAccountConvertBalanceToCurrency(Account *account, /* for book */
+xaccAccountConvertBalanceToCurrency(const Account *acc, /* for book */
gnc_numeric balance,
gnc_commodity *balance_currency,
gnc_commodity *new_currency)
@@ -1749,7 +1745,7 @@
gnc_commodity_equiv (balance_currency, new_currency))
return balance;
- book = xaccGroupGetBook (xaccAccountGetRoot (account));
+ book = xaccGroupGetBook (xaccAccountGetRoot (acc));
pdb = gnc_pricedb_get_db (book);
balance = gnc_pricedb_convert_balance_latest_price(
@@ -1763,7 +1759,7 @@
* a given date.
*/
gnc_numeric
-xaccAccountConvertBalanceToCurrencyAsOfDate(Account *account, /* for book */
+xaccAccountConvertBalanceToCurrencyAsOfDate(const Account *acc, /* for book */
gnc_numeric balance,
gnc_commodity *balance_currency,
gnc_commodity *new_currency,
@@ -1777,7 +1773,7 @@
gnc_commodity_equiv (balance_currency, new_currency))
return balance;
- book = xaccGroupGetBook (xaccAccountGetRoot (account));
+ book = xaccGroupGetBook (xaccAccountGetRoot (acc));
pdb = gnc_book_get_pricedb (book);
ts.tv_sec = date;
@@ -1795,7 +1791,7 @@
* currency.
*/
static gnc_numeric
-xaccAccountGetXxxBalanceInCurrency (Account *acc,
+xaccAccountGetXxxBalanceInCurrency (const Account *acc,
xaccGetBalanceFn fn,
gnc_commodity *report_currency)
{
@@ -1880,7 +1876,7 @@
* If 'include_children' is FALSE, this function doesn't recurse at all.
*/
static gnc_numeric
-xaccAccountGetXxxBalanceInCurrencyRecursive (Account *acc,
+xaccAccountGetXxxBalanceInCurrencyRecursive (const Account *acc,
xaccGetBalanceFn fn,
gnc_commodity *report_commodity,
gboolean include_children)
@@ -1895,8 +1891,7 @@
/* If needed, sum up the children converting to the *requested*
commodity. */
- if (include_children)
- {
+ if (include_children) {
CurrencyBalance cb = { report_commodity, balance, fn, NULL, 0 };
xaccGroupForEachAccount (acc->children, xaccAccountBalanceHelper,
@@ -1935,7 +1930,8 @@
}
gnc_numeric
-xaccAccountGetBalanceInCurrency (Account *acc, gnc_commodity *report_commodity,
+xaccAccountGetBalanceInCurrency (const Account *acc,
+ gnc_commodity *report_commodity,
gboolean include_children)
{
gnc_numeric rc;
@@ -1947,7 +1943,7 @@
gnc_numeric
-xaccAccountGetClearedBalanceInCurrency (Account *acc,
+xaccAccountGetClearedBalanceInCurrency (const Account *acc,
gnc_commodity *report_commodity,
gboolean include_children)
{
@@ -1958,9 +1954,9 @@
gnc_numeric
-xaccAccountGetReconciledBalanceInCurrency (Account *acc,
- gnc_commodity *report_commodity,
- gboolean include_children)
+xaccAccountGetReconciledBalanceInCurrency (const Account *acc,
+ gnc_commodity *report_commodity,
+ gboolean include_children)
{
return xaccAccountGetXxxBalanceInCurrencyRecursive (
acc, xaccAccountGetReconciledBalance, report_commodity,
@@ -1968,7 +1964,7 @@
}
gnc_numeric
-xaccAccountGetPresentBalanceInCurrency (Account *acc,
+xaccAccountGetPresentBalanceInCurrency (const Account *acc,
gnc_commodity *report_commodity,
gboolean include_children)
{
@@ -1979,7 +1975,7 @@
gnc_numeric
xaccAccountGetProjectedMinimumBalanceInCurrency (
- Account *acc, gnc_commodity *report_commodity,
+ const Account *acc, gnc_commodity *report_commodity,
gboolean include_children)
{
return xaccAccountGetXxxBalanceInCurrencyRecursive (
@@ -2001,22 +1997,22 @@
\********************************************************************/
SplitList *
-xaccAccountGetSplitList (Account *acc)
+xaccAccountGetSplitList (const Account *acc)
{
return acc ? acc->splits : NULL;
}
LotList *
-xaccAccountGetLotList (Account *acc)
+xaccAccountGetLotList (const Account *acc)
{
return acc ? acc->lots : NULL;
}
LotList *
-xaccAccountFindOpenLots (Account *acc,
- gboolean (*match_func)(GNCLot *lot,
- gpointer user_data),
- gpointer user_data, GCompareFunc sort_func)
+xaccAccountFindOpenLots (const Account *acc,
+ gboolean (*match_func)(GNCLot *lot,
+ gpointer user_data),
+ gpointer user_data, GCompareFunc sort_func)
{
GList *lot_list;
GList *retval = NULL;
@@ -2046,7 +2042,7 @@
}
gpointer
-xaccAccountForEachLot(Account *acc,
+xaccAccountForEachLot(const Account *acc,
gpointer (*proc)(GNCLot *lot, void *data), void *data)
{
LotList *node;
@@ -2066,7 +2062,7 @@
/* These functions use interchange gint64 and gboolean. Is that right? */
gboolean
-xaccAccountGetTaxRelated (Account *acc)
+xaccAccountGetTaxRelated (const Account *acc)
{
return acc ? kvp_frame_get_gint64(acc->inst.kvp_data, "tax-related") : FALSE;
}
@@ -2091,7 +2087,7 @@
}
const char *
-xaccAccountGetTaxUSCode (Account *acc)
+xaccAccountGetTaxUSCode (const Account *acc)
{
return acc ? kvp_frame_get_string(acc->inst.kvp_data, "tax-US/code") : NULL;
}
@@ -2108,7 +2104,7 @@
}
const char *
-xaccAccountGetTaxUSPayerNameSource (Account *acc)
+xaccAccountGetTaxUSPayerNameSource (const Account *acc)
{
return acc ? kvp_frame_get_string(acc->inst.kvp_data,
"tax-US/payer-name-source") : NULL;
@@ -2130,7 +2126,7 @@
\********************************************************************/
gboolean
-xaccAccountGetPlaceholder (Account *acc)
+xaccAccountGetPlaceholder (const Account *acc)
{
char *str;
if (!acc) return FALSE;
@@ -2152,7 +2148,7 @@
}
GNCPlaceholderType
-xaccAccountGetDescendantPlaceholder (Account *acc)
+xaccAccountGetDescendantPlaceholder (const Account *acc)
{
GList *descendants, *node;
GNCPlaceholderType ret = PLACEHOLDER_NONE;
@@ -2175,9 +2171,9 @@
\********************************************************************/
gboolean
-xaccAccountHasAncestor (Account *acc, Account * ancestor)
+xaccAccountHasAncestor (const Account *acc, const Account * ancestor)
{
- Account *parent = acc;
+ const Account *parent = acc;
if (!acc || !ancestor) return FALSE;
@@ -2374,7 +2370,7 @@
\********************************************************************/
gboolean
-xaccAccountGetReconcileLastDate (Account *acc, time_t *last_date)
+xaccAccountGetReconcileLastDate (const Account *acc, time_t *last_date)
{
KvpValue *v;
@@ -2410,7 +2406,8 @@
\********************************************************************/
gboolean
-xaccAccountGetReconcileLastInterval (Account *acc, int *months, int *days)
+xaccAccountGetReconcileLastInterval (const Account *acc,
+ int *months, int *days)
{
KvpValue *v1, *v2;
@@ -2457,7 +2454,7 @@
\********************************************************************/
gboolean
-xaccAccountGetReconcilePostponeDate (Account *acc, time_t *postpone_date)
+xaccAccountGetReconcilePostponeDate (const Account *acc, time_t *postpone_date)
{
KvpValue *v;
@@ -2494,7 +2491,8 @@
\********************************************************************/
gboolean
-xaccAccountGetReconcilePostponeBalance (Account *acc, gnc_numeric *balance)
+xaccAccountGetReconcilePostponeBalance (const Account *acc,
+ gnc_numeric *balance)
{
KvpValue *v;
@@ -2549,7 +2547,7 @@
* If it is not defined for the account, return the default value.
*/
gboolean
-xaccAccountGetAutoInterestXfer (Account *acc, gboolean default_value)
+xaccAccountGetAutoInterestXfer (const Account *acc, gboolean default_value)
{
char *str = NULL;
if (!acc) return default_value;
@@ -2580,7 +2578,7 @@
\********************************************************************/
const char *
-xaccAccountGetLastNum (Account *acc)
+xaccAccountGetLastNum (const Account *acc)
{
return acc ? kvp_frame_get_string(acc->inst.kvp_data, "last-num") : NULL;
}
@@ -2626,7 +2624,7 @@
\********************************************************************/
const char*
-dxaccAccountGetPriceSrc(Account *acc)
+dxaccAccountGetPriceSrc(const Account *acc)
{
GNCAccountType t;
if(!acc) return NULL;
@@ -2667,7 +2665,7 @@
\********************************************************************/
const char*
-dxaccAccountGetQuoteTZ(Account *acc)
+dxaccAccountGetQuoteTZ(const Account *acc)
{
GNCAccountType t;
if(!acc) return NULL;
@@ -2702,7 +2700,7 @@
\********************************************************************/
gboolean
-xaccAccountGetReconcileChildrenStatus(Account *acc)
+xaccAccountGetReconcileChildrenStatus(const Account *acc)
{
/* access the account's kvp-data for status and return that, if no value
* is found then we can assume not to include the children, that being
@@ -2716,7 +2714,7 @@
\********************************************************************/
gint
-xaccAccountForEachTransaction(Account *acc, TransactionCallback proc,
+xaccAccountForEachTransaction(const Account *acc, TransactionCallback proc,
void *data)
{
if (!acc || !proc) return 0;
@@ -2733,7 +2731,7 @@
* passed.
*/
static void
-finder_help_function(Account *acc, const char *description,
+finder_help_function(const Account *acc, const char *description,
Split **split, Transaction **trans )
{
GList *slp;
@@ -2762,7 +2760,7 @@
}
Split *
-xaccAccountFindSplitByDesc(Account *acc, const char *description)
+xaccAccountFindSplitByDesc(const Account *acc, const char *description)
{
Split *split;
@@ -2777,7 +2775,7 @@
* auto-filling in registers with a default leading account. The
* dest_trans is a transaction used for currency checking. */
Transaction *
-xaccAccountFindTransByDesc(Account *acc, const char *description)
+xaccAccountFindTransByDesc(const Account *acc, const char *description)
{
Transaction *trans;
Modified: gnucash/trunk/src/engine/Account.h
===================================================================
--- gnucash/trunk/src/engine/Account.h 2005-12-30 03:31:43 UTC (rev 12200)
+++ gnucash/trunk/src/engine/Account.h 2005-12-30 03:34:22 UTC (rev 12201)
@@ -48,10 +48,10 @@
#include "qof.h"
#include "gnc-engine.h"
-typedef gnc_numeric (*xaccGetBalanceFn)( Account *account );
+typedef gnc_numeric (*xaccGetBalanceFn)( const Account *account );
typedef gnc_numeric (*xaccGetBalanceInCurrencyFn) (
- Account *account, gnc_commodity *report_commodity,
+ const Account *account, gnc_commodity *report_commodity,
gboolean include_children);
typedef gnc_numeric (*xaccGetBalanceAsOfDateFn) (
@@ -124,7 +124,7 @@
@{ */
/** Constructor */
-Account * xaccMallocAccount (QofBook *book);
+Account * xaccMallocAccount (QofBook *book);
/** The xaccCloneAccount() does the same as xaccCloneAccountSimple(),
* except that it also also places a pair of GUID-pointers
@@ -132,7 +132,7 @@
* The guid pointers are stored under the under the kvp
* path "gemini".
*/
-Account * xaccCloneAccount (const Account *from, QofBook *book);
+Account * xaccCloneAccount (const Account *from, QofBook *book);
/** The xaccCloneAccountSimple() routine makes a simple copy of the
* indicated account, placing it in the indicated book. It copies
@@ -144,23 +144,24 @@
* Note that this routines does *NOT* use the 'gemini' kvp value
* to indicate where it was copied from.
*/
-Account * xaccCloneAccountSimple (const Account *from, QofBook *book);
+Account * xaccCloneAccountSimple (const Account *from, QofBook *book);
/** The xaccAccountBeginEdit() subroutine is the first phase of
* a two-phase-commit wrapper for account updates. */
-void xaccAccountBeginEdit (Account *account);
+void xaccAccountBeginEdit (Account *account);
/** ThexaccAccountCommitEdit() subroutine is the second phase of
* a two-phase-commit wrapper for account updates. */
-void xaccAccountCommitEdit (Account *account);
+void xaccAccountCommitEdit (Account *account);
/** The xaccAccountDestroy() routine can be used to get rid of an
* account. The account should have been opened for editing
* (by calling xaccAccountBeginEdit()) before calling this routine.*/
-void xaccAccountDestroy (Account *account);
+void xaccAccountDestroy (Account *account);
/** Compare two accounts for equality - this is a deep compare. */
-gboolean xaccAccountEqual(Account *a, Account* b, gboolean check_guids);
+gboolean xaccAccountEqual(const Account *a, const Account* b,
+ gboolean check_guids);
/** The xaccAccountOrder() subroutine defines a sorting order
* on accounts. It takes pointers to two accounts, and
@@ -170,7 +171,7 @@
* the account codes are compared, and if these are equal, then
* account types, and, if these are equal, the account names.
*/
-int xaccAccountOrder (Account **account_1, Account **account_2);
+int xaccAccountOrder (const Account **account_1, const Account **account_2);
/** @} */
@@ -187,8 +188,8 @@
/** The xaccAccountLookup() subroutine will return the
* account associated with the given id, or NULL
* if there is no such account. */
-Account * xaccAccountLookup (const GUID *guid, QofBook *book);
-#define xaccAccountLookupDirect(g,b) xaccAccountLookup(&(g),b)
+Account * xaccAccountLookup (const GUID *guid, QofBook *book);
+#define xaccAccountLookupDirect(g,b) xaccAccountLookup(&(g),b)
/** @} */
@@ -210,18 +211,18 @@
/** Set the last num field of an Account */
void xaccAccountSetLastNum (Account *account, const char *num);
/** Set the account's type */
-GNCAccountType xaccAccountGetType (Account *account);
+GNCAccountType xaccAccountGetType (const Account *account);
/** Get the account's name */
-const char * xaccAccountGetName (Account *account);
+const char * xaccAccountGetName (const Account *account);
/** Get the account's accounting code */
-const char * xaccAccountGetCode (Account *account);
+const char * xaccAccountGetCode (const Account *account);
/** Get the account's description */
-const char * xaccAccountGetDescription (Account *account);
+const char * xaccAccountGetDescription (const Account *account);
/** Get the account's notes */
-const char * xaccAccountGetNotes (Account *account);
+const char * xaccAccountGetNotes (const Account *account);
/** Get the last num field of an Account */
-const char * xaccAccountGetLastNum (Account *account);
+const char * xaccAccountGetLastNum (const Account *account);
/** The xaccAccountGetFullName routine returns the fully qualified name
* of the account using the given separator char. The name must be
@@ -236,7 +237,7 @@
* hack alert -- since it breaks the rule of string allocation, maybe this
* routine should not be in this library, but some utility library?
*/
-char * xaccAccountGetFullName (Account *account, const char separator);
+char * xaccAccountGetFullName (const Account *account, const char separator);
/** Set a string that identifies the Finance::Quote backend that
* should be used to retrieve online prices. See price-quotes.scm
@@ -244,25 +245,26 @@
*
* @deprecated Price quote information is now stored on the
* commodity, not the account. */
-void dxaccAccountSetPriceSrc (Account *account, const char *src);
+void dxaccAccountSetPriceSrc (Account *account, const char *src);
/** Get a string that identifies the Finance::Quote backend that
* should be used to retrieve online prices. See price-quotes.scm
* for more information.
*
* @deprecated Price quote information is now stored on the
* commodity, not the account. */
-const char * dxaccAccountGetPriceSrc (Account *account);
+const char * dxaccAccountGetPriceSrc (const Account *account);
/** Returns a per-account flag: Prior to reconciling an account which
charges or pays interest, this flag tells whether to prompt the
user to enter a transaction for the interest charge or
payment. This per-account flag overrides the global preference. */
-gboolean xaccAccountGetAutoInterestXfer (Account *account, gboolean default_value);
+gboolean xaccAccountGetAutoInterestXfer (const Account *account,
+ gboolean default_value);
/** Sets a per-account flag: Prior to reconciling an account which
charges or pays interest, this flag tells whether to prompt the
user to enter a transaction for the interest charge or
payment. This per-account flag overrides the global preference. */
-void xaccAccountSetAutoInterestXfer (Account *account, gboolean value);
+void xaccAccountSetAutoInterestXfer (Account *account, gboolean value);
/** @} */
/** @name Account Commodity setters/getters
@@ -312,11 +314,11 @@
* set for the account, that is returned; else the default SCU for
* the account commodity is returned.
*/
-int xaccAccountGetCommoditySCU (const Account *account);
+int xaccAccountGetCommoditySCU (const Account *account);
/** Return the 'internal' SCU setting. This returns the over-ride
* SCU for the account (which might not be set, and might be zero). */
-int xaccAccountGetCommoditySCUi (const Account *account);
+int xaccAccountGetCommoditySCUi (const Account *account);
/** Set the SCU for the account. Normally, this routine is not
* required, as the default SCU for an account is given by its
@@ -328,7 +330,7 @@
#define xaccAccountSetCommoditySCUandFlag xaccAccountSetCommoditySCU
/** Set the flag indicating that this account uses a non-standard SCU. */
-void xaccAccountSetNonStdSCU (Account *account, gboolean flag);
+void xaccAccountSetNonStdSCU (Account *account, gboolean flag);
/** Return boolean, indicating whether this account uses a
* non-standard SCU. */
@@ -339,16 +341,20 @@
/** @name Account Balance
@{
*/
-/** Get the current balance of the account, which may include future splits */
-gnc_numeric xaccAccountGetBalance (Account *account);
-/** Get the current balance of the account, only including cleared transactions */
-gnc_numeric xaccAccountGetClearedBalance (Account *account);
-/** Get the current balance of the account, only including reconciled transactions */
-gnc_numeric xaccAccountGetReconciledBalance (Account *account);
-gnc_numeric xaccAccountGetPresentBalance (Account *account);
-gnc_numeric xaccAccountGetProjectedMinimumBalance (Account *account);
+/** Get the current balance of the account, which may include future
+ splits */
+gnc_numeric xaccAccountGetBalance (const Account *account);
+/** Get the current balance of the account, only including cleared
+ transactions */
+gnc_numeric xaccAccountGetClearedBalance (const Account *account);
+/** Get the current balance of the account, only including reconciled
+ transactions */
+gnc_numeric xaccAccountGetReconciledBalance (const Account *account);
+gnc_numeric xaccAccountGetPresentBalance (const Account *account);
+gnc_numeric xaccAccountGetProjectedMinimumBalance (const Account *account);
/** Get the balance of the account as of the date specified */
-gnc_numeric xaccAccountGetBalanceAsOfDate (Account *account, time_t date);
+gnc_numeric xaccAccountGetBalanceAsOfDate (Account *account,
+ time_t date);
/* These two functions convert a given balance from one commodity to
another. The account argument is only used to get the Book, and
@@ -359,33 +365,32 @@
Since they really have nothing to do with Accounts, there's
probably some better place for them, but where? gnc-commodity.h?
*/
-gnc_numeric xaccAccountConvertBalanceToCurrency(Account *account, /* for book */
- gnc_numeric balance,
- gnc_commodity *balance_currency,
- gnc_commodity *new_currency);
-gnc_numeric xaccAccountConvertBalanceToCurrencyAsOfDate(Account *account, /* for book */
- gnc_numeric balance,
- gnc_commodity *balance_currency,
- gnc_commodity *new_currency,
- time_t date);
+gnc_numeric xaccAccountConvertBalanceToCurrency(
+ const Account *account, /* for book */
+ gnc_numeric balance, gnc_commodity *balance_currency,
+ gnc_commodity *new_currency);
+gnc_numeric xaccAccountConvertBalanceToCurrencyAsOfDate(
+ const Account *account, /* for book */
+ gnc_numeric balance, gnc_commodity *balance_currency,
+ gnc_commodity *new_currency, time_t date);
/* These functions get some type of balance in the desired commodity.
'report_commodity' may be NULL to use the account's commodity. */
-gnc_numeric xaccAccountGetBalanceInCurrency (Account *account,
- gnc_commodity *report_commodity,
- gboolean include_children);
-gnc_numeric xaccAccountGetClearedBalanceInCurrency (Account *account,
- gnc_commodity *report_commodity,
- gboolean include_children);
-gnc_numeric xaccAccountGetReconciledBalanceInCurrency (Account *account,
- gnc_commodity *report_commodity,
- gboolean include_children);
-gnc_numeric xaccAccountGetPresentBalanceInCurrency (Account *account,
- gnc_commodity *report_commodity,
- gboolean include_children);
-gnc_numeric xaccAccountGetProjectedMinimumBalanceInCurrency (Account *account,
- gnc_commodity *report_commodity,
- gboolean include_children);
+gnc_numeric xaccAccountGetBalanceInCurrency (
+ const Account *account, gnc_commodity *report_commodity,
+ gboolean include_children);
+gnc_numeric xaccAccountGetClearedBalanceInCurrency (
+ const Account *account, gnc_commodity *report_commodity,
+ gboolean include_children);
+gnc_numeric xaccAccountGetReconciledBalanceInCurrency (
+ const Account *account, gnc_commodity *report_commodity,
+ gboolean include_children);
+gnc_numeric xaccAccountGetPresentBalanceInCurrency (
+ const Account *account, gnc_commodity *report_commodity,
+ gboolean include_children);
+gnc_numeric xaccAccountGetProjectedMinimumBalanceInCurrency (
+ const Account *account, gnc_commodity *report_commodity,
+ gboolean include_children);
/* This function gets the balance as of the given date in the desired
commodity. */
@@ -410,11 +415,11 @@
/** This routine returns the group holding the set of subaccounts
* for this account. */
-AccountGroup * xaccAccountGetChildren (Account *account);
+AccountGroup * xaccAccountGetChildren (const Account *account);
/** This routine returns the group which contains this account.
*/
-AccountGroup * xaccAccountGetParent (Account *account);
+AccountGroup * xaccAccountGetParent (const Account *account);
/** This routine returns the parent of the group that is the parent
* of this account. It is equivalent to the nested call
@@ -422,7 +427,7 @@
* Note that if the account is in the root group node, then its
* parent will be NULL.
*/
-Account * xaccAccountGetParentAccount (Account *account);
+Account * xaccAccountGetParentAccount (const Account *account);
/** This routine returns a flat list of all of the accounts
* that are descendents of this account. This includes not
@@ -433,20 +438,20 @@
* The returned list should be freed with g_list_free() when
* no longer needed.
*/
-GList * xaccAccountGetDescendants (Account *account);
+GList * xaccAccountGetDescendants (const Account *account);
/** DOCUMENT ME! */
-void xaccAccountSetReconcileChildrenStatus(Account *account, gboolean status);
+void xaccAccountSetReconcileChildrenStatus(Account *account, gboolean status);
/** DOCUMENT ME! */
-gboolean xaccAccountGetReconcileChildrenStatus(Account *account);
+gboolean xaccAccountGetReconcileChildrenStatus(const Account *account);
/** Returns true if the account is 'ancestor' or has 'ancestor' as an
* ancestor. An ancestor account may be the accounts parent, its
* parent's parent, its parent's parent's parent, etc. Returns false
* if either one is NULL.
*/
-gboolean xaccAccountHasAncestor (Account *account, Account *ancestor);
+gboolean xaccAccountHasAncestor(const Account *acc, const Account *ancestor);
#define xaccAccountGetSlots(X) qof_instance_get_slots(QOF_INSTANCE(X))
@@ -501,7 +506,7 @@
* split into the indicated account. If the split already
* belongs to another account, it will be removed from that
* account first.*/
-void xaccAccountInsertSplit (Account *account, Split *split);
+void xaccAccountInsertSplit (Account *account, Split *split);
/** The xaccAccountGetSplitList() routine returns a pointer to a GList of
* the splits in the account.
@@ -510,15 +515,14 @@
* structure. Note that some routines (such as xaccAccountRemoveSplit())
* modify this list directly, and could leave you with a corrupted
* pointer. */
-SplitList* xaccAccountGetSplitList (Account *account);
+SplitList* xaccAccountGetSplitList (const Account *account);
/** The xaccAccountMoveAllSplits() routine reassigns each of the splits
* in accfrom to accto. */
void xaccAccountMoveAllSplits (Account *accfrom, Account *accto);
/** \warning Unimplemented */
-gpointer xaccAccountForEachSplit(Account *account,
- SplitCallback,
+gpointer xaccAccountForEachSplit(Account *account, SplitCallback,
gpointer data);
/** The xaccAccountForEachTransaction() routine will traverse all of
@@ -545,26 +549,27 @@
it will not traverse transactions present only in the remote
database.
*/
-gint xaccAccountForEachTransaction(Account *account,
+gint xaccAccountForEachTransaction(const Account *account,
TransactionCallback proc,
void *data);
/** Returns a pointer to the transaction, not a copy. */
-Transaction * xaccAccountFindTransByDesc(Account *account,
- const char *description);
+Transaction * xaccAccountFindTransByDesc(const Account *account,
+ const char *description);
/** Returns a pointer to the split, not a copy. */
-Split * xaccAccountFindSplitByDesc(Account *account, const char *description);
+Split * xaccAccountFindSplitByDesc(const Account *account,
+ const char *description);
/** The xaccAccountFixSplitDateOrder() subroutine checks to see if
* a split is in proper sorted date order with respect
* to the other splits in this account. */
-void xaccAccountFixSplitDateOrder (Account *account, Split *split);
+void xaccAccountFixSplitDateOrder (Account *account, Split *split);
/** The xaccTransFixSplitDateOrder() checks to see if
* all of the splits in this transaction are in
* proper date order. */
-void xaccTransFixSplitDateOrder (Transaction *trans);
+void xaccTransFixSplitDateOrder (Transaction *trans);
/*@}*/
/* ------------------ */
@@ -580,14 +585,14 @@
void xaccAccountInsertLot (Account *, GNCLot *);
void xaccAccountRemoveLot (Account *, GNCLot *);
- /** The xaccAccountGetLotList() routine returns a pointer to the GList of
+/** The xaccAccountGetLotList() routine returns a pointer to the GList of
* the lots in this account.
* @note This GList is the account's internal
* data structure: do not delete it when done; treat it as a read-only
* structure. Note that some routines (such as xaccAccountRemoveLot())
* modify this list directly, and could leave you with a corrupted
* pointer. */
-LotList* xaccAccountGetLotList (Account *account);
+LotList* xaccAccountGetLotList (const Account *account);
/** The xaccAccountForEachLot() method will apply the function 'proc'
* to each lot in the account. If 'proc' returns a non-NULL value,
@@ -595,9 +600,9 @@
* will be returned. There is no guarenteed order over which
* the Lots will be traversed.
*/
-gpointer xaccAccountForEachLot(Account *acc,
- gpointer (*proc)(GNCLot *lot, gpointer user_data),
- gpointer user_data);
+gpointer xaccAccountForEachLot(
+ const Account *acc,
+ gpointer (*proc)(GNCLot *lot, gpointer user_data), gpointer user_data);
/** Find a list of open lots that match the match_func. Sort according
@@ -605,7 +610,7 @@
* If sort_func is NULL, then the returned list has no particular order.
* The caller must free to returned list.
*/
-LotList * xaccAccountFindOpenLots (Account *acc,
+LotList * xaccAccountFindOpenLots (const Account *acc,
gboolean (*match_func)(GNCLot *lot,
gpointer user_data),
gpointer user_data, GCompareFunc sort_func);
@@ -617,35 +622,33 @@
@{
*/
/** DOCUMENT ME! */
-gboolean xaccAccountGetReconcileLastDate (Account *account,
- time_t *last_date);
+gboolean xaccAccountGetReconcileLastDate (const Account *account,
+ time_t *last_date);
/** DOCUMENT ME! */
-void xaccAccountSetReconcileLastDate (Account *account,
- time_t last_date);
+void xaccAccountSetReconcileLastDate (Account *account, time_t last_date);
/** DOCUMENT ME! */
-gboolean xaccAccountGetReconcileLastInterval (Account *account,
- int *months, int *days);
+gboolean xaccAccountGetReconcileLastInterval (const Account *account,
+ int *months, int *days);
/** DOCUMENT ME! */
-void xaccAccountSetReconcileLastInterval (Account *account,
- int months, int days);
-
+void xaccAccountSetReconcileLastInterval (Account *account,
+ int months, int days);
/** DOCUMENT ME! */
-gboolean xaccAccountGetReconcilePostponeDate (Account *account,
- time_t *postpone_date);
+gboolean xaccAccountGetReconcilePostponeDate (const Account *account,
+ time_t *postpone_date);
/** DOCUMENT ME! */
-void xaccAccountSetReconcilePostponeDate (Account *account,
- time_t postpone_date);
+void xaccAccountSetReconcilePostponeDate (Account *account,
+ time_t postpone_date);
/** DOCUMENT ME! */
-gboolean xaccAccountGetReconcilePostponeBalance (Account *account,
- gnc_numeric *balance);
+gboolean xaccAccountGetReconcilePostponeBalance (const Account *account,
+ gnc_numeric *balance);
/** DOCUMENT ME! */
-void xaccAccountSetReconcilePostponeBalance (Account *account,
- gnc_numeric balance);
+void xaccAccountSetReconcilePostponeBalance (Account *account,
+ gnc_numeric balance);
/** DOCUMENT ME! */
-void xaccAccountClearReconcilePostpone (Account *account);
+void xaccAccountClearReconcilePostpone (Account *account);
/** @} */
@@ -661,17 +664,16 @@
@{
*/
/** DOCUMENT ME! */
-gboolean xaccAccountGetPlaceholder (Account *account);
+gboolean xaccAccountGetPlaceholder (const Account *account);
/** DOCUMENT ME! */
-void xaccAccountSetPlaceholder (Account *account,
- gboolean option);
+void xaccAccountSetPlaceholder (Account *account, gboolean option);
/** Returns PLACEHOLDER_NONE if account is NULL or neither account nor
* any descendent of account is a placeholder. If account is a
* placeholder, returns PLACEHOLDER_THIS. Otherwise, if any
* descendant of account is a placeholder, return PLACEHOLDER_CHILD.
*/
-GNCPlaceholderType xaccAccountGetDescendantPlaceholder (Account *account);
+GNCPlaceholderType xaccAccountGetDescendantPlaceholder(const Account *account);
/** @} */
@@ -680,20 +682,17 @@
*/
/** DOCUMENT ME! */
-gboolean xaccAccountGetTaxRelated (Account *account);
+gboolean xaccAccountGetTaxRelated (const Account *account);
/** DOCUMENT ME! */
-void xaccAccountSetTaxRelated (Account *account,
- gboolean tax_related);
-
+void xaccAccountSetTaxRelated (Account *account, gboolean tax_related);
/** DOCUMENT ME! */
-const char * xaccAccountGetTaxUSCode (Account *account);
+const char * xaccAccountGetTaxUSCode (const Account *account);
/** DOCUMENT ME! */
-void xaccAccountSetTaxUSCode (Account *account, const char *code);
+void xaccAccountSetTaxUSCode (Account *account, const char *code);
/** DOCUMENT ME! */
-const char * xaccAccountGetTaxUSPayerNameSource (Account *account);
+const char * xaccAccountGetTaxUSPayerNameSource (const Account *account);
/** DOCUMENT ME! */
-void xaccAccountSetTaxUSPayerNameSource (Account *account,
- const char *source);
+void xaccAccountSetTaxUSPayerNameSource (Account *account, const char *source);
/** @} */
@@ -706,20 +705,20 @@
* over the account tree. The mark is *not* stored in the database/file
* format. When accounts are newly created, the mark is set to zero.
*/
-void xaccAccountSetMark (Account *account, short mark);
+void xaccAccountSetMark (Account *account, short mark);
/** Get the mark set by xaccAccountSetMark */
-short xaccAccountGetMark (Account *account);
+short xaccAccountGetMark (const Account *account);
/** The xaccClearMark will find the topmost group, and clear the mark in
* the entire group tree. */
-void xaccClearMark (Account *account, short val);
+void xaccClearMark (Account *account, short val);
/** The xaccClearMarkDown will clear the mark only in this and in
* sub-accounts.*/
-void xaccClearMarkDown (Account *account, short val);
+void xaccClearMarkDown (Account *account, short val);
/** Will clear the mark for all the accounts of the AccountGroup .*/
-void xaccClearMarkDownGr (AccountGroup *group, short val);
+void xaccClearMarkDownGr (AccountGroup *group, short val);
/** @} */
@@ -746,14 +745,14 @@
* @deprecated Price quote information is now stored on the
* commodity, not the account. */
-void dxaccAccountSetQuoteTZ (Account *account, const char *tz);
+void dxaccAccountSetQuoteTZ (Account *account, const char *tz);
/** Get the timezone to be used when interpreting the results from a
* given Finance::Quote backend. Unfortunately, the upstream sources
* don't label their output, so the user has to specify this bit.
*
* @deprecated Price quote information is now stored on the
* commodity, not the account. */
-const char * dxaccAccountGetQuoteTZ (Account *account);
+const char * dxaccAccountGetQuoteTZ (const Account *account);
/** @} */
Modified: gnucash/trunk/src/engine/AccountP.h
===================================================================
--- gnucash/trunk/src/engine/AccountP.h 2005-12-30 03:31:43 UTC (rev 12200)
+++ gnucash/trunk/src/engine/AccountP.h 2005-12-30 03:34:22 UTC (rev 12201)
@@ -140,7 +140,7 @@
* it should be immediately destroyed, or it should be inserted into
* an account.
*/
-void xaccAccountRemoveSplit (Account *, Split *);
+void xaccAccountRemoveSplit (Account *, Split *);
/* The xaccAccountSortSplits() routine will resort the account's
* splits if the sort is dirty. If 'force' is true, the account
@@ -151,12 +151,12 @@
/* The following recompute the partial balances (stored with the
* transaction) and the total balance, for this account
*/
-void xaccAccountRecomputeBalance (Account *);
+void xaccAccountRecomputeBalance (Account *);
/* Set the account's GUID. This should only be done when reading
* an account from a datafile, or some other external source. Never
* call this on an existing account! */
-void xaccAccountSetGUID (Account *account, const GUID *guid);
+void xaccAccountSetGUID (Account *account, const GUID *guid);
/* The xaccAccountSetStartingBalance() routine will set the starting
* commodity balance for this account. This routine is intended for
@@ -189,7 +189,7 @@
* want anyone except the backend to mess with them.
*/
void xaccAccountSetVersion (Account*, gint32);
-gint32 xaccAccountGetVersion (Account*);
+gint32 xaccAccountGetVersion (const Account* acc);
/* Register Accounts with the engine */
gboolean xaccAccountRegister (void);
Modified: gnucash/trunk/src/engine/Group.c
===================================================================
--- gnucash/trunk/src/engine/Group.c 2005-12-30 03:31:43 UTC (rev 12200)
+++ gnucash/trunk/src/engine/Group.c 2005-12-30 03:34:22 UTC (rev 12201)
@@ -452,10 +452,9 @@
}
AccountGroup *
-xaccAccountGetRoot (Account * acc)
+xaccAccountGetRoot (const Account * acc)
{
- if (!acc) return NULL;
- return xaccGroupGetRoot (acc->parent);
+ return acc ? xaccGroupGetRoot (acc->parent) : NULL;
}
/********************************************************************\
@@ -710,8 +709,8 @@
static int
group_sort_helper (gconstpointer a, gconstpointer b)
{
- Account *aa = (Account *) a;
- Account *bb = (Account *) b;
+ const Account *aa = (const Account *) a;
+ const Account *bb = (const Account *) b;
/* return > 1 if aa should come after bb */
return xaccAccountOrder (&aa, &bb);
@@ -1024,10 +1023,10 @@
}
void
-xaccAccountBeginStagedTransactionTraversals (Account *account)
+xaccAccountBeginStagedTransactionTraversals (const Account *account)
{
- if (account == NULL) return;
- xaccSplitsBeginStagedTransactionTraversals (account->splits);
+ if (account)
+ xaccSplitsBeginStagedTransactionTraversals (account->splits);
}
gboolean
@@ -1077,7 +1076,7 @@
}
int
-xaccAccountStagedTransactionTraversal (Account *acc,
+xaccAccountStagedTransactionTraversal (const Account *acc,
unsigned int stage,
int (*callback)(Transaction *t,
void *cb_data),
@@ -1170,8 +1169,7 @@
GList *result = NULL;
GList *node;
- if (!grp) return(NULL);
- if (!thunk) return(NULL);
+ if (!grp || !thunk) return NULL;
for (node = grp->accounts; node; node = node->next)
{
@@ -1195,8 +1193,7 @@
{
GList *node;
- if (!grp) return(NULL);
- if (!thunk) return(NULL);
+ if (!grp || !thunk) return(NULL);
for (node = grp->accounts; node; node = node->next)
{
Modified: gnucash/trunk/src/engine/Group.h
===================================================================
--- gnucash/trunk/src/engine/Group.h 2005-12-30 03:31:43 UTC (rev 12200)
+++ gnucash/trunk/src/engine/Group.h 2005-12-30 03:34:22 UTC (rev 12201)
@@ -212,7 +212,7 @@
/** The xaccGetAccountRoot() subroutine will find the topmost
* (root) group to which this account belongs.
*/
-AccountGroup * xaccAccountGetRoot (Account *account);
+AccountGroup * xaccAccountGetRoot (const Account *account);
/** The xaccGroupGetParentAccount() subroutine returns the parent
* account of the group, or NULL.
@@ -260,7 +260,7 @@
@{
*/
-typedef gpointer (*AccountCallback)(Account *a, gpointer data);
+typedef gpointer (*AccountCallback) (Account *a, gpointer data);
/** The xaccGroupMapAccounts() routine will traverse the account
group, returning a list of accounts. If the callback
@@ -344,7 +344,7 @@
* marker for each transaction which is a parent of one of the
* splits in the account.
*/
-void xaccAccountBeginStagedTransactionTraversals(Account *account);
+void xaccAccountBeginStagedTransactionTraversals(const Account *account);
/** xaccTransactionTraverse() checks the stage of the given transaction.
* If the transaction hasn't reached the given stage, the transaction
@@ -387,7 +387,7 @@
* a traversal is undefined, so don't do that.
*/
-int xaccAccountStagedTransactionTraversal(Account *a,
+int xaccAccountStagedTransactionTraversal(const Account *a,
unsigned int stage,
TransactionCallback thunk,
void *data);
Modified: gnucash/trunk/src/engine/gw-engine-spec.scm
===================================================================
--- gnucash/trunk/src/engine/gw-engine-spec.scm 2005-12-30 03:31:43 UTC (rev 12200)
+++ gnucash/trunk/src/engine/gw-engine-spec.scm 2005-12-30 03:34:22 UTC (rev 12201)
@@ -745,7 +745,10 @@
'gnc:account-order
'<gw:int>
"xaccAccountOrder"
- '((<gnc:Account**> a1) (<gnc:Account**> a2))
+ '(
+ ((<gnc:Account**> const) a1)
+ ((<gnc:Account**> const) a2)
+ )
"Defines a sorting order on accounts. Returns -1 if a1 is \"less
than\" the second, +1 if the a1 is \"greater than\" the second, and 0
if they are equal. To determine the sort order, the account codes are
More information about the gnucash-changes
mailing list