Line_of_cols line = all.slice (breaks[start_idx], breaks[break_idx]+1);
- line[0] = dynamic_cast<Paper_column*>(line[0]->find_prebroken_piece (RIGHT));
- line.top () = dynamic_cast<Paper_column*>(line.top ()->find_prebroken_piece (LEFT));
+ line[0] = dynamic_cast<Paper_column*>(line[0]->find_broken_piece (RIGHT));
+ line.top () = dynamic_cast<Paper_column*>(line.top ()->find_broken_piece (LEFT));
if (!feasible (line))
break;
pscore_l_->paper_l_->line_dimensions_int (optimal_paths[start_idx].line_i_));
spacer_p_list.append (new Killing_cons<Line_spacer> (approx.spacer_l_,0));
- ( (Break_algorithm*)this)->approx_stats_.add (approx.cols_);
approx.approximate_solve_line ();
if (approx.energy_f_ > energy_bound_f_)
{
continue;
}
-
// this is a likely candidate. Store it.
candidate_lines.push (approx);
if (!candidate_lines[j].satisfies_constraints_b_)
{
candidate_lines[j].solve_line ();
- ( (Break_algorithm*)this)->exact_stats_.add (candidate_lines[j].cols_);
}
Real this_energy
}
if (break_idx % HAPPY_DOTS_I)
- *mlog << "[" << break_idx << "]" << flush;
+ *mlog << "[" << break_idx << "]";
+
+ *mlog << endl;
Array<int> final_breaks;
String s = global_path.find (fn);
if (s == "")
{
- String e = _f ("can't find file: `%s\'", fn);
+ String e = _f ("Can't find file: `%s'", fn);
e += " ";
- e += _f ("(load path: `%s\')", global_path.str ());
+ e += _f ("(load path: `%s')", global_path.str ());
error (e);
}
else
Simple_file_storage f(s);
ly_ch_C_eval_scm ((char *) f.ch_C());
- *mlog << ']' << flush;
+ *mlog << "]" << flush;
}
String s = global_path.find (fn);
if (s == "")
{
- String e = _f ("can't find file: `%s\'", fn);
+ String e = _f ("Can't find file: `%s'", fn);
e += " ";
- e += _f ("(load path: `%s\')", global_path.str ());
+ e += _f ("(load path: `%s')", global_path.str ());
error (e);
}
else
format = ''
run_lilypond = 1
+use_hash = 1
no_match = 'a\ba'
# format specific strings, ie. regex-es for input, and % strings for output
opts.append ('twocolumn')
elif g == 'onecolumn':
try:
- current_opts.remove ('twocolumn')
+ opts.remove ('twocolumn')
except IndexError:
pass
elif g == 'chapter':
for the main file). The .ly is written, and scheduled in
TODO.
- Return: a chunk (TYPE_STR, MAIN_STR, OPTIONS, TODO)
+ Return: a chunk (TYPE_STR, MAIN_STR, OPTIONS, TODO, BASE)
TODO has format [basename, extension, extension, ... ]
newbody = output_verbatim (body)
file_body = compose_full_body (body, opts)
- updated = update_file (file_body, base + '.ly')
- todo = [base] # UGH.
+ basename = base
+ if __main__.use_hash:
+ basename = `abs(hash (file_body))`
+ updated = update_file (file_body, basename + '.ly')
+ todo = [basename] # UGH.
- if not os.path.isfile (base + '.tex') or updated:
+ if not os.path.isfile (basename + '.tex') or updated:
todo.append ('tex')
updated = 1
opts.append ('eps')
if 'eps' in opts and ('tex' in todo or
- not os.path.isfile (base + '.eps')):
+ not os.path.isfile (basename + '.eps')):
todo.append ('eps')
if 'png' in opts and ('eps' in todo or
- not os.path.isfile (base + '.png')):
+ not os.path.isfile (basename + '.png')):
todo.append ('png')
if format == 'latex':
if 'eps' in opts :
- newbody = newbody + get_output ('output-eps') % (base, base)
+ newbody = newbody + get_output ('output-eps') % (basename, basename)
else:
- newbody = newbody + get_output ('output-tex') % base
+ newbody = newbody + get_output ('output-tex') % basename
elif format == 'texi':
- newbody = newbody + get_output ('output-all') % (base, base)
+ newbody = newbody + get_output ('output-all') % (basename, basename)
+ return ('mudela', newbody, opts, todo, base)
-
- return ('mudela', newbody, opts, todo)
def find_eps_dims (match):
"Fill in dimensions of EPS files."
eps = []
tex = []
png = []
+ hash_dict = {}
for c in chunks:
if c[0] <> 'mudela':
elif e == 'png':
png.append (base)
+ if __main__.use_hash:
+ hash_dict[c[4]] = c[3][0]
+
if tex:
lilyopts = map (lambda x: '-I ' + x, include_path)
lilyopts = string.join (lilyopts, ' ' )
cmd = cmd % (g + '.eps', g + '.png')
system (cmd)
+ if __main__.use_hash:
+ name = ''
+ last_name = ''
+ f = 0
+ ks = hash_dict.keys ()
+ ks.sort ()
+ for i in ks:
+ name = re.sub ("(.*)-[0-9]+\.[0-9]+\.[0-9]+", "\\1", i)
+ name = name + '.mix'
+ if name != last_name:
+ if last_name:
+ f.close ()
+ f = open (name, 'w')
+ last_name = name
+ f.write ("%s:%s\n" % (i, hash_dict[i]))
+
def update_file (body, name):
same = 0