Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Feb 25, 2015
  1. remove dependency on constant

    internal DEBUG, XHTML_DTD and EBCDIC constants changes to variables
    $_DEBUG, $_XHTML_DTD, and $_EBCDIC
Commits on Feb 23, 2015
  1. ref #167 - add change to Changes

    prep Changes for next release, forecasting start of April giving
    the DEV release with AUTOLOAD removal at least 6 weeks to move
    through cpantesters, et al
  2. Merge pull request #167 from xblitz/multi_param_standa

    include multi_param in :cgi bulk export/import
Commits on Feb 20, 2015
  1. Marpa::HTML has been superseded by Marpa::R2::HTML

    add a couple of other alternatives to CGI::Pretty
Commits on Feb 16, 2015
  1. fix podchecker errors

    extraneous back leftover from previous deletions
Commits on Feb 13, 2015
  1. remove README.pod as we now have CGI.pod

    update Makefile.PL to make sure the abstract and version are got
    from the correct place
  2. ref #162, #164 - some edge case testing and docs

    there are some tags with none standard names (casing so possibly
    incorrect) that we need to generate in the _all_html_tags back
    compat function.
    also remove and document removal of the -any pragma since this is
    a bad idea (bugs waiting to happen). searching code on CPAN and
    github shows nothing using it so this is going to be on the very
    edge case of usage
    update POD to remove references to auto generated functions and
    the various no longer supported pragmas
    Squashed commit of the following:
    commit 7d362b2bf8b725c014f3df0922c772e4a9cfbed8
    Author: Lee Johnson <>
    Date:   Fri Feb 13 08:56:16 2015 +0100
        Changes and VERSION bump for CPAN DEV release
    commit 4e8b2d6fe59fd4673b7251935313aa5e736c19ad
    Author: Lee Johnson <>
    Date:   Fri Feb 13 08:48:02 2015 +0100
        increase test coverage and cleanup POD
        with regards to the removal of AUTOLOAD we lose the -any pragma and
        the *foo pragma
    commit 477c41d
    Author: Stuart A Johnston <>
    Date:   Thu Feb 12 16:56:58 2015 -0500
        Need to skip start/end_html tests since they are custom
    commit 8a7715e
    Author: Stuart A Johnston <>
    Date:   Thu Feb 12 16:37:03 2015 -0500
        Add missing html funcs
    commit 9733f89
    Author: Stuart A Johnston <>
    Date:   Thu Feb 12 16:35:46 2015 -0500
        Check for specific error - save_parameters dies without a param
    commit 20f4076
    Author: Stuart A Johnston <>
    Date:   Thu Feb 12 14:16:31 2015 -0500
        Added test to check that all exported HTML tag functions are defined
Commits on Feb 12, 2015
  1. AUTOLOAD optimisation was added 20 years ago

    a bit of digging reveals the AUTOLOAD function and lazy-loading was
    added to between v2.13 (12/1995) and v2.20 (05/1996), so i'm
    going to say that corresponds to 20 years ago
  2. ref #162 - back compatibility functions + test

    in removing AUTOLOAD we need to check that the necessary back compat
    methods are still available to ensure no (or minimal) breakage. to
    do this t/html_functions.t has been added that both uses the
    -compile pragma and ->compile function and also checks a function
    (a()) is imported into the test's namespace.
    the test was run against the version of the module prior to the
    removal of AUTOLOAD and then the unnecessary functions were removed
    from the _all_html_tags() function in
    bump VERSION to dev release, document Changes
Commits on Jan 22, 2015
  1. ref #137 - split out POD into separate file

    add README.pod (link to lib/CGI.pod) and add that to MANIFEST
  2. Merge branch 'master' into gh/162_remove_autoload

  3. resolve #137 - split out POD into separate file

    makes working with a bit easier and should mean i can start
    gutting the documentation
Commits on Dec 19, 2014
  1. ref #162 make dependencies runtime rather than compile time

    specifically CGI::File::Temp and HTML::Entities - this offsets the
    approx 0.03s extra it takes to compile the module due to the removal
    of the AUTOLOAD functionality[1]:
    	current master:
    	> time perl -MCGI -e1
    	real    0m0.040s
    	AUTOLOAD removed:
    	> time perl -Ilib -MCGI -e1
    	real    0m0.070s
    	AUTOLOAD removed and this change:
    	> time perl -Ilib -MCGI -e1
    	real    0m0.039s
    some users are rather vocal about a compile time difference of +0.05s[2]
    so this change aims to appease them. frankly if +0.05s on compile time
    makes that big a difference to you then perhaps you should re-evaluate
    using CGI in a none-persistent environment?
    [1] profiling with Devel::NYTProf shows the same timings, and more
    interestingly shows that (as expected) *every single* subroutine call
    made to or in the CGI package goes through AUTOLOAD and _compile, and
    that has overhead - looking at Devel::NYTProf we can optimise the
    _make_tag_func out into something that is built at compile time and
    not have the function built everytime the tag function is called.
    this cleans up the code significantly
    [2] #162 (comment)
Commits on Dec 18, 2014
  1. restore EBCDIC character mapping

    changed in the sed command used to change VERSION in last commit
    (really need to move to better dist manager to handle this). note
    to self: 1) check diffs before releasing, 2) deprecate EBCDIC code
    bump version and Changes
  2. ref #162 - deprecate CGI::Pretty module

    for now we just warn on import, eventually this module is going to
    be removed (or just be an empty shell that will use parent CGI to
    get at the html functions for back compat).
    bump version and Changes
