From 7b7dfa28f8ca07677ba440c03a7631ebef9549d8 Mon Sep 17 00:00:00 2001
From: Jonathan Wilkes <jon.w.wilkes@gmail.com>
Date: Wed, 16 Nov 2016 14:46:15 -0500
Subject: [PATCH] change [draw group] to [draw g] to match svg spec name for
 groups

---
 .../pd-l2ork/ds-demos/bulbs.pd                |  2 +-
 .../pd-l2ork/ds-demos/butterfly.pd            |  2 +-
 .../pd-l2ork/ds-demos/notes.pd                |  2 +-
 .../pd-l2ork/ds-demos/rocket-demo.pd          | 22 ++---
 .../pd-l2ork/ds-demos/simon-game.pd           |  2 +-
 .../pd-l2ork/ds-demos/splines.pd              |  2 +-
 .../pd-l2ork/ds-demos/tiger.pd                |  2 +-
 .../pd-l2ork/ds-demos/unit-circle.pd          |  2 +-
 .../pd-l2ork/ds-demos/violin.pd               |  2 +-
 .../pd-l2ork/ds-demos/working-man.pd          |  2 +-
 .../pd-l2ork/ds-demos/yin-yang.pd             |  2 +-
 .../ds-tutorials/00.under.construction.pd     |  2 +-
 .../pd-l2ork/ds-tutorials/01.intro.pd         | 85 +++++++++++--------
 .../{14.group.pd => 14.grouping.pd}           | 38 ++++-----
 .../pd-l2ork/ds-tutorials/18.parameters.pd    |  2 +-
 pd/src/g_canvas.c                             |  2 +-
 pd/src/g_graph.c                              |  2 +-
 pd/src/g_template.c                           | 16 ++--
 18 files changed, 101 insertions(+), 88 deletions(-)
 rename pd/doc/4.data.structures/pd-l2ork/ds-tutorials/{14.group.pd => 14.grouping.pd} (82%)

diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/bulbs.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/bulbs.pd
index f40ee4a58..8794dd46e 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/bulbs.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/bulbs.pd
@@ -65,7 +65,7 @@ a float s;
 r g b;
 #X connect 0 0 20 0;
 #X connect 20 0 1 0;
-#X restore 88 133 draw group;
+#X restore 88 133 draw g;
 #X obj 88 154 outlet;
 #X msg 88 98 transform scale 0.5 \, fill none \, stroke black \, mouseover
 1 \, mouseout 1;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/butterfly.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/butterfly.pd
index 67800ced5..e607afe2f 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/butterfly.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/butterfly.pd
@@ -494,7 +494,7 @@ that to zero Pd doesn't currently just ignores the transform message
 and doesn't update the graphics.;
 #X text 22 200 This is currently inefficient because I'm calculating
 the transform for _each_ individual drawing instruction that makes
-up the butterfly. For this there is the [draw group] object which does
+up the butterfly. For this there is the [draw g] object which does
 a single transformation for the entire set of drawing instructions.
 ;
 #X obj 32 465 pack 0 0 1 0;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/notes.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/notes.pd
index 2f73b4739..e0522a0d9 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/notes.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/notes.pd
@@ -188,7 +188,7 @@ c -100 -53 -163 -157 -163 -270 c 0 -87 22 -158 43 -230 c 84 102 155
 #X connect 63 0 20 0;
 #X connect 64 0 22 0;
 #X connect 65 0 24 0;
-#X restore 447 519 draw group;
+#X restore 447 519 draw g;
 #X obj 447 408 * 0.01;
 #X obj 447 432 * 11;
 #X obj 447 473 pack;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/rocket-demo.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/rocket-demo.pd
index 1bef9444b..0d6455db7 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/rocket-demo.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/rocket-demo.pd
@@ -36,7 +36,7 @@ transform matrix 1.0041 0 0 1.01474 -1.11186 -7.22347 \, stroke ""
 #X connect 5 0 2 0;
 #X connect 6 0 0 0;
 #X connect 6 0 2 0;
