On Thu, 20 Sep 2001, Branko [ISO-8859-2] �ibej wrote:
> Hm. So if I understand correctly, you take an absolute time (a given
> "now") and add an interval to it.
Yes.
> Do you have to do that separately for each field?
Sort of. seconds/minute and days/month are not constants, and so we have
to handle offsets to the 'seconds' field and to the 'days' field
separate. Everything else just rolls over from one field to the next.
> Would it be possible
> to convert the "plus five months" to an apr_interval_time_t (based on
> "now", of course), implode "now" to an apr_time_t, add the two and
> explode the time again?
No. Not at all. The apr_interval_time_t is just an plain 64-bit integer
count of microseconds. It's not appropriate at all for this.
You only have to do "magic" on the days and seconds fields. The rest are
just standard conversions, with a little bit of cleverness to ensure that
very large offsets (2^33 minutes, for example) are handled correctly.
Basically the code works by using apr_explode_time as an oracle. The
seconds->years conversion is just too complicated otherwise. This is
really all explained in the comments to the normalize_time function.
--s
RNC ammunition SSBN 731 Mk 48 affinity group biowarfare C4 SLBM operation
security COBRA JUDY Shoal Bay cryptographic Castro Bush atomic MI5
( http://lesser-magoo.lcs.mit.edu/~cananian )
--
"These students are going to have to find out what law and order is
all about." -- Brig. General Robert Canterbury, Noon, May 4, 1970,
minutes before his troops shot 13 unarmed Kent State students, killing 4.
--
[http://www.cs.cmu.edu/~dst/DeCSS/Gallery/]
#!/usr/bin/perl -w
# 526-byte qrpff, Keith Winstein and Marc Horowitz <sipb-iap-dvd@mit.edu>
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
[$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:42 2006