2008/4/21, Martin Schröder
device" and sure, when I fire up gdb it shows this: ------------------- (gdb) bt #0 0x90014ba8 in write () #1 0x90015cbc in _swrite () #2 0x900055f8 in __sflush () #3 0x9006abe0 in fseeko () #4 0x001c9aac in xfseeko (f=0xa000dbe4, offset=64656437686498, wherefrom=0, filename=0x232ae80 "test-inc") at ../../../src/texk/kpathsea/xfseeko.c:28 #5 0x000cfe80 in writestreamlength (length=3909, offset=64656437682547) at ../../../../src/texk/web2c/pdftexdir/utils.c:412 #6 0x00061a88 in pdfendstream () at pdftex1.c:8395 ------------------- The offset is a bit large.:-{
I've traced it to this: ------- pdftoepdf.cc ------ static void copyName(char *s) { pdf_puts("/"); for (; *s != 0; s++) { if (isdigit(*s) || isupper(*s) || islower(*s) || *s == '_' || *s == '.' || *s == '-' || *s == '+') { do { pdfroom(1); pdfbuf[pdfptr++] = c; } while (0); else pdf_printf("#%.2X", *s & 0xFF); } } -------------------------- debugging this I get -------------------------- Breakpoint 1, copyName (s=0x2329380 "F15") at ../../../../src/texk/web2c/pdftexdir/pdftoepdf.cc:286 286 pdf_puts("/"); (gdb) n Current language: auto; currently c++ 287 for (; *s != 0; s++) { (gdb) display pdfptr 1: pdfptr = 302 (gdb) n 288 if (isdigit(*s) || isupper(*s) || islower(*s) || *s == '_' || 1: pdfptr = 302 (gdb) 291 pdfroom(1); 1: pdfptr = 302 (gdb) 292 pdfbuf[pdfptr++] = *s; 1: pdfptr = 302 (gdb) 287 for (; *s != 0; s++) { 1: pdfptr = 4294967598 (gdb) -------------------------- What's going on? Best Martin