Hoooorray! One more fix needed for Olav Mørkrid!
authorSteffen Nurpmeso <steffen@sdaoden.eu>
Tue, 2 Feb 2021 22:04:26 +0000 (23:04 +0100)
committerSteffen Nurpmeso <steffen@sdaoden.eu>
Tue, 2 Feb 2021 22:04:54 +0000 (23:04 +0100)
src/mx/main.c
src/mx/tty-mle.c

index b976f974238d33ae86549d0d2dd5f2215b5b7414..9a406c2e642431c2ec64dc2fb60dd3e1ffb50924 100644 (file)
@@ -1199,7 +1199,14 @@ je_expandargv:
 #ifdef mx_HAVE_TCAP
       mx_termcap_init();
 #endif
+      /* We have to fake some state of readiness in order to allow resolving of
+       * lazy `bind's (from config files); this is ok and allows one call to
+       * tty_init() (and one to tty_destroy()) instead of two according pairs
+       * for send and receive mode, which also had the ugly effect that -A
+       * account switch and -X commands ran without properly setup tty/MLE! */
+      n_psonce |= n_PSO_STARTED_CONFIG;
       mx_tty_init();
+      n_psonce ^= n_PSO_STARTED_CONFIG;
    }
 
    /* Now we can set the account */
index d6c90a1ea18e33b86ba351416a35665509668330..376067abe991806608d0b3814bb4a6e9fcf1e442 100644 (file)
@@ -91,8 +91,8 @@ FILE *mx_tty_fp; /* Our terminal output TODO input channel */
     * specify *termcap-disable*, and let it mean exactly that.
     * On the other hand users can be expected to use `bind' in resources.
     * Therefore bindings which involve termcap/terminfo sequences, and which
-    * are defined before n_PSO_STARTED signals usability of termcap/terminfo,
-    * will be (partially) delayed until tty_init() is called.
+    * are defined before n_PSO_STARTED_CONFIG signals usability of
+    * termcap/terminfo, will be (partially) delayed until tty_init() is called.
     * And we preallocate space for the expansion of the resolved capability */
 #  define a_TTY_BIND_CAPNAME_MAX 15
 #  define a_TTY_BIND_CAPEXP_ROUNDUP 16
@@ -3437,7 +3437,7 @@ a_tty_bind_create(struct a_tty_bind_parse_ctx *tbpcp, boole replace){
    }
 
    /* Directly resolve any termcap(5) symbol if we are already setup */
-   if((n_psonce & n_PSO_STARTED) &&
+   if((n_psonce & n_PSO_STARTED_CONFIG) &&
          (tbcp->tbc_flags & (a_TTY_BIND_RESOLVE | a_TTY_BIND_DEFUNCT)) ==
           a_TTY_BIND_RESOLVE)
       a_tty_bind_resolve(tbcp);
This page took 0.064259 seconds and 4 git commands to generate.