-#X restore 27 66 draw group thrust;
+#X restore 27 66 draw g thrust;
 #X obj 27 504 loadbang;
 #X obj 27 566 draw path M 43.244 60.7763 C 122.101 62.472 321.362 94.6929
 397.675 290.563 C 371.389 295.651 306.948 358.397 296.773 393.161 C
@@ -150,7 +150,7 @@ stroke-width 12.5 \, stroke-linejoin 1;
 #X connect 25 0 0 0;
 #X connect 25 1 0 1;
 #X connect 26 0 20 0;
-#X restore 264 287 draw group rocket;
+#X restore 264 287 draw g rocket;
 #N canvas 547 87 754 501 moon 0;
 #X obj 40 17 loadbang;
 #X obj 40 79 draw path m 10.671 231.42 c 89.543 56.086 188.11 -10.029
@@ -203,7 +203,7 @@ stroke-width 12.5 \, stroke-linejoin 1;
 #X connect 18 0 12 0;
 #X connect 19 0 14 0;
 #X connect 20 0 1 0;
-#X restore 95 362 draw group moon;
+#X restore 95 362 draw g moon;
 #X floatatom 45 167 5 0 0 0 - - -, f 5;
 #X obj 45 238 pack;
 #X floatatom 95 167 5 0 0 0 - - -, f 5;
@@ -351,7 +351,7 @@ stroke-width 12.5 \, stroke-linejoin 1;
 #X connect 27 0 13 0;
 #X connect 28 0 1 0;
 #X connect 29 0 21 0;
-#X restore 137 320 draw group;
+#X restore 137 320 draw g;
 #X floatatom 164 138 5 0 0 0 - - -, f 5;
 #X floatatom 203 138 5 0 0 0 - - -, f 5;
 #X obj 203 189 t b a;
@@ -396,11 +396,11 @@ stroke-width 12.5 \, stroke-linejoin 1;
 #X connect 21 0 12 0;
 #X connect 22 0 15 0;
 #X connect 22 1 20 0;
-#X restore 96 299 pd guts;
-#X obj 96 40 bng 90 250 50 0 empty rocket-bng empty 17 7 0 10 -262144
+#X restore 193 358 pd guts;
+#X obj 193 99 bng 90 250 50 0 empty rocket-bng empty 17 7 0 10 -262144
 -1 -1;
-#X obj 96 346 output~;
-#X scalar rocket 247 106 \;;
+#X obj 193 405 output~;
+#X scalar rocket 344 165 \;;
 #N canvas 433 184 450 351 dsp~ 0;
 #X obj 56 55 inlet;
 #X obj 201 51 noise~;
@@ -438,9 +438,9 @@ stroke-width 12.5 \, stroke-linejoin 1;
 #X connect 14 0 12 0;
 #X connect 15 0 14 0;
 #X connect 17 0 16 0;
-#X restore 96 320 pd dsp~;
-#X msg 138 233 zazzmatazz;
-#X obj 138 254 t b b;
+#X restore 193 379 pd dsp~;
+#X msg 235 292 zazzmatazz;
+#X obj 235 313 t b b;
 #X connect 0 0 4 0;
 #X connect 1 0 0 0;
 #X connect 4 0 2 0;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/simon-game.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/simon-game.pd
index 0f5b85e3c..8352cb8e6 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/simon-game.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/simon-game.pd
@@ -47,7 +47,7 @@ sc float wc;
 #X connect 16 0 2 0;
 #X connect 17 0 3 0;
 #X connect 18 0 4 0;
-#X restore 375 166 draw group;
+#X restore 375 166 draw g;
 #X obj 341 233 t b a;
 #X obj 375 461 set simon nc;
 #X obj 341 425 * 255;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/splines.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/splines.pd
index 49ec9d3a5..f3939bdd6 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/splines.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/splines.pd
@@ -66,7 +66,7 @@
 #X connect 35 0 0 0;
 #X connect 36 0 24 0;
 #X connect 37 0 25 0;
