Subversion Repositories Kolibri OS

Rev

Rev 4867 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4867 leency 1
VARIABLE wd 256 ALLOT
2
 
3
: setwd ( uaddr)
4
	COUNT 1+ SWAP 1- SWAP wd SWAP CMOVE ;
5
 
6
: _wd
9587 vitalkrilo 7
	$" /sys/" setwd ; _wd
4867 leency 8
 
9
: "/ [CHAR] / ;
10
 
11
: strcat ( uaddr1 uaddr2 -- uaddr1+uaddr2)
12
	>R DUP COUNT ( ua1 a1 c1)
13
	>R R@ ( ua1 a1 c1)
14
	+ OVER R> R@ SWAP >R ( ua1 ea1 ua1 ua1)
15
	C@ R> + ( ua1 ea1 ua1 u+u2 )
16
	SWAP C! ( ua1 ea1 )
17
	R> COUNT ( ua1 ea1 a2 c2)
18
	>R
19
	SWAP R> CMOVE ;
20
 
21
: add/ ( uaddr -- uaddr/)
22
	DUP DUP COUNT SWAP DROP + C@ "/ = IF ELSE $" /" strcat THEN	;
23
 
24
: cut/ ( uaddr -- uaddr w/o slash)
25
	COUNT OVER SWAP + 1- ( ua1 lasta1)
26
	DUP C@ "/ = IF 1- THEN .S
27
	BEGIN 2DUP < WHILE 4 . DUP C@ "/ = IF OVER - OVER 1- C! 1- LEAVE ELSE 1- THEN
28
	REPEAT ;
29
 
30
: t $" cat" $" dog" strcat COUNT TYPE ;
31
 
32
: makepath ( path normalizer: uaddr1 uaddr2 -- uaddr )
33
	DUP 1+ C@ [CHAR] / = IF SWAP DROP ELSE DUP strcat THEN
34
	add/ ;
35
 
36
 
37
: pwd ( print working directory:  -- )
38
	CR wd COUNT TYPE ;
39
 
40
: cd ( change directory)
41
	wd BL WORD makepath setwd ;