The documentation says
/*******************************************
 * Returns s[] sans trailing delimiter[], if any.
 * If delimiter[] is null, removes trailing CR, LF, or CRLF, if any.
 */

To adhere to the documentation, chomp must be changed from:

C[] chomp(C, C1)(C[] s, in C1[] delimiter)
{
    if (endsWith(s, delimiter))
    {
        return s[0 .. $ - delimiter.length];
    }
    return s;
}

to:

C[] chomp(C, C1)(C[] s, in C1[] delimiter)
{
    if (delimiter == null)
      return chomp(s);
    else if (endsWith(s, delimiter))
      return s[0 .. $ - delimiter.length];
    else
      return s;
}


Reply via email to