jobserver going.
* configure.in (std_vector): On by default.
* lily/include/font-metric.hh:
* lily/include/tfm-reader.hh:
* lily/include/spanner.hh: Use unsigned for indices and sizes.
Update users.
* Documentation/user/changing-defaults.itely: Fix link v2.5, out-www.
2006-02-05 Jan Nieuwenhuizen <janneke@gnu.org>
+ * stepmake/stepmake/generic-vars.make (LOOP): Add PLUS to keep -j
+ jobserver going.
+
+ * configure.in (std_vector): On by default.
+
+ * lily/include/font-metric.hh:
+ * lily/include/tfm-reader.hh:
+ * lily/include/spanner.hh: Use unsigned for indices and sizes.
+ Update users.
+
* Documentation/user/changing-defaults.itely: Fix link v2.5, out-www.
2006-02-05 Han-Wen Nienhuys <hanwen@xs4all.nl>
ln -s ../../../../../../mf/$(outconfbase)/*.pfa .
+TAGS.make: dummy
+ etags -o $@ $(find $(srcdir) -name 'GNUmakefile*' -o -name '*.make')
+
local-clean: build-dir-setup-clean
build-dir-setup-clean:
cd $(top-build-dir) && rm -rf share
DEFINES="$DEFINES -DSTD_STRING=1"
fi
-std_vector=no
+std_vector=yes
AC_ARG_ENABLE(std-string,
- [ --enable-std-vector compile with experimental std::vector. Default: off],
+ [ --enable-std-vector compile with std::vector. Default: on],
[std_vector=$enableval])
if test "$std_vector" = "yes"; then
# Store in config.make rather than in config.hh and have every
/** Use slash as directory separator. On Windows, they can pretty
much be exchanged. */
-static std::string
+#if 0
+static /* avoid warning */
+#endif
+std::string
slashify (std::string file_name)
{
replace_all (file_name, '\\', '/');
{
}
-int
+vsize
Font_metric::count () const
{
return 0;
}
Box
-Font_metric::get_ascii_char (int) const
+Font_metric::get_ascii_char (vsize) const
{
return Box (Interval (0, 0), Interval (0, 0));
}
Box
-Font_metric::get_indexed_char (int k) const
+Font_metric::get_indexed_char (vsize k) const
{
return get_ascii_char (k);
}
-int
+vsize
Font_metric::name_to_index (std::string) const
{
- return -1;
+ return VPOS;
}
Offset
-Font_metric::get_indexed_wxwy (int) const
+Font_metric::get_indexed_wxwy (vsize) const
{
return Offset (0, 0);
}
return s;
}
-int
-Font_metric::index_to_ascii (int i) const
+vsize
+Font_metric::index_to_ascii (vsize i) const
{
return i;
}
-unsigned
-Font_metric::index_to_charcode (int i) const
+vsize
+Font_metric::index_to_charcode (vsize i) const
{
- return (unsigned) index_to_ascii (i);
+ return index_to_ascii (i);
}
Stencil
-Font_metric::get_ascii_char_stencil (int code) const
+Font_metric::get_ascii_char_stencil (vsize code) const
{
SCM at = scm_list_3 (ly_symbol2scm ("char"), self_scm (),
- scm_from_int (code));
+ scm_from_unsigned (code));
Box b = get_ascii_char (code);
return Stencil (b, at);
}
Stencil
-Font_metric::get_indexed_char_stencil (int code) const
+Font_metric::get_indexed_char_stencil (vsize code) const
{
- int idx = index_to_ascii (code);
- SCM at = scm_list_3 (ly_symbol2scm ("char"), self_scm (), scm_from_int (idx));
+ vsize idx = index_to_ascii (code);
+ SCM at = scm_list_3 (ly_symbol2scm ("char"), self_scm (),
+ scm_from_unsigned (idx));
Box b = get_indexed_char (code);
return Stencil (b, at);
}
TRANSLATOR_DECLARATIONS (Horizontal_bracket_engraver);
Link_array__Spanner_ bracket_stack_;
Link_array__Music_ events_;
- int pop_count_;
- int push_count_;
+ vsize pop_count_;
+ vsize push_count_;
virtual bool try_music (Music *);
void stop_translation_timestep ();
void
Horizontal_bracket_engraver::process_music ()
{
- for (int k = 0; k < push_count_; k++)
+ for (vsize k = 0; k < push_count_; k++)
{
Spanner *sp = make_spanner ("HorizontalBracket", events_[k]->self_scm ());
for (vsize i = 0; i < bracket_stack_.size (); i++)
- {
- /*
- sp is the smallest, it should be added to the bigger brackets.
- */
- Side_position_interface::add_support (bracket_stack_[i], sp);
- }
+ /* sp is the smallest, it should be added to the bigger brackets. */
+ Side_position_interface::add_support (bracket_stack_[i], sp);
bracket_stack_.push_back (sp);
}
}
virtual Stencil text_stencil (std::string) const;
virtual Box text_dimension (std::string) const;
virtual std::string font_name () const;
- virtual int count () const;
+ virtual vsize count () const;
virtual Offset attachment_point (std::string) const;
- virtual Offset get_indexed_wxwy (int) const;
- virtual Box get_indexed_char (int index) const;
- virtual Box get_ascii_char (int ascii) const;
- virtual int name_to_index (std::string) const;
- virtual unsigned index_to_charcode (int) const;
- virtual int index_to_ascii (int) const;
+ virtual Offset get_indexed_wxwy (vsize) const;
+ virtual Box get_indexed_char (vsize index) const;
+ virtual Box get_ascii_char (vsize ascii) const;
+ virtual vsize name_to_index (std::string) const;
+ virtual vsize index_to_charcode (vsize) const;
+ virtual vsize index_to_ascii (vsize) const;
virtual Real design_size () const;
virtual Stencil find_by_name (std::string) const;
- virtual Stencil get_indexed_char_stencil (int k) const;
- virtual Stencil get_ascii_char_stencil (int k) const;
+ virtual Stencil get_indexed_char_stencil (vsize k) const;
+ virtual Stencil get_ascii_char_stencil (vsize k) const;
virtual SCM sub_fonts () const;
virtual SCM font_file_name () const;
DECLARE_SMOBS (Font_metric,);
Midi_track *track_;
Audio_staff *staff_;
- int index_;
+ vsize index_;
Link_array__Audio_item_ *items_;
PQueue<Midi_note_event> stop_note_queue;
Moment last_mom_;
struct Modified_font_metric : public Font_metric
{
public:
- virtual Box text_dimension (std::string) const;
- virtual Stencil text_stencil (std::string) const;
+ Box text_dimension (std::string) const;
+ Stencil text_stencil (std::string) const;
static SCM make_scaled_font_metric (Font_metric *fm, Real magnification);
- virtual int count () const;
- virtual Offset get_indexed_wxwy (int) const;
- virtual Offset attachment_point (std::string) const;
- virtual int name_to_index (std::string) const;
- virtual unsigned index_to_charcode (int) const;
+ vsize count () const;
+ Offset get_indexed_wxwy (vsize) const;
+ Offset attachment_point (std::string) const;
+ vsize name_to_index (std::string) const;
+ vsize index_to_charcode (vsize) const;
Font_metric *original_font () const;
protected:
Real magnification_;
Modified_font_metric (Font_metric *fm, Real magnification);
- virtual SCM sub_fonts () const;
- virtual std::string font_name () const;
- virtual Real design_size () const;
- virtual void derived_mark () const;
- virtual Box get_indexed_char (int) const;
- virtual int index_to_ascii (int) const;
- virtual Box get_ascii_char (int) const;
+ SCM sub_fonts () const;
+ std::string font_name () const;
+ Real design_size () const;
+ void derived_mark () const;
+ Box get_indexed_char (vsize) const;
+ vsize index_to_ascii (vsize) const;
+ Box get_ascii_char (vsize) const;
Box tex_kludge (std::string) const;
};
std::string get_otf_table (std::string tag) const;
static SCM make_otf (std::string);
- virtual std::string font_name () const;
- virtual ~Open_type_font ();
- virtual Offset attachment_point (std::string) const;
- virtual int count () const;
- virtual Box get_indexed_char (int) const;
- virtual int name_to_index (std::string) const;
- //virtual unsigned glyph_name_to_charcode (std::string) const;
- virtual unsigned index_to_charcode (int) const;
- virtual void derived_mark () const;
- virtual SCM sub_fonts () const;
- virtual Real design_size () const;
+ std::string font_name () const;
+ ~Open_type_font ();
+ Offset attachment_point (std::string) const;
+ vsize count () const;
+ Box get_indexed_char (vsize) const;
+ vsize name_to_index (std::string) const;
+ //vsize glyph_name_to_charcode (std::string) const;
+ vsize index_to_charcode (vsize) const;
+ void derived_mark () const;
+ SCM sub_fonts () const;
+ Real design_size () const;
};
std::string get_otf_table (FT_Face face, std::string tag);
class Spanner : public Grob
{
Drul_array<Item *> spanned_drul_;
- int break_index_;
+ vsize break_index_;
DECLARE_CLASSNAME(Spanner);
Link_array__Spanner_ broken_intos_;
- int get_break_index () const;
+ vsize get_break_index () const;
// todo: move to somewhere else.
Real get_broken_left_end_align () const;
Tfm_info info_;
Tfm_header header_;
std::vector<Tex_font_char_metric> char_metrics_;
- std::vector<int> ascii_to_metric_idx_;
+ std::vector<vsize> ascii_to_metric_idx_;
};
#endif /* TFM_READER_HH */
class Tex_font_metric : public Simple_font_metric
{
DECLARE_CLASSNAME(Tex_font_metric);
+
public:
static SCM make_tfm (std::string file_name);
- virtual int count () const;
- virtual Box get_ascii_char (int) const;
- virtual Real design_size () const;
- virtual void derived_mark () const;
- virtual int name_to_index (std::string) const;
- virtual std::string font_name () const;
+ vsize count () const;
+ Box get_ascii_char (vsize) const;
+ Real design_size () const;
+ void derived_mark () const;
+ vsize name_to_index (std::string) const;
+ std::string font_name () const;
Tfm_info const &info () const;
Tfm_info info_;
Tfm_header header_;
std::vector<Tex_font_char_metric> char_metrics_;
- std::vector<int> ascii_to_metric_idx_;
+ std::vector<vsize> ascii_to_metric_idx_;
SCM encoding_table_;
std::string font_name_;
+
private:
- Tex_font_char_metric const *find_ascii (int ascii, bool warn = true) const;
+ Tex_font_char_metric const *find_ascii (vsize ascii, bool warn = true) const;
Tex_font_metric ();
};
}
Box
-Modified_font_metric::get_indexed_char (int i) const
+Modified_font_metric::get_indexed_char (vsize i) const
{
Box b = orig_->get_indexed_char (i);
b.scale (magnification_);
}
Box
-Modified_font_metric::get_ascii_char (int i) const
+Modified_font_metric::get_ascii_char (vsize i) const
{
Box b = orig_->get_ascii_char (i);
b.scale (magnification_);
return b;
}
-int
+vsize
Modified_font_metric::count () const
{
return orig_->count ();
}
Offset
-Modified_font_metric::get_indexed_wxwy (int k) const
+Modified_font_metric::get_indexed_wxwy (vsize k) const
{
Offset o = orig_->get_indexed_wxwy (k);
return o * magnification_;
}
-int
+vsize
Modified_font_metric::name_to_index (std::string s) const
{
return orig_->name_to_index (s);
}
-unsigned
-Modified_font_metric::index_to_charcode (int i) const
+vsize
+Modified_font_metric::index_to_charcode (vsize i) const
{
return orig_->index_to_charcode (i);
}
-int
-Modified_font_metric::index_to_ascii (int k) const
+vsize
+Modified_font_metric::index_to_ascii (vsize k) const
{
return orig_->index_to_ascii (k);
}
}
Box
-Open_type_font::get_indexed_char (int signed_idx) const
+Open_type_font::get_indexed_char (vsize signed_idx) const
{
if (SCM_HASHTABLE_P (lily_index_to_bbox_table_))
{
- SCM box = scm_hashq_ref (lily_index_to_bbox_table_, scm_from_int (signed_idx), SCM_BOOL_F);
+ SCM box = scm_hashq_ref (lily_index_to_bbox_table_,
+ scm_from_unsigned (signed_idx), SCM_BOOL_F);
Box *box_ptr = Box::unsmob (box);
if (box_ptr)
return *box_ptr;
if (SCM_HASHTABLE_P (lily_character_table_))
{
- const int len = 256;
+ const vsize len = 256;
char name[len];
- int code = FT_Get_Glyph_Name (face_, signed_idx, name, len);
+ vsize code = FT_Get_Glyph_Name (face_, signed_idx, name, len);
if (code)
warning (_f ("FT_Get_Glyph_Name() returned error: %d", code));
b.scale (point_constant);
scm_hashq_set_x (lily_index_to_bbox_table_,
- scm_from_int (signed_idx),
+ scm_from_unsigned (signed_idx),
b.smobbed_copy ());
return b;
}
return b;
}
-int
+vsize
Open_type_font::name_to_index (std::string nm) const
{
char *nm_str = (char *) nm.c_str ();
- if (int idx = FT_Get_Name_Index (face_, nm_str))
+ if (vsize idx = FT_Get_Name_Index (face_, nm_str))
return idx;
- return -1;
+ return VPOS;
}
-unsigned
-Open_type_font::index_to_charcode (int i) const
+vsize
+Open_type_font::index_to_charcode (vsize i) const
{
return ((Open_type_font *) this)->index_to_charcode_map_[i];
}
-int
+vsize
Open_type_font::count () const
{
return ((Open_type_font *) this)->index_to_charcode_map_.size ();
which will trip errors more
quickly. --hwn.
*/
- scm_from_int (1));
+ scm_from_unsigned (1));
return scm_to_double (entry) * Real (point_constant);
}
for (int i = 0; i < face_->num_glyphs; i++)
{
- const int len = 256;
+ const vsize len = 256;
char name[len];
- int code = FT_Get_Glyph_Name (face_, i, name, len);
+ vsize code = FT_Get_Glyph_Name (face_, i, name, len);
if (code)
warning (_f ("FT_Get_Glyph_Name() returned error: %d", code));
class Rest_collision_engraver : public Engraver
{
Item *rest_collision_;
- int rest_count_;
+ vsize rest_count_;
Link_array__Grob_ note_columns_;
protected:
DECLARE_ACKNOWLEDGER (note_column);
Real by = 0.0;
if (Spanner *mother = dynamic_cast<Spanner *> (state.slur_->original ()))
{
- int k = broken_spanner_index (state.slur_);
+ vsize k = broken_spanner_index (state.slur_);
int j = k + hdir;
if (j < 0 || j >= mother->broken_intos_.size ())
return by;
if (Spanner *mother = dynamic_cast<Spanner *> (slur_->original ()))
{
- int k = broken_spanner_index (slur_);
+ vsize k = broken_spanner_index (slur_);
int j = k + 1;
if (j < 0 || j >= mother->broken_intos_.size ())
return;
}
}
vector_sort (broken_intos_, Spanner::compare);
- for (vsize i = broken_intos_.size ();i--;)
+ for (vsize i = broken_intos_.size (); i--;)
broken_intos_[i]->break_index_ = i;
}
-int
+vsize
Spanner::get_break_index () const
{
return break_index_;
#include "system-start-delimiter.hh"
-
-#include "spanner.hh"
+#include "all-font-metrics.hh"
#include "axis-group-interface.hh"
-#include "output-def.hh"
#include "font-interface.hh"
-#include "all-font-metrics.hh"
-#include "staff-symbol-referencer.hh"
-#include "lookup.hh"
#include "item.hh"
#include "line-interface.hh"
-
+#include "lookup.hh"
+#include "output-def.hh"
#include "pointer-group-interface.hh"
+#include "spanner.hh"
+#include "staff-symbol-referencer.hh"
Stencil
System_start_delimiter::staff_bracket (Grob *me, Real height)
SCM alist = scm_list_n (fam, SCM_UNDEFINED);
fm = select_font (me->layout (), scm_list_n (alist, SCM_UNDEFINED));
- int lo = 0;
- int hi = max (fm->count () - 1, 2);
+ int
+ lo = 0;
+ int hi = max ((int) fm->count () - 1, 2);
/* do a binary search for each Y, not very efficient, but passable? */
Box b;
if (!tabstring_event && j < tabstring_events_.size ())
{
tabstring_event = tabstring_events_[j];
- if (j +1 < tabstring_events_.size ())
+ if (j + 1 < tabstring_events_.size ())
j++;
}
: input_ (name)
{
- for (int i = 0; i < TFM_SIZE; i++)
- ascii_to_metric_idx_.push_back (-1);
+ for (vsize i = 0; i < TFM_SIZE; i++)
+ ascii_to_metric_idx_.push_back (VPOS);
read_header ();
read_params ();
}
Tex_font_char_metric const *
-Tex_font_metric::find_ascii (int ascii, bool warn) const
+Tex_font_metric::find_ascii (vsize ascii, bool warn) const
{
- if (ascii >= 0 && ascii < ascii_to_metric_idx_.size ()
- && ascii_to_metric_idx_[ascii] >= 0)
+ if (ascii != VPOS && ascii < ascii_to_metric_idx_.size ()
+ && ascii_to_metric_idx_[ascii] != VPOS)
return &char_metrics_[ascii_to_metric_idx_ [ascii]];
else if (warn)
warning (_f ("can't find ascii character: %d", ascii));
}
/* UGH: glyphs need not be consecutive in TFM. */
-int
+vsize
Tex_font_metric::count () const
{
for (vsize i = ascii_to_metric_idx_.size (); i--;)
- if (ascii_to_metric_idx_[i] != -1)
+ if (ascii_to_metric_idx_[i] != VPOS)
return i + 1;
return 0;
}
Box
-Tex_font_metric::get_ascii_char (int a) const
+Tex_font_metric::get_ascii_char (vsize a) const
{
Box b = find_ascii (a)->dimensions ();
return b;
return font_name_;
}
-int
+vsize
Tex_font_metric::name_to_index (std::string) const
{
assert (false);
Spanner *orig_spanner = dynamic_cast<Spanner*> (me->original ());
- vsize neighbor_idx = me->get_break_index () - break_dir;
+ int neighbor_idx = me->get_break_index () - break_dir;
if (break_dir
&& d == RIGHT
&& neighbor_idx < orig_spanner->broken_intos_.size ())
Tuplet_bracket::get_bounds (Grob *me, Grob **left, Grob **right)
{
extract_grob_set (me, "note-columns", columns);
- vsize l = 0;
+ int l = 0;
while (l < columns.size () && Note_column::has_rests (columns[l]))
l++;
- int r = columns.size ()- 1;
+ int r = columns.size () - 1;
while (r >= l && Note_column::has_rests (columns[r]))
r--;
STRIP=strip --strip-debug
DO_STRIP=true
-LOOP=$(foreach i, $(SUBDIRS), $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C $(i) $@ &&) true
+LOOP=+$(foreach i, $(SUBDIRS), $(MAKE) PACKAGE=$(PACKAGE) package=$(package) -C $(i) $@ &&) true
ETAGS_FLAGS =
CTAGS_FLAGS =