If you specify an absolute filename (i.e., a filename starting with
/ or ~, or with : in the second position (as in
‘C:...’)) for included
and friends, that file is included
just as you would expect.
If the filename starts with ./, this refers to the directory that
the present file was included
from. This allows files to include
other files relative to their own position (irrespective of the current
working directory or the absolute position). This feature is essential
for libraries consisting of several files, where a file may include
other files from the library. It corresponds to #include "..."
in C. If the current input source is not a file, . refers to the
directory of the innermost file being included, or, if there is no file
being included, to the current working directory.
For relative filenames (not starting with ./), Gforth uses a search path similar to Forth’s search order (see Word Lists). It tries to find the given filename in the directories present in the path, and includes the first one it finds. There are separate search paths for Forth source files and general files. If the search path contains the directory ., this refers to the directory of the current file, or the working directory, as if the file had been specified with ./.
Use ~+ to refer to the current working directory (as in the
bash
).
absolute-file?
( addr u – flag ) gforth-1.0 “absolute-file?”
A filename is absolute if it starts with a / or a ~ (~ expansion), or if it is in the form ./*, extended regexp: ^[/~]|./, or if it has a colon as second character ("C:..."). Paths simply containing a / are not absolute!