pWorkrow = pData->pWorkrow + 1;
pWorkrow = pData->pWorkrow + pData->iPixelofs;
mng_retcode process_g16 (mng_datap pData){  mng_uint8p     pWorkrow;  mng_uint8p     pRGBArow;  mng_int32      iX;  mng_uint16     iW;  mng_imagedatap pBuf = (mng_imagedatap)pData->pStorebuf;#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_PROCESS_G16, MNG_LC_START)#endif  if (!pBuf)                           /* no object? then use obj 0 */    pBuf = ((mng_imagep)pData->pObjzero)->pImgbuf;  pWorkrow = pData->pWorkrow + 1;      /* temporary work pointers */  pRGBArow = pData->pRGBArow;  if (pBuf->bHasTRNS)                  /* tRNS encountered ? */  {    for (iX = 0; iX < pData->iRowsamples; iX++)    {      iW = mng_get_uint16 (pWorkrow);  /* get input */      if (iW == pBuf->iTRNSgray)       /* transparent ? */      {                                /* put in intermediate row */        mng_put_uint16 (pRGBArow,   0);        mng_put_uint16 (pRGBArow+2, 0);        mng_put_uint16 (pRGBArow+4, 0);        mng_put_uint16 (pRGBArow+6, 0);      }      else      {                                /* put in intermediate row */        mng_put_uint16 (pRGBArow,   iW);        mng_put_uint16 (pRGBArow+2, iW);        mng_put_uint16 (pRGBArow+4, iW);        mng_put_uint16 (pRGBArow+6, 0xFFFF);      }      pRGBArow += 8;                   /* next pixel */      pWorkrow += 2;    }    pData->bIsOpaque = MNG_FALSE;      /* it's not fully opaque */  }  else  {    for (iX = 0; iX < pData->iRowsamples; iX++)    {      iW = mng_get_uint16 (pWorkrow);  /* get input */      mng_put_uint16 (pRGBArow,   iW); /* and put in intermediate row */      mng_put_uint16 (pRGBArow+2, iW);      mng_put_uint16 (pRGBArow+4, iW);      mng_put_uint16 (pRGBArow+6, 0xFFFF);      pRGBArow += 8;                   /* next pixel */      pWorkrow += 2;    }    pData->bIsOpaque = MNG_TRUE;       /* it's fully opaque */  }#ifdef MNG_SUPPORT_TRACE  MNG_TRACE (pData, MNG_FN_PROCESS_G16, MNG_LC_END)#endif  return MNG_NOERROR;}