Skip to content

Commit 0a18705

Browse files
LukeUshermborgerson
authored andcommitted
use fixed-width types when necessary
1 parent 211979e commit 0a18705

File tree

1 file changed

+41
-41
lines changed

1 file changed

+41
-41
lines changed

extract-xiso.c

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@
251251
#include <string.h>
252252
#include <sys/stat.h>
253253
#include <sys/types.h>
254-
254+
#include <stdint.h>
255255

256256
#if defined( __FREEBSD__ ) || defined( __OPENBSD__ )
257257
#include <machine/limits.h>
@@ -523,26 +523,26 @@ struct dir_node {
523523

524524
char *filename;
525525

526-
unsigned short r_offset;
527-
unsigned char attributes;
528-
unsigned char filename_length;
526+
uint16_t r_offset;
527+
uint8_t attributes;
528+
uint8_t filename_length;
529529

530-
unsigned long file_size;
531-
unsigned long start_sector;
530+
uint32_t file_size;
531+
uint32_t start_sector;
532532
};
533533

534534
struct dir_node_avl {
535-
unsigned long offset;
535+
uint32_t offset;
536536
xoff_t dir_start;
537537

538538
char *filename;
539-
unsigned long file_size;
540-
unsigned long start_sector;
539+
uint32_t file_size;
540+
uint32_t start_sector;
541541
dir_node_avl *subdirectory;
542542

543-
unsigned long old_start_sector;
543+
uint32_t old_start_sector;
544544

545-
avl_skew skew;
545+
avl_skew skew;
546546
dir_node_avl *left;
547547
dir_node_avl *right;
548548
};
@@ -554,13 +554,13 @@ struct create_list {
554554
};
555555

556556
typedef struct FILE_TIME {
557-
unsigned long l;
558-
unsigned long h;
557+
uint32_t l;
558+
uint32_t h;
559559
} FILE_TIME;
560560

561561
typedef struct wdsafp_context {
562562
xoff_t dir_start;
563-
unsigned long *current_sector;
563+
uint32_t *current_sector;
564564
} wdsafp_context;
565565

