So all environment variables used in exec/external.bat need to be changed from '' to '/' for lredir to work properly
maybe through ctrl/sbbs.ini it is tried to add an option UseDOSEmuVersion=x where x can be 1 or 2 (1 as default)
and use this option as dosemu quirk.
thanks!
Designs
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
I didn't use lredir to change directories when using dosemu2. I did it on the command line. I gave up and blew it all away in the end. Just too many issues I couldn't resolve. dosemu1 just works. Except for TW and there's plenty of TW server gateways out there unless you really must run your own.
Yeap..due to hard disk failure i replace it and update my os to debian 11. Unfortunately dosemu 1 is no longer in the repositories.
I have running dos doors with dosemu2 without touching their settings.
I just edit the exec/dosemu.ini to use -d to add node and startup dirs ($NODEDIR and $XTRNDIR).
Then edit ctrl/dosemu.conf to add the rest of fixed paths (ctrl, data and exec dirs)
The exec/external.bat still fail but I don't care because it uses @lredir and continues on error
I don't think the environment variables mentioned in this issue need any change (they already use forward-slashes). From the description, it sounds like only external.bat needs to be modified by changing the backslashes to forward-slashes on the following lines:
Mhmm at my external.bat generated at node directory when door start use "\" (backslash) and should be "/".
I think that by changing that, the redirects will work normally as they do from dosemu1
I don't know if there is any way to leave it keeping compatibility in both, (now I don't have a dosemu1 to confirm that they would also work with this "new" syntax)
$/sbbs/nodes/node3# cat external.bat @ECHO OFFSET DSZLOG=D:\PROTOCOL.LOGSET SBBSNODE=D:SET SBBSNNUM=3SET SBBSCTRL=F:SET SBBSDATA=G:SET SBBSEXEC=H:SET PCBNODE=3SET PCBDRIVE=D:SET PCBDIR=\SET STARTDIR=zombie@lredir D: linux\fs\sbbs\nodes\node3 >NUL@lredir E: linux\fs\sbbs\doors\dos >NUL@lredir F: linux\fs\sbbs\ctrl >NUL@lredir G: linux\fs\sbbs\data >NUL@lredir H: linux\fs\sbbs\exec >NULE:REM Switch to startup dir, unless its not definedREM If not defined, go to node dir (external editors use this)IF "%STARTDIR%"=="" D:IF NOT "%STARTDIR%"=="" CD %STARTDIR%REM Optionally call emusetup.bat or put that stuff here for global (in NOEMU)REM Looks in startup dir, then ctrl dirIF EXIST EMUSETUP.BAT GOTO EMULOCALIF EXIST F:\EMUSETUP.BAT GOTO EMUGLOBALIF EXIST E:\DOSUTILS\NUL GOTO NOEMUIF EXIST H:\DOSUTILS\NUL GOTO NOEMUECHO ERROR: No emusetup.bat in E:\%STARTDIR% or F, or DOSUTILS is missingGOTO EXEC:EMULOCALCALL EMUSETUP.BATGOTO EXEC:EMUGLOBALCALL F:\EMUSETUP.BATGOTO EXEC:NOEMU@set PATH=%PATH%;E:\dosutils;H:\dosutilsREM fossil driver, such as x00, bnu, or dosemu fossil.comrem IF "FOSSIL" == "FOSSIL" @fossil.com >NULrem IF "FOSSIL" == "FOSSIL" bnu.com /P1 /L0=11520 >NULIF "FOSSIL" == "FOSSIL" x00.exe eliminate >NULREM share.exe for multinode file locking@share >NULGOTO EXEC:EXECCALL run.batIF NOT "%1" == "TEST" exitemuREM For debugging: /usr/bin/env HOME=/sbbs/ctrl/ QUIET=1 DOSDRIVE_D=/sbbs/nodes/node3/ NODEDIR=/sbbs/nodes/node3/ /usr/bin/dosemu.bin -d /sbbs/nodes/node3/ -d /sbbs/doors/dos -I"video { none }" -I"serial { virtual com 1 }" -f/sbbs/ctrl/dosemu.conf -ED:external.bat -o/sbbs/nodes/node3/dosemu_boot.log
Then you're likely going to need logic in the external.bat file to determine if you're using dosemu1 or dosemu2. If the depreciated features are removed from dosemu2, then it'll stop working altogether.
E: should map to your ./xtrn directory so yes, it's needed as part of the external.bat will change to that drive before cd to the directory where the executable is.