<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>well..we were accessing fields at the end of struct tm that aren't there..switched from DateBsd to DateLinux and now my exact first proposal stands. :)<BR>
 <BR>
I worked around but it is lame, imho more lame than my suggestion.<BR>
My suggestion still imports/shares the data, just via a C function call, so that the right declarations are present.<BR>
The right declarations are..difficult in Modula-3.<BR>
You'd have to declare the variables as pointers and change their name, and then somehow either layer portable code over that, or fork DateBsd/DateLinux to DateCygwin..which I just don't think is worth it. I don't like per-platform forks, too much duplicity, too much multiplication out of code, too much code, too much cruft, too little maintenance.... better to merge stuff if it isn't a mess and have less overall source code to maintain....<BR>
 <BR>
 - Jay<BR><BR>
<BLOCKQUOTE>
<HR id=EC_stopSpelling>
From: jayk123@hotmail.com<BR>To: m3devel@elegosoft.com<BR>Subject: RE: [M3devel] utime.i3 and imported data<BR>Date: Tue, 12 Feb 2008 16:27:38 +0000<BR><BR>
<META content="Microsoft SafeHTML" name=Generator>
<STYLE>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass EC_body.hmmessage
{font-size:10pt;font-family:Tahoma;}
</STYLE>
sorry, still not a bad idea, but not where my crash is.<BR>I wasn't paying close enough attention. Those aren't used on NT386GNU.<BR>The crash is probably here:<BR> <BR>C:\dev2\cm3.2\m3-libs\m3core\src\time\posix\DateBsd.m3(47):      date.zone    := M3toC.CopyStoT (tm.tm_zone);<BR><BR>I don't know why yet. (meta reason -- these time formats aren't worthwhile even if forward slashes in paths and X Windows are....)<BR> <BR> - Jay<BR><BR>
<BLOCKQUOTE>
<HR id=EC_EC_stopSpelling>
From: jayk123@hotmail.com<BR>To: m3devel@elegosoft.com<BR>Date: Tue, 12 Feb 2008 15:57:25 +0000<BR>Subject: [M3devel] utime.i3 and imported data<BR><BR>
<STYLE>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass EC_body.hmmessage
{font-size:10pt;font-family:Tahoma;}
</STYLE>
For good reason, imported (dynamically linked) data doesn't work great on Win32.<BR>Functions work much better. Data can work, but you generally need the header to say __declspec(dllimport), to change it to a declaration of a pointer. I've seen GNU ld has some workaround but I'm not familiar with it, it doesn't worthwhile to me, and I'm having a problem.<BR> <BR>I strongly suggest all the Utime.i3:<BR> <BR><*EXTERNAL*> VAR timezone: time_t;<BR><*EXTERNAL*> VAR daylight: int;<BR><*EXTERNAL*> VAR tzname: ARRAY [0..1] OF char_star;<BR><BR>be changed to functions:<BR> <BR><*EXTERNAL Utime__get_timezone*> get_timezone(): time_t;<BR><*EXTERNAL Utime__get_daylight*> get_daylight(): int;<BR><*EXTERNAL Utime__get_tzname*> get_tzname(a: [0..1]): char_star;<BR><BR> <BR>with an implementation in C:<BR> <BR>UtimeC.c<BR>#include <time.h><BR>time_t Utime__get_timezone(void)<BR>{<BR>    return timezone;<BR>}<BR> <BR>int Utime__get_daylight(void)<BR>{<BR>    return daylight;<BR>}<BR> <BR>char* Utime__get_tzname(unsigned a)<BR>{<BR>    return tzname[a];<BR>}<BR><BR>for now I'm going to try another workaround..where NT386GNU has this data as not external and some C code to call tzset and then copy the data from the C globals to Modula-3 globals.<BR> <BR>The datetime feature I added to Quake is crashing, I think due to this...<BR> <BR> - Jay<BR><BR>
<HR>
Shed those extra pounds with MSN and The Biggest Loser! <A href="http://biggestloser.msn.com/" target=_blank>Learn more.</A> </BLOCKQUOTE><BR>
<HR>
Helping your favorite cause is as easy as instant messaging. You IM, we give. <A href="http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join" target=_blank>Learn more.</A> </BLOCKQUOTE><br /><hr />Connect and share in new ways with Windows Live. <a href='http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_012008' target='_new'>Get it now!</a></body>
</html>