v3 Baja compatibility
From
Digital Man@VERT to
All on Wed Nov 8 07:47:49 2000
While on the subject of loadable module/shell compatibility, I thought I wouldãbring to your attention a couple of other points about insuring compatibilityãwith Synchronet v3:ããIn a multi-threaded process (as Synchronet v3 is), there is no such idea ofã"current working directory" for each thread. So, relative file paths (pathsãstarting with '.') should not be used in loadable modules or command shells andãthe Baja function: CHANGE_DIR should never be used.ãã* Side note * Start-up directories are supported for external programs becauseãthey are run in their own process and therefor can maintain their own "currentãworking directory".ããIn general, absolute paths (e.g. "c:\mymod" or "/mymod") should NOT beãhard-coded in loadable modules or shells either. Instead, you should use one ofãthe sysop-configurable directory variables (ctrl_dir, data_dir, text_dir,ãnode_dir or exec_dir) as a base path. These directory variables can be used inãcommand strings with the following command-line specifiers (from Appendix A inãthe sysop manual):ãã%! exec directoryã%z text directoryã%k ctrl directoryã%j data directoryã%n node directoryãã* Note * the trailing slash is included in the variable text.ããSo if your module's config files where stored in ctrl/mymod, you could accessãthose files with a path string "%kmymod/filename".ããOr if you wanted to access data files in the main Synchronet directory, youãcould with a path string "%j../myfile".ããMost 3rd party modules and shells already do this kind of thing with the pathãspecifiers, but I thought I would just remind programmers of what was requiredãto be compatible with Synchronet v3. :-)ããRobã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã