NEED_newSVpvn_flagsを検索してた

たぶん、この辺を見れば良いのかなーって思いながら、
“ppport.h”の中でNEED_newSVpvn_flagsを検索してみました。

とりあえず、#if 〜 #endifのインデントに手を入れてみました。

#ifndef newSVpvn_flags

  #if defined(NEED_newSVpvn_flags)
static SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags);
static
  #else
extern SV * DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags);
  #endif

  #ifdef newSVpvn_flags
  #  undef newSVpvn_flags
  #endif
#define newSVpvn_flags(a,b,c) DPPP_(my_newSVpvn_flags)(aTHX_ a,b,c)
#define Perl_newSVpvn_flags DPPP_(my_newSVpvn_flags)

  #if defined(NEED_newSVpvn_flags) || defined(NEED_newSVpvn_flags_GLOBAL)

SV *
DPPP_(my_newSVpvn_flags)(pTHX_ const char *s, STRLEN len, U32 flags)
{
  SV *sv = newSVpvn(D_PPP_CONSTPV_ARG(s), len);
  SvFLAGS(sv) |= (flags & SVf_UTF8);
  return (flags & SVs_TEMP) ? sv_2mortal(sv) : sv;
}

  #endif

#endif

うーん、アレですね。
my_newSVpvn_flagsはどっからきたの?
あと、5行目のstaticは・・・??

って、辺りで今年はタイムアップです。

では、良いお年を。

Leave a Comment