1. 16 Mar, 2020 2 commits
    • ROOL's avatar
      Key ellipsis suffix off OS version · c5f1e092
      ROOL authored
        Omni is a disc based component, hide the ellipsis on OS versions where the other filers would also be missing one.
      Version 2.32. Tagged as 'Omni-2_32'
    • Chris Mahoney's avatar
      Add ellipsis after Free · 5e33d5f1
      Chris Mahoney authored
      As per bug 448, the "Free" menu item on each filer should have an ellipsis because it opens a persistent dialogue box.
  2. 29 Feb, 2020 3 commits
    • Robert Sprowson's avatar
      Store choices alongside Mounts · 239f6972
      Robert Sprowson authored
      Consolidate choices into a file rather than system variable, avoiding the clash when it's set to one thing in Omni:Startup, and another in <Boot$ToBeTasks>.Desktop.
      CoreInit.c: Rewrite ConfigRead/ConfigWrite to go via a choices file. Set the defaults (in the absence of choices) to match the former "a s1 d1" options.
      Events.c: Add 'Auto discover' and 'Save choices' to the filer-like menu. Reply to interactive help on the 2 new menu entries. No longer put Omni$Options into the desktop save file.
      Messages: New translation of menu entries.
      Startup: Don't bother setting Omni$Options.
      Version 2.31. Tagged as 'Omni-2_31'
    • Robert Sprowson's avatar
      Undo repository garbling · 586da07c
      Robert Sprowson authored
      MakeError.c and MakeError.h seem to have been misclassified as makefiles, and re-indented with tabs. Put back the original indentation.
    • Robert Sprowson's avatar
      Resolve some warnings · e89c8ca8
      Robert Sprowson authored
      Escape '$', use Push/Pull macros.
  3. 20 Sep, 2018 1 commit
    • Robert Sprowson's avatar
      Various fixes · 2a89615c
      Robert Sprowson authored
      Events.c: refactor ActiveMounts() to not return a pointer to a local buffer array; avoid potential NULL pointer issue on 'ir'.
      FileType.c: avoid undefined sprintf() when destination appears as one of the args
      List.c: defer dereferencing 'wr' until checked for NULL
      Print.c: don't leak 'tmp' on error
      Parse.c: defer dereferencing 'wr' until checked for NULL, tweak dprintf() to avoid potential NULL pointer read in debug output
      Found by cppcheck static analysis.
      Version 2.30. Tagged as 'Omni-2_30'
  4. 27 Aug, 2018 1 commit
    • Robert Sprowson's avatar
      Build fix · 0e7ba38c
      Robert Sprowson authored
      Missing header added for netdb (see TCPIPLibs-5_66).
      Version 2.29. Tagged as 'Omni-2_29'
  5. 15 Mar, 2018 1 commit
    • Robert Sprowson's avatar
      Recreate some lost utils · a9af1c9a
      Robert Sprowson authored
      Trying to enable OmniAccess by just turning on the flag in Startup would lead to failure because the Dormant and KillTask utilities were missing. Manually running the modules worked though.
      Dormat/KillTask:Recreate them.
      Makefile/StartShare:Install them under Utils/Access rather than in the RMStore since they're not modules.
      Startup:Sort out the ensures; don't bother supporting DCI2 any more, since we ensure UtilityModule 3.50 because of some MRS/MSR, also avoids funny business with AUNMsgs.
      Version 2.28. Tagged as 'Omni-2_28'
  6. 29 Jan, 2018 1 commit
    • Robert Sprowson's avatar
      Add OmniNFS resources · 4fd8ccbd
      Robert Sprowson authored
      Install the hi-res sprites for OmniNFS, and tidy up the Startup script to require DCI4 minimum (since it's built with COMPAT_INET4.
      Trim out an unused error string.
      Version 2.27. Tagged as 'Omni-2_27'
  7. 21 May, 2017 1 commit
  8. 28 Sep, 2016 1 commit
    • Robert Sprowson's avatar
      Bump up the username limit · ae46d706
      Robert Sprowson authored
      The user name field had a miserly 32 character limit, while the password field is 64. Align them both (internally they're stored in malloc'd strings so there's no inherent application limit).
      Version 2.25. Tagged as 'Omni-2_25'
  9. 25 Sep, 2016 1 commit
    • Robert Sprowson's avatar
      Build fix · fdaac711
      Robert Sprowson authored
      Change was written before AsmUtils-0_19 was fixed to require osvarlen() to have 2 parameters.
      Retagged as Omni-2_24.
  10. 24 Sep, 2016 1 commit
    • Robert Sprowson's avatar
      Add support for drag-to-iconbar for all of Omni's clients · d28e4b22
      Robert Sprowson authored
      The bones of support for this were already present, but disabled by the 'EXPERT' switch.
      Since the other filers have supported the operation since Ursula, enable & refactor the code to use the same protocol the other filers use.
      Allow a non root destinate to be used if the variable 'FSTitle + Filer$DefaultDir' is set.
      Remove dead UserDrag code.
      Tested with LanManFS and (Omni) NetFiler.
      Version 2.24. Tagged as 'Omni-2_24'
  11. 11 Sep, 2016 1 commit
    • Robert Sprowson's avatar
      Install NetFiler icons to !Omni · 3a2bf7bf
      Robert Sprowson authored
      Also, in the various script files, stop abusing <Omni$Path> variable, use it as Omni: like it was intended.
      Version 2.23. Tagged as 'Omni-2_23'
  12. 10 Sep, 2016 1 commit
    • Robert Sprowson's avatar
      Export some Omni constants · 16128f43
      Robert Sprowson authored
      Create an export Interface/OmniClient.h with the SWI numbers and subreason codes in.
      Use these in Client.c in place of local copy.
      Minor typos in Docs/SWI_Spec corrected.
      Version 2.22. Tagged as 'Omni-2_22'
  13. 01 Feb, 2015 1 commit
    • Robert Sprowson's avatar
      Fix for menu opening position · e4544e99
      Robert Sprowson authored
      Was trying to open its file server menu at x-72,y+16 not realising that the 'Desk' library already did the correct x-64,y+0 offset for you, leading to double adjustment fun.
      Version 2.21. Tagged as 'Omni-2_21'
  14. 06 Aug, 2014 1 commit
  15. 22 Nov, 2013 2 commits
    • Robert Sprowson's avatar
      Import of alternate sprites for clients · 4027e750
      Robert Sprowson authored
      Thanks to Chris Wraight for Morris4 and Ursula designs.
      Richard Hallas' Iyonix theme sprites for LanMan also move here which resolves a longstanding glitch that the 4bpp ROM copy got used by default so didn't quite match the rest of the colours in that theme.
      Retagged as Omni-2_19.
    • Robert Sprowson's avatar
      Allow OmniClient clients to provide theme specific sprites · 37ce05fe
      Robert Sprowson authored
      OmniClient will now check its disc based sprites to see if there are any higher res or theme specific ones available (if there aren't then it is still assumed that the client has *ICONSPRITES'd his own as before).
      No longer looks for "_22" suffix manually, the Wimp will do that for us.
      Added file type sprites extracted from earlier CVS history.
      New application sprites for Morris4 and Ursula imported, thanks to Chris Wraight for these.
      Version 2.19. Tagged as 'Omni-2_19'
  16. 14 Mar, 2013 1 commit
    • Robert Sprowson's avatar
      Write out choices to <Choices$Write> rather than inside the application directory · 7fc5c3f6
      Robert Sprowson authored
      UK/Messages: English for "update" was trapped in the C code rather than in the messages
      Filer.c/CoreInit.c: name the application as OmniClient
      FileType.c: Try Choices first then Omni:
      Mount.c: Write to <Choices$Write>, for reading try Choices first then Omni:
      Defs.h: Change app_FILES to "Omni:" so path names using this define are proper
      Version 2.18. Tagged as 'Omni-2_18'
  17. 29 Aug, 2012 1 commit
  18. 14 Dec, 2011 1 commit
    • Robert Sprowson's avatar
      Resolve some warnings. · e9097a78
      Robert Sprowson authored
      Was actually looking for a different problem, turned out to be nothing to do with OmniClient.
      Version 2.16. Tagged as 'Omni-2_16'
  19. 01 Oct, 2009 1 commit
    • Steve Revill's avatar
      Fixed export phase and clean phase. · e91289a3
      Steve Revill authored
        * Clean phase no longer generates (ignored) errors and actual errors.
        * Export phase no longer falls over
        * Removed some cruft relating to MemCheck
        * Added a stripdepnd to the !MkClean script - over-engineering
        Tested briefly for Disc build.
        The export phase error from Make was completely misleading as it was
        quoting a completely wrong line number! I have no idea how it arrived
        at the line number it did for the "mal-formed suffix rule". The line it
        quoted happened to be in the middle of a bunch of suffix rules but these
        were totally unrelated - even if you commented the whole block out, it'd
        report that line as being the problem!! Doh.
      Version 2.15. Tagged as 'Omni-2_15'
  20. 23 Apr, 2009 1 commit
    • ROOL's avatar
      Removed MemCheck dependencies. Minor fix in !Run file. · 76d288ca
      ROOL authored
        As summary for MemCheck. !Run file use of "<Omni$Path>Start" changed
        to "Run Omni:Start", to properly support multiple paths set inside
        "Omni$Path" (in case anyone does that).
        Tested with Tungsten env file on a Batch 5 tree using !Mk* Obey files.
      Version 2.14. Tagged as 'Omni-2_14'
  21. 02 Sep, 2004 1 commit
    • John Ballance's avatar
      2 bug fixes to avoid AODT failures · b182c6c8
      John Ballance authored
        c.FileType c. 298 .. initialise strings to null
        c.Event c.line 1943 .. dont use mw if it has been freed
        tested at castle
        castle added ip
      Version 2.13. Tagged as 'Omni-2_13'
  22. 18 Mar, 2003 1 commit
    • Steve Revill's avatar
      Adds BASIC version of houron and houroff so it'll run on machines with old... · 156724e8
      Steve Revill authored
      Adds BASIC version of houron and houroff so it'll run on machines with old HourGlass modules (no *HON *HOFF).
      Enlarged tiddy little buttons in connection dialogue.
      Reorganised iconbar menu so it makes sense,and changed help.
      Increased RMEnsure to require Utility module 3.5 due to use of MSR/MRS.
      Version 2.12. Tagged as 'Omni-2_12'
  23. 24 Nov, 2002 1 commit
    • Robert Sprowson's avatar
      Put util binaries in the attic · 6a6aaa62
      Robert Sprowson authored
      Deleted a few ^ in the veneers to gain 32 bit compatibility
      Info template resized to match Edit
      Ant and Acorn contact addresses removed from !Help
      The makefile for this is seriously broken,for example MkClean appears
      to compile it!
      Version 2.11. Tagged as 'Omni-2_11'
  24. 05 Dec, 2000 1 commit
    • Ben Laughton's avatar
      32 bit compatible. · b46b5094
      Ben Laughton authored
        Copied flag fiddling code is fsentry_common (_Veneers.s) from LanManFS.
        Built and ran 26bit and 32bit versions, both seem to work.
      Version 2.10. Tagged as 'Omni-2_10'
  25. 17 Aug, 2000 1 commit
    • Ben Laughton's avatar
      * Fixed Omni$Running system variable bug introduced in previous revision. · b500be07
      Ben Laughton authored
        * Fixed bug where Quit->All in expert mode would only quit the filer and
          not the whole filing system.
        * Fixed bug where just quitting the filer and attempting to re-run OmniClient
          would produce the error "Some protocols in the mounts file are not
          available, and have been ignored".
        * Added resources and fleshed-out install phase.
        * An internal error would be generated every time the Omni$Running system
          variable was read.  This was my fault, due to a change I made when removing
          the s.Base file in the previous revision .  The code variable block used
          to reference a location defined in s.Base, in which to store the generated
          string in.  I changed this to store it in the code variable block directly,
          but forgot to change an LDR to an ADR at the same time.
        * The application cleanup code was calling InitVars to reset global variables
          to their initial state, thus trashing the global_run_state variable which
          indicated that the entire filing system should be killed.  This was
          overly paranoid, as InitVars is always called on initialisation, which is
          perfectly adequete.  c.corefini removed as a result, as all it did was
          call InitVars.
        * The failure to restart cleanly on every 2nd attempt was caused by a
          horrible interaction between OmniClient's finalisation code, it's !Run
          file, callbacks and service calls.  It's too complicated to explain here,
          so if you're interested then ask me.  It's been hackily fixed for now by
          placing a call to Inet:Utils.TriggerCBs in Omni's !Run file, between the
          place where it kills the OmniClient module and reloads it (if it detects
          that the module is still running, but the task is not).  A cleaner solution
          should be implemented by making OmniClient able to restart its task in an
          intelligent manner, without requiring the module to be killed.
        * Previously, only Messages, Templates and Templates3D resource files were
          present, and nothing was done with them.  Added the remaining resources
          and fleshed-out the install phase to contruct the full application
          distribution instead of just copying the OmniClient module.
        Tested on a Risc PC.
      Version 2.09. Tagged as 'Omni-2_09'
  26. 16 Aug, 2000 1 commit
    • Ben Laughton's avatar
      * Fixed Bugzilla ID 21, where typing *RMKill OmniClient from the command line... · c1a97ad3
      Ben Laughton authored
      * Fixed Bugzilla ID 21, where typing *RMKill OmniClient from the command line would cause the error "free failed, (heap overwritten)" if task part of the OmniClient module task was running at the time, rendering
          OmniClient unusable and unloadable until the next reboot.
        * Fixed Bugzilla ID 19, where killing a protocol module when OmniClient was
          already loaded would cause an "Invalid Wimp Operation In This Context"
        * Miscellaneous bug fixes and tidy-ups.
        * The "free failed, (heap overwritten)" error is due to a bug in the
          SharedCLibrary, triggered by OmniClient calling getenv in the C library
          from its task.  The bug results from the implementation of getenv calling
          malloc - see Bugzilla ID 28 for further details.  This has been worked
          around by copying the C Library's getenv routine into OmniClient,
          renaming it to omni_getenv, and making all calls to getenv call
          omni_getenv instead; if the malloc happens from within the task rather
          than from within the C library, then things are fine.
        * The "Invalid Wimp Operation In This Context" error is caused by OmniClient
          calling Wimp_CreateMenu with R0=-1 from within the SWI handler that deals
          with protocol module deregistration.  The reasoning for this is that if,
          for example, you have the Mounts menu open, it becomes invalid at this point
          as all of the dying protocol module's mounts become unavailable.  However,
          it is not legal to call Wimp_CreateMenu at this point as you are not in
          your Wimp task context!
          The call to Wimp_CreateMenu has simply been removed.  This doesn't appear
          to cause a problem if you have a menu open with mounts belonging to the
          dying protocol module - attemping to perform an operation on one causes a
          sensible error to be reported.  A possible future enhancement would be to
          use OmniClient's pollword mechanism to cause the task to close any open
          menus on the module's behalf.
          The reason it never occurred before is that it used to call the X-bit-set
          form of the SWI and didn't check the error returned.  When I modified
          OmniClient to use Desk instead of DeskLib, I changed most SWI calls from
          the task part to be non-X-bit-set calls, and used Desk's psuedo-exception
          system to catch and report all errors at the top level of the
        * Uses AsmUtils to obtain Image$$RO$$Base.
        * Potential write through null pointer fixed in string duplication routines
          cpystr and cpyrma - they weren't checking the result of their allocation
        * Replaced the somewhat confusing all_done variable, which could take (magic)
          values between 0 and 2 inclusive to cause different sorts of quit, with
          an enumerated type called RunState.
        * Issuing of Service_OmniClient (dying) in module finalisation made
          unconditional (was previously conditional on the value of all_done), as it's
          most definitely always dying if the finalisation routine is called.  I
          think this was a hangover from when the module finalisation code was
          implemented as an atexit handler.
        * Exit code in the task does not issue Service_OmniClient (dying) if the
          entire filing system is being killed off - this will happen in module
          finalisation, which will be called as a result of the task calling
          OS_ExitAndDie.  This can only happen in "expert" builds.
        * Fixed allocation of too much memory in ItemParse routine!  It dynamically
          creates an array of pointers to structures, but was allocating enough space
          for an array of structures.
        * Fixed potential memory leak in PrintListServers routine - was calling
          realloc and assigning the result directly to the original pointer, instead
          of assigning it to a temporary and only updating the original poiiner if
          the realloc succeeds.
        * Fixed potential null pointer dereference in SortMessages routine - had a
          check for a null pointer parameter at the start, but managed to dereference
          the pointer before the check as part of a variable initialisation.
        * Added all documents from ANT's Docs directory into ours.
        Tested on a Risc PC.
        Fixes Bugzilla bugs 19 & 21.
      Version 2.08. Tagged as 'Omni-2_08'
  27. 12 Apr, 2000 1 commit
    • Ben Laughton's avatar
      Fixed a bug where submenus would sometimes not open. · bbd501e8
      Ben Laughton authored
        More fallout from the modifications to use Desk's standard event handling
        mechanisms rather that ANT's customised one.
        Releasing Wimp message event claims in Desk releases all handlers
        registered for that message, not just one.  The Omni code was
        (re)registering the event handlers for all new mounts, so if you had more
        than one mount active and did a dismount, the message event handler would
        be deregistered for all the other active mounts as well.  This means you'd
        no longer revceive MenuWarn messages, so submenus wouldn't be opened.
        All mount event handlers with the exception of the ButtonClick handler are
        now only registered once, irrespective of the number of active mounts, and
        only deregistered once there are no active mounts.  Non-message event
        handlers do not suffer the problem described above, so the ButtonClick
        handler is safe.  The reason it is still registered for each mount is that
        the handler actually uses the user-supplied data for context, whereas none
        of the other handlers did; they obtain it from global variables instead -
        Compiled and tested on a Risc PC.
      Version 2.07. Tagged as 'Omni-2_07'
  28. 23 Mar, 2000 1 commit
    • Ben Laughton's avatar
      * Fixed bug which I introduced in previous version, where errors that occurred... · fc72fc8c
      Ben Laughton authored
      * Fixed bug which I introduced in previous version, where errors that occurred when trying to connect to a mount would cause two errors to be reported.
        * When I went through blindly changing all _kernel_swi or Desk_SWI calls
          to _swix, I failed to notice that one or two of the calls rely on the
          output parameters being filled in even if an error occurs - _swix does not
          do this.  I've now created a set of type safe C veneers for all calls to
          client modules, which use _swix or _kernel_swi as necessary.  This has the
          additional benefit of making the code more readable and getting rid of
          quite a few uses of magic numbers.
        * Compiled and tested on a Risc PC.
      Version 2.06. Tagged as 'Omni-2_06'
  29. 07 Mar, 2000 4 commits
    • Ben Laughton's avatar
    • Ben Laughton's avatar
    • Ben Laughton's avatar
      Several major bugfixes and further tidying to make Omni fit into our build environment better. · d9774fb2
      Ben Laughton authored
        * Bug fix: ClientList function (Client.c) creates a textual menu desription
          for a list of clients (Info and Mounts submenus).  The description was
          generated on the stack and a pointer to it was returned.  The buffer is now
        * Bug fix: select or adjust clicks on the Omni icon just after it's loaded
          would kill the task part of Omni.  FilerCreate function (List.c) always
          calls FilerDelete, which would always attempt to close any existing filer
          window.  However, on the first call, no window exists so it passes the Wimp
          a 0 window handle.  This only appeared to happen on RISC OS 4, but I suspect
          this is to do with RISC OS 4's stricter protection of zero page.  Current
          fix is for FilerDelete to check if window handle is 0 before closing it;
          this is not very elegant - would be nicer to only call FilerDelete when the
          window was actually closed.
        * Bug fix: writable icon handling overhauled completely.  Many of the buffers
          which Omni would read the contents of writable icons into were too short
          to hold the maximum amount of text allowed in the icon.  New Icon_GetText
          call added (ExtLib.c) to allow Omni to work directly on indirected icon
          buffers wherever possible, thus removing the whole issue.
        * Stripped commented-out code from several places.
        * Changed use of Desk_bool to bool in most places.  This is a bit grim, but
          the way Desk_bool is implemented means you need to cast it in many places,
          which is even more grim.
        * Removed a few error assignements(!) because
          a) they weren't even being checked
          b) Desk's psuedo-exception system should now catch them
        * Got rid of home-grown strcasecmp calls and used Desk's instead.
        * Removed many local constants definitions and get them from system header
          files instead.
        * Removed Hdrs.h which would include *every* header file in *every* C file
          in the interests of compilation times.  C files now only include what they
        * Reimplemented the fully recursive Menu_Dispose along the lines of the
          non-recursive Desk_Menu_Dispose, which had changed since ANT's DeskLib
        * Altered quite a bit of code to prevent compiler warnings (mainly
          "use of '=' in condition context" and "variable declared but not used").
        * Uses 'proper' module finalisation instead of atexit in the interests of
          consistency and symmetry.
        * Added MemCheck support.
        * Reimplemented rma_alloc and rma_free in C (side effect of MemCheck support).
        * Altered assembler to use system header files instead of local ones.
        * Omni previously used a seeming random mixture of _kernel_swi and Desk_SWI
          SWI veneers.  All have now been changed to use _swix/_swi as appropriate.
        * Converted to use srccommit.
        Files removed:
        Files added:
        * Compiled.
        * All windows, menus checked to make sure they at least display.
        * Played around with a new NFS and LanMan mounts.
        * Basically, there shouldn't be any showstoppers, but the change from a very
          old DeskLib to Desk is a large one.  I'd be surprised if there aren't a
          few problems and this should definitely be thrashed a bit by people
          willing to do so before anyone has any confidence in it.
      Version 2.05. Tagged as 'Omni-2_05'
    • Ben Laughton's avatar
      created by srccommit. · d3ca32b2
      Ben Laughton authored
  30. 02 Mar, 2000 1 commit
    • Ben Laughton's avatar
      Initial import of Omni into CVS. · de669dd0
      Ben Laughton authored
        This is an import of the sources obtained from ANT some time ago, with
        sufficient changes to allow it to build in our standard environment.  In
        particular, this involved converting Omni to use Desk instead of DeskLib.
        ANT's DeskLib was not 'off-the-shelf' - it was based on DeskLib 2.04 (very
        old), with their own modifications.
        This means that there are quite severe bugs in the Omni code, which will
        show up if you attempt to use this version, which were previously masked by
        some of ANT's DeskLib alterations.  (Hopefully) most of these have already
        been identified, fixed and will be checked-in soon.  I felt that a
        minimal version that would simply build would be worthwhile, so that as
        many changes as possible end up under CVS' control.