Add support for building with VC++ 2012

No code changes seem to be required, so it's just a matter of noting that
we've tried it, it works, and we'll support it :-)
Remove redundant NULL checks.

It's safe to pass NULLs to SvREFCNT_dec.
Collapse "if(a){b}else{b}" to "b"
Update podlators to CPAN version 2.5.0

  [DELTA]

2013-01-02  Russ Allbery  <rra@stanford.edu>

  * VERSION: podlators 2.5.0 released.

  * lib/Pod/Man.pm (guesswork): Extend a small-caps section through
  the punctuation that commonly appears in license disclaimers so
  that small caps isn't turned on and off at the boundaries of every
  word, producing unreadable *roff.
  * t/man.t: Test the updated small-caps behavior.

  * lib/Pod/Man.pm (new): Support a new errors option with values
  die, stderr, pod, and none.  Convert the stderr option to the
  errors option with value stderr.  (#39007)
  (end_document): Die if errors was set to die and there were POD
  syntax errors.
  * lib/Pod/Text.pm (new): Likewise.
  (end_document): Likewise.
  * scripts/pod2man: Support a new --errors option that sets the
  underlying errors formatter option and default to dying on POD
  syntax errors.
  * scripts/pod2text: Likewise.
  * t/man-options.t: Add support for catching exceptions during
  formatting.  Test valid and invalid errors settings.
  * t/text-options.t: Likewise.

  * lib/Pod/Man.pm (cmd_l): Add nourls option to suppress the URL
  from L<> formatting codes that contain anchor text.  (#62210)
  * lib/Pod/Text.pm (cmd_l): Likewise.
  * scripts/pod2man: New --nourls option to set the corresponding
  option in Pod::Man.
  * scripts/pod2text: Likewise for Pod::Text.
  * t/man-options.t: Test new nourls option.
  * t/text-options.t: Likewise.

  * lib/Pod/Man.pm (outindex): Also collapse consecutive whitespace
  in index term text.
  * t/man.t: Test for handling of index terms containing whitespace.

2013-01-02  Kevin Ryde  <user42@zip.com.au>

  * lib/Pod/Man.pm (outindex): Remove newlines from index term text
  since *roff quotes don't span lines.  (#82332)

2012-06-01  Russ Allbery  <rra@stanford.edu>

  * VERSION: podlators 2.4.2 released.

  * t/text-encoding.t: Remove the test of a POD document without an
  encoding.  We previously tested that this interpreted the document
  as ISO 8859-1, but Pod::Simple behavior has changed so that the
  test started failing, plus Pod::Simple now warns about a missing
  =encoding.  (#77553)
Regenerated customized.dat file due to pod2*.PL changes
make m?$pat? match only once under ithreads

[perl #115080]

m?...? is only supposed to match once, until reset. Normally this is done
by setting the PMf_USED flag on the PMOP. Under ithreads we can't modify
ops, so instead we indicate by setting the regex's SV to readonly. (This
is a bit of a hack: the flag should be associated with the PMOP, not the
regex).

This breaks with run-time regexes when the pattern gets recompiled; for
example:

    for my $c (qw(a b c)) {
	print "matched $c\n" if $c =~ m?^$c$?;
    }

outputs

    matched a

on unthreaded, but

    matched a
    matched b
    matched c

on threaded.

The re_eval jumbo fix made this more noticeable by sometimes recompiling
even when the pattern text hasn't changed (to make closures work ok).

The quick fix is to propagate the readonlyness of the old re to the new
re. (The proper fix would be to store the flag state in a pad slot
associated with the PMOP).
Needless to say, I've gone for the quick fix.
Fix SvREFCNT_dec doc typo
charnames pod: Typo, clarification
charnames: comment, error message clarifications
charnames: Enforce better file name rules

The code says that identifier syntax is required for a file name, but
the code accepted any sequence of \w's.
charnames: :alias alone implies :full

The documentation says this is how it should behave, but only 1 of the
three paths in the code did it, and in fact there was a test to the
contrary.

I'm only adding a test for one of the two fixed paths, as the other one
appears to require a weird file name.
charnames: Deprecate character names with spacing issues

A user-defined character name with trailing or multiple spaces in a row
is likely a typo, and hence likely won't match what the other uses of
it.  These names also won't work if we extend :loose to these.  This
now generates a warning.
t/op/fork.t: Add description for one special test.
t/op/pow.t: Add descriptions for tests lacking them.

Those which were still lacking descriptions were all testing that
exponentiation has precedence over negation.
t/op/pwent.t: Add descriptions for all tests.
t/op/pos.t: Provide descriptions for remaining tests lacking them.
t/op/or.t: Provide descriptions for tests lacking them.
t/op/oct.t: Add descriptions to tests lacking them.
Add parens around second argument to tests 4 and 5.

If a description were to be added to these tests, in the absence of
parentheses the scalar prototype of CORE::not would enforce a scalar context
onto the balance of the statement, leading to apparently anomalous behavior,
viz., the descriptions would not be printed and test 5 would be reported to
FAIL.
t/op/not.t: Add descriptions to all tests.

Also, add note() before tests 4 and 5 explaining rationale for addition of
parentheses to second arguments.