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

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