r18330 - gnucash/trunk/packaging/win32 - Minor version update for online banking packages.
Christian Stimming
cstim at code.gnucash.org
Tue Sep 22 16:33:59 EDT 2009
Author: cstim
Date: 2009-09-22 16:33:59 -0400 (Tue, 22 Sep 2009)
New Revision: 18330
Trac: http://svn.gnucash.org/trac/changeset/18330
Added:
gnucash/trunk/packaging/win32/libofx-0.9.2-patch.diff
Modified:
gnucash/trunk/packaging/win32/defaults.sh
Log:
Minor version update for online banking packages.
The libofx patch was originally intended to be committed to the libofx CVS
so that the code would be included in a potential 0.9.2 release sometime in
the future, only until I discovered that I'm a developer there but
without CVS write access. Duh!
Modified: gnucash/trunk/packaging/win32/defaults.sh
===================================================================
--- gnucash/trunk/packaging/win32/defaults.sh 2009-09-22 17:12:56 UTC (rev 18329)
+++ gnucash/trunk/packaging/win32/defaults.sh 2009-09-22 20:33:59 UTC (rev 18330)
@@ -263,12 +263,12 @@
if [ "$AQBANKING3" != "yes" ]; then
set_default GWENHYWFAR_URL "$SF_MIRROR/gwenhywfar/gwenhywfar-2.6.2.tar.gz"
else
- set_default GWENHYWFAR_URL "http://www2.aquamaniac.de/sites/download/download.php?package=01&release=17&file=01&dummy=gwenhywfar-3.6.0.tar.gz"
- set_default GWENHYWFAR_PATCH `pwd`/gwenhywfar-3.6.0-patch.diff
+ set_default GWENHYWFAR_URL "http://www2.aquamaniac.de/sites/download/download.php?package=01&release=28&file=01&dummy=gwenhywfar-3.11.0.tar.gz"
+ #set_default GWENHYWFAR_PATCH `pwd`/gwenhywfar-3.6.0-patch.diff
fi
set_default GWENHYWFAR_DIR $GLOBAL_DIR\\gwenhywfar
-set_default KTOBLZCHECK_URL "$SF_MIRROR/ktoblzcheck/ktoblzcheck-1.20.tar.gz"
+set_default KTOBLZCHECK_URL "$SF_MIRROR/ktoblzcheck/ktoblzcheck-1.23.tar.gz"
# ktoblzcheck is being installed into GWENHYWFAR_DIR
if [ "$AQBANKING3" != "yes" ]; then
Added: gnucash/trunk/packaging/win32/libofx-0.9.2-patch.diff
===================================================================
--- gnucash/trunk/packaging/win32/libofx-0.9.2-patch.diff (rev 0)
+++ gnucash/trunk/packaging/win32/libofx-0.9.2-patch.diff 2009-09-22 20:33:59 UTC (rev 18330)
@@ -0,0 +1,184 @@
+Index: ChangeLog
+===================================================================
+RCS file: /cvsroot/libofx/libofx/ChangeLog,v
+retrieving revision 1.96
+diff -u -r1.96 ChangeLog
+--- ChangeLog 15 May 2009 14:11:41 -0000 1.96
++++ ChangeLog 22 Sep 2009 20:28:40 -0000
+@@ -1,3 +1,8 @@
++2009-09-22 Christian Stimming <stimming at tuhh.de>
++
++ * lib/ofx_preproc.cpp: Win32: Add gnucash patch that looks up the
++ dtd installation directory from the current executable's location.
++
+ 2009-05-09 Benoit Grégoire <benoitg at coeus.ca>
+ * Various C++ include fixes for building with recent compilers. Patch by Bill Nottingham <notting at redhat.com>
+
+Index: lib/ofx_preproc.cpp
+===================================================================
+RCS file: /cvsroot/libofx/libofx/lib/ofx_preproc.cpp,v
+retrieving revision 1.24
+diff -u -r1.24 ofx_preproc.cpp
+--- lib/ofx_preproc.cpp 6 Dec 2008 22:28:39 -0000 1.24
++++ lib/ofx_preproc.cpp 22 Sep 2009 20:28:41 -0000
+@@ -36,6 +36,9 @@
+
+ #ifdef OS_WIN32
+ # include "win32.hh"
++# include <windows.h> // for GetModuleFileName()
++# undef ERROR
++# undef DELETE
+ #endif
+
+ #define LIBOFX_DEFAULT_INPUT_ENCODING "CP1252"
+@@ -505,6 +508,31 @@
+ }
+
+
++#ifdef OS_WIN32
++static std::string get_dtd_installation_directory()
++{
++ // Partial implementation of
++ // http://developer.gnome.org/doc/API/2.0/glib/glib-Windows-Compatibility-Functions.html#g-win32-get-package-installation-directory
++ char ch_fn[MAX_PATH], *p;
++ std::string str_fn;
++
++ if (!GetModuleFileName(NULL, ch_fn, MAX_PATH)) return "";
++
++ if ((p = strrchr(ch_fn, '\\')) != NULL)
++ *p = '\0';
++
++ p = strrchr(ch_fn, '\\');
++ if (p && (_stricmp(p+1, "bin") == 0 ||
++ _stricmp(p+1, "lib") == 0))
++ *p = '\0';
++
++ str_fn = ch_fn;
++ str_fn += "\\share\\libofx\\dtd\\";
++
++ return str_fn;
++}
++#endif
++
+
+ /**
+ This function will try to find a DTD matching the requested_version and return the full path of the DTD found (or an empty string if unsuccessfull)
+@@ -513,45 +541,45 @@
+ */
+ string find_dtd(LibofxContextPtr ctx, string dtd_filename)
+ {
+- int i;
+- ifstream dtd_file;
+ string dtd_path_filename;
+- bool dtd_found=false;
+
+- dtd_path_filename=((LibofxContext*)ctx)->dtdDir();
++ dtd_path_filename = reinterpret_cast<const LibofxContext*>(ctx)->dtdDir();
+ if (!dtd_path_filename.empty()) {
+ dtd_path_filename.append(dtd_filename);
+- dtd_file.clear();
+- dtd_file.open(dtd_path_filename.c_str());
++ ifstream dtd_file(dtd_path_filename.c_str());
+ if(dtd_file){
+ message_out(STATUS,"find_dtd():DTD found: "+dtd_path_filename);
+- dtd_file.close();
+- dtd_found=true;
++ return dtd_path_filename;
+ }
+ }
+
+- if (!dtd_found) {
+- for(i=0;i<DTD_SEARCH_PATH_NUM&&dtd_found==false;i++){
++#ifdef OS_WIN32
++ dtd_path_filename = get_dtd_installation_directory();
++ if (!dtd_path_filename.empty()) {
++ dtd_path_filename.append(dtd_filename);
++ ifstream dtd_file(dtd_path_filename.c_str());
++ if(dtd_file){
++ message_out(STATUS,"find_dtd():DTD found: "+dtd_path_filename);
++ return dtd_path_filename;
++ }
++ }
++#endif
++
++ for(int i=0;i<DTD_SEARCH_PATH_NUM;i++){
+ dtd_path_filename=DTD_SEARCH_PATH[i];
+ dtd_path_filename.append(dtd_filename);
+- dtd_file.clear();
+- dtd_file.open(dtd_path_filename.c_str());
++ ifstream dtd_file(dtd_path_filename.c_str());
+ if(!dtd_file){
+ message_out(DEBUG,"find_dtd():Unable to open the file "+dtd_path_filename);
+ }
+ else{
+ message_out(STATUS,"find_dtd():DTD found: "+dtd_path_filename);
+- dtd_file.close();
+- dtd_found=true;
++ return dtd_path_filename;
+ }
+- }
+ }
+
+- if(dtd_found==false){
+- message_out(ERROR,"find_dtd():Unable to find the DTD named " + dtd_filename);
+- dtd_path_filename="";
+- }
+- return dtd_path_filename;
++ message_out(ERROR,"find_dtd():Unable to find the DTD named " + dtd_filename);
++ return "";
+ }
+
+
+Index: lib/ofx_utilities.cpp
+===================================================================
+RCS file: /cvsroot/libofx/libofx/lib/ofx_utilities.cpp,v
+retrieving revision 1.12
+diff -u -r1.12 ofx_utilities.cpp
+--- lib/ofx_utilities.cpp 15 May 2009 14:11:41 -0000 1.12
++++ lib/ofx_utilities.cpp 22 Sep 2009 20:28:41 -0000
+@@ -217,25 +217,29 @@
+ }
+
+
+-int mkTempFileName(const char *tmpl, char *buffer, unsigned int size) {
+- const char *tmp_dir;
++std::string get_tmp_dir()
++{
++ // Tries to mimic the behaviour of
++ // http://developer.gnome.org/doc/API/2.0/glib/glib-Miscellaneous-Utility-Functions.html#g-get-tmp-dir
++ char *var;
++ var = getenv("TMPDIR");
++ if (var) return var;
++ var = getenv("TMP");
++ if (var) return var;
++ var = getenv("TEMP");
++ if (var) return var;
++#ifdef OS_WIN32
++ return "C:\\";
++#else
++ return "/tmp";
++#endif
++}
+
+- tmp_dir = getenv ("TMPDIR");
+- if (!tmp_dir)
+- tmp_dir = getenv ("TMP");
+- if (!tmp_dir)
+- tmp_dir = getenv ("TEMP");
++int mkTempFileName(const char *tmpl, char *buffer, unsigned int size) {
+
+- if (!tmp_dir)
+- {
+-#ifdef OS_WIN32
+- tmp_dir = "C:\\";
+-#else
+- tmp_dir = "/tmp";
+-#endif /* !OS_WIN32 */
+- }
++ std::string tmp_dir = get_tmp_dir();
+
+- strncpy(buffer, tmp_dir, size);
++ strncpy(buffer, tmp_dir.c_str(), size);
+ assert((strlen(buffer)+strlen(tmpl)+2)<size);
+ strcat(buffer, DIRSEP);
+ strcat(buffer, tmpl);
More information about the gnucash-changes
mailing list