-#X restore 311 205 draw group;
+#X restore 311 205 draw g;
 #X obj 309 93 struct splines float x float y float qmid float c1 float
 c2;
 #X text 272 394 <- Click-drag the inner red crosses to change the y-value
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/tiger.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/tiger.pd
index aca68c3eb..a3dab0ae4 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/tiger.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/tiger.pd
@@ -2175,7 +2175,7 @@ C 256 273.5 269.5 292 269.5 299 C 269.5 299 272 291.5 270.5 287 z;
 #X connect 464 0 463 0;
 #X connect 466 0 465 0;
 #X connect 468 0 467 0;
-#X restore 50 258 draw group;
+#X restore 50 258 draw g;
 #X scalar tiger 150 131 \;;
 #X obj 50 348 output~;
 #X obj 50 139 loadbang;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/unit-circle.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/unit-circle.pd
index 216f148cd..cc9690a2d 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/unit-circle.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/unit-circle.pd
@@ -87,7 +87,7 @@ l 150 0 m -150 100 l 150 0 m 0 20 l 0 -240 0 20 20 0 m -20 100 l 20
 #X connect 28 0 24 0;
 #X connect 34 0 24 0;
 #X connect 36 0 35 0;
-#X restore 52 247 draw group;
+#X restore 52 247 draw g;
 #X obj 92 5 struct unit_circle float x float y;
 #X obj 364 251 * 100;
 #X obj 548 243 * 600;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/violin.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/violin.pd
index 3d34c236d..bf438ef19 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/violin.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/violin.pd
@@ -865,7 +865,7 @@ c 0.631 -0.071 0.188 0.931 0.96 0.72 c -0.03 -0.601 -0.458 -0.751 0.24
 #X connect 84 0 85 0;
 #X connect 85 0 86 0;
 #X connect 86 0 87 0;
-#X restore 137 114 draw group;
+#X restore 137 114 draw g;
 #X obj 137 50 struct violin float x float y;
 #X obj 137 72 loadbang;
 #X msg 137 93 transform rotate -26 59 113 scale 0.5;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/working-man.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/working-man.pd
index 36e0d069c..7edeae055 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/working-man.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/working-man.pd
@@ -197,7 +197,7 @@ C 244.728 367.092 244.44 367.596 244.44 368.1 C 244.44 368.172 244.44
 #X connect 22 0 23 0;
 #X connect 24 0 5 0;
 #X connect 25 0 1 0;
-#X restore 96 136 draw group;
+#X restore 96 136 draw g;
 #X obj 96 93 loadbang;
 #X msg 96 114 transform matrix -1 0 0 1 510.336 0;
 #X obj 123 11 struct working-man-scalar float x float y;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-demos/yin-yang.pd b/pd/doc/4.data.structures/pd-l2ork/ds-demos/yin-yang.pd
index 5f0f33161..6b269c232 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-demos/yin-yang.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-demos/yin-yang.pd
@@ -62,7 +62,7 @@
 #X connect 7 0 2 0;
 #X connect 8 0 1 0;
 #X connect 9 0 3 0;
-#X restore 151 581 draw group;
+#X restore 151 581 draw g;
 #X scalar yin-yang 114 127 188.603 66.3972 \;;
 #X scalar yin-yang 315 136 0 255 \;;
 #X msg 383 412 traverse pd-yin-yang.pd \, next;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/00.under.construction.pd b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/00.under.construction.pd
index bc6d09fc8..db8c3c8c4 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/00.under.construction.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/00.under.construction.pd
@@ -218,7 +218,7 @@ L 258.192 372.204 L 254.304 371.484 z;
 #X connect 19 0 20 0;
 #X connect 21 0 5 0;
 #X connect 22 0 1 0;
-#X restore 121 -2430 draw group;
+#X restore 121 -2430 draw g;
 #X connect 1 0 2 0;
 #X restore 443 6 pd template;
 #X scalar working-man-scalar -169 309 \;;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/01.intro.pd b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/01.intro.pd
