Browse code

Use the right struct with the PDF stats callbacks

Shawn Webb authored on 2014/06/26 03:06:17
Showing 2 changed files
... ...
@@ -79,39 +79,39 @@ static	const	char	*pdf_nextlinestart(const char *ptr, size_t len);
79 79
 static	const	char	*pdf_nextobject(const char *ptr, size_t len);
80 80
 
81 81
 /* PDF statistics callbacks and related */
82
-struct pdf_action;
82
+struct pdfname_action;
83 83
 
84 84
 static void pdf_export_json(struct pdf_struct *);
85 85
 
86
-static void ASCIIHexDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
87
-static void ASCII85Decode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
88
-static void EmbeddedFile_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
89
-static void FlateDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
90
-static void Image_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
91
-static void LZWDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
92
-static void RunLengthDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
93
-static void CCITTFaxDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
94
-static void JBIG2Decode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
95
-static void DCTDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
96
-static void JPXDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
97
-static void Crypt_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
98
-static void Standard_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
99
-static void Sig_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
100
-static void JavaScript_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
101
-static void OpenAction_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
102
-static void Launch_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
103
-static void Page_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
86
+static void ASCIIHexDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
87
+static void ASCII85Decode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
88
+static void EmbeddedFile_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
89
+static void FlateDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
90
+static void Image_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
91
+static void LZWDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
92
+static void RunLengthDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
93
+static void CCITTFaxDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
94
+static void JBIG2Decode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
95
+static void DCTDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
96
+static void JPXDecode_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
97
+static void Crypt_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
98
+static void Standard_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
99
+static void Sig_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
100
+static void JavaScript_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
101
+static void OpenAction_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
102
+static void Launch_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
103
+static void Page_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
104 104
 static void print_pdf_stats(struct pdf_struct *);
105
-static void Author_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
106
-static void Creator_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
107
-static void Producer_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
108
-static void CreationDate_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
109
-static void ModificationDate_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
110
-static void Title_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
111
-static void Subject_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
112
-static void Keywords_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
113
-static void Pages_cb(struct pdf_struct *, struct pdf_obj *, struct pdf_action *);
114
-static void Colors_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act);
105
+static void Author_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
106
+static void Creator_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
107
+static void Producer_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
108
+static void CreationDate_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
109
+static void ModificationDate_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
110
+static void Title_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
111
+static void Subject_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
112
+static void Keywords_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
113
+static void Pages_cb(struct pdf_struct *, struct pdf_obj *, struct pdfname_action *);
114
+static void Colors_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act);
115 115
 /* End PDF statistics callbacks and related */
116 116
 
117 117
 static int xrefCheck(const char *xref, const char *eof)
... ...
@@ -1295,7 +1295,7 @@ struct pdfname_action {
1295 1295
     enum pdf_objflags set_objflag;/* OBJ_DICT is noop */
1296 1296
     enum objstate from_state;/* STATE_NONE is noop */
1297 1297
     enum objstate to_state;
1298
-    void (*pdf_stats_cb)(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act);
1298
+    void (*pdf_stats_cb)(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act);
1299 1299
 };
1300 1300
 
1301 1301
 static struct pdfname_action pdfname_actions[] = {
... ...
@@ -2776,7 +2776,7 @@ pdf_nextobject(const char *ptr, size_t len)
2776 2776
 }
2777 2777
 
2778 2778
 /* PDF statistics */
2779
-static void ASCIIHexDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2779
+static void ASCIIHexDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2780 2780
 {
2781 2781
     if (!(pdf))
2782 2782
         return;
... ...
@@ -2784,7 +2784,7 @@ static void ASCIIHexDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struc
2784 2784
     pdf->stats.nasciihexdecode++;
2785 2785
 }
2786 2786
 
2787
-static void ASCII85Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2787
+static void ASCII85Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2788 2788
 {
2789 2789
     if (!(pdf))
2790 2790
         return;
... ...
@@ -2792,7 +2792,7 @@ static void ASCII85Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
2792 2792
     pdf->stats.nascii85decode++;
2793 2793
 }
2794 2794
 
2795
-static void EmbeddedFile_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2795
+static void EmbeddedFile_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2796 2796
 {
2797 2797
     if (!(pdf))
2798 2798
         return;
... ...
@@ -2800,7 +2800,7 @@ static void EmbeddedFile_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
2800 2800
     pdf->stats.nembeddedfile++;
2801 2801
 }
2802 2802
 
2803
-static void FlateDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2803
+static void FlateDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2804 2804
 {
2805 2805
     if (!(pdf))
2806 2806
         return;
... ...
@@ -2808,7 +2808,7 @@ static void FlateDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct p
2808 2808
     pdf->stats.nflate++;
2809 2809
 }
