func: FILE_T file_open(const char *path) int fd ; if ( ( fd = open ( path , 0 | 0 , 0 ) ) == - 1 )  ft = file_fdopen ( fd ); FILE_T file_fdopen(int fd) if ( fd == - 1 )  state -> fd = fd; state -> is_compressed = 0; state -> start = lseek ( state -> fd , 0 , 1 ); if ( state -> start == ( - 1 ) )  state -> start = 0; state -> raw_pos = state -> start; gz_reset ( state ); static void gz_reset(FILE_T state) state -> have = 0; state -> eof = 0; state -> compression = 0; state -> seek = 0; state -> err = 0; state -> err_info = ( ( void * ) 0 ); state -> pos = 0; state -> avail_in = 0; if ( fstat ( fd , & st ) >= 0 )  state -> in = ( ( unsigned char * ) ( g_try_malloc ( want ) ) ); state -> out = ( ( unsigned char * ) ( g_try_malloc ( ( want << 1 ) ) ) ); state -> size = want; if ( state -> in == ( ( void * ) 0 ) || state -> out == ( ( void * ) 0 ) )  g_free ( ( state -> out ) ); g_free ( ( state -> in ) ); g_free ( state ); state -> strm . zalloc = 0; state -> strm . zfree = 0; state -> strm . opaque = 0; state -> strm . avail_in = 0; state -> strm . next_in = 0; if ( inflateInit2_ ( & state -> strm , - 15 , "1.2.8" , ( ( int ) ( sizeof ( z_stream ) ) ) ) != 0 )  g_free ( ( state -> out ) ); g_free ( ( state -> in ) ); g_free ( state ); state -> dont_check_crc = 0; return state ; if ( ft == ( ( void * ) 0 ) )  close ( fd ); ft -> dont_check_crc = 1; return ft ; 