/********************************************************************\ * gnc_trans_scm_get_other_split_scm * * get the other scheme split of a scheme transaction. * * * * Args: trans_scm - the scheme transaction * * split_scm - the split not to get * * Returns: other scheme split, or SCM_UNDEFINED if none * \********************************************************************/ SCM gnc_trans_scm_get_other_split_scm(SCM trans_scm, SCM split_scm) { SCM result; initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return SCM_UNDEFINED; if (!gnc_is_split_scm(split_scm)) return SCM_UNDEFINED; result = scm_call_2(getters.trans_scm_other_split_scm, trans_scm, split_scm); if (!gnc_is_split_scm(result)) return SCM_UNDEFINED; return result; }
/********************************************************************\ * gnc_trans_scm_append_split_scm * * append the scheme split onto the scheme transaction * * * * Args: trans_scm - the scheme transaction * * split_scm - the scheme split to append * * Returns: Nothing * \********************************************************************/ void gnc_trans_scm_append_split_scm(SCM trans_scm, SCM split_scm) { initialize_scm_functions(); if (!gnc_is_trans_scm(trans_scm)) return; if (!gnc_is_split_scm(split_scm)) return; scm_call_2(setters.trans_scm_append_split_scm, trans_scm, split_scm); }
/********************************************************************\ * gnc_split_scm_set_value * * set the value of a scheme split * * * * Args: split_scm - the scheme split * * value - the value to set * * Returns: Nothing * \********************************************************************/ void gnc_split_scm_set_value(SCM split_scm, gnc_numeric value) { SCM arg; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return; arg = gnc_numeric_to_scm(value); scm_call_2(setters.split_scm_value, split_scm, arg); }
/********************************************************************\ * gnc_split_scm_set_amount * * set the amount of a scheme split * * * * Args: split_scm - the scheme split * * amount - the amount to set * * Returns: Nothing * \********************************************************************/ void gnc_split_scm_set_amount(SCM split_scm, gnc_numeric amount) { SCM arg; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return; arg = gnc_numeric_to_scm(amount); scm_call_2(setters.split_scm_amount, split_scm, arg); }
/********************************************************************\ * gnc_split_scm_set_reconcile_state * * set the reconcile state of a scheme split. * * * * Args: split_scm - the scheme split * * reconcile_state - the reconcile state to set * * Returns: Nothing * \********************************************************************/ void gnc_split_scm_set_reconcile_state(SCM split_scm, char reconcile_state) { SCM arg; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return; arg = SCM_MAKE_CHAR(reconcile_state); scm_call_2(setters.split_scm_reconcile_state, split_scm, arg); }
/********************************************************************\ * gnc_split_scm_get_value * * return the value of a scheme split * * * * Args: split_scm - the scheme split * * Returns: value of scheme split * \********************************************************************/ gnc_numeric gnc_split_scm_get_value(SCM split_scm) { SCM result; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return gnc_numeric_zero (); result = scm_call_1(getters.split_scm_value, split_scm); if (!gnc_numeric_p(result)) return gnc_numeric_zero (); return gnc_scm_to_numeric(result); }
/**********************************************************************\ * gnc_split_scm_get_action * * return the newly allocated action of a scheme split, or NULL. * * * * Args: split_scm - the scheme split * * Returns: newly allocated action string, must be freed with g_free * \**********************************************************************/ char * gnc_split_scm_get_action(SCM split_scm) { SCM result; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return NULL; result = scm_call_1(getters.split_scm_action, split_scm); if (!scm_is_string(result)) return NULL; return gnc_scm_to_utf8_string(result); }
/********************************************************************\ * gnc_split_scm_set_action * * set the action of a scheme representation of a split. * * * * Args: split_scm - the scheme split * * action - the action to set * * Returns: Nothing * \********************************************************************/ void gnc_split_scm_set_action(SCM split_scm, const char *action) { SCM arg; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return; if (action == NULL) return; arg = scm_from_utf8_string(action); scm_call_2(setters.split_scm_action, split_scm, arg); }
/********************************************************************\ * gnc_split_scm_set_memo * * set the memo of a scheme representation of a split. * * * * Args: split_scm - the scheme split * * memo - the memo to set * * Returns: Nothing * \********************************************************************/ void gnc_split_scm_set_memo(SCM split_scm, const char *memo) { SCM arg; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return; if (memo == NULL) return; arg = scm_from_utf8_string(memo); scm_call_2(setters.split_scm_memo, split_scm, arg); }
/********************************************************************\ * gnc_split_scm_get_memo * * return the newly allocated memo of a scheme split, or NULL. * * * * Args: split_scm - the scheme split * * Returns: newly allocated memo string * \********************************************************************/ char * gnc_split_scm_get_memo(SCM split_scm) { SCM result; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return NULL; result = scm_call_1(getters.split_scm_memo, split_scm); if (!scm_is_string(result)) return NULL; return g_strdup(scm_to_locale_string(result)); }
/********************************************************************\ * gnc_split_scm_set_account * * set the account of a scheme representation of a split. * * * * Args: split_scm - the scheme split * * account - the account to set * * Returns: Nothing * \********************************************************************/ void gnc_split_scm_set_account(SCM split_scm, Account *account) { gchar guid_string[GUID_ENCODING_LENGTH+1]; SCM arg; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return; if (account == NULL) return; guid_to_string_buff(xaccAccountGetGUID(account), guid_string); if (strlen(guid_string) == 0) return; arg = scm_from_utf8_string(guid_string); scm_call_2(setters.split_scm_account_guid, split_scm, arg); }
/********************************************************************\ * gnc_split_scm_set_account * * set the account of a scheme representation of a split. * * * * Args: split_scm - the scheme split * * account - the account to set * * Returns: Nothing * \********************************************************************/ void gnc_split_scm_set_account(SCM split_scm, Account *account) { const char *guid_string; SCM arg; initialize_scm_functions(); if (!gnc_is_split_scm(split_scm)) return; if (account == NULL) return; guid_string = guid_to_string(xaccAccountGetGUID(account)); if (guid_string == NULL) return; arg = scm_makfrom0str(guid_string); scm_call_2(setters.split_scm_account_guid, split_scm, arg); }