2810 2810
 
2811
-static void Image_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2811
+static void Image_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2812 2812
 {
2813 2813
     if (!(pdf))
2814 2814
         return;
... ...
@@ -2816,7 +2816,7 @@ static void Image_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_act
2816 2816
     pdf->stats.nimage++;
2817 2817
 }
2818 2818
 
2819
-static void LZWDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2819
+static void LZWDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2820 2820
 {
2821 2821
     if (!(pdf))
2822 2822
         return;
... ...
@@ -2824,7 +2824,7 @@ static void LZWDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf
2824 2824
     pdf->stats.nlzw++;
2825 2825
 }
2826 2826
 
2827
-static void RunLengthDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2827
+static void RunLengthDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2828 2828
 {
2829 2829
     if (!(pdf))
2830 2830
         return;
... ...
@@ -2832,7 +2832,7 @@ static void RunLengthDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, stru
2832 2832
     pdf->stats.nrunlengthdecode++;
2833 2833
 }
2834 2834
 
2835
-static void CCITTFaxDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2835
+static void CCITTFaxDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2836 2836
 {
2837 2837
     if (!(pdf))
2838 2838
         return;
... ...
@@ -2840,7 +2840,7 @@ static void CCITTFaxDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struc
2840 2840
     pdf->stats.nfaxdecode++;
2841 2841
 }
2842 2842
 
2843
-static void JBIG2Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2843
+static void JBIG2Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2844 2844
 {
2845 2845
 #if HAVE_JSON
2846 2846
     struct json_object *pdfobj, *jbig2arr, *jbig2obj;
... ...
@@ -2865,7 +2865,7 @@ static void JBIG2Decode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct p
2865 2865
 #endif
2866 2866
 }
2867 2867
 
2868
-static void DCTDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2868
+static void DCTDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2869 2869
 {
2870 2870
     if (!(pdf))
2871 2871
         return;
... ...
@@ -2873,7 +2873,7 @@ static void DCTDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf
2873 2873
     pdf->stats.ndctdecode++;
2874 2874
 }
2875 2875
 
2876
-static void JPXDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2876
+static void JPXDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2877 2877
 {
2878 2878
     if (!(pdf))
2879 2879
         return;
... ...
@@ -2881,7 +2881,7 @@ static void JPXDecode_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf
2881 2881
     pdf->stats.njpxdecode++;
2882 2882
 }
2883 2883
 
2884
-static void Crypt_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2884
+static void Crypt_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2885 2885
 {
2886 2886
     if (!(pdf))
2887 2887
         return;
... ...
@@ -2889,7 +2889,7 @@ static void Crypt_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_act
2889 2889
     pdf->stats.ncrypt++;
2890 2890
 }
2891 2891
 
2892
-static void Standard_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2892
+static void Standard_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2893 2893
 {
2894 2894
     if (!(pdf))
2895 2895
         return;
... ...
@@ -2897,7 +2897,7 @@ static void Standard_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_
2897 2897
     pdf->stats.nstandard++;
2898 2898
 }
2899 2899
 
2900
-static void Sig_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2900
+static void Sig_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2901 2901
 {
2902 2902
     if (!(pdf))
2903 2903
         return;
... ...
@@ -2905,7 +2905,7 @@ static void Sig_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_actio
2905 2905
     pdf->stats.nsigned++;
2906 2906
 }
2907 2907
 
2908
-static void JavaScript_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2908
+static void JavaScript_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2909 2909
 {
2910 2910
 #if HAVE_JSON
2911 2911
     struct json_object *pdfobj, *jbig2arr, *jbig2obj;
... ...
@@ -2930,7 +2930,7 @@ static void JavaScript_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pd
2930 2930
 #endif
2931 2931
 }
2932 2932
 
2933
-static void OpenAction_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2933
+static void OpenAction_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2934 2934
 {
2935 2935
     if (!(pdf))
2936 2936
         return;
... ...
@@ -2938,7 +2938,7 @@ static void OpenAction_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pd
2938 2938
     pdf->stats.nopenaction++;
2939 2939
 }
2940 2940
 
2941
-static void Launch_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2941
+static void Launch_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2942 2942
 {
2943 2943
     if (!(pdf))
2944 2944
         return;
... ...
@@ -2946,7 +2946,7 @@ static void Launch_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_ac
2946 2946
     pdf->stats.nlaunch++;
2947 2947
 }
2948 2948
 
