lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

And another dark corner...


From: David Kastrup
Subject: And another dark corner...
Date: Sun, 01 Jan 2012 16:02:49 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux)

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]