Commit Graph

343 Commits

Author SHA1 Message Date
Sumit Bhardwaj
df579c257b Replace g_memdup by memcpy
GLib is deprecating g_memdup. Since older versions of GLib
wouldn't have g_memdup2, this PR replaces occurrences of
g_memdup by memcpy.
2021-03-08 15:14:17 -08:00
Christopher Lam
3739d9121c [date-utilities.scm] typo fix and deprecate unused functions 2021-03-07 13:35:39 +08:00
Frank H. Ellenberger
93e2829ee5 Merge PR #899 into maint 2021-03-02 01:17:26 +01:00
luz paz
16b4976381 Fix typos in libgnucash/
Found via `codespell -q 3 -L ans,ba,parm,parms,numer`
2021-03-02 01:15:32 +01:00
Christopher Lam
b2b8792110 prepend-and-reverse instead of O(N^2) append 2021-02-24 09:08:25 +08:00
Frank H. Ellenberger
6bc8679932 I18N: replace several spourious spaces 2021-02-22 17:56:50 +01:00
John Ralls
7a7c26f87e Move glib and gtk includes out of extern C for tests.
Needed to compile with glib 2.67 and later.
2021-02-16 13:23:48 -08:00
Bill Nottingham
c0f2c3ae25 Fix build with glib2 2.67.x.
glib headers should not be included with 'extern "C"'.
2021-02-16 13:23:16 -08:00
Christopher Lam
779c0521e0 [options.scm API] yank canonically-tabbed parent-subtotal-mode
'canonically-tabbed option is buggy and has never graduated out of
experimental for 17 years. Time to put it to rest.

All previous saved reports with this option will be switched to 't
i.e. parent-subtotal-mode enabled..
2021-02-15 08:59:50 +08:00
Micha Lenk
9386b276e5 Make prototypes static for autoclear unit test
With the explicit prototypes not marked as static unit test builds on Debian
Buster (using buster-backports) fail with

error: testing::internal::ParamGenerator<TestCase*> gtest_InstantiationAutoClearTestAutoClearTest_EvalGenerator_() was declared extern and later static [-fpermissive]

According to the comment preceding the declaration the only intent of the
explicit prototype (in newer versions of googletest implicitly defined by the
GTEST macros) seems to be to silence a warning which would cause a build
failure on Ubuntu 18.04 when using -Werror.

Builds on Debian unstable seem to build just fine without this explicit
declaration, hence I consider it safe to just drop it. However, builds on
Ubuntu 18.04 then fail (see above).

Making the prototypes as static should make both build environments happy.
2021-02-07 13:50:29 -08:00
John Ralls
b66eab2583 Bug 798100 - Equity totals calculating incorrectly
Prevents creation of non-currency opening balance accounts.
2021-01-24 16:53:02 -08:00
Frank H. Ellenberger
84cc64daed I18N: Remove annoying stars from translator comments 2021-01-22 10:19:54 +01:00
Christopher Lam
ca606e7694 [c-interface.scm] deprecate gnc:last-captured-error 2021-01-03 06:28:31 +08:00
John Ralls
c8c58bf349 Add test_autoclear_SOURCES to the dist list for inclusion in the tarball. 2020-12-26 17:23:28 -08:00
Christopher Lam
455ae59a56 [app-utils] fix dependency chain 2020-12-24 22:51:08 +08:00
Christopher Lam
0510ecfe85 [c-interface] internal defines must be declared first
An internal (define) cannot be after a statement such
as (issue-deprecation-warning). This rule was strict in guile-2.2 but
relaxed in guile-3.0, hence, the mixed results in CI.
2020-12-24 22:08:44 +08:00
Christopher Lam
bf671d4fc7 [c-interface] Deprecate gnc:make-string-database
It's only used by date-utilities.scm

