Locate
Locate is a file search utility that allows objects to be found based on a flexible set of criteria. Filenames can include wildcards and matches can depend on file size, modification date, file type, file attributes or file contents.
Specifying a file to find
The objects shown in the match window can be easily accessed: files and applications can be run directly and directories opened. It is also easy to view the files by opening their parent directories. The results of a search can be saved out to disc for future reference or so that the search parameters can be re-used.
A list of files found by Locate, showing how to save it
From version 0.80, Locate can display full information about the files it has found. An Object Info dialogue box has also been added to the menu.
The full-info display mode
Locate is currently under development and there are many features that I still wish to add. I would welcome comments or suggestions from anyone who downloads a copy, as this is the only way the application will get better.
In order to use Locate, you will require:
- a minimum of RISC OS 3.10,
- the 32-bit Shared C Library (version 5.43 or later), which is a standard part of RISC OS 5 and can be obtained for other systems as part of the System Resources download from RISC OS Open Ltd, and
- the Nested Window Manager, which is a standard part of RISC OS 4, 5 or Six, or can be soft-loaded on RISC OS 3.
Version History
0.10 (18 March 2001)
- First released version.
0.11 (23 March 2001)
- Corrected default shading of icons in search window.
- Implemented correct Tab caret movement in the search window.
- Fixed Wimp_TextOp code so that it works under RISC OS 3.1.
0.20 (27 March 2001)
- Improved error handling within search loop, so that claimed memory is returned.
- Transferred results window formatting to ARM code for speed.
- Results windows are re-formatted when the Desktop Font is changed, to ensure that as much text as possible is visible.
- The option of case sensitivity added to filename matching.
- Interactive help support is fully implemented.
- The filetype menu in the search window is implemented in a basic way.
- Keypresses are passed on to the Wimp correctly from the search window.
- Adjust-Cancel now resets the search window without closing it.
- Fixed possible -- but very unlikely -- problem with MessageTrans file handling.
- Choices window implemented in a limited way (only allowing the search path to be changed).
- Fixed problem with broken pointers when clicking over empty section of results window.
- Results can be saved out as text files.
0.21 (12 April 2001)
- Fixed bug in search code that caused aborts and random crashes if the code returned to BASIC with the overflow flag set.
0.30 (19 April 2001)
- Searches can now multi-task if required.
- Clicking select on the icon-bar will bring the search window to the front if it's already open.
- The item under the pointer is transiently selected when the results window menu is called up and menu options now act on the selected item if appropriate.
- Implemented 'Open parent' menu option.
- Escape will exit from singletasking searches.
- Further improvements to error trapping during searches. It is now possible to continue a search if a filer error occurs, by dropping out of the current directory.
- Error boxes brought in line with RISC OS 3.5 standards for those using the new(!) OS.
- Caret movement within search window completed.
- Dragging objects to the icon-bar will open a search window to search that path.
- It is possible to ignore the contents of Image FS's directories (ie. treat them as files).
- The modification dates of files can be specified in terms of age.
0.40 (19 June 2001)
- Locate no longer crashes if the directory icon in the search window is dragged to a window that supports RAM transfers.
- Corrected some apostrophes in the window templates.
- File-system errors can be logged into the results window without raising an error during the search.
- Search window tidied up, with 'advanced' search options hidden unless required.
- Results can be saved in a format that can be loaded back into Locate, keeping all the search options available.
- Icons redesigned and made more consistent.
- A search history list allows the previous search parameters to be called up quickly for re-use.
- Clicking Adjust on the icon-bar opens the Search Window with the parameters from the last search.
- Pressing Return in Choices Window now has an effect.
- Multiple filetypes can be searched for, along with the option to look for 'files not of type'.
- Searching no longer tries to match applications and directories on the basis of their size, date or filetype: they now match by default.
- Matching ImageFS's files as files is now possible: they are treated as directories for the files within (if the parent ImageFS is running) and as files for the matching.
- File attributes (read and write access, locking) can now be matched.
- Drag the icon-bar icon to a directory to open a search window for that location.
- Proper use of the !Boot.Choices is now made on systems which support this feature.
- Documentation overhauled and converted to StrongHelp.
0.50 (22 July 2001)
- If no files are found, this now gets reported in the results window.
- An information field is displayed at the bottom of the results window, showing the progress of a multitasking search.
- The results window creation and formatting code has been rationalised.
- Changes made to wildcard filename comparison code to speed it up.
- File contents can now be searched with wildcards.
- Searches can be saved from the search window, without the results.
- Separate sprites for RISC OS 3 and RISC OS 4 now provided.
- Selections can now be changed by drag-box in the results window (supports Wimp_AutoScroll on RISC OS 4).
- No longer uses Wimp sprite pool for results window icons.
- Fixed problem with panes not being located correctly on mode changes and re-sizes.
- Fixed update of history field in choices window when reset.
0.60 (30 September 2001)
- Files that are no longer present are handled more gracefully when run from the results window.
- Save search option added to results window menu.
- Filetype menu improved (faster generation, alphabetical sorting, icon sprites), using code provided by Harriet Bazley.
- Bug with direct saving from search dialogue box fixed.
- Fixed problem when a search settings file was loaded while the search window was open.
- Interactive help in save window made context sensitive to the data being saved.
- Objects and selections can be dragged out of results windows and on to other parts of the Desktop in the usual way.
- The configured preference for DragASprite is read from CMOS on startup and honoured.
- Datestamps of directories and applications are now checked when a date criteria has been set.
- Fixed bug causing loose panes to be produced by an icon bar click if the search window was open.
0.62 (2 October 2001)
- Fixed bug introduced in 0.60, which stopped dragging the directory to set the search path from working.
- Support for the global clipboard added to results window.
0.65 (12 May 2002)
- Added option to stop the results window scrolling down as new matches are found and added.
- Fixed (hopefully) widthing bug in filetype menu under RISC OS 3.1.
- Can now search a comma-separated list of directories.
- Search is now more tolerant of filename termination.
- Filetype menu can be made alphabetical or numerical depending on if Select or Adjust is used.
- History entries can be given names.
- Acts as FilerAction plugin under Select, so that searches can be started from the Filer menu.
0.66 (13 May 2002)
- Bug which prevented Filer Action plugin from terminating correctly has been fixed.
0.67 (14 May 2002)
- Bug which caused "Unknown or missing variable" errors as plugin searches ended has been fixed.
- Clicking on the close icon of the 'active' results window during a search no longer crashes Locate (the search terminates correctly).
0.70 (10 July 2002)
- BASIC string length restriction removed from search path list (now 4095 characters long by default).
- Dragging objects into the path lists with Shift held down replaces the contents of the list.
- A warning is given if a search is attempted with no paths specified.
- Overlength strings are now caught on all drop-down menu insertions in the Search window.
- Does not need an icon bar icon or search window when acting as a plugin, and can quit once the search is over.
- Choices window re-designed.
0.71 (3 August 2002)
- Fixed broken filetypes and file sizes reported when dragging objects out of the results window.
- Bug in search error handling fixed (triggered when error reporting switched on).
0.72 (18 August 2002)
- Fixed bug introduced in 0.70 that caused Age details to be ignored.
0.73 (22 August 2002)
- Fixed bug introduced in 0.70 causing the action of the Ignore ImageFS's contents option to be inverted.
- Fixed bug with Age searches using start and end values.
0.80 (29 September 2002)
- Full info display option added for results window (Locate file format upgraded to Version 1).
- Fixed various issues relating to manipulating and dragging selections in the results window.
- Info bar at base of results window is now filled (as per Style Guide).
- Added Select all option to results window menu.
- Added Object info option to results window menu.
- Menu-selected items in the results window deselect correctly if the menu tree closes.
- Documentation merged into one central file, from which StrongHelp and text versions are derived automatically. The contents of the original text help were discarded.
- Save boxes now remember their filenames and settings until the menu tree is closed.
- Size of selection drag boxes from results window (if DragASprite support is off) now calculated correctly if the window is scrolled to the end.
- Search error counting bug fixed.
- !Locate.!Help updated to set <Locate$HelpText> to point to the plain text version of this file.
- Missing interactive help added for Date/Age options pane.
- Date and time selection windows added, to make entering the modification dates easier.
- Full support for the RISC OS Theme Manager has been added. Creating additional sprites is left as an exercise for the user.
- Results window entries are greyed out if they are found to have been moved since the files were located.
- Results window menu fixed so it works correctly with all windows during searching.
- Locate will refuse to load a file during a search (and hence not fall over in the process). A better fix is required.
0.85 (14 December 2002)
Public Beta release.
- Code updated to be 26/32-bit neutral.
- Search routines changed to use OS_GBPB 10, to avoid problems with several filesystems when using OS_GBPB 11.
- Search can support Untyped files correctly (and the correct sprites are used under Select).
0.86 (6 February 2003)
Public Beta release.
- Corrected use of OS_HeapSort32.
- Corrected bug in History menu width calculations under RISC OS 3.1.
0.87 (4 July 2003)
Public Beta release.
- Fixed bug that caused corrption of search options when 'File name' field was left blank.
- Added 'Website' button to Program Info window.
- Potential problem with aborted RAM transfers fixed.
0.88 (9 November 2003)
Public Alpha release.
- Added
-open
command line switch to allow a search window to be opened at startup. - Supplied StartLocate utility to allow Locate to be used with the STDMMK drivers.
- Files with no read permissions are trapped cleanly and logged in the results window if a contents search is attempted.
- Paths are checked for length, with Locate aborting the current directory if they get too long for BASIC strings (preventing a crash).
0.89 (1 February 2004)
- Fixed bug with contents search routines that prevented matches from being reported.
0.89a (6 June 2004)
- Fixed bug preventing unused keys being passed on from History Add window.
0.89b (8 December 2004)
- Fixed bug causing filetype searches to fail for typed files when used in conjunction with date or age restrictions.
2.00 (19 April 2013)
First Stable Release of Locate 2.
- Complete re-implementation in C.
2.10 (26 February 2016)
Second stable release.
- ‘Default’ hotlist items added, to allow a standard search to be customised (ticket #475).
- Implement FilerAction Plugin code for use on RISC OS Select (ticket #557).
- Fix ZeroPain errors when parsing search dialogue box (ticket #561).
- Display filenames for error locations (ticket #557).
2.11 (6 March 2016)
Update to second stable release.
- Stop stray debug output from being sent to Reporter (tickets #580 & #586).
2.12 (28 July 2020)
Update to second stable release.
- Remove all unbounded string operations from source code.
- Correctly ensure that a C99-friendly version of the Shared C Library is present (ticket #634).
- Use ResConf-style system variables to identify resources.