Paul Rockwell writes:
> There may be a side effect, though. With the option set
and Mike's code inserted, ⎕PW will be set to whatever the
current terminal width is, not the IBM APL2 default of 80.
Yes. There are three settings that interact:
- command line "--PW xx"
- preferences "INITIAL-⎕PW xx"
- preferences "WINCH-SETS-⎕PW"
The command line setting overrides all others. This makes
sense to me.
INITIAL-⎕PW is active when WINCH-SETS-⎕PW is off. Also, good.
When WINCH-SETS-⎕PW is enabled, the code bypasses the
INITIAL-⎕PW setup. Hmmm.
I think the user's INITIAL-⎕PW should be used at startup, even
when WINCH-SETS-⎕PW is enabled.
So the startup priority would be (high to low):
- command line
- INITIAL-⎕PW
- then WINCH
- then default 80 columns
Here's a patch for that, if you want (applied against the
previous patch):
$ diff -u src/main-orig.cc src/main.cc
--- src/main-orig.cc 2024-12-19 13:20:04.000000000 -0600
+++ src/main.cc 2024-12-22 10:11:42.000000000 -0600
@@ -449,10 +452,8 @@
sigaction(SIGWINCH, &new_WINCH_action,
&old_WINCH_action);
signal_WINCH_handler(0); // pretend window size
change
}
- else
- {
- Workspace::set_PW(UserPreferences::uprefs.initial_pw,
LOC);
- }
+ // honor the user's initial PW preference, even if WINCH
is enabled
+ Workspace::set_PW(UserPreferences::uprefs.initial_pw,
LOC);
#if PARALLEL_ENABLED
memset(&new_control_BSL_action, 0, sizeof(struct
sigaction));
--
Mike Hall