This removes the date-utilities -> c-interface dependency.
2020-12-23 23:58:09 +08:00
John Ralls
c2ba88d91d Add MAKE_LINKS to app-utils and qif-import scheme targets.
Needed to successfully build on Windows.
2020-12-13 16:57:48 -08:00
Christopher Lam
dcf90b98c0 [options.scm] use srfi-1
because list-index (used in options.scm) wants srfi-1 version rather
than the one in guile-core. the guile-core one crashes when editing options.
2020-12-09 21:54:26 +08:00
Christopher Lam
59ec912928 [modularise] (gnucash app-utils) 2020-12-09 06:40:07 +08:00
Christopher Lam
0630c214f0 [options.scm] move gnc:options-fancy-date to business-options.scm
it needs gnc:fancy-date-info which is defined in business-options
2020-12-08 22:50:15 +08:00
Christopher Lam
51e3a65762 [options.scm] typo ref -> list-ref 2020-12-04 21:33:31 +08:00
Christopher Lam
a2ef6ed6a5 Use proper format syntax 2020-12-04 18:37:35 +08:00
Christopher Lam
854c117820 [trep-engine] move currency options into their own section
tidier, also includes backward compatibility with saved-reports
2020-12-02 18:46:25 +08:00
Christopher Lam
72982de588 Revert "[date-utilities] Convert reldate list into srfi-9 records"
This reverts commit 3be7935965.
2020-11-22 21:56:42 +08:00
Christopher Lam
8b5dd55dc4 Revert "[c-interface] deprecate gnc:make-string-database"
This reverts commit b67bf4b761.
2020-11-22 21:56:35 +08:00
Christopher Lam
b67bf4b761 [c-interface] deprecate gnc:make-string-database 2020-11-22 21:21:58 +08:00
Christopher Lam
3be7935965 [date-utilities] Convert reldate list into srfi-9 records 2020-11-22 21:14:13 +08:00
Ralf Habacker
63580d91ba Add feature GNC_FEATURE_EQUITY_TYPE_OPENING_BALANCE
When the above function is activated, the slot 'equity type' is used and
set in relation to opening balances and the checkbox for marking the
opening balance in the accounts dialog can be changed.
2020-11-16 08:51:51 +01:00
Ralf Habacker
f8dcd23023 Add support for the opening balance accounts flag
Up to now, opening balance accounts have been identified by means of
fixed names and their translations, which in some cases is not
appropriate.

With this commit, therefore, opening balance accounts can now be
identified by a special slot, which should solve the above problem.

in gnc_find_or_create_equity_account(), when querying the
EQUITY_OPENING_BALANCE type, the system now first searches for an
account with an existing 'equity-type' slot having the value
'opening-balance' and returns it as an opening balance account if
one exists. If no corresponding account is found, the search is
continued as before. An account found in the process is automatically
given the status of an opening balance account (it is given an
'equity-type' slot with value 'opening-balance') to simplify the
future search.

The opening balance status of an account is visualized in the account
settings dialog with a check box. If a Gnucash file does not yet contain
an opening balance account, one can be selected in the account settings
dialog.

https://bugs.gnucash.org/show_bug.cgi?id=797836
2020-11-16 08:51:51 +01:00
John Ralls
e09a26ba3a Merge Christian Gruber's 'test_import_backend' into maint. 2020-11-08 14:27:26 -08:00
John Ralls
26fa239f89 Merge Christian Klein's 'auto-clear-tests' into maint. 2020-11-08 13:44:41 -08:00
Cristian Klein
69789b2b93 [auto-tests] Stick to CodingStandard for member variables 2020-11-08 09:58:57 +01:00
Cristian Klein
f26215feae [auto-tests] Fix misspelling 2020-11-08 09:58:17 +01:00
Robert Fewell
65b7b8c4a2 Section help on windows not working
Key and group names are case sensitive and in the gnucash-help.hhmap
file the section name is [MAP] so change gnc-help-utils.c to match
2020-11-06 13:05:42 +00:00
Cristian Klein
e5378b2048 [auto-clear] Make test more future-proof with GoogleTest 2020-10-30 09:42:05 +01:00
Cristian Klein
982cf86deb [auto-clear] Fix test with googletest 1.8 2020-10-30 09:42:05 +01:00
Cristian Klein
9d4c0b05db [auto-clear] Improve #include style 2020-10-30 09:42:05 +01:00
Cristian Klein
1cf7defee8 [auto-clear] Address feedback 2020-10-30 09:42:05 +01:00
Cristian Klein
9bf550d38f [auto-clear] Include test for ambiguous cases 2020-10-30 09:42:05 +01:00
Cristian Klein
5cd777b673 [auto-clear] Fix test: Add xaccAccountBeginEdit / xaccAccountCommitEdit 2020-10-30 09:42:05 +01:00
Cristian Klein
2faecb2074 [auto-clear] Avoid testing ambigous auto-clear 2020-10-30 09:42:05 +01:00
Cristian Klein
a1806a2f94 [auto-clear] Fix model 2020-10-30 09:42:05 +01:00
Cristian Klein
51715e454c [auto-clear] Add tests 2020-10-30 09:42:05 +01:00
Christopher Lam
78c8b03c5e [window-autoclear.c] cleanup, optimize, prevent UI lag
abort:
1. if too many splits lead to >1,000,000 reachable amounts
2. if the end_balance is the same as cleared_balance

