Commit 2ec9e04e authored by Timothy E Baldwin's avatar Timothy E Baldwin Committed by ROOL

Permit special field in paths passed to OS_CLI

OS_CLI permits commands to be prefixed with a temporary filing
system, for example "ADFS:Format"

It also passes commands unrecognised to FileSwitch to be executed,
so "ADFS::HardDisc4.$.!Boot" first sets the temporary filing to
ADFS then executes ":HardDisc4.$.!Boot".

This does not work if the path contains a special field,
currently this results in an error as the special filed
would be lost.

Unfortunately many programs, including the RISC OS source
fail because of this.

Instead if a filing system prefix with special field
is found switch to the Temporary filing system and
treat the whole command as a path to execute. For example
passing "IXFS#W:$.HardDisc4.!Boot" sets the temporary filing
system to "IXFS" then executes "IXFS#W:$.HardDisc4.!Boot".

Version 6.30. Tagged as 'Kernel-6_30'
parent 9224a6ca
......@@ -50,7 +50,6 @@ BadDevVecRel:Bad device release
RedirectFail:Redirection fails
StackFull:Not enough memory on system stack
OscliLongLine:Too long
NoOscliSpecials:Special field not allowed in filing system prefix to OS_CLI
OscliTooHard:Expansion too complex
BadCommand:Command not recognised
BadParmString:Parameter expansion contains unrecognised characters
......
......@@ -9,12 +9,12 @@
GBLS Module_ApplicationDate
GBLS Module_HelpVersion
GBLS Module_ComponentName
Module_MajorVersion SETS "6.29"
Module_Version SETA 629
Module_MajorVersion SETS "6.30"
Module_Version SETA 630
Module_MinorVersion SETS ""
Module_Date SETS "24 Nov 2019"
Module_ApplicationDate SETS "24-Nov-19"
Module_ComponentName SETS "Kernel"
Module_FullVersion SETS "6.29"
Module_HelpVersion SETS "6.29 (24 Nov 2019)"
Module_FullVersion SETS "6.30"
Module_HelpVersion SETS "6.30 (24 Nov 2019)"
END
/* (6.29)
/* (6.30)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 6.29
#define Module_MajorVersion_CMHG 6.30
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 24 Nov 2019
#define Module_MajorVersion "6.29"
#define Module_Version 629
#define Module_MajorVersion "6.30"
#define Module_Version 630
#define Module_MinorVersion ""
#define Module_Date "24 Nov 2019"
......@@ -16,6 +16,6 @@
#define Module_ComponentName "Kernel"
#define Module_FullVersion "6.29"
#define Module_HelpVersion "6.29 (24 Nov 2019)"
#define Module_LibraryVersionInfo "6:29"
#define Module_FullVersion "6.30"
#define Module_HelpVersion "6.30 (24 Nov 2019)"
#define Module_LibraryVersionInfo "6:30"
......@@ -187,7 +187,6 @@ CommonErrorAddresses
& ErrorBlock_RedirectFail
& ErrorBlock_StackFull
& ErrorBlock_OscliLongLine
& ErrorBlock_NoOscliSpecials
& ErrorBlock_OscliTooHard
& ErrorBlock_BadParmString
& ErrorBlock_CoreNotWriteable
......
......@@ -276,6 +276,7 @@ OscliLineTooLong
03
Push "R2" ; save buffer UID
SUB R10, R0, #1
; now check for filing system name as prefix
Push "R3"
MOV R3, #0 ; j.i.c. fileswitch is dead!!
......@@ -290,17 +291,7 @@ OscliLineTooLong
BVS letmodprefatit
CMP R3, #0
BEQ letmodprefatit
Pull "R3"
Push "R2" ; save "temp FS set" indicator
ADR R0, ErrorBlock_NoOscliSpecials
[ International
BL TranslateError
|
SETV
]
B OscliExit
MakeErrorBlock NoOscliSpecials
BNE DoFSCV_RunR10
letmodprefatit
Pull "R3"
......@@ -683,6 +674,8 @@ OneModule_Failed
]
B OscliExit
DoFSCV_RunR10
MOV R0, R10
UKCNotClaimed
MOV R1, R0
DoFSCV_Run
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment