[haiku-commits] Re: r37934 - in haiku/trunk: headers/private/libroot/time src/preferences/time

  • From: Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 06 Aug 2010 18:11:46 +0200

Hi Axel,

On 2010-08-06 at 15:11:34 [+0200], Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> 
wrote:
> 
> Oliver Tappe <zooey@xxxxxxxxxxxxxxx> wrote:
> > > Why not omit the "libroot"?
> > To make it clear that this file contains info only relevant for
> > libroot. I
> > have planned to move the 'Time settings' file and the 'RTC_...' file
> > from
> > user_settings to common_settings, too, and then I thought it'd be
> > neat to
> > be able to see that timezone_info has meaning only for libroot.
> 
> Ah well, okay then. I guess ICU cannot be used to retrieve these values?

We are talking about the attributes (offset, names, daylight saving suport) 
of the specific timezone that has been selected by the user in the Time 
preflet, so there's nothing ICU can help with, unless we tell it *which* 
timezone that is. But libroot doesn't know either, so it has to gather that 
info from somewhere - hence this file. 
But since we need to pass some info from the Time preflet to libroot via 
such a file, I thought we could just as well write all the info required by 
libroot into that file, skipping the need to ask ICU for the individual 
attributes of the selected timezone.

Now that I think about it, this does have a disadvantage, actually: if any 
attribute of the timezone changes (quite possible, since ICU allows 
updating of the timezone info contained in libicu-dt via a specific tool), 
libroot would never notice. But that can easily be fixed by letting 
incorporating that tool into the Time preflet and then make sure that the 
preflet updates it settings after the timezones have been updated.

Alternatively, we could use a similar approach to how the name of the 
timezone file was transported to all processes before my changes: via the 
kernel, using two specific syscalls that set/get them. 
In that case, clockconfig could put the timezone attributes into the kernel 
and tzset() would fetch them from there. Since clockconfig is already able 
to parse the 'Time settings' file, there would be not need for a specific 
libroot_timezone_info file.

But to me it felt a bit weird to use the kernel as some kind of "data 
storage". Or would that be just fine?

cheers,
        Oliver

Other related posts: