Excerpts from [email protected]'s message of mar mar 29 11:07:04 +0200 2011:
> Hi,
> 
> the following patch add a wrapper for JavascriptActions to the glib
> bindings. Comments and review welcome.
> 
> 
> Greets
> 
> José

> From f4b0e8d9f038e3ef4033e2c9af45bb48adf0c224 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Jos=C3=A9=20Aliste?= <[email protected]>
> Date: Tue, 29 Mar 2011 04:56:37 -0400
> Subject: [PATCH] glib: add PopplerActionJavaScript wrapper.

> ---
>  glib/poppler-action.cc |   22 ++++++++++++++++++++++
>  glib/poppler-action.h  |   14 +++++++++++++-
>  2 files changed, 35 insertions(+), 1 deletions(-)

> diff --git a/glib/poppler-action.cc b/glib/poppler-action.cc
> index ca88ca4..8b95543 100644
> --- a/glib/poppler-action.cc
> +++ b/glib/poppler-action.cc
> @@ -140,6 +140,10 @@ poppler_action_free (PopplerAction *action)
>                       g_list_free (action->ocg_state.state_list);
>               }
>               break;
> +        case POPPLER_ACTION_JAVASCRIPT:
> +             if (action->javascript.script)
> +                     g_free (action->javascript.script);
> +             break;
>       default:
>               break;
>       }
> @@ -514,6 +518,20 @@ build_movie (PopplerDocument *document,
>  }

You should copy the string in poppler_action_copy() too.
 
>  static void
> +build_javascript (PopplerAction *action,
> +               LinkJavaScript *link)
> +{
> +     action->javascript.script = NULL;

PopplerAction is allocated with g_slice_new0() so you don't need
initializations. 

> +     if (link) {

_poppler_action_new() already checks whether link is NULL to return
early.

> +             GooString *script;
> +
> +             script = link->getScript();
> +             if (script)
> +                     action->javascript.script =  g_strdup 
> (script->getCString ());

JavaScript might be PDFDocEncoding or Unicode, we always expose UTF-8
strings in the glib frontend. 

> +     }
> +}
> +
> +static void
>  build_rendition (PopplerAction *action,
>                LinkRendition *link)
>  {
> @@ -650,6 +668,10 @@ _poppler_action_new (PopplerDocument *document,
>               action->type = POPPLER_ACTION_OCG_STATE;
>               build_ocg_state (document, action, dynamic_cast<LinkOCGState*> 
> (link));
>               break;
> +     case actionJavaScript:
> +             action->type = POPPLER_ACTION_JAVASCRIPT;
> +             build_javascript (action, dynamic_cast<LinkJavaScript*> (link));
> +             break;
>       case actionUnknown:
>       default:
>               action->type = POPPLER_ACTION_UNKNOWN;

Regards, 
-- 
Carlos Garcia Campos
PGP key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x523E6462

Attachment: signature.asc
Description: PGP signature

_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to