also:
- g_free lists properly
- move knapsack algorithm to gnc-ui-balances.c
- show newly cleared splits in a new register: "Cleared Transactions"
- remove unneeded #includes
2020-10-23 09:11:29 +08:00
Robert Fewell
3c5066feb4 Change source files option-util.* for spaces and tabs 2020-10-22 14:30:46 +01:00
Robert Fewell
c11f4db96e Bug 345924 - Report options 'Reset Button' always flags changes
If a report is loaded with default settings and the 'Reset button' is
pressed the 'OK/Apply' buttons will be enabled which should not happen
as there are no changes to be made.

Fixed by resetting the changed flag on options load and then comparing
the current value to the default one when the 'Reset button' pressed.
2020-10-22 14:26:50 +01:00
Christopher Lam
39a6704169 [options.scm] rename new-owner-report "Links" to "Transaction Links" 2020-10-07 19:11:12 +08:00
Christian Gruber
e44cf9c61f Add missing C linkage statements 2020-09-23 19:59:40 +02:00
John Ralls
db626de68a Rename all Transaction and Invoice Association identifiers to DocLink.
To better reflect the purpose and for consistency with other software
(e.g. Libre Office).
2020-09-11 11:34:32 -07:00
John Ralls
50bf59d62e Rename Transaction and Invoice Associations to Document Links.
More clearly describes the actions and is more consistent with other
software (e.g. Libre Office).

This commit primarily changes the translatable strings, though it also
removes the Remove menu item because that can be done in the Manage
dialog box.
2020-09-11 11:34:31 -07:00
Geert Janssens
ad8b602fe2 I18n - Uppercase option name to align with other option names 2020-09-09 22:22:48 +02:00
Geert Janssens
56210de9a2 Rename report option for consistency
In English each word in option and menu names starts with a capital letter.
Also eliminates a redundant translatable string.
2020-08-18 15:28:51 +02:00
Christopher Lam
d546a617ad ensure averaging-multipler returns exact numbers rather than floats 2020-07-19 17:46:01 +08:00
Christopher Lam
428c8c501c [guile-3] change _ to G_
In guile-3 _ is a reserved symbol. Change to G_ by guile gettext
convention.
2020-07-12 19:03:26 +08:00
Christian Gruber
3d92d53917 Rename all class methods using snake_case instead of camelCase 2020-07-09 22:03:05 +02:00
Christian Gruber
8425af784e Check pointer to preferences backend before using it 2020-07-09 21:58:48 +02:00
Christian Gruber
766f88c02d Replace singleton class MockPrefsBackend by an ordinary class 2020-07-09 21:58:42 +02:00
John Ralls
4ee573e23a Link with libm.so on those platforms that require it. 2020-07-06 12:30:37 -07:00
Christopher Lam
851bc7f8d9 deprecations: clarify functions deprecated in 4.x. 2020-06-22 19:53:29 +08:00
Geert Janssens
a124e647db Add files omitted in previous commit 2020-05-29 17:35:04 +02:00
Geert Janssens
5fc2b9519c Add mock sources and import-export test to dist 2020-05-29 17:20:53 +02:00
Robert Fewell
785a6a8fa6 Add a new cell type for Transaction associations that
supports the use of glyphs
2020-05-28 17:25:40 +01:00
John Ralls
f2a13ecac7 Merge Christian Gruber's 'test_import_backend' into master. 2020-05-21 12:39:57 -07:00
Christopher Lam
f8bad131a5 Merge branch 'maint-797743' #720 price renderers 2020-05-13 13:20:09 +08:00
Christopher Lam
3d25a40d1f [gnc-ui-util] add gnc_price_print_info
similar to gnc_default_price_print_info but also accepts a use_symbol
specifier. for generating print_info for prices, either exact e.g.
$1 + 2/3, or inexact e.g. $1.3333
2020-05-13 11:36:22 +08:00
Christopher Lam
f9dfdb3e6c [c-interface] compact code, use (ice-9 match) 2020-05-10 09:52:40 +08:00
Mike Alexander
478112d8c0 Define log_module in gnc-sx-instance-model.c. 2020-05-08 16:43:45 -04:00
John Ralls
fbf7171ab6 Fix libgnc-app-utils.dylib install_name_dir.
The install location changed as part of expunging libgnc-module.
2020-04-28 10:30:22 -07:00
John Ralls
758bd7b656 Merge branch 'maint' 2020-04-24 13:52:21 -07:00
Geert Janssens
bbeb9a2b62 Drop all gnc-module dependencies and includes from compilation units that no longer use it
This also drops the python wrapper for gnc-module. As for the guile wrappers,
python should use other means of loading our shared libraries.

