]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/pdf-scheme.cc
Run grand replace for 2015.
[lilypond.git] / lily / pdf-scheme.cc
index 13e8389ecec7b42a1831c4001090b25ff54e9474..da2ce2cef3c74b8346ef707eda37d1006111e3c1 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2011 Reinhold Kainhofer <reinhold@kainhofer.com>
+  Copyright (C) 2011--2015 Reinhold Kainhofer <reinhold@kainhofer.com>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -36,10 +36,25 @@ LY_DEFINE (ly_encode_string_for_pdf, "ly:encode-string-for-pdf",
   char const *charset = "UTF-8"; // Input is ALWAYS UTF-8!
   gsize bytes_written = 0;
 
+#if 0
+
   /* First, try to convert to ISO-8859-1 (no encodings required). This will
    * fail, if the string contains accented characters, so we do not check
    * for errors. */
   g = g_convert (p, -1, "ISO-8859-1", charset, 0, &bytes_written, 0);
+
+#else
+
+  /* In contrast to the above comment, we do _not_ try full ISO-8859-1
+   * since a number of Ghostscript versions fail to properly convert
+   * this into PDF.  UTF-16BE, in contrast, works better with recent
+   * versions of Ghostscript.
+   */
+
+  g = g_convert (p, -1, "ASCII", charset, 0, &bytes_written, 0);
+
+#endif
+
   /* If that fails, we have to resolve to full UTF-16BE */
   if (!g)
     {
@@ -58,7 +73,7 @@ LY_DEFINE (ly_encode_string_for_pdf, "ly:encode-string-for-pdf",
        * though), we have to prepend it manually. */
       if (g_without_BOM) // conversion to UTF-16be might have failed (shouldn't!)
         {
-          g = (char*)malloc ( sizeof(char) * (bytes_written + 3));
+          g = (char *)malloc ( sizeof (char) * (bytes_written + 3));
           char const *BOM = "\xFE\xFF";
           strcpy (g, BOM);
           memcpy (&g[2], g_without_BOM, bytes_written + 1); // Copy string + \0