diff --git a/.perlcriticrc b/.perlcriticrc index 5ac43c32..b333eb14 100644 --- a/.perlcriticrc +++ b/.perlcriticrc @@ -822,7 +822,7 @@ packages = via|[A-Z][a-z0-9_]* subroutines = :all_lower # Subroutine names that are exempt from capitalization rules. The values here are regexes that will be surrounded by \A and \z. -subroutine_exemptions = AUTOLOAD BUILD BUILDARGS CLEAR CLOSE DELETE DEMOLISH DESTROY EXISTS EXTEND FETCH FETCHSIZE FIRSTKEY GETC NEXTKEY POP PRINT PRINTF PUSH READ READLINE SCALAR SHIFT SPLICE STORE STORESIZE TIEARRAY TIEHANDLE TIEHASH TIESCALAR UNSHIFT UNTIE PUSHED OPEN WRITE CXT LOG CFG TRC +subroutine_exemptions = AUTOLOAD BUILD BUILDARGS CLEAR CLOSE DELETE DEMOLISH DESTROY EXISTS EXTEND FETCH FETCHSIZE FIRSTKEY GETC NEXTKEY POP PRINT PRINTF PUSH READ READLINE SCALAR SHIFT SPLICE STORE STORESIZE TIEARRAY TIEHANDLE TIEHASH TIESCALAR UNSHIFT UNTIE PUSHED OPEN WRITE CTX LOG CFG TRC # How local lexical variables names should be capitalized. Valid values are :single_case, :all_lower, :all_upper, :starts_with_lower, :starts_with_upper, :no_restriction, or a regex. local_lexical_variables = :all_lower diff --git a/Changes b/Changes index 99eb6d46..093adebd 100644 --- a/Changes +++ b/Changes @@ -7,7 +7,7 @@ Devel::Cover history - Test with DBM::Deep on CI 1.43 - 8 June 2024 - - Bump coancover version requirements to 5.38 + - Bump cpancover version requirements to 5.38 - Format cpancover and Cover::Collection - Format main documentation - Tidy dc script @@ -64,7 +64,7 @@ Devel::Cover history 1.34 - 16 May 2020 - Minimum supported version is now 5.10.0 (Karen Etheridge) (GH-226) - - Support 5.32 by accommodating signauture changes (GH-260) + - Support 5.32 by accommodating signature changes (GH-260) 1.33 - 26 April 2019 - Fix pod error (Mohammad S Anwar) (GH-240) @@ -75,7 +75,7 @@ Devel::Cover history 1.32 - 25 April 2019 - Test up to 5.26.3, 5.28.3 and 5.29.10 - - Get dev environment working on MacOS + - Get dev environment working on macOS - Fix up tests with recent Math::BigInt versions (Ed J) (GH-219) - Add progress text when processing coverage (Christian Walde) (GH-221) - Optionally use Term::Size (Paul "LeoNerd" Evans) (GH-228) @@ -199,7 +199,7 @@ Devel::Cover history - Round percentages down in summary and reports (also fixes Windows tests) 1.12 - 17 April 2014 - - Fix test failure on OSX, FreeBSD and HPUX (thanks H.Merijn Brand) + - Fix test failure on OS X, FreeBSD and HPUX (thanks H.Merijn Brand) 1.11 - 13 April 2014 - Tests should pass when all run in parallel (Kent Fredric) (GH-69) @@ -246,7 +246,7 @@ Devel::Cover history - Add DEVEL_COVER_NO_TESTS option to not run any tests during p5cover 1.04 - 1 June 2013 - - Fix return code from cover (Kan Fushihara) (guthub 61) + - Fix return code from cover (Kan Fushihara) (GH-61) - Fix pod coverage for multiple packages in a file. (RT-34888) - Speed improvements @@ -254,7 +254,7 @@ Devel::Cover history - Fixes for correct operation with 5.17.11, 5.18.0 and 5.19.0 1.02 - 28 April 2013 - - Make -silent even quieter (Sergiy Borodych) (guthub 49) + - Make -silent even quieter (Sergiy Borodych) (GH-49) - mod_perl2 on Debian sets $^X to apache2 (Lasse Makholm) (GH-47) - Add csv file for use with metacpan (Dinis Rebolo) (GH-56) - cover -test exists with the status of the underlying test run (Kan Fushihara) @@ -394,7 +394,7 @@ Devel::Cover history 0.79 - 5th August 2011 - Test against 5.12.4, 5.14.1, 5.15.0 and 5.15.1 - - Fix inc_sub test failures dependant on whether JSON:PP was installed + - Fix inc_sub test failures dependent on whether JSON:PP was installed 0.78 - 17th May 2011 - Fix up test quoting to work with Windows too @@ -438,7 +438,7 @@ Devel::Cover history 0.72 - 27th September 2010 - Teach cpancover how to work in parallel - Improve speed of check_file() (Goro Fuji) - - Fix errors with non-existent directories on Cygwin (Goro Fuji) + - Fix errors with nonexistent directories on Cygwin (Goro Fuji) - Improve self coverage with new test - Fix tests to work with 5.13.5 - New dependency on Test::Warn @@ -466,7 +466,7 @@ Devel::Cover history - Fix gcov2perl to work with large numbers (Thomas Dorner) (RT-45028) - Fix "gcov -l" include files (Thomas Dorner) (RT-44864) - Test against 5.12.1 - - Gross workaround for for regexp evals (Florian Ragwitz) + - Gross workaround for regexp evals (Florian Ragwitz) 0.67 - 8th May 2010 - Fix up the Makefile for dmake on Strawberry Perl (Curtis Jewell) (RT-50774) @@ -475,7 +475,7 @@ Devel::Cover history - Move to faster method of collecting data. Could be up to twice as fast now - Add -replace_ops options to be able to revert to previous collection method - Test against 5.12.0 and update tests as necessary - - Work better with non-existent databases + - Work better with nonexistent databases - XS fixes related to overriding ops rather than replacing runops (Florian Ragwitz) - Don't chmod created directories (mkdir should suffice) @@ -586,7 +586,7 @@ Devel::Cover history 0.55 - 22nd September 2005 - Add -gcov option to cover and make it default when using gcc - - Remolve unused File::Find from cpancover + - Remove unused File::Find from cpancover - Document how to get XS coverage in gcov2perl - Improvements to SVK annotation (Chia-liang Kao) @@ -758,7 +758,7 @@ Devel::Cover history - Add trivial, md5 and module_no_inc tests - Increase flexibility of testing system to accommodate md5 test - Add mani, all_gold and all_test Makefile targets - - Make all_versions skip non-existent platforms + - Make all_versions skip nonexistent platforms - Add DB option to make dump target - Remove dependencies on op_seq. (I removed it from bleadperl.) Use op_targ instead @@ -894,7 +894,7 @@ Devel::Cover history - Reinstate coverage of subs in main:: which got lost somewhere (0.11?) - Bug fixes for use of uninitialised values - Automatically generate tests. Well, their infrastructure anyway - - Move Cover to lib/Devel/Cover to keep case insensitive filesystems happy + - Move Cover to lib/Devel/Cover to keep case-insensitive filesystems happy - Remove -detail option. (It belongs to cover.) - Work on op addresses and sequence numbers instead of just op addresses, to be (almost) unique diff --git a/Cover.xs b/Cover.xs index 3cecd407..b2867520 100644 --- a/Cover.xs +++ b/Cover.xs @@ -4,7 +4,7 @@ * This software is free. It is licensed under the same terms as Perl itself. * * The latest version of this software should be available from my homepage: - * http://www.pjcj.net + * https://pjcj.net * */ @@ -27,23 +27,23 @@ extern "C" { #define CALLOP *PL_op #endif -#ifndef START_MY_CXT +#ifndef START_MY_CTX /* No threads in 5.6 */ -#define START_MY_CXT static my_cxt_t my_cxt; -#define dMY_CXT_SV dNOOP -#define dMY_CXT dNOOP -#define MY_CXT_INIT NOOP -#define MY_CXT my_cxt - -#define pMY_CXT void -#define pMY_CXT_ -#define _pMY_CXT -#define aMY_CXT -#define aMY_CXT_ -#define _aMY_CXT +#define START_MY_CTX static my_ctx_t my_ctx; +#define dMY_CTX_SV dNOOP +#define dMY_CTX dNOOP +#define MY_CTX_INIT NOOP +#define MY_CTX my_ctx + +#define pMY_CTX void +#define pMY_CTX_ +#define _pMY_CTX +#define aMY_CTX +#define aMY_CTX_ +#define _aMY_CTX #endif -#define MY_CXT_KEY "Devel::Cover::_guts" XS_VERSION +#define MY_CTX_KEY "Devel::Cover::_guts" XS_VERSION #define PDEB(a) a #define NDEB(a) ; @@ -102,7 +102,7 @@ typedef struct { #else OP *(*ppaddr[MAXO])(pTHX); #endif -} my_cxt_t; +} my_ctx_t; #ifdef USE_ITHREADS static perl_mutex DC_mutex; @@ -112,9 +112,9 @@ static HV *Pending_conditionals, *Return_ops; static int tid; -START_MY_CXT +START_MY_CTX -#define collecting(criterion) (MY_CXT.covering & (criterion)) +#define collecting(criterion) (MY_CTX.covering & (criterion)) #ifdef HAS_GETTIMEOFDAY @@ -199,7 +199,7 @@ static int cpu() { #endif /* HAS_GETTIMEOFDAY */ /* - * http://codereview.stackexchange.com/questions/85556/simple-string-hashing-algorithm-implementation + * https://codereview.stackexchange.com/questions/85556/simple-string-hashing-algorithm-implementation * https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function * http://www.isthe.com/chongo/tech/comp/fnv/index.html#public_domain * @@ -282,7 +282,7 @@ static void set_firsts_if_needed(pTHX) { } static int check_if_collecting(pTHX_ COP *cop) { - dMY_CXT; + dMY_CTX; #if !NO_TAINT_SUPPORT int tainted = PL_tainted; @@ -290,19 +290,19 @@ static int check_if_collecting(pTHX_ COP *cop) { char *file = CopFILE(cop); int in_re_eval = strnEQ(file, "(reeval ", 8); NDEB(D(L, "check_if_collecting at: %s:%ld\n", file, (long)CopLINE(cop))); - if (file && strNE(SvPV_nolen(MY_CXT.lastfile), file)) { + if (file && strNE(SvPV_nolen(MY_CTX.lastfile), file)) { int found = 0; - if (MY_CXT.files) { - SV **f = hv_fetch(MY_CXT.files, file, strlen(file), 0); + if (MY_CTX.files) { + SV **f = hv_fetch(MY_CTX.files, file, strlen(file), 0); if (f) { - MY_CXT.collecting_here = SvIV(*f); + MY_CTX.collecting_here = SvIV(*f); found = 1; NDEB(D(L, "File: %s:%ld [%d]\n", - file, (long)CopLINE(cop), MY_CXT.collecting_here)); + file, (long)CopLINE(cop), MY_CTX.collecting_here)); } } - if (!found && MY_CXT.replace_ops && !in_re_eval) { + if (!found && MY_CTX.replace_ops && !in_re_eval) { dSP; int count; SV *rv; @@ -322,32 +322,32 @@ static int check_if_collecting(pTHX_ COP *cop) { croak("use_file returned %d values\n", count); rv = POPs; - MY_CXT.collecting_here = SvTRUE(rv) ? 1 : 0; + MY_CTX.collecting_here = SvTRUE(rv) ? 1 : 0; - NDEB(D(L, "-- %s - %d\n", file, MY_CXT.collecting_here)); + NDEB(D(L, "-- %s - %d\n", file, MY_CTX.collecting_here)); PUTBACK; FREETMPS; LEAVE; } - sv_setpv(MY_CXT.lastfile, file); + sv_setpv(MY_CTX.lastfile, file); } NDEB(D(L, "%s - %d\n", - SvPV_nolen(MY_CXT.lastfile), MY_CXT.collecting_here)); + SvPV_nolen(MY_CTX.lastfile), MY_CTX.collecting_here)); #if PERL_VERSION > 6 - if (SvTRUE(MY_CXT.module)) { + if (SvTRUE(MY_CTX.module)) { STRLEN mlen, flen = strlen(file); - char *m = SvPV(MY_CXT.module, mlen); + char *m = SvPV(MY_CTX.module, mlen); if (flen >= mlen && strnEQ(m, file + flen - mlen, mlen)) { - SV **dir = hv_fetch(MY_CXT.modules, file, strlen(file), 1); + SV **dir = hv_fetch(MY_CTX.modules, file, strlen(file), 1); if (!SvROK(*dir)) { SV *cwd = newSV(0); AV *d = newAV(); *dir = newRV_inc((SV*) d); - av_push(d, newSVsv(MY_CXT.module)); + av_push(d, newSVsv(MY_CTX.module)); if (getcwd_sv(cwd)) { av_push(d, newSVsv(cwd)); NDEB(D(L, "require %s as %s from %s\n", @@ -355,7 +355,7 @@ static int check_if_collecting(pTHX_ COP *cop) { } } } - sv_setpv(MY_CXT.module, ""); + sv_setpv(MY_CTX.module, ""); set_firsts_if_needed(aTHX); } #endif @@ -363,27 +363,27 @@ static int check_if_collecting(pTHX_ COP *cop) { #if !NO_TAINT_SUPPORT PL_tainted = tainted; #endif - return MY_CXT.collecting_here; + return MY_CTX.collecting_here; } #if CAN_PROFILE static void cover_time(pTHX) { - dMY_CXT; + dMY_CTX; SV **count; NV c; if (collecting(Time)) { /* - * Profiling information is stored against MY_CXT.profiling_key, + * Profiling information is stored against MY_CTX.profiling_key, * the key for the op we have just run */ NDEB(D(L, "Cop at %p, op at %p\n", PL_curcop, PL_op)); - if (MY_CXT.profiling_key_valid) { - count = hv_fetch(MY_CXT.times, MY_CXT.profiling_key, KEY_SZ, 1); + if (MY_CTX.profiling_key_valid) { + count = hv_fetch(MY_CTX.times, MY_CTX.profiling_key, KEY_SZ, 1); c = (SvTRUE(*count) ? SvNV(*count) : 0) + #if defined HAS_GETTIMEOFDAY elapsed(); @@ -393,10 +393,10 @@ static void cover_time(pTHX) sv_setnv(*count, c); } if (PL_op) { - memcpy(MY_CXT.profiling_key, get_key(PL_op), KEY_SZ); - MY_CXT.profiling_key_valid = 1; + memcpy(MY_CTX.profiling_key, get_key(PL_op), KEY_SZ); + MY_CTX.profiling_key_valid = 1; } else { - MY_CXT.profiling_key_valid = 0; + MY_CTX.profiling_key_valid = 0; } } } @@ -404,24 +404,24 @@ static void cover_time(pTHX) #endif static int collecting_here(pTHX) { - dMY_CXT; + dMY_CTX; - if (MY_CXT.collecting_here) return 1; + if (MY_CTX.collecting_here) return 1; #if CAN_PROFILE cover_time(aTHX); - MY_CXT.profiling_key_valid = 0; + MY_CTX.profiling_key_valid = 0; #endif NDEB(D(L, "op %p is %s\n", PL_op, OP_NAME(PL_op))); if (hv_exists(Return_ops, get_key(PL_op), KEY_SZ)) - return MY_CXT.collecting_here = 1; + return MY_CTX.collecting_here = 1; else return 0; } static void store_return(pTHX) { - dMY_CXT; + dMY_CTX; /* * If we are jumping somewhere we might not be collecting @@ -431,19 +431,19 @@ static void store_return(pTHX) { * sub may call back to a collecting sub. */ - if (MY_CXT.collecting_here && PL_op->op_next) { + if (MY_CTX.collecting_here && PL_op->op_next) { (void)hv_fetch(Return_ops, get_key(PL_op->op_next), KEY_SZ, 1); NDEB(D(L, "adding return op %p\n", PL_op->op_next)); } } static void store_module(pTHX) { - dMY_CXT; + dMY_CTX; dSP; #if PERL_VERSION > 8 - SvSetSV_nosteal(MY_CXT.module, (SV*)newSVpv(SvPV_nolen(TOPs), 0)); - NDEB(D(L, "require %s\n", SvPV_nolen(MY_CXT.module))); + SvSetSV_nosteal(MY_CTX.module, (SV*)newSVpv(SvPV_nolen(TOPs), 0)); + NDEB(D(L, "require %s\n", SvPV_nolen(MY_CTX.module))); #endif } @@ -455,7 +455,7 @@ static void call_report(pTHX) { } static void cover_statement(pTHX_ OP *op) { - dMY_CXT; + dMY_CTX; char *ch; SV **count; @@ -464,7 +464,7 @@ static void cover_statement(pTHX_ OP *op) { if (!collecting(Statement)) return; ch = get_key(op); - count = hv_fetch(MY_CXT.statements, ch, KEY_SZ, 1); + count = hv_fetch(MY_CTX.statements, ch, KEY_SZ, 1); c = SvTRUE(*count) ? SvIV(*count) + 1 : 1; NDEB(D(L, "Statement: %s:%ld\n", CopFILE(cCOPx(op)), (long)CopLINE(cCOPx(op)))); @@ -482,12 +482,12 @@ static void cover_current_statement(pTHX) { } static void add_branch(pTHX_ OP *op, int br) { - dMY_CXT; + dMY_CTX; AV *branches; SV **count; int c; - SV **tmp = hv_fetch(MY_CXT.branches, get_key(op), KEY_SZ, 1); + SV **tmp = hv_fetch(MY_CTX.branches, get_key(op), KEY_SZ, 1); if (SvROK(*tmp)) { branches = (AV *) SvRV(*tmp); @@ -503,10 +503,10 @@ static void add_branch(pTHX_ OP *op, int br) { } static AV *get_conditional_array(pTHX_ OP *op) { - dMY_CXT; + dMY_CTX; AV *conds; - SV **cref = hv_fetch(MY_CXT.conditions, get_key(op), KEY_SZ, 1); + SV **cref = hv_fetch(MY_CTX.conditions, get_key(op), KEY_SZ, 1); if (SvROK(*cref)) conds = (AV *) SvRV(*cref); @@ -542,7 +542,7 @@ static void add_conditional(pTHX_ OP *op, int cond) { #ifdef USE_ITHREADS static AV *get_conds(pTHX_ AV *conds) { - dMY_CXT; + dMY_CTX; AV *thrconds; HV *threads; @@ -559,7 +559,7 @@ static AV *get_conds(pTHX_ AV *conds) { av_store(conds, 2, (SV *)threads); } - tid = newSViv(MY_CXT.tid); + tid = newSViv(MY_CTX.tid); t = SvPV_nolen(tid); cref = hv_fetch(threads, t, strlen(t), 1); @@ -758,7 +758,7 @@ static void finalise_conditions(pTHX) { static void cover_cond(pTHX) { - dMY_CXT; + dMY_CTX; if (collecting(Branch)) { dSP; int val = SvTRUE(TOPs); @@ -797,7 +797,7 @@ static void cover_logop(pTHX) { * about a number of conditions. */ - dMY_CXT; + dMY_CTX; NDEB(D(L, "logop() at %p\n", PL_op)); NDEB(op_dump(PL_op)); @@ -965,7 +965,7 @@ static void cover_logop(pTHX) { * Mark other OP_NEXTSTATE inside the original sequence of statements. */ static void cover_padrange(pTHX) { - dMY_CXT; + dMY_CTX; OP *next, *orig; if (!collecting(Statement)) return; @@ -987,135 +987,135 @@ static void cover_padrange(pTHX) { } static OP *dc_padrange(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_padrange() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering) cover_padrange(aTHX); - return MY_CXT.ppaddr[OP_PADRANGE](aTHX); + if (MY_CTX.covering) cover_padrange(aTHX); + return MY_CTX.ppaddr[OP_PADRANGE](aTHX); } #endif static OP *dc_nextstate(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "dc_nextstate() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering) check_if_collecting(aTHX_ cCOP); + if (MY_CTX.covering) check_if_collecting(aTHX_ cCOP); if (collecting_here(aTHX)) cover_current_statement(aTHX); - return MY_CXT.ppaddr[OP_NEXTSTATE](aTHX); + return MY_CTX.ppaddr[OP_NEXTSTATE](aTHX); } #if PERL_VERSION <= 10 static OP *dc_setstate(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "dc_setstate() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering) check_if_collecting(aTHX_ cCOP); + if (MY_CTX.covering) check_if_collecting(aTHX_ cCOP); if (collecting_here(aTHX)) cover_current_statement(aTHX); - return MY_CXT.ppaddr[OP_SETSTATE](aTHX); + return MY_CTX.ppaddr[OP_SETSTATE](aTHX); } #endif static OP *dc_dbstate(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "dc_dbstate() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering) check_if_collecting(aTHX_ cCOP); + if (MY_CTX.covering) check_if_collecting(aTHX_ cCOP); if (collecting_here(aTHX)) cover_current_statement(aTHX); - return MY_CXT.ppaddr[OP_DBSTATE](aTHX); + return MY_CTX.ppaddr[OP_DBSTATE](aTHX); } static OP *dc_entersub(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "dc_entersub() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering) store_return(aTHX); - return MY_CXT.ppaddr[OP_ENTERSUB](aTHX); + if (MY_CTX.covering) store_return(aTHX); + return MY_CTX.ppaddr[OP_ENTERSUB](aTHX); } static OP *dc_cond_expr(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_cond_expr() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_cond(aTHX); - return MY_CXT.ppaddr[OP_COND_EXPR](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_cond(aTHX); + return MY_CTX.ppaddr[OP_COND_EXPR](aTHX); } static OP *dc_and(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "dc_and() at %p (%d)\n", PL_op, collecting_here(aTHX))); check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_and() at %p (%d)\n", PL_curcop, collecting_here(aTHX))); NDEB(D(L, "PL_curcop: %s:%ld\n", CopFILE(PL_curcop), (long)CopLINE(PL_curcop))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_logop(aTHX); - return MY_CXT.ppaddr[OP_AND](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_logop(aTHX); + return MY_CTX.ppaddr[OP_AND](aTHX); } static OP *dc_andassign(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_andassign() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_logop(aTHX); - return MY_CXT.ppaddr[OP_ANDASSIGN](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_logop(aTHX); + return MY_CTX.ppaddr[OP_ANDASSIGN](aTHX); } static OP *dc_or(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_or() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_logop(aTHX); - return MY_CXT.ppaddr[OP_OR](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_logop(aTHX); + return MY_CTX.ppaddr[OP_OR](aTHX); } static OP *dc_orassign(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_orassign() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_logop(aTHX); - return MY_CXT.ppaddr[OP_ORASSIGN](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_logop(aTHX); + return MY_CTX.ppaddr[OP_ORASSIGN](aTHX); } #if PERL_VERSION > 8 static OP *dc_dor(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_dor() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_logop(aTHX); - return MY_CXT.ppaddr[OP_DOR](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_logop(aTHX); + return MY_CTX.ppaddr[OP_DOR](aTHX); } static OP *dc_dorassign(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_dorassign() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_logop(aTHX); - return MY_CXT.ppaddr[OP_DORASSIGN](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_logop(aTHX); + return MY_CTX.ppaddr[OP_DORASSIGN](aTHX); } #endif OP *dc_xor(pTHX) { - dMY_CXT; + dMY_CTX; check_if_collecting(aTHX_ PL_curcop); NDEB(D(L, "dc_xor() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) cover_logop(aTHX); - return MY_CXT.ppaddr[OP_XOR](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) cover_logop(aTHX); + return MY_CTX.ppaddr[OP_XOR](aTHX); } static OP *dc_require(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "dc_require() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) store_module(aTHX); - return MY_CXT.ppaddr[OP_REQUIRE](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) store_module(aTHX); + return MY_CTX.ppaddr[OP_REQUIRE](aTHX); } static OP *dc_exec(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "dc_exec() at %p (%d)\n", PL_op, collecting_here(aTHX))); - if (MY_CXT.covering && collecting_here(aTHX)) call_report(aTHX); - return MY_CXT.ppaddr[OP_EXEC](aTHX); + if (MY_CTX.covering && collecting_here(aTHX)) call_report(aTHX); + return MY_CTX.ppaddr[OP_EXEC](aTHX); } static void replace_ops (pTHX) { - dMY_CXT; + dMY_CTX; int i; NDEB(D(L, "initialising replace_ops\n")); for (i = 0; i < MAXO; i++) - MY_CXT.ppaddr[i] = PL_ppaddr[i]; + MY_CTX.ppaddr[i] = PL_ppaddr[i]; PL_ppaddr[OP_NEXTSTATE] = dc_nextstate; #if PERL_VERSION <= 10 @@ -1141,7 +1141,7 @@ static void replace_ops (pTHX) { } static void initialise(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "initialising\n")); @@ -1160,65 +1160,65 @@ static void initialise(pTHX) { } MUTEX_UNLOCK(&DC_mutex); - MY_CXT.collecting_here = 1; + MY_CTX.collecting_here = 1; - if (!MY_CXT.covering) { + if (!MY_CTX.covering) { /* TODO - this probably leaks all over the place */ SV **tmp; - MY_CXT.cover = newHV(); + MY_CTX.cover = newHV(); #ifdef USE_ITHREADS - HvSHAREKEYS_off(MY_CXT.cover); + HvSHAREKEYS_off(MY_CTX.cover); #endif - tmp = hv_fetch(MY_CXT.cover, "statement", 9, 1); - MY_CXT.statements = newHV(); - *tmp = newRV_inc((SV*) MY_CXT.statements); + tmp = hv_fetch(MY_CTX.cover, "statement", 9, 1); + MY_CTX.statements = newHV(); + *tmp = newRV_inc((SV*) MY_CTX.statements); - tmp = hv_fetch(MY_CXT.cover, "branch", 6, 1); - MY_CXT.branches = newHV(); - *tmp = newRV_inc((SV*) MY_CXT.branches); + tmp = hv_fetch(MY_CTX.cover, "branch", 6, 1); + MY_CTX.branches = newHV(); + *tmp = newRV_inc((SV*) MY_CTX.branches); - tmp = hv_fetch(MY_CXT.cover, "condition", 9, 1); - MY_CXT.conditions = newHV(); - *tmp = newRV_inc((SV*) MY_CXT.conditions); + tmp = hv_fetch(MY_CTX.cover, "condition", 9, 1); + MY_CTX.conditions = newHV(); + *tmp = newRV_inc((SV*) MY_CTX.conditions); #if CAN_PROFILE - tmp = hv_fetch(MY_CXT.cover, "time", 4, 1); - MY_CXT.times = newHV(); - *tmp = newRV_inc((SV*) MY_CXT.times); + tmp = hv_fetch(MY_CTX.cover, "time", 4, 1); + MY_CTX.times = newHV(); + *tmp = newRV_inc((SV*) MY_CTX.times); #endif - tmp = hv_fetch(MY_CXT.cover, "module", 6, 1); - MY_CXT.modules = newHV(); - *tmp = newRV_inc((SV*) MY_CXT.modules); + tmp = hv_fetch(MY_CTX.cover, "module", 6, 1); + MY_CTX.modules = newHV(); + *tmp = newRV_inc((SV*) MY_CTX.modules); - MY_CXT.files = get_hv("Devel::Cover::Files", FALSE); + MY_CTX.files = get_hv("Devel::Cover::Files", FALSE); #ifdef USE_ITHREADS - HvSHAREKEYS_off(MY_CXT.statements); - HvSHAREKEYS_off(MY_CXT.branches); - HvSHAREKEYS_off(MY_CXT.conditions); + HvSHAREKEYS_off(MY_CTX.statements); + HvSHAREKEYS_off(MY_CTX.branches); + HvSHAREKEYS_off(MY_CTX.conditions); #if CAN_PROFILE - HvSHAREKEYS_off(MY_CXT.times); + HvSHAREKEYS_off(MY_CTX.times); #endif - HvSHAREKEYS_off(MY_CXT.modules); + HvSHAREKEYS_off(MY_CTX.modules); #endif - MY_CXT.profiling_key_valid = 0; - MY_CXT.module = newSVpv("", 0); - MY_CXT.lastfile = newSVpvn("", 1); - MY_CXT.covering = All; - MY_CXT.tid = tid++; + MY_CTX.profiling_key_valid = 0; + MY_CTX.module = newSVpv("", 0); + MY_CTX.lastfile = newSVpvn("", 1); + MY_CTX.covering = All; + MY_CTX.tid = tid++; - MY_CXT.replace_ops = SvTRUE(get_sv("Devel::Cover::Replace_ops", FALSE)); - NDEB(D(L, "running with Replace_ops as %d\n", MY_CXT.replace_ops)); + MY_CTX.replace_ops = SvTRUE(get_sv("Devel::Cover::Replace_ops", FALSE)); + NDEB(D(L, "running with Replace_ops as %d\n", MY_CTX.replace_ops)); } } static int runops_cover(pTHX) { - dMY_CXT; + dMY_CTX; NDEB(D(L, "entering runops_cover\n")); @@ -1232,7 +1232,7 @@ static int runops_cover(pTHX) { NDEB(D(L, "running func %p from %p (%s)\n", PL_op->op_ppaddr, PL_op, OP_NAME(PL_op))); - if (!MY_CXT.covering) + if (!MY_CTX.covering) goto call_fptr; /* Nothing to collect when we've hijacked the ppaddr */ @@ -1320,7 +1320,7 @@ static int runops_cover(pTHX) { cover_time(aTHX); #endif - MY_CXT.collecting_here = 1; + MY_CTX.collecting_here = 1; NDEB(D(L, "exiting runops_cover\n")); @@ -1404,39 +1404,39 @@ void set_criteria(flag) unsigned flag PREINIT: - dMY_CXT; + dMY_CTX; PPCODE: - MY_CXT.covering = flag; + MY_CTX.covering = flag; /* fprintf(stderr, "Cover set to %d\n", flag); */ - if (MY_CXT.replace_ops) return; - PL_runops = MY_CXT.covering ? runops_cover : runops_orig; + if (MY_CTX.replace_ops) return; + PL_runops = MY_CTX.covering ? runops_cover : runops_orig; void add_criteria(flag) unsigned flag PREINIT: - dMY_CXT; + dMY_CTX; PPCODE: - MY_CXT.covering |= flag; - if (MY_CXT.replace_ops) return; - PL_runops = MY_CXT.covering ? runops_cover : runops_orig; + MY_CTX.covering |= flag; + if (MY_CTX.replace_ops) return; + PL_runops = MY_CTX.covering ? runops_cover : runops_orig; void remove_criteria(flag) unsigned flag PREINIT: - dMY_CXT; + dMY_CTX; PPCODE: - MY_CXT.covering &= ~flag; - if (MY_CXT.replace_ops) return; - PL_runops = MY_CXT.covering ? runops_cover : runops_orig; + MY_CTX.covering &= ~flag; + if (MY_CTX.replace_ops) return; + PL_runops = MY_CTX.covering ? runops_cover : runops_orig; unsigned get_criteria() PREINIT: - dMY_CXT; + dMY_CTX; CODE: - RETVAL = MY_CXT.covering; + RETVAL = MY_CTX.covering; OUTPUT: RETVAL @@ -1518,12 +1518,12 @@ SV * coverage(final) unsigned final PREINIT: - dMY_CXT; + dMY_CTX; CODE: NDEB(D(L, "Getting coverage %d\n", final)); if (final) finalise_conditions(aTHX); - if (MY_CXT.cover) - RETVAL = newRV_inc((SV*) MY_CXT.cover); + if (MY_CTX.cover) + RETVAL = newRV_inc((SV*) MY_CTX.cover); else RETVAL = &PL_sv_undef; OUTPUT: @@ -1546,53 +1546,53 @@ set_first_init_and_end() void collect_inits() PREINIT: - dMY_CXT; + dMY_CTX; PPCODE: int i; - if (!MY_CXT.ends) MY_CXT.ends = newAV(); - NDEB(svdump(MY_CXT.ends)); + if (!MY_CTX.ends) MY_CTX.ends = newAV(); + NDEB(svdump(MY_CTX.ends)); if (PL_initav) for (i = 0; i <= av_len(PL_initav); i++) { SV **cv = av_fetch(PL_initav, i, 0); SvREFCNT_inc(*cv); - av_push(MY_CXT.ends, *cv); + av_push(MY_CTX.ends, *cv); } void set_last_end() PREINIT: - dMY_CXT; + dMY_CTX; PPCODE: int i; SV *end = (SV *)get_cv("last_end", 0); av_push(PL_endav, end); NDEB(svdump(end)); - if (!MY_CXT.ends) MY_CXT.ends = newAV(); + if (!MY_CTX.ends) MY_CTX.ends = newAV(); if (PL_endav) for (i = 0; i <= av_len(PL_endav); i++) { SV **cv = av_fetch(PL_endav, i, 0); SvREFCNT_inc(*cv); - av_push(MY_CXT.ends, *cv); + av_push(MY_CTX.ends, *cv); } B::AV get_ends() PREINIT: - dMY_CXT; + dMY_CTX; CODE: - if (!MY_CXT.ends) MY_CXT.ends = newAV(); /* TODO: how? */ - RETVAL = MY_CXT.ends; + if (!MY_CTX.ends) MY_CTX.ends = newAV(); /* TODO: how? */ + RETVAL = MY_CTX.ends; OUTPUT: RETVAL BOOT: { - MY_CXT_INIT; + MY_CTX_INIT; #ifdef USE_ITHREADS MUTEX_INIT(&DC_mutex); #endif initialise(aTHX); - if (MY_CXT.replace_ops) { + if (MY_CTX.replace_ops) { replace_ops(aTHX); #if defined HAS_GETTIMEOFDAY elapsed(); diff --git a/Makefile.PL b/Makefile.PL index 0c449741..b6946739 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -5,7 +5,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net require 5.012000; @@ -40,7 +40,7 @@ print $i <<"EOI"; # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net # This file was automatically generated by Makefile.PL. @@ -109,7 +109,7 @@ for my $t (readdir $dir) { # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net use strict; use warnings; diff --git a/README.md b/README.md index 01e08377..38cd6b42 100644 --- a/README.md +++ b/README.md @@ -43,10 +43,10 @@ little testing and will probably be removed soon. You probably don't care about any of this. The most appropriate mailing list on which to discuss this module would be -[perl-qa](http://lists.perl.org/list/perl-qa.html). +[perl-qa](https://lists.perl.org/list/perl-qa.html). The Devel::Cover repository can be found on -[github](http://github.com/pjcj/Devel--Cover). This is also where problems +[github](https://github.com/pjcj/Devel--Cover). This is also where problems should be reported. To get coverage for an uninstalled module: diff --git a/bin/cover b/bin/cover index 78e560b4..67a085e2 100755 --- a/bin/cover +++ b/bin/cover @@ -5,7 +5,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net require 5.12.0; @@ -512,7 +512,7 @@ The following command line options are supported: -gcov - run gcov to cover XS code (default on if using gcc) -make make_prog - use the given 'make' program for 'make test' -prefer_lib - prefer files in lib (default off) - -ignore_covered_err - allow coverung uncoverable code (default off) + -ignore_covered_err - allow covering uncoverable code (default off) -add_uncoverable_point string -delete_uncoverable_point string @@ -650,6 +650,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/bin/cpancover b/bin/cpancover index aee1d672..3e1c5da3 100755 --- a/bin/cpancover +++ b/bin/cpancover @@ -5,7 +5,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net use 5.38.0; use warnings; @@ -232,6 +232,6 @@ Copyright 2002-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/bin/gcov2perl b/bin/gcov2perl index 1503c186..4a8bd9a0 100755 --- a/bin/gcov2perl +++ b/bin/gcov2perl @@ -5,7 +5,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net require 5.12.0; @@ -219,6 +219,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/dist.ini b/dist.ini index 45487343..60e6201b 100644 --- a/dist.ini +++ b/dist.ini @@ -21,13 +21,13 @@ prune_directory = ^\.build$ [MetaJSON] ; create META.json [MetaConfig] ; add dzil info to meta files [MetaResources] ; add resources to meta files -homepage = http://www.pjcj.net/perl.html +homepage = https://pjcj.net/perl.html bugtracker.web = https://github.com/pjcj/Devel--Cover/issues -license = http://dev.perl.org/licenses -repository.url = http://github.com/pjcj/Devel--Cover -repository.web = http://github.com/pjcj/Devel--Cover +license = https://dev.perl.org/licenses +repository.url = https://github.com/pjcj/Devel--Cover +repository.web = https://github.com/pjcj/Devel--Cover repository.type = git -x_mailing_list = http://lists.perl.org/list/perl-qa.html +x_mailing_list = https://lists.perl.org/list/perl-qa.html x_IRC = irc://irc.perl.org/#perl-qa [MetaNoIndex] directory = tests diff --git a/docs/cpancover.md b/docs/cpancover.md index a2bf5f94..e958910d 100644 --- a/docs/cpancover.md +++ b/docs/cpancover.md @@ -101,7 +101,7 @@ possible. ## cpancover.com The server which is currently running cpancover.com has been graciously -provided by [Bytemark](http://www.bytemark.co.uk/r/cpancover). It has plenty +provided by [Bytemark](https://www.bytemark.co.uk/r/cpancover). It has plenty of memory and cpu power, but not a large amount of disk space. That's fine though, it has sufficient for cpancover's needs. diff --git a/lib/Devel/Cover.pm b/lib/Devel/Cover.pm index eaf1e745..769270a4 100644 --- a/lib/Devel/Cover.pm +++ b/lib/Devel/Cover.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover; @@ -1407,10 +1407,10 @@ of operation, but this now gets little testing and will probably be removed soon. You probably don't care about any of this. The most appropriate mailing list on which to discuss this module would be -perl-qa. See L. +perl-qa. See L. The Devel::Cover repository can be found at -L. This is also where problems should be +L. This is also where problems should be reported. =head1 REQUIREMENTS AND RECOMMENDED MODULES @@ -1611,7 +1611,7 @@ flagged. This is a more precise method to flag such exceptions than the global L<-ignore_covered_err> flag to the L program. There is also a L attribute which can also be included in L
. -This should be the final attribute and will consude all the remaining text. +This should be the final attribute and will consume all the remaining text. Currently this attribute is not used, but it is intended as a form of documentation for the uncoverable data. @@ -1853,7 +1853,7 @@ See the BUGS file, the TODO file and the bug trackers at L and L -Please report new bugs on Github. +Please report new bugs on GitHub. =head1 LICENCE @@ -1862,6 +1862,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available on CPAN and from my -homepage: http://www.pjcj.net/. +homepage: https://pjcj.net/. =cut diff --git a/lib/Devel/Cover/Annotation/Git.pm b/lib/Devel/Cover/Annotation/Git.pm index 85e2378e..bfa5256f 100644 --- a/lib/Devel/Cover/Annotation/Git.pm +++ b/lib/Devel/Cover/Annotation/Git.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Annotation::Git; @@ -39,22 +39,22 @@ sub get_annotations { $command =~ s/\[\[file\]\]/$file/g; # print "Running [$command]\n"; open my $c, "-|", $command or warn("cover: Can't run $command: $!\n"), return; - my @annotaiton; + my @annotation; my $start = 1; while (my $line = <$c>) { # print "[$_]\n"; if ($line =~ /^\t/) { - push @$annotations, [@annotaiton]; + push @$annotations, [@annotation]; $start = 1; next; } if ($start == 1) { - $annotaiton[0] = substr $1, 0, 8 if /$line =~ ^(\w+)/; + $annotation[0] = substr $1, 0, 8 if /$line =~ ^(\w+)/; $start = 0; } else { - $annotaiton[1] = $1 if $line =~ /^author (.*)/; - $annotaiton[2] = localtime $1 if $line =~ /^author-time (.*)/; + $annotation[1] = $1 if $line =~ /^author (.*)/; + $annotation[2] = localtime $1 if $line =~ /^author-time (.*)/; } } close $c or warn "cover: Failed running $command: $!\n" @@ -142,6 +142,6 @@ Copyright 2005-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Annotation/Random.pm b/lib/Devel/Cover/Annotation/Random.pm index c62a9469..dac2903d 100644 --- a/lib/Devel/Cover/Annotation/Random.pm +++ b/lib/Devel/Cover/Annotation/Random.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Annotation::Random; @@ -100,6 +100,6 @@ Copyright 2004-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Annotation/Svk.pm b/lib/Devel/Cover/Annotation/Svk.pm index 5958e5c1..d2548688 100644 --- a/lib/Devel/Cover/Annotation/Svk.pm +++ b/lib/Devel/Cover/Annotation/Svk.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Annotation::Svk; @@ -166,6 +166,6 @@ Copyright 2005-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Branch.pm b/lib/Devel/Cover/Branch.pm index 00b2c0cc..65488402 100644 --- a/lib/Devel/Cover/Branch.pm +++ b/lib/Devel/Cover/Branch.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Branch; @@ -90,6 +90,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Collection.pm b/lib/Devel/Cover/Collection.pm index c6a468f7..7af382c0 100644 --- a/lib/Devel/Cover/Collection.pm +++ b/lib/Devel/Cover/Collection.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Collection; @@ -661,14 +661,14 @@ EOT $Templates{html} = <<'EOT'; - + "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + [% PROCESS colours %] @@ -683,7 +683,7 @@ http://www.pjcj.net

