summaryrefslogtreecommitdiff
path: root/package
blob: 6c2785d2baa8edcd7e12b7b9a75e9e3ccc54c2f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

void
package(OP *name)
{ char tmpbuf[256];
  GV *tmpgv;

  save_hptr(&curstash);
  save_item(curstname);
  sv_setpv(curstname,$2);
  sprintf(tmpbuf,"'_%s",$2);
  tmpgv = gv_fetchpv(tmpbuf,TRUE);
  if (!GvHV(tmpgv))
      GvHV(tmpgv) = newHV(0);
  curstash = GvHV(tmpgv);
  if (!curstash->hv_name)
      curstash->hv_name = savestr($2);
  curstash->hv_coeffsize = 0;
  op_free($2);
  copline = NOLINE;
  expectterm = 2;
}