index 8b97e4889..1cc982394 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/01.intro.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/01.intro.pd
@@ -1,7 +1,7 @@
 #N struct foo float x float y;
-#N canvas 1 25 565 491 10;
+#N canvas 9 205 565 491 10;
 #X scalar foo 96 105 \;;
-#N canvas 429 132 808 465 welcome-animation 0;
+#N canvas 215 207 808 465 welcome-animation 0;
 #X obj 147 7 bng 54 250 50 0 empty empty empty 17 7 0 10 -262144 -1
 -1;
 #X obj 147 135 f;
@@ -46,7 +46,6 @@
 #X msg 266 28 bang;
 #X obj 447 66 t b a b;
 #X obj 306 3 loadbang;
-#X obj 306 24 del 500;
 #X obj 266 7 inlet;
 #X obj 147 238 del 190;
 #X msg 107 300 1 \, \$1 190;
@@ -59,6 +58,7 @@
 #X obj 81 96 s \$0-wow;
 #X msg 447 232 0 \, 360 750;
 #X msg 667 250 0 \, 360 750;
+#X obj 306 24 del 1500;
 #X connect 0 0 3 0;
 #X connect 1 0 2 0;
 #X connect 1 0 8 0;
@@ -69,17 +69,17 @@
 #X connect 6 0 7 0;
 #X connect 7 0 5 1;
 #X connect 8 0 12 0;
-#X connect 8 0 52 0;
+#X connect 8 0 51 0;
 #X connect 9 0 5 0;
 #X connect 10 0 9 0;
 #X connect 11 0 13 1;
 #X connect 11 0 14 1;
 #X connect 12 0 14 0;
-#X connect 12 0 44 0;
+#X connect 12 0 43 0;
 #X connect 12 1 6 0;
 #X connect 12 1 15 0;
-#X connect 13 0 46 0;
-#X connect 14 0 45 0;
+#X connect 13 0 45 0;
+#X connect 14 0 44 0;
 #X connect 15 0 16 0;
 #X connect 16 0 11 0;
 #X connect 17 0 40 0;
@@ -90,8 +90,8 @@
 #X connect 22 0 20 1;
 #X connect 23 0 25 0;
 #X connect 24 0 26 0;
-#X connect 25 0 53 0;
-#X connect 25 0 49 0;
+#X connect 25 0 52 0;
+#X connect 25 0 48 0;
 #X connect 25 1 21 0;
 #X connect 26 0 20 0;
 #X connect 27 0 18 1;
@@ -103,33 +103,33 @@
 #X connect 32 0 30 1;
 #X connect 33 0 35 0;
 #X connect 34 0 36 0;
-#X connect 35 0 54 0;
-#X connect 35 0 48 0;
+#X connect 35 0 53 0;
+#X connect 35 0 47 0;
 #X connect 35 1 31 0;
 #X connect 36 0 30 0;
 #X connect 37 0 28 1;
 #X connect 38 0 28 1;
 #X connect 39 0 3 0;
-#X connect 39 0 50 0;
+#X connect 39 0 49 0;
 #X connect 40 0 18 0;
 #X connect 40 1 19 0;
-#X connect 40 2 51 0;
-#X connect 41 0 42 0;
+#X connect 40 2 50 0;
+#X connect 41 0 54 0;
 #X connect 42 0 39 0;
-#X connect 43 0 39 0;
-#X connect 44 0 13 0;
-#X connect 44 0 47 0;
+#X connect 43 0 13 0;
+#X connect 43 0 46 0;
+#X connect 44 0 10 0;
 #X connect 45 0 10 0;
