nkeynes@31: /** nkeynes@187: * $Id: util.c,v 1.5 2006-08-01 21:55:38 nkeynes Exp $ nkeynes@31: * nkeynes@31: * Miscellaneous utility functions. nkeynes@31: * nkeynes@31: * Copyright (c) 2005 Nathan Keynes. nkeynes@31: * nkeynes@31: * This program is free software; you can redistribute it and/or modify nkeynes@31: * it under the terms of the GNU General Public License as published by nkeynes@31: * the Free Software Foundation; either version 2 of the License, or nkeynes@31: * (at your option) any later version. nkeynes@31: * nkeynes@31: * This program is distributed in the hope that it will be useful, nkeynes@31: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@31: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@31: * GNU General Public License for more details. nkeynes@31: */ nkeynes@31: nkeynes@17: #include "dream.h" nkeynes@17: nkeynes@17: void fwrite_string( char *s, FILE *f ) nkeynes@17: { nkeynes@17: uint32_t len = 0; nkeynes@17: if( s == NULL ) { nkeynes@17: fwrite( &len, sizeof(len), 1, f ); nkeynes@17: } else { nkeynes@17: len = strlen(s)+1; nkeynes@17: fwrite( &len, sizeof(len), 1, f ); nkeynes@17: fwrite( s, len, 1, f ); nkeynes@17: } nkeynes@17: } nkeynes@17: nkeynes@17: int fread_string( char *s, int maxlen, FILE *f ) nkeynes@17: { nkeynes@17: uint32_t len; nkeynes@17: fread( &len, sizeof(len), 1, f ); nkeynes@17: if( len != 0 ) { nkeynes@17: fread( s, len > maxlen ? maxlen : len, 1, f ); nkeynes@17: } nkeynes@17: return len; nkeynes@17: } nkeynes@117: nkeynes@117: void fwrite_dump( unsigned char *data, unsigned int length, FILE *f ) nkeynes@117: { nkeynes@117: unsigned int i, j; nkeynes@117: for( i =0; i>2; i+=8 ) { nkeynes@187: fprintf( f, "%08X:", i); nkeynes@187: for( j=i; j