This file is indexed.

/usr/lib/pd/extra/iemguts/canvasdelete-help.pd is in pd-iemguts 0.2.1-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#N canvas 548 244 526 374 10;
#X obj 45 14 canvasdelete;
#N canvas 4 99 634 353 canvas 0;
#N canvas 543 50 194 274 \$0.sandbox 0;
#X obj 20 140 t a a;
#X msg 20 110 Bitte entferne mich!;
#X obj 20 80 f 20;
#X restore 29 199 pd \$0.sandbox;
#X obj 199 247 s pd-\$0.sandbox;
#X msg 229 192 delete 1;
#X text 302 193 <- click;
#X text 28 287 Note:;
#X text 55 306 If you happen to 'delete' on object that is involved
in the deleting process \, Pd will ungracefully crash. Use with care!
;
#X text 28 21 When you load(!) the canvasdelete object/library \, it
will also add a 'delete' method for canvases (aka: windows) to Pd.
;
#X text 27 64 This allows to remove single objects by their index.
Counting starts at 0 and follows the order of creation.;
#X text 30 96 Nevertheless \, let's hope that one day Pd will have
a "delete" method itself...;
#X msg 199 150 vis 1;
#X text 247 153 <- open a patch;
#X msg 384 230 reset;
#X obj 384 252 s \$0.init;
#X connect 2 0 1 0;
#X connect 9 0 1 0;
#X connect 11 0 12 0;
#X restore 334 249 pd canvas messages;
#X text 38 69 the canvasdelete will delete itself when it receives
a "bang";
#X text 41 112 you can specify the depth of the parent patch via an
optional argument;
#X obj 41 145 canvasdelete 1;
#X text 148 145 will delete the containing canvas (parent-depth:1)
;
#N canvas 4 49 450 300 \$0.examples 0;
#X msg 20 100 bang;
#X obj 20 130 canvasdelete;
#X text 60 100 this will only delete the [canvasdelete] object itself
;
#X msg 20 200 bang;
#N canvas 4 49 450 300 1003.parent-deletion 0;
#X obj 20 20 inlet;
#X obj 20 50 delay 1000;
#X obj 20 80 canvasdelete 1;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X restore 20 230 pd 1003.parent-deletion;
#X text 60 200 the containing [canvasdelete 1] will delete the entire
subpatch after 1 second;
#X msg 20 20 click here to regenerate this patch;
#X obj 20 40 s 1003.init;
#X connect 0 0 1 0;
#X connect 3 0 4 0;
#X connect 6 0 7 0;
#X restore 275 213 pd \$0.examples;
#X text 40 212 two examples on how to use this:;
#X text 43 249 for advanced lovers of dynamic patching:;
#N canvas 41 71 418 300 \$0.init 0;
#N canvas 53 50 735 315 dynamic 0;
#X obj 56 73 r \$0.init;
#X obj 56 97 t b;
#X obj 56 119 del;
#X obj 88 151 loadbang;
#X obj 56 171 s \$0.realinit;
#X obj 502 75 receivecanvas 1;
#X obj 502 97 route map vis;
#X obj 502 119 route 1;
#X obj 502 141 t b;
#X msg 502 185 vis 0;
#X obj 502 207 sendcanvas 1;
#X obj 502 163 del 2000;
#X text 509 54 autoclose;
#X text 83 122 protect against self-deletion (might crash);
#N canvas 0 50 450 300 canvas.messages 0;
#X msg 29 168 clear \, obj 20 140 t a a \, msg 20 110 Bitte entferne
mich! \, obj 20 80 f 20;
#X obj 29 208 s pd-\$0.sandbox;
#X obj 29 143 r \$0.realinit;
#X connect 0 0 1 0;
#X connect 2 0 0 0;
#X restore 85 251 pd canvas.messages;
#N canvas 0 50 450 300 examples 0;
#X obj 89 254 s pd-\$0.examples;
#X msg 149 214 clear;
#N canvas 0 50 781 300 withmakesubpatch 0;
#X obj 91 10 inlet;
#X obj 88 292 outlet;
#X obj 91 32 t b;
#X obj 91 54 f \$0;
#X obj 91 76 t f f f;
#X obj 201 213 s;
#X obj 201 130 t b f;
#X obj 217 74 pack 0 0;
#X msg 235 149 symbol pd-\$1.parent-deletion;
#X msg 56 249 text 60 200 the containing [canvasdelete 1] will delete
the entire subpatch after 1 second \, connect 3 0 4 0;
#X msg 201 170 vis 0 \, obj 20 20 inlet \, obj 20 50 delay 1000 \,
obj 20 80 canvasdelete 1 \, connect 0 0 1 0 \, connect 1 0 2 0;
#X msg 199 100 msg 20 200 bang \, obj 20 230 pd \$1.parent-deletion
;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 9 0;
#X connect 4 1 6 0;
#X connect 4 2 7 0;
#X connect 6 0 10 0;
#X connect 6 1 8 0;
#X connect 7 0 11 0;
#X connect 8 0 5 1;
#X connect 9 0 1 0;
#X connect 10 0 5 0;
#X connect 11 0 1 0;
#X restore 109 157 pd withmakesubpatch;
#X obj 89 89 t b;
#N canvas 0 50 450 300 nosubpatch 0;
#X obj 111 19 inlet;
#X obj 126 219 outlet;
#X msg 21 118 msg 20 100 bang \, obj 20 130 canvasdelete \, text 60
100 this will only delete the [canvasdelete] object itself \, connect
0 0 1 0;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 129 133 pd nosubpatch;
#X obj 89 109 t b b b b;
#N canvas 0 50 671 300 initializer 0;
#X obj 73 19 inlet;
#X obj 73 252 outlet;
#X obj 73 41 t b;
#X obj 73 63 pack \$0 0;
#X msg 73 103 msg 20 20 click here to regenerate this patch \, obj
20 40 s \$1.init \, connect 6 0 7 0;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X restore 89 185 pd initializer;
#X obj 89 69 r \$0.realinit;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 5 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 5 1 2 0;
#X connect 5 2 4 0;
#X connect 5 3 1 0;
#X connect 6 0 0 0;
#X connect 7 0 3 0;
#X restore 84 275 pd examples;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 7 0;
#X connect 7 0 8 0;
#X connect 8 0 11 0;
#X connect 9 0 10 0;
#X connect 11 0 9 0;
#X restore 127 138 pd dynamic patching;
#X text 80 94 I'm sure you don't want to see this...;
#X text 164 191 go away...;
#X restore 308 395 pd \$0.init;
#X text 163 14 delete ourselves (or a parent);
#X text 182 397 secret init stuff;
#X text 42 311 (c) 2010 IOhannes m zmoelnig \, Roman Haefeli;
#X text 77 334 this is part of iemguts;
#X text 48 281 shut down a top-level patch:;
#N canvas 4 49 685 353 close 0;
#X obj 109 285 canvasdelete 2;
#X msg 109 266 bang;
#X text 31 69 you can also close the top-level patch (which was opened
via File->Open rather than instantiated as an abstraction).;
#X msg 108 150 bang;
#X obj 108 170 canvasdelete 3;
#X text 229 273 parent-depth:2 is the top-level patch;
#X text 217 157 parent-depth:3 does not exist (one level too above
top-level patch) - so this won't do anything;
#X connect 1 0 0 0;
#X connect 3 0 4 0;
#X restore 271 282 pd close top-level patch;