Kirill Lipatov (Leency) 09488af869 KolSPForth12 uploaded to SVN
git-svn-id: svn://kolibrios.org@4867 a494cfbc-eb01-0410-851d-a64ba20cac60
2014-04-21 19:22:58 +00:00

41 lines
824 B
Forth

: is_path_delimiter ( c -- flag )
DUP [CHAR] \ = SWAP [CHAR] / = OR
;
: CUT-PATH ( a u -- a u1 )
\ èç ñòðîêè "path\name" âûäåëèòü ñòðîêó "path\"
OVER +
BEGIN 2DUP <> WHILE DUP C@ is_path_delimiter 0= WHILE 1- REPEAT 1+ THEN
\ DUP 0! \ ~ruv (to anfilat): íå äÎëæíî òóò çàòèðàòü ïîäàííûé áóôåð!
OVER -
;
: ModuleName ( -- addr u )
ABORT
;
: ModuleDirName ( -- addr u )
ModuleName CUT-PATH
;
: +ModuleDirName ( addr u -- addr2 u2 )
2>R
ModuleDirName 2DUP +
2R> DUP >R ROT SWAP 1+ MOVE
R> +
;
: +LibraryDirName ( addr u -- addr2 u2 )
\ Äîáàâèòü addr u ê ïîëíûé_ïóòü_ïðèëîæåíèÿ+devel\
2>R
ModuleDirName 2DUP +
S" devel\" ROT SWAP MOVE
6 + 2DUP +
2R> DUP >R ROT SWAP 1+ MOVE
R> +
;
: SOURCE-NAME ( -- a u )
CURFILE @ DUP IF ASCIIZ> ELSE 0 THEN
;