mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
Merge c59e585147
into f8c6903d21
This commit is contained in:
commit
b288e42f59
33 changed files with 90 additions and 90 deletions
2
configure
vendored
2
configure
vendored
|
@ -1511,7 +1511,7 @@ done
|
||||||
{ ac_configure_args0=; unset ac_configure_args0;}
|
{ ac_configure_args0=; unset ac_configure_args0;}
|
||||||
{ ac_configure_args1=; unset ac_configure_args1;}
|
{ ac_configure_args1=; unset ac_configure_args1;}
|
||||||
|
|
||||||
# When interrupted or exit'd, cleanup temporary files, and complete
|
# When interrupted or exited, cleanup temporary files, and complete
|
||||||
# config.log. We remove comments because anyway the quotes in there
|
# config.log. We remove comments because anyway the quotes in there
|
||||||
# would cause problems or look ugly.
|
# would cause problems or look ugly.
|
||||||
# WARNING: Use '\'' to represent an apostrophe within the trap.
|
# WARNING: Use '\'' to represent an apostrophe within the trap.
|
||||||
|
|
|
@ -134,7 +134,7 @@ check_timeout:
|
||||||
cmpb ds:counter_timeout, 0x00
|
cmpb ds:counter_timeout, 0x00
|
||||||
jnz wait_for_keyboard
|
jnz wait_for_keyboard
|
||||||
|
|
||||||
boot_fixed_disk: # Timeout occured => boot second bootable disk (non USB)
|
boot_fixed_disk: # Timeout occurred => boot second bootable disk (non USB)
|
||||||
call restore_rtc_vect # Remove our RTC override
|
call restore_rtc_vect # Remove our RTC override
|
||||||
movb ds:partition_table, 0x81 # target we want to swap with 0x80
|
movb ds:partition_table, 0x81 # target we want to swap with 0x80
|
||||||
push 0x0080
|
push 0x0080
|
||||||
|
|
|
@ -154,7 +154,7 @@ static void FatDateTimeToSystemTime(PLARGE_INTEGER SystemTime, PFAT_DATETIME Fat
|
||||||
/* Fix seconds value that might get beyond the bound */
|
/* Fix seconds value that might get beyond the bound */
|
||||||
if (TimeFields.Second > 59) TimeFields.Second = 0;
|
if (TimeFields.Second > 59) TimeFields.Second = 0;
|
||||||
|
|
||||||
/* Perform ceonversion to system time if possible */
|
/* Perform conversion to system time if possible */
|
||||||
if (!RtlTimeFieldsToTime(&TimeFields, SystemTime)) {
|
if (!RtlTimeFieldsToTime(&TimeFields, SystemTime)) {
|
||||||
/* Set to default time if conversion failed */
|
/* Set to default time if conversion failed */
|
||||||
SystemTime->QuadPart = 0;
|
SystemTime->QuadPart = 0;
|
||||||
|
@ -280,7 +280,7 @@ static BOOL ExtractFAT(int entry, const char* path)
|
||||||
}
|
}
|
||||||
|
|
||||||
safe_closehandle(hFile);
|
safe_closehandle(hFile);
|
||||||
uprintf("Succesfully wrote '%s' (%d bytes)\n", filename, filesize);
|
uprintf("Successfully wrote '%s' (%d bytes)\n", filename, filesize);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -396,7 +396,7 @@ BOOL ExtractFreeDOS(const char* path)
|
||||||
// thus we would need to have a separate header with each file's timestamps
|
// thus we would need to have a separate header with each file's timestamps
|
||||||
|
|
||||||
safe_closehandle(hFile);
|
safe_closehandle(hFile);
|
||||||
uprintf("Succesfully wrote '%s' (%d bytes)\n", filename, res_size);
|
uprintf("Successfully wrote '%s' (%d bytes)\n", filename, res_size);
|
||||||
|
|
||||||
if ((i == 4) || (i == 10) || (i == 16) || (i == 22) || (i == ARRAYSIZE(res_name)-1))
|
if ((i == 4) || (i == 10) || (i == 16) || (i == 22) || (i == ARRAYSIZE(res_name)-1))
|
||||||
UpdateProgress(OP_DOS, -1.0f);
|
UpdateProgress(OP_DOS, -1.0f);
|
||||||
|
|
|
@ -639,7 +639,7 @@ static const char* get_kb(void)
|
||||||
case 0x00000440: // Kyrgyz Cyrillic
|
case 0x00000440: // Kyrgyz Cyrillic
|
||||||
return "ky";
|
return "ky";
|
||||||
case 0x00000043:
|
case 0x00000043:
|
||||||
case 0x00000843: // Uzbek Crillic
|
case 0x00000843: // Uzbek Cyrillic
|
||||||
return "uz";
|
return "uz";
|
||||||
case 0x00000042:
|
case 0x00000042:
|
||||||
case 0x00000442: // Turkmen
|
case 0x00000442: // Turkmen
|
||||||
|
@ -970,7 +970,7 @@ BOOL SetDOSLocale(const char* path, BOOL bFreeDOS)
|
||||||
fprintf(fd, "set PATH=.;\\;\\LOCALE\n");
|
fprintf(fd, "set PATH=.;\\;\\LOCALE\n");
|
||||||
fprintf(fd, "echo Using %s keyboard with %s codepage [%d]\n", kb_to_hr("us"), cp_to_hr(437), 437);
|
fprintf(fd, "echo Using %s keyboard with %s codepage [%d]\n", kb_to_hr("us"), cp_to_hr(437), 437);
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
uprintf("Succesfully wrote 'AUTOEXEC.BAT'\n");
|
uprintf("Successfully wrote 'AUTOEXEC.BAT'\n");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -997,7 +997,7 @@ BOOL SetDOSLocale(const char* path, BOOL bFreeDOS)
|
||||||
bFreeDOS?"MENU ":"MENUITEM=", bFreeDOS?')':',', kb_to_hr("us"), cp_to_hr(437), 437);
|
bFreeDOS?"MENU ":"MENUITEM=", bFreeDOS?')':',', kb_to_hr("us"), cp_to_hr(437), 437);
|
||||||
fprintf(fd, "%s", bFreeDOS?"MENU\n12?\n":"[1]\ndevice=\\locale\\display.sys con=(ega,,1)\n[2]\n");
|
fprintf(fd, "%s", bFreeDOS?"MENU\n12?\n":"[1]\ndevice=\\locale\\display.sys con=(ega,,1)\n[2]\n");
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
uprintf("Succesfully wrote 'CONFIG.SYS'\n");
|
uprintf("Successfully wrote 'CONFIG.SYS'\n");
|
||||||
|
|
||||||
// AUTOEXEC.BAT
|
// AUTOEXEC.BAT
|
||||||
strcpy(filename, path);
|
strcpy(filename, path);
|
||||||
|
@ -1018,7 +1018,7 @@ BOOL SetDOSLocale(const char* path, BOOL bFreeDOS)
|
||||||
fprintf(fd, "keyb %s,,\\locale\\%s\n", kb, kbdrv);
|
fprintf(fd, "keyb %s,,\\locale\\%s\n", kb, kbdrv);
|
||||||
fprintf(fd, ":2\n");
|
fprintf(fd, ":2\n");
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
uprintf("Succesfully wrote 'AUTOEXEC.BAT'\n");
|
uprintf("Successfully wrote 'AUTOEXEC.BAT'\n");
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
18
src/format.c
18
src/format.c
|
@ -243,7 +243,7 @@ static void ToValidLabel(WCHAR* name, BOOL bFAT)
|
||||||
if (name[i] == '_') j++;
|
if (name[i] == '_') j++;
|
||||||
if (i<2*j) {
|
if (i<2*j) {
|
||||||
// If the final label is mostly underscore, use the proposed label
|
// If the final label is mostly underscore, use the proposed label
|
||||||
uprintf("FAT label is mostly undercores. Using '%s' label instead.\n", SelectedDrive.proposed_label);
|
uprintf("FAT label is mostly underscores. Using '%s' label instead.\n", SelectedDrive.proposed_label);
|
||||||
for(i=0; SelectedDrive.proposed_label[i]!=0; i++)
|
for(i=0; SelectedDrive.proposed_label[i]!=0; i++)
|
||||||
name[i] = SelectedDrive.proposed_label[i];
|
name[i] = SelectedDrive.proposed_label[i];
|
||||||
name[i] = 0;
|
name[i] = 0;
|
||||||
|
@ -265,7 +265,7 @@ static void ToValidLabel(WCHAR* name, BOOL bFAT)
|
||||||
*
|
*
|
||||||
* Low order word is calculated: Volume Serial Number is:
|
* Low order word is calculated: Volume Serial Number is:
|
||||||
* Month & Day 12/26 0c1ah
|
* Month & Day 12/26 0c1ah
|
||||||
* Sec & Hundrenths 41:94 295eh 3578:1d02
|
* Sec & Hundredths 41:94 295eh 3578:1d02
|
||||||
* -----
|
* -----
|
||||||
* 3578h
|
* 3578h
|
||||||
*
|
*
|
||||||
|
@ -387,7 +387,7 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
if (IS_ERROR(FormatStatus)) goto out;
|
if (IS_ERROR(FormatStatus)) goto out;
|
||||||
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_PARTITION_INFO, NULL, 0, &piDrive,
|
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_PARTITION_INFO, NULL, 0, &piDrive,
|
||||||
sizeof(piDrive), &cbRet, NULL)) {
|
sizeof(piDrive), &cbRet, NULL)) {
|
||||||
die("Failed to get parition info\n", ERROR_NOT_SUPPORTED);
|
die("Failed to get partition info\n", ERROR_NOT_SUPPORTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
BytesPerSect = dgDrive.BytesPerSector;
|
BytesPerSect = dgDrive.BytesPerSector;
|
||||||
|
@ -493,7 +493,7 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
// Sector 6 Backup boot sector
|
// Sector 6 Backup boot sector
|
||||||
// Sector 7 Backup FSInfo sector
|
// Sector 7 Backup FSInfo sector
|
||||||
// Sector 8 Backup 'more boot code'
|
// Sector 8 Backup 'more boot code'
|
||||||
// zero'd sectors upto ReservedSectCount
|
// zeroed sectors upto ReservedSectCount
|
||||||
// FAT1 ReservedSectCount to ReservedSectCount + FatSize
|
// FAT1 ReservedSectCount to ReservedSectCount + FatSize
|
||||||
// ...
|
// ...
|
||||||
// FATn ReservedSectCount to ReservedSectCount + FatSize
|
// FATn ReservedSectCount to ReservedSectCount + FatSize
|
||||||
|
@ -525,7 +525,7 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
die("This drive is too big for large FAT32 format\n", APPERR(ERROR_INVALID_VOLUME_SIZE));
|
die("This drive is too big for large FAT32 format\n", APPERR(ERROR_INVALID_VOLUME_SIZE));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now we're commited - print some info first
|
// Now we're committed - print some info first
|
||||||
uprintf("Size : %s %u sectors\n", SizeToHumanReadable(piDrive.PartitionLength), TotalSectors);
|
uprintf("Size : %s %u sectors\n", SizeToHumanReadable(piDrive.PartitionLength), TotalSectors);
|
||||||
uprintf("Cluster size %d bytes, %d Bytes Per Sector\n", SectorsPerCluster*BytesPerSect, BytesPerSect);
|
uprintf("Cluster size %d bytes, %d Bytes Per Sector\n", SectorsPerCluster*BytesPerSect, BytesPerSect);
|
||||||
uprintf("Volume ID is %x:%x\n", VolumeId>>16, VolumeId&0xffff);
|
uprintf("Volume ID is %x:%x\n", VolumeId>>16, VolumeId&0xffff);
|
||||||
|
@ -534,7 +534,7 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
|
|
||||||
// Fix up the FSInfo sector
|
// Fix up the FSInfo sector
|
||||||
pFAT32FsInfo->dFree_Count = (UserAreaSize/SectorsPerCluster) - 1;
|
pFAT32FsInfo->dFree_Count = (UserAreaSize/SectorsPerCluster) - 1;
|
||||||
pFAT32FsInfo->dNxt_Free = 3; // clusters 0-1 resered, we used cluster 2 for the root dir
|
pFAT32FsInfo->dNxt_Free = 3; // clusters 0-1 reserved, we used cluster 2 for the root dir
|
||||||
|
|
||||||
uprintf("%d Free Clusters\n", pFAT32FsInfo->dFree_Count);
|
uprintf("%d Free Clusters\n", pFAT32FsInfo->dFree_Count);
|
||||||
// Work out the Cluster count
|
// Work out the Cluster count
|
||||||
|
@ -560,7 +560,7 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uprintf ("Initialising reserved sectors and FATs...\n");
|
uprintf ("Initializing reserved sectors and FATs...\n");
|
||||||
// Now we should write the boot sector and fsinfo twice, once at 0 and once at the backup boot sect position
|
// Now we should write the boot sector and fsinfo twice, once at 0 and once at the backup boot sect position
|
||||||
for (i=0; i<2; i++) {
|
for (i=0; i<2; i++) {
|
||||||
int SectorStart = (i==0) ? 0 : BackupBootSect;
|
int SectorStart = (i==0) ? 0 : BackupBootSect;
|
||||||
|
@ -994,7 +994,7 @@ static BOOL SetupWinPE(char drive_letter)
|
||||||
uprintf("Failed to add SetupSourceDevice in %s\n", dst);
|
uprintf("Failed to add SetupSourceDevice in %s\n", dst);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
uprintf("Succesfully added '%s' to %s\n", setupsrcdev, dst);
|
uprintf("Successfully added '%s' to %s\n", setupsrcdev, dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
safe_sprintf(src, sizeof(src), "%c:\\%s\\setupldr.bin", drive_letter, basedir[index]);
|
safe_sprintf(src, sizeof(src), "%c:\\%s\\setupldr.bin", drive_letter, basedir[index]);
|
||||||
|
@ -1104,7 +1104,7 @@ static BOOL RemountVolume(char drive_letter)
|
||||||
uprintf("Successfully remounted %s on %s\n", &drive_guid[4], drive_name);
|
uprintf("Successfully remounted %s on %s\n", &drive_guid[4], drive_name);
|
||||||
} else {
|
} else {
|
||||||
uprintf("Failed to remount %s on %s\n", &drive_guid[4], drive_name);
|
uprintf("Failed to remount %s on %s\n", &drive_guid[4], drive_name);
|
||||||
// This will leave the drive unaccessible and must be flagged as an error
|
// This will leave the drive inaccessible and must be flagged as an error
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_CANT_REMOUNT_VOLUME);
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_CANT_REMOUNT_VOLUME);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -668,7 +668,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||||
}
|
}
|
||||||
else if (pfound == NULL)
|
else if (pfound == NULL)
|
||||||
{
|
{
|
||||||
/* First nonexact match found. */
|
/* First inexact match found. */
|
||||||
pfound = p;
|
pfound = p;
|
||||||
indfound = option_index;
|
indfound = option_index;
|
||||||
}
|
}
|
||||||
|
@ -676,7 +676,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||||
|| pfound->has_arg != p->has_arg
|
|| pfound->has_arg != p->has_arg
|
||||||
|| pfound->flag != p->flag
|
|| pfound->flag != p->flag
|
||||||
|| pfound->val != p->val)
|
|| pfound->val != p->val)
|
||||||
/* Second or later nonexact match found. */
|
/* Second or later inexact match found. */
|
||||||
ambig = 1;
|
ambig = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -859,12 +859,12 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
|
||||||
}
|
}
|
||||||
else if (pfound == NULL)
|
else if (pfound == NULL)
|
||||||
{
|
{
|
||||||
/* First nonexact match found. */
|
/* First inexact match found. */
|
||||||
pfound = p;
|
pfound = p;
|
||||||
indfound = option_index;
|
indfound = option_index;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
/* Second or later nonexact match found. */
|
/* Second or later inexact match found. */
|
||||||
ambig = 1;
|
ambig = 1;
|
||||||
}
|
}
|
||||||
if (ambig && !exact)
|
if (ambig && !exact)
|
||||||
|
|
|
@ -208,7 +208,7 @@ LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DEVICE_DRIVER, "please use
|
||||||
/**
|
/**
|
||||||
The following are status codes for completion of a given cdio
|
The following are status codes for completion of a given cdio
|
||||||
operation. By design 0 is successful completion and -1 is error
|
operation. By design 0 is successful completion and -1 is error
|
||||||
completion. This is compatable with ioctl so those routines that
|
completion. This is compatible with ioctl so those routines that
|
||||||
call ioctl can just pass the value the get back (cast as this
|
call ioctl can just pass the value the get back (cast as this
|
||||||
enum). Also, by using negative numbers for errors, the
|
enum). Also, by using negative numbers for errors, the
|
||||||
enumeration values below can be used in places where a positive
|
enumeration values below can be used in places where a positive
|
||||||
|
@ -267,7 +267,7 @@ LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DEVICE_DRIVER, "please use
|
||||||
Eject media in CD drive if there is a routine to do so.
|
Eject media in CD drive if there is a routine to do so.
|
||||||
|
|
||||||
@param p_cdio the CD object to be acted upon.
|
@param p_cdio the CD object to be acted upon.
|
||||||
If the CD is ejected *p_cdio is free'd and p_cdio set to NULL.
|
If the CD is ejected *p_cdio is freed and p_cdio set to NULL.
|
||||||
*/
|
*/
|
||||||
driver_return_code_t cdio_eject_media (CdIo_t **p_cdio);
|
driver_return_code_t cdio_eject_media (CdIo_t **p_cdio);
|
||||||
|
|
||||||
|
@ -330,7 +330,7 @@ LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DEVICE_DRIVER, "please use
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get an array of device names in search_devices that have at least
|
Get an array of device names in search_devices that have at least
|
||||||
the capabilities listed by the capabities parameter. If
|
the capabilities listed by the capabilities parameter. If
|
||||||
search_devices is NULL, then we'll search all possible CD drives.
|
search_devices is NULL, then we'll search all possible CD drives.
|
||||||
|
|
||||||
Capabilities have two parts to them, a "filesystem" part and an
|
Capabilities have two parts to them, a "filesystem" part and an
|
||||||
|
@ -347,7 +347,7 @@ LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DEVICE_DRIVER, "please use
|
||||||
|
|
||||||
If "b_any" is set false then every capability listed in the
|
If "b_any" is set false then every capability listed in the
|
||||||
analysis portion of capabilities (i.e. not the basic filesystem)
|
analysis portion of capabilities (i.e. not the basic filesystem)
|
||||||
must be satisified. If no analysis capabilities are specified,
|
must be satisfied. If no analysis capabilities are specified,
|
||||||
that's a match.
|
that's a match.
|
||||||
|
|
||||||
If "b_any" is set true, then if any of the analysis capabilities
|
If "b_any" is set true, then if any of the analysis capabilities
|
||||||
|
@ -477,7 +477,7 @@ LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DEVICE_DRIVER, "please use
|
||||||
void cdio_destroy (CdIo_t *p_cdio);
|
void cdio_destroy (CdIo_t *p_cdio);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get a string decribing driver_id.
|
Get a string describing driver_id.
|
||||||
|
|
||||||
@param driver_id the driver you want the description for
|
@param driver_id the driver you want the description for
|
||||||
@return a string of driver description
|
@return a string of driver description
|
||||||
|
@ -852,7 +852,7 @@ LIBCDIO_DEPRECATED(static const driver_id_t CDIO_MAX_DEVICE_DRIVER, "please use
|
||||||
Set up CD-ROM for reading using the Microsoft Windows driver. The
|
Set up CD-ROM for reading using the Microsoft Windows driver. The
|
||||||
device_name is the some sort of device name.
|
device_name is the some sort of device name.
|
||||||
|
|
||||||
NULL is returned on error or there is no Microsof Windows driver.
|
NULL is returned on error or there is no Microsoft Windows driver.
|
||||||
*/
|
*/
|
||||||
CdIo_t * cdio_open_am_win32 (const char *psz_source,
|
CdIo_t * cdio_open_am_win32 (const char *psz_source,
|
||||||
const char *psz_access_mode);
|
const char *psz_access_mode);
|
||||||
|
@ -1016,11 +1016,11 @@ Return a list of all of the CD-ROM devices that the OS/2 driver
|
||||||
int i_drive_speed );
|
int i_drive_speed );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Get the value associatied with key.
|
Get the value associated with key.
|
||||||
|
|
||||||
@param p_cdio the CD object queried
|
@param p_cdio the CD object queried
|
||||||
@param key the key to retrieve
|
@param key the key to retrieve
|
||||||
@return the value associatd with "key" or NULL if p_cdio is NULL
|
@return the value associated with "key" or NULL if p_cdio is NULL
|
||||||
or "key" does not exist.
|
or "key" does not exist.
|
||||||
*/
|
*/
|
||||||
const char * cdio_get_arg (const CdIo_t *p_cdio, const char key[]);
|
const char * cdio_get_arg (const CdIo_t *p_cdio, const char key[]);
|
||||||
|
@ -1030,7 +1030,7 @@ Return a list of all of the CD-ROM devices that the OS/2 driver
|
||||||
|
|
||||||
@param p_cdio the CD object to set
|
@param p_cdio the CD object to set
|
||||||
@param key the key to set
|
@param key the key to set
|
||||||
@param value the value to assocaiate with key
|
@param value the value to associate with key
|
||||||
*/
|
*/
|
||||||
driver_return_code_t cdio_set_arg (CdIo_t *p_cdio, const char key[],
|
driver_return_code_t cdio_set_arg (CdIo_t *p_cdio, const char key[],
|
||||||
const char value[]);
|
const char value[]);
|
||||||
|
|
|
@ -200,7 +200,7 @@ struct vol_struct_desc_s
|
||||||
|
|
||||||
/** Standard Identifier (ECMA 167r3 2/9.1.2) */
|
/** Standard Identifier (ECMA 167r3 2/9.1.2) */
|
||||||
|
|
||||||
/* The below const definitions are to faciltate debugging of the
|
/* The below const definitions are to facilitate debugging of the
|
||||||
values #define'd below. */
|
values #define'd below. */
|
||||||
extern const char VSD_STD_ID_BEA01[sizeof("BEA01")-1];
|
extern const char VSD_STD_ID_BEA01[sizeof("BEA01")-1];
|
||||||
extern const char VSD_STD_ID_BOOT2[sizeof("BOOT2")-1];
|
extern const char VSD_STD_ID_BOOT2[sizeof("BOOT2")-1];
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
* filesystem library; applications include this.
|
* filesystem library; applications include this.
|
||||||
*
|
*
|
||||||
* See also the ISO-9660 specification. The freely available European
|
* See also the ISO-9660 specification. The freely available European
|
||||||
* equivalant standard is called ECMA-119.
|
* equivalent standard is called ECMA-119.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ typedef char dchar_t; /*! See section 7.4.1 */
|
||||||
program; things are done this way so that in a debugger one can to
|
program; things are done this way so that in a debugger one can to
|
||||||
refer to the enumeration value names such as in a debugger
|
refer to the enumeration value names such as in a debugger
|
||||||
expression and get something. With the more common a \#define
|
expression and get something. With the more common a \#define
|
||||||
mechanism, the name/value assocation is lost at run time.
|
mechanism, the name/value association is lost at run time.
|
||||||
*/
|
*/
|
||||||
extern enum iso_enum1_s {
|
extern enum iso_enum1_s {
|
||||||
ISO_PVD_SECTOR = 16, /**< Sector of Primary Volume Descriptor. */
|
ISO_PVD_SECTOR = 16, /**< Sector of Primary Volume Descriptor. */
|
||||||
|
@ -121,7 +121,7 @@ extern enum iso_vd_enum_s {
|
||||||
ISO_VD_BOOT_RECORD = 0, /**< CD is bootable */
|
ISO_VD_BOOT_RECORD = 0, /**< CD is bootable */
|
||||||
ISO_VD_PRIMARY = 1, /**< Is in any ISO-9660 */
|
ISO_VD_PRIMARY = 1, /**< Is in any ISO-9660 */
|
||||||
ISO_VD_SUPPLEMENTARY = 2, /**< Used by Joliet, for example */
|
ISO_VD_SUPPLEMENTARY = 2, /**< Used by Joliet, for example */
|
||||||
ISO_VD_PARITION = 3, /**< Indicates a partition of a CD */
|
ISO_VD_PARTITION = 3, /**< Indicates a partition of a CD */
|
||||||
ISO_VD_END = 255
|
ISO_VD_END = 255
|
||||||
} iso_vd_enums;
|
} iso_vd_enums;
|
||||||
|
|
||||||
|
@ -393,7 +393,7 @@ typedef struct iso9660_pvd_s iso9660_pvd_t;
|
||||||
/*!
|
/*!
|
||||||
\brief ISO-9660 Supplementary Volume Descriptor.
|
\brief ISO-9660 Supplementary Volume Descriptor.
|
||||||
|
|
||||||
This is used for Joliet Extentions and is almost the same as the
|
This is used for Joliet Extensions and is almost the same as the
|
||||||
the primary descriptor but two unused fields, "unused1" and "unused3
|
the primary descriptor but two unused fields, "unused1" and "unused3
|
||||||
become "flags and "escape_sequences" respectively.
|
become "flags and "escape_sequences" respectively.
|
||||||
*/
|
*/
|
||||||
|
@ -437,7 +437,7 @@ struct iso9660_svd_s {
|
||||||
achar_t publisher_id[ISO_MAX_PUBLISHER_ID]; /**<
|
achar_t publisher_id[ISO_MAX_PUBLISHER_ID]; /**<
|
||||||
Publisher of volume.
|
Publisher of volume.
|
||||||
If the first char-
|
If the first char-
|
||||||
aracter is '_' 0x5F,
|
character is '_' 0x5F,
|
||||||
the remaining bytes
|
the remaining bytes
|
||||||
specify a file
|
specify a file
|
||||||
containing the user.
|
containing the user.
|
||||||
|
@ -810,7 +810,7 @@ typedef struct _iso9660_s iso9660_t;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Take psz_path and a version number and turn that into a ISO-9660
|
Take psz_path and a version number and turn that into a ISO-9660
|
||||||
pathname. (That's just the pathname followd by ";" and the version
|
pathname. (That's just the pathname followed by ";" and the version
|
||||||
number. For example, mydir/file.ext -> MYDIR/FILE.EXT;1 for version
|
number. For example, mydir/file.ext -> MYDIR/FILE.EXT;1 for version
|
||||||
1. The resulting ISO-9660 pathname is returned.
|
1. The resulting ISO-9660 pathname is returned.
|
||||||
*/
|
*/
|
||||||
|
@ -1115,7 +1115,7 @@ lsn_t iso9660_get_dir_extent(const iso9660_dir_t *p_idr);
|
||||||
void iso9660_set_evd (void *pd);
|
void iso9660_set_evd (void *pd);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Return true if ISO 9660 image has extended attrributes (XA).
|
Return true if ISO 9660 image has extended attributes (XA).
|
||||||
*/
|
*/
|
||||||
bool iso9660_ifs_is_xa (const iso9660_t * p_iso);
|
bool iso9660_ifs_is_xa (const iso9660_t * p_iso);
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ typedef struct iso_rock_px_s {
|
||||||
/*! POSIX device number, PN. A PN is mandatory if the file type
|
/*! POSIX device number, PN. A PN is mandatory if the file type
|
||||||
recorded in the "PX" File Mode field for a Directory Record
|
recorded in the "PX" File Mode field for a Directory Record
|
||||||
indicates a character or block device (ISO_ROCK_ISCHR |
|
indicates a character or block device (ISO_ROCK_ISCHR |
|
||||||
ISO_ROCK_ISBLK). This entry is ignored for other (non-Direcotry)
|
ISO_ROCK_ISBLK). This entry is ignored for other (non-Directory)
|
||||||
file types. No more than one "PN" is recorded in the System Use Area
|
file types. No more than one "PN" is recorded in the System Use Area
|
||||||
of a Directory Record.
|
of a Directory Record.
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ typedef enum {
|
||||||
/*! Time stamp(s) for a file. See Rock Ridge Section 4.1.6 */
|
/*! Time stamp(s) for a file. See Rock Ridge Section 4.1.6 */
|
||||||
typedef struct iso_rock_tf_s {
|
typedef struct iso_rock_tf_s {
|
||||||
uint8_t flags; /**< See ISO_ROCK_TF_* bits above. */
|
uint8_t flags; /**< See ISO_ROCK_TF_* bits above. */
|
||||||
uint8_t time_bytes[EMPTY_ARRAY_SIZE]; /**< A homogenious array of
|
uint8_t time_bytes[EMPTY_ARRAY_SIZE]; /**< A homogeneous array of
|
||||||
iso9660_ltime_t or
|
iso9660_ltime_t or
|
||||||
iso9660_dtime_t entries
|
iso9660_dtime_t entries
|
||||||
depending on flags &
|
depending on flags &
|
||||||
|
@ -269,7 +269,7 @@ typedef struct iso_extension_record_s {
|
||||||
|
|
||||||
typedef struct iso_rock_time_s {
|
typedef struct iso_rock_time_s {
|
||||||
bool b_used; /**< If true, field has been set and is valid.
|
bool b_used; /**< If true, field has been set and is valid.
|
||||||
Otherwise remaning fields are meaningless. */
|
Otherwise remaining fields are meaningless. */
|
||||||
bool b_longdate; /**< If true date format is a iso9660_ltime_t.
|
bool b_longdate; /**< If true date format is a iso9660_ltime_t.
|
||||||
Otherwise date is iso9660_dtime_t */
|
Otherwise date is iso9660_dtime_t */
|
||||||
union
|
union
|
||||||
|
@ -361,7 +361,7 @@ int get_rock_ridge_filename(iso9660_dir_t * de, /*out*/ char * retname,
|
||||||
*/
|
*/
|
||||||
const char *iso9660_get_rock_attr_str(posix_mode_t st_mode);
|
const char *iso9660_get_rock_attr_str(posix_mode_t st_mode);
|
||||||
|
|
||||||
/** These variables are not used, but are defined to facilatate debugging
|
/** These variables are not used, but are defined to facilitate debugging
|
||||||
by letting us use enumerations values (which also correspond to
|
by letting us use enumerations values (which also correspond to
|
||||||
\#define's inside a debugged program.
|
\#define's inside a debugged program.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -83,7 +83,7 @@ extern "C" {
|
||||||
#define CDIO_CD_MIN_TRACK_NO 1 /**< Smallest CD track number */
|
#define CDIO_CD_MIN_TRACK_NO 1 /**< Smallest CD track number */
|
||||||
|
|
||||||
/*! track modes (Table 350)
|
/*! track modes (Table 350)
|
||||||
reference: MMC-3 draft revsion - 10g
|
reference: MMC-3 draft revision - 10g
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
AUDIO, /**< 2352 byte block length */
|
AUDIO, /**< 2352 byte block length */
|
||||||
|
|
|
@ -92,7 +92,7 @@ extern "C" {
|
||||||
Advances p_udf_direct to the the next directory entry in the
|
Advances p_udf_direct to the the next directory entry in the
|
||||||
pointed to by p_udf_dir. It also returns this as the value. NULL
|
pointed to by p_udf_dir. It also returns this as the value. NULL
|
||||||
is returned on reaching the end-of-file or if an error. Also
|
is returned on reaching the end-of-file or if an error. Also
|
||||||
p_udf_dirent is free'd. If the end of is not reached the caller
|
p_udf_dirent is freed. If the end of is not reached the caller
|
||||||
must call udf_dirent_free() with p_udf_dirent when done with it to
|
must call udf_dirent_free() with p_udf_dirent when done with it to
|
||||||
release resources.
|
release resources.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
/** \brief Opaque characterset converter
|
/** \brief Opaque characterset converter
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct cdio_charset_coverter_s cdio_charset_coverter_t;
|
typedef struct cdio_charset_converter_s cdio_charset_converter_t;
|
||||||
|
|
||||||
/** \brief Create a charset converter
|
/** \brief Create a charset converter
|
||||||
* \param src_charset Source charset
|
* \param src_charset Source charset
|
||||||
|
@ -34,7 +34,7 @@ typedef struct cdio_charset_coverter_s cdio_charset_coverter_t;
|
||||||
* \returns A newly allocated charset converter
|
* \returns A newly allocated charset converter
|
||||||
*/
|
*/
|
||||||
|
|
||||||
cdio_charset_coverter_t *
|
cdio_charset_converter_t *
|
||||||
cdio_charset_converter_create(const char * src_charset,
|
cdio_charset_converter_create(const char * src_charset,
|
||||||
const char * dst_charset);
|
const char * dst_charset);
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ cdio_charset_converter_create(const char * src_charset,
|
||||||
* \param cnv A characterset converter
|
* \param cnv A characterset converter
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void cdio_charset_converter_destroy(cdio_charset_coverter_t*cnv);
|
void cdio_charset_converter_destroy(cdio_charset_converter_t*cnv);
|
||||||
|
|
||||||
/** \brief Convert a string from one character set to another
|
/** \brief Convert a string from one character set to another
|
||||||
* \param cnv A charset converter
|
* \param cnv A charset converter
|
||||||
|
@ -50,13 +50,13 @@ void cdio_charset_converter_destroy(cdio_charset_coverter_t*cnv);
|
||||||
* \param src_len Length of source string
|
* \param src_len Length of source string
|
||||||
* \param dst Returns destination string
|
* \param dst Returns destination string
|
||||||
* \param dst_len If non NULL, returns the length of the destination string
|
* \param dst_len If non NULL, returns the length of the destination string
|
||||||
* \returns true if conversion was sucessful, false else.
|
* \returns true if conversion was successful, false else.
|
||||||
*
|
*
|
||||||
* The destination string must be freed by the caller with free().
|
* The destination string must be freed by the caller with free().
|
||||||
* If you pass -1 for src_len, strlen() will be used.
|
* If you pass -1 for src_len, strlen() will be used.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool cdio_charset_convert(cdio_charset_coverter_t*cnv,
|
bool cdio_charset_convert(cdio_charset_converter_t*cnv,
|
||||||
char * src, int src_len,
|
char * src, int src_len,
|
||||||
char ** dst, int * dst_len);
|
char ** dst, int * dst_len);
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ bool cdio_charset_convert(cdio_charset_coverter_t*cnv,
|
||||||
* \param dst Returns destination string
|
* \param dst Returns destination string
|
||||||
* \param dst_len If non NULL, returns the length of the destination string
|
* \param dst_len If non NULL, returns the length of the destination string
|
||||||
* \param dst_charset The characterset to convert to
|
* \param dst_charset The characterset to convert to
|
||||||
* \returns true if conversion was sucessful, false else.
|
* \returns true if conversion was successful, false else.
|
||||||
*
|
*
|
||||||
* This is a convenience function, which creates a charset converter,
|
* This is a convenience function, which creates a charset converter,
|
||||||
* converts one string and destroys the charset converter.
|
* converts one string and destroys the charset converter.
|
||||||
|
@ -80,7 +80,7 @@ bool cdio_charset_from_utf8(cdio_utf8_t * src, char ** dst,
|
||||||
* \param src_len Length of the source string
|
* \param src_len Length of the source string
|
||||||
* \param dst Returns destination string (0 terminated)
|
* \param dst Returns destination string (0 terminated)
|
||||||
* \param src_charset The characterset to convert from
|
* \param src_charset The characterset to convert from
|
||||||
* \returns true if conversion was sucessful, false else.
|
* \returns true if conversion was successful, false else.
|
||||||
*
|
*
|
||||||
* This is a convenience function, which creates a charset converter,
|
* This is a convenience function, which creates a charset converter,
|
||||||
* converts one string and destroys the charset converter. If you pass -1
|
* converts one string and destroys the charset converter. If you pass -1
|
||||||
|
@ -94,7 +94,7 @@ bool cdio_charset_to_utf8(const char *src, size_t src_len, cdio_utf8_t **dst,
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/** \brief Convert an UTF8 string to UTF-16 (allocate returned string)
|
/** \brief Convert an UTF8 string to UTF-16 (allocate returned string)
|
||||||
* \param str Source string
|
* \param str Source string
|
||||||
* \returns NULL if the conversion was unsuccesful. Caller must free the
|
* \returns NULL if the conversion was unsuccessful. Caller must free the
|
||||||
* returned string.
|
* returned string.
|
||||||
* This is a convenience function available on Windows platforms only.
|
* This is a convenience function available on Windows platforms only.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -145,7 +145,7 @@ const char *
|
||||||
iso9660_get_xa_attr_str (uint16_t xa_attr);
|
iso9660_get_xa_attr_str (uint16_t xa_attr);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Allocates and initalizes a new iso9600_xa_t variable and returns
|
Allocates and initializes a new iso9600_xa_t variable and returns
|
||||||
it. The caller should free the returned result.
|
it. The caller should free the returned result.
|
||||||
|
|
||||||
@see iso9660_xa
|
@see iso9660_xa
|
||||||
|
|
|
@ -233,7 +233,7 @@ _stdio_read(void *user_data, void *buf, size_t count)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Deallocate resources assocaited with obj. After this obj is unusable.
|
Deallocate resources associated with obj. After this obj is unusable.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
cdio_stdio_destroy(CdioDataSource_t *p_obj)
|
cdio_stdio_destroy(CdioDataSource_t *p_obj)
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
CdioDataSource_t * cdio_stdio_new(const char psz_path[]);
|
CdioDataSource_t * cdio_stdio_new(const char psz_path[]);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Deallocate resources assocaited with obj. After this obj is unusable.
|
Deallocate resources associated with obj. After this obj is unusable.
|
||||||
*/
|
*/
|
||||||
void cdio_stdio_destroy(CdioDataSource_t *p_obj);
|
void cdio_stdio_destroy(CdioDataSource_t *p_obj);
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@ extern "C" {
|
||||||
const char * (*get_arg) (void *p_env, const char key[]);
|
const char * (*get_arg) (void *p_env, const char key[]);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Get the block size for subsequest read requests, via a SCSI MMC
|
Get the block size for subsequent read requests, via a SCSI MMC
|
||||||
MODE_SENSE 6 command.
|
MODE_SENSE 6 command.
|
||||||
*/
|
*/
|
||||||
int (*get_blocksize) ( void *p_env );
|
int (*get_blocksize) ( void *p_env );
|
||||||
|
@ -256,7 +256,7 @@ extern "C" {
|
||||||
int (*get_track_channels) ( const void *p_env, track_t i_track );
|
int (*get_track_channels) ( const void *p_env, track_t i_track );
|
||||||
|
|
||||||
/*! Return 0 if track is copy protected, 1 if not, or -1 for error
|
/*! Return 0 if track is copy protected, 1 if not, or -1 for error
|
||||||
or -2 if not implimented (yet). Is this meaningful if not an
|
or -2 if not implemented (yet). Is this meaningful if not an
|
||||||
audio track?
|
audio track?
|
||||||
*/
|
*/
|
||||||
track_flag_t (*get_track_copy_permit) ( void *p_env, track_t i_track );
|
track_flag_t (*get_track_copy_permit) ( void *p_env, track_t i_track );
|
||||||
|
@ -311,7 +311,7 @@ extern "C" {
|
||||||
bool (*get_track_msf) ( void *p_env, track_t i_track, msf_t *p_msf );
|
bool (*get_track_msf) ( void *p_env, track_t i_track, msf_t *p_msf );
|
||||||
|
|
||||||
/*! Return 1 if track has pre-emphasis, 0 if not, or -1 for error
|
/*! Return 1 if track has pre-emphasis, 0 if not, or -1 for error
|
||||||
or -2 if not implimented (yet). Is this meaningful if not an
|
or -2 if not implemented (yet). Is this meaningful if not an
|
||||||
audio track?
|
audio track?
|
||||||
*/
|
*/
|
||||||
track_flag_t (*get_track_preemphasis)
|
track_flag_t (*get_track_preemphasis)
|
||||||
|
@ -475,7 +475,7 @@ extern "C" {
|
||||||
on a particular host. */
|
on a particular host. */
|
||||||
extern CdIo_driver_t CdIo_driver[];
|
extern CdIo_driver_t CdIo_driver[];
|
||||||
|
|
||||||
/* The last valid entry of Cdio_driver. -1 means uninitialzed. -2
|
/* The last valid entry of Cdio_driver. -1 means uninitialized. -2
|
||||||
means some sort of error.
|
means some sort of error.
|
||||||
*/
|
*/
|
||||||
extern int CdIo_last_driver;
|
extern int CdIo_last_driver;
|
||||||
|
|
|
@ -164,7 +164,7 @@ cdio_get_num_tracks (const CdIo_t *p_cdio)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! Find the track which contans lsn.
|
/*! Find the track which contains lsn.
|
||||||
CDIO_INVALID_TRACK is returned if the lsn outside of the CD or
|
CDIO_INVALID_TRACK is returned if the lsn outside of the CD or
|
||||||
if there was some error.
|
if there was some error.
|
||||||
|
|
||||||
|
|
|
@ -116,16 +116,16 @@ FILE* fopen_utf8(const char* filename, const char* mode)
|
||||||
#ifdef HAVE_JOLIET
|
#ifdef HAVE_JOLIET
|
||||||
#ifdef HAVE_ICONV
|
#ifdef HAVE_ICONV
|
||||||
#include <iconv.h>
|
#include <iconv.h>
|
||||||
struct cdio_charset_coverter_s
|
struct cdio_charset_converter_s
|
||||||
{
|
{
|
||||||
iconv_t ic;
|
iconv_t ic;
|
||||||
};
|
};
|
||||||
|
|
||||||
cdio_charset_coverter_t *
|
cdio_charset_converter_t *
|
||||||
cdio_charset_converter_create(const char * src_charset,
|
cdio_charset_converter_create(const char * src_charset,
|
||||||
const char * dst_charset)
|
const char * dst_charset)
|
||||||
{
|
{
|
||||||
cdio_charset_coverter_t * ret;
|
cdio_charset_converter_t * ret;
|
||||||
ret = calloc(1, sizeof(*ret));
|
ret = calloc(1, sizeof(*ret));
|
||||||
ret->ic = iconv_open(dst_charset, src_charset);
|
ret->ic = iconv_open(dst_charset, src_charset);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -158,7 +158,7 @@ static void bgav_hexdump(uint8_t * data, int len, int linebreak)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void cdio_charset_converter_destroy(cdio_charset_coverter_t*cnv)
|
void cdio_charset_converter_destroy(cdio_charset_converter_t*cnv)
|
||||||
{
|
{
|
||||||
iconv_close(cnv->ic);
|
iconv_close(cnv->ic);
|
||||||
free(cnv);
|
free(cnv);
|
||||||
|
@ -246,7 +246,7 @@ do_convert(iconv_t cd, const char * src, int src_len,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cdio_charset_convert(cdio_charset_coverter_t*cnv,
|
bool cdio_charset_convert(cdio_charset_converter_t*cnv,
|
||||||
char * src, int src_len,
|
char * src, int src_len,
|
||||||
char ** dst, int * dst_len)
|
char ** dst, int * dst_len)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1103,7 +1103,7 @@ iso9660_pathname_valid_p (const char pathname[])
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Take pathname and a version number and turn that into a ISO-9660
|
Take pathname and a version number and turn that into a ISO-9660
|
||||||
pathname. (That's just the pathname followd by ";" and the version
|
pathname. (That's just the pathname followed by ";" and the version
|
||||||
number. For example, mydir/file.ext -> mydir/file.ext;1 for version
|
number. For example, mydir/file.ext -> mydir/file.ext;1 for version
|
||||||
1. The resulting ISO-9660 pathname is returned.
|
1. The resulting ISO-9660 pathname is returned.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1513,7 +1513,7 @@ iso9660_ifs_find_lsn_with_path(iso9660_t *p_iso, lsn_t i_lsn,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
Return true if ISO 9660 image has extended attrributes (XA).
|
Return true if ISO 9660 image has extended attributes (XA).
|
||||||
*/
|
*/
|
||||||
bool
|
bool
|
||||||
iso9660_ifs_is_xa (const iso9660_t * p_iso)
|
iso9660_ifs_is_xa (const iso9660_t * p_iso)
|
||||||
|
|
|
@ -120,7 +120,7 @@ realloc_symlink(/*in/out*/ iso9660_stat_t *p_stat, uint8_t i_grow)
|
||||||
|
|
||||||
/* Copy a long or short time from the iso_rock_tf_t into
|
/* Copy a long or short time from the iso_rock_tf_t into
|
||||||
the specified field of a iso_rock_statbuf_t.
|
the specified field of a iso_rock_statbuf_t.
|
||||||
non-paramater variables are p_stat, rr, and cnt.
|
non-parameter variables are p_stat, rr, and cnt.
|
||||||
*/
|
*/
|
||||||
#define add_time(FLAG, TIME_FIELD) \
|
#define add_time(FLAG, TIME_FIELD) \
|
||||||
if (rr->u.TF.flags & FLAG) { \
|
if (rr->u.TF.flags & FLAG) { \
|
||||||
|
|
|
@ -81,7 +81,7 @@ setst (mode_t bits, char *chars)
|
||||||
'l' for symbolic links
|
'l' for symbolic links
|
||||||
's' for sockets
|
's' for sockets
|
||||||
'p' for fifos
|
'p' for fifos
|
||||||
'C' for contigous data files
|
'C' for contiguous data files
|
||||||
'-' for regular files
|
'-' for regular files
|
||||||
'?' for any other file type. */
|
'?' for any other file type. */
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ const char VSD_STD_ID_TEA01[] = {'T', 'E', 'A', '0', '1'};
|
||||||
/*
|
/*
|
||||||
* The UDF specs are pretty clear on how each data structure is made
|
* The UDF specs are pretty clear on how each data structure is made
|
||||||
* up, but not very clear on how they relate to each other. Here is
|
* up, but not very clear on how they relate to each other. Here is
|
||||||
* the skinny... This demostrates a filesystem with one file in the
|
* the skinny... This demonstrates a filesystem with one file in the
|
||||||
* root directory. Subdirectories are treated just as normal files,
|
* root directory. Subdirectories are treated just as normal files,
|
||||||
* but they have File Id Descriptors of their children as their file
|
* but they have File Id Descriptors of their children as their file
|
||||||
* data. As for the Anchor Volume Descriptor Pointer, it can exist in
|
* data. As for the Anchor Volume Descriptor Pointer, it can exist in
|
||||||
|
@ -220,7 +220,7 @@ udf_ff_traverse(udf_dirent_t *p_udf_dirent, char *psz_token)
|
||||||
udf_dirent_t * p_udf_dirent3 =
|
udf_dirent_t * p_udf_dirent3 =
|
||||||
udf_ff_traverse(p_udf_dirent2, next_tok);
|
udf_ff_traverse(p_udf_dirent2, next_tok);
|
||||||
|
|
||||||
/* if p_udf_dirent3 is null p_udf_dirent2 is free'd. */
|
/* if p_udf_dirent3 is null p_udf_dirent2 is freed. */
|
||||||
return p_udf_dirent3;
|
return p_udf_dirent3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,7 +228,7 @@ typedef unsigned __int64 uintmax_t;
|
||||||
|
|
||||||
/* 7.18.4.1 Macros for minimum-width integer constants
|
/* 7.18.4.1 Macros for minimum-width integer constants
|
||||||
|
|
||||||
Accoding to Douglas Gwyn <gwyn@arl.mil>:
|
According to Douglas Gwyn <gwyn@arl.mil>:
|
||||||
"This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
|
"This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
|
||||||
9899:1999 as initially published, the expansion was required
|
9899:1999 as initially published, the expansion was required
|
||||||
to be an integer constant of precisely matching type, which
|
to be an integer constant of precisely matching type, which
|
||||||
|
|
|
@ -314,7 +314,7 @@ BOOL DownloadFile(const char* url, const char* file, HWND hProgressDialog)
|
||||||
HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwStatus, &dwSize, NULL);
|
HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwStatus, &dwSize, NULL);
|
||||||
if (dwStatus != 200) {
|
if (dwStatus != 200) {
|
||||||
error_code = ERROR_INTERNET_ITEM_NOT_FOUND;
|
error_code = ERROR_INTERNET_ITEM_NOT_FOUND;
|
||||||
uprintf("Unable to acess file: Server status %d\n", dwStatus);
|
uprintf("Unable to access file: Server status %d\n", dwStatus);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
dwSize = sizeof(dwTotalSize);
|
dwSize = sizeof(dwTotalSize);
|
||||||
|
|
12
src/parser.c
12
src/parser.c
|
@ -90,7 +90,7 @@ static wchar_t* get_token_data_line(const wchar_t* wtoken, wchar_t* wline)
|
||||||
return (wline[r] == 0)?NULL:&wline[r];
|
return (wline[r] == 0)?NULL:&wline[r];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse a file (ANSI or UTF-8 or UTF-16) and return the data for the first occurence of 'token'
|
// Parse a file (ANSI or UTF-8 or UTF-16) and return the data for the first occurrence of 'token'
|
||||||
// The returned string is UTF-8 and MUST be freed by the caller
|
// The returned string is UTF-8 and MUST be freed by the caller
|
||||||
char* get_token_data_file(const char* token, const char* filename)
|
char* get_token_data_file(const char* token, const char* filename)
|
||||||
{
|
{
|
||||||
|
@ -135,7 +135,7 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse a buffer (ANSI or UTF-8) and return the data for the 'n'th occurence of 'token'
|
// Parse a buffer (ANSI or UTF-8) and return the data for the 'n'th occurrence of 'token'
|
||||||
// The returned string is UTF-8 and MUST be freed by the caller
|
// The returned string is UTF-8 and MUST be freed by the caller
|
||||||
char* get_token_data_buffer(const char* token, unsigned int n, const char* buffer, size_t buffer_size)
|
char* get_token_data_buffer(const char* token, unsigned int n, const char* buffer, size_t buffer_size)
|
||||||
{
|
{
|
||||||
|
@ -345,7 +345,7 @@ out:
|
||||||
if (fd_in != NULL) fclose(fd_in);
|
if (fd_in != NULL) fclose(fd_in);
|
||||||
if (fd_out != NULL) fclose(fd_out);
|
if (fd_out != NULL) fclose(fd_out);
|
||||||
|
|
||||||
// If an insertion occured, delete existing file and use the new one
|
// If an insertion occurred, delete existing file and use the new one
|
||||||
if (ret != NULL) {
|
if (ret != NULL) {
|
||||||
// We're in Windows text mode => Remove CRs if requested
|
// We're in Windows text mode => Remove CRs if requested
|
||||||
fd_in = _wfopen(wtmpname, L"rb");
|
fd_in = _wfopen(wtmpname, L"rb");
|
||||||
|
@ -375,10 +375,10 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search for a specific 'src' substring data for all occurences of 'token', and replace
|
// Search for a specific 'src' substring data for all occurrences of 'token', and replace
|
||||||
// it with 'rep'. File can be ANSI or UNICODE and is overwritten. Parameters are UTF-8.
|
// it with 'rep'. File can be ANSI or UNICODE and is overwritten. Parameters are UTF-8.
|
||||||
// The parsed line is of the form: [ ]token[ ]data
|
// The parsed line is of the form: [ ]token[ ]data
|
||||||
// Returns a pointer to rep if replacement occured, NULL otherwise
|
// Returns a pointer to rep if replacement occurred, NULL otherwise
|
||||||
char* replace_in_token_data(const char* filename, const char* token, const char* src, const char* rep, BOOL dos2unix)
|
char* replace_in_token_data(const char* filename, const char* token, const char* src, const char* rep, BOOL dos2unix)
|
||||||
{
|
{
|
||||||
const wchar_t* outmode[] = { L"w", L"w, ccs=UTF-8", L"w, ccs=UTF-16LE" };
|
const wchar_t* outmode[] = { L"w", L"w, ccs=UTF-8", L"w, ccs=UTF-16LE" };
|
||||||
|
@ -491,7 +491,7 @@ out:
|
||||||
if (fd_in != NULL) fclose(fd_in);
|
if (fd_in != NULL) fclose(fd_in);
|
||||||
if (fd_out != NULL) fclose(fd_out);
|
if (fd_out != NULL) fclose(fd_out);
|
||||||
|
|
||||||
// If a replacement occured, delete existing file and use the new one
|
// If a replacement occurred, delete existing file and use the new one
|
||||||
if (ret != NULL) {
|
if (ret != NULL) {
|
||||||
// We're in Windows text mode => Remove CRs if requested
|
// We're in Windows text mode => Remove CRs if requested
|
||||||
fd_in = _wfopen(wtmpname, L"rb");
|
fd_in = _wfopen(wtmpname, L"rb");
|
||||||
|
|
|
@ -130,7 +130,7 @@ static int64_t last_iso_blocking_status;
|
||||||
/*
|
/*
|
||||||
* The following is used to allocate slots within the progress bar
|
* The following is used to allocate slots within the progress bar
|
||||||
* 0 means unused (no operation or no progress allocated to it)
|
* 0 means unused (no operation or no progress allocated to it)
|
||||||
* +n means allocate exactly n bars (n percents of the progress bar)
|
* +n means allocate exactly n bars (n percent of the progress bar)
|
||||||
* -n means allocate a weighted slot of n from all remaining
|
* -n means allocate a weighted slot of n from all remaining
|
||||||
* bars. Eg if 80 slots remain and the sum of all negative entries
|
* bars. Eg if 80 slots remain and the sum of all negative entries
|
||||||
* is 10, -4 will allocate 4/10*80 = 32 bars (32%) for OP progress
|
* is 10, -4 will allocate 4/10*80 = 32 bars (32%) for OP progress
|
||||||
|
@ -207,7 +207,7 @@ static BOOL DefineClusterSizes(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// FAT 32
|
// FAT 32
|
||||||
// > 32GB FAT32 is not supported by MS and FormatEx but is achieved using fat32fomat
|
// > 32GB FAT32 is not supported by MS and FormatEx but is achieved using fat32format
|
||||||
// See: http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm
|
// See: http://www.ridgecrop.demon.co.uk/index.htm?fat32format.htm
|
||||||
// < 32 MB FAT32 is not allowed by FormatEx, so we don't bother
|
// < 32 MB FAT32 is not allowed by FormatEx, so we don't bother
|
||||||
|
|
||||||
|
@ -984,7 +984,7 @@ BOOL CALLBACK ISOProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
UpdateWindow(hDlg);
|
UpdateWindow(hDlg);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case UM_ISO_EXIT:
|
case UM_ISO_EXIT:
|
||||||
// Just hide and recentrer the dialog
|
// Just hide and recenter the dialog
|
||||||
ShowWindow(hDlg, SW_HIDE);
|
ShowWindow(hDlg, SW_HIDE);
|
||||||
iso_op_in_progress = FALSE;
|
iso_op_in_progress = FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -1804,7 +1804,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
uprintf("\r\n");
|
uprintf("\r\n");
|
||||||
GetUSBDevices(DeviceNum);
|
GetUSBDevices(DeviceNum);
|
||||||
if (!IS_ERROR(FormatStatus)) {
|
if (!IS_ERROR(FormatStatus)) {
|
||||||
// This is the only way to achieve instantenous progress transition to 100%
|
// This is the only way to achieve instantaneous progress transition to 100%
|
||||||
SendMessage(hProgress, PBM_SETRANGE, 0, ((MAX_PROGRESS+1)<<16) & 0xFFFF0000);
|
SendMessage(hProgress, PBM_SETRANGE, 0, ((MAX_PROGRESS+1)<<16) & 0xFFFF0000);
|
||||||
SendMessage(hProgress, PBM_SETPOS, (MAX_PROGRESS+1), 0);
|
SendMessage(hProgress, PBM_SETPOS, (MAX_PROGRESS+1), 0);
|
||||||
SendMessage(hProgress, PBM_SETRANGE, 0, (MAX_PROGRESS<<16) & 0xFFFF0000);
|
SendMessage(hProgress, PBM_SETRANGE, 0, (MAX_PROGRESS<<16) & 0xFFFF0000);
|
||||||
|
|
|
@ -63,7 +63,7 @@ BEGIN
|
||||||
COMBOBOX IDC_DISK_ID,119,246,73,30,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_DISK_ID,119,246,73,30,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP
|
||||||
CONTROL "Add fixes for old BIOSes (extra partition, align, etc.)",IDC_EXTRA_PARTITION,
|
CONTROL "Add fixes for old BIOSes (extra partition, align, etc.)",IDC_EXTRA_PARTITION,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,235,184,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,235,184,10
|
||||||
CONTROL "List fixed (non-flash) or unpartitionned USB disks",IDC_ENABLE_FIXED_DISKS,
|
CONTROL "List fixed (non-flash) or unpartitioned USB disks",IDC_ENABLE_FIXED_DISKS,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,222,185,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,222,185,10
|
||||||
PUSHBUTTON "Log",IDC_LOG,62,291,18,14
|
PUSHBUTTON "Log",IDC_LOG,62,291,18,14
|
||||||
END
|
END
|
||||||
|
|
|
@ -574,7 +574,7 @@ INT_PTR CALLBACK NotificationCallback(HWND hDlg, UINT message, WPARAM wParam, LP
|
||||||
}
|
}
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
case WM_CTLCOLORSTATIC:
|
case WM_CTLCOLORSTATIC:
|
||||||
// Change the background colour for static text and icon
|
// Change the background color for static text and icon
|
||||||
SetBkMode((HDC)wParam, TRANSPARENT);
|
SetBkMode((HDC)wParam, TRANSPARENT);
|
||||||
if ((HWND)lParam == GetDlgItem(hDlg, IDC_NOTIFICATION_LINE)) {
|
if ((HWND)lParam == GetDlgItem(hDlg, IDC_NOTIFICATION_LINE)) {
|
||||||
return (INT_PTR)separator_brush;
|
return (INT_PTR)separator_brush;
|
||||||
|
|
|
@ -94,7 +94,7 @@ SysType msdos_systypes[] = {
|
||||||
{ 0x88, N_("Linux Plaintext") },
|
{ 0x88, N_("Linux Plaintext") },
|
||||||
{ 0x8e, N_("Linux LVM") },
|
{ 0x8e, N_("Linux LVM") },
|
||||||
{ 0x93, N_("Amoeba") },
|
{ 0x93, N_("Amoeba") },
|
||||||
/*This guys created a seperate partition for badblocks?! */
|
/*This guys created a separate partition for badblocks?! */
|
||||||
{ 0x94, N_("Amoeba BBT") },
|
{ 0x94, N_("Amoeba BBT") },
|
||||||
{ 0x9f, N_("BSD/OS") },
|
{ 0x9f, N_("BSD/OS") },
|
||||||
{ 0xa0, N_("Thinkpad Hibernation") },
|
{ 0xa0, N_("Thinkpad Hibernation") },
|
||||||
|
|
|
@ -133,7 +133,7 @@ BOOL InstallSyslinux(DWORD drive_index, char drive_letter)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
uprintf("Succesfully wrote '%s'\n", ldlinux_sys);
|
uprintf("Successfully wrote '%s'\n", ldlinux_sys);
|
||||||
if (dt != DT_ISO)
|
if (dt != DT_ISO)
|
||||||
UpdateProgress(OP_DOS, -1.0f);
|
UpdateProgress(OP_DOS, -1.0f);
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ BOOL InstallSyslinux(DWORD drive_index, char drive_letter)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
uprintf("Succesfully wrote Syslinux boot record\n");
|
uprintf("Successfully wrote Syslinux boot record\n");
|
||||||
|
|
||||||
if (dt == DT_SYSLINUX_V5) {
|
if (dt == DT_SYSLINUX_V5) {
|
||||||
fd = fopen(ldlinux_c32, "rb");
|
fd = fopen(ldlinux_c32, "rb");
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
/*
|
/*
|
||||||
* setadv.c
|
* setadv.c
|
||||||
*
|
*
|
||||||
* (Over)write a data item in the auxilliary data vector. To
|
* (Over)write a data item in the auxiliary data vector. To
|
||||||
* delete an item, set its length to zero.
|
* delete an item, set its length to zero.
|
||||||
*
|
*
|
||||||
* Return 0 on success, -1 on error, and set errno.
|
* Return 0 on success, -1 on error, and set errno.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue