diff options
author | karl <karl> | 2004-04-19 22:56:26 +0000 |
---|---|---|
committer | karl <karl> | 2004-04-19 22:56:26 +0000 |
commit | d2ffca200655a89c5d140b66d69001e92173e3da (patch) | |
tree | 6fa1965e6e8362c5913e1554b12507a924dba7f1 /imageto/ifi.h | |
parent | eb33f9ace5a3ddfe8a983866468f3352abaa6391 (diff) | |
download | fontutils-d2ffca200655a89c5d140b66d69001e92173e3da.tar.gz |
init
Diffstat (limited to 'imageto/ifi.h')
-rw-r--r-- | imageto/ifi.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/imageto/ifi.h b/imageto/ifi.h new file mode 100644 index 0000000..e013d26 --- /dev/null +++ b/imageto/ifi.h @@ -0,0 +1,91 @@ +/* ifi.h: information about the characters in the image. + +Copyright (C) 1992 Free Software Foundation, Inc. + +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 2, 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; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#ifndef IFI_H +#define IFI_H + +#include <kpathsea/types.h> + + +/* See ifi.c. */ +extern string encoding_name, ifi_filename; + + +/* A single character in the image. */ +typedef struct +{ + charcode_type charcode; + string charname; + boolean omit; + int baseline_adjust; + unsigned bb_count; + boolean alternating; + int lsb, rsb; +} image_char_type; + +/* The character code. This is garbage if `omit' is true. */ +#define IMAGE_CHARCODE(c) ((c).charcode) + +/* The character name. */ +#define IMAGE_CHARNAME(c) ((c).charname) + +/* Says whether this character should be output. */ +#define IMAGE_CHAR_OMIT(c) ((c).omit) + +/* How far the baseline should be moved from the row's baseline. */ +#define IMAGE_CHAR_BASELINE_ADJUST(c) ((c).baseline_adjust) + +/* How many bounding boxes comprise this character. */ +#define IMAGE_CHAR_BB_COUNT(c) ((c).bb_count) + +/* Says whether the bounding boxes in this character are consecutive + (the usual case) or alternate. */ +#define IMAGE_CHAR_BB_ALTERNATING(c) ((c).alternating) + +/* The side bearings. */ +#define IMAGE_CHAR_LSB(c) ((c).lsb) +#define IMAGE_CHAR_RSB(c) ((c).rsb) + + +/* A list of the above. */ +typedef struct +{ + image_char_type *data; + unsigned length; +} image_char_list_type; + +/* The Nth element of the list L. */ +#define IMAGE_CHAR(l, n) ((l).data[n]) + +/* The list as a whole. */ +#define IMAGE_CHAR_LIST_DATA(l) ((l).data) + +/* The length of the list. */ +#define IMAGE_CHAR_LIST_LENGTH(l) ((l).length) + + +/* Read the IFI file IFI_FILENAME. Return the total number of characters + read in TOTAL_COUNT. */ +extern image_char_list_type read_ifi_file (unsigned *total_count); + +/* Return false if the box BOX_COUNT boxes beyond FIRST_CHAR in LIST + is in the middle of a character, true otherwise. */ +extern boolean box_at_char_boundary_p + (image_char_list_type list, unsigned first_char, unsigned box_count); + +#endif /* not IFI_H */ |