This commit required a few tweaks to the dependency chain as some units
inherited dependency information from gnc-module's public dependency
interface.
2020-04-24 22:16:24 +02:00
Geert Janssens
abf29aa196 Drop the gnc-module wrapper around the test-engine library
It's not adding anything
2020-04-24 21:29:20 +02:00
Christopher Lam
8023065030 [fin.scm] return #f instead of -1 if n is out of range 2020-04-21 11:39:40 +08:00
Christopher Lam
96a6e1b0d5 Merge branch 'patch-1' of git://github.com/thetedmunds/gnucash into maint 2020-04-21 11:39:28 +08:00
Christopher Lam
6de712b501 [gnc-exp-parser] don't crash when gnc:fn returns non-number
if gnc:fn returns anything other than a number, abort rather than
crash
2020-04-15 04:54:05 +08:00
thetedmunds
d6c5b115d8
Adding lines missing from fix for Bug 797196
Adding definition of gnc:amort_balance() that got lost in the original pull-request for Bug 797196.
2020-04-14 07:45:54 -07:00
John Ralls
3ca8fa1229 Merge branch 'maint' 2020-04-13 11:27:14 -07:00
John Ralls
fdfaca5575 Merge Christoph Holtermann's 'python-session-instance-constructor' into maint. 2020-04-06 12:05:21 -07:00
c-holtermann
ab843c0b7a include gnucash_core of python bindings in python swig app-utils 2020-04-06 07:03:40 +02:00
jean
4a8350ece2 797318 - Amounts ending in zero displayed as fractions 2020-04-04 14:43:03 -07:00
Geert Janssens
e78313147c Cmake - rework gnc_add_scheme_deprecated_module to use keyword parameters
Update all invocations accordingly
2020-03-30 08:41:29 +02:00
Geert Janssens
06ff8a292d Use new keyword parameters for all calls to gnc_add_scheme_test_targets 2020-03-30 08:41:29 +02:00
Geert Janssens
c05281c582 Use new keyword parameters for all calls to gnc_add_scheme_targets 2020-03-30 08:41:29 +02:00
John Ralls
f85be03bb5 Merge branch 'maint' 2020-03-29 14:46:55 -07:00
Christopher Lam
50674ef632 [gnc-ui-balances] add and expose gnc_ui_account_get_reconciled_balance_as_of_date 2020-03-15 06:40:03 +08:00
Geert Janssens
301db9020d Merge branch 'maint' 2020-02-06 16:50:08 +01:00
Geert Janssens
e79e82edcf CMake - remove parameter repetition in else() and endif() statements
This follows Professional CMake's recommended practises
2020-02-05 11:38:14 +01:00
Geert Janssens
490b20d2da Merge branch 'maint' 2020-01-17 18:35:30 +01:00
Geert Janssens
d8a304c2c9 Housekeeping - reduce the number of PACKAGE and VERSION related cmake variables
This starts by setting the gnucash version number in the 'project' call.
This will result in a number of variables set by cmake. The remainder
of this commit is to reuse the auto-generated
PROJECT_NAME, PROJECT_VERSION, PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR, PROJECT_VERSION_PATCH and PROJECT_VERSION_TWEAK
instead of all the various instances of PACKAGE, GNUCASH_MAJOR_VERSION
and so on.

