]> www.fi.muni.cz Git - evince.git/blobdiff - backend/dvi/mdvi-lib/vf.c
[l10n] Updated German doc translation
[evince.git] / backend / dvi / mdvi-lib / vf.c
index e1397fd587c0eae3e728979ebb612f2c82453b9f..a5ae3bbe721a162c7f486eddca85c08fccac2893 100644 (file)
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
+#include <config.h>
 #include <string.h>
 
 #include "mdvi.h"
@@ -78,8 +79,8 @@ static int vf_load_font(DviParams *params, DviFont *font)
        fseek(p, (long)mlen, SEEK_CUR);
        checksum = fuget4(p);
        if(checksum && font->checksum && checksum != font->checksum) {
-               warning(_("%s: Checksum mismatch (expected %u, got %u)\n"),
-                       font->fontname, font->checksum, checksum);
+               mdvi_warning(_("%s: Checksum mismatch (expected %u, got %u)\n"),
+                            font->fontname, font->checksum, checksum);
        } else if(!font->checksum)
                font->checksum = checksum;
        font->design = fuget4(p);
@@ -126,8 +127,8 @@ static int vf_load_font(DviParams *params, DviFont *font)
                /* get the font */
                ref = font_reference(params, id, name, checksum, hdpi, vdpi, scale);
                if(ref == NULL) {
-                       error(_("(vf) %s: could not load font `%s'\n"), 
-                               font->fontname, name);
+                       mdvi_error(_("(vf) %s: could not load font `%s'\n"), 
+                                  font->fontname, name);
                        goto error;
                }
                mdvi_free(name);
@@ -164,6 +165,12 @@ static int vf_load_font(DviParams *params, DviFont *font)
                        cc = fuget1(p);
                        tfm = fuget3(p);
                }
+               if (cc < 0 || cc > 65536) {
+                       /* TeX engines do not support char codes bigger than 65535 */
+                       mdvi_error(_("(vf) %s: unexpected character %d\n"),
+                                  font->fontname, cc);
+                       goto error;
+               }
                if(loc < 0 || cc < loc)
                        loc = cc;
                if(hic < 0 || cc > hic)
@@ -176,8 +183,8 @@ static int vf_load_font(DviParams *params, DviFont *font)
                        nchars = cc + 16;
                }
                if(font->chars[cc].offset) {
-                       error(_("(vf) %s: character %d redefined\n"),
-                               font->fontname, cc);
+                       mdvi_error(_("(vf) %s: character %d redefined\n"),
+                                  font->fontname, cc);
                        goto error;
                }
                                
@@ -199,7 +206,7 @@ static int vf_load_font(DviParams *params, DviFont *font)
                op = fuget1(p);
        }
        if(op != 248) {
-               error(_("(vf) %s: no postamble\n"), font->fontname);
+               mdvi_error(_("(vf) %s: no postamble\n"), font->fontname);
                goto error;
        }
 
@@ -225,7 +232,7 @@ static int vf_load_font(DviParams *params, DviFont *font)
        return 0;
        
 badvf:
-       error(_("%s: File corrupted, or not a VF file.\n"), font->fontname);
+       mdvi_error(_("%s: File corrupted, or not a VF file.\n"), font->fontname);
 error:
        if(font->chars)
                mdvi_free(font->chars);