> Could it be rather a problem with summer time? ECL relies on the C library
> for the timezone and the summer time (see src/c/mislib.lsp) and it seems to
> work for Spain

Maybe. Last year, Russia hasn't summer/winter time transition.

I have read the code src/lisp/mislib.lsp and found ECL don't uses 
tzset/timezone for time zone detection (HAVE_TZSET set to 1). I debug function 
get-local-time-zone, it return -3 instead of -4.

I found in source next code

  #if 0 && defined(HAVE_TZSET)
  tzset();
  mw = timezone/60;
  #endif

Why 0?

Simple test code 'tzset(); timezone/60/60'; evaluates in '-4'. So, problem in:

  struct tm ltm, gtm;
  time_t when = 0L;

  ltm = *localtime(&when);
  gtm = *gmtime(&when);
        
  mw = (gtm.tm_min + 60 * gtm.tm_hour) - (ltm.tm_min + 60 * ltm.tm_hour);
        
  if ((gtm.tm_wday + 1) % 7 == ltm.tm_wday)
    mw -= 24*60;
  else if (gtm.tm_wday == (ltm.tm_wday + 1) % 7)
    mw += 24*60;

But i don't understand this code :(

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ecls-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ecls-list

Reply via email to