We depend on GLib >= 2.8 on Windows in configure.in, so there is no
reason to include unused GLib 2.8 Windows-specific code. Oops. OTOH,
gstdio-2.8.h is needed on Unix.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15549 57a11ea4-9604-0410-9ed3-97b8803252fd
If the return value of pow is not saved in a double but rather used for
other calculations or casts, results can be bad, like pow(10, 2) being
99 instead of 100. Wrap pow and store the return value first before
continuing.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15484 57a11ea4-9604-0410-9ed3-97b8803252fd
Mkstemp is unavailable on Windows and g_rename is preferred. Completes
r15435 on trunk and must not be backported.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15449 57a11ea4-9604-0410-9ed3-97b8803252fd
Remove empty directory lib/glib26. Add lib/glib28 instead with the
necessary sources and headers to have the following functions even on a
GLib 2.6 system (!defined(HAVE_GLIB_2_8))
- g_access, g_chmod,
- g_file_set_contents,
- g_win32_locale_filename_from_utf8.
Make use of them, improving r15429 and r15430.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15445 57a11ea4-9604-0410-9ed3-97b8803252fd
This could be a security issue if someone else, say, makes a symlink
to somewhere else. Instead, create a tempfile and then rename it
into place which is safe against the symlink attack.
Patch by Bill Nottingham <notting@redhat.com>
BP
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15435 57a11ea4-9604-0410-9ed3-97b8803252fd
Replace open, fopen, stat and unlink by their GLib wrappers so that
files on Windows will be handled with the wide character api.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15407 57a11ea4-9604-0410-9ed3-97b8803252fd
Replace opendir, readdir and closedir by their GLib wrappers so that
files on Windows will be retrieved with the wide character api.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15403 57a11ea4-9604-0410-9ed3-97b8803252fd
Ask for GLib 2.6 and GTK+ 2.6. Let the included GOffice 0.0.4 and LibGSF
1.12.3 use their native base dependencies. Remove all #ifdefs and
compatibility code that were necessary to make GnuCash, GOffice and
LibGSF compile on an older setup (GLib 2.4, Pango 1.6, GTK+ 2.4).
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15400 57a11ea4-9604-0410-9ed3-97b8803252fd
Rename libcore-utils to libgnc-core-utils
Rename libgncgnome to libgnc-gnome
Rename libgncmodule to libgnc-module
Rename libgncqof to libgnc-qof
Rename libgnc-backend-file to libgncmod-backend-file
Move libgnc-business-ledger to $prefix/lib
Move libgncqof-backend-qsf to $prefix/lib/gnucash
Move libgncmod-backend-file to $prefix/lib/gnucash
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15321 57a11ea4-9604-0410-9ed3-97b8803252fd
If the GncModule system finds a QofBackendProvider module M before that
has been initialized by QOF, M will register itself with QOF but does
not mark itself as resident, so the module system will unload it again,
leaving bogus pointers in QOF. Now it does.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15320 57a11ea4-9604-0410-9ed3-97b8803252fd
Change it to check_PROGRAMS
use <prog>_CPPFLAGS instead of DEFS -- this works great!
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15302 57a11ea4-9604-0410-9ed3-97b8803252fd
Add a lock to the QofSession object, and use it in qof_session_save() to
protect against re-entrance.
The lock always starts at 1 and is 0 while inside qof_session_save().
If another call is made to qof_session_save() while one is in progress,
the lock will momentarily drop below 0 before returning to zero.
Note: The per-session nature of the lock would make it appear that we support
concurrent saving of different sessions. In fact, we do not, because the
file backend blocks the main process until the forked gzip process is
finished, and it only knows how to keep track of one child pid at a time.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15168 57a11ea4-9604-0410-9ed3-97b8803252fd
g-wrap is gone. I, for one, welcome our new swig overlords.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@15024 57a11ea4-9604-0410-9ed3-97b8803252fd
Override the Transaction Number to sort numerically.
* lib/libqof/qof/qofclass.h:
* lib/libqof/qof/qofquery.c:
* lib/libqof/qof/qofquerycore-p.h:
* lib/libqof/qof/qofquerycore.[ch]:
- Publish the QofCompareFunc prototype.
- Add a new QofParam param_compfcn parameter
- Change QofQuery to use the param_compfcn over the
default type compare function.
- create (and publish) a qof API to compare strings
as numbers: qof_string_number_compare_func()
* src/engine/Transaction.c:
Assign TRANS_NUM to use qof_string_numer_compare_func()
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14903 57a11ea4-9604-0410-9ed3-97b8803252fd
Now you can run one query off of the results of another query.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14901 57a11ea4-9604-0410-9ed3-97b8803252fd
This new type is like QOF_TYPE_STRING but it sorts numerically
(first) and then sorts alphanumerically (by the tail of the
number). Added the QOF Type, the gnome-search support, and
modified TRANS_NUM to use the new type.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14892 57a11ea4-9604-0410-9ed3-97b8803252fd
Reference that gave me this hint: http://acm.pku.edu.cn/JudgeOnline/faq.htm
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14806 57a11ea4-9604-0410-9ed3-97b8803252fd
of no read permission and give appropriate user feedback if yes.
Feel free to adjust the wording.
BP
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14791 57a11ea4-9604-0410-9ed3-97b8803252fd
Scheme files are now symlinked or copied into subdirectories gnucash/ and g-wrapped/. This will work on a platform without symlinks just fine.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14746 57a11ea4-9604-0410-9ed3-97b8803252fd
Removes an often regenerated dependency from qof.h.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14688 57a11ea4-9604-0410-9ed3-97b8803252fd
- Don't distribute (most) generated files.
- Be (more) consistent about when generated files are cleaned.
BP
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14555 57a11ea4-9604-0410-9ed3-97b8803252fd
Just modify GLIB_LIBS and GLIB_CFLAGS so everyone properly
links against the glib26 compatibility library when necessary.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14330 57a11ea4-9604-0410-9ed3-97b8803252fd
Hopefully this will solve the problem Macs are having dlopen'ing them.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14210 57a11ea4-9604-0410-9ed3-97b8803252fd
It shouldn't depend on apps to load QOF libraries.
Make sure app-defined backends are used first.
Fix a memory leak in qofsession.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14208 57a11ea4-9604-0410-9ed3-97b8803252fd
This includes the now semi-functional postgres backend.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14198 57a11ea4-9604-0410-9ed3-97b8803252fd
Guile 1.8 automatically shares strings as copy-on-write and no longer
provides the "make-shared-substring" procedure.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14159 57a11ea4-9604-0410-9ed3-97b8803252fd
* lib/libgsl/Makefile.am:
don't distribute the gsl specfiles
* packaging/gnucash.spec.in:
fix for change of location of files.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14084 57a11ea4-9604-0410-9ed3-97b8803252fd
* lib/libqof/qof/Makefile.am:
change the name of our qof library
* lib/libqof/backend/file/Makefile.am:
change the name of our qsf library
* lib/libqof/qof/qof.h:
point to the newly named qsf library
* configure.in:
Error out if the user calls --enable-qof
Change the name of the internal qof library and directories
so that our qof can co-exist with a "native" qof
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@14032 57a11ea4-9604-0410-9ed3-97b8803252fd
committed at least once in its lifecycle. Then, we can mark the collection
dirty whenever an object is committed, except for the special case of an
QofInstance that has never been committed before and is now being deleted.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13957 57a11ea4-9604-0410-9ed3-97b8803252fd
macro version), in case we ever want qof_commit_edit() to actually do
something with a backend.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13956 57a11ea4-9604-0410-9ed3-97b8803252fd
instead of qof_backend_run_begin().
Minor cleanups of qof_commit_edit() and qof_begin_edit().
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13955 57a11ea4-9604-0410-9ed3-97b8803252fd
time that the book transitioned from clean to dirty, and for calling
back a registered function when the book transitions from clean to
dirty.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13931 57a11ea4-9604-0410-9ed3-97b8803252fd
collections. In this mode, marking an instance as dirty does not
immediately mark the collection as dirty. The collection is only
dirtied when a dirty instance is actually committed to the collection.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13926 57a11ea4-9604-0410-9ed3-97b8803252fd
string. Mark it 'const' to prevent callers from trying to free it.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13786 57a11ea4-9604-0410-9ed3-97b8803252fd
Keep the deprecated GNC_SCANF_LLD defined in terms of the new
QOF_SCANF_LLD.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13764 57a11ea4-9604-0410-9ed3-97b8803252fd
Note: it think it's probably wrong to set the locale here.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13639 57a11ea4-9604-0410-9ed3-97b8803252fd
glib function g_strncasecmp in favour of g_ascii_strncasecmp
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13570 57a11ea4-9604-0410-9ed3-97b8803252fd
#ifdef'd on that to enable easier windows/mingw32 porting.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13525 57a11ea4-9604-0410-9ed3-97b8803252fd
Any of the callbacks passed to this function may be NULL to decline the
use of that callback. Also, the three callbacks are now called in three
mutually exclusive cases, corresponding to:
1) a failed commit, ('on_error')
2) a successful commit where the object remains valid, ('on_done'), and
3) a successful commit where the object has been destroyed, ('on_free').
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13390 57a11ea4-9604-0410-9ed3-97b8803252fd
directory. Also symlink .scm files into the build directory
so it's possible to run from it.
Also fix "fin.scm installed twice", bug #168629.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13281 57a11ea4-9604-0410-9ed3-97b8803252fd
* lib/libqof/qof/Makefile.am: keep qofla-dir.h out of the dist
* configure.in: look in builddir for qof includes.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13269 57a11ea4-9604-0410-9ed3-97b8803252fd
trying to work out their type. Use new QofBackendError value
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13235 57a11ea4-9604-0410-9ed3-97b8803252fd
clean up, but also makes sure we don't destroy the handler
list out from under us as we're processing events.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13196 57a11ea4-9604-0410-9ed3-97b8803252fd
This change isn't ideal in the sense that the handler list is now a
monotonically increasing resource, but it's better than crashing when the
handler in node N+1 happens to be deleted while servicing the handler in
node N.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13152 57a11ea4-9604-0410-9ed3-97b8803252fd
- Fixes for handling reciprocal values.
- Mark a lot of places where potential overflow bugs
are not handled.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13107 57a11ea4-9604-0410-9ed3-97b8803252fd
* configure.in: include gmodule in GLIB_LIBS
* lib/libqof/qof/Makefile.am: link libqof against glib.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13058 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/import-export/test/Makefile.am:
Added src/scm directory to test environment
* lib/goffice-0.0.4/Makefile.am:
Don't install libgoffice-1.pc, but distribute it
* lib/libgsf-1.12.3/tests/Makefile.am:
Link to the proper location of libgsf-1.la
* lib/libgsf-1.12.3/Makefile.am:
Don't install the gsf .pc files, but distribute them.
* lib/Makefile.am:
Use DIST_SUBDIRS to distribute qof, gsf, and goffice
* configure.in:
fix QOF_LIBS to use builddir, not srcdir
* Makefile.am:
add po/POTFILES.in to the dist
link gsf into the srcdir, not the builddir
* src/report/report-system/Makefile.am:
make sure we distribute gw-report-system.h
* src/bin/Makefile.am:
clean i18n.h in distclean
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12992 57a11ea4-9604-0410-9ed3-97b8803252fd