Monday, November 08, 2010 at 12:03 AM.

system.verbs.builtins.Frontier.tools.windowTypes.findWindowWithMatchingAtts

on findWindowWithMatchingAtts (adratts, adradrwindow, adrwindows=nil) {
	<<Changes:
		<<9/6/01; 7:20:20 PM by JES
			<<Fix item #1 errors.
		<<10/11/01; 3:02:26 AM by JES
			<<Dereference the address of the window's table when checking its type. Without this, the matching window would never be found.
	
	if adrwindows == nil {
		adrwindows = Frontier.tools.windowTypes.init ()};
	
	local (adr);
	for adr in adrwindows {
		if typeOf (adr^) == tableType { //avoid item #1 errors
			local (adrwindow = @adr^.window, t, flFoundIt = false);
			if window.attributes.getAll (@t, adrwindow) {
				local (adratt);
				on checkAllAtts () {
					for adratt in adratts {
						local (name = nameOf (adratt^));
						if not defined (t.[name]) {
							return (false)};
						if adratt^ != t.[name] {
							return (false)}};
					return (true)};
				if checkAllAtts () {
					adradrwindow^ = adrwindow;
					return (true)}}}};
	return (false)}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.