Blame parts/inc/warn

Packit 7d6a7d
################################################################################
Packit 7d6a7d
##
Packit 7d6a7d
##  Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
Packit 7d6a7d
##  Version 2.x, Copyright (C) 2001, Paul Marquess.
Packit 7d6a7d
##  Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
Packit 7d6a7d
##
Packit 7d6a7d
##  This program is free software; you can redistribute it and/or
Packit 7d6a7d
##  modify it under the same terms as Perl itself.
Packit 7d6a7d
##
Packit 7d6a7d
################################################################################
Packit 7d6a7d
Packit 7d6a7d
=provides
Packit 7d6a7d
Packit 7d6a7d
__UNDEFINED__
Packit 7d6a7d
ckWARN
Packit 7d6a7d
warner
Packit 7d6a7d
Perl_warner
Packit 7d6a7d
Perl_warner_nocontext
Packit 7d6a7d
Packit 7d6a7d
=implementation
Packit 7d6a7d
Packit 7d6a7d
__UNDEFINED__  WARN_ALL                 0
Packit 7d6a7d
__UNDEFINED__  WARN_CLOSURE             1
Packit 7d6a7d
__UNDEFINED__  WARN_DEPRECATED          2
Packit 7d6a7d
__UNDEFINED__  WARN_EXITING             3
Packit 7d6a7d
__UNDEFINED__  WARN_GLOB                4
Packit 7d6a7d
__UNDEFINED__  WARN_IO                  5
Packit 7d6a7d
__UNDEFINED__  WARN_CLOSED              6
Packit 7d6a7d
__UNDEFINED__  WARN_EXEC                7
Packit 7d6a7d
__UNDEFINED__  WARN_LAYER               8
Packit 7d6a7d
__UNDEFINED__  WARN_NEWLINE             9
Packit 7d6a7d
__UNDEFINED__  WARN_PIPE                10
Packit 7d6a7d
__UNDEFINED__  WARN_UNOPENED            11
Packit 7d6a7d
__UNDEFINED__  WARN_MISC                12
Packit 7d6a7d
__UNDEFINED__  WARN_NUMERIC             13
Packit 7d6a7d
__UNDEFINED__  WARN_ONCE                14
Packit 7d6a7d
__UNDEFINED__  WARN_OVERFLOW            15
Packit 7d6a7d
__UNDEFINED__  WARN_PACK                16
Packit 7d6a7d
__UNDEFINED__  WARN_PORTABLE            17
Packit 7d6a7d
__UNDEFINED__  WARN_RECURSION           18
Packit 7d6a7d
__UNDEFINED__  WARN_REDEFINE            19
Packit 7d6a7d
__UNDEFINED__  WARN_REGEXP              20
Packit 7d6a7d
__UNDEFINED__  WARN_SEVERE              21
Packit 7d6a7d
__UNDEFINED__  WARN_DEBUGGING           22
Packit 7d6a7d
__UNDEFINED__  WARN_INPLACE             23
Packit 7d6a7d
__UNDEFINED__  WARN_INTERNAL            24
Packit 7d6a7d
__UNDEFINED__  WARN_MALLOC              25
Packit 7d6a7d
__UNDEFINED__  WARN_SIGNAL              26
Packit 7d6a7d
__UNDEFINED__  WARN_SUBSTR              27
Packit 7d6a7d
__UNDEFINED__  WARN_SYNTAX              28
Packit 7d6a7d
__UNDEFINED__  WARN_AMBIGUOUS           29
Packit 7d6a7d
__UNDEFINED__  WARN_BAREWORD            30
Packit 7d6a7d
__UNDEFINED__  WARN_DIGIT               31
Packit 7d6a7d
__UNDEFINED__  WARN_PARENTHESIS         32
Packit 7d6a7d
__UNDEFINED__  WARN_PRECEDENCE          33
Packit 7d6a7d
__UNDEFINED__  WARN_PRINTF              34
Packit 7d6a7d
__UNDEFINED__  WARN_PROTOTYPE           35
Packit 7d6a7d
__UNDEFINED__  WARN_QW                  36
Packit 7d6a7d
__UNDEFINED__  WARN_RESERVED            37
Packit 7d6a7d
__UNDEFINED__  WARN_SEMICOLON           38
Packit 7d6a7d
__UNDEFINED__  WARN_TAINT               39
Packit 7d6a7d
__UNDEFINED__  WARN_THREADS             40
Packit 7d6a7d
__UNDEFINED__  WARN_UNINITIALIZED       41
Packit 7d6a7d
__UNDEFINED__  WARN_UNPACK              42
Packit 7d6a7d
__UNDEFINED__  WARN_UNTIE               43
Packit 7d6a7d
__UNDEFINED__  WARN_UTF8                44
Packit 7d6a7d
__UNDEFINED__  WARN_VOID                45
Packit 7d6a7d
__UNDEFINED__  WARN_ASSERTIONS          46
Packit 7d6a7d
Packit 7d6a7d
__UNDEFINED__  packWARN(a)              (a)
Packit 7d6a7d
Packit 7d6a7d
#ifndef ckWARN
Packit 7d6a7d
#  ifdef G_WARN_ON
Packit 7d6a7d
#    define  ckWARN(a)                  (PL_dowarn & G_WARN_ON)
Packit 7d6a7d
#  else
Packit 7d6a7d
#    define  ckWARN(a)                  PL_dowarn
Packit 7d6a7d
#  endif
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
#if { VERSION >= 5.004 } && !defined(warner)
Packit 7d6a7d
#if { NEED warner }
Packit 7d6a7d
Packit 7d6a7d
void
Packit 7d6a7d
warner(U32 err, const char *pat, ...)
Packit 7d6a7d
{
Packit 7d6a7d
  SV *sv;
Packit 7d6a7d
  va_list args;
Packit 7d6a7d
Packit 7d6a7d
  PERL_UNUSED_ARG(err);
Packit 7d6a7d
Packit 7d6a7d
  va_start(args, pat);
Packit 7d6a7d
  sv = vnewSVpvf(pat, &args);
Packit 7d6a7d
  va_end(args);
Packit 7d6a7d
  sv_2mortal(sv);
Packit 7d6a7d
  warn("%s", SvPV_nolen(sv));
Packit 7d6a7d
}
Packit 7d6a7d
Packit 7d6a7d
#define warner  Perl_warner
Packit 7d6a7d
Packit 7d6a7d
#define Perl_warner_nocontext  Perl_warner
Packit 7d6a7d
Packit 7d6a7d
#endif
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
=xsinit
Packit 7d6a7d
Packit 7d6a7d
#define NEED_warner
Packit 7d6a7d
Packit 7d6a7d
=xsubs
Packit 7d6a7d
Packit 7d6a7d
void
Packit 7d6a7d
warner()
Packit 7d6a7d
        CODE:
