* src/engine/io-gncxml-r.c (gnc_book_load_from_xml_file): use

TZ=UTC while parsing xml.

	* src/engine/sixtp-utils.c: adjust for timezone offset manually


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3770 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2001-03-13 00:27:49 +00:00
parent f27cb73c90
commit 52585c28a0
3 changed files with 26 additions and 6 deletions

View File

@ -1,5 +1,10 @@
2001-03-12 Dave Peticolas <dave@krondo.com> 2001-03-12 Dave Peticolas <dave@krondo.com>
* src/engine/io-gncxml-r.c (gnc_book_load_from_xml_file): use
TZ=UTC while parsing xml.
* src/engine/sixtp-utils.c: adjust for timezone offset manually
* src/scm/html-table.scm ((gnc:make-html-table-header-cell/markup * src/scm/html-table.scm ((gnc:make-html-table-header-cell/markup
markup . objects)): new func markup . objects)): new func

View File

@ -27,6 +27,7 @@
#include "config.h" #include "config.h"
#include <stdlib.h>
#include <string.h> #include <string.h>
#include <glib.h> #include <glib.h>
@ -295,6 +296,8 @@ gnc_book_load_from_xml_file(GNCBook *book)
sixtp *top_level_pr; sixtp *top_level_pr;
GNCParseStatus global_parse_status; GNCParseStatus global_parse_status;
const gchar *filename; const gchar *filename;
char *put_str;
char *old_tz;
g_return_val_if_fail(book, FALSE); g_return_val_if_fail(book, FALSE);
@ -304,12 +307,20 @@ gnc_book_load_from_xml_file(GNCBook *book)
top_level_pr = gncxml_setup_for_read (&global_parse_status); top_level_pr = gncxml_setup_for_read (&global_parse_status);
g_return_val_if_fail(top_level_pr, FALSE); g_return_val_if_fail(top_level_pr, FALSE);
old_tz = g_strdup (getenv ("TZ"));
putenv ("TZ=UTC");
parse_ok = sixtp_parse_file(top_level_pr, parse_ok = sixtp_parse_file(top_level_pr,
filename, filename,
NULL, NULL,
&global_parse_status, &global_parse_status,
&parse_result); &parse_result);
put_str = g_strdup_printf ("TZ=%s", old_tz ? old_tz : "");
putenv (put_str);
g_free (put_str);
g_free (old_tz);
sixtp_destroy(top_level_pr); sixtp_destroy(top_level_pr);
if(parse_ok) { if(parse_ok) {

View File

@ -364,6 +364,7 @@ string_to_timespec_secs(const gchar *str, Timespec *ts) {
struct tm parsed_time; struct tm parsed_time;
const gchar *strpos; const gchar *strpos;
time_t parsed_secs; time_t parsed_secs;
long int gmtoff;
memset(&parsed_time, 0, sizeof(struct tm)); memset(&parsed_time, 0, sizeof(struct tm));
@ -396,16 +397,19 @@ string_to_timespec_secs(const gchar *str, Timespec *ts) {
if((sign != '+') && (sign != '-')) return(FALSE); if((sign != '+') && (sign != '-')) return(FALSE);
if(!isspace_str(strpos + num_read, -1)) return(FALSE); if(!isspace_str(strpos + num_read, -1)) return(FALSE);
parsed_time.tm_gmtoff = (h1 * 10 + h2) * 60 * 60; gmtoff = (h1 * 10 + h2) * 60 * 60;
parsed_time.tm_gmtoff += (m1 * 10 + m2) * 60; gmtoff += (m1 * 10 + m2) * 60;
if(sign == '-') parsed_time.tm_gmtoff = - parsed_time.tm_gmtoff; if(sign == '-') gmtoff = - gmtoff;
parsed_time.tm_isdst = -1; parsed_time.tm_isdst = -1;
} }
parsed_secs = mktime(&parsed_time); parsed_secs = mktime(&parsed_time);
if(parsed_secs == (time_t) -1) return(FALSE); if(parsed_secs == (time_t) -1) return(FALSE);
parsed_secs -= gmtoff;
ts->tv_sec = parsed_secs; ts->tv_sec = parsed_secs;
return(TRUE); return(TRUE);