- Timestamp:
- May 6, 2011, 7:47:13 PM (12 years ago)
- Location:
- abuse/trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
abuse/trunk/src/Makefile.am
r574 r585 70 70 71 71 abuse_tool_SOURCES = \ 72 tool/abuse-tool.cpp 72 tool/abuse-tool.cpp \ 73 crc.cpp crc.h 73 74 abuse_tool_LDADD = imlib/libimlib.a 74 75 abuse_tool_DEPENDENCIES = $(abuse_tool_LDADD) -
abuse/trunk/src/crc.cpp
r555 r585 15 15 #include "crc.h" 16 16 17 uint16_t calc_crc( uint8_t *buf, int len)17 uint16_t calc_crc(void *buf, size_t len) 18 18 { 19 uint8_t c1=0,c2=0; 20 while (len) 21 { 22 len--; 23 c1+=*buf; 24 c2+=c1; 25 buf++; 26 } 27 return (c2<<8)|c1; 19 uint8_t *data = (uint8_t *)buf; 20 uint8_t c1 = 0, c2 = 0; 21 22 while (len--) 23 c2 += (c1 += *data++); 24 25 return (c2 << 8) | c1; 28 26 } 29 27 -
abuse/trunk/src/crc.h
r555 r585 11 11 #ifndef _CRC_HPP_ 12 12 #define _CRC_HPP_ 13 13 14 #include "specs.h" 14 15 15 uint16_t calc_crc( uint8_t *buf, int len);16 uint16_t calc_crc(void *buf, size_t len); 16 17 uint32_t crc_file(bFILE *fp); 17 18 19 #endif 18 20 19 #endif -
abuse/trunk/src/tool/abuse-tool.cpp
r564 r585 20 20 #include "image.h" 21 21 #include "pcxread.h" 22 #include "crc.h" 22 23 23 24 static void Usage(); … … 123 124 if (cmd == CMD_LIST) 124 125 { 125 printf(" id type size name & information\n"); 126 printf(" ---- ---- ------- ----------------------------\n"); 126 printf(" id type bytes crc name & information\n"); 127 printf(" ---- ---- ------- ---- ----------------------------\n"); 128 129 dir.FullyLoad(&fp); 127 130 128 131 for (int i = 0; i < dir.total; i++) … … 131 134 132 135 /* Print basic information */ 133 printf("% 5i % 3i % 8i % s",134 i, se->type, (int)se->size, se->name);136 printf("% 5i % 3i % 8i %04x %s", i, se->type, (int)se->size, 137 calc_crc(se->data, se->size), se->name); 135 138 136 139 /* Is there anything special to say? */ … … 144 147 { 145 148 image *im = new image(&fp, se); 146 printf(" (%i x %i pixels)", im->Size().x, im->Size().y);149 printf(" \t# %i x %i pixels", im->Size().x, im->Size().y); 147 150 delete im; 148 151 break; … … 151 154 { 152 155 palette *pal = new palette(se, &fp); 153 printf(" (%i colors)", pal->pal_size());156 printf(" \t# %i colors", pal->pal_size()); 154 157 delete pal; 155 158 break; 156 159 } 160 #if 0 161 default: 162 { 163 /* Try to print a representation of the item */ 164 int has_binary = 0; 165 for (int i = 0; i < Min(20, (int)se->size); i++) 166 { 167 uint8_t ch = ((uint8_t *)se->data)[i]; 168 if (ch < 0x20 || ch >= 0x7f) 169 has_binary++; 170 } 171 if (has_binary <= 2 && se->size > 5) 172 has_binary = 0; 173 174 printf(" \t# "); 175 if (!has_binary) 176 putchar('\"'); 177 178 size_t max = Min(has_binary ? 15 : 30, (int)se->size); 179 for (size_t i = 0; i < max; i++) 180 { 181 uint8_t ch = ((uint8_t *)se->data)[i]; 182 if (has_binary) 183 printf("%02x ", ch); 184 else if (ch && (ch < 0x20 || ch >= 0x7f)) 185 printf("\\x%02x", ch); 186 else if (ch) 187 putchar(ch); 188 else 189 printf("\\0"); 190 } 191 if (se->size > max) 192 printf("..."); 193 else if (!has_binary) 194 printf("\""); 195 break; 196 } 197 #endif 157 198 } 158 199
Note: See TracChangeset
for help on using the changeset viewer.