diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-11-10 23:57:24 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-11-10 23:57:24 +0000 |
commit | 3204da1250f36047ad32fab52167d30ff812bb46 (patch) | |
tree | 19220e81c54531f7a178efd42056982255eb98b2 | |
parent | 70a037898aa44a933c0e5c199b7ac97a392eb0f9 (diff) |
full working implementation using canvas_getdir, and some help on tclpd style from mescalinum
svn path=/trunk/externals/tclfile/; revision=15720
-rw-r--r-- | exists-help.pd | 34 | ||||
-rw-r--r-- | exists.tcl | 12 | ||||
-rw-r--r-- | mkdir-help.pd | 16 | ||||
-rw-r--r-- | mkdir.tcl | 36 |
4 files changed, 66 insertions, 32 deletions
diff --git a/exists-help.pd b/exists-help.pd index 5dde020..09dd54a 100644 --- a/exists-help.pd +++ b/exists-help.pd @@ -1,11 +1,23 @@ -#N canvas 199 234 450 300 10;
-#X obj 190 139 exists;
-#X floatatom 193 175 5 0 0 0 - - -;
-#X obj 194 199 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
--1 -1;
-#X msg 205 76 symbol unexistent?;
-#X msg 181 45 symbol exists.tcl;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 3 0 0 0;
-#X connect 4 0 0 0;
+#N canvas 199 234 450 300 10; +#X obj 33 166 exists; +#X floatatom 36 202 5 0 0 0 - - -; +#X obj 37 226 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X msg 65 91 symbol unexistent?; +#X msg 41 60 symbol exists.tcl; +#X obj 239 183 exists; +#X floatatom 242 219 5 0 0 0 - - -; +#X obj 243 243 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 247 77 bang; +#X msg 274 136 symbol /tmp/; +#X msg 290 158 /tmp; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 5 0; +#X connect 9 0 5 1; +#X connect 10 0 5 1; @@ -2,6 +2,10 @@ package require Tclpd 0.2.3 package require TclpdLib 0.19 proc+ exists::constructor {self args} { + set @current_canvas [canvas_getcurrent] + # set to blank so the var always exists + set @filename {} + # add second inlet (first created by default) pd::add_inlet $self list @@ -16,8 +20,12 @@ proc+ exists::0_symbol {self args} { } proc+ exists::0_bang {self} { - if {![info exists @filename]} return - pd::outlet $self 0 float [file exists $@filename] + if {[file pathtype $@filename] eq "absolute"} { + pd::outlet $self 0 float [file exists $@filename] + } else { + set dir [[canvas_getdir $@current_canvas] cget -s_name] + pd::outlet $self 0 float [file exists [file join $dir $@filename]] + } } proc+ exists::1_symbol {self args} { diff --git a/mkdir-help.pd b/mkdir-help.pd index f271ab0..738f60f 100644 --- a/mkdir-help.pd +++ b/mkdir-help.pd @@ -1,2 +1,14 @@ -#N canvas 225 242 450 300 10; -#X obj 201 178 mkdir; +#N canvas 186 203 502 300 10; +#X obj 120 161 mkdir; +#X msg 120 109 symbol /tmp/blah; +#X obj 268 155 exists; +#X msg 268 109 symbol /tmp/blah; +#X obj 268 176 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 268 196 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 275 128 symbol /tmp/created_after_bang; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 5 0; @@ -1,31 +1,33 @@ package require Tclpd 0.2.3 package require TclpdLib 0.19 -pd::post "Loading mkdir.tcl" - proc+ mkdir::constructor {self args} { - # add outlet - pd::add_outlet $self list -} + set @current_canvas [canvas_getcurrent] + # set to blank so the var always mkdir + set @filename {} -# HOT inlet -proc+ mkdir::0_list {self args} { - pd::post "tclfile/mkdir: list" - #pd::outlet $self 0 list $@curlist + # add second inlet (first created by default) + pd::add_inlet $self list } -# HOT inlet proc+ mkdir::0_symbol {self args} { - pd::post "tclfile/mkdir: symbol" -# pd::outlet $self 0 list $@curlist + # HOT inlet + set @filename [pd::arg 0 symbol] + mkdir::0_bang $self } proc+ mkdir::0_bang {self} { - pd::post "tclfile/mkdir: bang" -# pd::outlet $self 0 list $@curlist + if {[file pathtype $@filename] eq "absolute"} { + file mkdir $@filename + } else { + set dir [[canvas_getdir $@current_canvas] cget -s_name] + file mkdir [file join $dir $@filename] + } } -pd::post "pd::class mkdir" -pd::class mkdir +proc+ mkdir::1_symbol {self args} { + # COLD inlet + set @filename [pd::arg 0 symbol] +} -pd::post "Finished reading mkdir.tcl" +pd::class mkdir |