1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
/*
* jobs.h
*
* Recording information about the print jobs
* Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana
* Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana
*
*/
/*
* This file is part of a2ps.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/*
* $Id: jobs.h,v 1.1.1.1.2.1 2007/12/29 01:58:19 mhatta Exp $
*/
#ifndef _JOBS_H_
#define _JOBS_H_
#include "encoding.h"
#include "output.h"
#include "confg.h"
#include "media.h"
#include "darray.h"
#include "gen.h"
#include "psstat.h"
#include "caret.h"
#include "common.h"
#include "printers.h"
#include "backupfile.h"
#include "madir.h"
#include "filalign.h"
struct stream;
/* All the information on the current print job */
typedef struct a2ps_job
{
char ** argv; /* The command line */
size_t argc;
struct a2ps_common_s common; /* Common data to several modules */
char * file_command; /* Command to use to call file(1) */
/* Global information that the library needs */
hash_table * media; /* Definition of the media */
struct pair_htable * user_options; /* Short cuts defined by the user */
/* Relative to the whole process */
struct tm run_tm; /* Time when this program is run */
enum backup_type backup_type; /* When to backup output files */
int sheets; /* BEWARE: current PAGE number */
int pages; /* BEWARE: current VIRTUAL number */
int lines_folded; /* Number of lines that were folded */
int total_files; /* id but files */
ORIENTATION orientation; /* landscape mode ? */
enum duplex_e duplex; /* Recto verso printing ? */
int columns; /* number of columns/page */
int rows; /* number of rows/page */
madir_t madir; /* firt rows, or columns?
* (not major, because of a SunOS macro)*/
int virtual; /* number of the virtual page on that sheet */
int copies; /* number of copies */
int margin; /* margin to leave for binding */
struct pair_htable * encodings_map;/* Content of the encoding.map file*/
struct output * ps_encodings; /* PS definition of the encodings used */
int page_prefeed; /* Page prefeed mecanism */
/* How to get the physical font (eg Courier), from the logical
* (eg, Keyword) */
char * face_eo_font [NB_FACES];
uchar * stdin_filename; /* Filename given to stdin */
/*
* Output related
*/
struct a2ps_printers_s * printers;/* The printers module */
enum output_format output_format; /* ps, eps etc. */
struct stream * output_stream;/* Where the result will be dumped */
bool folding; /* Line folding option */
int numbering; /* Line numbering option */
/* Replace non printable char */
enum unprintable_format unprintable_format;
int interpret; /* Interpret TAB, FF and BS chars option */
int print_binaries; /* Force printing for binary files */
file_align_t file_align; /* Policy of sharing medium b/t files. */
int border; /* print the surrounding border ? */
bool debug; /* Are we in debug mode? */
char * prolog; /* postscript header file */
struct medium * medium; /* Medium to use */
char *medium_request; /* The name of the medium choosen */
int tabsize; /* length of tabulations */
int lines_requested; /* Number of line per page */
int columns_requested; /* Number of columns per page */
float fontsize; /* Size of a char for body font */
struct encoding * encoding;/* What is the current char set ? */
char * requested_encoding_name;/* Because encoding.map has not been
* read when reading the conf files,
* we cannot store the result of -X<enc>
* as an encoding */
struct encoding * requested_encoding;/* The main encoding (given by option) */
struct encoding * saved_encoding; /* Given by the options */
struct hash_table_s * encodings;/* The hash table of encodings yet read */
struct pair_htable * fonts_map;/* Aliases (to cope with MS_DOS) */
struct hash_table_s * font_infos; /* The HT of the afm for each file */
/* Headers and footers */
uchar * title; /* Job's title (eg. in %%Title: ) */
uchar * header; /* Allow different header text */
uchar * center_title; /* Allow different header text */
uchar * left_title; /* Allow different header text */
uchar * right_title; /* Allow different header text */
uchar * left_footer; /* Allow different header text */
uchar * footer; /* Allow different header text */
uchar * right_footer; /* Allow different footer text */
uchar * water; /* Water marks text */
/* Used to grab headers etc. from the file */
uchar tag1[256], tag2[256], tag3[256], tag4[256];
/* Definition of the macro meta sequences */
struct pair_htable * macro_meta_sequences;
/* Private information on the PS generation engine */
struct ps_status * status;
/* Where the output is diverted */
struct output * divertion;
/* 10 temporary files */
char * tmp_filenames [10];
/* Interval of pages to print */
struct page_range * page_range;
/* List of the jobs */
struct darray * jobs;
} a2ps_job;
/* liba2ps.h:begin */
/* Return a newly allocated output session storage */
struct a2ps_job * a2ps_job_new PARAMS ((void));
/* Finalize it */
void a2ps_job_finalize PARAMS ((struct a2ps_job * job));
/* Free the memory used by JOB */
void a2ps_job_free PARAMS ((struct a2ps_job * job));
/* liba2ps.h:end */
#define CURRENT_FILE(j) \
((struct file_job *) (j->jobs->content[j->jobs->len - 1]))
#define FIRST_FILE(j) \
((struct file_job *) (j->jobs->content[0]))
/* Unlink everything that could have been used */
void a2ps_job_unlink_tmpfiles PARAMS ((struct a2ps_job * job));
#endif
|