]> granicus.if.org Git - transmission/log
transmission
15 years agoupdate Dutch localization
Mitchell Livingston [Sat, 26 Dec 2009 00:01:55 +0000 (00:01 +0000)]
update Dutch localization

15 years agocalculate proper file progress for 0-byte files (fixes #2689)
Mitchell Livingston [Fri, 25 Dec 2009 16:56:33 +0000 (16:56 +0000)]
calculate proper file progress for 0-byte files (fixes #2689)

15 years ago#2696 posix_fadv_dontneed undeclared
Mitchell Livingston [Fri, 25 Dec 2009 15:48:41 +0000 (15:48 +0000)]
#2696 posix_fadv_dontneed undeclared

15 years ago(trunk libT) #2416 "crash in event_queue_insert" -- another experimental commit....
Charles Kerr [Thu, 24 Dec 2009 18:50:34 +0000 (18:50 +0000)]
(trunk libT) #2416 "crash in event_queue_insert" -- another experimental commit.  /as an experiment/ let's just leak that event struct and see if that makes the crash go away.  Obviously leaking those objects is not a long term fix but this will help point the way towards the real fix.

15 years ago(trunk libT) #2632 "Add streaming capability to libtransmission (but not the Transmis...
Charles Kerr [Thu, 24 Dec 2009 18:01:48 +0000 (18:01 +0000)]
(trunk libT) #2632 "Add streaming capability to libtransmission (but not the Transmission GUI clients)" -- revert this feature due to pushback from devs and users and the 1.80 freeze

15 years ago(trunk libT) #2632 "Add streaming capability to libtransmission (but not the Transmis...
Charles Kerr [Thu, 24 Dec 2009 01:02:54 +0000 (01:02 +0000)]
(trunk libT) #2632 "Add streaming capability to libtransmission (but not the Transmission GUI clients)" -- implemented

15 years ago(trunk gtk) add a little more height to the "edit trackers" dialog... right now it...
Charles Kerr [Wed, 23 Dec 2009 16:44:10 +0000 (16:44 +0000)]
(trunk gtk) add a little more height to the "edit trackers" dialog... right now it's so short that any more than two or three trackers look squashed in the dialog

15 years agoexperiment with Stabs instead of DWARF as the debug information format
Mitchell Livingston [Wed, 23 Dec 2009 16:33:06 +0000 (16:33 +0000)]
experiment with Stabs instead of DWARF as the debug information format

15 years ago(trunk libT) #2416 "crash in event_queue_insert" -- possible fix. it looks like...
Charles Kerr [Wed, 23 Dec 2009 16:12:18 +0000 (16:12 +0000)]
(trunk libT) #2416 "crash in event_queue_insert" -- possible fix.  it looks like the kqueue client is accessing the event after the callback and after event_del() is being called.  *If* that's the case I don't know if it's a libevent bug or if libtransmission is making assumptions it shouldn't've... but it's easy enough to keep the memory in a pool and free it later when it's safer to do so.

15 years agosmall code nudges here and there
Mitchell Livingston [Wed, 23 Dec 2009 02:02:11 +0000 (02:02 +0000)]
small code nudges here and there

15 years agoreplace a 10.6-deprecated method
Mitchell Livingston [Mon, 21 Dec 2009 23:47:16 +0000 (23:47 +0000)]
replace a 10.6-deprecated method

15 years agoavoid an extra comparison caused by macro expansion
Mitchell Livingston [Mon, 21 Dec 2009 22:03:19 +0000 (22:03 +0000)]
avoid an extra comparison caused by macro expansion

15 years agoeliminate the clamp function for now, allow peer connections once again
Mitchell Livingston [Mon, 21 Dec 2009 14:30:43 +0000 (14:30 +0000)]
eliminate the clamp function for now, allow peer connections once again

15 years ago(trunk web) show version info in the prefs dialog
Kevin Glowacz [Sun, 20 Dec 2009 21:06:20 +0000 (21:06 +0000)]
(trunk web) show version info in the prefs dialog

15 years agomiscellany
Mitchell Livingston [Sun, 20 Dec 2009 21:02:58 +0000 (21:02 +0000)]
miscellany

15 years agoupdate Russian localization
Mitchell Livingston [Sun, 20 Dec 2009 18:33:04 +0000 (18:33 +0000)]
update Russian localization

15 years agoadd a magnet link "icon"
Mitchell Livingston [Sun, 20 Dec 2009 14:44:56 +0000 (14:44 +0000)]
add a magnet link "icon"

15 years agowhoops
Mitchell Livingston [Sat, 19 Dec 2009 21:43:15 +0000 (21:43 +0000)]
whoops

15 years agomake the previously selectable fields again selectable on non-English
Mitchell Livingston [Sat, 19 Dec 2009 21:39:59 +0000 (21:39 +0000)]
make the previously selectable fields again selectable on non-English

15 years ago#2594 make the headers selectable as well
Mitchell Livingston [Sat, 19 Dec 2009 20:25:27 +0000 (20:25 +0000)]
#2594 make the headers selectable as well

15 years ago#2594 Make all inspector fields selectable
Mitchell Livingston [Sat, 19 Dec 2009 20:15:16 +0000 (20:15 +0000)]
#2594 Make all inspector fields selectable

15 years agorandom cleanup
Mitchell Livingston [Sat, 19 Dec 2009 19:17:09 +0000 (19:17 +0000)]
random cleanup

15 years ago#2686 Do not cache torrents added by url
Mitchell Livingston [Sat, 19 Dec 2009 19:14:29 +0000 (19:14 +0000)]
#2686 Do not cache torrents added by url

15 years ago(trunk libT) it certainly smells like we're using freed memory in the libcurl + libev...
Charles Kerr [Fri, 18 Dec 2009 17:32:16 +0000 (17:32 +0000)]
(trunk libT) it certainly smells like we're using freed memory in the libcurl + libevent code in web.c... let's trash the structures right before free()ing them

15 years ago(trunk libT) possibly reduce the frequency of the "too many open files" errors
Charles Kerr [Fri, 18 Dec 2009 07:05:36 +0000 (07:05 +0000)]
(trunk libT) possibly reduce the frequency of the "too many open files" errors

15 years ago(trunk gtk) make check_filenames() a private function
Charles Kerr [Fri, 18 Dec 2009 05:56:41 +0000 (05:56 +0000)]
(trunk gtk) make check_filenames() a private function

15 years ago(trunk) use AC_ARG_VAR for some autoconf variables s.t. their values will persist...
Charles Kerr [Fri, 18 Dec 2009 05:02:48 +0000 (05:02 +0000)]
(trunk) use AC_ARG_VAR for some autoconf variables s.t. their values will persist between reconfs

15 years ago(trunk libT) fix r9793 oops -- I didn't mean to commit my local changes to the autoco...
Charles Kerr [Wed, 16 Dec 2009 18:23:09 +0000 (18:23 +0000)]
(trunk libT) fix r9793 oops -- I didn't mean to commit my local changes to the autoconf code

15 years ago(trunk) #2548 "T's request queue can send out too many duplicate requests" -- (1...
Charles Kerr [Wed, 16 Dec 2009 18:20:01 +0000 (18:20 +0000)]
(trunk) #2548 "T's request queue can send out too many duplicate requests" -- (1) fix r9465 implementation bug that caused some peers to get starved of requests if they rejected a request or choked, then unchoked us. (2) increase a block request's TTL by 15 seconds to reduce cancel/req cycles between two or more blocks (3) add a debug mode to the GTK+ client's peer tab to watch the pending requests counts both up & down

15 years agobuild fix
Eric Petit [Wed, 16 Dec 2009 07:47:04 +0000 (07:47 +0000)]
build fix

15 years ago(trunk libT) try not to cache file data read in during verification
Charles Kerr [Wed, 16 Dec 2009 06:34:17 +0000 (06:34 +0000)]
(trunk libT) try not to cache file data read in during verification

15 years ago#2680 "Group Name" cleared after choosing "Custom location"
Mitchell Livingston [Wed, 16 Dec 2009 03:19:09 +0000 (03:19 +0000)]
#2680 "Group Name" cleared after choosing "Custom location"

15 years agoupdate Credits to match AUTHORS
Mitchell Livingston [Wed, 16 Dec 2009 02:35:39 +0000 (02:35 +0000)]
update Credits to match AUTHORS

15 years agoupdate NEWS date
Mitchell Livingston [Wed, 16 Dec 2009 02:09:36 +0000 (02:09 +0000)]
update NEWS date

15 years ago(trunk) #2674 "Do not put the .svn directories to released tar file" -- that's all...
Charles Kerr [Wed, 16 Dec 2009 01:44:33 +0000 (01:44 +0000)]
(trunk) #2674 "Do not put the .svn directories to released tar file" -- that's all well and good, but it would be nice if the web client's files *were* released to the tarfile.

15 years ago(trunk libT) fix call to updateDesiredRequestCount() reported by sadface
Charles Kerr [Wed, 16 Dec 2009 01:32:23 +0000 (01:32 +0000)]
(trunk libT) fix call to updateDesiredRequestCount() reported by sadface

15 years ago(trunk libT) updated NEWS for 1.80 beta 3
Charles Kerr [Wed, 16 Dec 2009 01:09:06 +0000 (01:09 +0000)]
(trunk libT) updated NEWS for 1.80 beta 3

15 years ago(trunk libT) #2508 "atom->port never updated" -- (1) fix r9434 bug that used the...
Charles Kerr [Wed, 16 Dec 2009 00:45:18 +0000 (00:45 +0000)]
(trunk libT) #2508 "atom->port never updated" -- (1) fix r9434 bug that used the wrong byte ordering scheme for port numbers.  This is why most of the .resume file's peers are worthless in betas 1 and 2. :(  (2) in the resume file, change the dictionary key for peers so that the worthless peers won't be reloaded on startup in beta 3.

15 years ago(trunk libT) #2548 "T's request queue can send out too many duplicate requests" ...
Charles Kerr [Tue, 15 Dec 2009 21:33:24 +0000 (21:33 +0000)]
(trunk libT) #2548 "T's request queue can send out too many duplicate requests" -- fix off-by-one when counting how many peers we'll send a given block request to during endgame

15 years ago(trunk libT) #2548 "T's request queue can send out too many duplicate requests" ...
Charles Kerr [Tue, 15 Dec 2009 20:13:34 +0000 (20:13 +0000)]
(trunk libT) #2548 "T's request queue can send out too many duplicate requests" -- experimental revision to r9465 to address further overdownloading issues

15 years ago(trunk libT) #2667 "Ignore martian addresses" -- apply jch's 0001-Simplify-martian...
Charles Kerr [Tue, 15 Dec 2009 20:06:48 +0000 (20:06 +0000)]
(trunk libT) #2667 "Ignore martian addresses" -- apply jch's 0001-Simplify-martian-address-detection.patch cleanup patch from http://trac.transmissionbt.com/ticket/2667#comment:8

15 years ago(trunk libT) #2667 "ignore martian addresses" -- revise the tests to tr_isValidPeerAd...
Charles Kerr [Tue, 15 Dec 2009 19:39:01 +0000 (19:39 +0000)]
(trunk libT) #2667 "ignore martian addresses" -- revise the tests to tr_isValidPeerAddr() base
d on feedback from jch @ http://trac.transmissionbt.com/ticket/2667#comment:6

15 years ago(trunk libT) #2671 "downloading from too many peers" -- address a smaller aspect...
Charles Kerr [Tue, 15 Dec 2009 18:11:20 +0000 (18:11 +0000)]
(trunk libT) #2671 "downloading from too many peers" -- address a smaller aspect of this ticket, by reducing the minimum number of blocks we request from a peer, as noted by jch's comment @ http://trac.transmissionbt.com/ticket/2671#comment:2

15 years ago(trunk libT) #2667 "ignore martian addresses" -- modified this ticket. previously...
Charles Kerr [Tue, 15 Dec 2009 17:39:19 +0000 (17:39 +0000)]
(trunk libT) #2667 "ignore martian addresses" -- modified this ticket. previously we ignored them from LTEP; now we ignore them regardless of the source.  this commit implements this filtering change.

15 years ago(trunk) update our DHT snapshot
Charles Kerr [Tue, 15 Dec 2009 17:34:36 +0000 (17:34 +0000)]
(trunk) update our DHT snapshot

15 years agogive jch more credit
Charles Kerr [Tue, 15 Dec 2009 17:02:00 +0000 (17:02 +0000)]
give jch more credit

15 years ago(trunk libT) #2669 "Apply IPV6_V6ONLY to the IPv6 DHT socket" -- committed jch's...
Charles Kerr [Tue, 15 Dec 2009 16:48:26 +0000 (16:48 +0000)]
(trunk libT) #2669 "Apply IPV6_V6ONLY to the IPv6 DHT socket" -- committed jch's patch for 1.80

15 years ago(trunk libT) #2673 "crash in tr_torrentGetMetadataPiece" -- add safeguards against...
Charles Kerr [Tue, 15 Dec 2009 16:34:12 +0000 (16:34 +0000)]
(trunk libT) #2673 "crash in tr_torrentGetMetadataPiece" -- add safeguards against small sizes

15 years ago(trunk) #2674 "Do not put the .svn directories to released tar file" -- fixed for...
Charles Kerr [Tue, 15 Dec 2009 16:24:03 +0000 (16:24 +0000)]
(trunk) #2674 "Do not put the .svn directories to released tar file" -- fixed for 1.80

15 years ago#2673 crash in tr_torrentGetMetadataPiece
Eric Petit [Tue, 15 Dec 2009 15:19:08 +0000 (15:19 +0000)]
#2673 crash in tr_torrentGetMetadataPiece

15 years agoset NEWS date
Mitchell Livingston [Tue, 15 Dec 2009 01:47:48 +0000 (01:47 +0000)]
set NEWS date

15 years ago(trunk) enhance wording
Kevin Glowacz [Tue, 15 Dec 2009 01:42:43 +0000 (01:42 +0000)]
(trunk) enhance wording

15 years ago(trunk) update NEWS to add #2358 fix
Charles Kerr [Tue, 15 Dec 2009 01:36:26 +0000 (01:36 +0000)]
(trunk) update NEWS to add #2358 fix

15 years agoadd to NEWS
Mitchell Livingston [Tue, 15 Dec 2009 01:31:51 +0000 (01:31 +0000)]
add to NEWS

15 years agoupdate NEWS for 1.80 beta 3
Charles Kerr [Tue, 15 Dec 2009 01:23:31 +0000 (01:23 +0000)]
update NEWS for 1.80 beta 3

15 years ago(trunk web) don't let the context menu go off the right side or bottom of screen...
Kevin Glowacz [Tue, 15 Dec 2009 01:17:17 +0000 (01:17 +0000)]
(trunk web) don't let the context menu go off the right side or bottom of screen. Fixes #2358

15 years ago(trunk) add #include guards to prevent non-libtransmission files from #including...
Charles Kerr [Tue, 15 Dec 2009 00:51:39 +0000 (00:51 +0000)]
(trunk) add #include guards to prevent non-libtransmission files from #including implementation headers

15 years agoone less calculation
Mitchell Livingston [Mon, 14 Dec 2009 23:47:15 +0000 (23:47 +0000)]
one less calculation

15 years agopossible fix for #2586
Mitchell Livingston [Mon, 14 Dec 2009 23:35:55 +0000 (23:35 +0000)]
possible fix for #2586

15 years ago(trunk gtk) #2668 "minor memory leaks in gtk client" -- fix two GtkImages that were...
Charles Kerr [Mon, 14 Dec 2009 19:24:05 +0000 (19:24 +0000)]
(trunk gtk) #2668 "minor memory leaks in gtk client" -- fix two GtkImages that were being leaked in the main window

15 years ago(trunk libT) maybe fix that blocklist crash John_Clay reports about once a month
Charles Kerr [Mon, 14 Dec 2009 18:47:45 +0000 (18:47 +0000)]
(trunk libT) maybe fix that blocklist crash John_Clay reports about once a month

15 years ago(trunk libT) #2416 "crash in event_queue_insert" -- another stab at fixing this....
Charles Kerr [Mon, 14 Dec 2009 18:24:26 +0000 (18:24 +0000)]
(trunk libT) #2416 "crash in event_queue_insert" -- another stab at fixing this.  yay

15 years ago(trunk gtk) #2500 "Torrent details window should be single-instance per torrent"...
Charles Kerr [Mon, 14 Dec 2009 18:20:11 +0000 (18:20 +0000)]
(trunk gtk) #2500 "Torrent details window should be single-instance per torrent" -- fix implementation bug from r9685 that caused the same memory to be freed twice on shutdown

15 years ago(trunk gtk) #2668 "small memory leak in getSelectedTorrentIds" -- fix another, smalle...
Charles Kerr [Mon, 14 Dec 2009 17:56:31 +0000 (17:56 +0000)]
(trunk gtk) #2668 "small memory leak in getSelectedTorrentIds" -- fix another, smaller leak in the same code

15 years ago(trunk libT) fix minor memory leak in libtransmission/tr-dht.c, found by valgrind
Charles Kerr [Mon, 14 Dec 2009 17:46:00 +0000 (17:46 +0000)]
(trunk libT) fix minor memory leak in libtransmission/tr-dht.c, found by valgrind

15 years ago(trunk libT) #1699 "announce to multiple trackers at once" -- fix minor bug in report...
Charles Kerr [Mon, 14 Dec 2009 17:17:05 +0000 (17:17 +0000)]
(trunk libT) #1699 "announce to multiple trackers at once" -- fix minor bug in reporting scrape results when an announce returns enough information that a separate scrape isn't necessary.

15 years ago(trunk gtk) #2668 "small memory leak in getSelectedTorrentIds()" -- fixed for 1.80
Charles Kerr [Mon, 14 Dec 2009 16:41:49 +0000 (16:41 +0000)]
(trunk gtk) #2668 "small memory leak in getSelectedTorrentIds()" -- fixed for 1.80

15 years ago(trunk libT) keep simplifying web.c... is there anything left to strip out?
Charles Kerr [Mon, 14 Dec 2009 14:25:22 +0000 (14:25 +0000)]
(trunk libT) keep simplifying web.c... is there anything left to strip out?

15 years agoone more update to pt localization
Mitchell Livingston [Mon, 14 Dec 2009 13:45:16 +0000 (13:45 +0000)]
one more update to pt localization

15 years agorestore placement of priority icon
Mitchell Livingston [Mon, 14 Dec 2009 13:20:36 +0000 (13:20 +0000)]
restore placement of priority icon

15 years agoupdate pt strings
Mitchell Livingston [Mon, 14 Dec 2009 13:15:17 +0000 (13:15 +0000)]
update pt strings

15 years ago(trunk libT) more web.c simplification + handle an unhandled case CURL_POLL_NONE...
Charles Kerr [Mon, 14 Dec 2009 12:54:30 +0000 (12:54 +0000)]
(trunk libT) more web.c simplification + handle an unhandled case CURL_POLL_NONE in the socket callback.

15 years ago(trunk libT) keep simplifying web.c. also, fix an improbable FMR at shutdown
Charles Kerr [Mon, 14 Dec 2009 05:11:33 +0000 (05:11 +0000)]
(trunk libT) keep simplifying web.c.  also, fix an improbable FMR at shutdown

15 years ago(trunk libT) #2667 "Ignore martian addresses in LTEP messages" -- implemented for...
Charles Kerr [Mon, 14 Dec 2009 02:07:47 +0000 (02:07 +0000)]
(trunk libT) #2667 "Ignore martian addresses in LTEP messages" -- implemented for 1.80

15 years ago(trunk gtk) #2665 "Crash in GTK+ code" -- fixed for 1.80
Charles Kerr [Mon, 14 Dec 2009 00:34:51 +0000 (00:34 +0000)]
(trunk gtk) #2665 "Crash in GTK+ code" -- fixed for 1.80

15 years agofix favicons in the tracker tab
Mitchell Livingston [Sun, 13 Dec 2009 22:47:25 +0000 (22:47 +0000)]
fix favicons in the tracker tab

15 years agoresize the level popup in the message window for localizations
Mitchell Livingston [Sun, 13 Dec 2009 21:56:51 +0000 (21:56 +0000)]
resize the level popup in the message window for localizations

15 years agoon open, make sure the filter bar's layout is correct
Mitchell Livingston [Sun, 13 Dec 2009 21:42:45 +0000 (21:42 +0000)]
on open, make sure the filter bar's layout is correct

15 years agoGerman localization
Mitchell Livingston [Sun, 13 Dec 2009 21:28:51 +0000 (21:28 +0000)]
German localization

15 years ago(trunk libT) remove some more obsolete debug messages and other cruft from web.c
Charles Kerr [Sun, 13 Dec 2009 19:33:02 +0000 (19:33 +0000)]
(trunk libT) remove some more obsolete debug messages and other cruft from web.c

15 years ago(trunk web) make sure the context menu goes away when click on torrents. Fixes #2660
Kevin Glowacz [Sun, 13 Dec 2009 18:37:36 +0000 (18:37 +0000)]
(trunk web) make sure the context menu goes away when click on torrents. Fixes #2660

15 years ago(trunk libT) it never ends
Charles Kerr [Sun, 13 Dec 2009 17:54:01 +0000 (17:54 +0000)]
(trunk libT) it never ends

15 years agoright-align the progress string in the peer inspector tab
Mitchell Livingston [Sun, 13 Dec 2009 17:11:59 +0000 (17:11 +0000)]
right-align the progress string in the peer inspector tab

15 years agothe Message Log window's colored dots should be the same size regardless of number...
Mitchell Livingston [Sun, 13 Dec 2009 16:29:09 +0000 (16:29 +0000)]
the Message Log window's colored dots should be the same size regardless of number of rows

15 years agoless calculations are usually a good thing
Mitchell Livingston [Sun, 13 Dec 2009 03:13:34 +0000 (03:13 +0000)]
less calculations are usually a good thing

15 years agoeliminate redundant code
Mitchell Livingston [Sun, 13 Dec 2009 01:40:53 +0000 (01:40 +0000)]
eliminate redundant code

15 years agowarnings--
Mitchell Livingston [Sun, 13 Dec 2009 01:36:22 +0000 (01:36 +0000)]
warnings--

15 years agoremove unnecessary asserts
Mitchell Livingston [Sat, 12 Dec 2009 21:37:36 +0000 (21:37 +0000)]
remove unnecessary asserts

15 years agoright align the UL and DL speeds in the peer inspector
Mitchell Livingston [Sat, 12 Dec 2009 19:06:17 +0000 (19:06 +0000)]
right align the UL and DL speeds in the peer inspector

15 years agotrivial tweaks here and there
Mitchell Livingston [Sat, 12 Dec 2009 18:52:03 +0000 (18:52 +0000)]
trivial tweaks here and there

15 years ago#2662 shrink the dock badge text until it fits without being cut off
Mitchell Livingston [Sat, 12 Dec 2009 18:29:14 +0000 (18:29 +0000)]
#2662 shrink the dock badge text until it fits without being cut off

15 years ago(trunk libT) #2661 "better torrent prioritization when making outbound peer connectio...
Charles Kerr [Sat, 12 Dec 2009 17:05:31 +0000 (17:05 +0000)]
(trunk libT) #2661 "better torrent prioritization when making outbound peer connection attempts" -- implemented for 1.80

15 years ago(trunk qt) fix qt build broken by r9719; error reported by Lacrocivious
Charles Kerr [Sat, 12 Dec 2009 15:38:14 +0000 (15:38 +0000)]
(trunk qt) fix qt build broken by r9719; error reported by Lacrocivious

15 years agomore Brazilian Portuguese localization fixes
Mitchell Livingston [Sat, 12 Dec 2009 15:10:08 +0000 (15:10 +0000)]
more Brazilian Portuguese localization fixes

15 years ago(trunk gtk) oops, I meant to check this in with r9725... fix gtk+ client build errors...
Charles Kerr [Sat, 12 Dec 2009 14:41:36 +0000 (14:41 +0000)]
(trunk gtk) oops, I meant to check this in with r9725... fix gtk+ client build errors in trunk

15 years agoimprove the tracker removing code
Mitchell Livingston [Sat, 12 Dec 2009 04:39:43 +0000 (04:39 +0000)]
improve the tracker removing code

15 years ago(trunk libT) remove the test for duplicate trackers in the announce list.
Charles Kerr [Sat, 12 Dec 2009 04:12:04 +0000 (04:12 +0000)]
(trunk libT) remove the test for duplicate trackers in the announce list.

15 years ago(trunk libT) #2658 "encryption improvements" - patch by sadface to make DH handshake...
Charles Kerr [Sat, 12 Dec 2009 03:51:36 +0000 (03:51 +0000)]
(trunk libT) #2658 "encryption improvements" - patch by sadface to make DH handshake ~2x faster.  yay!

15 years agodead code removal
Mitchell Livingston [Sat, 12 Dec 2009 03:11:48 +0000 (03:11 +0000)]
dead code removal

15 years agobetter implementation of r9721
Mitchell Livingston [Sat, 12 Dec 2009 02:39:31 +0000 (02:39 +0000)]
better implementation of r9721