-#X connect 46 0 10 0;
-#X connect 47 0 1 0;
-#X connect 48 0 28 0;
-#X connect 49 0 18 0;
-#X connect 50 0 40 0;
-#X connect 51 0 29 0;
-#X connect 53 0 24 0;
-#X connect 54 0 34 0;
+#X connect 46 0 1 0;
+#X connect 47 0 28 0;
+#X connect 48 0 18 0;
+#X connect 49 0 40 0;
+#X connect 50 0 29 0;
+#X connect 52 0 24 0;
+#X connect 53 0 34 0;
+#X connect 54 0 39 0;
 #X restore 339 86 pd welcome-animation;
-#N canvas 457 133 772 478 welcome-struct 0;
+#N canvas 251 218 772 478 welcome-struct 0;
 #X obj 189 -26 struct foo float x float y;
 #X obj 189 4 loadbang;
 #N canvas 433 184 450 300 welcome-text 0;
@@ -232,7 +232,7 @@ c 0 -0.0976 0.87891 -1.11328 0.95704 -1.24999 0.52734 -1.01562 0.52734
 #X connect 6 0 0 0;
 #X connect 7 0 6 0;
 #X connect 8 0 6 0;
-#X restore 37 17 draw group w;
+#X restore 37 17 draw g w;
 #N canvas 433 184 450 300 e 0;
 #X obj 45 146 draw path m 113.062 98.0641 c 0.27344 0.781249 0.23438
 1.52344 0.46875 2.22656 1.38672 3.92578 3.98438 6.5625 8.33984 6.5625
@@ -280,7 +280,7 @@ c 0.0977 0 0.41016 -0.175782 0.44922 -0.175782 0.39063 0 0.70313 0.371094
 #X connect 6 0 7 0;
 #X connect 7 0 0 0;
 #X connect 8 0 7 0;
-#X restore 37 37 draw group e;
+#X restore 37 37 draw g e;
 #N canvas 433 184 450 300 l 0;
 #X obj 40 175 draw path m 132.32 106.658 c 0.60547 0 1.32813 0.0977
 1.9336 0.15625 0.97656 -0.0195 1.54297 -0.25391 2.69531 -0.29297 0.0391
@@ -337,7 +337,7 @@ l 0.0586 -1.34766 -0.0195 -1.01562 c 0 -0.624999 0.0195 -1.26953 0.23438
 #X connect 6 0 7 0;
 #X connect 7 0 0 0;
 #X connect 8 0 7 0;
-#X restore 37 57 draw group l;
+#X restore 37 57 draw g l;
 #N canvas 433 184 450 300 c 0;
 #X obj 26 127 draw path m 148.922 106.521 0.35157 0.29297 0.60547 0
 c 2.77343 0 5.9375 -1.3086 6.8164 -4.25782 l 0 -0.23437 c 0 -0.42969
@@ -380,7 +380,7 @@ C 146.793 100.291 146.5 99.8024 146.5 98.611 l 0 -0.546875 -0.17578
 #X connect 6 0 7 0;
 #X connect 7 0 0 0;
 #X connect 8 0 7 0;
-#X restore 37 77 draw group c;
+#X restore 37 77 draw g c;
 #N canvas 433 184 450 300 o 0;
 #X obj 56 165 draw path m 159.449 98.0055 0.15625 1.52344 c 0 1.01562
 0.68359 1.71875 1.15234 2.55859 0.27344 0.3711 0.58594 0.78125 0.87891
@@ -435,7 +435,7 @@ l -0.74219 -0.70313 c -0.50781 -0.64453 -1.05469 -1.67968 -1.25 -2.53906
 #X connect 6 0 7 0;
 #X connect 7 0 0 0;
 #X connect 8 0 7 0;
-#X restore 37 97 draw group o;
+#X restore 37 97 draw g o;
 #N canvas 433 184 450 300 m 0;
 #X obj 45 118 draw path m 180.895 105.779 c 0 0.29297 0.0195 0.60547
 0.19531 0.74219 0.0977 0.0391 0.44922 0.0391 0.50782 0.0977 0.0781
@@ -539,7 +539,7 @@ c -0.3125 0.605468 -0.33203 1.21094 -0.33203 1.83594 l 0 1.36719 -0.0781
 #X connect 6 0 7 0;
 #X connect 7 0 0 0;
 #X connect 8 0 7 0;
