record(view,"SearchAndReplace.find(view);",false,true);
record(view,"find(view)",false,true);
	public static boolean find(View view)	{		boolean repeat = false;		Buffer buffer = fileset.getNextBuffer(view,null);		SearchMatcher matcher = getSearchMatcher();		if(matcher == null)		{			view.getToolkit().beep();			return false;		}		record(view,"SearchAndReplace.find(view);",false,true);		view.showWaitCursor();		try		{loop:			for(;;)			{				while(buffer != null)				{					// Wait for the buffer to load					if(!buffer.isLoaded())						VFSManager.waitForRequests();					int start;					if(view.getBuffer() == buffer && !repeat)						start = view.getTextArea()							.getSelectionEnd();					else						start = 0;					if(find(view,buffer,start))						return true;					buffer = fileset.getNextBuffer(view,buffer);				}				if(repeat)				{					// no point showing this dialog box twice					view.getToolkit().beep();					return false;				}				/* Don't do this when playing a macro */				if(BeanShell.isScriptRunning())					break loop;				int result = JOptionPane.showConfirmDialog(view,					jEdit.getProperty("keepsearching.message"),					jEdit.getProperty("keepsearching.title"),					JOptionPane.YES_NO_OPTION,					JOptionPane.QUESTION_MESSAGE);				if(result == JOptionPane.YES_OPTION)				{					// start search from beginning					buffer = fileset.getFirstBuffer(view);					repeat = true;				}				else					break loop;			}		}		catch(Exception e)		{			Log.log(Log.ERROR,SearchAndReplace.class,e);			Object[] args = { e.getMessage() };			if(args[0] == null)				args[0] = e.toString();			GUIUtilities.error(view,"searcherror",args);		}		finally		{			view.hideWaitCursor();		}		return false;	}