2949
-static void Page_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2949
+static void Page_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2950 2950
 {
2951 2951
     if (!(pdf))
2952 2952
         return;
... ...
@@ -2954,7 +2954,7 @@ static void Page_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_acti
2954 2954
     pdf->stats.npage++;
2955 2955
 }
2956 2956
 
2957
-static void Author_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2957
+static void Author_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2958 2958
 {
2959 2959
 #if HAVE_JSON
2960 2960
     if (!(pdf))
... ...
@@ -2965,7 +2965,7 @@ static void Author_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_ac
2965 2965
 #endif
2966 2966
 }
2967 2967
 
2968
-static void Creator_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2968
+static void Creator_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2969 2969
 {
2970 2970
 #if HAVE_JSON
2971 2971
     if (!(pdf))
... ...
@@ -2976,7 +2976,7 @@ static void Creator_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_a
2976 2976
 #endif
2977 2977
 }
2978 2978
 
2979
-static void ModificationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2979
+static void ModificationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2980 2980
 {
2981 2981
 #if HAVE_JSON
2982 2982
     if (!(pdf))
... ...
@@ -2987,7 +2987,7 @@ static void ModificationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj, str
2987 2987
 #endif
2988 2988
 }
2989 2989
 
2990
-static void CreationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
2990
+static void CreationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
2991 2991
 {
2992 2992
 #if HAVE_JSON
2993 2993
     if (!(pdf))
... ...
@@ -2998,7 +2998,7 @@ static void CreationDate_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct
2998 2998
 #endif
2999 2999
 }
3000 3000
 
3001
-static void Producer_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
3001
+static void Producer_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
3002 3002
 {
3003 3003
 #if HAVE_JSON
3004 3004
     if (!(pdf))
... ...
@@ -3009,7 +3009,7 @@ static void Producer_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_
3009 3009
 #endif
3010 3010
 }
3011 3011
 
3012
-static void Title_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
3012
+static void Title_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
3013 3013
 {
3014 3014
 #if HAVE_JSON
3015 3015
     if (!(pdf))
... ...
@@ -3020,7 +3020,7 @@ static void Title_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_act
3020 3020
 #endif
3021 3021
 }
3022 3022
 
3023
-static void Keywords_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
3023
+static void Keywords_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
3024 3024
 {
3025 3025
 #if HAVE_JSON
3026 3026
     if (!(pdf))
... ...
@@ -3031,7 +3031,7 @@ static void Keywords_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_
3031 3031
 #endif
3032 3032
 }
3033 3033
 
3034
-static void Subject_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
3034
+static void Subject_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
3035 3035
 {
3036 3036
 #if HAVE_JSON
3037 3037
     if (!(pdf))
... ...
@@ -3042,7 +3042,7 @@ static void Subject_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_a
3042 3042
 #endif
3043 3043
 }
3044 3044
 
3045
-static void Pages_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
3045
+static void Pages_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
3046 3046
 {
3047 3047
 #if HAVE_JSON
3048 3048
     struct pdf_array *array;
... ...
@@ -3112,7 +3112,7 @@ cleanup:
3112 3112
 #endif
3113 3113
 }
3114 3114
 
3115
-static void Colors_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdf_action *act)
3115
+static void Colors_cb(struct pdf_struct *pdf, struct pdf_obj *obj, struct pdfname_action *act)
3116 3116
 {
3117 3117
 #if HAVE_JSON
3118 3118
     json_object *colorsobj, *pdfobj;
... ...
@@ -136,6 +136,7 @@ struct pdf_struct {
136 136
 #define PDF_EXTRACT_OBJ_SCAN 0x1
137 137
 
138 138
 int cli_pdf(const char *dir, cli_ctx *ctx, off_t offset);
139
+void pdf_parseobj(struct pdf_struct *pdf, struct pdf_obj *obj);
139 140
 int pdf_extract_obj(struct pdf_struct *pdf, struct pdf_obj *obj, uint32_t flags);
140 141
 int pdf_findobj(struct pdf_struct *pdf);
141 142
 struct pdf_obj *find_obj(struct pdf_struct *pdf, struct pdf_obj *obj, uint32_t objid);
... ...
@@ -146,5 +147,7 @@ struct pdf_dict *pdf_parse_dict(struct pdf_struct *pdf, struct pdf_obj *obj, siz
146 146
 int is_object_reference(char *begin, char **endchar, uint32_t *id);
147 147
 void pdf_free_dict(struct pdf_dict *dict);
148 148
 void pdf_free_array(struct pdf_array *array);
149
+void pdf_print_dict(struct pdf_dict *dict, unsigned long depth);
150
+void pdf_print_array(struct pdf_array *array, unsigned long depth);
149 151
 
150 152
 #endif