mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-14 03:30:17 +01:00
44b7f056d9
bug1001332, 56b691c003ad, bug1086145, bug1054069, bug1155922, bug991783, bug1125025, bug1162521, bug1162644, bug1132941, bug1164364, bug1166205, bug1166163, bug1166515, bug1138554, bug1167046, bug1167043, bug1169451, bug1172128, bug1170322, bug102794, bug1128184, bug557830, bug1174648, bug1180244, bug1177784, bug1173413, bug1169174, bug1084669, bug951455, bug1183395, bug1177430, bug1183827, bug1160139, bug1154106, bug1142209, bug1185033, bug1193467, bug1182667(with sha512 changes backed out, which breaks VC6 compilation), bug1158489, bug337796
89 lines
1.6 KiB
C
89 lines
1.6 KiB
C
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
int
|
|
main(int argc, char **argv)
|
|
{
|
|
char *curstr;
|
|
char *nextstr;
|
|
unsigned int firstval;
|
|
unsigned int secondval;
|
|
unsigned int val;
|
|
unsigned char buf[5];
|
|
int count;
|
|
|
|
if ( argc != 2 ) {
|
|
fprintf(stderr, "wrong number of args\n");
|
|
exit(-1);
|
|
}
|
|
|
|
curstr = argv[1];
|
|
|
|
nextstr = strchr(curstr, '.');
|
|
|
|
if ( nextstr == NULL ) {
|
|
fprintf(stderr, "only one component\n");
|
|
exit(-1);
|
|
}
|
|
|
|
*nextstr = '\0';
|
|
firstval = atoi(curstr);
|
|
|
|
curstr = nextstr + 1;
|
|
|
|
nextstr = strchr(curstr, '.');
|
|
|
|
if ( nextstr ) {
|
|
*nextstr = '\0';
|
|
}
|
|
|
|
secondval = atoi(curstr);
|
|
|
|
if ( firstval > 2 ) {
|
|
fprintf(stderr, "first component out of range\n");
|
|
exit(-1);
|
|
|
|
}
|
|
|
|
if ( secondval > 39 ) {
|
|
fprintf(stderr, "second component out of range\n");
|
|
exit(-1);
|
|
}
|
|
|
|
printf("0x%x, ", ( firstval * 40 ) + secondval );
|
|
while ( nextstr ) {
|
|
curstr = nextstr + 1;
|
|
|
|
nextstr = strchr(curstr, '.');
|
|
|
|
if ( nextstr ) {
|
|
*nextstr = '\0';
|
|
}
|
|
|
|
memset(buf, 0, sizeof(buf));
|
|
val = atoi(curstr);
|
|
count = 0;
|
|
while ( val ) {
|
|
buf[count] = ( val & 0x7f );
|
|
val = val >> 7;
|
|
count++;
|
|
}
|
|
|
|
while ( count-- ) {
|
|
if ( count ) {
|
|
printf("0x%x, ", buf[count] | 0x80 );
|
|
} else {
|
|
printf("0x%x, ", buf[count] );
|
|
}
|
|
}
|
|
}
|
|
printf("\n");
|
|
return 0;
|
|
}
|
|
|