aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2011-11-10 23:57:24 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2011-11-10 23:57:24 +0000
commit3204da1250f36047ad32fab52167d30ff812bb46 (patch)
tree19220e81c54531f7a178efd42056982255eb98b2
parent70a037898aa44a933c0e5c199b7ac97a392eb0f9 (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.pd34
-rw-r--r--exists.tcl12
-rw-r--r--mkdir-help.pd16
-rw-r--r--mkdir.tcl36
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;
diff --git a/exists.tcl b/exists.tcl
index 3ae3c58..eb8f650 100644
--- a/exists.tcl
+++ b/exists.tcl
@@ -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;
diff --git a/mkdir.tcl b/mkdir.tcl
index 90b1641..c8c1666 100644
--- a/mkdir.tcl
+++ b/mkdir.tcl
@@ -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