-#X restore 37 117 draw group m;
+#X restore 37 117 draw g m;
 #N canvas 433 184 450 300 e 0;
 #X obj 43 136 draw path m 211.734 98.0641 c 0.27344 0.781249 0.23438
 1.52344 0.46875 2.22656 1.38672 3.92578 3.98438 6.5625 8.33985 6.5625
@@ -587,7 +587,7 @@ c -0.21485 -0.05859 -0.41016 -0.9375 -0.41016 -1.21094;
 #X connect 6 0 7 0;
 #X connect 7 0 0 0;
 #X connect 8 0 7 0;
-#X restore 37 137 draw group e;
+#X restore 37 137 draw g e;
 #N canvas 433 184 450 300 exclamation-point 0;
 #X obj 39 178 draw path m 232.496 104.724 c 0 0.0781 0 0.41016 0 0.41016
 0.0586 0.17578 0.46875 0.9375 0.56641 1.11328 0.13672 0.19531 0.50781
@@ -629,16 +629,29 @@ c -0.21485 -0.05859 -0.41016 -0.9375 -0.41016 -1.21094;
 #X connect 6 0 7 0;
 #X connect 7 0 0 0;
 #X connect 8 0 7 0;
-#X restore 37 157 draw group exclamation-point;
-#X restore 189 76 draw group welcome-text;
+#X restore 37 157 draw g exclamation-point;
+#X restore 189 76 draw g welcome-text;
 #X msg 189 37 fill black;
 #X msg 341 35 stroke-dasharray 10 4 \, stroke-width 4 \, stroke gray
 \, fill none;
-#X obj 341 76 draw rect 200 90 -40 -50;
+#X obj 341 306 draw rect 200 90 -40 -50;
+#X msg 425 254 stroke-dashoffset \$1;
+#X obj 433 121 loadbang;
+#X obj 433 171 line;
+#X obj 433 193 +;
+#X obj 433 215 t a;
+#X msg 433 149 2 \, 0 6000;
 #X connect 1 0 4 0;
 #X connect 1 0 3 0;
 #X connect 3 0 2 0;
 #X connect 4 0 5 0;
+#X connect 6 0 5 0;
+#X connect 7 0 11 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 9 1;
+#X connect 10 0 6 0;
+#X connect 11 0 8 0;
 #X restore 339 39 pd welcome-struct;
 #X text 0 1 New Drawing Commands: Intro;
 #X text 0 1 ___________________________;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/14.group.pd b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/14.grouping.pd
similarity index 82%
rename from pd/doc/4.data.structures/pd-l2ork/ds-tutorials/14.group.pd
rename to pd/doc/4.data.structures/pd-l2ork/ds-tutorials/14.grouping.pd
index cc21eb7a1..3ffe0e0da 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/14.group.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/14.grouping.pd
@@ -1,5 +1,5 @@
 #N struct drawtut-group float x float y;
-#N canvas 2 25 648 468 10;
+#N canvas 4 75 648 468 10;
 #X scalar drawtut-group 54 159 \;;
 #X text 1 1 ___________________________;
 #X text 0 1 New Drawing Commands: group;
@@ -12,6 +12,18 @@ of individually.;
 #X msg 434 213 transform scale \$1;
 #X obj 434 101 loadbang;
 #X msg 434 122 100;
+#X text 53 343 Like [pd] subpatches \, you can use [inlet] and [outlet].
+The "main" inlet for the group-- the one that sets attributes-- is
+always the furthest to the right.;
+#X text 505 236 <- click to open;
+#N canvas 290 275 450 300 META 0;
+#X text 16 26 LICENSE SIBSD;
+#X text 16 66 AUTHOR Jonathan Wilkes;
+#X text 16 86 HELP_PATCH_AUTHORS Jonathan Wilkes;
+#X text 16 6 KEYWORDS tutorial data_structure draw gui;
+#X text 16 46 DESCRIPTION how to group data structure drawings with
+[draw];
+#X restore 574 433 pd META;
 #N canvas 573 107 450 300 (subpatch) 0;
 #X obj 35 253 draw path M 160 0 l 40 40 M 160 40 l 40 -40;
 #X obj 35 26 loadbang;
