source file of the GNU LilyPond music typesetter
- (c) 1999--2000 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1999--2002 Jan Nieuwenhuizen <janneke@gnu.org>
some code shamelessly copied from GNU fontutils-0.6/tfm/tfm_input.c
#include "warn.hh"
#define format_str String_convert::form_str
-#define FIX_UNITY (1 << 20)
+#define FIX_UNITY \
+ (1 << 20)
static const Real fix_to_real (Fix f);
Tex_font_metric_reader::read_header ()
{
U16 file_length = input_.get_U16 ();
- (void) file_length;
+ (void) file_length;
U16 header_length = input_.get_U16 ();
info_.first_charcode = input_.get_U16 ();
U16 italic_correction_word_count = input_.get_U16 ();
U16 lig_kern_word_count = input_.get_U16 ();
U16 kern_word_count = input_.get_U16 ();
- (void)kern_word_count;
+ (void)kern_word_count;
U16 extensible_word_count = input_.get_U16 ();
- (void)extensible_word_count;
+ (void)extensible_word_count;
header_.param_word_count = input_.get_U16 ();
info_.parameter_count = header_.param_word_count;
/* We don't care about the extensible table. */
if (header_length < 2)
- error (_f ("TFM header of `%s' has only %u word(s)",
+ error (_f ("TFM header of `%s' has only %u word (s)",
input_.name_str ().ch_C (), header_length));
info_.checksum = input_.get_U32 ();
info_.coding_scheme = header_length > 2
? get_bcpl_str () : "unspecified";
- DEBUG_OUT << format_str ("TFM checksum = %u, design_size = %fpt, coding scheme = `%s'.\n",
- info_.checksum,
- info_.design_size,
- info_.coding_scheme.ch_C ());
}
/* Although TFM files are only usable by TeX if they have at least seven
/* The first parameter is different than all the rest, because it
isn't scaled by the design size. */
- info_.parameters[(TFM_SLANT_PARAMETER) - 1] = get_U32_fix_f ();
+ info_.parameters[ (TFM_SLANT_PARAMETER) - 1] = get_U32_fix_f ();
for (Char_code i = 2; i <= header_.param_word_count; i++)
info_.parameters[i - 1] = get_U32_fix_scaled_f ();
-#ifdef PRINT
- for (Char_code i = 1; i <= header_.param_word_count; i++)
- DEBUG_OUT << format_str ("TFM parameter %d: %.3f", i, info_.parameters[i - 1]);
-#endif
}
/* Read every character in the TFM file, storing the result in the
#define GET_CHAR_DIMEN(d) \
if (d##_index != 0) \
{ \
- input_.seek_ch_C (header_.##d##_pos + d##_index*4); \
+ input_.seek_ch_C (header_. d##_pos + d##_index*4); \
tfm_char.d##_fix_ = input_.get_U32 (); \
tfm_char.d##_ = fix_to_real (tfm_char.d##_fix_) \
* info_.design_size; \
}
- GET_CHAR_DIMEN(width);
- GET_CHAR_DIMEN(height);
- GET_CHAR_DIMEN(depth);
- GET_CHAR_DIMEN(italic_correction);
+ GET_CHAR_DIMEN (width);
+ GET_CHAR_DIMEN (height);
+ GET_CHAR_DIMEN (depth);
+ GET_CHAR_DIMEN (italic_correction);
/* The other condition for a character existing is that it be between
the first and last character codes given in the header. We've
`char_info_word'). */
tfm_char.exists_b_ = width_index != 0;
-#ifdef PRINT
- DEBUG_OUT << format_str (" width = %f, height = %f, ",
- tfm_char.width_, tfm_char.height_);
- DEBUG_OUT << format_str ("depth = %f, ic = %f.\n",
- tfm_char.depth, tfm_char.italic_correction);
-#endif
-
if (tag == 1)
{
input_.seek_ch_C (header_.lig_kern_pos + remainder * 4);
bool kern_step_b = input_.get_U8 () >= KERN_FLAG;
U8 remainder = input_.get_U8 ();
-#ifdef PRINT
- DEBUG_OUT << format_str (" if next = %u (%c), ", next_char, next_char);
-#endif
if (kern_step_b)
{
kern_arr_p->push (kern_element);
-#ifdef PRINT
- DEBUG_OUT << format_str ("kern %f.\n", kern_element.kern);
-#endif
}
else
{
ligature_element.ligature = remainder;
ligature_arr_p->push (ligature_element);
-#ifdef PRINT
- DEBUG_OUT format_str ("ligature %d (hex %x).\n",
- ligature_element.ligature,
- ligature_element.ligature);
-#endif
}
} while (!end_b);
}