Expose sc_interp_run_style()
authorThomas White <taw@bitwiz.me.uk>
Fri, 6 Jul 2018 20:53:59 +0000 (22:53 +0200)
committerThomas White <taw@bitwiz.me.uk>
Fri, 6 Jul 2018 20:54:26 +0000 (22:54 +0200)
src/frame.c
src/sc_interp.c
src/sc_interp.h

index 785ec7b..c7c1b2f 100644 (file)
@@ -573,6 +573,7 @@ double total_height(struct frame *fr)
 
 Paragraph *last_para(struct frame *fr)
 {
+       if ( fr == NULL ) return NULL;
        if ( fr->paras == NULL ) return NULL;
        return fr->paras[fr->n_paras-1];
 }
index 3b7d913..20593a1 100644 (file)
@@ -763,6 +763,8 @@ static void set_padding(struct frame *fr, const char *opts)
 
        if ( parse_tuple(opts, p) ) return;
 
+       if ( fr == NULL ) return;
+
        fr->pad_l = p[0];
        fr->pad_r = p[1];
        fr->pad_t = p[2];
@@ -1083,7 +1085,7 @@ static int add_text(struct frame *fr, PangoContext *pc, SCBlock *bl,
 }
 
 
-static void run_style(SCInterpreter *scin, const char *sname)
+void sc_interp_run_style(SCInterpreter *scin, const char *sname)
 {
        int i;
        struct sc_state *st = &scin->state[scin->j];
@@ -1148,7 +1150,7 @@ static int check_outputs(SCBlock *bl, SCInterpreter *scin)
 
                maybe_recurse_before(scin, child);
                set_frame(scin, fr);
-               run_style(scin, "frame");
+               sc_interp_run_style(scin, "frame");
                maybe_recurse_after(scin, child);
 
        } else if ( strcmp(name, "newpara")==0 ) {
@@ -1256,7 +1258,7 @@ int sc_interp_add_block(SCInterpreter *scin, SCBlock *bl)
 
        } else if ( strcmp(name, "presentation") == 0 ) {
                maybe_recurse_before(scin, child);
-               run_style(scin, "narrative");
+               sc_interp_run_style(scin, "narrative");
                maybe_recurse_after(scin, child);
 
        } else if ( strcmp(name, "stylesheet") == 0 ) {
@@ -1264,7 +1266,7 @@ int sc_interp_add_block(SCInterpreter *scin, SCBlock *bl)
 
        } else if ( strcmp(name, "slide") == 0 ) {
                maybe_recurse_before(scin, child);
-               run_style(scin, "slide");
+               sc_interp_run_style(scin, "slide");
                maybe_recurse_after(scin, child);
 
        } else if ( strcmp(name, "font") == 0 ) {
index 4316468..f71148d 100644 (file)
@@ -53,6 +53,7 @@ extern int sc_interp_add_blocks(SCInterpreter *scin, SCBlock *bl);
 extern int sc_interp_add_block(SCInterpreter *scin, SCBlock *bl);
 
 extern void sc_interp_run_stylesheet(SCInterpreter *scin, SCBlock *bl);
+extern void sc_interp_run_style(SCInterpreter *scin, const char *sname);
 extern void add_macro(SCInterpreter *scin, const char *mname,
                       const char *contents);