Branch: Tag:

2008-06-05

2008-06-05 14:58:28 by Martin Stjernholm <mast@lysator.liu.se>

Changed the environment implementation to use __builtin._getenv and
__builtin._putenv so that the real environment is queried and changed.
There is still a local mapping for caching purposes, but it has a
different format.

The _main function neither receives nor passes along an environment
mapping to the script main() or to the --execute code.

NOTE: Both of the above have compat implications, so compat fallbacks
have been added.

Also added a kludge to the master_efuns stuff to use the versions from
the right compat version. That's not entirely right, but it's a bit
better at least.

Rev: lib/master.pike.in:1.434

219:    "get_codec_params()": "predef::_Ffmpeg.ffmpeg.set_codec_param":1,    "get_compat_handler()": "predef::MasterObject.get_compat_master":1,    "get_parsed_url": "predef::Protocols.LDAP.parse_ldap_url":1, +  "getenv": "predef::Process.create_process.create":1, +  "getenv(\"TERM\")": "predef::Stdio.Terminfo.getTerm":1,    "getgrent": "predef::get_all_groups":1,    "getgrent()": "predef::get_all_groups":1, "predef::getgrgid":1, "predef::getgrnam":1,    "getpwent": "predef::get_all_users":1,
883:   "predef::Pike.Backend.add_file": "main()"   "predef::Pike.DefaultBackend": "main()"   "predef::Pike.GenericBackend.`()": "main()" - "predef::Process.create_process.create": "setuid" + "predef::Process.create_process.create": "getenv" "setuid"   "predef::Protocols.Bittorrent.Torrent.fix_targets": "verify_target()"   "predef::Protocols.DNS_SD.Service": "_Protocols_DNS_SD.Service"   "predef::Protocols.HTTP.Query.datafile": "Protocols.HTTP.Query.PseudoFile"
955:   "predef::Stdio.Terminfo.Termcap": "TermMachine"   "predef::Stdio.Terminfo.Termcap.create": "TermcapDB"   "predef::Stdio.Terminfo.Terminfo": "TermMachine" + "predef::Stdio.Terminfo.getTerm": "getenv(\"TERM\")"   "predef::Stdio.UDP": "files.UDP"   "predef::Stdio.UDP.send": "flag"   "predef::Stdio.async_cp": "main()"