summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-field.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-03-29 22:25:09 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-04-24 16:47:43 +0200
commit51b8205a513e86c62121a927a067632c1a933839 (patch)
treec2882a6c253a715bfc2ea72854c75350f0b2024b /source/pdf/pdf-field.c
parent67a7449fc1f186f318942b9c6b8d66d4458b7d87 (diff)
downloadmupdf-51b8205a513e86c62121a927a067632c1a933839.tar.xz
Remove need for namedump by using macros and preprocessor.
Add a PDF_NAME(Foo) macro that evaluates to a pdf_obj for /Foo. Use the C preprocessor to create the enum values and string table from one include file instead of using a separate code generator tool.
Diffstat (limited to 'source/pdf/pdf-field.c')
-rw-r--r--source/pdf/pdf-field.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/source/pdf/pdf-field.c b/source/pdf/pdf-field.c
index 97479d54..7989db8d 100644
--- a/source/pdf/pdf-field.c
+++ b/source/pdf/pdf-field.c
@@ -12,10 +12,10 @@ pdf_obj *pdf_get_inheritable(fz_context *ctx, pdf_document *doc, pdf_obj *obj, p
fobj = pdf_dict_get(ctx, obj, key);
if (!fobj)
- obj = pdf_dict_get(ctx, obj, PDF_NAME_Parent);
+ obj = pdf_dict_get(ctx, obj, PDF_NAME(Parent));
}
- return fobj ? fobj : pdf_dict_get(ctx, pdf_dict_get(ctx, pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME_Root), PDF_NAME_AcroForm), key);
+ return fobj ? fobj : pdf_dict_get(ctx, pdf_dict_get(ctx, pdf_dict_get(ctx, pdf_trailer(ctx, doc), PDF_NAME(Root)), PDF_NAME(AcroForm)), key);
}
char *pdf_get_string_or_stream(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
@@ -62,17 +62,17 @@ char *pdf_get_string_or_stream(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
char *pdf_field_value(fz_context *ctx, pdf_document *doc, pdf_obj *field)
{
- return pdf_load_stream_or_string_as_utf8(ctx, pdf_get_inheritable(ctx, doc, field, PDF_NAME_V));
+ return pdf_load_stream_or_string_as_utf8(ctx, pdf_get_inheritable(ctx, doc, field, PDF_NAME(V)));
}
int pdf_get_field_flags(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
{
- return pdf_to_int(ctx, pdf_get_inheritable(ctx, doc, obj, PDF_NAME_Ff));
+ return pdf_to_int(ctx, pdf_get_inheritable(ctx, doc, obj, PDF_NAME(Ff)));
}
static pdf_obj *get_field_type_name(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
{
- return pdf_get_inheritable(ctx, doc, obj, PDF_NAME_FT);
+ return pdf_get_inheritable(ctx, doc, obj, PDF_NAME(FT));
}
int pdf_field_type(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
@@ -80,7 +80,7 @@ int pdf_field_type(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
pdf_obj *type = get_field_type_name(ctx, doc, obj);
int flags = pdf_get_field_flags(ctx, doc, obj);
- if (pdf_name_eq(ctx, type, PDF_NAME_Btn))
+ if (pdf_name_eq(ctx, type, PDF_NAME(Btn)))
{
if (flags & Ff_Pushbutton)
return PDF_WIDGET_TYPE_PUSHBUTTON;
@@ -89,16 +89,16 @@ int pdf_field_type(fz_context *ctx, pdf_document *doc, pdf_obj *obj)
else
return PDF_WIDGET_TYPE_CHECKBOX;
}
- else if (pdf_name_eq(ctx, type, PDF_NAME_Tx))
+ else if (pdf_name_eq(ctx, type, PDF_NAME(Tx)))
return PDF_WIDGET_TYPE_TEXT;
- else if (pdf_name_eq(ctx, type, PDF_NAME_Ch))
+ else if (pdf_name_eq(ctx, type, PDF_NAME(Ch)))
{
if (flags & Ff_Combo)
return PDF_WIDGET_TYPE_COMBOBOX;
else
return PDF_WIDGET_TYPE_LISTBOX;
}
- else if (pdf_name_eq(ctx, type, PDF_NAME_Sig))
+ else if (pdf_name_eq(ctx, type, PDF_NAME(Sig)))
return PDF_WIDGET_TYPE_SIGNATURE;
else
return PDF_WIDGET_TYPE_NOT_WIDGET;
@@ -113,42 +113,42 @@ void pdf_set_field_type(fz_context *ctx, pdf_document *doc, pdf_obj *obj, int ty
switch(type)
{
case PDF_WIDGET_TYPE_PUSHBUTTON:
- typename = PDF_NAME_Btn;
+ typename = PDF_NAME(Btn);
setbits = Ff_Pushbutton;
break;
case PDF_WIDGET_TYPE_CHECKBOX:
- typename = PDF_NAME_Btn;
+ typename = PDF_NAME(Btn);
clearbits = Ff_Pushbutton;
setbits = Ff_Radio;
break;
case PDF_WIDGET_TYPE_RADIOBUTTON:
- typename = PDF_NAME_Btn;
+ typename = PDF_NAME(Btn);
clearbits = (Ff_Pushbutton|Ff_Radio);
break;
case PDF_WIDGET_TYPE_TEXT:
- typename = PDF_NAME_Tx;
+ typename = PDF_NAME(Tx);
break;
case PDF_WIDGET_TYPE_LISTBOX:
- typename = PDF_NAME_Ch;
+ typename = PDF_NAME(Ch);
clearbits = Ff_Combo;
break;
case PDF_WIDGET_TYPE_COMBOBOX:
- typename = PDF_NAME_Ch;
+ typename = PDF_NAME(Ch);
setbits = Ff_Combo;
break;
case PDF_WIDGET_TYPE_SIGNATURE:
- typename = PDF_NAME_Sig;
+ typename = PDF_NAME(Sig);
break;
}
if (typename)
- pdf_dict_put_drop(ctx, obj, PDF_NAME_FT, typename);
+ pdf_dict_put_drop(ctx, obj, PDF_NAME(FT), typename);
if (setbits != 0 || clearbits != 0)
{
- int bits = pdf_to_int(ctx, pdf_dict_get(ctx, obj, PDF_NAME_Ff));
+ int bits = pdf_to_int(ctx, pdf_dict_get(ctx, obj, PDF_NAME(Ff)));
bits &= ~clearbits;
bits |= setbits;
- pdf_dict_put_int(ctx, obj, PDF_NAME_Ff, bits);
+ pdf_dict_put_int(ctx, obj, PDF_NAME(Ff), bits);
}
}