From af4e935bee0c669a93488e5f40b4be071f47937b Mon Sep 17 00:00:00 2001
From: kramm <kramm>
Date: Sat, 7 Aug 2004 14:05:19 +0000
Subject: [PATCH] added framelabels.

---
 src/swfc.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/swfc.c b/src/swfc.c
index 2be9d1c..27f6e9a 100644
--- a/src/swfc.c
+++ b/src/swfc.c
@@ -692,13 +692,17 @@ int s_getframe()
     return currentframe;
 }
 
-void s_frame(int nr, int cut)
+void s_frame(int nr, int cut, char*name)
 {
     int t;
     TAG*now = tag;
 
     for(t=currentframe;t<nr;t++) {
 	tag = swf_InsertTag(tag, ST_SHOWFRAME);
+	if(t==nr-1 && name && *name) {
+	    tag = swf_InsertTag(tag, ST_FRAMELABEL);
+	    swf_SetString(tag, name);
+	}
     }
 
     if(cut) {
@@ -2153,6 +2157,7 @@ static int c_frame(map_t*args)
 {
     char*framestr = lu(args, "n");
     char*cutstr = lu(args, "cut");
+    char*name = lu(args, "name");
     int frame;
     int cut = 0;
     if(strcmp(cutstr, "no"))
@@ -2169,7 +2174,7 @@ static int c_frame(map_t*args)
 		&& !(frame==0 && s_getframe()==frame)) // equality is o.k. for frame 0
 	    syntaxerror("frame expression must be >%d (is:%s)", s_getframe(), framestr);
     }
-    s_frame(frame, cut);
+    s_frame(frame, cut, name);
     return 0;
 }
 static int c_primitive(map_t*args) 
@@ -2481,7 +2486,7 @@ static struct {
     char*arguments;
 } arguments[] =
 {{"flash", c_flash, "bbox=autocrop background=black version=5 fps=50 name=!default! @compress=default"},
- {"frame", c_frame, "n=<plus>1 @cut=no"},
+ {"frame", c_frame, "n=<plus>1 name= @cut=no"},
  // "import" type stuff
  {"swf", c_swf, "name filename"},
  {"shape", c_swf, "name filename"},
-- 
1.7.10.4