Hopefully I found a solution now.
At least it's working fine on my PC.
Here are the modified parts of projsav.vdm:
(These comments are still in the attached macro.)
//
// Setup T-Reg[121] with the project pathname.
//
RS(121,Proj_Current) // i.e., projdriv:\projpath\proj.PRJ
if (RSize(121)==0) { break_out(EXTRA) }
//CZ insert ------------------------------
// Replace hard coded path with variable
// This was the first try.
// Unfortunately it doesn't work.
// Somehow the RCB(121,...) destroys the storage of files in the
project list.
// I don't have an idea why.
// Checking @121 before and after the RCB() shows no difference.
// Perhaps a side effect of Save_Env() (Just a wild guess.)
// So I did it another way, see below, line ~603
//Reg_Ins(121, BEGIN)
//Replace(PROJECTS,"|(PROJECTS)", NOERR)
//RCB(121,0,EOL_POS, DELETE)
//CZ end----------------------------------
//
// Cleanup for restoration macro.
//
IT("Return(1,DELETE)") // Discard Project restoring macro
IN()
//CZ insert -----------------------------------------
// Replace the hardcoded project directory with variable PROJECTS
// Replace the hardcoded x:\VEDIT with variable HOME
//
// The obvious syntax fails. It also replaces
// e.g. c:\vedit\projects.txt
// because it didn't check for the trailing backslash:
// Replace(PROJECTS,"|(PROJECTS)", BEGIN+ALL+NOERR)
//
// Fortunately VEDIT 6.15.1 supports the new $(variable) syntax
// so this works:
// (perhaps that would be possible with the older syntax, but how?)
Replace("$(PROJECTS)\","|(PROJECTS)\", BEGIN+ALL+NOERR)
// Same here. E.g. a file C:\vedit.txt
//Replace(HOME,"|(HOME)", BEGIN+ALL+NOERR)
Replace("$(HOME)\","|(HOME)\", BEGIN+ALL+NOERR)
//CZ end -- -----------------------------------------
File_Close(NOMSG+SUPPRESS) // Close PROJNAM.PRJ
Buf_Quit(OK) // Release extra buffer
Christian
Attachment deleted and uploaded to:
http://www.ziemski.net/vedit/macros/projsav.vdm