@@ -30,25 +42,13 @@ of individually.;
 #X connect 5 0 8 0;
 #X connect 6 0 8 0;
 #X connect 9 0 0 0;
-#X restore 434 236 draw group;
-#X text 53 343 Like [pd] subpatches \, you can use [inlet] and [outlet].
-The "main" inlet for the group-- the one that sets attributes-- is
-always the furthest to the right.;
-#X text 505 236 <- click to open;
-#X text 53 263 The [draw group] object is essentially just a subpatch
-with an inlet. You can send it all the same messages that you can send
-to shapes. This will set the attributes for any drawing commands inside
-the [draw group] which you haven't already set explicitly.;
-#N canvas 290 275 450 300 META 0;
-#X text 16 26 LICENSE SIBSD;
-#X text 16 66 AUTHOR Jonathan Wilkes;
-#X text 16 86 HELP_PATCH_AUTHORS Jonathan Wilkes;
-#X text 16 6 KEYWORDS tutorial data_structure draw gui;
-#X text 16 46 DESCRIPTION how to group data structure drawings with
-[draw];
-#X restore 574 433 pd META;
+#X restore 434 236 draw g;
+#X text 53 263 The [draw g] object is essentially just a subpatch with
+an inlet. You can send it all the same messages that you can send to
+shapes. This will set the attributes for any drawing commands inside
+the [draw g] which you haven't already set explicitly.;
 #X connect 5 0 6 0;
 #X connect 6 0 7 0;
-#X connect 7 0 10 0;
+#X connect 7 0 13 0;
 #X connect 8 0 9 0;
 #X connect 9 0 5 0;
diff --git a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/18.parameters.pd b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/18.parameters.pd
index 199676495..d41c4efd8 100644
--- a/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/18.parameters.pd
+++ b/pd/doc/4.data.structures/pd-l2ork/ds-tutorials/18.parameters.pd
@@ -27,7 +27,7 @@
 67.134 87.1838 66.7361 88.5505 65.1156 83.9018 z;
 #X obj 50 244 draw path M 5.0713 7.44696 L 2.68749 5.47181 L 2.3806
 4.18776 M 2.82812 5.42493 L 1.36538 5.01748;
-#X restore 46 266 draw group;
+#X restore 46 266 draw g;
 #X msg 46 147 transform rotate r 35 40 \, mouseover 1;
 #X obj 46 288 route mouseover;
 #X obj 46 310 unpack p;
diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c
index 9700c3a1a..e36703d6d 100644
--- a/pd/src/g_canvas.c
+++ b/pd/src/g_canvas.c
@@ -1067,7 +1067,7 @@ extern t_pd *svg_header(t_pd *x);
 
 static void group_svginit(t_glist *gl)
 {
-    gl->gl_svg = (t_pd *)(svg_new((t_pd *)gl, gensym("group"), 0, 0));
+    gl->gl_svg = (t_pd *)(svg_new((t_pd *)gl, gensym("g"), 0, 0));
     t_pd *proxy = svg_header(gl->gl_svg);
     inlet_new(&gl->gl_obj, proxy, 0, 0);
     outlet_new(&gl->gl_obj, &s_anything);
diff --git a/pd/src/g_graph.c b/pd/src/g_graph.c
index b5a7bfde5..cd6e0e09d 100644
--- a/pd/src/g_graph.c
+++ b/pd/src/g_graph.c
@@ -47,7 +47,7 @@ int canvas_isgroup(t_canvas *x)
     //}
     //t_atom *argv = binbuf_getvec(x->gl_obj.te_binbuf);
     //if (argv[0].a_type == A_SYMBOL &&
-    //    argv[0].a_w.w_symbol == gensym("group"))
+    //    argv[0].a_w.w_symbol == gensym("g"))
     //    return 1;
     //else
     //    return 0;
diff --git a/pd/src/g_template.c b/pd/src/g_template.c
index 0afbdffaa..8e91f63e1 100644
--- a/pd/src/g_template.c
+++ b/pd/src/g_template.c
@@ -1346,7 +1346,7 @@ void *svg_new(t_pd *parent, t_symbol *s, int argc, t_atom *argv)
         for (i = 0; i < ncmds; i++) x->x_nargs_per_cmd[i] = 0;
         x->x_nargs = argc - ncmds;
     }