Packit 7d6a7d
#if { VERSION >= 5.004 }
Packit 7d6a7d
                warner(packWARN(WARN_MISC), "warner %s:%d", "bar", 42);
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
void
Packit 7d6a7d
Perl_warner()
Packit 7d6a7d
        CODE:
Packit 7d6a7d
#if { VERSION >= 5.004 }
Packit 7d6a7d
                Perl_warner(aTHX_ packWARN(WARN_MISC), "Perl_warner %s:%d", "bar", 42);
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
void
Packit 7d6a7d
Perl_warner_nocontext()
Packit 7d6a7d
        CODE:
Packit 7d6a7d
#if { VERSION >= 5.004 }
Packit 7d6a7d
                Perl_warner_nocontext(packWARN(WARN_MISC), "Perl_warner_nocontext %s:%d", "bar", 42);
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
void
Packit 7d6a7d
ckWARN()
Packit 7d6a7d
        CODE:
Packit 7d6a7d
#if { VERSION >= 5.004 }
Packit 7d6a7d
                if (ckWARN(WARN_MISC))
Packit 7d6a7d
                  Perl_warner_nocontext(packWARN(WARN_MISC), "ckWARN %s:%d", "bar", 42);
Packit 7d6a7d
#endif
Packit 7d6a7d
Packit 7d6a7d
=tests plan => 5
Packit 7d6a7d
Packit 7d6a7d
$^W = 0;
Packit 7d6a7d
Packit 7d6a7d
my $warning;
Packit 7d6a7d
Packit 7d6a7d
$SIG{'__WARN__'} = sub { $warning = $_[0] };
Packit 7d6a7d
Packit 7d6a7d
$warning = '';
Packit 7d6a7d
Devel::PPPort::warner();
Packit 7d6a7d
ok($] >= 5.004 ? $warning =~ /^warner bar:42/ : $warning eq '');
Packit 7d6a7d
Packit 7d6a7d
$warning = '';
Packit 7d6a7d
Devel::PPPort::Perl_warner();
Packit 7d6a7d
ok($] >= 5.004 ? $warning =~ /^Perl_warner bar:42/ : $warning eq '');
Packit 7d6a7d
Packit 7d6a7d
$warning = '';
Packit 7d6a7d
Devel::PPPort::Perl_warner_nocontext();
Packit 7d6a7d
ok($] >= 5.004 ? $warning =~ /^Perl_warner_nocontext bar:42/ : $warning eq '');
Packit 7d6a7d
Packit 7d6a7d
$warning = '';
Packit 7d6a7d
Devel::PPPort::ckWARN();
Packit 7d6a7d
ok($warning, '');
Packit 7d6a7d
Packit 7d6a7d
$^W = 1;
Packit 7d6a7d
Packit 7d6a7d
$warning = '';
Packit 7d6a7d
Devel::PPPort::ckWARN();
Packit 7d6a7d
ok($] >= 5.004 ? $warning =~ /^ckWARN bar:42/ : $warning eq '');