Andreas Köhler
Thu, 04 Feb 2010 17:56:00 -0800
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi John,
I like code to be improved, but a few things come to my mind. You can probably fix them rather easily. - - Watch out for memory leaks. E.g. you must free the result of gnc_path_get_pkgdatadir() after usage, otherwise you leak it. The function documentation typically explains the memory management of parameters and return values. - - Try to use glib functionality to avoid mistakes and improve portability. E.g. if you do not explicitly pass NULL to getcwd(2) then you are expected to provide a char[] buffer for the function to fill in. g_get_current_dir() is the solution and devhelp your friend :) - - BEGIN and LEAVE should wrap all possible paths through a function (if needed at all). I.e., start with BEGIN and add LEAVE before every return or the end of the function. - - I am picky wrt trailing whitespaces, no tab characters unless already in the surrounding code, printfs (like g_printerr), unneeded code newly commented out I am more interested whether the removed functionality really is not needed anymore or fully replaced. Is .gnucash created in time, do we need to support file: or xml: schemas anywhere? Personally, I could not guess about the patch on Windows, someone (not me ;-)) would need to give it a try. Ciao, - -- andi5 John Ralls schrieb: > Motivated by a recent issue in gnucash-users, where a MacOSX user had trouble > because .gnucash is invisible to TextEdit (which normal users would use to > edit a file), and because it's actually necessary to edit > .gnucash/saved-reports-2.0 to clean old reports from the menu, I decided that > for OSX the Gnucash prefs should live in the more Macish > ~/Library/Application Support/Gnucash. So far, so good. > > Src/engine/gnc-filepath-utils.c has two ways to find the preferences > directory: A public one, gnc_dot_gnucash_dir(), and a private one hard coded > in xaccResolveFilePath() and some static functions which it uses. The former > uses glib tools and provides an undocumented (at least as far as I can find) > environment variable $GNC_DOT_DIR to easily override the directory (my goal). > The latter has ~/.gnucash hardcoded along with some other inappropriate > hard-coded paths and a rather bizarre indirection scheme for resolving > filenames. > > The attached patch replaces the private static functions in > xaccResolveFilePath() with calls to gnc_dot_gnucash_dir() and (I think) > rationalizes the filename resolution using functions graciously provided in > gnc-path.h. > > Before I commit it, I'd like some of the devs more experienced with GC to > look it over and make sure I haven't done something overly stupid. It would > probably be a good idea for one of the MSWin maintainers to make sure that it > doesn't break anything there. > > Regards, > John Ralls -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAktrehcACgkQn5+7qmQ6Wxe3nwCeNK4qN+Q6RFlmQOH28ZRATsvO KgcAmwTiYwekpzXGNGsdoB7htbDEc7WE =F5HU -----END PGP SIGNATURE----- _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel