Ignore:
Timestamp:
Sep 15, 2015, 12:22:09 PM (10 years ago)
Author:
Silvan Scherrer
Message:

libpng: update vendor to 1.6.18, add removed files from 1.6.16 commit again

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified libpng/vendor/current/contrib/tools/png-fix-itxt.c

    r922 r1165  
    22/* png-fix-itxt version 1.0.0
    33 *
    4  * Copyright 2013 Glenn Randers-Pehrson
    5  * Last changed in libpng 1.6.3 [July 18, 2013]
     4 * Copyright 2015 Glenn Randers-Pehrson
     5 * Last changed in libpng 1.6.18 [July 23, 2015]
    66 *
    77 * This code is released under the libpng license.
     
    3535#define MAX_LENGTH 500000
    3636
    37 #define GETBREAK ((unsigned char)(inchar=getchar())); if (inchar == EOF) break
    38 
     37/* Read one character (inchar), also return octet (c), break if EOF */
     38#define GETBREAK inchar=getchar(); \
     39                 c=(inchar & 0xffU);\
     40                 if (inchar != c) break
    3941int
    4042main(void)
     
    4951   for (i=8; i; i--)
    5052   {
    51       c=GETBREAK;
     53      GETBREAK;
    5254      putchar(c);
    5355   }
    5456
    55 if (inchar != EOF)
     57if (inchar == c) /* !EOF */
    5658for (;;)
    5759 {
    5860   /* Read the length */
    5961   unsigned long length; /* must be 32 bits! */
    60    c=GETBREAK; buf[0] = c; length  = c; length <<= 8;
    61    c=GETBREAK; buf[1] = c; length += c; length <<= 8;
    62    c=GETBREAK; buf[2] = c; length += c; length <<= 8;
    63    c=GETBREAK; buf[3] = c; length += c;
     62   GETBREAK; buf[0] = c; length  = c; length <<= 8;
     63   GETBREAK; buf[1] = c; length += c; length <<= 8;
     64   GETBREAK; buf[2] = c; length += c; length <<= 8;
     65   GETBREAK; buf[3] = c; length += c;
    6466
    6567   /* Read the chunkname */
    66    c=GETBREAK; buf[4] = c;
    67    c=GETBREAK; buf[5] = c;
    68    c=GETBREAK; buf[6] = c;
    69    c=GETBREAK; buf[7] = c;
     68   GETBREAK; buf[4] = c;
     69   GETBREAK; buf[5] = c;
     70   GETBREAK; buf[6] = c;
     71   GETBREAK; buf[7] = c;
    7072
    7173
     
    8284      for (i=8; i < length + 12; i++)
    8385      {
    84          c=GETBREAK; buf[i] = c;
     86         GETBREAK; buf[i] = c;
    8587      }
     88
     89      if (inchar != c) /* EOF */
     90         break;
    8691
    8792      /* Calculate the CRC */
     
    9196      {
    9297        /* Check the CRC */
    93         if (((crc >> 24) & 0xff) == buf[length+8] &&
    94             ((crc >> 16) & 0xff) == buf[length+9] &&
    95             ((crc >>  8) & 0xff) == buf[length+10] &&
    96             ((crc      ) & 0xff) == buf[length+11])
     98        if (((crc >> 24) & 0xffU) == buf[length+8] &&
     99            ((crc >> 16) & 0xffU) == buf[length+9] &&
     100            ((crc >>  8) & 0xffU) == buf[length+10] &&
     101            ((crc      ) & 0xffU) == buf[length+11])
    97102           break;
    98103
     
    102107           break;
    103108
    104         c=GETBREAK;
    105         buf[length+11]=c;
     109        GETBREAK;
     110        buf[length+11] = c;
    106111
    107112        /* Update the CRC */
     
    109114      }
    110115
     116      if (inchar != c) /* EOF */
     117         break;
     118
    111119      /* Update length bytes */
    112       buf[0] = (unsigned char)((length << 24) & 0xff);
    113       buf[1] = (unsigned char)((length << 16) & 0xff);
    114       buf[2] = (unsigned char)((length <<  8) & 0xff);
    115       buf[3] = (unsigned char)((length      ) & 0xff);
     120      buf[0] = (unsigned char)((length >> 24) & 0xffU);
     121      buf[1] = (unsigned char)((length >> 16) & 0xffU);
     122      buf[2] = (unsigned char)((length >>  8) & 0xffU);
     123      buf[3] = (unsigned char)((length      ) & 0xffU);
    116124
    117125      /* Write the fixed iTXt chunk (length, name, data, crc) */
     
    122130   else
    123131   {
     132      if (inchar != c) /* EOF */
     133         break;
     134
    124135      /* Copy bytes that were already read (length and chunk name) */
    125136      for (i=0; i<8; i++)
     
    129140      for (i=8; i< length+12; i++)
    130141      {
    131          c=GETBREAK;
     142         GETBREAK;
    132143         putchar(c);
    133144      }
    134145
    135       if (inchar == EOF)
     146      if (inchar != c) /* EOF */
    136147      {
    137148         break;
     
    143154   }
    144155
    145    if (inchar == EOF)
     156   if (inchar != c) /* EOF */
    146157      break;
    147158
Note: See TracChangeset for help on using the changeset viewer.