add linked list of name trees to struct pdf_file, and finalize all name trees when PDF file is closed.

Sat, 08 Mar 2003 06:52:09 +0000

author
eric
date
Sat, 08 Mar 2003 06:52:09 +0000
changeset 85
dcfd1d4b5c24
parent 84
a54eb7b9fc15
child 86
7de78f7789ef

add linked list of name trees to struct pdf_file, and finalize all name trees when PDF file is closed.

pdf.c file | annotate | diff | revisions
pdf_name_tree.c file | annotate | diff | revisions
pdf_name_tree.h file | annotate | diff | revisions
pdf_private.h file | annotate | diff | revisions
     1.1 diff -r a54eb7b9fc15 -r dcfd1d4b5c24 pdf.c
     1.2 --- a/pdf.c	Fri Mar 07 11:35:36 2003 +0000
     1.3 +++ b/pdf.c	Sat Mar 08 06:52:09 2003 +0000
     1.4 @@ -4,7 +4,7 @@
     1.5   *      will be compressed using ITU-T T.6 (G4) fax encoding.
     1.6   *
     1.7   * PDF routines
     1.8 - * $Id: pdf.c,v 1.5 2003/03/04 18:09:49 eric Exp $
     1.9 + * $Id: pdf.c,v 1.6 2003/03/07 22:52:09 eric Exp $
    1.10   * Copyright 2001, 2002, 2003 Eric Smith <eric@brouhaha.com>
    1.11   *
    1.12   * This program is free software; you can redistribute it and/or modify
    1.13 @@ -35,6 +35,7 @@
    1.14  #include "pdf_util.h"
    1.15  #include "pdf_prim.h"
    1.16  #include "pdf_private.h"
    1.17 +#include "pdf_name_tree.h"
    1.18  
    1.19  
    1.20  static void pdf_set_info (pdf_file_handle pdf_file, char *key, char *val)
    1.21 @@ -113,6 +114,9 @@
    1.22  
    1.23  void pdf_close (pdf_file_handle pdf_file)
    1.24  {
    1.25 +  /* finalize all data structures */
    1.26 +  pdf_finalize_name_trees (pdf_file);
    1.27 +
    1.28    /* write body */
    1.29    pdf_write_all_ind_obj (pdf_file);
    1.30  
     2.1 diff -r a54eb7b9fc15 -r dcfd1d4b5c24 pdf_name_tree.c
     2.2 --- a/pdf_name_tree.c	Fri Mar 07 11:35:36 2003 +0000
     2.3 +++ b/pdf_name_tree.c	Sat Mar 08 06:52:09 2003 +0000
     2.4 @@ -4,7 +4,7 @@
     2.5   *      will be compressed using ITU-T T.6 (G4) fax encoding.
     2.6   *
     2.7   * PDF routines
     2.8 - * $Id: pdf_name_tree.c,v 1.3 2003/03/07 03:35:36 eric Exp $
     2.9 + * $Id: pdf_name_tree.c,v 1.4 2003/03/07 22:52:09 eric Exp $
    2.10   * Copyright 2003 Eric Smith <eric@brouhaha.com>
    2.11   *
    2.12   * This program is free software; you can redistribute it and/or modify
    2.13 @@ -80,6 +80,9 @@
    2.14    root->parent = NULL;
    2.15    root->leaf = 1;
    2.16  
    2.17 +  tree->next = pdf_file->name_tree_list;
    2.18 +  pdf_file->name_tree_list = tree;
    2.19 +
    2.20    return (tree);
    2.21  }
    2.22  
    2.23 @@ -248,7 +251,10 @@
    2.24  }
    2.25  
    2.26  
    2.27 -void pdf_finalize_name_tree (struct pdf_name_tree *tree)
    2.28 +void pdf_finalize_name_trees (pdf_file_handle pdf_file)
    2.29  {
    2.30 -  pdf_finalize_name_tree_node (tree, tree->root);
    2.31 +  struct pdf_name_tree *tree;
    2.32 +
    2.33 +  for (tree = pdf_file->name_tree_list; tree; tree = tree->next)
    2.34 +    pdf_finalize_name_tree_node (tree, tree->root);
    2.35  }
     3.1 diff -r a54eb7b9fc15 -r dcfd1d4b5c24 pdf_name_tree.h
     3.2 --- a/pdf_name_tree.h	Fri Mar 07 11:35:36 2003 +0000
     3.3 +++ b/pdf_name_tree.h	Sat Mar 08 06:52:09 2003 +0000
     3.4 @@ -4,7 +4,7 @@
     3.5   *      will be compressed using ITU-T T.6 (G4) fax encoding.
     3.6   *
     3.7   * PDF routines
     3.8 - * $Id: pdf_name_tree.h,v 1.1 2003/03/07 02:16:08 eric Exp $
     3.9 + * $Id: pdf_name_tree.h,v 1.2 2003/03/07 22:52:09 eric Exp $
    3.10   * Copyright 2003 Eric Smith <eric@brouhaha.com>
    3.11   *
    3.12   * This program is free software; you can redistribute it and/or modify
    3.13 @@ -26,9 +26,10 @@
    3.14  
    3.15  struct pdf_name_tree
    3.16  {
    3.17 -  pdf_file_handle   pdf_file;
    3.18 -  bool              number_tree;   /* false for name tree,
    3.19 -				      true for number tree */
    3.20 +  pdf_file_handle           pdf_file;
    3.21 +  struct pdf_name_tree      *next;  /* chain all name trees in the PDF file */
    3.22 +  bool                      number_tree;   /* false for name tree,
    3.23 +					      true for number tree */
    3.24    struct pdf_name_tree_node *root;
    3.25  };
    3.26  
    3.27 @@ -47,4 +48,4 @@
    3.28  				  struct pdf_obj *val);
    3.29  
    3.30  
    3.31 -void pdf_finalize_name_tree (struct pdf_name_tree *tree);
    3.32 +void pdf_finalize_name_trees (pdf_file_handle pdf_file);
     4.1 diff -r a54eb7b9fc15 -r dcfd1d4b5c24 pdf_private.h
     4.2 --- a/pdf_private.h	Fri Mar 07 11:35:36 2003 +0000
     4.3 +++ b/pdf_private.h	Sat Mar 08 06:52:09 2003 +0000
     4.4 @@ -4,7 +4,7 @@
     4.5   *      will be compressed using ITU-T T.6 (G4) fax encoding.
     4.6   *
     4.7   * PDF routines
     4.8 - * $Id: pdf_private.h,v 1.5 2003/03/05 12:56:25 eric Exp $
     4.9 + * $Id: pdf_private.h,v 1.6 2003/03/07 22:52:09 eric Exp $
    4.10   * Copyright 2001, 2002, 2003 Eric Smith <eric@brouhaha.com>
    4.11   *
    4.12   * This program is free software; you can redistribute it and/or modify
    4.13 @@ -47,13 +47,14 @@
    4.14  
    4.15  struct pdf_file
    4.16  {
    4.17 -  FILE                *f;
    4.18 -  struct pdf_obj      *first_ind_obj;
    4.19 -  struct pdf_obj      *last_ind_obj;
    4.20 -  long int             xref_offset;
    4.21 -  struct pdf_obj      *catalog;
    4.22 -  struct pdf_obj      *info;
    4.23 -  struct pdf_pages    *root;
    4.24 -  struct pdf_bookmark *outline_root;
    4.25 -  struct pdf_obj      *trailer_dict;
    4.26 +  FILE                 *f;
    4.27 +  struct pdf_obj       *first_ind_obj;
    4.28 +  struct pdf_obj       *last_ind_obj;
    4.29 +  long int              xref_offset;
    4.30 +  struct pdf_obj       *catalog;
    4.31 +  struct pdf_obj       *info;
    4.32 +  struct pdf_pages     *root;
    4.33 +  struct pdf_bookmark  *outline_root;
    4.34 +  struct pdf_obj       *trailer_dict;
    4.35 +  struct pdf_name_tree *name_tree_list;
    4.36  };