5 "@(#)mkisofs.c 1.289 17/01/05 joerg";
38#include <schily/walk.h>
39#include <schily/find.h>
63#include <schily/resource.h>
66#include "../cdrecord/version.h"
135#if defined(__MINGW32__) || defined(_MSC_VER)
206char *
const *find_av =
NULL;
208char *
const *find_pav =
NULL;
214LOCAL int maxdepth = -1;
215LOCAL int mindepth = -1;
216EXPORT struct WALK walkstate;
272char *hfs_boot_file = 0;
281int hfs_last = MAG_LAST;
284char *hfs_volume_id =
NULL;
286char *hfs_icharset =
NULL;
287char *hfs_ocharset =
NULL;
289char *hfs_bless =
NULL;
290char *hfs_parms =
NULL;
293char *prep_boot_image[4];
294int use_prep_boot = 0;
295int use_chrp_boot = 0;
302int rationalize_udf = 0;
328#ifdef DUPLICATES_ONCE
329int duplicates_once = 0;
355 {
"HFS_TYPE", &deftype},
356 {
"HFS_CREATOR", &defcreator},
363 int *pac,
char *
const **pav));
366LOCAL int getH __PR((
const char *
arg,
void *valp,
int *pac,
char *
const **pav,
const char *opt));
367LOCAL int getL __PR((
const char *
arg,
void *valp,
int *pac,
char *
const **pav,
const char *opt));
368LOCAL int getP __PR((
const char *
arg,
void *valp,
int *pac,
char *
const **pav,
const char *opt));
369LOCAL int dolegacy __PR((
const char *
arg,
void *valp,
int *pac,
char *
const **pav,
const char *opt));
381LOCAL int get_prep_boot
__PR((
char *opt_arg));
382LOCAL int get_chrp_boot
__PR((
char *opt_arg));
384LOCAL int get_bsize
__PR((
char *opt_arg));
417 _(
"Required Eltorito boot image pathname missing\n"));
466 if (*
ptr || val < 0 || val >= 0x10000) {
484 if (*
ptr || val < 0 || val >= 0x10000) {
486 _(
"Boot image load size invalid.\n"));
502 if (
streql(opt_arg,
"x86")) {
504 }
else if (
streql(opt_arg,
"PPC")) {
506 }
else if (
streql(opt_arg,
"Mac")) {
508 }
else if (
streql(opt_arg,
"efi")) {
512 if (*
ptr || val < 0 || val >= 0x100) {
547get_prep_boot(opt_arg)
551 if (use_prep_boot > 4 - use_chrp_boot) {
553 _(
"Maximum of 4 PRep+CHRP partition entries are allowed\n"));
556 prep_boot_image[use_prep_boot - 1] = opt_arg;
557 if (prep_boot_image[use_prep_boot - 1] ==
NULL) {
559 _(
"Required PReP boot image pathname missing\n"));
565get_chrp_boot(opt_arg)
571 if (use_prep_boot > 3) {
573 _(
"Maximum of 4 PRep+CHRP partition entries are allowed\n"));
584 afe_size =
atoi(opt_arg);
585 hfs_select |= DO_FEU;
586 hfs_select |= DO_FEL;
593 hfs_select |= DO_CAP;
600 hfs_select |= DO_NETA;
607 hfs_select |= DO_DBL;
614 hfs_select |= DO_ESH;
621 hfs_select |= DO_FEU;
622 hfs_select |= DO_FEL;
629 hfs_select |= DO_SGI;
636 hfs_select |= DO_MBIN;
643 hfs_select |= DO_SGL;
650 hfs_select |= DO_DAVE;
658 hfs_select |= DO_SFM;
665 hfs_select |= DO_XDBL;
673 hfs_select |= DO_XHFS;
676 _(
"Warning: --osx-hfs only works on MacOS X ... ignoring\n"));
711 if (
c <
'0' ||
c >
'9')
723#define dysize(A) (((A)%4)? 365 : (((A)%100) == 0 && ((A)%400)) ? 365 : 366)
725static int dmsize[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
746 tp->tm_mon =
tp->tm_hour =
tp->tm_min =
tp->tm_sec = 0;
754 if ((
p -
arg) != 2 && (
p -
arg) != 4)
757 if ((
p -
arg) != 2 && (
p -
arg) != 4)
759 if ((
p -
arg) == 2) {
760 if (
tp->tm_year < 69)
765 if (*
p ==
'/' || *
p ==
'-')
775 if (*
p ==
'\0' ||
strchr(
".+-", *
p))
782 if (
tp->tm_mon < 0 ||
tp->tm_mon >= 12)
784 if (*
p ==
'/' || *
p ==
'-')
786 if (*
p ==
'\0' ||
strchr(
".+-", *
p))
792 if (
tp->tm_mday < 1 ||
tp->tm_mday >
mosize(
tp->tm_year+1900,
tp->tm_mon))
796 if (*
p ==
'\0' ||
strchr(
".+-", *
p))
802 if (
tp->tm_hour > 23)
806 if (*
p ==
'\0' ||
strchr(
".+-", *
p))
816 if (*
p ==
'\0' ||
strchr(
".+-", *
p))
856 if (*
p ==
'+' || *
p ==
'-') {
877 if (gmtoff < -48 || gmtoff > 52)
886 comerr(
_(
"Date '%s' is out of range.\n"), opt_arg);
888 ((
ldate *)valp)->l_sec =
t;
889 ((
ldate *)valp)->l_usec = usec;
890 ((
ldate *)valp)->l_gmtoff = gmtoff;
898getfind(
arg, valp, pac, pav)
907 find_ac--, find_av++;
922 if (opt[0] ==
'-' && opt[1] ==
'H' && opt[2] ==
'\0') {
927 errmsgno(
EX_BAD,
_(
"Use '-map' instead of '-H' as documented instead of using the legacy mode.\n"));
928 afpfile = (
char *)
arg;
937 *(
int *)valp |= WALK_ARGFOLLOW;
952 if (opt[0] ==
'-' && opt[1] ==
'L' && opt[2] ==
'\0') {
957 _(
"Use '-allow-leading-dots' instead of '-L' as documented instead of using the legacy mode.\n"));
966 *(
int *)valp |= WALK_ALLFOLLOW;
981 if (opt[0] ==
'-' && opt[1] ==
'P' && opt[2] ==
'\0') {
985 errmsgno(
EX_BAD,
_(
"Use '-publisher' instead of '-P' as documented instead of using the legacy mode.\n"));
994 *(
int *)valp &= ~(WALK_ARGFOLLOW | WALK_ALLFOLLOW);
1048 {{
"find~",
NULL, (getpargfun)getfind },
1049 __(
"\1file... [find expr.]\1Option separator: Use find command line to the right")},
1071 __(
"Follow symbolic links encountered on command line")},
1079 __(
"Follow all symbolic links")},
1087 __(
"Do not follow symbolic links (default)")},
1096 __(
"\1FILE\1Set Abstract filename")},
1097 {{
"A*,appid*", &
appid },
1098 __(
"\1ID\1Set Application ID")},
1100 __(
"\1FILE\1Set Bibliographic filename")},
1104#if !defined(__MINGW32__) && !defined(_MSC_VER)
1106 __(
"Cache inodes (needed to detect hard links)")},
1109 __(
"Do not cache inodes (if filesystem has no unique inodes)")},
1111 __(
"Create old Rock Ridge V 1.10")},
1113 __(
"Create new Rock Ridge V 1.12 (default)")},
1114#ifdef DUPLICATES_ONCE
1115 {{
"duplicates-once", &duplicates_once},
1116 __(
"Optimize storage by encoding duplicate files once")},
1119 __(
"Check all imported ISO9660 names from old session")},
1121 __(
"\1FILE\1Check all ISO9660 names from previous session")},
1123 __(
"\1FILE\1Set Copyright filename")},
1124 {{
"debug+", &
debug },
1125 __(
"Set debug flag")},
1126 {{
"ignore-error", &
ignerr },
1127 __(
"Ignore errors")},
1129 __(
"\1FILE\1Set El Torito boot image name")},
1131 __(
"Start specifying alternative El Torito boot parameters")},
1133 __(
"\1ID\1Set El Torito platform id for the next boot entry")},
1135 __(
"\1FILES\1Set sparc boot image names")},
1137 __(
"\1FILES\1Set sunx86 boot image names")},
1139 __(
"\1FILE\1Set generic boot image name")},
1141 __(
"\1label text\1Set sparc boot disk label")},
1143 __(
"\1label text\1Set sunx86 boot disk label")},
1145 __(
"\1FILE\1Set El Torito boot catalog name")},
1147 __(
"\1PARAMS\1Magic paramters from cdrecord")},
1149 __(
"Omit trailing periods from filenames (violates ISO9660)")},
1151 __(
"Treat data/size changes as warning only")},
1153 __(
"\1mode\1Make the mode of all directories this mode.")},
1155 __(
"Disable deep directory relocation (violates ISO9660)")},
1157 __(
"\1mode\1Make the mode of all plain files this mode.")},
1159 __(
"\1name\1Read error control defs from file or inline.")},
1161 __(
"Follow symbolic links")},
1163 __(
"\1gid\1Make the group owner of all files this gid.")},
1165 __(
"Allow to use graft points for filenames")},
1167 __(
"\1DIR\1Set root directory for all new files and directories")},
1169 __(
"\1DIR\1Set root directory in previous session that is searched for files")},
1171 __(
"Print option help")},
1173 __(
"\1GLOBFILE\1Hide ISO9660/RR file")},
1175 __(
"\1FILE\1File with list of ISO9660/RR files to hide")},
1177 __(
"\1GLOBFILE\1Set hidden attribute on ISO9660 file")},
1179 __(
"\1FILE\1File with list of ISO9660 files with hidden attribute")},
1181 __(
"\1GLOBFILE\1Hide Joliet file")},
1183 __(
"\1FILE\1File with list of Joliet files to hide")},
1186 __(
"\1GLOBFILE\1Hide UDF file")},
1188 __(
"\1FILE\1File with list of UDF files to hide")},
1191 __(
"Hide TRANS.TBL from Joliet tree")},
1193 __(
"Rename RR_MOVED to .rr_moved in Rock Ridge tree")},
1195 __(
"Switch behaviour for GUI")},
1197 __(
"\1CHARSET\1Local input charset for file name conversion")},
1199 __(
"\1CHARSET\1Output charset for file name conversion")},
1201 __(
"\1LEVEL\1Set ISO9660 conformance level (1..3) or 4 for ISO9660 version 2")},
1203 __(
"Generate Joliet directory information")},
1205 __(
"Allow Joliet file names to be 103 Unicode characters")},
1207 __(
"\1CHARSET\1Local charset for Joliet directory information")},
1209 __(
"Allow full 31 character filenames for ISO9660 names")},
1211 __(
"Allow 37 character filenames for ISO9660 names (violates ISO9660)")},
1214 __(
"Allow ISO9660 filenames to start with '.' (violates ISO9660)")},
1216 __(
"Allow ISO9660 filenames to start with '.' (violates ISO9660)")},
1219 __(
"\1LOG_FILE\1Re-direct messages to LOG_FILE")},
1221 __(
"Use long Rock Ridge time format")},
1223 __(
"\1GLOBFILE\1Exclude file name")},
1225 __(
"\1FILE\1File with list of file names to exclude")},
1228 __(
"Ignore case with -exclude-list and -hide* options")},
1233 __(
"\1DATE\1Set the modification date field of the PVD")},
1235 __(
"Do not include backup files")},
1237 __(
"Do not include backup files")},
1239 __(
"Pad output to a multiple of 32k (default)")},
1240 {{
"no-pad%0", &
dopad },
1241 __(
"Do not pad output to a multiple of 32k")},
1243 __(
"Allow more than 65535 parent directories (violates ISO9660)")},
1245 __(
"Use short Rock Ridge time format")},
1247 __(
"\1FILE\1Set path to previous session to merge")},
1249 __(
"\1SCSIdev\1Set path to previous session to merge")},
1251 __(
"Omit version number from ISO9660 filename (violates ISO9660)")},
1253 __(
"\1mode\1Mode used when creating new directories.")},
1255 __(
"Inhibit automatic Rock Ridge detection for previous session")},
1256 {{
"no-rr", &
no_rr },
1257 __(
"Inhibit reading of Rock Ridge attributes from previous session")},
1259 __(
"Inhibit splitting symlink components")},
1261 __(
"Inhibit splitting symlink fields")},
1263 __(
"\1FILE\1Set output file name")},
1265 __(
"\1FILE\1File with list of pathnames to process")},
1267 __(
"\1PREP\1Set Volume preparer")},
1269 __(
"Print estimated filesystem size and exit")},
1271 __(
"\1PUB\1Set Volume publisher")},
1275 __(
"Generate rationalized Rock Ridge directory information")},
1277 __(
"Generate Rock Ridge directory information")},
1279 __(
"\1TYPE\1Set output sector type to e.g. data/xa1/raw")},
1281 __(
"Use short Rock Ridge time format")},
1284 { {
"sort&",
NULL, add_sort_list },
1285 __(
"\1FILE\1Sort file content locations according to rules in FILE")},
1286 { {
"isort&",
NULL, add_sort_list },
1287 __(
"\1FILE\1Sort file content locations according to rules in FILE (ignore case)")},
1291 __(
"Split output into files of approx. 1GB size")},
1293 __(
"\1FILE_NAME\1Set the stream file ISO9660 name (incl. version)")},
1295 __(
"\1#\1Set the size of your CD media in sectors")},
1297 __(
"\1ID\1Set System ID")},
1299 __(
"Generate translation tables for systems that don't understand long filenames")},
1301 __(
"\1TABLE_NAME\1Translation table file name")},
1303 __(
"\1LEVEL\1Set Joliet UCS level (1..3)")},
1306 {{
"udf", &rationalize_udf },
1307 __(
"Generate rationalized UDF file system")},
1308 {{
"UDF", &use_udf },
1309 __(
"Generate UDF file system")},
1311 __(
"Create symbolic links on UDF image (default)")},
1313 __(
"Do not reate symbolic links on UDF image")},
1317 {{
"dvd-audio", &dvd_audio },
1318 "Generate DVD-Audio compliant UDF file system"},
1319 {{
"dvd-hybrid", &dvd_hybrid },
1320 "Generate a hybrid (DVD-Audio and DVD-Video) compliant UDF file system"},
1321 {{
"dvd-video", &dvd_video },
1322 __(
"Generate DVD-Video compliant UDF file system")},
1326 __(
"\1uid\1Make the owner of all files this uid.")},
1329 __(
"Allow Untranslated filenames (for HPUX & AIX - violates ISO9660). Forces -l, -d, -N, -allow-leading-dots, -relaxed-filenames, -allow-lowercase, -allow-multidot")},
1331 __(
"Allow 7 bit ASCII except lower case characters (violates ISO9660)")},
1333 __(
"Do not translate illegal ISO characters '~', '-' and '#' (violates ISO9660)")},
1335 __(
"Allow lower case characters in addition to the current character set (violates ISO9660)")},
1337 __(
"Do not allow lower case characters in addition to the current character set.")},
1341 __(
"Allow more than one dot in filenames (e.g. .tar.gz) (violates ISO9660)")},
1343 __(
"\1LEVEL\1Use file version # from filesystem")},
1347 __(
"Print the current version")},
1349 __(
"\1ID\1Set Volume ID")},
1351 __(
"\1ID\1Set Volume set ID")},
1353 __(
"\1#\1Set Volume set size")},
1355 __(
"\1#\1Set Volume set sequence number")},
1357 __(
"\1FILE\1Exclude file name(depreciated)")},
1359 __(
"Boot image is a hard disk image")},
1361 __(
"Boot image is 'no emulation' image")},
1363 __(
"Boot image is not bootable")},
1365 __(
"\1#\1Set load segment for boot image")},
1367 __(
"\1#\1Set numbers of load sectors")},
1369 __(
"Patch boot image with info table")},
1371 __(
"Generate XA directory attributes")},
1373 __(
"Generate rationalized XA directory attributes")},
1375 __(
"Enable transparent compression of files")},
1378 {{
"hfs-type*", &deftype },
1379 __(
"\1TYPE\1Set HFS default TYPE")},
1380 {{
"hfs-creator", &defcreator },
1381 __(
"\1CREATOR\1Set HFS default CREATOR")},
1382 {{
"g,apple", &apple_ext },
1383 __(
"Add Apple ISO9660 extensions")},
1385 __(
"Create ISO9660/HFS hybrid")},
1386 {{
"map*", &afpfile },
1387 __(
"\1MAPPING_FILE\1Map file extensions to HFS TYPE/CREATOR")},
1388 {{
"magic*", &magic_file },
1389 __(
"\1FILE\1Magic file for HFS TYPE/CREATOR")},
1390 {{
"probe", &probe },
1391 __(
"Probe all files for Apple/Unix file types")},
1392 {{
"mac-name", &use_mac_name },
1393 __(
"Use Macintosh name for ISO9660/Joliet/RockRidge file name")},
1394 {{
"no-mac-files", &nomacfiles },
1395 __(
"Do not look for Unix/Mac files (depreciated)")},
1396 {{
"boot-hfs-file*", &hfs_boot_file },
1397 __(
"\1FILE\1Set HFS boot image name")},
1398 {{
"part", &gen_pt },
1399 __(
"Generate HFS partition table")},
1400 {{
"cluster-size&",
NULL, (getpargfun)get_bsize },
1401 __(
"\1SIZE\1Cluster size for PC Exchange Macintosh files")},
1402 {{
"auto*", &autoname },
1403 __(
"\1FILE\1Set HFS AutoStart file name")},
1404 {{
"no-desktop%0", &create_dt },
1405 __(
"Do not create the HFS (empty) Desktop files")},
1406 {{
"hide-hfs& ",
NULL, (getpargfun)hfs_add_match },
1407 __(
"\1GLOBFILE\1Hide HFS file")},
1408 {{
"hide-hfs-list&",
NULL, (getpargfun)hfs_add_list },
1409 __(
"\1FILE\1List of HFS files to hide")},
1410 {{
"hfs-volid*", &hfs_volume_id },
1411 __(
"\1HFS_VOLID\1Volume name for the HFS partition")},
1412 {{
"icon-position", &icon_pos },
1413 __(
"Keep HFS icon position")},
1414 {{
"root-info*", &root_info },
1415 __(
"\1FILE\1finderinfo for root folder")},
1416 {{
"input-hfs-charset*", &hfs_icharset },
1417 __(
"\1CHARSET\1Local input charset for HFS file name conversion")},
1418 {{
"output-hfs-charset*", &hfs_ocharset },
1419 __(
"\1CHARSET\1Output charset for HFS file name conversion")},
1420 {{
"hfs-unlock%0", &hfs_lock },
1421 __(
"Leave HFS Volume unlocked")},
1422 {{
"hfs-bless*", &hfs_bless },
1423 __(
"\1FOLDER_NAME\1Name of Folder to be blessed")},
1424 {{
"hfs-parms*", &hfs_parms },
1425 __(
"\1PARAMETERS\1Comma separated list of HFS parameters")},
1427 {{
"prep-boot&",
NULL, (getpargfun)get_prep_boot },
1428 __(
"\1FILE\1PReP boot image file -- up to 4 are allowed")},
1429 {{
"chrp-boot&",
NULL, (getpargfun)get_chrp_boot },
1430 __(
"Add CHRP boot header")},
1432 {{
"cap~",
NULL, (getpargfun)hfs_cap },
1433 __(
"-Look for AUFS CAP Macintosh files")},
1434 {{
"netatalk~",
NULL, (getpargfun)hfs_neta},
1435 __(
"-Look for NETATALK Macintosh files")},
1436 {{
"double~",
NULL, (getpargfun)hfs_dbl },
1437 __(
"-Look for AppleDouble Macintosh files")},
1438 {{
"ethershare~",
NULL, (getpargfun)hfs_esh },
1439 __(
"-Look for Helios EtherShare Macintosh files")},
1440 {{
"exchange~",
NULL, (getpargfun)hfs_fe },
1441 __(
"-Look for PC Exchange Macintosh files")},
1442 {{
"sgi~",
NULL, (getpargfun)hfs_sgi },
1443 __(
"-Look for SGI Macintosh files")},
1444 {{
"macbin~",
NULL, (getpargfun)hfs_mbin },
1445 __(
"-Look for MacBinary Macintosh files")},
1446 {{
"single~",
NULL, (getpargfun)hfs_sgl },
1447 __(
"-Look for AppleSingle Macintosh files")},
1448 {{
"ushare~",
NULL, (getpargfun)hfs_esh },
1449 __(
"-Look for IPT UShare Macintosh files")},
1450 {{
"xinet~",
NULL, (getpargfun)hfs_sgi },
1451 __(
"-Look for XINET Macintosh files")},
1452 {{
"dave~",
NULL, (getpargfun)hfs_dave },
1453 __(
"-Look for DAVE Macintosh files")},
1454 {{
"sfm~",
NULL, (getpargfun)hfs_sfm },
1455 __(
"-Look for SFM Macintosh files")},
1456 {{
"osx-double~",
NULL, (getpargfun)hfs_xdbl },
1457 __(
"-Look for MacOS X AppleDouble Macintosh files")},
1458 {{
"osx-hfs~",
NULL, (getpargfun)hfs_xhfs },
1459 __(
"-Look for MacOS X HFS Macintosh files")},
1460 {{
"no-hfs~",
NULL, (getpargfun)hfs_nohfs },
1461 __(
"Do not create ISO9660/HFS hybrid")},
1467#define OPTION_COUNT (sizeof mki_options / sizeof (mki_options[0]))
1481 char *nodename,
size_t nlen,
1482 char **short_namep,
BOOL do_insert));
1496 char linebuffer[256];
1497 static char rcfn[] =
".mkisofsrc";
1508 pnt =
getenv(
"MKISOFSRC");
1533 if (!rcfile &&
strlen(appname) +
sizeof (rcfn) + 2 <=
1553 while (
fgets(linebuffer,
sizeof (linebuffer), rcfile)) {
1560 while (*pnt ==
' ' || *pnt ==
'\t')
1572 while (*pnt && (
isalpha((
unsigned char) *pnt) || *pnt ==
'_')) {
1573 if (
islower((
unsigned char) *pnt))
1574 *pnt =
toupper((
unsigned char) *pnt);
1584 while (*pnt ==
' ' || *pnt ==
'\t')
1596 while (*pnt ==
' ' || *pnt ==
'\t')
1607 if (*pnt1 ==
'\n') {
1614 for (rco =
rcopt; rco->
tag; rco++) {
1662 fprintf(
stderr,
_(
"to get a list of all valid -find options.\n"));
1664 error(
_(
"\nMost important Options:\n"));
1665 error(
_(
" -posix-H Follow sylinks encountered on command line\n"));
1666 error(
_(
" -posix-L Follow all symlinks\n"));
1667 error(
_(
" -posix-P Do not follow symlinks (default)\n"));
1668 error(
_(
" -o FILE, -output FILE Set output file name\n"));
1669 error(
_(
" -R, -rock Generate Rock Ridge directory information\n"));
1670 error(
_(
" -r, -rational-rock Generate rationalized Rock Ridge directory info\n"));
1671 error(
_(
" -J, -joliet Generate Joliet directory information\n"));
1672 error(
_(
" -print-size Print estimated filesystem size and exit\n"));
1674 error(
_(
" -UDF Generate UDF file system\n"));
1677 error(
_(
" -dvd-audio Generate DVD-Audio compliant UDF file system\n"));
1678 error(
_(
" -dvd-video Generate DVD-Video compliant UDF file system\n"));
1679 error(
_(
" -dvd-hybrid Generate a hybrid (DVD-Audio/DVD-Video) compliant UDF file system\n"));
1681 error(
_(
" -iso-level LEVEL Set ISO9660 level (1..3) or 4 for ISO9660 v 2\n"));
1682 error(
_(
" -V ID, -volid ID Set Volume ID\n"));
1683 error(
_(
" -graft-points Allow to use graft points for filenames\n"));
1684 error(
_(
" -M FILE, -prev-session FILE Set path to previous session to merge\n"));
1697 for (; *
fmt !=
'\0';
fmt++) {
1704 if (
c ==
',' ||
c ==
'%' ||
c ==
'*' ||
c ==
'?' ||
1705 c ==
'#' ||
c ==
'&' ||
c ==
'~')
1728 if (*
arg ==
'-' || *
arg ==
'\\')
1733 while (*
p !=
'\0' && *
p !=
'\1' && *
p !=
'\2')
1746 (optlen > 1 && twod) ?
"--" :
"-",
1751 while (*
fmt !=
'\0' && *
fmt !=
',')
1772 if (*
str ==
'-' || *
str ==
'\\')
1777 while (*
str !=
'\0' && *
str !=
'\1' && *
str !=
'\2')
1782 }
else if (*
str ==
'\2') {
1822 twodash = (doc !=
NULL && *doc ==
'-');
1823 doc =
docstr(doc, &no_help);
1924 1900 +
local.tm_year,
1929 if (gmtoff == -100) {
1951 for (s_entry =
reloc_dir->contents; s_entry; s_entry = s_entry->
next) {
1986 if (dofind && opt < (find_pav -
argv))
1988 else if (!dofind && opt <
argc)
2015 char *
const *cav =
argv;
2020 unsigned long mem_start;
2022 struct stat statbuf;
2033 int no_path_names = 1;
2034 int warn_violate = 0;
2035 int have_cmd_line_pathspec = 0;
2036 int rationalize_all = 0;
2051#if !defined(TEXT_DOMAIN)
2052#define TEXT_DOMAIN "mkisofs"
2095 argind =
argc - cac;
2098 error(
_(
"Bad Option '%s' (error %d %s).\n"),
2104 argind =
argc - cac;
2107 have_cmd_line_pathspec = 1;
2111 printf(
_(
"mkisofs %s (%s-%s-%s)\n\n\
2112Copyright (C) 1993-1997 %s\n\
2113Copyright (C) 1997-2017 %s\n"),
2116 _(
"Eric Youngdale"),
2117 _(
"Joerg Schilling"));
2119 printf(
_(
"Copyright (C) 1997-2001 James Pearson\n"));
2122 printf(
_(
"Copyright (C) 2006 HELIOS Software GmbH\n"));
2124#ifdef OPTION_SILO_BOOT
2125 printf(
_(
"Warning: this is unofficial (modified) version of mkisofs that incorporates\n"));
2126 printf(
_(
" support for a non Sparc compliant boot method called SILO.\n"));
2127 printf(
_(
" The official method to create Sparc boot CDs is to use -sparc-boot\n"));
2128 printf(
_(
" In case of problems first test with an official version of mkisofs.\n"));
2138 find_firstprim(&cac, &cav);
2141 argind =
argc - find_ac;
2147 fa.Argv = (
char **)cav;
2148 find_node = find_parse(&
fa);
2149 if (
fa.primtype == FIND_ERRARG)
2151 if (
fa.primtype != FIND_ENDARGS)
2154 find_patlen =
fa.patlen;
2156 maxdepth =
fa.maxdepth;
2157 mindepth =
fa.mindepth;
2163 if (find_pname(find_node,
"-exec") ||
2164 find_pname(find_node,
"-exec+") ||
2165 find_pname(find_node,
"-ok"))
2167 _(
"Cannot -exec with '-o -'.\n"));
2171 if (find_ac <= 0 || find_ac == find_pac) {
2180 | (dvd_hybrid ? DVD_SPEC_HYBRD : 0)
2181 | (dvd_video ? DVD_SPEC_VIDEO : 0);
2188 _(
"Abstract filename string too long (cur. %lld max. 37 chars).\n"),
2195 _(
"Application-id string too long (cur. %lld max. 128 chars).\n"),
2202 _(
"Bibliographic filename string too long (cur. %lld max. 37 chars).\n"),
2206#ifdef DUPLICATES_ONCE
2214#if defined(IS_CYGWIN)
2225#ifdef DUPLICATES_ONCE
2233 _(
"Warning: Cannot write inode/link information with -no-cache-inodes.\n"));
2236 _(
"Warning: Cannot add inode hints with -no-cache-inodes.\n"));
2239#if defined(__MINGW32__)
2244 _(
"Warning: cannot -cache-inodes on this platform - ignoring.\n"));
2265 _(
"Copyright filename string too long (cur. %lld max. 37 chars).\n"),
2292 dirmode_to_use < 0 || dirmode_to_use > 07777) {
2307 filemode_to_use < 0 || filemode_to_use > 07777) {
2311#ifdef __warn_follow__
2314 _(
"Warning: -follow-links does not always work correctly; be careful.\n"));
2399 new_dir_mode < 0 || new_dir_mode > 07777) {
2411 _(
"Unsupported sector type '%s'.\n"),
2417 comerrno(
EX_BAD,
_(
"Preparer string too long (cur. %lld max. 128 chars).\n"),
2424 _(
"Publisher string too long (cur. %lld max. 128 chars).\n"),
2435 _(
"stream-file-name too long (%llu), max is %d.\n"),
2446 _(
"System ID string too long\n"));
2453 if (ucs_level < 1 || ucs_level > 3)
2463 if (rationalize_udf) {
2518 _(
"Volume ID string too long (cur. %lld max. 32 chars).\n"),
2525 _(
"Volume set ID string too long (cur. %lld max. 128 chars).\n"),
2536 _(
"Volume Set Size > 1 not yet supported\n"));
2542 _(
"Volume set sequence number too big\n"));
2552 _(
"Transparent compression not supported with VMS\n"));
2558 if (
strlen(deftype) != 4) {
2560 _(
"HFS default TYPE string has illegal length.\n"));
2563 deftype = APPLE_TYPE_DEFAULT;
2567 if (
strlen(defcreator) != 4) {
2569 _(
"HFS default CREATOR string has illegal length.\n"));
2572 defcreator = APPLE_CREATOR_DEFAULT;
2574 if (afpfile && *afpfile !=
'\0')
2575 hfs_last = MAP_LAST;
2577 hfs_last = MAG_LAST;
2580 _(
"Warning: -no-mac-files no longer used ... ignoring\n"));
2599 if (*afpfile || probe || use_mac_name || hfs_select ||
2600 hfs_boot_file || magic_file ||
2601 hfs_ishidden() || gen_pt || autoname ||
2602 afe_size || icon_pos || hfs_ct ||
2603 hfs_icharset || hfs_ocharset) {
2606 if ((DO_XHFS & hfs_select) && use_udf) {
2608 if (!no_apple_hyb) {
2610 _(
"Warning: no HFS hybrid will be created with -udf and --osx-hfs\n"));
2621 error(
_(
"Warning: cannot create UDF symlinks with activated Rock Ridge\n"));
2632 error(
_(
"Warning: cannot support large files with -hfs\n"));
2639 if (apple_ext && hfs_boot_file) {
2642 if (apple_ext && autoname) {
2646 comerrno(
EX_BAD,
_(
"Can't have -hfs with -sparc-boot/-sunx86-boot\n"));
2652 if (apple_ext && use_prep_boot) {
2664 if (apple_both &&
verbose && !(hfs_select || *afpfile || magic_file)) {
2666 _(
"Warning: no Apple/Unix files will be decoded/mapped\n"));
2668 if (apple_both &&
verbose && !afe_size &&
2669 (hfs_select & (DO_FEU | DO_FEL))) {
2671 _(
"Warning: assuming PC Exchange cluster size of 512 bytes\n"));
2676 hfs_init(afpfile, 0, hfs_select);
2688 comerrno(
EX_BAD,
_(
"Need either -XA/-xa or -R/-r for -apple to become active.\n"));
2705 if (rationalize_all) {
2720 error(
_(
"Warning: Disabling Joliet support for DVD-Video/DVD-Audio.\n"));
2732 error(
_(
"Warning: creating filesystem that does not conform to ISO-9660.\n"));
2734 error(
_(
"Warning: Creating ISO-9660:1999 (version 2) filesystem.\n"));
2736 error(
_(
"Warning: ISO-9660 filenames longer than %d may cause buffer overflows in the OS.\n"),
2739 error(
_(
"Warning: creating filesystem with (nonstandard) Joliet extensions\n"));
2740 error(
_(
" but without (standard) Rock Ridge extensions.\n"));
2741 error(
_(
" It is highly recommended to add Rock Ridge\n"));
2744 error(
_(
"Warning: using transparent compression. This is a nonstandard Rock Ridge\n"));
2745 error(
_(
" extension. The resulting filesystem can only be transparently\n"));
2746 error(
_(
" read on Linux. On other operating systems you need to call\n"));
2747 error(
_(
" mkzftree by hand to decompress the files.\n"));
2750 error(
_(
"Warning: transparent decompression is a Linux Rock Ridge extension, but\n"));
2751 error(
_(
" creating filesystem without Rock Ridge attributes; files\n"));
2752 error(
_(
" will not be transparently decompressed.\n"));
2755#if defined(USE_NLS) && defined(HAVE_NL_LANGINFO) && defined(CODESET)
2768 char *codeset = nl_langinfo(CODESET);
2771 if (codeset !=
NULL)
2773 if (codeset ==
NULL)
2775 if (*codeset ==
'\0')
2778 for (
p = (
Uchar *)codeset; *
p !=
'\0';
p++) {
2784 if (*
p ==
'_' || *
p ==
'-')
2786 codeset = (
char *)
p;
2788 if (
strcmp(
"646", codeset) != 0 &&
2789 strcmp(
"ASCII", codeset) != 0 &&
2790 strcmp(
"US-ASCII", codeset) != 0 &&
2791 strcmp(
"US_ASCII", codeset) != 0 &&
2792 strcmp(
"USASCII", codeset) != 0 &&
2793 strcmp(
"ANSI_X3.4-1968", codeset) != 0)
2796 if (codeset !=
NULL)
2800 error(
_(
"Setting input-charset to '%s' from locale.\n"),
2812#if (defined(__CYGWIN32__) || defined(__CYGWIN__) || defined(__DJGPP__)) && !defined(IS_CYGWIN_1)
2830 fprintf(
stderr,
_(
"Unknown charset '%s'.\nKnown charsets are:\n"),
2843 _(
"Iconv based locales may change file name length.\n"));
2845 _(
"Cannot yet have different -input-charset/-output-charset.\n"));
2850 if (hfs_icharset ==
NULL ||
strcmp(hfs_icharset,
"mac-roman") == 0) {
2851 hfs_icharset =
"cp10000";
2855 if (hfs_ocharset ==
NULL) {
2858 if (hfs_ocharset ==
NULL ||
strcmp(hfs_ocharset,
"mac-roman") == 0) {
2859 hfs_ocharset =
"cp10000";
2866 fprintf(
stderr,
_(
"Unknown HFS charset '%s'.\nKnown charsets are:\n"),
2867 hfs_inls ==
NULL ? hfs_icharset : (hfs_ocharset ? hfs_ocharset :
"NULL"));
2876 _(
"Iconv based locales may change file name length.\n"));
2878 _(
"Cannot yet have different -input-hfs-charset/-output-hfs-charset.\n"));
2886 comerr(
_(
"Unable to open previous session image '%s'.\n"),
2892 if (setreuid(-1,
getuid()) < 0)
2900 comerr(
_(
"Panic cannot set back effective uid.\n"));
2903#ifdef no_more_needed
2909 if (getrlimit(RLIMIT_DATA, &rlp) == -1)
2910 errmsg(
_(
"Warning: Cannot get rlimit.\n"));
2912 rlp.rlim_cur = 33554432;
2913 if (setrlimit(RLIMIT_DATA, &rlp) == -1)
2914 errmsg(
_(
"Warning: Cannot set rlimit.\n"));
2920 mem_start = (
unsigned long) sbrk(0);
2930 _(
"Multisession usage bug: Must specify -C if -M is used.\n"));
2934 _(
"Warning: -C specified without -M: old session data will not be merged.\n"));
2939 _(
"Warning: files from previous sessions will not be included in the HFS volume.\n"));
2950 comerr(
_(
"Unable to open pathname list %s.\n"),
2982 _(
"Cannot use XA, Rock Ridge, UDF or Joliet with -stream-media-size\n"));
2985 _(
"Cannot use multi session with -stream-media-size\n"));
2993 _(
"Cannot use boot options with -stream-media-size\n"));
2997 _(
"Cannot use Apple hybrid options with -stream-media-size\n"));
3005 "THE ROCK RIDGE INTERCHANGE PROTOCOL PROVIDES SUPPORT FOR POSIX FILE SYSTEM SEMANTICS",
3006 "PLEASE CONTACT DISC PUBLISHER FOR SPECIFICATION SOURCE. SEE PUBLISHER IDENTIFIER IN PRIMARY VOLUME DESCRIPTOR FOR CONTACT INFORMATION.",
3010 "THE IEEE P1282 PROTOCOL PROVIDES SUPPORT FOR POSIX FILE SYSTEM SEMANTICS",
3011 "PLEASE CONTACT THE IEEE STANDARDS DEPARTMENT, PISCATAWAY, NJ, USA FOR THE P1282 SPECIFICATION.",
3076 memset(&de, 0,
sizeof (de));
3099 if (mrootp ==
NULL) {
3103 comerr(
_(
"Unable to find previous session PVD '%s'.\n"),
3122 extern char er_id[];
3129 _(
"No valid Rock Ridge signature found\n"));
3134 _(
"Rock Ridge signatures version %d found\n"),
3137 _(
"Rock Ridge id '%s'\n"),
er_id);
3141 fprintf(
stderr,
_(
"Bad Rock Ridge signatures found (SU record missing)\n"));
3164 set_root_info(root_info);
3179 walkinitstate(&walkstate);
3180 if (find_patlen > 0) {
3181 walkstate.patstate =
___malloc(
sizeof (
int) * find_patlen,
3182 _(
"space for pattern state"));
3185 find_timeinit(
time(0));
3187 walkstate.maxdepth = maxdepth;
3188 walkstate.mindepth = mindepth;
3189 walkstate.lname =
NULL;
3190 walkstate.tree = find_node;
3192 walkstate.pflags = 0;
3207 graft_point[0] =
'\0';
3211 graft_point,
sizeof (graft_point),
3212 nodename,
sizeof (nodename),
3214 if (graft_point[0] !=
'\0') {
3221 walkstate.auxp = &wa;
3223 treewalk(
arg, walkfunc, &walkstate);
3226 find_plusflush(plusp, &walkstate);
3235 nodename,
sizeof (nodename),
NULL,
TRUE);
3241 if (pfp && pfp !=
stdin)
3326 comerr(
_(
"Unable to open /dev/null\n"));
3461 if (opnt->of_size !=
NULL) {
3476 if (opnt->of_generate !=
NULL) {
3480 (*opnt->of_generate) ();
3495 if (udf_end_anchor_vol_desc_frag.of_size !=
NULL) {
3496 (*udf_end_anchor_vol_desc_frag.of_size) (
last_extent);
3504 if (udf_padend_avdp_frag.of_size !=
NULL) {
3555 _(
"Total extents scheduled to be written = %u\n"),
3576 _(
"Implementation botch: %s should start at %u but starts at %u.\n"),
3579 if (opnt->of_write !=
NULL) {
3591 _(
"Implementation botch: FS should end at %u but ends at %u.\n"),
3598 (
unsigned int)(((
unsigned long) sbrk(0)) - mem_start));
3621 ins_base =
"$INS_BASE/lib/siconv/";
3626 _(
"Check '%s' for missing translation tables.\n"),
3633 _(
"'iconv -l' lists more available names.\n"));
3648 if (
p >
s &&
p[-1] !=
'\\')
3673 while ((*
p = *
from++) !=
'\0' && tolen-- > 0) {
3675 if ((*
p = *
from++) ==
'\0')
3677 if (*
p !=
'\\' && *
p !=
'=') {
3685 error(
"ESC: '%s'\n", to);
3749 if ((
len < (glen -1)) &&
3750 (
len == 0 || graft_point[
len-1] !=
'/')) {
3751 graft_point[
len++] =
'/';
3752 graft_point[
len] =
'\0';
3769 while (xpnt[0] ==
'.' && xpnt[1] ==
'/')
3779 }
while (xpnt > graft_point);
3801 if ((
len < (glen -1)) &&
3802 (
len == 0 || graft_point[
len-1] !=
'/')) {
3803 graft_point[
len++] =
'/';
3804 graft_point[
len] =
'\0';
3808 error(
"GRAFT:'%s'\n", xpnt);
3816 while (xpnt[0] ==
'.' && xpnt[1] ==
'/')
3818 while (xpnt[0] ==
'/')
3820 if (xpnt[0] ==
'.' && xpnt[1] ==
'.' && xpnt[2] ==
'/') {
3821 if (graft_dir && graft_dir !=
root) {
3822 graft_dir = graft_dir->
parent;
3826 }
while ((xpnt[0] ==
'/') || (xpnt[0] ==
'.' && xpnt[1] ==
'/'));
3829 if (*xpnt !=
'\0') {
3832 *short_namep = xpnt;
3838 error(
"GRAFT Point:'%s' in '%s : %s' (%s)\n",
3875 error(
_(
"graft_dir: '%s : %s', node: '%s', (scan)\n"),
3900 error(
_(
"graft_dir: '%s : %s', node: '%s', short_name: '%s'\n"),
3929 comerr(
_(
"Not enough memory\n"));
3947 comerr(
_(
"Not enough memory for strdup(%s)\n"),
s);
3959 while ((*p2++ = *p1++) !=
'\0')
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
char * strstr(char *String1, char *String2)
ACPI_SIZE strlen(const char *String)
char * strchr(const char *String, int ch)
#define gettimeofday(tv, tz)
size_t strlcpy(char *d, const char *s, size_t bufsize)
EXPORT int errconfig(char *name)
EXPORT void comerrno(int err, char *msg, va_alist)
EXPORT int errmsgno(int err, char *msg, va_alist)
EXPORT void comexit(int err)
EXPORT void comerr(char *msg, va_alist)
EXPORT int errmsg(char *msg, va_alist)
#define COPYRIGHT_DEFAULT
#define VOLSET_ID_DEFAULT
#define SYSTEM_ID_DEFAULT
#define VOLUME_ID_DEFAULT
#define PUBLISHER_DEFAULT
#define BOOT_CATALOG_DEFAULT
#define BOOT_IMAGE_DEFAULT
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
EXPORT void insert_boot_cat()
EXPORT void init_boot_catalog(char *path) const
struct output_fragment torito_desc
EXPORT int new_boot_entry()
EXPORT void get_boot_entry()
EXPORT char * fillbytes(void *tov, ssize_t cnt, char val)
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLint GLboolean GLint GLenum access
GLsizeiptr const GLvoid GLenum usage
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
_Check_return_ _CRTIMP FILE *__cdecl freopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode, _Inout_ FILE *_File)
_Check_return_ _CRTIMP int __cdecl ferror(_In_ FILE *_File)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
_Check_return_opt_ _CRTIMP int __cdecl fflush(_Inout_opt_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
_Check_return_opt_ _CRTIMP int __cdecl fputc(_In_ int _Ch, _Inout_ FILE *_File)
_Check_return_opt_ _CRTIMP char *__cdecl fgets(_Out_writes_z_(_MaxCount) char *_Buf, _In_ int _MaxCount, _Inout_ FILE *_File)
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_Check_return_opt_ _CRTIMP int __cdecl setvbuf(_Inout_ FILE *_File, _Inout_updates_opt_z_(_Size) char *_Buf, _In_ int _Mode, _In_ size_t _Size)
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
_Check_return_ long __cdecl strtol(_In_z_ const char *_Str, _Out_opt_ _Deref_post_z_ char **_EndPtr, _In_ int _Radix)
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
#define EL_TORITO_ARCH_PPC
#define EL_TORITO_ARCH_EFI
#define EL_TORITO_ARCH_MAC
#define EL_TORITO_ARCH_x86
#define MAX_ISONAME_V2_RR
EXPORT UInt32_t get_733(void *vp)
struct output_fragment jpathtable_desc
struct output_fragment joliet_desc
EXPORT int joliet_sort_tree(struct directory *node)
struct output_fragment jdirtree_desc
static const int digits[]
static char * program_name
LOCAL int dolegacy(char *arg, void *valp, int *pac, char *const **pav, const char *opt) const
EXPORT char * findgequal(char *s)
EXPORT int iso9660_date(char *result, time_t crtime)
const char * optend(char *fmt) const
int printopts(FILE *f, const char *fmt, const char *arg, int twod)
LOCAL int getP(char *arg, void *valp, int *pac, char *const **pav, const char *opt) const
char *abstract char * volset_id
LOCAL int get_boot_size(char *opt_arg)
int volume_sequence_number
LOCAL int get_boot_table(char *opt_arg)
int transparent_compression
const char * docstr(char *str, int *no_help) const
LOCAL int get_hd_boot(char *opt_arg)
LOCAL int get_ldate(char *opt_arg, void *valp)