Commits on Dec 17, 2014
  1. script to get downstream deps on CGI

    we can also use
  2. resolve #137, #162 - split out POD, kill AUTOLOAD

    to keep back compatibility we have to auto-generate all the html tag
    functions. this change also deprecated CGI::Pretty as it was doing
    magic with its own AUTOLOAD function and i'm not interested in the
    continued maintenance of this module, alternatives are suggested in
    the POD
    split out POD into CGI.pod to cut the module size in half so
    it's easier to work with
    this changes needs significant testing, since the test coverage for
    the html tag functions isn't comprehensive (we can delete lots of
    the tags from the _all_html_tags method with no test failures)
    some users of maybe relying (without realising) on AUTOLOAD
    functionality catching bugs in their code, or they may have code
    that relies on AUTOLOAD in other ways - if they are then this change
    will break their code.
Commits on Dec 16, 2014
  1. WIP: #162 - purge all the AUTOLOAD optimisation

    but there's a problem - html tag functions are auto generated so we
    might be missing a few here. needs more tests, not confident we can
    just purge all this code without introducing bugs and/or breaking
    back compatibility for some users. also the t/pretty.t test is now
    failing (TODO: investigate)
    N.B. should this branch ever be merged it should be squashed due to
    the failing test in this commit
Commits on Dec 4, 2014
  1. Merge pull request #160 from nanis/nanis-fix-t-rt-84767

    t\rt-84767.t fails with MSVC built perl due to dir separator
Commits on Dec 3, 2014
  1. resolve #159 - BUILD_REQUIRES -> TEST_REQUIRES

    in Makefile.PL as these are test requirements by the dist and not
    build requirements so the resultant meta json files were incorrect
    and probably causing more dependencies to be pulled in than should
    Changes, version bump for CPAN release
Commits on Dec 1, 2014
  1. resolve #156 - replace remaining indirect object notation

    new CGI becomes CGI->new in any examples/tests/documentation that
    are using it as indirect object notation has been considered bad
    practice for a long time now
  2. resolve #157 - use HTML::Entities for escapeHTML

    and unescapeHTML. update documentation to explain that this is now
    what the module does so you should just bypass escapeHTML and call
    HTML::Entities instead
Commits on Nov 30, 2014
  1. bump to 4.10_01 dev release for recent changes

    going out to cpantesters, to release once confident no regressions
  2. Merge pull request #158 from msmeissn/master

    sort html output
Commits on Nov 27, 2014
Commits on Nov 26, 2014
Commits on Nov 25, 2014
  1. resolve #155 - fix hash key ordering bugs in rearrange

    bump version, document Changes, add some missing tests to the MANIFEST
    Squashed commit of the following:
    commit a68157b
    Author: Lee Johnson <>
    Date:   Tue Nov 25 21:52:33 2014 +0100
        sort keys in the _rearrange_params method
        and favour certain keys other others when a param can have several
        options. for example:
        	[ 'BAR','FOO','BAZ' ]
        will be sorted alphabetically, but should we want to 'FOO' to always
        be favoured over any other option if it is provided then we need to
        add it to the regexp in the sort of the keys so when a user passes
        	-foo => 1
        	-baz => 2
        	-bar => 3
        then -foo will be taken as the canonical option, but if -foo is not
        passed in then we sort the options alphabetically meaning the -bar
        option would be taken
        this is relevant for the [ 'TYPE','CONTENT_TYPE','CONTENT-TYPE' ]
        set of params as passing through both -type and -content-type and
        additionally -charset leads to hash key ordering bugs meaning the
        Content-Type output in header is inconsistent. ref: GH #155
    commit 18a10cb
    Author: Lee Johnson <>
    Date:   Tue Nov 25 15:17:00 2014 +0100
        failing test case(s) for #155 - rearrange hash key ordering bugs
        if i push this branch out it should fail on the travis CA server,
        lets see if that happens...
        it would seem there are still hash key ordering bugs when it comes
        to calling the rearrange function in CGI::Util as passing a hash
        through to the header method, with all three possible arguments for
        the content type:
        	'-charset' => 'UTF-8',
        	'-type' => 'text/html',
        	'-content-type' => 'text/html; charset=iso-8859-1',
        shows an inconsistent output for the Content-Type header. ideally
        you shouldn't do that, but when you do *we* should be consistent in
        what we output.
        TODO: fix and squash merge
Commits on Nov 21, 2014
  1. rational -> rationale in perldoc

Commits on Oct 21, 2014
  1. resolve #154 - fix temp file handling for multiple part uploads

    concatenate the name of the file (be it POSTDATA, PUTDATA, or the
    name defined as part of the upload, or if not present the actual
    file name on disk) into the hash key to ensure we get one entry in
    .tmpfiles per actual file and don't overwrite any existing entries
    in the hash with others. thanks to GeJ for the test case
    dump version and Changes
  2. resolve #152 - path_info corrections for IIS

    the perldoc in the module actually states that IIS is broken (or
    we are broken with IIS, whatever) but make an attempt to DTRT when
    path_info / url is called when running under that web server
    thanks to SuneKarlsson
Commits on Oct 20, 2014
  1. fix travis badge url

Commits on Oct 18, 2014
  1. resolve #149 - multi_param() method

    allows you to call param() in list context without a warning being
    raised by the module. update documentation to make it clear that
    this method is an addition and back compatibility remains although
    a warning *will* be raised if param() is called in list context from
    user code
    bump version and update Changes to explain that all existing issues
    have been cleared so testing of the module is advised before an
    upgrade to version 4.00 and above
Commits on Oct 17, 2014
  1. resolve #126 [ #89827] - fix url PATH_INFO

    substitution logic to not remove PATH_INFO if it is the same as
    SCRIPT_NAME as some webservers (IIS) sometimes set PATH_INFO to
    the same value as SCRIPT_NAME
Something went wrong with that request. Please try again.