Major code cleanup

Christian Stimming stimming@uclink.berkeley.edu
Fri, 9 Feb 2001 11:19:13 -0800


--------------Boundary-00=_1C8I8H7WDK2LND3DXX5S
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

2001-02-09  Christian Stimming  <stimming@tuhh.de>

	* src/scm/commodity-utilities.scm: Functions to calculate exchange
	rates (weighted average) for different commodities (moved from
	report-utilities.scm). Major cleanup.

	* src/scm/options-utilities.scm: Option creation functions common
	to several reports. (moved from report-utilities.scm)

	* src/scm/report-utilities.scm: Major cleanup.

Sorry, no new features today :-)) but now the code looks way more reusable.

Christian

--------------Boundary-00=_1C8I8H7WDK2LND3DXX5S
Content-Type: application/x-gzip;
  name="gnucash-20010209-111641-chs.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gnucash-20010209-111641-chs.diff.gz"

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
6Ori5sXzaPL8aiyE/gduwT68IM8AAA==

--------------Boundary-00=_1C8I8H7WDK2LND3DXX5S--