Beispiel #1
0
const char* unshield_directory_name(Unshield* unshield, int index)
{
  if (unshield && index >= 0)
  {
    /* XXX: multi-volume support... */
    Header* header = unshield->header_list;

    if (index < (int)header->cab.directory_count)
      return unshield_get_utf8_string(header, 
          header->data +
          header->common.cab_descriptor_offset +
          header->cab.file_table_offset +
          header->file_table[index]);
  }

  unshield_warning("Failed to get directory name %i", index);
  return NULL;
}
Beispiel #2
0
const char* unshield_file_name (Unshield* unshield, int index)/*{{{*/
{
  FileDescriptor* fd = unshield_get_file_descriptor(unshield, index);

  if (fd)
  {
    /* XXX: multi-volume support... */
    Header* header = unshield->header_list;

    return unshield_get_utf8_string(header, 
        header->data +
        header->common.cab_descriptor_offset +
        header->cab.file_table_offset +
        fd->name_offset);
  }
    
  unshield_warning("Failed to get file descriptor %i", index);
  return NULL;
}/*}}}*/