Father Chrysostomos [Sat, 23 Jun 2012 06:39:46 +0000 (23:39 -0700)]
Add François Perrad to AUTHORS
Father Chrysostomos [Sat, 23 Jun 2012 06:38:30 +0000 (23:38 -0700)]
squash with export headres
Francois Perrad [Wed, 16 May 2012 15:55:22 +0000 (17:55 +0200)]
copy .offs only if not null.
Father Chrysostomos [Sat, 23 Jun 2012 06:31:44 +0000 (23:31 -0700)]
Exporter.pm: Capitalise subheaders consistently
Father Chrysostomos [Sat, 23 Jun 2012 06:25:00 +0000 (23:25 -0700)]
Exporter.pm: Consistent spaces after dots
Father Chrysostomos [Sat, 23 Jun 2012 06:21:13 +0000 (23:21 -0700)]
Increase $Exporter::VERSION to 5.67
Father Chrysostomos [Sat, 23 Jun 2012 06:20:09 +0000 (23:20 -0700)]
cmpVERSION.pl: Correct err msg
Father Chrysostomos [Sat, 23 Jun 2012 06:16:08 +0000 (23:16 -0700)]
[perl #112856] Exporter’s docs: expunge require_version
This sub hasn’t been called for eleven years, since
22b4675c82b54.
The docs were never updated to account.
There’s no point in even mentioning require_version, as it has
been so long.
Yves Orton [Sat, 23 Jun 2012 11:34:41 +0000 (13:34 +0200)]
#101666: horrible regex parsing error error [sic]
We were producing a very confusing error when a group name
did not start with an identifier. This patch tries to improve the situation.
Yves Orton [Thu, 21 Jun 2012 18:42:07 +0000 (20:42 +0200)]
turns out we cant maike a jump trie that starts with a NOTHING regop
NOTHING nodes are 1 regop wide. We need 2 regops worth of
space. Which means that we can not safely optimise a sequence
that starts with a NOTHING regop that needs to turn into
a jump trie. We therefore ignore such sequences.
see perl #113770 for details.
Chip Salzenberg [Thu, 21 Jun 2012 22:51:33 +0000 (15:51 -0700)]
do not try to restore state of pseudosignal zero
Vincent Pit [Fri, 22 Jun 2012 17:21:50 +0000 (19:21 +0200)]
Also handle the case IVSIZE == I32SIZE when resetting the array iterator
Vincent Pit [Fri, 22 Jun 2012 13:55:55 +0000 (15:55 +0200)]
Reset the iterator when an array is cleared
This fixes RT #75596.
Father Chrysostomos [Fri, 22 Jun 2012 02:02:28 +0000 (19:02 -0700)]
[perl #112826] Make Tie::StdHandle::READ respect offset
Tie::StdHandle::READ was ignoring the optional fourth argument to
read(), specifying the offset into the target string.
Father Chrysostomos [Fri, 22 Jun 2012 01:58:59 +0000 (18:58 -0700)]
Increase $Tie::StdHandle::VERSION to 4.3
Vincent Pit [Fri, 22 Jun 2012 12:02:20 +0000 (14:02 +0200)]
Revert to the correct value of lddlflags for AddressSanitizer
-Afoo=val appends 'val' to the value of variable foo after the platform
hints are processed, but before the default value is computed by Configure.
At this time, 'foo' appears as non-empty and Configure skips the default
logic. This is the reason -shared must always be added to lddlflags.
I don't know why I didn't caught this while testing AddressSanitizer builds.
Vincent Pit [Fri, 22 Jun 2012 09:59:26 +0000 (11:59 +0200)]
Run podtidy on perlhacktips
Vincent Pit [Fri, 22 Jun 2012 09:57:31 +0000 (11:57 +0200)]
Clarify how AddressSanitizer should be invoked when useshrplib is set
Shirakata Kentaro [Fri, 22 Jun 2012 09:12:39 +0000 (11:12 +0200)]
POD typo in perlfunc
This fixes [RT #113788]
Walt Mankowski [Fri, 22 Jun 2012 02:36:00 +0000 (22:36 -0400)]
Fixed repeated words
Reini Urban [Thu, 21 Jun 2012 22:47:20 +0000 (17:47 -0500)]
pp_sassign: explain the mix of left<=>right in the optree
Fix the names in the function to make it readable. lhs and rhs reflect now
the parsed source not the position on the optree stack.
Karl Williamson [Thu, 21 Jun 2012 15:40:20 +0000 (09:40 -0600)]
toke.c: Add, clarify comments
Brian Fraser [Tue, 19 Jun 2012 20:05:18 +0000 (17:05 -0300)]
toke.c: Make new error UTF-8 safe
Commit
0da72d5e623b55d88fb3772b9c91e8f2d1ea7c40 introduced a new error
message, but did not account for UTF-8 source.
Jesse Luehrs [Thu, 21 Jun 2012 14:16:09 +0000 (09:16 -0500)]
perldelta for a3ff80c
Jesse Luehrs [Thu, 21 Jun 2012 14:06:06 +0000 (09:06 -0500)]
document some more Gv* macros
Chris 'BinGOs' Williams [Thu, 21 Jun 2012 07:52:43 +0000 (08:52 +0100)]
Sync Module-CoreList in Maintainers.pl with CPAN
Nicholas Clark [Thu, 21 Jun 2012 07:01:19 +0000 (09:01 +0200)]
Merge fix for File::stat's -x and -X for root, and test improvements.
Nicholas Clark [Tue, 19 Jun 2012 10:33:50 +0000 (12:33 +0200)]
lib/File/stat.t shouldn't test -A $^X
Testing this fails intermittently on darwin, which has POSIXly-correct atime
semantics. When tests run in parallel, the atime of $^X will update whenever
another perl process starts, which is a race condition with this test.
Nicholas Clark [Mon, 18 Jun 2012 11:09:02 +0000 (13:09 +0200)]
Fix File::stat's -x and -X for root for directories and executable files.
Previously File::stat's overloaded -x and -X operators did not give
the correct results for directories or executable files when running as
root. They had been treating executable permissions for root just like for
any other user, performing group membership tests etc. for files not owned
by root. They now follow the correct Unix behaviour - for a directory they
are always true, and for a file if any of the three execute permission bits
are set then they report that root can execute the file. Perl's builtin
-x and -X operators, added in Perl 2, have always been correct.
Nicholas Clark [Wed, 13 Jun 2012 16:01:48 +0000 (18:01 +0200)]
Test that File::stat exports stat by default, overriding the builtin.
Also, add a test that the array produced by File::stat::stat is identical to
the list produced by the builtin.
Nicholas Clark [Mon, 18 Jun 2012 10:53:29 +0000 (12:53 +0200)]
lib/File/stat.t should also test the -X operators on directories.
Nicholas Clark [Wed, 13 Jun 2012 15:50:14 +0000 (17:50 +0200)]
In lib/File/stat.t, permute the test file's mode for more thorough testing.
For each mode bit set, and all bits clear, test each filetest operator with
and without a File::stat object. Previously the only test was for the mode
the file was created with.
Nicholas Clark [Wed, 13 Jun 2012 15:34:11 +0000 (17:34 +0200)]
Refactor lib/File/stat.t for robustness.
Use CORE::stat instead of stat, to be clear which is the builtin, and which
is the routine that File::stat is prepared to export. As it is now
unambiguous which is which, remove comments that annotated each use.
Use isa_ok() in place of ok() to test the return value of File::stat::stat.
Use is_deeply() in place of is() and arrays interpolated into strings.
Move the data driven loop that tests most of the -X operators into a
function test_X_ops(), and use this to test both the tempfile
(non-executable) and $^X (executable).
Put the first sanity test of File::stat::stat inside a block so that its
lexicals don't leak.
Nicholas Clark [Wed, 13 Jun 2012 14:45:40 +0000 (16:45 +0200)]
*Actually* test that bug
20011110.104 is fixed.
Bug ID
20011110.104 (RT #7896) was fixed by commit
2f173a711df6278f in Nov
2001, but the test that commit added never actually tested this.
The initial problem was that the new code, as written, used C<stat>,
intending that to call File::stat::stat(). However the refactoring of the
test script (all part of the same commit) from C<use File::stat;> to
C<use_ok( 'File::stat' );> (not in a BEGIN block) intentionally eliminated
the export of &File::stat::stat. This means that plain C<stat> is the
core builtin.
Fixing this as-is to File::stat::stat() won't help, as tests have
subsequently been added earlier in the script that trigger the autoloading
of Symbol by File::stat (commit
83716b1ec25b41f2 in Feb 2002). Moving the
tests earlier won't help now that the test uses File::Temp, as that uses
IO::Seekable which uses IO::Handle, which unconditionally loads Symbol.
The simplest solution seems to be to move the test to its own file.
Nicholas Clark [Sun, 3 Jun 2012 11:26:31 +0000 (13:26 +0200)]
Simplify lib/File/stat.t by using a tempfile as the test victim.
The previous code had got very gnarly trying to use a file from the
distribution for the test file, attempting to cope with
1) Other programs reading the file and hence the atime updating
2) The perl interpreter reading the file and hence the atime updating :-)
3) Building with -Dmksymlinks meaning that the file is a symlink
All these problems and work arounds simply *vanish* if we use a tempfile.
This will also enable us to change its mode in the future for better testing.
Nicholas Clark [Wed, 13 Jun 2012 13:53:27 +0000 (15:53 +0200)]
Remove needless skip tests from lib/File/stat.t
The stat builtin is always implemented, so no need for an eval {} test to
check for this. The presence or absence of <sys/stat.h> at the C level isn't
going to affect the outcome of this test.
Both have been in the test script since it was added (as t/lib/filestat.t)
by commit
f7a45afb043dafc5 in May 2001. I suspect that both were copied
from one of the Net::* test scripts which was being used as the template.
Nicholas Clark [Sun, 3 Jun 2012 10:45:24 +0000 (12:45 +0200)]
In lib/File/stat.t, test everything with and without use filetest "access".
Previously the use filetest "access" tests were separate, and didn't test
all the "should not warn" cases. By moving them into the main data-driven
loop it's trivial to test everything.
Also test that all the correct errors are seen on VMS, and not seen anywhere
else.
Nicholas Clark [Sun, 3 Jun 2012 09:42:20 +0000 (11:42 +0200)]
Bring the joy of strict (and warnings) to lib/File/stat.t
Nicholas Clark [Sat, 2 Jun 2012 20:51:14 +0000 (22:51 +0200)]
Replace repetitive code in lib/File/stat.t with a data driven loop.
Nicholas Clark [Sat, 2 Jun 2012 20:42:47 +0000 (22:42 +0200)]
Convert lib/File/stat.t from a complex plan calculation to done_testing().
Also replace use_ok (not in BEGIN) with a simple require. If the require
fails it's not worth trying to test anything else, Test::More's END
handing will automatically report a test failure, so the failure will be
recorded.
Add an editor block.
Father Chrysostomos [Thu, 21 Jun 2012 06:34:19 +0000 (23:34 -0700)]
Increase $PerlIO::scalar::VERSION to 0.15
Father Chrysostomos [Thu, 21 Jun 2012 06:33:28 +0000 (23:33 -0700)]
[perl #113764] Make &= duping work with PerlIO::scalar
In trying to fix bug #112780, I made in-memory handle duplication tem-
porarily hide the underlying scalar so it wouldn’t be set to the empty
string (commit
49b69fb3a).
I used PerlIO_sv_dup in j rather than PerlIOScalar_arg. The for-
mer is usually what is called anyway. There is only one branch of
PerlIOScalar_arg that doesn’t call PerlIO_sv_dup. I don’t remember
what I was thinking back then, but I think I thought that branch
was there for paranoia. But actually, it is used for "&=", so this
started failing:
open FILE, '>', \my $content or die "Couldn't open scalar filehandle";
open my $fh, ">&=FILE" or die "Couldn't open: $!";
print $fh "Foo-Bar\n";
close $fh;
close FILE;
print $content;
This commit fixes the bug in the smallest way possible, which means
switching from PerlIO_sv_dup to PerlIOScalar_arg in PerlIOScalar_arg,
which, in turn, entails fiddling with RVs.
Father Chrysostomos [Thu, 21 Jun 2012 00:59:01 +0000 (17:59 -0700)]
Teach dump.c about CVf_HASEVAL
Father Chrysostomos [Wed, 20 Jun 2012 23:05:40 +0000 (16:05 -0700)]
perl5171delta: caller looks beyond cur stack
Father Chrysostomos [Wed, 20 Jun 2012 22:58:04 +0000 (15:58 -0700)]
perl5171delta: typo
Father Chrysostomos [Wed, 20 Jun 2012 21:23:02 +0000 (14:23 -0700)]
[perl #89544] Non-eval closures don’t need CvOUTSIDE
A closure doesn’t need an outside pointer at run time, unless it has a
string eval in it. CvOUTSIDE is only used at compilation time to look
up variables by name.
Since CvOUTSIDE is reference-counted, a closure can unnecessarily hang
on to variables it is not using (see the test in the diff). So stop
setting it when cloning a closure, unless it is needed for eval.
Father Chrysostomos [Wed, 20 Jun 2012 21:25:19 +0000 (14:25 -0700)]
closure.t: load test.pl at BEGIN time
This allows parentheses to be omitted.
Eric Brine [Mon, 18 Jun 2012 18:56:32 +0000 (14:56 -0400)]
RT#113730 - $@ should be cleared on "do" IO error.
Father Chrysostomos [Wed, 20 Jun 2012 20:45:43 +0000 (13:45 -0700)]
[perl #113712] Don’t create stubs after errors
perl5.002beta3 (
c07a80fdfe) stopped bodies of subrou-
tines from being defined after compilation errors, as in
eval "@a =~ s///; sub { die }".
But, instead of making the sub declaration not happen at all, it ended
up leaving a stub.
For a full sub declaration (body and all) to create a stub just
seems wrong.
Likewise, it would be weird if a stub declaration
after a compilation error created a stub, because then
eval "@a =~ s///; sub foo; sub bar { }" would create foo but not bar.
Similarly, a compilation error will cause ‘sub foo {}’ no suppress
‘used once’ warnings; but a lexing error won’t.
This commit fixes all this, making things consistent: If there is a
compilation, parsing or lexing error, any kind of sub declaration that
follows is ignored.
Lukas Mai [Wed, 20 Jun 2012 04:59:58 +0000 (21:59 -0700)]
[perl #113756] fix type of StructCopy in API documentation
perlapi currently claims StructCopy takes two structs when it really
takes two pointers.
Father Chrysostomos [Wed, 20 Jun 2012 03:39:54 +0000 (20:39 -0700)]
Let while.t run from the top level
Jesse Luehrs [Wed, 20 Jun 2012 20:03:54 +0000 (15:03 -0500)]
bump version to 5.17.2
Jesse Luehrs [Wed, 20 Jun 2012 19:44:43 +0000 (14:44 -0500)]
don't change version numbers in this file either
Karl Williamson [Sun, 17 Jun 2012 20:04:55 +0000 (14:04 -0600)]
comp/parser.t: Add some tests
Karl Williamson [Sun, 17 Jun 2012 19:45:19 +0000 (13:45 -0600)]
dquote_static.c: Clarify comment
Karl Williamson [Sun, 17 Jun 2012 19:44:01 +0000 (13:44 -0600)]
reg_mesg.t: Add tests
Karl Williamson [Sun, 17 Jun 2012 19:03:36 +0000 (13:03 -0600)]
Refactor \x processing to single function
There are three places that process \x. These can and did get out of
sync. This moves all three to use a common static inline function so
that they all do the same thing on the same inputs, and their behaviors
will not drift apart again.
This commit should not change current behavior. A previous commit
was designed to bring all three to identical behavior.
Karl Williamson [Sun, 17 Jun 2012 18:33:10 +0000 (12:33 -0600)]
toke.c: Don't convert \x{} from native
This was and is a no-op on ASCII platforms, but on EBCDIC, when you did
e.g., a "\x{7}", it would convert that to a 127. But it did not do this
on qr/\x{7}/, giving inconsistent results. Now, \x{7} yields 7, and
thus is consistent, and matches the documentation.
Karl Williamson [Sun, 17 Jun 2012 17:57:02 +0000 (11:57 -0600)]
grok_bslash_o: Don't convert from native
This was and is a no-op on ASCII platforms, but on EBCDIC, when you did
e.g., a \o{7}, it would convert that to a 127. But it did not do this
on a \007, giving inconsistent results. Now, \o{7} yields 7, and thus
is consistent, and matches the documentation.
Karl Williamson [Wed, 20 Jun 2012 19:13:02 +0000 (13:13 -0600)]
PATCH: [perl #113750] re.pm clobbers $_
Thanks to Jesse Luehrs and Father Chrysostomos for testing advice.
Jesse Luehrs [Wed, 20 Jun 2012 18:29:28 +0000 (13:29 -0500)]
new perldelta
Jesse Luehrs [Wed, 20 Jun 2012 18:23:25 +0000 (13:23 -0500)]
the rmg should tell BLEAD-POINT to bump version at the end
Jesse Luehrs [Wed, 20 Jun 2012 18:18:14 +0000 (13:18 -0500)]
add release branch steps to rmg
Jesse Luehrs [Wed, 20 Jun 2012 18:05:39 +0000 (13:05 -0500)]
few rmg nits
Jesse Luehrs [Wed, 20 Jun 2012 18:05:03 +0000 (13:05 -0500)]
update epigraphs.pod
Jesse Luehrs [Wed, 20 Jun 2012 17:54:09 +0000 (12:54 -0500)]
Merge branch 'release-5.17.1' into blead
Nicholas Clark [Mon, 18 Jun 2012 21:19:58 +0000 (23:19 +0200)]
More tests in t/op/arith.t for constant folding of expressions containing %
Most tests for the bug resolved by commit
e7311069df54baa6, including 64 bit
integer analogs of the 32 bit integer tests added by that commit.
Jesse Luehrs [Wed, 20 Jun 2012 03:49:43 +0000 (22:49 -0500)]
one more place to get rid of win32/config*.gc64nox
Jesse Luehrs [Wed, 20 Jun 2012 03:14:48 +0000 (22:14 -0500)]
update perlhist for 5.17.1
Jesse Luehrs [Wed, 20 Jun 2012 03:05:19 +0000 (22:05 -0500)]
update Module::CoreList for 5.17.1
Father Chrysostomos [Wed, 20 Jun 2012 02:58:56 +0000 (19:58 -0700)]
regen pod issues
Aristotle Pagaltzis [Wed, 20 Jun 2012 01:22:16 +0000 (18:22 -0700)]
POSIX: Sometimes `printf` beats interpolation
Daniel Perrett [Thu, 14 Jun 2012 22:14:26 +0000 (23:14 +0100)]
Tidier example code for POSIX::localeconv()
Father Chrysostomos [Wed, 20 Jun 2012 01:18:41 +0000 (18:18 -0700)]
Add Daniel Perrett to AUTHORS
Jesse Luehrs [Wed, 20 Jun 2012 02:46:22 +0000 (21:46 -0500)]
formatting
Jesse Luehrs [Wed, 20 Jun 2012 02:46:13 +0000 (21:46 -0500)]
add acknowledgements
Jesse Luehrs [Wed, 20 Jun 2012 02:01:44 +0000 (21:01 -0500)]
bump version to 5.17.1
Jesse Luehrs [Tue, 19 Jun 2012 23:42:11 +0000 (18:42 -0500)]
comments in bump-perl-version
Craig A. Berry [Tue, 19 Jun 2012 23:56:44 +0000 (18:56 -0500)]
perldelta for
5c0877fa4ac0 (VMS include files).
Father Chrysostomos [Tue, 19 Jun 2012 19:48:56 +0000 (12:48 -0700)]
perlhacktips: long lines
Jesse Luehrs [Tue, 19 Jun 2012 19:45:51 +0000 (14:45 -0500)]
more proofreading
Reini Urban [Mon, 11 Jun 2012 15:42:10 +0000 (10:42 -0500)]
perlhacktips: add AddressSanitizer
[amended to fix a typo, and add an exception to the podcheck database]
Jesse Luehrs [Tue, 19 Jun 2012 17:54:11 +0000 (12:54 -0500)]
we seem to have been using L<> rather than C<> here recently
Jesse Luehrs [Tue, 19 Jun 2012 17:31:45 +0000 (12:31 -0500)]
none of this is important
Jesse Luehrs [Tue, 19 Jun 2012 17:31:12 +0000 (12:31 -0500)]
add module updates to perldelta
Jesse Luehrs [Tue, 19 Jun 2012 15:36:39 +0000 (10:36 -0500)]
change this synopsis to something that actually works
Jesse Luehrs [Tue, 19 Jun 2012 15:03:58 +0000 (10:03 -0500)]
note existing smoke failures
Jesse Luehrs [Tue, 19 Jun 2012 14:49:42 +0000 (09:49 -0500)]
the known problems section is also for platform specific things
Steve Hay [Tue, 19 Jun 2012 16:59:29 +0000 (17:59 +0100)]
Use ll rather than I64 for win32/config*.gc64 format strings
The corresponding types are long long rather than __int64 so this makes
more sense and matches proposed diffs from the land of Strawberry Perl
for supporting 32-bit builds with 64-bit ints on Windows (hopefully
coming up soon...).
Steve Hay [Tue, 19 Jun 2012 16:54:18 +0000 (17:54 +0100)]
Add missing dlltool default to win32/config.gc
ExtUtils::MakeMaker and ExtUtils::CBuilder both default to this anyway,
but it's good to be explicit, and reduces diffs with the .gc64 file.
Jesse Luehrs [Tue, 19 Jun 2012 14:25:46 +0000 (09:25 -0500)]
perldelta updates
Father Chrysostomos [Tue, 19 Jun 2012 13:29:50 +0000 (06:29 -0700)]
perldelta for
186a5ba82d58
This entry is only for the user-visible changes.
Lukas Mai [Tue, 19 Jun 2012 13:03:19 +0000 (15:03 +0200)]
remove bogus $remainder variable from perlfunc/split
As reported by Anša Vernerová:
| Calling the third argument $remainer is simply wrong - the remainder is
| the fourth argument, which is not assigned to anything.
David Mitchell [Mon, 18 Jun 2012 21:40:25 +0000 (22:40 +0100)]
overloading: make qr fallback to "" better
With the re_eval jumbo fix, the behaviour of overloaded objects in
runtime patterns, such /^$overloaded/ has changed, such that the stringify
overload ("") no longer avoids the need for 'use re "eval"': for example,
use overload "" => sub { qr/(??{1})/ }
my $o = bless [];
"1" =~ /^$o/;
works in 5.16.0, but dies with "Eval-group not allowed" in blead.
Change this back to the former behaviour, such that if qr and concat
ops aren't overloaded, then use "" overloading, and if the return from
that is a qr object, extract any code blocks from it.
This is achieved by:
* moving the concat/stringify code ahead of the regex block extraction
code,
* making the overloaded stringify call be explicit (rather than
being invoked implicitly by sv_catsv()),
* looping to re-apply overloading to any object returned by "".
* applying those last two steps in the case of a single arg too
This is a partial fix for
[perl #113682] Bleadperl v5.17.0-424-gd24ca0c breaks
ABIGAIL/Regexp-Common-
2011121001.tar.gz
Nicholas Clark [Wed, 28 Mar 2012 15:15:15 +0000 (17:15 +0200)]
In cflags.SH trim the case statement of file basenames.
Add examples showing how to use cflags.SH to tweak the compiler flags used
for individual object files.
Previously cflags.SH contained a somewhat stale pre-canned list of file
basenames including removed files such as usersub (deleted before 5.000
shipped), and a partial list of 5.000 XS extensions. Whilst it's possible
to generate the correct list in cflags by parsing MANIFEST (and adding a few
fixups), it's still not actually *useful*, as cflags gets overwritten as
soon as config.sh changes. Hence the most end-user useful solution with
minimal maintenance is to eliminate the list entirely, and document how the
user should add to it as necessary.
Nicholas Clark [Mon, 16 Apr 2012 05:51:49 +0000 (07:51 +0200)]
In pp_iter, handle end of range at IV_MAX without undefined behaviour.
The previous code assumed that incrementing a signed integer value wraps.
We're lucky that it has (so far), as it's undefined behaviour in C.
So refactor to code which doesn't assume anything.
Nicholas Clark [Mon, 18 Jun 2012 19:49:39 +0000 (21:49 +0200)]
In t/op/arith.t, tryeq_sloppy() wasn't correctly handling negative values.
The code was treating any negative value as "ok", rather than only those
within 1e-9 of the expected value. This bug has been present since
tryeq_sloppy() was added by commit
800e6488b45c59f1 in Oct 2001.
Jesse Luehrs [Tue, 19 Jun 2012 07:15:38 +0000 (02:15 -0500)]
this is already mentioned at the end (and that is more correct)
Jesse Luehrs [Tue, 19 Jun 2012 07:10:34 +0000 (02:10 -0500)]
remove some boilerplate
Jesse Luehrs [Tue, 19 Jun 2012 07:05:20 +0000 (02:05 -0500)]
todo