texk/web2c/pdfetexini.c contains the following ~line 116:
  {register integer for_end; i = 0 ;for_end = 255 ; if ( i <= for_end) do
    mubyteread [i ]= -268435455L ;
  while ( i++ < for_end ) ;}
  {register integer for_end; i = 0 ;for_end = 255 ; if ( i <= for_end) do
    mubytewrite [i ]= 0 ;
  while ( i++ < for_end ) ;}
  {register integer for_end; i = 0 ;for_end = 128 ; if ( i <= for_end) do
    mubytecswrite [i ]= -268435455L ;
  while ( i++ < for_end ) ;}

sizeof(mubyteread) = 256.
sizeof(mubytewrite) = 256.
sizeof(mubytecswrite) = 128.

The loop for mubyteread and mubytewrite is correct. However, for
mubytecswrite, you overwrite mubytecswrite[0] .. mubytecswrite[128].
You really want to overwrite mubytecswrite[0] .. mubytecswrite[127].

Seems like pdfetex.p is wrong. It declares mubytecswrite as:
  mubytecswrite:array[0..127]of halfword;mubyteskip:integer;
but overwrites the array:
  for i:=0 to 128 do mubytecswrite[i]:=-268435455;mubytekeep:=0;

-- 
albert chin ([EMAIL PROTECTED])

Reply via email to