summaryrefslogtreecommitdiffstats
path: root/src
ModeNameSize
-rw-r--r--.indent.pro4406logstatsplain
-rw-r--r--CMakeLists.txt23155logstatsplain
-rw-r--r--COPYING767logstatsplain
-rw-r--r--H5.c33903logstatsplain
-rw-r--r--H5A.c63782logstatsplain
-rw-r--r--H5AC.c183535logstatsplain
-rw-r--r--H5ACpkg.h16556logstatsplain
-rw-r--r--H5ACprivate.h19355logstatsplain
-rw-r--r--H5ACpublic.h22588logstatsplain
-rw-r--r--H5Abtree2.c19561logstatsplain
-rw-r--r--H5Adense.c80325logstatsplain
-rw-r--r--H5Adeprec.c17123logstatsplain
-rw-r--r--H5Aint.c90668logstatsplain
-rw-r--r--H5Apkg.h13024logstatsplain
-rw-r--r--H5Aprivate.h3612logstatsplain
-rw-r--r--H5Apublic.h5629logstatsplain
-rw-r--r--H5Atest.c4523logstatsplain
-rw-r--r--H5B.c79507logstatsplain
-rw-r--r--H5B2.c53507logstatsplain
-rw-r--r--H5B2cache.c38970logstatsplain
-rw-r--r--H5B2dbg.c16151logstatsplain
-rw-r--r--H5B2hdr.c20143logstatsplain
-rw-r--r--H5B2int.c146596logstatsplain
-rw-r--r--H5B2pkg.h18729logstatsplain
-rw-r--r--H5B2private.h7897logstatsplain
-rw-r--r--H5B2public.h1926logstatsplain
-rw-r--r--H5B2stat.c4289logstatsplain
-rw-r--r--H5B2test.c16598logstatsplain
-rw-r--r--H5Bcache.c13314logstatsplain
-rw-r--r--H5Bdbg.c9942logstatsplain
-rw-r--r--H5Bpkg.h3744logstatsplain
-rw-r--r--H5Bprivate.h7833logstatsplain
-rw-r--r--H5Bpublic.h1666logstatsplain
-rw-r--r--H5C.c355110logstatsplain
-rw-r--r--H5CS.c9865logstatsplain
-rw-r--r--H5CSprivate.h1914logstatsplain
-rw-r--r--H5Cpkg.h193721logstatsplain
-rw-r--r--H5Cprivate.h49817logstatsplain
-rw-r--r--H5Cpublic.h1918logstatsplain
-rw-r--r--H5D.c35796logstatsplain
-rw-r--r--H5Dbtree.c53523logstatsplain
-rw-r--r--H5Dchunk.c231493logstatsplain
-rw-r--r--H5Dcompact.c23202logstatsplain
-rw-r--r--H5Dcontig.c63647logstatsplain
-rw-r--r--H5Ddbg.c3730logstatsplain
-rw-r--r--H5Ddeprec.c17072logstatsplain
-rw-r--r--H5Defl.c20244logstatsplain
-rw-r--r--H5Dfill.c30398logstatsplain
-rw-r--r--H5Dint.c113254logstatsplain
-rw-r--r--H5Dio.c54565logstatsplain
-rw-r--r--H5Dlayout.c18634logstatsplain
-rw-r--r--H5Dmpio.c80003logstatsplain
-rw-r--r--H5Doh.c16548logstatsplain
-rw-r--r--H5Dpkg.h37770logstatsplain
-rw-r--r--H5Dprivate.h9140logstatsplain
-rw-r--r--H5Dpublic.h6700logstatsplain
-rw-r--r--H5Dscatgath.c46746logstatsplain
-rw-r--r--H5Dselect.c13189logstatsplain
-rw-r--r--H5Dtest.c6039logstatsplain
-rw-r--r--H5E.c57837logstatsplain
-rw-r--r--H5EA.c41959logstatsplain
-rw-r--r--H5EAcache.c75250logstatsplain
-rw-r--r--H5EAdbg.c18663logstatsplain
-rw-r--r--H5EAdblkpage.c10156logstatsplain
-rw-r--r--H5EAdblock.c16376logstatsplain
-rw-r--r--H5EAhdr.c26981logstatsplain
-rw-r--r--H5EAiblock.c16834logstatsplain
-rw-r--r--H5EAint.c4060logstatsplain
-rw-r--r--H5EApkg.h23431logstatsplain
-rw-r--r--H5EAprivate.h7026logstatsplain
-rw-r--r--H5EAsblock.c15165logstatsplain
-rw-r--r--H5EAstat.c3067logstatsplain
-rw-r--r--H5EAtest.c15143logstatsplain
-rw-r--r--H5Edefin.h12463logstatsplain
-rw-r--r--H5Edeprec.c16042logstatsplain
-rw-r--r--H5Einit.h53926logstatsplain
-rw-r--r--H5Eint.c35757logstatsplain
-rw-r--r--H5Epkg.h5682logstatsplain
-rw-r--r--H5Eprivate.h8354logstatsplain
-rw-r--r--H5Epubgen.h20246logstatsplain
-rw-r--r--H5Epublic.h9181logstatsplain
-rw-r--r--H5Eterm.h5025logstatsplain
-rw-r--r--H5F.c49710logstatsplain
-rw-r--r--H5FA.c25194logstatsplain
-rw-r--r--H5FAcache.c39252logstatsplain
-rw-r--r--H5FAdbg.c10895logstatsplain
-rw-r--r--H5FAdblkpage.c9886logstatsplain
-rw-r--r--H5FAdblock.c14860logstatsplain
-rw-r--r--H5FAhdr.c15964logstatsplain
-rw-r--r--H5FApkg.h13862logstatsplain
-rw-r--r--H5FAprivate.h5661logstatsplain
-rw-r--r--H5FAstat.c3006logstatsplain
-rw-r--r--H5FAtest.c12562logstatsplain
-rw-r--r--H5FD.c63983logstatsplain
-rw-r--r--H5FDcore.c58465logstatsplain
-rw-r--r--H5FDcore.h1648logstatsplain
-rw-r--r--H5FDdirect.c46549logstatsplain
-rw-r--r--H5FDdirect.h2113logstatsplain
-rw-r--r--H5FDfamily.c45307logstatsplain
-rw-r--r--H5FDfamily.h1664logstatsplain
-rw-r--r--H5FDint.c12231logstatsplain
-rw-r--r--H5FDlog.c60906logstatsplain
-rw-r--r--H5FDlog.h3186logstatsplain
-rw-r--r--H5FDmpi.c14507logstatsplain
-rw-r--r--H5FDmpi.h2731logstatsplain
-rw-r--r--H5FDmpio.c73225logstatsplain
-rw-r--r--H5FDmpio.h2598logstatsplain
-rw-r--r--H5FDmulti.c61507logstatsplain
-rw-r--r--H5FDmulti.h1958logstatsplain
-rw-r--r--H5FDpkg.h2461logstatsplain
-rw-r--r--H5FDprivate.h7376logstatsplain
-rw-r--r--H5FDpublic.h15836logstatsplain
-rw-r--r--H5FDsec2.c35019logstatsplain
-rw-r--r--H5FDsec2.h1497logstatsplain
-rw-r--r--H5FDspace.c15366logstatsplain
-rw-r--r--H5FDstdio.c38274logstatsplain
-rw-r--r--H5FDstdio.h1526logstatsplain
-rw-r--r--H5FDwindows.c2988logstatsplain
-rw-r--r--H5FDwindows.h1572logstatsplain
-rw-r--r--H5FL.c83299logstatsplain
-rw-r--r--H5FLprivate.h18774logstatsplain
-rw-r--r--H5FO.c18971logstatsplain
-rw-r--r--H5FOprivate.h2367logstatsplain
-rw-r--r--H5FS.c45052logstatsplain
-rw-r--r--H5FScache.c39099logstatsplain
-rw-r--r--H5FSdbg.c10379logstatsplain
-rw-r--r--H5FSpkg.h11933logstatsplain
-rw-r--r--H5FSprivate.h11876logstatsplain
-rw-r--r--H5FSpublic.h1932logstatsplain
-rw-r--r--H5FSsection.c97058logstatsplain
-rw-r--r--H5FSstat.c3112logstatsplain
-rw-r--r--H5FStest.c4562logstatsplain
-rw-r--r--H5Faccum.c49874logstatsplain
-rw-r--r--H5Fcwfs.c10509logstatsplain
-rw-r--r--H5Fdbg.c6838logstatsplain
-rw-r--r--H5Fdeprec.c6235logstatsplain
-rw-r--r--H5Fefc.c37182logstatsplain
-rw-r--r--H5Ffake.c4320logstatsplain
-rw-r--r--H5Fint.c81370logstatsplain
-rw-r--r--H5Fio.c5696logstatsplain
-rw-r--r--H5Fmount.c27807logstatsplain
-rw-r--r--H5Fmpi.c6973logstatsplain
-rw-r--r--H5Fpkg.h18369logstatsplain
-rw-r--r--H5Fprivate.h32414logstatsplain
-rw-r--r--H5Fpublic.h10731logstatsplain
-rw-r--r--H5Fquery.c29844logstatsplain
-rw-r--r--H5Fsfile.c6904logstatsplain
-rw-r--r--H5Fsuper.c34645logstatsplain
-rw-r--r--H5Fsuper_cache.c42724logstatsplain
-rw-r--r--H5Ftest.c5889logstatsplain
-rw-r--r--H5G.c29602logstatsplain
-rw-r--r--H5Gbtree2.c19212logstatsplain
-rw-r--r--H5Gcache.c12774logstatsplain
-rw-r--r--H5Gcompact.c22326logstatsplain
-rw-r--r--H5Gdense.c73198logstatsplain
-rw-r--r--H5Gdeprec.c42282logstatsplain
-rw-r--r--H5Gent.c20149logstatsplain
-rw-r--r--H5Gint.c41719logstatsplain
-rw-r--r--H5Glink.c18086logstatsplain
-rw-r--r--H5Gloc.c31558logstatsplain
-rw-r--r--H5Gname.c48398logstatsplain
-rw-r--r--H5Gnode.c55664logstatsplain
-rw-r--r--H5Gobj.c49348logstatsplain
-rw-r--r--H5Goh.c14694logstatsplain
-rw-r--r--H5Gpkg.h24205logstatsplain
-rw-r--r--H5Gprivate.h13790logstatsplain
-rw-r--r--H5Gpublic.h7309logstatsplain
-rw-r--r--H5Groot.c15388logstatsplain
-rw-r--r--H5Gstab.c42830logstatsplain
-rw-r--r--H5Gtest.c31000logstatsplain
-rw-r--r--H5Gtraverse.c36293logstatsplain
-rw-r--r--H5HF.c29355logstatsplain
-rw-r--r--H5HFbtree2.c41034logstatsplain
-rw-r--r--H5HFcache.c106678logstatsplain
-rw-r--r--H5HFdbg.c31971logstatsplain
-rw-r--r--H5HFdblock.c28221logstatsplain
-rw-r--r--H5HFdtable.c12169logstatsplain
-rw-r--r--H5HFhdr.c55240logstatsplain
-rw-r--r--H5HFhuge.c40503logstatsplain
-rw-r--r--H5HFiblock.c70833logstatsplain
-rw-r--r--H5HFiter.c20613logstatsplain
-rw-r--r--H5HFman.c24568logstatsplain
-rw-r--r--H5HFpkg.h44386logstatsplain
-rw-r--r--H5HFprivate.h6595logstatsplain
-rw-r--r--H5HFpublic.h1929logstatsplain
-rw-r--r--H5HFsection.c161478logstatsplain
-rw-r--r--H5HFspace.c19684logstatsplain
-rw-r--r--H5HFstat.c5967logstatsplain
-rw-r--r--H5HFtest.c16591logstatsplain
-rw-r--r--H5HFtiny.c11795logstatsplain
-rw-r--r--H5HG.c29063logstatsplain
-rw-r--r--H5HGcache.c13495logstatsplain
-rw-r--r--H5HGdbg.c5549logstatsplain
-rw-r--r--H5HGpkg.h5784logstatsplain
-rw-r--r--H5HGprivate.h3220logstatsplain
-rw-r--r--H5HGpublic.h1384logstatsplain
-rw-r--r--H5HGquery.c4006logstatsplain
-rw-r--r--H5HL.c43923logstatsplain
-rw-r--r--H5HLcache.c29639logstatsplain
-rw-r--r--H5HLdbg.c5081logstatsplain
-rw-r--r--H5HLint.c10669logstatsplain
-rw-r--r--H5HLpkg.h6160logstatsplain
-rw-r--r--H5HLprivate.h3197logstatsplain
-rw-r--r--H5HLpublic.h1684logstatsplain
-rw-r--r--H5HP.c30358logstatsplain
-rw-r--r--H5HPprivate.h2796logstatsplain
-rw-r--r--H5I.c68973logstatsplain
-rw-r--r--H5Ipkg.h2798logstatsplain
-rw-r--r--H5Iprivate.h3832logstatsplain
-rw-r--r--H5Ipublic.h4677logstatsplain
-rw-r--r--H5Itest.c3107logstatsplain
-rw-r--r--H5L.c114693logstatsplain
-rw-r--r--H5Lexternal.c30568logstatsplain
-rw-r--r--H5Lpkg.h2409logstatsplain
-rw-r--r--H5Lprivate.h4375logstatsplain
-rw-r--r--H5Lpublic.h9330logstatsplain
-rw-r--r--H5MF.c54845logstatsplain
-rw-r--r--H5MFaggr.c36171logstatsplain
-rw-r--r--H5MFdbg.c11354logstatsplain
-rw-r--r--H5MFpkg.h8135logstatsplain
-rw-r--r--H5MFprivate.h3664logstatsplain
-rw-r--r--H5MFsection.c18556logstatsplain
-rw-r--r--H5MM.c7776logstatsplain
-rw-r--r--H5MMprivate.h1942logstatsplain
-rw-r--r--H5MMpublic.h1933logstatsplain
-rw-r--r--H5MP.c15585logstatsplain
-rw-r--r--H5MPpkg.h4432logstatsplain
-rw-r--r--H5MPprivate.h2378logstatsplain
-rw-r--r--H5MPtest.c7022logstatsplain
-rw-r--r--H5O.c124360logstatsplain
-rw-r--r--H5Oainfo.c19240logstatsplain
-rw-r--r--H5Oalloc.c103816logstatsplain
-rw-r--r--H5Oattr.c32663logstatsplain
-rw-r--r--H5Oattribute.c81562logstatsplain
-rw-r--r--H5Obogus.c7735logstatsplain
-rw-r--r--H5Obtreek.c9203logstatsplain
-rw-r--r--H5Ocache.c53832logstatsplain
-rw-r--r--H5Ochunk.c13136logstatsplain
-rw-r--r--H5Ocont.c9750logstatsplain
-rw-r--r--H5Ocopy.c82514logstatsplain
-rw-r--r--H5Odbg.c21872logstatsplain
-rw-r--r--H5Odrvinfo.c10436logstatsplain
-rw-r--r--H5Odtype.c81401logstatsplain
-rw-r--r--H5Oefl.c19796logstatsplain
-rw-r--r--H5Ofill.c36710logstatsplain
-rw-r--r--H5Ofsinfo.c11180logstatsplain
-rw-r--r--H5Oginfo.c12622logstatsplain
-rw-r--r--H5Olayout.c27794logstatsplain
-rw-r--r--H5Olinfo.c21957logstatsplain
-rw-r--r--H5Olink.c31417logstatsplain
-rw-r--r--H5Omessage.c81627logstatsplain
-rw-r--r--H5Omtime.c16042logstatsplain
-rw-r--r--H5Oname.c9774logstatsplain
-rw-r--r--H5Onull.c2823logstatsplain
-rw-r--r--H5Opkg.h29302logstatsplain
-rw-r--r--H5Opline.c25192logstatsplain
-rw-r--r--H5Oprivate.h35273logstatsplain
-rw-r--r--H5Opublic.h10240logstatsplain
-rw-r--r--H5Orefcount.c10970logstatsplain
-rw-r--r--H5Osdspace.c19390logstatsplain
-rw-r--r--H5Oshared.c27335logstatsplain
-rw-r--r--H5Oshared.h18835logstatsplain
-rw-r--r--H5Oshmesg.c8740logstatsplain
-rw-r--r--H5Ostab.c14919logstatsplain
-rw-r--r--H5Otest.c22347logstatsplain
-rw-r--r--H5Ounknown.c3537logstatsplain
-rw-r--r--H5P.c69958logstatsplain
-rw-r--r--H5PL.c24952logstatsplain
-rw-r--r--H5PLextern.h1706logstatsplain
-rw-r--r--H5PLprivate.h1882logstatsplain
-rw-r--r--H5PLpublic.h2026logstatsplain
-rw-r--r--H5Pacpl.c3069logstatsplain
-rw-r--r--H5Pdapl.c12206logstatsplain
-rw-r--r--H5Pdcpl.c92093logstatsplain
-rw-r--r--H5Pdeprec.c25515logstatsplain
-rw-r--r--H5Pdxpl.c82982logstatsplain
-rw-r--r--H5Pencdec.c25233logstatsplain
-rw-r--r--H5Pfapl.c120128logstatsplain
-rw-r--r--H5Pfcpl.c51200logstatsplain
-rw-r--r--H5Pfmpl.c4596logstatsplain
-rw-r--r--H5Pgcpl.c24787logstatsplain
-rw-r--r--H5Pint.c207330logstatsplain
-rw-r--r--H5Plapl.c40264logstatsplain
-rw-r--r--H5Plcpl.c7417logstatsplain
-rw-r--r--H5Pocpl.c72440logstatsplain
-rw-r--r--H5Pocpypl.c29130logstatsplain
-rw-r--r--H5Ppkg.h12390logstatsplain
-rw-r--r--H5Pprivate.h7365logstatsplain
-rw-r--r--H5Ppublic.h25146logstatsplain
-rw-r--r--H5Pstrcpl.c9480logstatsplain
-rw-r--r--H5Ptest.c6274logstatsplain
-rw-r--r--H5R.c37547logstatsplain
-rw-r--r--H5RS.c14374logstatsplain
-rw-r--r--H5RSprivate.h2358logstatsplain
-rw-r--r--H5Rdeprec.c7636logstatsplain
-rw-r--r--H5Rpkg.h2469logstatsplain
-rw-r--r--H5Rprivate.h1376logstatsplain
-rw-r--r--H5Rpublic.h3783logstatsplain
-rw-r--r--H5S.c66546logstatsplain
-rw-r--r--H5SL.c86816logstatsplain
-rw-r--r--H5SLprivate.h4083logstatsplain
-rw-r--r--H5SM.c111960logstatsplain
-rw-r--r--H5SMbtree2.c9783logstatsplain
-rw-r--r--H5SMcache.c26681logstatsplain
-rw-r--r--H5SMmessage.c12376logstatsplain
-rw-r--r--H5SMpkg.h12699logstatsplain
-rw-r--r--H5SMprivate.h3693logstatsplain
-rw-r--r--H5SMtest.c4357logstatsplain
-rw-r--r--H5ST.c21999logstatsplain
-rw-r--r--H5STprivate.h2911logstatsplain
-rw-r--r--H5Sall.c31074logstatsplain
-rw-r--r--H5Sdbg.c3732logstatsplain
-rw-r--r--H5Shyper.c365250logstatsplain
-rw-r--r--H5Smpio.c45834logstatsplain
-rw-r--r--H5Snone.c29013logstatsplain
-rw-r--r--H5Spkg.h13631logstatsplain
-rw-r--r--H5Spoint.c61338logstatsplain
-rw-r--r--H5Sprivate.h15140logstatsplain
-rw-r--r--H5Spublic.h7696logstatsplain
-rw-r--r--H5Sselect.c79422logstatsplain
-rw-r--r--H5Stest.c4378logstatsplain
-rw-r--r--H5T.c210761logstatsplain
-rw-r--r--H5TS.c14845logstatsplain
-rw-r--r--H5TSprivate.h5026logstatsplain
-rw-r--r--H5Tarray.c15006logstatsplain
-rw-r--r--H5Tbit.c22394logstatsplain
-rw-r--r--H5Tcommit.c32033logstatsplain
-rw-r--r--H5Tcompound.c22352logstatsplain
-rw-r--r--H5Tconv.c404693logstatsplain
-rw-r--r--H5Tcset.c5146logstatsplain
-rw-r--r--H5Tdbg.c13049logstatsplain
-rw-r--r--H5Tdeprec.c8127logstatsplain
-rw-r--r--H5Tenum.c20297logstatsplain
-rw-r--r--H5Tfields.c16137logstatsplain
-rw-r--r--H5Tfixed.c5517logstatsplain
-rw-r--r--H5Tfloat.c14285logstatsplain
-rw-r--r--H5Tnative.c40793logstatsplain
-rw-r--r--H5Toffset.c10755logstatsplain
-rw-r--r--H5Toh.c7589logstatsplain
-rw-r--r--H5Topaque.c4733logstatsplain
-rw-r--r--H5Torder.c10361logstatsplain
-rw-r--r--H5Tpad.c5136logstatsplain
-rw-r--r--H5Tpkg.h65735logstatsplain
-rw-r--r--H5Tprecis.c10460logstatsplain
-rw-r--r--H5Tprivate.h7411logstatsplain
-rw-r--r--H5Tpublic.h27329logstatsplain
-rw-r--r--H5Tstrpad.c5754logstatsplain
-rw-r--r--H5Tvisit.c5101logstatsplain
-rw-r--r--H5Tvlen.c43252logstatsplain
-rw-r--r--H5UC.c4274logstatsplain
-rw-r--r--H5UCprivate.h2501logstatsplain
-rw-r--r--H5VM.c60865logstatsplain
-rw-r--r--H5VMprivate.h18395logstatsplain
-rw-r--r--H5WB.c8121logstatsplain
-rw-r--r--H5WBprivate.h2380logstatsplain
-rw-r--r--H5Z.c59351logstatsplain
-rw-r--r--H5Zdeflate.c7759logstatsplain
-rw-r--r--H5Zfletcher32.c6780logstatsplain
-rw-r--r--H5Znbit.c54981logstatsplain
-rw-r--r--H5Zpkg.h2016logstatsplain
-rw-r--r--H5Zprivate.h5146logstatsplain
-rw-r--r--H5Zpublic.h11262logstatsplain
-rw-r--r--H5Zscaleoffset.c92336logstatsplain
-rw-r--r--H5Zshuffle.c11319logstatsplain
-rw-r--r--H5Zszip.c15701logstatsplain
-rw-r--r--H5Ztrans.c65019logstatsplain
-rw-r--r--H5api_adpt.h10434logstatsplain
-rw-r--r--H5checksum.c16323logstatsplain
-rw-r--r--H5config.h.in16796logstatsplain
-rw-r--r--H5dbg.c3900logstatsplain
-rw-r--r--H5detect.c61542logstatsplain
-rw-r--r--H5err.txt11026logstatsplain
-rw-r--r--H5make_libsettings.c8920logstatsplain
-rw-r--r--H5overflow.h116312logstatsplain
-rw-r--r--H5overflow.txt1578logstatsplain
-rw-r--r--H5private.h89597logstatsplain
-rw-r--r--H5public.h12154logstatsplain
-rw-r--r--H5system.c29221logstatsplain
-rw-r--r--H5timer.c7490logstatsplain
-rw-r--r--H5trace.c106487logstatsplain
-rw-r--r--H5vers.txt3254logstatsplain
-rw-r--r--H5version.h16699logstatsplain
-rw-r--r--H5win32defs.h3996logstatsplain
-rw-r--r--Makefile.am8469logstatsplain
-rw-r--r--Makefile.in83326logstatsplain
-rw-r--r--hdf5-lin.lnt696logstatsplain
-rw-r--r--hdf5-win.lnt1315logstatsplain
-rw-r--r--hdf5.h2719logstatsplain
-rw-r--r--hdf5.lnt2453logstatsplain
-rw-r--r--libhdf5.settings.in3008logstatsplain
omething in here. *---------------------------------------------------------------- */ typedef struct Interp { /* * Note: the first three fields must match exactly the fields in * a Tcl_Interp struct (see tcl.h). If you change one, be sure to * change the other. * * The interpreter's result is held in both the string and the * objResultPtr fields. These fields hold, respectively, the result's * string or object value. The interpreter's result is always in the * result field if that is non-empty, otherwise it is in objResultPtr. * The two fields are kept consistent unless some C code sets * interp->result directly. Programs should not access result and * objResultPtr directly; instead, they should always get and set the * result using procedures such as Tcl_SetObjResult, Tcl_GetObjResult, * and Tcl_GetStringResult. See the SetResult man page for details. */ char *result; /* If the last command returned a string * result, this points to it. Should not be * accessed directly; see comment above. */ Tcl_FreeProc *freeProc; /* Zero means a string result is statically * allocated. TCL_DYNAMIC means string * result was allocated with ckalloc and * should be freed with ckfree. Other values * give address of procedure to invoke to * free the string result. Tcl_Eval must * free it before executing next command. */ int errorLine; /* When TCL_ERROR is returned, this gives * the line number in the command where the * error occurred (1 means first line). */ struct TclStubs *stubTable; /* Pointer to the exported Tcl stub table. * On previous versions of Tcl this is a * pointer to the objResultPtr or a pointer * to a buckets array in a hash table. We * therefore have to do some careful checking * before we can use this. */ TclHandle handle; /* Handle used to keep track of when this * interp is deleted. */ Namespace *globalNsPtr; /* The interpreter's global namespace. */ Tcl_HashTable *hiddenCmdTablePtr; /* Hash table used by tclBasic.c to keep * track of hidden commands on a per-interp * basis. */ ClientData interpInfo; /* Information used by tclInterp.c to keep * track of master/slave interps on * a per-interp basis. */ Tcl_HashTable mathFuncTable;/* Contains all the math functions currently * defined for the interpreter. Indexed by * strings (function names); values have * type (MathFunc *). */ /* * Information related to procedures and variables. See tclProc.c * and tclVar.c for usage. */ int numLevels; /* Keeps track of how many nested calls to * Tcl_Eval are in progress for this * interpreter. It's used to delay deletion * of the table until all Tcl_Eval * invocations are completed. */ int maxNestingDepth; /* If numLevels exceeds this value then Tcl * assumes that infinite recursion has * occurred and it generates an error. */ CallFrame *framePtr; /* Points to top-most in stack of all nested * procedure invocations. NULL means there * are no active procedures. */ CallFrame *varFramePtr; /* Points to the call frame whose variables * are currently in use (same as framePtr * unless an "uplevel" command is * executing). NULL means no procedure is * active or "uplevel 0" is executing. */ ActiveVarTrace *activeVarTracePtr; /* First in list of active traces for * interp, or NULL if no active traces. */ int returnCode; /* Completion code to return if current * procedure exits with TCL_RETURN code. */ char *errorInfo; /* Value to store in errorInfo if returnCode * is TCL_ERROR. Malloc'ed, may be NULL */ char *errorCode; /* Value to store in errorCode if returnCode * is TCL_ERROR. Malloc'ed, may be NULL */ /* * Information used by Tcl_AppendResult to keep track of partial * results. See Tcl_AppendResult code for details. */ char *appendResult; /* Storage space for results generated * by Tcl_AppendResult. Malloc-ed. NULL * means not yet allocated. */ int appendAvl; /* Total amount of space available at * partialResult. */ int appendUsed; /* Number of non-null bytes currently * stored at partialResult. */ /* * Information about packages. Used only in tclPkg.c. */ Tcl_HashTable packageTable; /* Describes all of the packages loaded * in or available to this interpreter. * Keys are package names, values are * (Package *) pointers. */ char *packageUnknown; /* Command to invoke during "package * require" commands for packages that * aren't described in packageTable. * Malloc'ed, may be NULL. */ /* * Miscellaneous information: */ int cmdCount; /* Total number of times a command procedure * has been called for this interpreter. */ int evalFlags; /* Flags to control next call to Tcl_Eval. * Normally zero, but may be set before * calling Tcl_Eval. See below for valid * values. */ int termOffset; /* Offset of character just after last one * compiled or executed by Tcl_EvalObj. */ LiteralTable literalTable; /* Contains LiteralEntry's describing all * Tcl objects holding literals of scripts * compiled by the interpreter. Indexed by * the string representations of literals. * Used to avoid creating duplicate * objects. */ int compileEpoch; /* Holds the current "compilation epoch" * for this interpreter. This is * incremented to invalidate existing * ByteCodes when, e.g., a command with a * compile procedure is redefined. */ Proc *compiledProcPtr; /* If a procedure is being compiled, a * pointer to its Proc structure; otherwise, * this is NULL. Set by ObjInterpProc in * tclProc.c and used by tclCompile.c to * process local variables appropriately. */ ResolverScheme *resolverPtr; /* Linked list of name resolution schemes * added to this interpreter. Schemes * are added/removed by calling * Tcl_AddInterpResolvers and * Tcl_RemoveInterpResolver. */ Tcl_Obj *scriptFile; /* NULL means there is no nested source * command active; otherwise this points to * pathPtr of the file being sourced. */ int flags; /* Various flag bits. See below. */ long randSeed; /* Seed used for rand() function. */ Trace *tracePtr; /* List of traces for this interpreter. */ Tcl_HashTable *assocData; /* Hash table for associating data with * this interpreter. Cleaned up when * this interpreter is deleted. */ struct ExecEnv *execEnvPtr; /* Execution environment for Tcl bytecode * execution. Contains a pointer to the * Tcl evaluation stack. */ Tcl_Obj *emptyObjPtr; /* Points to an object holding an empty * string. Returned by Tcl_ObjSetVar2 when * variable traces change a variable in a * gross way. */ char resultSpace[TCL_RESULT_SIZE+1]; /* Static space holding small results. */ Tcl_Obj *objResultPtr; /* If the last command returned an object * result, this points to it. Should not be * accessed directly; see comment above. */ Tcl_ThreadId threadId; /* ID of thread that owns the interpreter */ ActiveCommandTrace *activeCmdTracePtr; /* First in list of active command traces for * interp, or NULL if no active traces. */ ActiveInterpTrace *activeInterpTracePtr; /* First in list of active traces for * interp, or NULL if no active traces. */ int tracesForbiddingInline; /* Count of traces (in the list headed by * tracePtr) that forbid inline bytecode * compilation */ #ifdef TCL_TIP280 /* TIP #280 */ CmdFrame* cmdFramePtr; /* Points to the command frame containing * the location information for the current * command. */ CONST CmdFrame* invokeCmdFramePtr; /* Points to the command frame which is the * invoking context of the bytecode compiler. * NULL when the byte code compiler is not * active */ int invokeWord; /* Index of the word in the command which * is getting compiled. */ Tcl_HashTable* linePBodyPtr; /* This table remembers for each * statically defined procedure the * location information for its * body. It is keyed by the address of * the Proc structure for a procedure. * The values are "struct CmdFrame*". */ Tcl_HashTable* lineBCPtr; /* This table remembers for each * ByteCode object the location * information for its body. It is * keyed by the address of the Proc * structure for a procedure. The * values are "struct ExtCmdLoc*" (See * tclCompile.h). */ Tcl_HashTable* lineLABCPtr; Tcl_HashTable* lineLAPtr; /* This table remembers for each * argument of a command on the * execution stack the index of the * argument in the command, and the * location data of the command. It is * keyed by the address of the Tcl_Obj * containing the argument. The values * are "struct CFWord*" (See * tclBasic.c). This allows commands * like uplevel, eval, etc. to find * location information for their * arguments, if they are a proper * literal argument to an invoking * command. Alt view: An index to the * CmdFrame stack keyed by command * argument holders. */ ContLineLoc* scriptCLLocPtr; /* This table points to the location data for * invisible continuation lines in the script, * if any. This pointer is set by the function * TclEvalObjEx() in file "tclBasic.c", and * used by function ...() in the same file. * It does for the eval/direct path of script * execution what CompileEnv.clLoc does for * the bytecode compiler. */ #endif #ifdef TCL_TIP268 /* * TIP #268. * The currently active selection mode, * i.e the package require preferences. */ int packagePrefer; /* Current package selection mode. */ #endif /* * Statistical information about the bytecode compiler and interpreter's * operation. */ #ifdef TCL_COMPILE_STATS ByteCodeStats stats; /* Holds compilation and execution * statistics for this interpreter. */ #endif /* TCL_COMPILE_STATS */ } Interp; /* * EvalFlag bits for Interp structures: * * TCL_BRACKET_TERM 1 means that the current script is terminated by * a close bracket rather than the end of the string. * TCL_ALLOW_EXCEPTIONS 1 means it's OK for the script to terminate with * a code other than TCL_OK or TCL_ERROR; 0 means * codes other than these should be turned into errors. */ #define TCL_BRACKET_TERM 1 #define TCL_ALLOW_EXCEPTIONS 4 #ifdef TCL_TIP280 #define TCL_EVAL_FILE 2 #define TCL_EVAL_CTX 8 #endif /* * Flag bits for Interp structures: * * DELETED: Non-zero means the interpreter has been deleted: * don't process any more commands for it, and destroy * the structure as soon as all nested invocations of * Tcl_Eval are done. * ERR_IN_PROGRESS: Non-zero means an error unwind is already in * progress. Zero means a command proc has been * invoked since last error occured. * ERR_ALREADY_LOGGED: Non-zero means information has already been logged * in $errorInfo for the current Tcl_Eval instance, * so Tcl_Eval needn't log it (used to implement the * "error message log" command). * ERROR_CODE_SET: Non-zero means that Tcl_SetErrorCode has been * called to record information for the current * error. Zero means Tcl_Eval must clear the * errorCode variable if an error is returned. * EXPR_INITIALIZED: Non-zero means initialization specific to * expressions has been carried out. * DONT_COMPILE_CMDS_INLINE: Non-zero means that the bytecode compiler * should not compile any commands into an inline * sequence of instructions. This is set 1, for * example, when command traces are requested. * RAND_SEED_INITIALIZED: Non-zero means that the randSeed value of the * interp has not be initialized. This is set 1 * when we first use the rand() or srand() functions. * SAFE_INTERP: Non zero means that the current interp is a * safe interp (ie it has only the safe commands * installed, less priviledge than a regular interp). * USE_EVAL_DIRECT: Non-zero means don't use the compiler or byte-code * interpreter; instead, have Tcl_EvalObj call * Tcl_EvalEx. Used primarily for testing the * new parser. * INTERP_TRACE_IN_PROGRESS: Non-zero means that an interp trace is currently * active; so no further trace callbacks should be * invoked. */ #define DELETED 1 #define ERR_IN_PROGRESS 2 #define ERR_ALREADY_LOGGED 4 #define ERROR_CODE_SET 8 #define EXPR_INITIALIZED 0x10 #define DONT_COMPILE_CMDS_INLINE 0x20 #define RAND_SEED_INITIALIZED 0x40 #define SAFE_INTERP 0x80 #define USE_EVAL_DIRECT 0x100 #define INTERP_TRACE_IN_PROGRESS 0x200 /* * Maximum number of levels of nesting permitted in Tcl commands (used * to catch infinite recursion). */ #define MAX_NESTING_DEPTH 1000 /* * The macro below is used to modify a "char" value (e.g. by casting * it to an unsigned character) so that it can be used safely with * macros such as isspace. */ #define UCHAR(c) ((unsigned char) (c)) /* * This macro is used to determine the offset needed to safely allocate any * data structure in memory. Given a starting offset or size, it "rounds up" * or "aligns" the offset to the next 8-byte boundary so that any data * structure can be placed at the resulting offset without fear of an * alignment error. * * WARNING!! DO NOT USE THIS MACRO TO ALIGN POINTERS: it will produce * the wrong result on platforms that allocate addresses that are divisible * by 4 or 2. Only use it for offsets or sizes. */ #define TCL_ALIGN(x) (((int)(x) + 7) & ~7) /* * The following enum values are used to specify the runtime platform * setting of the tclPlatform variable. */ typedef enum { TCL_PLATFORM_UNIX, /* Any Unix-like OS. */ TCL_PLATFORM_MAC, /* MacOS. */ TCL_PLATFORM_WINDOWS /* Any Microsoft Windows OS. */ } TclPlatformType; /* * The following enum values are used to indicate the translation * of a Tcl channel. Declared here so that each platform can define * TCL_PLATFORM_TRANSLATION to the native translation on that platform */ typedef enum TclEolTranslation { TCL_TRANSLATE_AUTO, /* Eol == \r, \n and \r\n. */ TCL_TRANSLATE_CR, /* Eol == \r. */ TCL_TRANSLATE_LF, /* Eol == \n. */ TCL_TRANSLATE_CRLF /* Eol == \r\n. */ } TclEolTranslation; /* * Flags for TclInvoke: * * TCL_INVOKE_HIDDEN Invoke a hidden command; if not set, * invokes an exposed command. * TCL_INVOKE_NO_UNKNOWN If set, "unknown" is not invoked if * the command to be invoked is not found. * Only has an effect if invoking an exposed * command, i.e. if TCL_INVOKE_HIDDEN is not * also set. * TCL_INVOKE_NO_TRACEBACK Does not record traceback information if * the invoked command returns an error. Used * if the caller plans on recording its own * traceback information. */ #define TCL_INVOKE_HIDDEN (1<<0) #define TCL_INVOKE_NO_UNKNOWN (1<<1) #define TCL_INVOKE_NO_TRACEBACK (1<<2) /* * The structure used as the internal representation of Tcl list * objects. This is an array of pointers to the element objects. This array * is grown (reallocated and copied) as necessary to hold all the list's * element pointers. The array might contain more slots than currently used * to hold all element pointers. This is done to make append operations * faster. */ typedef struct List { int maxElemCount; /* Total number of element array slots. */ int elemCount; /* Current number of list elements. */ Tcl_Obj **elements; /* Array of pointers to element objects. */ } List; /* * The following types are used for getting and storing platform-specific * file attributes in tclFCmd.c and the various platform-versions of * that file. This is done to have as much common code as possible * in the file attributes code. For more information about the callbacks, * see TclFileAttrsCmd in tclFCmd.c. */ typedef int (TclGetFileAttrProc) _ANSI_ARGS_((Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj **attrObjPtrPtr)); typedef int (TclSetFileAttrProc) _ANSI_ARGS_((Tcl_Interp *interp, int objIndex, Tcl_Obj *fileName, Tcl_Obj *attrObjPtr)); typedef struct TclFileAttrProcs { TclGetFileAttrProc *getProc; /* The procedure for getting attrs. */ TclSetFileAttrProc *setProc; /* The procedure for setting attrs. */ } TclFileAttrProcs; /* * Opaque handle used in pipeline routines to encapsulate platform-dependent * state. */ typedef struct TclFile_ *TclFile; /* * Opaque names for platform specific types. */ typedef struct TclpTime_t_ *TclpTime_t; typedef struct TclpTime_t_ *CONST TclpTime_t_CONST; /* * The "globParameters" argument of the function TclGlob is an * or'ed combination of the following values: */ #define TCL_GLOBMODE_NO_COMPLAIN 1 #define TCL_GLOBMODE_JOIN 2 #define TCL_GLOBMODE_DIR 4 #define TCL_GLOBMODE_TAILS 8 /* *---------------------------------------------------------------- * Data structures related to obsolete filesystem hooks *---------------------------------------------------------------- */ typedef int (TclStatProc_) _ANSI_ARGS_((CONST char *path, Tcl_StatBuf *buf)); typedef int (TclAccessProc_) _ANSI_ARGS_((CONST char *path, int mode)); typedef Tcl_Channel (TclOpenFileChannelProc_) _ANSI_ARGS_((Tcl_Interp *interp, CONST char *fileName, CONST char *modeString, int permissions)); /* *---------------------------------------------------------------- * Data structures related to procedures *---------------------------------------------------------------- */ typedef Tcl_CmdProc *TclCmdProcType; typedef Tcl_ObjCmdProc *TclObjCmdProcType; /* *---------------------------------------------------------------- * Variables shared among Tcl modules but not used by the outside world. *---------------------------------------------------------------- */ extern Tcl_Time tclBlockTime; extern int tclBlockTimeSet; extern char * tclExecutableName; extern char * tclNativeExecutableName; extern char * tclDefaultEncodingDir; extern Tcl_ChannelType tclFileChannelType; extern char * tclMemDumpFileName; extern TclPlatformType tclPlatform; extern Tcl_NotifierProcs tclOriginalNotifier; /* * Variables denoting the Tcl object types defined in the core. */ extern Tcl_ObjType tclBooleanType; extern Tcl_ObjType tclByteArrayType; extern Tcl_ObjType tclByteCodeType; extern Tcl_ObjType tclDoubleType; extern Tcl_ObjType tclEndOffsetType; extern Tcl_ObjType tclIntType; extern Tcl_ObjType tclListType; extern Tcl_ObjType tclProcBodyType; extern Tcl_ObjType tclStringType; extern Tcl_ObjType tclArraySearchType; extern Tcl_ObjType tclIndexType; extern Tcl_ObjType tclNsNameType; extern Tcl_ObjType tclWideIntType; /* * Variables denoting the hash key types defined in the core. */ extern Tcl_HashKeyType tclArrayHashKeyType; extern Tcl_HashKeyType tclOneWordHashKeyType; extern Tcl_HashKeyType tclStringHashKeyType; extern Tcl_HashKeyType tclObjHashKeyType; /* * The head of the list of free Tcl objects, and the total number of Tcl * objects ever allocated and freed. */ extern Tcl_Obj * tclFreeObjList; #ifdef TCL_COMPILE_STATS extern long tclObjsAlloced; extern long tclObjsFreed; #define TCL_MAX_SHARED_OBJ_STATS 5 extern long tclObjsShared[TCL_MAX_SHARED_OBJ_STATS]; #endif /* TCL_COMPILE_STATS */ /* * Pointer to a heap-allocated string of length zero that the Tcl core uses * as the value of an empty string representation for an object. This value * is shared by all new objects allocated by Tcl_NewObj. */ extern char * tclEmptyStringRep; extern char tclEmptyString; /* *---------------------------------------------------------------- * Procedures shared among Tcl modules but not used by the outside * world: *---------------------------------------------------------------- */ #ifdef TCL_TIP280 EXTERN void TclAdvanceLines _ANSI_ARGS_((int* line, CONST char* start, CONST char* end)); EXTERN void TclAdvanceContinuations _ANSI_ARGS_((int* line, int** next, int loc)); EXTERN ContLineLoc* TclContinuationsEnter _ANSI_ARGS_((Tcl_Obj* objPtr, int num, int* loc)); EXTERN void TclContinuationsEnterDerived _ANSI_ARGS_((Tcl_Obj* objPtr, int start, int* clNext)); EXTERN ContLineLoc* TclContinuationsGet _ANSI_ARGS_((Tcl_Obj* objPtr)); EXTERN void TclContinuationsCopy _ANSI_ARGS_((Tcl_Obj* objPtr, Tcl_Obj* originObjPtr)); #endif EXTERN int TclArraySet _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *arrayNameObj, Tcl_Obj *arrayElemObj)); EXTERN int TclCheckBadOctal _ANSI_ARGS_((Tcl_Interp *interp, CONST char *value)); EXTERN void TclDeleteNamespaceVars _ANSI_ARGS_((Namespace *nsPtr)); #ifdef TCL_TIP280 EXTERN int TclEvalObjEx _ANSI_ARGS_((Tcl_Interp *interp, register Tcl_Obj *objPtr, int flags, CONST CmdFrame* invoker, int word)); EXTERN void TclArgumentEnter _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* objv[], int objc, CmdFrame* cf)); EXTERN void TclArgumentRelease _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* objv[], int objc)); EXTERN void TclArgumentBCEnter _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* objv[], int objc, void* codePtr, CmdFrame* cfPtr, int pc)); EXTERN void TclArgumentBCRelease _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* objv[], int objc, void* codePtr, int pc)); EXTERN void TclArgumentGet _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* obj, CmdFrame** cfPtrPtr, int* wordPtr)); #endif EXTERN void TclExpandTokenArray _ANSI_ARGS_(( Tcl_Parse *parsePtr)); EXTERN int TclFileAttrsCmd _ANSI_ARGS_((Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int TclFileCopyCmd _ANSI_ARGS_((Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])) ; EXTERN int TclFileDeleteCmd _ANSI_ARGS_((Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int TclFileMakeDirsCmd _ANSI_ARGS_((Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])) ; EXTERN int TclFileRenameCmd _ANSI_ARGS_((Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])) ; EXTERN void TclCreateLateExitHandler (Tcl_ExitProc * proc, ClientData clientData); EXTERN void TclDeleteLateExitHandler (Tcl_ExitProc * proc, ClientData clientData); EXTERN void TclFinalizeAllocSubsystem _ANSI_ARGS_((void)); EXTERN void TclFinalizeAsync _ANSI_ARGS_((void)); EXTERN void TclFinalizeCompilation _ANSI_ARGS_((void)); EXTERN void TclFinalizeEncodingSubsystem _ANSI_ARGS_((void)); EXTERN void TclFinalizeEnvironment _ANSI_ARGS_((void)); EXTERN void TclFinalizeExecution _ANSI_ARGS_((void)); EXTERN void TclFinalizeIOSubsystem _ANSI_ARGS_((void)); EXTERN void TclFinalizeFilesystem _ANSI_ARGS_((void)); EXTERN void TclResetFilesystem _ANSI_ARGS_((void)); EXTERN void TclFinalizeLoad _ANSI_ARGS_((void)); EXTERN void TclFinalizeLock _ANSI_ARGS_((void)); EXTERN void TclFinalizeMemorySubsystem _ANSI_ARGS_((void)); EXTERN void TclFinalizeNotifier _ANSI_ARGS_((void)); EXTERN void TclFinalizeObjects _ANSI_ARGS_((void)); EXTERN void TclFinalizePreserve _ANSI_ARGS_((void)); EXTERN void TclFinalizeSynchronization _ANSI_ARGS_((void)); EXTERN void TclFinalizeThreadAlloc _ANSI_ARGS_((void)); EXTERN void TclFinalizeThreadData _ANSI_ARGS_((void)); EXTERN int TclGetEncodingFromObj _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *objPtr, Tcl_Encoding *encodingPtr)); #ifdef TCL_TIP280 EXTERN void TclGetSrcInfoForPc _ANSI_ARGS_((CmdFrame* cfPtr)); #endif EXTERN int TclGlob _ANSI_ARGS_((Tcl_Interp *interp, char *pattern, Tcl_Obj *unquotedPrefix, int globFlags, Tcl_GlobTypeData* types)); EXTERN void TclInitAlloc _ANSI_ARGS_((void)); EXTERN void TclInitDbCkalloc _ANSI_ARGS_((void)); EXTERN void TclInitEncodingSubsystem _ANSI_ARGS_((void)); EXTERN void TclInitIOSubsystem _ANSI_ARGS_((void)); EXTERN void TclInitNamespaceSubsystem _ANSI_ARGS_((void)); EXTERN void TclInitNotifier _ANSI_ARGS_((void)); EXTERN void TclInitObjSubsystem _ANSI_ARGS_((void)); EXTERN void TclInitSubsystems _ANSI_ARGS_((CONST char *argv0)); EXTERN int TclIsLocalScalar _ANSI_ARGS_((CONST char *src, int len)); EXTERN int TclJoinThread _ANSI_ARGS_((Tcl_ThreadId id, int* result)); EXTERN Tcl_Obj * TclLindexList _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* listPtr, Tcl_Obj* argPtr )); EXTERN Tcl_Obj * TclLindexFlat _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* listPtr, int indexCount, Tcl_Obj *CONST indexArray[] )); EXTERN Tcl_Obj * TclLsetList _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* listPtr, Tcl_Obj* indexPtr, Tcl_Obj* valuePtr )); EXTERN Tcl_Obj * TclLsetFlat _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Obj* listPtr, int indexCount, Tcl_Obj *CONST indexArray[], Tcl_Obj* valuePtr )); EXTERN int TclParseBackslash _ANSI_ARGS_((CONST char *src, int numBytes, int *readPtr, char *dst)); EXTERN int TclParseHex _ANSI_ARGS_((CONST char *src, int numBytes, Tcl_UniChar *resultPtr)); EXTERN int TclParseInteger _ANSI_ARGS_((CONST char *string, int numBytes)); EXTERN int TclParseWhiteSpace _ANSI_ARGS_((CONST char *src, int numBytes, Tcl_Parse *parsePtr, char *typePtr)); #ifdef TCL_TIP280 EXTERN int TclWordKnownAtCompileTime _ANSI_ARGS_((Tcl_Token* token)); #endif EXTERN int TclpObjAccess _ANSI_ARGS_((Tcl_Obj *filename, int mode)); EXTERN int TclpObjLstat _ANSI_ARGS_((Tcl_Obj *pathPtr, Tcl_StatBuf *buf)); EXTERN int TclpCheckStackSpace _ANSI_ARGS_((void)); EXTERN Tcl_Obj* TclpTempFileName _ANSI_ARGS_((void)); EXTERN Tcl_Obj* TclNewFSPathObj _ANSI_ARGS_((Tcl_Obj *dirPtr, CONST char *addStrRep, int len)); EXTERN int TclpDeleteFile _ANSI_ARGS_((CONST char *path)); EXTERN void TclpFinalizeCondition _ANSI_ARGS_(( Tcl_Condition *condPtr)); EXTERN void TclpFinalizeMutex _ANSI_ARGS_((Tcl_Mutex *mutexPtr)); EXTERN void TclpFinalizePipes _ANSI_ARGS_((void)); EXTERN void TclpFinalizeSockets _ANSI_ARGS_((void)); EXTERN void TclpFinalizeThreadData _ANSI_ARGS_(( Tcl_ThreadDataKey *keyPtr)); EXTERN void TclpFinalizeThreadDataKey _ANSI_ARGS_(( Tcl_ThreadDataKey *keyPtr)); EXTERN char * TclpFindExecutable _ANSI_ARGS_(( CONST char *argv0)); EXTERN int TclpFindVariable _ANSI_ARGS_((CONST char *name, int *lengthPtr)); EXTERN int TclpInitLibraryPath _ANSI_ARGS_((CONST char *argv0)); EXTERN void TclpInitLock _ANSI_ARGS_((void)); EXTERN void TclpInitPlatform _ANSI_ARGS_((void)); EXTERN void TclpInitUnlock _ANSI_ARGS_((void)); EXTERN int TclpLoadFile _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *pathPtr, CONST char *sym1, CONST char *sym2, Tcl_PackageInitProc **proc1Ptr, Tcl_PackageInitProc **proc2Ptr, ClientData *clientDataPtr, Tcl_FSUnloadFileProc **unloadProcPtr)); EXTERN Tcl_Obj* TclpObjListVolumes _ANSI_ARGS_((void)); EXTERN void TclpMasterLock _ANSI_ARGS_((void)); EXTERN void TclpMasterUnlock _ANSI_ARGS_((void)); EXTERN int TclpMatchFiles _ANSI_ARGS_((Tcl_Interp *interp, char *separators, Tcl_DString *dirPtr, char *pattern, char *tail)); EXTERN int TclpObjNormalizePath _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *pathPtr, int nextCheckpoint)); EXTERN int TclpObjCreateDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr)); EXTERN void TclpNativeJoinPath _ANSI_ARGS_((Tcl_Obj *prefix, char *joining)); EXTERN Tcl_Obj* TclpNativeSplitPath _ANSI_ARGS_((Tcl_Obj *pathPtr, int *lenPtr)); EXTERN Tcl_PathType TclpGetNativePathType _ANSI_ARGS_((Tcl_Obj *pathObjPtr, int *driveNameLengthPtr, Tcl_Obj **driveNameRef)); EXTERN int TclCrossFilesystemCopy _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *source, Tcl_Obj *target)); EXTERN int TclpObjDeleteFile _ANSI_ARGS_((Tcl_Obj *pathPtr)); EXTERN int TclpObjCopyDirectory _ANSI_ARGS_((Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr)); EXTERN int TclpObjCopyFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr)); EXTERN int TclpObjRemoveDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr, int recursive, Tcl_Obj **errorPtr)); EXTERN int TclpObjRenameFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr, Tcl_Obj *destPathPtr)); EXTERN int TclpMatchInDirectory _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *resultPtr, Tcl_Obj *pathPtr, CONST char *pattern, Tcl_GlobTypeData *types)); EXTERN Tcl_Obj* TclpObjGetCwd _ANSI_ARGS_((Tcl_Interp *interp)); EXTERN Tcl_FSDupInternalRepProc TclNativeDupInternalRep; EXTERN Tcl_Obj* TclpObjLink _ANSI_ARGS_((Tcl_Obj *pathPtr, Tcl_Obj *toPtr, int linkType)); EXTERN int TclpObjChdir _ANSI_ARGS_((Tcl_Obj *pathPtr)); EXTERN Tcl_Obj* TclFileDirname _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj*pathPtr)); EXTERN int TclpObjStat _ANSI_ARGS_((Tcl_Obj *pathPtr, Tcl_StatBuf *buf)); EXTERN Tcl_Channel TclpOpenFileChannel _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *pathPtr, int mode, int permissions)); EXTERN void TclpPanic _ANSI_ARGS_(TCL_VARARGS(CONST char *, format)); EXTERN char * TclpReadlink _ANSI_ARGS_((CONST char *fileName, Tcl_DString *linkPtr)); EXTERN void TclpReleaseFile _ANSI_ARGS_((TclFile file)); EXTERN void TclpSetVariables _ANSI_ARGS_((Tcl_Interp *interp)); EXTERN void TclpUnloadFile _ANSI_ARGS_((Tcl_LoadHandle loadHandle)); EXTERN VOID * TclpThreadDataKeyGet _ANSI_ARGS_(( Tcl_ThreadDataKey *keyPtr)); EXTERN void TclpThreadDataKeyInit _ANSI_ARGS_(( Tcl_ThreadDataKey *keyPtr)); EXTERN void TclpThreadDataKeySet _ANSI_ARGS_(( Tcl_ThreadDataKey *keyPtr, VOID *data)); EXTERN int TclpThreadCreate _ANSI_ARGS_(( Tcl_ThreadId *idPtr, Tcl_ThreadCreateProc proc, ClientData clientData, int stackSize, int flags)); EXTERN void TclpThreadExit _ANSI_ARGS_((int status)); EXTERN void TclRememberCondition _ANSI_ARGS_((Tcl_Condition *mutex)); EXTERN void TclRememberDataKey _ANSI_ARGS_((Tcl_ThreadDataKey *mutex)); EXTERN VOID TclRememberJoinableThread _ANSI_ARGS_((Tcl_ThreadId id)); EXTERN void TclRememberMutex _ANSI_ARGS_((Tcl_Mutex *mutex)); EXTERN VOID TclSignalExitThread _ANSI_ARGS_((Tcl_ThreadId id, int result)); EXTERN void TclTransferResult _ANSI_ARGS_((Tcl_Interp *sourceInterp, int result, Tcl_Interp *targetInterp)); EXTERN Tcl_Obj* TclpNativeToNormalized _ANSI_ARGS_((ClientData clientData)); EXTERN Tcl_Obj* TclpFilesystemPathType _ANSI_ARGS_((Tcl_Obj* pathObjPtr)); EXTERN Tcl_PackageInitProc* TclpFindSymbol _ANSI_ARGS_((Tcl_Interp *interp, Tcl_LoadHandle loadHandle, CONST char *symbol)); EXTERN int TclpDlopen _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *pathPtr, Tcl_LoadHandle *loadHandle, Tcl_FSUnloadFileProc **unloadProcPtr)); EXTERN int TclpUtime _ANSI_ARGS_((Tcl_Obj *pathPtr, struct utimbuf *tval)); #ifdef TCL_LOAD_FROM_MEMORY EXTERN void* TclpLoadMemoryGetBuffer _ANSI_ARGS_(( Tcl_Interp *interp, int size)); EXTERN int TclpLoadMemory _ANSI_ARGS_((Tcl_Interp *interp, void *buffer, int size, int codeSize, Tcl_LoadHandle *loadHandle, Tcl_FSUnloadFileProc **unloadProcPtr)); #endif /* *---------------------------------------------------------------- * Command procedures in the generic core: *---------------------------------------------------------------- */ EXTERN int Tcl_AfterObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_AppendObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ArrayObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_BinaryObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_BreakObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_CaseObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_CatchObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_CdObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ClockObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_CloseObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ConcatObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ContinueObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_EncodingObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_EofObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ErrorObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_EvalObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ExecObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ExitObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ExprObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_FblockedObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_FconfigureObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_FcopyObjCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_FileObjCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_FileEventObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_FlushObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ForObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ForeachObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_FormatObjCmd _ANSI_ARGS_((ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_GetsObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_GlobalObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_GlobObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_IfObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_IncrObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_InfoObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_InterpObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_JoinObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LappendObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LindexObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LinsertObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LlengthObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ListObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LoadObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LrangeObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LreplaceObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LsearchObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LsetObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp* interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_LsortObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_NamespaceObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_OpenObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_PackageObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_PidObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_PutsObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_PwdObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ReadObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_RegexpObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_RegsubObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_RenameObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ReturnObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ScanObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_SeekObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_SetObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_SplitObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_SocketObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_SourceObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_StringObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_SubstObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_SwitchObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_TellObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_TimeObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_TraceObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_UnsetObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_UpdateObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_UplevelObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_UpvarObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_VariableObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_VwaitObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_WhileObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); /* *---------------------------------------------------------------- * Command procedures found only in the Mac version of the core: *---------------------------------------------------------------- */ #ifdef MAC_TCL EXTERN int Tcl_EchoCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, CONST84 char **argv)); EXTERN int Tcl_LsObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_BeepObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_MacSourceObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); EXTERN int Tcl_ResourceObjCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[])); #endif /* *---------------------------------------------------------------- * Compilation procedures for commands in the generic core: *---------------------------------------------------------------- */ EXTERN int TclCompileAppendCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileBreakCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileCatchCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileContinueCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileExprCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileForCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileForeachCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileIfCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileIncrCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileLappendCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileLindexCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileListCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileLlengthCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileLsetCmd _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Parse* parsePtr, struct CompileEnv* envPtr)); EXTERN int TclCompileRegexpCmd _ANSI_ARGS_((Tcl_Interp* interp, Tcl_Parse* parsePtr, struct CompileEnv* envPtr)); EXTERN int TclCompileReturnCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileSetCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileStringCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); EXTERN int TclCompileWhileCmd _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Parse *parsePtr, struct CompileEnv *envPtr)); /* * Functions defined in generic/tclVar.c and currenttly exported only * for use by the bytecode compiler and engine. Some of these could later * be placed in the public interface. */ EXTERN Var * TclLookupArrayElement _ANSI_ARGS_((Tcl_Interp *interp, CONST char *arrayName, CONST char *elName, CONST int flags, CONST char *msg, CONST int createPart1, CONST int createPart2, Var *arrayPtr)); EXTERN Var * TclObjLookupVar _ANSI_ARGS_((Tcl_Interp *interp, Tcl_Obj *part1Ptr, CONST char *part2, int flags, CONST char *msg, CONST int createPart1, CONST int createPart2, Var **arrayPtrPtr)); EXTERN Tcl_Obj *TclPtrGetVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr, Var *arrayPtr, CONST char *part1, CONST char *part2, CONST int flags)); EXTERN Tcl_Obj *TclPtrSetVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr, Var *arrayPtr, CONST char *part1, CONST char *part2, Tcl_Obj *newValuePtr, CONST int flags)); EXTERN Tcl_Obj *TclPtrIncrVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr, Var *arrayPtr, CONST char *part1, CONST char *part2, CONST long i, CONST int flags)); /* *---------------------------------------------------------------- * Macros used by the Tcl core to create and release Tcl objects. * TclNewObj(objPtr) creates a new object denoting an empty string. * TclDecrRefCount(objPtr) decrements the object's reference count, * and frees the object if its reference count is zero. * These macros are inline versions of Tcl_NewObj() and * Tcl_DecrRefCount(). Notice that the names differ in not having * a "_" after the "Tcl". Notice also that these macros reference * their argument more than once, so you should avoid calling them * with an expression that is expensive to compute or has * side effects. The ANSI C "prototypes" for these macros are: * * EXTERN void TclNewObj _ANSI_ARGS_((Tcl_Obj *objPtr)); * EXTERN void TclDecrRefCount _ANSI_ARGS_((Tcl_Obj *objPtr)); * * These macros are defined in terms of two macros that depend on * memory allocator in use: TclAllocObjStorage, TclFreeObjStorage. * They are defined below. *---------------------------------------------------------------- */ /* * DTrace object allocation probe macros. */ #ifdef USE_DTRACE #include "tclDTrace.h" #define TCL_DTRACE_OBJ_CREATE(objPtr) TCL_OBJ_CREATE(objPtr) #define TCL_DTRACE_OBJ_FREE(objPtr) TCL_OBJ_FREE(objPtr) #else /* USE_DTRACE */ #define TCL_DTRACE_OBJ_CREATE(objPtr) {} #define TCL_DTRACE_OBJ_FREE(objPtr) {} #endif /* USE_DTRACE */ #ifdef TCL_COMPILE_STATS # define TclIncrObjsAllocated() \ tclObjsAlloced++ # define TclIncrObjsFreed() \ tclObjsFreed++ #else # define TclIncrObjsAllocated() # define TclIncrObjsFreed() #endif /* TCL_COMPILE_STATS */ #define TclNewObj(objPtr) \ TclAllocObjStorage(objPtr); \ TclIncrObjsAllocated(); \ (objPtr)->refCount = 0; \ (objPtr)->bytes = tclEmptyStringRep; \ (objPtr)->length = 0; \ (objPtr)->typePtr = NULL; \ TCL_DTRACE_OBJ_CREATE(objPtr) #ifdef TCL_MEM_DEBUG # define TclDecrRefCount(objPtr) \ Tcl_DbDecrRefCount(objPtr, __FILE__, __LINE__) #else # define TclDecrRefCount(objPtr) \ if (--(objPtr)->refCount <= 0) { \ TCL_DTRACE_OBJ_FREE(objPtr); \ if (((objPtr)->typePtr != NULL) \ && ((objPtr)->typePtr->freeIntRepProc != NULL)) { \ (objPtr)->typePtr->freeIntRepProc(objPtr); \ } \ if (((objPtr)->bytes != NULL) \ && ((objPtr)->bytes != tclEmptyStringRep)) { \ ckfree((char *) (objPtr)->bytes); \ } \ TclFreeObjStorage(objPtr); \ TclIncrObjsFreed(); \ } #endif #ifdef TCL_MEM_DEBUG # define TclAllocObjStorage(objPtr) \ (objPtr) = (Tcl_Obj *) \ Tcl_DbCkalloc(sizeof(Tcl_Obj), __FILE__, __LINE__) # define TclFreeObjStorage(objPtr) \ if ((objPtr)->refCount < -1) { \ panic("Reference count for %lx was negative: %s line %d", \ (objPtr), __FILE__, __LINE__); \ } \ ckfree((char *) (objPtr)) # define TclDbNewObj(objPtr, file, line) \ (objPtr) = (Tcl_Obj *) Tcl_DbCkalloc(sizeof(Tcl_Obj), (file), (line)); \ (objPtr)->refCount = 0; \ (objPtr)->bytes = tclEmptyStringRep; \ (objPtr)->length = 0; \ (objPtr)->typePtr = NULL; \ TclIncrObjsAllocated(); \ TCL_DTRACE_OBJ_CREATE(objPtr) #elif defined(PURIFY) /* * The PURIFY mode is like the regular mode, but instead of doing block * Tcl_Obj allocation and keeping a freed list for efficiency, it always * allocates and frees a single Tcl_Obj so that tools like Purify can * better track memory leaks */ # define TclAllocObjStorage(objPtr) \ (objPtr) = (Tcl_Obj *) Tcl_Ckalloc(sizeof(Tcl_Obj)) # define TclFreeObjStorage(objPtr) \ ckfree((char *) (objPtr)) #elif defined(TCL_THREADS) && defined(USE_THREAD_ALLOC) /* * The TCL_THREADS mode is like the regular mode but allocates Tcl_Obj's * from per-thread caches. */ EXTERN Tcl_Obj *TclThreadAllocObj _ANSI_ARGS_((void)); EXTERN void TclThreadFreeObj _ANSI_ARGS_((Tcl_Obj *)); EXTERN void TclFreeAllocCache _ANSI_ARGS_((void *)); EXTERN void TclpFreeAllocMutex _ANSI_ARGS_((Tcl_Mutex* mutex)); EXTERN void TclpFreeAllocCache _ANSI_ARGS_((void *)); # define TclAllocObjStorage(objPtr) \ (objPtr) = TclThreadAllocObj() # define TclFreeObjStorage(objPtr) \ TclThreadFreeObj((objPtr)) #else /* not TCL_MEM_DEBUG */ #if defined(USE_TCLALLOC) && USE_TCLALLOC MODULE_SCOPE void TclFinalizeAllocSubsystem(); MODULE_SCOPE void TclInitAlloc(); #else # define USE_TCLALLOC 0 #endif #ifdef TCL_THREADS /* declared in tclObj.c */ extern Tcl_Mutex tclObjMutex; #endif # define TclAllocObjStorage(objPtr) \ Tcl_MutexLock(&tclObjMutex); \ if (tclFreeObjList == NULL) { \ TclAllocateFreeObjects(); \ } \ (objPtr) = tclFreeObjList; \ tclFreeObjList = (Tcl_Obj *) \ tclFreeObjList->internalRep.otherValuePtr; \ Tcl_MutexUnlock(&tclObjMutex) # define TclFreeObjStorage(objPtr) \ Tcl_MutexLock(&tclObjMutex); \ (objPtr)->internalRep.otherValuePtr = (VOID *) tclFreeObjList; \ tclFreeObjList = (objPtr); \ Tcl_MutexUnlock(&tclObjMutex) #endif /* TCL_MEM_DEBUG */ /* *---------------------------------------------------------------- * Macro used by the Tcl core to set a Tcl_Obj's string representation * to a copy of the "len" bytes starting at "bytePtr". This code * works even if the byte array contains NULLs as long as the length * is correct. Because "len" is referenced multiple times, it should * be as simple an expression as possible. The ANSI C "prototype" for * this macro is: * * EXTERN void TclInitStringRep _ANSI_ARGS_((Tcl_Obj *objPtr, * char *bytePtr, int len)); *---------------------------------------------------------------- */ #define TclInitStringRep(objPtr, bytePtr, len) \ if ((len) == 0) { \ (objPtr)->bytes = tclEmptyStringRep; \ (objPtr)->length = 0; \ } else { \ (objPtr)->bytes = (char *) ckalloc((unsigned) ((len) + 1)); \ memcpy((VOID *) (objPtr)->bytes, (VOID *) (bytePtr), \ (unsigned) (len)); \ (objPtr)->bytes[len] = '\0'; \ (objPtr)->length = (len); \ } /* *---------------------------------------------------------------- * Macro used by the Tcl core to get the string representation's * byte array pointer from a Tcl_Obj. This is an inline version * of Tcl_GetString(). The macro's expression result is the string * rep's byte pointer which might be NULL. The bytes referenced by * this pointer must not be modified by the caller. * The ANSI C "prototype" for this macro is: * * EXTERN char * TclGetString _ANSI_ARGS_((Tcl_Obj *objPtr)); *---------------------------------------------------------------- */ #define TclGetString(objPtr) \ ((objPtr)->bytes? (objPtr)->bytes : Tcl_GetString((objPtr))) /* *---------------------------------------------------------------- * Macro used by the Tcl core to get a Tcl_WideInt value out of * a Tcl_Obj of the "wideInt" type. Different implementation on * different platforms depending whether TCL_WIDE_INT_IS_LONG. *---------------------------------------------------------------- */ #ifdef TCL_WIDE_INT_IS_LONG # define TclGetWide(resultVar, objPtr) \ (resultVar) = (objPtr)->internalRep.longValue # define TclGetLongFromWide(resultVar, objPtr) \ (resultVar) = (objPtr)->internalRep.longValue #else # define TclGetWide(resultVar, objPtr) \ (resultVar) = (objPtr)->internalRep.wideValue # define TclGetLongFromWide(resultVar, objPtr) \ (resultVar) = Tcl_WideAsLong((objPtr)->internalRep.wideValue) #endif /* *---------------------------------------------------------------- * Macro used by the Tcl core get a unicode char from a utf string. * It checks to see if we have a one-byte utf char before calling * the real Tcl_UtfToUniChar, as this will save a lot of time for * primarily ascii string handling. The macro's expression result * is 1 for the 1-byte case or the result of Tcl_UtfToUniChar. * The ANSI C "prototype" for this macro is: * * EXTERN int TclUtfToUniChar _ANSI_ARGS_((CONST char *string, * Tcl_UniChar *ch)); *---------------------------------------------------------------- */ #define TclUtfToUniChar(str, chPtr) \ ((((unsigned char) *(str)) < 0xC0) ? \ ((*(chPtr) = (Tcl_UniChar) *(str)), 1) \ : Tcl_UtfToUniChar(str, chPtr)) /* *---------------------------------------------------------------- * Macro used by the Tcl core to compare Unicode strings. On * big-endian systems we can use the more efficient memcmp, but * this would not be lexically correct on little-endian systems. * The ANSI C "prototype" for this macro is: * * EXTERN int TclUniCharNcmp _ANSI_ARGS_((CONST Tcl_UniChar *cs, * CONST Tcl_UniChar *ct, unsigned long n)); *---------------------------------------------------------------- */ #ifdef WORDS_BIGENDIAN # define TclUniCharNcmp(cs,ct,n) memcmp((cs),(ct),(n)*sizeof(Tcl_UniChar)) #else /* !WORDS_BIGENDIAN */ # define TclUniCharNcmp Tcl_UniCharNcmp #endif /* WORDS_BIGENDIAN */ #include "tclIntDecls.h" # undef TCL_STORAGE_CLASS # define TCL_STORAGE_CLASS DLLIMPORT #endif /* _TCLINT */ /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 78 * End: */