head	1.2;
access;
symbols
	RELENG_4_11_0_RELEASE:1.1.1.1
	RELENG_4_11:1.1.1.1.0.24
	RELENG_4_11_BP:1.1.1.1
	RELENG_4_10_0_RELEASE:1.1.1.1
	RELENG_4_10:1.1.1.1.0.22
	RELENG_4_10_BP:1.1.1.1
	RELENG_4_9_0_RELEASE:1.1.1.1
	RELENG_4_9:1.1.1.1.0.20
	RELENG_4_9_BP:1.1.1.1
	RELENG_4_8_0_RELEASE:1.1.1.1
	RELENG_4_8:1.1.1.1.0.18
	RELENG_4_8_BP:1.1.1.1
	RELENG_4_7_0_RELEASE:1.1.1.1
	RELENG_4_7:1.1.1.1.0.16
	RELENG_4_7_BP:1.1.1.1
	RELENG_4_6_2_RELEASE:1.1.1.1
	RELENG_4_6_1_RELEASE:1.1.1.1
	RELENG_4_6_0_RELEASE:1.1.1.1
	RELENG_4_6:1.1.1.1.0.14
	RELENG_4_6_BP:1.1.1.1
	v5_006_01:1.1.1.1
	RELENG_4_5_0_RELEASE:1.1.1.1
	RELENG_4_5:1.1.1.1.0.12
	RELENG_4_5_BP:1.1.1.1
	RELENG_4_4_0_RELEASE:1.1.1.1
	RELENG_4_4:1.1.1.1.0.10
	RELENG_4_4_BP:1.1.1.1
	RELENG_4_3_0_RELEASE:1.1.1.1
	RELENG_4_3:1.1.1.1.0.8
	RELENG_4_3_BP:1.1.1.1
	RELENG_4_2_0_RELEASE:1.1.1.1
	RELENG_4_1_1_RELEASE:1.1.1.1
	PRE_SMPNG:1.1.1.1
	RELENG_4_1_0_RELEASE:1.1.1.1
	v5_006:1.1.1.1
	RELENG_3_5_0_RELEASE:1.1.1.1
	RELENG_4_0_0_RELEASE:1.1.1.1
	RELENG_4:1.1.1.1.0.6
	RELENG_4_BP:1.1.1.1
	RELENG_3_4_0_RELEASE:1.1.1.1
	RELENG_3_3_0_RELEASE:1.1.1.1
	RELENG_3_2_PAO:1.1.1.1.0.4
	RELENG_3_2_PAO_BP:1.1.1.1
	RELENG_3_2_0_RELEASE:1.1.1.1
	v5_005_03:1.1.1.1
	RELENG_3_1_0_RELEASE:1.1.1.1
	RELENG_3:1.1.1.1.0.2
	RELENG_3_BP:1.1.1.1
	RELENG_3_0_0_RELEASE:1.1.1.1
	v5_005_02:1.1.1.1
	LWALL:1.1.1;
locks; strict;
comment	@# @;


1.2
date	2002.05.16.10.07.53;	author markm;	state dead;
branches;
next	1.1;

1.1
date	98.09.09.06.59.50;	author markm;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	98.09.09.06.59.50;	author markm;	state Exp;
branches;
next	;


desc
@@


1.2
log
@Perl is no longer in base. Long live the port!
@
text
@sv_magic()
----------
av.c
av_store()
	Storing a non-undef element into an SMAGICAL array, av,
	assigns the equivalent lowercase form of magic (of the first
	MAGIC in the chain) to the value (with obj = av, name = 0 and
	namlen = array index).

gv.c
gv_init()
	Initialising gv assigns '*' magic to it with obj = gv, name =
	GvNAME and namlen = GvNAMELEN.
gv_fetchpv()
	@@ISA gets 'I' magic with obj = gv, zero name and namlen.
	%OVERLOAD gets 'A' magic with obj = gv, zero name and namlen.
	$1 to $9, $&, $`, $', $+ get '\0' magic with obj = gv,
	name = GvNAME and namlen = len ( = 1 presumably).
Gv_AMupdate()
	Stashes for overload magic seem to get 'c' magic with obj = 0,
	name = &amt and namlen = sizeof(amt).
hv_magic(hv, gv, how)
	Gives magic how to hv with obj = gv and zero name and namlen.

mg.c
mg_copy(sv, nsv, key, klen)
	Traverses the magic chain of sv. Upper case forms of magic
	(only) are copied across to nsv, preserving obj but using
	name = key and namlen = klen.
magic_setpos()
	LvTARG of a PVLV gets 'g' magic with obj = name = 0 and namlen = pos.

op.c
mod()
	PVLV operators give magic to their targs with
	obj = name = namlen = 0. OP_POS gives '.', OP_VEC gives 'v'
	and OP_SUBSTR gives 'x'.

perl.c
magicname(sym, name, namlen)
	Fetches/creates a GV with name sym and gives it '\0' magic
	with obj = gv, name and namlen as passed.
init_postdump_symbols()
	Elements of the environment get given SVs with 'e' magic.
	obj = sv and name and namlen point to the actual string
	within env.

pp.c
pp_av2arylen()
	$#foo gives '#' magic to the new SV with obj = av and
	name = namlen = 0.
pp_study()
	SV gets 'g' magic with obj = name = namlen = 0.
pp_substr()
	PVLV gets 'x' magic with obj = name = namlen = 0.
pp_vec()
	PVLV gets 'x' magic with obj = name = namlen = 0.

pp_hot.c
pp_match()
	m//g gets 'g' magic with obj = name = namlen = 0.

pp_sys.c
pp_tie()
	sv gets magic with obj = sv and name = namlen = 0.
	If an HV or an AV, it gets 'P' magic, otherwise 'q' magic.
pp_dbmopen()
	'P' magic for the HV just as with pp_tie().
pp_sysread()
	If tainting, the buffer SV gets 't' magic with
	obj = name = namlen = 0.

sv.c
sv_setsv()
	Doing sv_setsv(dstr, gv) gives '*' magic to dstr with
	obj = dstr, name = GvNAME, namlen = GvNAMELEN.

util.c
fbm_compile()
	The PVBM gets 'B' magic with obj = name = namlen = 0 and SvVALID
	is set to indicate that the Boyer-Moore table is valid.
	magic_setbm() just clears the SvVALID flag.

hv_magic()
----------

gv.c
gv_fetchfile()
	With perldb, the HV of a gvfile gv gets 'L' magic with obj = gv.
gv_fetchpv()
	%SIG gets 'S' magic with obj = siggv.
init_postdump_symbols()
	%ENV gets 'E' magic with obj = envgv.
@


1.1
log
@Initial revision
@
text
@@


1.1.1.1
log
@Initial import of Perl5. The king is dead; long live the king!
@
text
@@
