#define SHOWN          (1u<<3)
 #define TMP_MARK       (1u<<4) /* for isolated cases; clean after use */
 #define BOUNDARY       (1u<<5)
-#define ADDED          (1u<<6) /* Parents already parsed and added? */
+#define BOUNDARY_SHOW  (1u<<6)
+#define ADDED          (1u<<7) /* Parents already parsed and added? */
 
 struct rev_info;
+struct log_info;
 
 typedef void (prune_fn_t)(struct rev_info *revs, struct commit *commit);
 
 struct rev_info {
        /* Starting list */
        struct commit_list *commits;
-       struct object_list *pending_objects;
+       struct object_array pending;
 
        /* Basic information */
        const char *prefix;
                        no_merges:1,
                        no_walk:1,
                        remove_empty_trees:1,
+                       simplify_history:1,
                        lifo:1,
                        topo_order:1,
                        tag_objects:1,
                        always_show_header:1;
 
        /* Format info */
-       unsigned int    abbrev_commit:1;
+       unsigned int    shown_one:1,
+                       abbrev_commit:1;
        unsigned int    abbrev;
        enum cmit_fmt   commit_format;
-       const char      *header_prefix;
-       const char      *header;
+       struct log_info *loginfo;
+       int             nr, total;
+       const char      *mime_boundary;
+       const char      *add_signoff;
+       const char      *extra_headers;
 
        /* special limits */
        int max_count;
        const char *elem;
 };
 
-extern struct object_list **add_object(struct object *obj,
-                                      struct object_list **p,
-                                      struct name_path *path,
-                                      const char *name);
+extern void add_object(struct object *obj,
+                      struct object_array *p,
+                      struct name_path *path,
+                      const char *name);
+
+extern void add_pending_object(struct rev_info *revs, struct object *obj, const char *name);
 
 #endif