All_font_metrics::find_otf (string name)
{
SCM sname = ly_symbol2scm (name.c_str ());
- SCM name_string = scm_makfrom0str (name.c_str ());
+ SCM name_string = ly_string2scm (name);
SCM val;
if (!otf_dict_->try_retrieve (sname, &val))
{
// debug quanting
me->set_property ("quant-score",
- scm_makfrom0str (qscores[best_idx].score_card_.c_str ()));
+ ly_string2scm (qscores[best_idx].score_card_));
}
#endif
str += "_change";
}
- return scm_makfrom0str (str.c_str ());
+ return ly_string2scm (str);
}
s->suicide ();
Context *tr = unsmob_context (context);
SCM_ASSERT_TYPE (tr, context, SCM_ARG1, __FUNCTION__, "Context");
- return scm_makfrom0str (tr->id_string ().c_str ());
+ return ly_string2scm (tr->id_string ());
}
LY_DEFINE (ly_context_name, "ly:context-name",
send_stream_event (this, "CreateContext", 0,
ly_symbol2scm ("ops"), ops,
ly_symbol2scm ("type"), cdef->get_context_name (),
- ly_symbol2scm ("id"), scm_makfrom0str (id.c_str ()));
+ ly_symbol2scm ("id"), ly_string2scm (id));
event_source_->
remove_listener (GET_LISTENER (acknowledge_infant),
ly_symbol2scm ("AnnounceNewContext"));
Duration *r = (Duration *) SCM_CELL_WORD_1 (s);
scm_puts ("#<Duration ", port);
- scm_display (scm_makfrom0str (r->to_string ().c_str ()), port);
+ scm_display (ly_string2scm (r->to_string ()), port);
scm_puts (" >", port);
return 1;
if (scm_is_string (s) || scm_is_pair (s))
{
cresc_->set_property ("edge-text",
- scm_cons (s, scm_makfrom0str ("")));
+ scm_cons (s, scm_from_locale_string ("")));
context ()->set_property ((start_type + "Text").c_str (),
SCM_EOL);
}
s = get_property ("instrumentName");
if (!scm_is_string (s))
- s = scm_makfrom0str ("piano");
+ s = scm_from_locale_string ("piano");
SCM eq = get_property ("instrumentEqualizer");
if (ly_is_procedure (eq))
char s[2] = "a";
s[0] = (pit->get_notename () + 2) % 7 + 'a';
s[0] = toupper (s[0]);
- charstr = scm_makfrom0str (s);
+ charstr = scm_from_locale_string (s);
}
SCM letter
#ifndef NDEBUG
if (ly_is_procedure (creation_callback))
scm_apply_0 (creation_callback,
- scm_list_n (grob->self_scm (), scm_makfrom0str (file),
- scm_from_int (line), scm_makfrom0str (fun), SCM_UNDEFINED));
+ scm_list_n (grob->self_scm (), scm_from_locale_string (file),
+ scm_from_int (line), scm_from_locale_string (fun), SCM_UNDEFINED));
#endif
return grob;
Font_metric *fm = unsmob_metrics (font);
SCM_ASSERT_TYPE (fm, font, SCM_ARG1, __FUNCTION__, "font-metric");
- return scm_makfrom0str (fm->font_name ().c_str ());
+ return ly_string2scm (fm->font_name ());
}
LY_DEFINE (ly_font_magnification, "ly:font-magnification", 1, 0, 0,
{
expr = scm_list_3 (ly_symbol2scm ("named-glyph"),
self_scm (),
- scm_makfrom0str (s.c_str ()));
+ ly_string2scm (s));
b = get_indexed_char (idx);
}
+ "\n" + doc;
scm_set_procedure_property_x (func, ly_symbol2scm ("documentation"),
- scm_makfrom0str (s.c_str ()));
- SCM entry = scm_cons (scm_makfrom0str (varlist), scm_makfrom0str (doc));
+ ly_string2scm (s));
+ SCM entry = scm_cons (scm_from_locale_string (varlist), scm_from_locale_string (doc));
scm_hashq_set_x (doc_hash_table, ly_symbol2scm (fname), entry);
}
lispy_name += suffix;
SCM s = ly_symbol2scm (lispy_name.c_str ());
- SCM d = scm_makfrom0str (descr);
+ SCM d = scm_from_locale_string (descr);
SCM l = parse_symbol_list (vars);
ly_add_interface (s, d, l);
if (ly_is_procedure (modification_callback))
scm_apply_0 (modification_callback,
scm_list_n (self_scm (),
- scm_makfrom0str (file),
+ scm_from_locale_string (file),
scm_from_int (line),
- scm_makfrom0str (fun),
+ scm_from_locale_string (fun),
sym, v, SCM_UNDEFINED));
#endif
progress_indication ("]\n");
}
- scm_primitive_load_path (scm_makfrom0str ("lily.scm"));
+ scm_primitive_load_path (scm_from_locale_string ("lily.scm"));
}
SCM global_lily_module;
string gulp_file_to_string (string fn, bool must_exist, int size);
+SCM ly_string2scm (string const &s);
string ly_scm2string (SCM s);
string ly_symbol2string (SCM);
Rational ly_scm2rational (SCM);
/*
- relocate.hh -- declare
+ relocate.hh -- declare relocation functions
source file of the GNU LilyPond music typesetter
int ch = 0;
int col = 0;
ip->get_counts (&l, &ch, &col);
- return scm_list_4 (scm_makfrom0str (ip->file_string ().c_str ()),
+ return scm_list_4 (ly_string2scm (ip->file_string ()),
scm_from_int (l),
scm_from_int (ch),
scm_from_int (col));
{
Input *ip = unsmob_input (sip);
SCM_ASSERT_TYPE (ip, sip, SCM_ARG1, __FUNCTION__, "input location");
- return scm_list_5 (scm_makfrom0str (ip->file_string ().c_str ()),
+ return scm_list_5 (ly_string2scm (ip->file_string ()),
scm_from_int (ip->line_number ()),
scm_from_int (ip->column_number ()),
scm_from_int (ip->end_line_number ()),
progress_indication ("\n");
scm_module_define (scm_car (scopes_),
ly_symbol2scm ("input-file-name"),
- scm_makfrom0str (s.c_str ()));
+ ly_string2scm (s));
}
}
<chords,notes,figures>{RESTNAME} {
char const *s = YYText ();
- yylval.scm = scm_makfrom0str (s);
+ yylval.scm = scm_from_locale_string (s);
return RESTNAME;
}
<chords,notes,figures>R {
/* yylval is union. Must remember STRING before setting SCM*/
string *sp = yylval.string;
- yylval.scm = scm_makfrom0str (sp->c_str ());
+ yylval.scm = ly_string2scm (*sp);
delete sp;
return is_lyric_state () ? LYRICS_STRING : STRING;
}
if (c == '{' || c == '}') // brace open is for not confusing dumb tools.
here_input ().warning (
_ ("Brace found at end of lyric. Did you forget a space?"));
- yylval.scm = scm_makfrom0str (s.c_str ());
+ yylval.scm = ly_string2scm (s);
return LYRICS_STRING;
if (c == '{' || c == '}')
here_input ().warning (
_ ("Brace found at end of markup. Did you forget a space?"));
- yylval.scm = scm_makfrom0str (s.c_str ());
+ yylval.scm = ly_string2scm (s);
return STRING;
string msg (_f ("unknown escaped string: `\\%s'", str));
LexerError (msg.c_str ());
- yylval.scm = scm_makfrom0str (str.c_str ());
+ yylval.scm = ly_string2scm (str);
return STRING;
}
}
}
- yylval.scm = scm_makfrom0str (str.c_str ());
+ yylval.scm = ly_string2scm (str);
return STRING;
}
lookup_markup_command (string s)
{
SCM proc = ly_lily_module_constant ("lookup-markup-command");
- return scm_call_1 (proc, scm_makfrom0str (s.c_str ()));
+ return scm_call_1 (proc, ly_string2scm (s));
}
/* Shut up lexer warnings. */
}
SCM
-ly_string2scm (string str)
+ly_string2scm (string const &str)
{
return scm_from_locale_stringn (str.c_str(),
str.length ());
SCM *tail = &l;
for (vsize i = 0; i < keytable_->table_.size (); i++)
{
- *tail = scm_acons (scm_makfrom0str (keytable_->table_[i].name_),
+ *tail = scm_acons (scm_from_locale_string (keytable_->table_[i].name_),
scm_from_int (keytable_->table_[i].tokcode_),
SCM_EOL);
scm_module_define (scm_car (scopes_),
ly_symbol2scm ("input-file-name"),
- scm_makfrom0str (main_input_name_.c_str ()));
+ ly_string2scm (main_input_name_));
}
void
if (error)
/* TODO: pass renamed input file too. */
scm_throw (ly_symbol2scm ("ly-file-failed"),
- scm_list_1 (scm_makfrom0str (file_name.c_str ())));
+ scm_list_1 (ly_string2scm (file_name)));
return SCM_UNSPECIFIED;
}
Lily_parser *p = unsmob_lily_parser (parser);
SCM_ASSERT_TYPE (p, parser, SCM_ARG1, __FUNCTION__, "Lilypond parser");
- return scm_makfrom0str (p->output_basename_.c_str ());
+ return ly_string2scm (p->output_basename_);
}
LY_DEFINE (ly_parser_error, "ly:parser-error",
File_name f (name);
string s = global_path.find (f.base_ + ".twy");
s = gulp_file_to_string (s, false, -1);
- scm_eval_string (scm_makfrom0str (s.c_str ()));
+ scm_eval_string (ly_string2scm (s));
/* Read .ly IN_FILE, lex, parse, write \score blocks from IN_FILE to
OUT_FILE (unless IN_FILE redefines output file name). */
{
return scm_list_4 (context_ ? context_->self_scm () : SCM_BOOL_F,
creation_moment_.smobbed_copy (),
- scm_makfrom0str (grob_name_.c_str ()),
+ ly_string2scm (grob_name_),
scm_from_int (disambiguation_count_));
}
{
return scm_list_5 (parent_context_ ? parent_context_->self_scm () : SCM_BOOL_F,
start_moment_.smobbed_copy (),
- scm_makfrom0str (context_name_.c_str ()),
- scm_makfrom0str (id_.c_str ()),
+ ly_string2scm (context_name_),
+ ly_string2scm (id_),
scm_from_int (disambiguation_count_));
}
Lilypond_general_key::as_scheme () const
{
return scm_list_3 (parent_ ? parent_->self_scm () : SCM_BOOL_F,
- scm_makfrom0str (name_.c_str ()),
+ ly_string2scm (name_),
scm_from_int (disambiguation_count_));
}
Stencil
Lookup::blank (Box b)
{
- return Stencil (b, scm_makfrom0str (""));
+ return Stencil (b, scm_from_locale_string (""));
}
Stencil
{
SCM text = event_->get_property ("text");
- if (ly_is_equal (text, scm_makfrom0str (" ")))
+ if (ly_is_equal (text, scm_from_locale_string (" ")))
{
if (last_text_)
last_text_->set_property ("self-alignment-X", scm_from_int (LEFT));
SCM *tail = &files;
while (char const *arg = option_parser->get_next_arg ())
{
- *tail = scm_cons (scm_makfrom0str (arg), SCM_EOL);
+ *tail = scm_cons (scm_from_locale_string (arg), SCM_EOL);
tail = SCM_CDRLOC (*tail);
}
Box
Modified_font_metric::text_dimension (string text) const
{
- SCM stext = scm_makfrom0str (text.c_str ());
+ SCM stext = ly_string2scm (text);
Box b;
if (output_backend_global == "tex")
if (s.length ())
{
Item *t = make_item ("NoteName", events_[0]->self_scm ());
- t->set_property ("text", scm_makfrom0str (s.c_str ()));
+ t->set_property ("text", ly_string2scm (s));
texts_.push_back (t);
}
}
if (code)
warning (_f ("FT_Get_Glyph_Name() returned error: %u", unsigned (code)));
- *tail = scm_cons (scm_makfrom0str (name), SCM_EOL);
+ *tail = scm_cons (scm_from_locale_string (name), SCM_EOL);
tail = SCM_CDRLOC (*tail);
}
Pango_font::register_font_file (string filename, string ps_name)
{
scm_hash_set_x (physical_font_tab_,
- scm_makfrom0str (ps_name.c_str ()),
- scm_makfrom0str (filename.c_str ()));
+ ly_string2scm (ps_name),
+ ly_string2scm (filename));
}
void
char_id = scm_from_uint32 (pg);
}
else
- char_id = scm_makfrom0str (glyph_name);
+ char_id = scm_from_locale_string (glyph_name);
*tail = scm_cons (scm_list_4 (scm_from_double (ggeo.width * scale_),
scm_from_double (ggeo.x_offset * scale_),
pango_fc_font_unlock_face (fcfont);
SCM expr = scm_list_5 (ly_symbol2scm ("glyph-string"),
- scm_makfrom0str (ps_name.c_str ()),
+ ly_string2scm (ps_name),
scm_from_double (size),
scm_from_bool (cid_keyed),
ly_quote_scm (glyph_exprs));
*/
SCM exp
= scm_list_3 (ly_symbol2scm ("utf-8-string"),
- scm_makfrom0str (description_string ().c_str ()),
- scm_makfrom0str (str.c_str ()));
+ ly_string2scm (description_string ()),
+ ly_string2scm (str));
Box b (Interval (0, 0), Interval (0, 0));
b.unite (dest.extent_box ());
PangoFontDescription *pfd = properties_to_pango_description (chain, scm_to_double (size));
char *str = pango_font_description_to_string (pfd);
- SCM scm_str = scm_makfrom0str (str);
+ SCM scm_str = scm_from_locale_string (str);
g_free (str);
pango_font_description_free (pfd);
return scm_str;
* layout->get_dimension (ly_symbol2scm ("text-font-size")));
char *str = pango_font_description_to_string (pfd);
- SCM scm_str = scm_makfrom0str (str);
+ SCM scm_str = scm_from_locale_string (str);
g_free (str);
return find_pango_font (layout, scm_str, 1.0);
SCM scm_mol = Text_interface::interpret_markup (me->layout ()->self_scm (),
properties,
- scm_makfrom0str (r.c_str ()));
+ ly_string2scm (r));
SCM when_mol = Text_interface::interpret_markup (me->layout ()->self_scm (),
properties,
- scm_makfrom0str (when.c_str ()));
+ ly_string2scm (when));
Stencil t = *unsmob_stencil (scm_mol);
t.add_at_edge (Y_AXIS, DOWN, *unsmob_stencil (when_mol), 0.1, 0.1);
t.align_to (X_AXIS, CENTER);
script_abbreviation:
'^' {
- $$ = scm_makfrom0str ("Hat");
+ $$ = scm_from_locale_string ("Hat");
}
| '+' {
- $$ = scm_makfrom0str ("Plus");
+ $$ = scm_from_locale_string ("Plus");
}
| '-' {
- $$ = scm_makfrom0str ("Dash");
+ $$ = scm_from_locale_string ("Dash");
}
| '|' {
- $$ = scm_makfrom0str ("Bar");
+ $$ = scm_from_locale_string ("Bar");
}
| ANGLE_CLOSE {
- $$ = scm_makfrom0str ("Larger");
+ $$ = scm_from_locale_string ("Larger");
}
| '.' {
- $$ = scm_makfrom0str ("Dot");
+ $$ = scm_from_locale_string ("Dot");
}
| '_' {
- $$ = scm_makfrom0str ("Underscore");
+ $$ = scm_from_locale_string ("Underscore");
}
;
SCM
get_next_unique_context_id ()
{
- return scm_makfrom0str ("$uniqueContextId");
+ return scm_from_locale_string ("$uniqueContextId");
}
static int new_context_count;
char s[128];
snprintf (s, sizeof (s)-1, "uniqueContext%d", new_context_count++);
- return scm_makfrom0str (s);
+ return scm_from_locale_string (s);
}
vector<char> pfb_string = gulp_file (file_name, 0);
char *pfa = pfb2pfa ((Byte *) &pfb_string[0], pfb_string.size ());
- SCM pfa_scm = scm_makfrom0str (pfa);
+ SCM pfa_scm = scm_from_locale_string (pfa);
free (pfa);
if (be_verbose_global)
{
Pitch *r = (Pitch *) SCM_CELL_WORD_1 (s);
scm_puts ("#<Pitch ", port);
- scm_display (scm_makfrom0str (r->to_string ().c_str ()), port);
+ scm_display (ly_string2scm (r->to_string ()), port);
scm_puts (" >", port);
return 1;
}
if (!scm_is_string (wb) || ly_is_equal (db, wb))
{
if (s != "" || (volta_found && !scm_is_string (wb)))
- context ()->set_property ("whichBar", scm_makfrom0str (s.c_str ()));
+ context ()->set_property ("whichBar", ly_string2scm (s));
}
}
}
slur_->set_property ("quant-score",
- scm_makfrom0str (total.c_str ()));
+ ly_string2scm (total));
}
#endif
void
Source_file::init_port ()
{
- SCM str = scm_makfrom0str (c_str ());
+ SCM str = scm_from_locale_string (c_str ());
str_port_ = scm_mkstrport (SCM_INUM0, str, SCM_OPN | SCM_RDNG, __FUNCTION__);
- scm_set_port_filename_x (str_port_, scm_makfrom0str (name_.c_str ()));
+ scm_set_port_filename_x (str_port_, ly_string2scm (name_));
}
else if (type == ":|:")
type = ".|.";
- return scm_makfrom0str (type.c_str ());
+ return ly_string2scm (type);
}
Interval
if (text_dimension_hash_tab)
{
scm_hash_ref (text_dimension_hash_tab,
- scm_makfrom0str (key_str.c_str ()),
+ ly_string2scm (key_str),
SCM_BOOL_F);
}
if (scm_is_pair (val))
card += to_string ("TOTAL=%.2f", base.score ());
ties[i]->set_property ("quant-score",
- scm_makfrom0str (card.c_str ()));
+ ly_string2scm (card));
}
#endif
chain);
SCM sn = Text_interface::interpret_markup (me->layout ()->self_scm (), chain,
- scm_makfrom0str (to_string (num).c_str ()));
+ ly_string2scm (to_string (num)));
SCM sd = Text_interface::interpret_markup (me->layout ()->self_scm (), chain,
- scm_makfrom0str (to_string (den).c_str ()));
+ ly_string2scm (to_string (den)));
Stencil n = *unsmob_stencil (sn);
Stencil d = *unsmob_stencil (sd);
parse_symbol_list (grobs), static_properties);
static_properties = scm_acons (ly_symbol2scm ("description"),
- scm_makfrom0str (desc), static_properties);
+ scm_from_locale_string (desc), static_properties);
SCM list = SCM_EOL;
for (; listener_list; listener_list = listener_list->next_)
FT_Face face = open_ft_face (file_name);
char const *ps_name_str0 = FT_Get_Postscript_Name (face);
- SCM ps_name = scm_makfrom0str (ps_name_str0 ? ps_name_str0 : "");
+ SCM ps_name = scm_from_locale_string (ps_name_str0 ? ps_name_str0 : "");
FT_Done_Face (face);
if (prev_primitive)
prev_primitive->set_property ("glyph-name",
- scm_makfrom0str (prev_glyph_name.c_str ()));
+ ly_string2scm (prev_glyph_name));
/*
* In the backend, flexa shapes and joins need to know about line
}
prev_primitive->set_property ("glyph-name",
- scm_makfrom0str (prev_glyph_name.c_str ()));
+ ly_string2scm (prev_glyph_name));
align_heads (primitives, flexa_width, thickness);
{
string id = i.context ()->id_string ();
- scm_hash_set_x (id_to_group_hashtab_, scm_makfrom0str (id.c_str ()),
+ scm_hash_set_x (id_to_group_hashtab_, ly_string2scm (id),
i.grob ()->self_scm ());
SCM before_id = i.context ()->get_property ("alignAboveContext");
if (done_count_ <= alt_count_)
add_repeat_command (scm_list_n (ly_symbol2scm ("volta"),
- scm_makfrom0str (repstr.c_str ()), SCM_UNDEFINED));
+ ly_string2scm (repstr), SCM_UNDEFINED));
}
else
add_repeat_command (ly_symbol2scm ("end-repeat"));