[Date Prev][Date Next][Subject Prev][Subject Next][
Date Index][
Subject Index]
Re: Dual-action (Windows-XyWrite) HoMe and End keys
- Subject: Re: Dual-action (Windows-XyWrite) HoMe and End keys
- From: Carl Distefano cld@xxxxxxxx
- Date: Sun, 23 Jul 2006 22:52:08 -0400
Reply to note from "Martin J. Osborne"
Sun, 23 Jul 2006 17:12:50 -0400
Martin:
> I've come across one incompatibility: pressing Home in Robert's
> Directory Manager (dr) causes an error. I guess that dr must
> be looking for a plain Home.
Yes, that's a glitch that often arises when you attempt to execute a
complex key assignment, such as these dual-function keys, while a
program is running (in your case, DR). It's a limitation of the XPL
Read Character () and Read Key () operators. The workaround
is to reduce the complex key assignment to a simple one, i.e., a
single function call. One way to do that here would be to break the
two operations, LB-HM and LE-BS, into two frames, and locate them in
the .DLG file instead of U2. Using DLG enables us to call each
routine with single function in the form $x, where x is any letter
A-Z or number 0-9.
Try this: DECODE the following two frames, $H and $I. DeFine them
as a single block and issue ADD2DG to install them in the
DLG file (note that the command is add2DG, not add2U2).
XPLeNCODE v2.0
b-gin [UNTITLED]
{{;5$H}} Dual-action (Windows-XyWrite) HoMe and End keys [CLD
rev.7/23/06][cr|lf]{002}{<}SX01,{<}VA$KC{>}{>}[LB_]{<}IF{<}V
A$WS{>}>0{>}{<}SX02,{<}RC{>}{>}{<}IF{<}VA$KC{>}=={<}PV01{>}{>
}{<}SV02,[HM_]{>}{<}EI{>}{<}PV02{>}{<}EI{>}{002}[cr|lf][cr|lf
]{{;5$I}} Dual-action (Windows-XyWrite) HoMe and End keys [CL
D rev.7/23/06][cr|lf]{002}{<}SX01,{<}VA$KC{>}{>}[LE_]{<}IF{<}
VA$WS{>}>0{>}{<}SX02,{<}RC{>}{>}{<}IF{<}VA$KC{>}=={<}PV01{>}{
{062}}{<}SV02,[BS_]{>}{<}EI{>}{<}PV02{>}{<}EI{>}{002}[cr|lf][cr|l
f]
-nd
XPLeNCODE
Change the KBD file assignments as follows:
;;71=NOJM(,2,.,L,B,-,H,M,)
71=$H
and/or
;;92=NOJM(,2,.,L,B,-,H,M,)
92=$H
and
;;79=NOJM(,2,.,L,E,-,B,S,)
79=$I
and/or
;;96=NOJM(,2,.,L,E,-,B,S,)
96=$I
SAve and reLOAD the KBD file. There should no longer be any error
while running DR.
P.S. You can locate frames $H and $I in U2, provided that you add
one of the following two redirection frames near the top of the DLG
file (just under the ;DG; file identifier):
XPLeNCODE v2.0
b-gin [UNTITLED]
{{;5$H,$I}} Redirect source code for funcs $H and $I to U2 [C
LD][cr|lf]{002}{<}SX99,{<}VA$FR{>}{>}[JM_]2.{<}PV99{>}[Q2_]{0
02}[cr|lf][cr|lf]or, more generally,[cr|lf][cr|lf]{{;5$?}} Re
direct source code for all DG funcs $x to U2 [CLD][cr|lf]{002
}{<}SX99,{<}VA$FR{>}{>}[JM_]2.{<}PV99{>}[Q2_]{002}[cr|lf][cr|
lf]
-nd
XPLeNCODE
If you use the second redirection frame, you must relocate _all_
frames with names in the form $x from DLG to U2. But... one step at
a time. Try the basic workaround first.
--
Carl Distefano
cld@xxxxxxxx