Mailing List ecs-isp@2rosenthals.com Archived Message #1090

Fra: "Peter Moylan" <ecs-isp@2rosenthals.com> Full Headers
Undecoded message
Emne: Re: [eCS-ISP] VIO Font Size (Was: Re: Getting started with Let's Encrypt)
Dato: Wed, 11 Dec 2024 21:21:19 +1100
Til: eCS ISP Mailing List <ecs-isp@2rosenthals.com>

On 11/12/24 11:46, Alfredo Fernández Díaz wrote:
On 2024/12/10 11:42, Peter Moylan wrote:
On 09/12/24 23:10, Alfredo Fern�ndez D�az wrote:
On 2024/12/09 01:36, Peter Moylan wrote:
On 09/12/24 00:20, Alfredo Fern�ndez D�az wrote:
On 2024/12/08 09:56, Peter Moylan wrote:
On 08/12/24 15:57, Steven Levine wrote:
In <list-11330729@2rosenthals.com>, on 12/08/24 at 02:11 PM,
"Peter Moylan" <ecs-isp@2rosenthals.com> said:

That made me rediscover a flaw in the design: changing the
font size changes it for all instances of the shell (and
also all instances of 4OS2) rather than for just one
application.

[...]

I should look into where the font size is saved to. It might
be saved in the extended attributes of the shell. If so, there
could be a way to add the relevant information to the extended
attributes of one program object, without affecting the global
command shell font.

It is saved in the USER INI file, as a two-byte character value
(first byte is VIO cell size cols, second is rows) of the
'Shield' application. The name of the key under which this value
is stored is language-dependent, and it starts with or at least
has a tilde (~) character in it. I just set it on a VM and it
seems to be '~Font Size...' in English ArcaOS.

That's the first time I've seen a key that ends with a sequence of dots.
Very strange.


Not really, there is a reason for everything. Apparently all code
dealing with VIO windows lives in PMVIOP.DLL, and the function that
handles the VIO default font size reads string #153 from that DLL to use
it as the key name. The string in question corresponds to the menu item
that invokes (surprise!) the dialog that lets you adjust VIO font size.
Naturally, the string is NLS-dependent, and complying with CUA, it ends
in '...' to signal that it will invoke a dialog, rather than execute
some action right away.

Interesting stuff. I wouldn't have guessed any of that.

In the end, I implemented a very simple solution. Here's the complete script.

/* Wrapper to set font size and then run accounts. */

CALL RxFuncAdd SysLoadFuncs, rexxutil, sysloadfuncs
CALL SysLoadFuncs
oldsize = SysIni("USER", "Shield", "~Font Size...")
rows = 22
cols = 12
newsize = D2C(cols)||D2C(rows)
result = SysINI( "USER", "Shield", "~Font Size...", newsize)
'start /C /WIN D:\accounts\accounts.exe'
result = SysINI( "USER", "Shield", "~Font Size...", oldsize)

I could have done something fancier if I put more time into it, but for now I have higher-priority problems to look at.

I see. After some digging at the new Hobbes archive, a little GPL
utility called 'Console' turned up, that does just that: it will adjust
the font size for DOS or OS/2 VIO sessions (and much more!)
programmatically, and leave the default setting entirely alone. I knew
this must be possible --after all you can do that precisely via the VIO
window system menu, pushing the 'Change' button instead of 'Save'--
although I doubt that it can be done directly from REXX or something
similar. I seem to recall some old WPS enhancer also included another
command-line utility that could do it, more or less, but I forget which
one -- X-it, Nice, NPS...?

Thanks. I've saved that information to look at later when I have more time.

--
Peter Moylan                  peter@pmoylan.org
http://www.pmoylan.org

Abboner: Feed, Digest, Index.
Stopp abbonement
E-post til ListMaster