-    else if (x->x_type == gensym("group"))
+    else if (x->x_type == gensym("g"))
     {
         x->x_nargs = 0;
         x->x_vec = 0;
@@ -1459,7 +1459,7 @@ static int symbol_isdrawtype(t_symbol *s)
         s == gensym("line")    || s == gensym("path")     ||
         s == gensym("polygon") || s == gensym("polyline") ||
         s == gensym("rect")    || s == gensym("image")    ||
-        s == gensym("sprite")  || s == gensym("group"))
+        s == gensym("sprite")  || s == gensym("g"))
     {
         return 1;
     }
@@ -1481,7 +1481,7 @@ static void *draw_new(t_symbol *classsym, t_int argc, t_atom *argv)
         have their own class and new function */
         if (type == gensym("sprite") || type == gensym("image"))
             return (drawimage_new(type, argc, argv));
-        else if (type == gensym("group"))
+        else if (type == gensym("g"))
         {
             t_symbol *group_name;
             if (argc > 0 && argv->a_type == A_SYMBOL)
@@ -1530,7 +1530,7 @@ t_canvas *svg_parentcanvas(t_svg *x)
        use case, but that doesn't seem like a sensible
        interface in general. */
     t_canvas *ret = 0;
-    if (x->x_type == gensym("group"))
+    if (x->x_type == gensym("g"))
     {
         t_canvas *c = (t_canvas *)x->x_parent;
         if (c->gl_owner)
@@ -1716,7 +1716,7 @@ void svg_sendupdate(t_svg *x, t_canvas *c, t_symbol *s,
     int in_array = (sc->sc_vec != data);
     //post("in_array is %d", in_array);
     char tag[MAXPDSTRING];
-    if (x->x_type == gensym("group"))
+    if (x->x_type == gensym("g"))
     {
         sprintf(tag, "%s%lx.%lx",
             (in_array ? "scelem" : "dgroup"),
@@ -1794,7 +1794,7 @@ void svg_sendupdate(t_svg *x, t_canvas *c, t_symbol *s,
            we need to do it for all of the draw commands
            inside it.
         */
-        if (x->x_type == gensym("group"))
+        if (x->x_type == gensym("g"))
             svg_group_pathrect_cache(x, 0);
         else if (x->x_pathrect_cache != -1)
         {
@@ -3487,7 +3487,7 @@ static void draw_getrect(t_gobj *z, t_glist *glist,
     */
     if (!fielddesc_getfloat(&sa->x_vis.a_attr, template, data, 0) ||
         !fielddesc_getfloat(&sa->x_bbox, template, data, 0) ||
-        (sa->x_type == gensym("group")))
+        (sa->x_type == gensym("g")))
     {
         *xp1 = *yp1 = 0x7fffffff;
         *xp2 = *yp2 = -0x7fffffff;
@@ -7825,7 +7825,7 @@ t_canvas *canvas_templatecanvas_forgroup(t_canvas *c)
         argv[0].a_type == A_SYMBOL &&
         argv[0].a_w.w_symbol == gensym("draw") &&
         argv[1].a_type == A_SYMBOL &&
-        argv[1].a_w.w_symbol == gensym("group"))
+        argv[1].a_w.w_symbol == gensym("g"))
     {
         templatecanvas = canvas_templatecanvas_forgroup(c->gl_owner);
     }
-- 
GitLab