Ctrl-x?

May 20, 2008
9,536
64
Syracuse, NY, USA
4NT (I have v8) used to process Ctrl-x and show an up-arrow symbol. And with 4NTv8 I could "EscapeChar=Ctrl-x". None of the TCC's I have (v11 - v16) seem to process Ctrl-X at all and I can't make it the escape character.

And ... TCC processes Ctrl-g (showing a solid circle) and the directive EscapeChar=Ctrl-g works. But the Option\Advanced\SpecialCharacters dialog will not let me enter any more than a single keystroke and can't be used to specify a key combination as the escape character.
 

Charles Dye

Super Moderator
Staff member
May 20, 2008
3,898
48
Albuquerque, NM
prospero.unm.edu
I think the EscapeChar directive, and probably CommandSep and ParameterChar too, expects its value to be less than 256 and not a control character. Just basic sanity checking.... Might be nice if you could specify higher-order Unicode characters using decimal or hex, but of course that would be a new feature and therefore would not filter down to TCC/LE.
 

rconn

Administrator
Staff member
May 14, 2008
11,106
99
I think the EscapeChar directive, and probably CommandSep and ParameterChar too, expects its value to be less than 256 and not a control character. Just basic sanity checking.... Might be nice if you could specify higher-order Unicode characters using decimal or hex, but of course that would be a new feature and therefore would not filter down to TCC/LE.
And it wouldn't work for anybody (like Vince!) who isn't using a Unicode font.
 
May 20, 2008
9,536
64
Syracuse, NY, USA
How do I make Ctrl-X my escape char with the "EscapeChar" directive?
Never mind. It wasn't working because I had a second "ExcapeChar=^" later in the INI file. Now "EscapeChar=" works with either "Ctrl-X" or a literally inserted character 24.

Can it be from the OPTION dialog?
 
May 20, 2008
9,536
64
Syracuse, NY, USA
FWIW, you can enter (many) control characters in IDE/BDEBUGGER with the Scintilla Ctrl-Shift-... mechanism, and (possible more) with the Windows Alt-(KeyPad)0... mechanism.

I'm very tempted to go back to the 4DOS escape character, especially if I would never again have to fight with '^'. I don't use Ctrl-X for anything.
 
May 20, 2008
3,520
3
Elkridge, MD, USA
FYI, I successfully use the 4DOS default special characters (CommandrSep, EscapeChar, ParameterChar) in all versions of 4NT and TCC up through 16.0.43 by specifying in its %_ININAME. No NormalKey required.
 

rconn

Administrator
Staff member
May 14, 2008
11,106
99
Never mind. It wasn't working because I had a second "ExcapeChar=^" later in the INI file. Now "EscapeChar=" works with either "Ctrl-X" or a literally inserted character 24.

Can it be from the OPTION dialog?
OPTION is using a Windows edit control, which does not allow you to enter control characters.

I could subclass (or replace) the edit controls, but that would introduce new problems:
  1. The control characters won't appear as anything printable in most fonts
  2. It would be a constant support headache for the people who inadvertently entered a control character
  3. It would introduce a MAJOR incompatibility
  4. Nobody has ever asked for it until now
And given the amount of work that would be required, I'm not going to consider it until there's a substantial demand for it in the feedback forum.
 

Charles Dye

Super Moderator
Staff member
May 20, 2008
3,898
48
Albuquerque, NM
prospero.unm.edu
The real problem here is that a few users want to push beans up everybody else's nose too!
Well, I don't have a strong opinion here, and I guess it makes sense that the .INI directives should be more restrictive than SETDOS. But I suggest that, instead of disallowing everything above 0xFF, it might make more sense to disallow any character for which iswalnum() is nonzero. (I would also reject iswcntrl() characters, on the theory that nobody remembers the 4DOS defaults anymore; but that theory is obviously wrong.)
 

rconn

Administrator
Staff member
May 14, 2008
11,106
99
Well, I don't have a strong opinion here, and I guess it makes sense that the .INI directives should be more restrictive than SETDOS. But I suggest that, instead of disallowing everything above 0xFF, it might make more sense to disallow any character for which iswalnum() is nonzero. (I would also reject iswcntrl() characters, on the theory that nobody remembers the 4DOS defaults anymore; but that theory is obviously wrong.)
EscapeChar is already a 16-bit (i.e., Unicode) character.