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
534534struct 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
556556typedef struct FILE_TIME {
557- unsigned long l ;
558- unsigned long h ;
557+ uint32_t l ;
558+ uint32_t h ;
559559} FILE_TIME ;
560560
561561typedef struct wdsafp_context {
562562 xoff_t dir_start ;
563- unsigned long * current_sector ;
563+ uint32_t * current_sector ;
564564} wdsafp_context ;
565565
566566typedef struct write_tree_context {
@@ -600,11 +600,11 @@ int write_directory( dir_node_avl *in_avl, int in_xiso, int in_depth );
600600int write_file ( dir_node_avl * in_avl , write_tree_context * in_context , int in_depth );
601601int write_tree ( dir_node_avl * in_avl , write_tree_context * in_context , int in_depth );
602602int 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 );
604604int 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 );
606606int 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
610610void 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;
625625static int s_total_files_all_isos = 0 ;
626626static 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
631631static 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
17511751int 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
18211821int 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