pike.git / lib / master.pike.in

version» Context lines:

pike.git/lib/master.pike.in:1:   // -*- Pike -*-   //   // Master Control Program for Pike.   //   // This file is part of Pike. For copyright information see COPYRIGHT.   // Pike is distributed under GPL, LGPL and MPL. See the file COPYING   // for more information.   // - // $Id: master.pike.in,v 1.300 2003/09/18 17:00:10 grubba Exp $ + // $Id: master.pike.in,v 1.301 2003/09/18 22:52:00 nilsson Exp $      #pike __REAL_VERSION__      // Some programs destroys character pairs beginning with the currency   // symbol when running in chinese locale.   #if "ยค/" != "\244/"   #error "master.pike.in is corrupted."   #endif      // --- Some configurable parameters
pike.git/lib/master.pike.in:511:    return replace(path,"\\","/");   #endif   }      //! Mapping containing the cache of currently compiled files.   //!   //! This mapping currently has the following structure:   //! @mapping   //! @member program filename   //! @endmapping + //! The filename path seperator is / on both NT and UNIX.   //!   //! @note   //! As a special case the current master program is available   //! under the name @expr{"/master"@}.   mapping(string:program|NoValue) programs=(["/master":object_program(this_object())]);      mapping (program:object|NoValue) objects=([    object_program(this_object()):this_object(),    object_program(_static_modules): _static_modules   ]);
pike.git/lib/master.pike.in:760:   //   // This function is called by the compiler when a delayed compilation   // error occurs in the given program. It should remove all references   // to the program so that it can be freed.   //   void unregister(program p)   {    if(string fname=search(programs,p)) {    resolv_debug("unregister %s\n", fname);    programs[fname] = no_value; -  // FIXME: The following assumes that programs are always stored -  // with '/' as path separators, even on NT. Haven't checked if -  // that always is the case. +     fname = dirname (fname);    object n;    if ( fname!="" && objectp (n = fc[fname]) )    if (n->is_resolv_dirnode || n->is_resolv_joinnode)    n->delete_value (p);    }    if (objectp (objects[p])) objects[p] = no_value;    foreach (fc; string name; mixed mod)    if (objectp(mod) && object_program(mod) == p)    fc[name] = no_value;