Coverage information from Devel::Cover - by Paul Johnson. + by Paul Johnson.
@@ -693,8 +693,8 @@ http://www.pjcj.net

About the project.

This server generously donated by - - bytemark + + bytemark

@@ -742,7 +742,7 @@ href="https://metacpan.org/release/Devel-Cover">Devel::Cover.

The source code is available at the GitHub repository. Contributions are also accepted for several - open projects. + open projects.

[% END %] @@ -826,6 +826,6 @@ Copyright 2014-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available on CPAN and from my -homepage: http://www.pjcj.net/. +homepage: https://pjcj.net/. =cut diff --git a/lib/Devel/Cover/Condition.pm b/lib/Devel/Cover/Condition.pm index b34bafe7..9d404c8d 100644 --- a/lib/Devel/Cover/Condition.pm +++ b/lib/Devel/Cover/Condition.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Condition; @@ -54,6 +54,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Condition_and_2.pm b/lib/Devel/Cover/Condition_and_2.pm index 7f5b091d..5033e7f7 100644 --- a/lib/Devel/Cover/Condition_and_2.pm +++ b/lib/Devel/Cover/Condition_and_2.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Condition_and_2; @@ -51,6 +51,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Condition_and_3.pm b/lib/Devel/Cover/Condition_and_3.pm index 5ee94f71..520bf970 100644 --- a/lib/Devel/Cover/Condition_and_3.pm +++ b/lib/Devel/Cover/Condition_and_3.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Condition_and_3; @@ -51,6 +51,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Condition_or_2.pm b/lib/Devel/Cover/Condition_or_2.pm index 1969aafd..5a632a8a 100644 --- a/lib/Devel/Cover/Condition_or_2.pm +++ b/lib/Devel/Cover/Condition_or_2.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Condition_or_2; @@ -51,6 +51,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Condition_or_3.pm b/lib/Devel/Cover/Condition_or_3.pm index a0ad9617..ab6cabf9 100644 --- a/lib/Devel/Cover/Condition_or_3.pm +++ b/lib/Devel/Cover/Condition_or_3.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Condition_or_3; @@ -51,6 +51,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Condition_xor_4.pm b/lib/Devel/Cover/Condition_xor_4.pm index bd0fe8f1..2860ad76 100644 --- a/lib/Devel/Cover/Condition_xor_4.pm +++ b/lib/Devel/Cover/Condition_xor_4.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Condition_xor_4; @@ -50,6 +50,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Criterion.pm b/lib/Devel/Cover/Criterion.pm index 26903fb9..6e2d4596 100644 --- a/lib/Devel/Cover/Criterion.pm +++ b/lib/Devel/Cover/Criterion.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Criterion; @@ -118,6 +118,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB.pm b/lib/Devel/Cover/DB.pm index 80bdef79..d8ae2ac1 100644 --- a/lib/Devel/Cover/DB.pm +++ b/lib/Devel/Cover/DB.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB; @@ -1032,6 +1032,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/Digests.pm b/lib/Devel/Cover/DB/Digests.pm index f52a2807..e62f0e5f 100644 --- a/lib/Devel/Cover/DB/Digests.pm +++ b/lib/Devel/Cover/DB/Digests.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::Digests; @@ -132,6 +132,6 @@ Copyright 2011-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/File.pm b/lib/Devel/Cover/DB/File.pm index 2476ecbc..4d065cf1 100644 --- a/lib/Devel/Cover/DB/File.pm +++ b/lib/Devel/Cover/DB/File.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::File; @@ -78,6 +78,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/IO.pm b/lib/Devel/Cover/DB/IO.pm index c5caf7cf..ec1bd98d 100644 --- a/lib/Devel/Cover/DB/IO.pm +++ b/lib/Devel/Cover/DB/IO.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::IO; @@ -90,6 +90,6 @@ Copyright 2011-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/IO/Base.pm b/lib/Devel/Cover/DB/IO/Base.pm index 72c0ea59..b66cb819 100644 --- a/lib/Devel/Cover/DB/IO/Base.pm +++ b/lib/Devel/Cover/DB/IO/Base.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::IO::Base; @@ -107,6 +107,6 @@ Copyright 2017-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/IO/JSON.pm b/lib/Devel/Cover/DB/IO/JSON.pm index 09bb5727..603d38a0 100644 --- a/lib/Devel/Cover/DB/IO/JSON.pm +++ b/lib/Devel/Cover/DB/IO/JSON.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::IO::JSON; @@ -109,6 +109,6 @@ Copyright 2011-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/IO/Sereal.pm b/lib/Devel/Cover/DB/IO/Sereal.pm index 11661422..bc74d347 100644 --- a/lib/Devel/Cover/DB/IO/Sereal.pm +++ b/lib/Devel/Cover/DB/IO/Sereal.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::IO::Sereal; @@ -108,6 +108,6 @@ Copyright 2011-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/IO/Storable.pm b/lib/Devel/Cover/DB/IO/Storable.pm index 5f5408f6..97cf4363 100644 --- a/lib/Devel/Cover/DB/IO/Storable.pm +++ b/lib/Devel/Cover/DB/IO/Storable.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::IO::Storable; @@ -89,6 +89,6 @@ Copyright 2011-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/DB/Structure.pm b/lib/Devel/Cover/DB/Structure.pm index b40eb752..1e905926 100644 --- a/lib/Devel/Cover/DB/Structure.pm +++ b/lib/Devel/Cover/DB/Structure.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::DB::Structure; @@ -373,6 +373,6 @@ Copyright 2004-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Dumper.pm b/lib/Devel/Cover/Dumper.pm index 77bfc849..77e71120 100644 --- a/lib/Devel/Cover/Dumper.pm +++ b/lib/Devel/Cover/Dumper.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net # Author of this file: Olivier Mengué @@ -70,6 +70,6 @@ Copyright 2012, Olivier Mengué This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Op.pm b/lib/Devel/Cover/Op.pm index c61651e8..00d22cab 100644 --- a/lib/Devel/Cover/Op.pm +++ b/lib/Devel/Cover/Op.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Op; @@ -106,6 +106,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Pod.pm b/lib/Devel/Cover/Pod.pm index 6a11896d..2ed2ebec 100644 --- a/lib/Devel/Cover/Pod.pm +++ b/lib/Devel/Cover/Pod.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Pod; @@ -69,6 +69,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Report/Compilation.pm b/lib/Devel/Cover/Report/Compilation.pm index e97c11ea..66da3a24 100644 --- a/lib/Devel/Cover/Report/Compilation.pm +++ b/lib/Devel/Cover/Report/Compilation.pm @@ -11,7 +11,7 @@ # ############################################################################ # # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Report::Compilation; @@ -157,6 +157,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Report/Html.pm b/lib/Devel/Cover/Report/Html.pm index 10397757..60a106a6 100644 --- a/lib/Devel/Cover/Report/Html.pm +++ b/lib/Devel/Cover/Report/Html.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Report::Html; @@ -48,6 +48,6 @@ Copyright 2001-2024, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. The latest version of this software should be available from my homepage: -http://www.pjcj.net +https://pjcj.net =cut diff --git a/lib/Devel/Cover/Report/Html_basic.pm b/lib/Devel/Cover/Report/Html_basic.pm index cebf9842..11fb2116 100644 --- a/lib/Devel/Cover/Report/Html_basic.pm +++ b/lib/Devel/Cover/Report/Html_basic.pm @@ -3,7 +3,7 @@ # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: -# http://www.pjcj.net +# https://pjcj.net package Devel::Cover::Report::Html_basic; @@ -472,14 +472,14 @@ sub fetch { $Templates{html} = <<'EOT'; - + "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + @@ -570,16 +570,16 @@ $Templates{summary} = <<'EOT';