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
|
/*
* ffaces.h
*
* definition of the flagged faces used by a2ps
* 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: ffaces.h,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $
*/
#ifndef _FFACES_H_
#define _FFACES_H_
#include "faces.h"
/*
* These flags can be seen as an extension of the faces: they
* offer a way to have more information about the way the text
* should be processed by adding special flags _not_ to be
* seen by liba2ps.
*
* Many things used to be implemented as pure face_e, but it is
* better like this, and removes from liba2ps code/defs that were
* ment to a2ps-prog only
*/
enum fflag_e {
ff_No_fflag = 0,
/* Make the text invisible (don't print it) */
ff_Invisible = 1 << 0,
/* Grabbing from the text (used for headings etc) */
ff_Tag1 = 1 << 1,
ff_Tag2 = 1 << 2,
ff_Tag3 = 1 << 3,
ff_Tag4 = 1 << 4,
/* Store in the Indexes */
ff_Index1 = 1 << 5,
ff_Index2 = 1 << 6,
ff_Index3 = 1 << 7,
ff_Index4 = 1 << 8,
/* Grab an Encoding (Dynamic encoding switches) */
ff_Encoding = 1 << 9
};
void fflag_self_print PARAMS ((enum fflag_e flags, FILE * stream));
/************************************************************************/
/* Flagged faces */
/************************************************************************/
struct fface_s {
enum face_e face; /* The part which is the face to give to liba2ps */
enum fflag_e flags; /* The special flags for prog-a2ps */
};
void fface_self_print PARAMS ((struct fface_s face, FILE * stream));
/*
* Read/Set the face part
*/
#define fface_set_face(ff,fa) \
((ff).face) = (fa)
#define fface_reset_face(ff) \
((ff).face) = (No_face)
#define fface_get_face(ff) \
((ff).face)
/*
* Read/Set the flags part
*/
#define fface_set_flags(ff,fl) \
((ff).flags) = (fl)
#define fface_reset_flags(ff) \
((ff).flags) = ff_No_fflag
#define fface_get_flags(ff) \
((ff).flags)
/* Here I cast, because for MIPSpro, enum | enum => int */
#define fface_add_flags(ff,fl) \
fface_set_flags (ff, ((enum fflag_e) fface_get_flags (ff) | (fl)))
/*
* Compare two ffaces
*/
#define fface_squ(ff1,ff2) \
(((ff1).face == (ff2).face) && ((ff1).flags == (ff2).flags))
/*
* Some predefined ffaces.
*/
extern struct fface_s String_fface;
extern struct fface_s Plain_fface;
extern struct fface_s Symbol_fface;
extern struct fface_s No_fface;
#endif /* !defined(_FFACES_H_) */
|