Commit 752b3a8b authored by Robert Sprowson's avatar Robert Sprowson
Browse files

Fix for corrupt register in pushfontstring with password-style substitution

When CnP=TRUE but UTF8=FALSE the code path through pushfontstring for icons using the 'D' validation string would use R11 as a temporary without having preserved it (the UTF8 case preserves it because it uses R11 as a bitmask of substitutes).
Changed to always preserve R11, the routine is so huge one extra pushed register isn't going to slow it down measurably.
Adjusted options files now this combination is safe.

Tagged as Wimp-5_30-pre1.
parent d2b00489
......@@ -78,7 +78,7 @@
Option DoubleHeightVDU4, false ; Wimp_SetMode selects modes with double height VDU 4 output
Option ForceTwitter, false :LAND: Twitter ; Twitter needs-help windows & ignore interlace ModeFlags bit
Option HideIconBar, false ; icon bar is behind Wimp back window until brought to front
Option UTF8, true ; support for UTF-8 alphabet (Unicode)
Option UTF8, false ; support for UTF-8 alphabet (Unicode)
Option CnP, true ; support for RISC OS selection model and Cut-and-Paste in writeable icons
Option NoFontBodge, false ; don't use outline fonts
Option ClickSubmenus, true ; submenus opened by clicking on their parent items (configurable)
......
......@@ -13,7 +13,7 @@
; limitations under the License.
;
;
; Wimp options for an Ursula_RiscPC build of the Window Manager
; Wimp options for a RISC OS 4.00 build of the Window Manager
;
module_postfix SETS " RISC OS 4.0"
......@@ -35,9 +35,6 @@ module_postfix SETS " RISC OS 4.0"
Option MultiClose, true ; Allow Ctrl-Alt clicks on close/iconise buttons
Option PushBothBars, true ; Push in both scrollbars on adjust-drags
Option UTF8, false ; support for UTF-8 alphabet (Unicode) not required
Option CnP, false ; support for RISC OS selection model and Cut-and-Paste in writeable icons
Option RO4, true ; RISC OS 4 extensions
END
......@@ -33,6 +33,7 @@
Option MultiClose, true ; Allow Ctrl-Alt clicks on close/iconise buttons
Option PushBothBars, true ; Push in both scrollbars on adjust-drags
Option AcceptLoosePointers, false ; Sloppy "any -ve will do" checks (for 64M memory map only)
Option UTF8, true ; support for UTF-8 alphabet (Unicode)
Option RO4, true ; RISC OS 4 extensions
......
;
; This file is automatically maintained by srccommit, do not edit manually.
; Last processed by srccommit version: 1.1.
;
;
GBLS Module_MajorVersion
GBLA Module_Version
GBLS Module_MinorVersion
......
......@@ -3,7 +3,7 @@
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
*/
#define Module_MajorVersion_CMHG 5.29
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 21 May 2013
......
......@@ -6811,11 +6811,7 @@ State_IconFont * 1
State_SymbolFont * 2
pushfontstring TraceL font
[ UTF8
Push "R0, R2-R6, R8-R11, LR"
|
Push "R0, R2-R6, R8-R10, LR"
]
[ :LNOT:No32bitCode
MRS LR, CPSR
Push LR
......@@ -7383,7 +7379,6 @@ pushfontstring_exit
MOV LR,SP
ADD LR,LR,R7
TEQ R7, #0
[ UTF8
[ No32bitCode
ADDNE R7, R7, #4*11 ;11 = no of registers stacked
LDMFD LR, {R0, R2, R3, R4, R5, R6, R8, R9, R10, R11, LR}
......@@ -7392,16 +7387,6 @@ pushfontstring_exit
LDR R1, [LR]
LDMED LR, {R0, R2, R3, R4, R5, R6, R8, R9, R10, R11, LR}
]
|
[ No32bitCode
ADDNE R7, R7, #4*10 ;10 = no of registers stacked
LDMFD LR, {R0, R2, R3, R4, R5, R6, R8, R9, R10, LR}
|
ADDNE R7, R7, #4*11 ;11 = no of registers stacked
LDR R1, [LR]
LDMED LR, {R0, R2, R3, R4, R5, R6, R8, R9, R10, LR}
]
]
;SP now as at entry. Move it back over the string
; SUB SP, SP, R7
; R1 -> string to use
......
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