// This file is a part of the standard object system devised by Buddha. // Currently under development. // This file is part of the TMI mudlib distribution. // Please include this header if you use this code. // Written by Buddha@TMI, modularized and revised (92-05-01) // Expanded to use a superior security system by Buddha (92-05-31) // Temporary flag attribute system added by Watcher (93-02-21) // Altered by Pallando @ Tabor (93-03-17) static nomask private mixed _query( mapping map, string *parts ) { mixed value; int i, s; value = map; s = sizeof( parts ); for( i = 0 ; i < s ; i++ ) { if( undefinedp( value = value[parts[i]] ) ) break; if( !mapp( value ) ) break; } return value; } static nomask private int _delete( mapping map, string *parts ) { if( sizeof( parts ) == 1 ) { map_delete( map, parts[0] ); return 1; } if( !map[parts[0]] || !mapp( map[parts[0]] ) ) return 0; return _delete( map[parts[0]], parts[1..sizeof( parts )-1] ); } static nomask private mixed _set( mapping map, string *parts, mixed value ) { mixed old_value; // Leto 21-01-95 An old security hole closed (again?) // added following to stop any possible setting of '/' if (sizeof(parts) == 0) return; if( sizeof( parts ) == 1 ) { old_value = map[parts[0]]; map[parts[0]] = value; return old_value; } if( !map[parts[0]] || !mapp( map[parts[0]] ) ) map[parts[0]] = ([ parts[1] : 0 ]); return _set( map[parts[0]], parts[1..<1], value ); }