lexer.ll: lyric_fudge (string s) { char *chars = string_copy (s);
for (char *p = chars; *p ; p++) { if (*p == '_' && (p == chars || *(p-1) != '\\')) *p = ' '; } s = string (chars); delete[] chars; ssize i = 0; if ((i = s.find ("\\,")) != NPOS) // change "\," to TeX's "\c " { * (((char*)s.c_str ()) + i + 1) = 'c'; s = s.substr (0, i + 2) + " " + s.substr (i - 2); } return s; } WTF? `change "\," to TeX's "\c "': can it get more ridiculous than that? Actually yes: { c } \addlyrics { a\,ch } lilypond /tmp/aga.ly GNU LilyPond 2.15.22 Processing `/tmp/aga.ly' Parsing...terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr Compilation aborted at Sun Jan 1 15:52:36 We not only have dead code trying to placate the non-existing TeX backend, but that code actually does not even work after getting an "update" in 2006. And who knows whether it worked before that. -- David Kastrup _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel