Skip to content
Snippets Groups Projects
  1. Apr 06, 2024
    • Rob Swindell's avatar
      Save/restore js.scope property value in sbbs_t::js_execfile() · c3b47aca
      Rob Swindell authored
      This solves the problem of exit() values (e.g. non-zero return codes) not
      getting propagated to callers when nest-called (e.g. via bbs.exec()).
      
      I think it was kk4qbn that pointed this out via IRC: an exit(1) call from
      prextrn.js did not stop the external program from running (as it should, for
      any non-zero exit code). This only happened when the prextrn.js called another
      JS script (e.g. via bbs.exec() or as was the case here, indirectly via "EXEC"
      @-code in the YesNoBar text.dat string (which executed yesnobar.js). This
      nested JS script invocation via sbbs_t::js_execfile() would clobber the stored
      js.scope property value (where the "exit_code" property is written).
      
      Script invoked in their own context (e.g. via js.exec()) wouldn't have this
      issue in the first place.
      c3b47aca
    • Rob Swindell's avatar
      First pass at making a useful top-level build doc. A lot of content from the... · f7771613
      Rob Swindell authored
      First pass at making a useful top-level build doc. A lot of content from the wiki should likely be moved here.
      f7771613
  2. Apr 05, 2024
  3. Apr 04, 2024
  4. Apr 03, 2024
  5. Apr 01, 2024
  6. Mar 31, 2024
  7. Mar 30, 2024
    • Rob Swindell's avatar
      Save and restore the js.exec_path, exec_dir, and exec_file properties · 9013f866
      Rob Swindell authored
      When invoking a nested JS script, these properties of the "js" object would
      be overwritten and not restored, as discovered/reported by Nightfox when his
      trivial game script would indirectly execute yesnobar.js, his subsequent use
      of js.exec_dir would point to the wrong location (the "exec" directory, parent
      of yesnobar.js, and not the direcctory where his game script was located).
      The exec_path and exec_file properties had the same problem as demonstrated
      by a simple test.js placed in (and executed from) a directory other than the
      "exec" dir:
      	function f() {
              print("js.exec_path = " + js.exec_path);
              print("js.exec_dir = " + js.exec_dir);
              print("Js.exec_file = " + js.exec_file);
      	}
      	f();
      	console.yesno("test");
      	f();
      
      This would only trigger the problem when executed from the BBS and whebn the
      YesNoQuestion text.dat string invokes the "yesnobar" module via EXEC @-code and
      yesnobar.js exists (in exec or mods dir), superceding yesnobar.bin which does
      not trigger this issue (not a JavaScript mod).
      9013f866
    • Rob Swindell's avatar
      Remove CVS keywords from (not all) .ini files · ceb315be
      Rob Swindell authored
      ceb315be
    • Rob Swindell's avatar
      Merge branch 'gttrivia_js_exec_dir_change_workaround' into 'master' · 679fe5cf
      Rob Swindell authored
      Good Time Trivia: Make a copy of js.exec_dir on startup and use the copy, since js.exec_dir could change indirectly (i.e., console.yesno() running yesnobar.js in sbbs/exec)
      
      See merge request !430
      679fe5cf
    • Eric Oulashin's avatar
      Good Time Trivia: Make a copy of js.exec_dir on startup and use the copy,... · 91babf1d
      Eric Oulashin authored and Rob Swindell's avatar Rob Swindell committed
      Good Time Trivia: Make a copy of js.exec_dir on startup and use the copy, since js.exec_dir could change indirectly (i.e., console.yesno() running yesnobar.js in sbbs/exec)
      91babf1d
    • Deucе's avatar
      Unconditionally call sftp_end() when input thread exits. · 0a397616
      Deucе authored
      Hopefully fixes issue where certificate file is left open and so
      can't be deleted.
      0a397616
  8. Mar 29, 2024
  9. Mar 28, 2024
  10. Mar 27, 2024
  11. Mar 25, 2024
    • Rob Swindell's avatar
    • Rob Swindell's avatar
      Add 2 new .ini settings: MainLoopDelay and SocketSelectTimeout (default: 0) · 5fd72f31
      Rob Swindell authored
      - MainLoopDelay - in milliseconds
        Set this to a non-zero value to add some CPU yielding to the main loop
      - SocketSelectTimeout - in milliseconds
        Set this to a non-zero value to add some CPU yielding while waiting for
        receive data from the TCP socket
      
      These are 2 knobs created for Fzf (FQBBS) to "to reduce the CPU usage". Their
      default values are currently 0, so you'll need to set these to non-zero values
      to play with each of them and see their inpact on CPU utilization and
      responsiveness. I'd suggest starting with low values (e.g. 1) and experimeting
      from there.
      
      Incremented version to 0.5
      5fd72f31
    • Rob Swindell's avatar
      Initialize telnet options when passed -h option (withouth -l) · c4644bf9
      Rob Swindell authored
      As requested by Fzf (FQBBS):
      
        When SVDM uses an inherited socket (the -h option) no telnet negotiations
        are done.  As a result, the connection is assumed to be in ASCII mode and
        server side CR characters are translated to CR/LF.  Since most programs are
        already transmitting a CR/LF this gets translated to CR/LF/LF with the
        expected results.  When using an external socket in telnet mode, could SVDM
        set the telnet.local_option and telnet.remote_option variables as so:
      
          A. Assume both remote and local have already suppressed GA and set the two
             options accordingly
      
          B. Set the remote telnet echo option to off and set the local telnet echo
             to follow the ServerEcho option from the .INI file
      
          C. Set both remote and local BINARY_TX options to follow the ServerBinary
             option from the .INI file
      c4644bf9
    • Deucе's avatar
    • Deucе's avatar
      Temporarily disable the js configure cache. · b0748d62
      Deucе authored
      The last commit changed the environment, so we need to regenerate
      the config cache.
      b0748d62
    • Deucе's avatar
      Initial work on cross-building sbbs with mingw · 39a7ff2f
      Deucе authored
      The big remaining issue is defining *_EXPORTS where needed, which
      looks rough from a quick glance.
      39a7ff2f
    • Deucе's avatar
      Use cc, not gcc for --build detection · aa4372b0
      Deucе authored
      aa4372b0
    • Rob Swindell's avatar
      Simplify the node config menu, eliminating Toggles/Advanced Options menus · da9627ea
      Rob Swindell authored
      There's only one toggle left (Leave node file open) and not very many advanced
      options.
      
      Unfortuantely, can't easily do the cool left-right cycle through nodes since
      each node file has to be saved/loaded, but still, easier to visualize any
      differences between node configs with all the settings on one menu.
      da9627ea
    • Rob Swindell's avatar
      Move "spinning cursor at pause prompt" from node to system config · bb492723
      Rob Swindell authored
      From SCFG->Nodes ... Toggle Options to SCFG->System->Toggle Options
      
      And from a bit flag in node_misc to its own bool member of scfg_t.
      bb492723
    • Rob Swindell's avatar
      Remove the "7-bit only" node option · 9081af2a
      Rob Swindell authored
      The way this option worked was, if enabled (and it was off by default), bit 7
      of all character input *before* successful logon would be stripped and bit 7
      from all character input of terminals configured as US-ASCII (only) would be
      stripped after logon.
      
      Instead, always strip bit 7 (the 8th bit) of each input character from US-ASCII
      (only) terminals. Other detected/configured terminals (CP437, UTF-8, PETSCII)
      won't have bit 7 stripped (ever) since that's likely not a necessary or nice
      thing to do. There's now no different handling of pre/post logon in this
      regard.
      
      If there's a need to strip parity bits from character input from client
      terminals that support CP437, UTF-8, or PETSCII, then we'll re-add this feature
      in but it shouldn't be a per-node setting in that case.
      9081af2a
    • Rob Swindell's avatar
      Remove obsolete note comment about genwrap.h · be523ad9
      Rob Swindell authored
      be523ad9
Loading