One parameter is worth mentioning - GETTEXT_PACKAGE
GnuCash is not using this directly (any more) but it has to be set before
including gi18n-lib.h.
2020-01-17 18:15:27 +01:00
Christopher Lam
279a5fcde8 Merge branch 'maint' 2019-12-08 20:34:49 +08:00
Geert Janssens
e8451ae1db tax - remove gncmod boilerplate
This is now an ordinary shared library

* Remove test to load the gnc-module in scheme
* Rewrite test to load the module in C to actually test something.
2019-12-06 20:38:21 +01:00
Geert Janssens
d52aa0a0dd app-utils - remove gnc-module boilerplate
app-utils now is an ordinery shared library

A few bits worth mentioning:
1. it's not guile-free just yet, so instead of a gnc_module_load
   your code may have to call scm_c_use_module("gnucash app-utils");
   to expose the scm side of the app-utils api. This call has been
   added to gnucash-bin.c for example
2. while lots of noise in this commit is to rename from gncmodule-app-utils
   to gnc-app-utils, I'll point out the library has also been moved from
   <libdir>/gnucash to <libdir>. This required changes in app-util's
   CMakeLists.txt file for the install side and in the top level
   CMakeLists.txt file for the build directory structure.
3. The C side link module test has been removed as linking an ordinary
   shared library should be considered well tested by the compiler devs.
   The scheme side module load test has been slightly tweaked to no longer
   try to use gnc:module-load, but instead now checks whether the app-utils
   api is properly exposed to scheme after loading it via use-modules.
4. Dropped a completely obsolete README file.
2019-12-06 20:38:21 +01:00
Geert Janssens
90aa539908 app-utils - make gnc-expression-parser responsible for its own cleanup
It already ensured it would initialize on first use.
It can as well register the hooks it needs for its
cleanup directly itself instead of depending on the
module loading system to do so.
2019-12-06 20:38:21 +01:00
Geert Janssens
43647c7a54 app-utils - move component manager to gnome-utils
It's primary purpose is to track gui objects' lifetimes. There's no
need for libgnucash (a non-gui library) to deal with that.
This required two book options related gui-only call backs
to be moved to gnome-utils as well.
2019-12-06 20:38:21 +01:00
Geert Janssens
4c77f7670e engine - remove gncmod boilerplate
engine is now an ordinary shared library

This requires a few more places to run gnc_engine_init as
this is no longer done as part of module loading.
2019-12-06 20:38:21 +01:00
Geert Janssens
bd311d5dfb report - expose wrapped api directly from report-core.scm
With that in place we no longer need to (gnc:module-load "gnucash/report" 0)
the report gncmodule. An ordinary (use-modules (gnucash report)) suffices

Note: as gncmod-report did additional initialization, most reports
needed additional tweaks like using app-utils.
And in app-utils the initialization of the relative date terms
has been tweaked as well to run whenever the app-utils module
gets loaded first time, rather than having this initialized by
gncmod-report.
2019-12-06 20:38:21 +01:00
Geert Janssens
c00bf6bcdb app-utils - expose wrapped api directly from app-utils.scm
With that in place we no longer need to (gnc:module-load "gnucash/app-utils" 0)
the app-utils gncmodule. An ordinary (use-modules (gnucash app-utils)) suffices
2019-12-06 20:38:20 +01:00
Geert Janssens
6a3505d01f app-utils - move price-quotes support functions directly into bindings
- wrappers for glib functions go into glib-guile
- engine convenience functions go into gnc-engine-guile
2019-12-06 19:59:12 +01:00
Geert Janssens
9ed9621363 app-utils - remove unused guile includes 2019-12-06 19:59:12 +01:00
Geert Janssens
d777128e6f app-utils - simplify and move gettext wrappers
1. Instead of creating a C wrapper around gettext to then wrap in
guile, use guile's builtin gettext support directly.

The code still defines the _ and N_ shorthands. However it doesn't
really warant a separate module just for these two shorthands.
Instead define them in core-utils. So all code wanting to use
_ or N_ in guile should now use the (gnucash core-utils) module.

The bulk of this commit is actually deleting the scm-gettext
target and using (gnucash core-utils) instead of (gnucash gettext).

2. As the definition of _ and N_ is removed from app-utils.scm,
the app-utils test for a functional N_ macro has been moved to a
new test file in the guile bindinds tests.

3. The (gnucash gettext) module has been deprecated. Use
(gnucash core-utils) from now on.
2019-12-06 19:59:12 +01:00