566566
typedef struct write_tree_context {
@@ -600,11 +600,11 @@ int write_directory( dir_node_avl *in_avl, int in_xiso, int in_depth );
600600
int write_file( dir_node_avl *in_avl, write_tree_context *in_context, int in_depth );
601601
int write_tree( dir_node_avl *in_avl, write_tree_context *in_context, int in_depth );
602602
int calculate_total_files_and_bytes( dir_node_avl *in_avl, void *in_context, int in_depth );
603-
int calculate_directory_size( dir_node_avl *in_avl, unsigned long *out_size, long in_depth );
603+
int calculate_directory_size( dir_node_avl *in_avl, uint32_t *out_size, long in_depth );
604604
int calculate_directory_requirements( dir_node_avl *in_avl, void *in_context, int in_depth );
605-
int calculate_directory_offsets( dir_node_avl *in_avl, unsigned long *io_context, int in_depth );
605+
int calculate_directory_offsets( dir_node_avl *in_avl, uint32_t *io_context, int in_depth );
606606
int write_dir_start_and_file_positions( dir_node_avl *in_avl, wdsafp_context *io_context, int in_depth );
607-
int write_volume_descriptors( int in_xiso, unsigned long in_total_sectors );
607+
int write_volume_descriptors( int in_xiso, uint32_t in_total_sectors );
608608

609609
#if DEBUG
610610
void write_sector( int in_xiso, xoff_t in_start, char *in_name, char *in_extension );
@@ -625,8 +625,8 @@ static xoff_t s_total_bytes_all_isos = 0;
625625
static int s_total_files_all_isos = 0;
626626
static bool s_warned = 0;
627627

628-
static bool s_remove_systemupdate = false;
629-
static char *s_systemupdate = "$SystemUpdate";
628+
static bool s_remove_systemupdate = false;
629+
static char *s_systemupdate = "$SystemUpdate";
630630

631631
static xoff_t s_xbox_disc_lseek = 0;
632632

@@ -935,7 +935,7 @@ int create_xiso( char *in_root_directory, char *in_output_directory, dir_node_av
935935
dir_node_avl root;
936936
FILE_TIME *ft = nil;
937937
write_tree_context wt_context;
938-
unsigned long start_sector;
938+
uint32_t start_sector;
939939
int i, n, xiso = -1, err = 0;
940940
char *cwd = nil, *buf = nil, *iso_name, *xiso_path, *iso_dir;
941941

@@ -1192,7 +1192,7 @@ int traverse_xiso( int in_xiso, dir_node *in_dir_node, xoff_t in_dir_start, char
11921192
dir_node subdir;
11931193
dir_node *dir, node;
11941194
int err = 0, sector;
1195-
unsigned short l_offset = 0, tmp;
1195+
uint16_t l_offset = 0, tmp;
11961196

11971197
if ( in_dir_node == nil ) in_dir_node = &node;
11981198

@@ -1316,7 +1316,7 @@ int traverse_xiso( int in_xiso, dir_node *in_dir_node, xoff_t in_dir_start, char
13161316
memcpy( &subdir, dir, sizeof(dir_node) );
13171317

13181318
subdir.parent = nil;
1319-
if ( ! err && dir->file_size > 0 ) err = traverse_xiso( in_xiso, &subdir, (xoff_t) dir->start_sector * XISO_SECTOR_SIZE + s_xbox_disc_lseek, path, in_mode, in_mode == k_generate_avl ? &dir->avl_node->subdirectory : nil, in_ll_compat );
1319+
if ( ! err && dir->file_size > 0 ) err = traverse_xiso( in_xiso, &subdir, (xoff_t) dir->start_sector * XISO_SECTOR_SIZE + s_xbox_disc_lseek, path, in_mode, in_mode == k_generate_avl ? &dir->avl_node->subdirectory : nil, in_ll_compat );
13201320

13211321
if ( !s_remove_systemupdate || !strstr( dir->filename, s_systemupdate ) )
13221322
{
@@ -1334,7 +1334,7 @@ int traverse_xiso( int in_xiso, dir_node *in_dir_node, xoff_t in_dir_start, char
13341334
if ( in_mode == k_extract ) {
13351335
err = extract_file( in_xiso, dir, in_mode, in_path );
13361336
} else {
1337-
exiso_log( "%s%s%s (%lu bytes)%s", in_mode == k_extract ? "extracting " : "", in_path, dir->filename, dir->file_size , "" ); flush();
1337+
exiso_log( "%s%s%s (%u bytes)%s", in_mode == k_extract ? "extracting " : "", in_path, dir->filename, dir->file_size , "" ); flush();
13381338
exiso_log( "\n" );
13391339
}
13401340

@@ -1570,7 +1570,7 @@ int boyer_moore_init( char *in_pattern, long in_pat_len, long in_alphabet_size )
15701570

15711571
if ( ! err ) {
15721572
for ( i = 0; i < in_alphabet_size; ++i ) s_bc_table[ i ] = in_pat_len;
1573-
for ( i = 0; i < in_pat_len - 1; ++i ) s_bc_table[ (unsigned char) in_pattern[ i ] ] = in_pat_len - i - 1;
1573+
for ( i = 0; i < in_pat_len - 1; ++i ) s_bc_table[ (uint8_t) in_pattern[ i ] ] = in_pat_len - i - 1;
15741574

15751575
if ( ( s_gs_table = (long *) malloc( 2 * ( in_pat_len + 1 ) * sizeof(long) ) ) == nil ) mem_err();
15761576
}
@@ -1613,7 +1613,7 @@ char *boyer_moore_search( char *in_text, long in_text_len ) {
16131613
if ( in_text[ j ] == s_pattern[ i ] ) { --i; --j; }
16141614
else {
16151615
k = s_gs_table[ i + 1 ];
1616-
l = s_bc_table[ (unsigned char) in_text[ j ] ];
1616+
l = s_bc_table[ (uint8_t) in_text[ j ] ];
16171617

16181618
j += max( k, l );
16191619

@@ -1634,7 +1634,7 @@ int extract_file( int in_xiso, dir_node *in_file, modes in_mode , char* path) {
16341634
char c;
16351635
int err = 0;
16361636
bool warn = false;
1637-
unsigned long i, size, totalsize = 0, totalpercent = 0;
1637+
uint32_t i, size, totalsize = 0, totalpercent = 0;
16381638
int out;
16391639

16401640
if ( s_remove_systemupdate && strstr( path, s_systemupdate ) )
@@ -1664,7 +1664,7 @@ int extract_file( int in_xiso, dir_node *in_file, modes in_mode , char* path) {
16641664
}
16651665
totalsize += size;
16661666
totalpercent = ( totalsize * 100.0 ) / in_file->file_size;
1667-
exiso_log( "%s%s%s (%lu bytes) [%lu%%]%s\r", in_mode == k_extract ? "extracting " : "", path, in_file->filename, in_file->file_size , totalpercent, "" );
1667+
exiso_log( "%s%s%s (%u bytes) [%u%%]%s\r", in_mode == k_extract ? "extracting " : "", path, in_file->filename, in_file->file_size , totalpercent, "" );
16681668
}
16691669

16701670
close( out );
@@ -1675,7 +1675,7 @@ int extract_file( int in_xiso, dir_node *in_file, modes in_mode , char* path) {
16751675
{
16761676
totalsize += size;
16771677
totalpercent = ( totalsize * 100.0 ) / in_file->file_size;
1678-
exiso_log( "%s%s%s (%lu bytes) [%lu%%]%s\r", in_mode == k_extract ? "extracting " : "", path, in_file->filename, in_file->file_size , totalpercent, "" );
1678+
exiso_log( "%s%s%s (%u bytes) [%u%%]%s\r", in_mode == k_extract ? "extracting " : "", path, in_file->filename, in_file->file_size , totalpercent, "" );
16791679
}
16801680
}
16811681
}
@@ -1750,7 +1750,7 @@ int write_tree( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
17501750

17511751
int write_file( dir_node_avl *in_avl, write_tree_context *in_context, int in_depth ) {
17521752
char *buf, *p;
1753-
unsigned long bytes, n, size;
1753+
uint32_t bytes, n, size;
17541754
int err = 0, fd = -1, i;
17551755

17561756
if ( ! in_avl->subdirectory ) {
@@ -1766,7 +1766,7 @@ int write_file( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
17661766
}
17671767

17681768
if ( ! err ) {
1769-
exiso_log( "adding %s%s (%lu bytes) ", in_context->path, in_avl->filename, in_avl->file_size ); flush();
1769+
exiso_log( "adding %s%s (%u bytes) ", in_context->path, in_avl->filename, in_avl->file_size ); flush();
17701770

17711771
if ( s_media_enable && ( i = (int) strlen( in_avl->filename ) ) >= 4 && in_avl->filename[ i - 4 ] == '.' && ( in_avl->filename[ i - 3 ] | 0x20 ) == 'x' && ( in_avl->filename[ i - 2 ] | 0x20 ) == 'b' && ( in_avl->filename[ i - 1 ] | 0x20 ) == 'e' ) {
17721772
for ( bytes = in_avl->file_size, i = 0; ! err && bytes; ) {
@@ -1821,15 +1821,15 @@ int write_file( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
18211821
int write_directory( dir_node_avl *in_avl, int in_xiso, int in_depth ) {
18221822
xoff_t pos;
18231823
int err = 0, pad;
1824-
unsigned short l_offset, r_offset;
1825-
unsigned long file_size = in_avl->file_size + (in_avl->subdirectory ? (XISO_SECTOR_SIZE - (in_avl->file_size % XISO_SECTOR_SIZE)) % XISO_SECTOR_SIZE : 0);
1824+
uint16_t l_offset, r_offset;
1825+
uint32_t file_size = in_avl->file_size + (in_avl->subdirectory ? (XISO_SECTOR_SIZE - (in_avl->file_size % XISO_SECTOR_SIZE)) % XISO_SECTOR_SIZE : 0);
18261826
char length = (char) strlen( in_avl->filename ), attributes = in_avl->subdirectory ? XISO_ATTRIBUTE_DIR : XISO_ATTRIBUTE_ARC, sector[ XISO_SECTOR_SIZE ];
18271827

18281828
little32( in_avl->file_size );
18291829
little32( in_avl->start_sector );
18301830

1831-
l_offset = (unsigned short) (in_avl->left ? in_avl->left->offset / XISO_DWORD_SIZE : 0);
1832-
r_offset = (unsigned short) (in_avl->right ? in_avl->right->offset / XISO_DWORD_SIZE : 0);
1831+
l_offset = (uint16_t) (in_avl->left ? in_avl->left->offset / XISO_DWORD_SIZE : 0);
1832+
r_offset = (uint16_t) (in_avl->right ? in_avl->right->offset / XISO_DWORD_SIZE : 0);
18331833

18341834
little16( l_offset );
18351835
little16( r_offset );
@@ -1853,7 +1853,7 @@ int write_directory( dir_node_avl *in_avl, int in_xiso, int in_depth ) {
18531853
}
18541854

18551855

1856-
int calculate_directory_offsets( dir_node_avl *in_avl, unsigned long *io_current_sector, int in_depth ) {
1856+
int calculate_directory_offsets( dir_node_avl *in_avl, uint32_t *io_current_sector, int in_depth ) {
18571857
wdsafp_context context;
18581858

18591859
if ( in_avl->subdirectory ) {
@@ -1914,8 +1914,8 @@ int calculate_directory_requirements( dir_node_avl *in_avl, void *in_context, in
19141914
}
19151915

19161916

1917-
int calculate_directory_size( dir_node_avl *in_avl, unsigned long *out_size, long in_depth ) {
1918-
unsigned long length;
1917+
int calculate_directory_size( dir_node_avl *in_avl, uint32_t *out_size, long in_depth ) {
1918+
uint32_t length;
19191919

19201920
if ( in_depth == 0 ) *out_size = 0;
19211921

@@ -1976,7 +1976,7 @@ int generate_avl_tree_local( dir_node_avl **out_root, int *io_n ) {
19761976
free( avl );
19771977
continue;
19781978
}
1979-
s_total_bytes += avl->file_size = (unsigned long) sb.st_size;
1979+
s_total_bytes += avl->file_size = (uint32_t) sb.st_size;
19801980
++s_total_files;
19811981
} else {
19821982
free( avl->filename );
@@ -2013,8 +2013,8 @@ FILE_TIME *alloc_filetime_now( void ) {
20132013
if ( ! err ) {
20142014
tmp = ( (double) now + ( 369.0 * 365.25 * 24 * 60 * 60 - ( 3.0 * 24 * 60 * 60 + 6.0 * 60 * 60 ) ) ) * 1.0e7;
20152015

2016-
ft->h = (unsigned long) ( tmp * ( 1.0 / ( 4.0 * (double) ( 1 << 30 ) ) ) );
2017-
ft->l = (unsigned long) ( tmp - ( (double) ft->h ) * 4.0 * (double) ( 1 << 30 ) );
2016+
ft->h = (uint32_t) ( tmp * ( 1.0 / ( 4.0 * (double) ( 1 << 30 ) ) ) );
2017+
ft->l = (uint32_t) ( tmp - ( (double) ft->h ) * 4.0 * (double) ( 1 << 30 ) );
20182018

20192019
little32( ft->h ); // convert to little endian here because this is a PC only struct and we won't read it anyway
20202020
little32( ft->l );
@@ -2040,7 +2040,7 @@ FILE_TIME *alloc_filetime_now( void ) {
20402040
// write_volume_descriptors() assumes that the iso file block from offset
20412041
// 0x8000 to 0x8808 has been zeroed prior to entry.
20422042

2043-
int write_volume_descriptors( int in_xiso, unsigned long in_total_sectors ) {
2043+
int write_volume_descriptors( int in_xiso, uint32_t in_total_sectors ) {
20442044
int big, err = 0, little;
20452045
char date[] = "0000000000000000";
20462046
char spaces[ ECMA_119_VOLUME_CREATION_DATE - ECMA_119_VOLUME_SET_IDENTIFIER ];

0 commit comments

Comments
 (0)