New command -joliet_map

This commit is contained in:
Thomas Schmitt 2020-11-22 14:51:26 +01:00
parent 8f89ad03fc
commit 2fbb3cfac1
12 changed files with 131 additions and 71 deletions

View File

@ -209,6 +209,7 @@ Xorriso_option_dialog;
Xorriso_option_disk_dev_ino;
Xorriso_option_disk_pattern;
Xorriso_option_displacement;
Xorriso_option_drive_access;
Xorriso_option_drive_class;
Xorriso_option_dummy;
Xorriso_option_dvd_obs;
@ -238,6 +239,7 @@ Xorriso_option_iso_nowtime;
Xorriso_option_iso_rr_pattern;
Xorriso_option_jigdo;
Xorriso_option_joliet;
Xorriso_option_joliet_map;
Xorriso_option_launch_frontend;
Xorriso_option_list_arg_sorting;
Xorriso_option_list_delimiter;

View File

@ -144,6 +144,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->do_rockridge= 1;
m->do_iso1999= 0;
m->ecma119_map= 1;
m->joliet_map= 1;
m->do_aaip= 0;
m->do_md5= 64;
m->no_emul_toc= 0;

View File

@ -577,6 +577,10 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
ext|= isoburn_ropt_map_lowercase;
else
ext|= isoburn_ropt_map_stripped;
if(xorriso->joliet_map == 0)
ext|= isoburn_ropt_joliet_unmapped;
else
ext|= isoburn_ropt_joliet_stripped;
isoburn_ropt_set_extensions(ropts, ext);

View File

@ -1828,6 +1828,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -ecma119_map \"unmapped\"|\"stripped\"|\"uppercase\"|\"lowercase\"",
" Choose conversion of file names if neither Rock Ridge",
" nor Joliet is present in the loaded ISO session.",
" -joliet_map \"unmapped\"|\"stripped\"",
" Choose conversion of file names if the Joliet tree is read",
" when loading the ISO session.",
" -iso_nowtime \"dynamic\"|timestring",
" Choose use of current time or a fixed point in time for",
" timestamps where libisofs would normally use the current",

View File

@ -544,7 +544,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"drive_access","dummy","dvd_obs","early_stdio_test","ecma119_map","eject",
"iso_nowtime","iso_rr_pattern","file_name_limit","follow","format","fs",
"gid","grow_blindly","hardlinks",
"hfsplus","history","indev","in_charset","joliet",
"hfsplus","history","indev","in_charset","joliet","joliet_map",
"list_delimiter","list_extras","list_profiles","local_charset",
"mark","md5","mount_opts","modesty_on_drive",
"not_leaf","not_list","not_mgt",
@ -695,7 +695,7 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
"read_speed", "load", "displacement", "read_fs",
"assert_volid", "in_charset",
"auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup",
"ecma119_map",
"ecma119_map", "joliet_map",
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
"data_cache_size",
"scsi_dev_family", "iso_nowtime",
@ -1430,6 +1430,10 @@ next_command:;
(*idx)++;
ret= Xorriso_option_joliet(xorriso, arg1, 0);
} else if(strcmp(cmd,"joliet_map")==0) {
(*idx)++;
ret= Xorriso_option_joliet_map(xorriso, arg1, 0);
} else if(strcmp(cmd, "launch_frontend") == 0) {
ret= Xorriso_option_launch_frontend(xorriso, argc, argv, idx, 0);

View File

@ -3781,6 +3781,15 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->joliet_map == 1);
sprintf(line, "-joliet_map ");
if(xorriso->joliet_map == 0)
strcat(line, "unmapped\n");
else
strcat(line, "stripped\n");
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->scdbackup_tag_name[0] == 0 &&
xorriso->scdbackup_tag_listname[0] == 0);
sprintf(line, "-scdbackup_tag ");

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.5.3, Nov 15, 2020"
.TH XORRISO 1 "Version 1.5.3, Nov 20, 2020"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1054,13 +1054,14 @@ Command \-xattr "user" after command \-for_backup excludes non\-user attributes
from being recorded or restored.
.TP
\fB\-ecma119_map\fR "stripped"|"unmapped"|"lowercase"|"uppercase"
Choose the conversion of file names from the loaded session if neither
a Rock Ridge name nor a Joliet name was read from the session.
Choose the conversion of file names when a session gets loaded, if they stem
neither from a Rock Ridge name nor from a Joliet name.
.br
Mode "stripped" is the default. It shows the names as found in the ISO but
removes trailing ";1" or ".;1" if present.
.br
Mode "unmapped" shows names as found without removing characters.
Warning: Multi\-session converts "xyz;1" to "xyz_1" and maybe adds new ";1".
.br
Mode "lowercase" is like "stripped" but also maps uppercase letters to
lowercase letters. This is compatible to default GNU/Linux mount behavior.
@ -1068,6 +1069,15 @@ lowercase letters. This is compatible to default GNU/Linux mount behavior.
Mode "uppercase" is like "stripped" but maps lowercase letters to uppercase,
if any occur despite the prescriptions of ECMA\-119.
.TP
\fB\-joliet_map\fR "stripped"|"unmapped"
Choose the conversion of file names when a session gets loaded from a Joliet
tree.
.br
Mode "stripped" is the default. It removes trailing ";1" or ".;1" if present.
.br
Mode "unmapped" shows names as found without removing characters.
Warning: Multi\-session converts "xyz;1" to "xyz_1" and maybe adds new ";1".
.TP
\fB\-iso_nowtime\fR "dynamic"|timestring
Choose whether to use the current time ("dynamic") or a fixed time point
for timestamps of ISO 9660 nodes without a disk source file and as default

View File

@ -1670,6 +1670,9 @@ int Xorriso_option_jigdo(struct XorrisO *xorriso, char *aspect, char *arg,
/* @since 0.1.0 */
int Xorriso_option_joliet(struct XorrisO *xorriso, char *mode, int flag);
/* Command -joliet_map "unmapped" | "stripped" */
int Xorriso_option_joliet_map(struct XorrisO *xorriso, char *mode, int flag);
/* Command -launch_frontend */
/* @since 1.2.6 */
int Xorriso_option_launch_frontend(struct XorrisO *xorriso,

View File

@ -951,17 +951,26 @@ activate them only after image loading.
Command -xattr "user" after command -for_backup excludes non-user
attributes from being recorded or restored.
-ecma119_map "stripped"|"unmapped"|"lowercase"|"uppercase"
Choose the conversion of file names from the loaded session if
neither a Rock Ridge name nor a Joliet name was read from the
session.
Choose the conversion of file names when a session gets loaded, if
they stem neither from a Rock Ridge name nor from a Joliet name.
Mode "stripped" is the default. It shows the names as found in the
ISO but removes trailing ";1" or ".;1" if present.
Mode "unmapped" shows names as found without removing characters.
Warning: Multi-session converts "xyz;1" to "xyz_1" and maybe adds
new ";1".
Mode "lowercase" is like "stripped" but also maps uppercase letters
to lowercase letters. This is compatible to default GNU/Linux
mount behavior.
Mode "uppercase" is like "stripped" but maps lowercase letters to
uppercase, if any occur despite the prescriptions of ECMA-119.
-joliet_map "stripped"|"unmapped"
Choose the conversion of file names when a session gets loaded from
a Joliet tree.
Mode "stripped" is the default. It removes trailing ";1" or ".;1"
if present.
Mode "unmapped" shows names as found without removing characters.
Warning: Multi-session converts "xyz;1" to "xyz_1" and maybe adds
new ";1".
-iso_nowtime "dynamic"|timestring
Choose whether to use the current time ("dynamic") or a fixed time
point for timestamps of ISO 9660 nodes without a disk source file
@ -5506,11 +5515,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -assert_volid rejects undesired images: Loading. (line 105)
* -auto_charset learns character set from image: Loading. (line 117)
* -backslash_codes enables backslash conversion: Scripting. (line 71)
* -ban_stdio_write demands real drive: Loading. (line 337)
* -ban_stdio_write demands real drive: Loading. (line 346)
* -biblio_file sets biblio file name: SetWrite. (line 256)
* -blank erases media: Writing. (line 57)
* -boot_image controls bootability: Bootable. (line 75)
* -calm_drive reduces drive activity: Loading. (line 327)
* -calm_drive reduces drive activity: Loading. (line 336)
* -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 15)
* -changes_pending overrides change status: Writing. (line 12)
@ -5544,12 +5553,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -cp_rx copies file trees to disk: Restore. (line 124)
* -cp_rx copies file trees to disk <1>: Restore. (line 132)
* -cut_out inserts piece of data file: Insert. (line 139)
* -data_cache_size adjusts read cache size: Loading. (line 353)
* -data_cache_size adjusts read cache size: Loading. (line 362)
* -dev acquires one drive for input and output: AqDrive. (line 12)
* -devices gets list of drives: Inquiry. (line 7)
* -device_links gets list of drives: Inquiry. (line 17)
* -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 247)
* -disk_dev_ino fast incremental backup: Loading. (line 256)
* -disk_pattern controls pattern expansion: Insert. (line 34)
* -displacement compensate altered image start address: Loading.
(line 78)
@ -5561,7 +5570,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -dusx show directory size on disk: Navigate. (line 88)
* -dux show directory size on disk: Navigate. (line 84)
* -dvd_obs set write block size: SetWrite. (line 400)
* -early_stdio_test classifies stdio drives: Loading. (line 341)
* -early_stdio_test classifies stdio drives: Loading. (line 350)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 229)
* -eject ejects drive tray: Writing. (line 50)
* -end writes pending session and ends program: Scripting. (line 151)
@ -5573,7 +5582,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -extract_cut copies file piece to disk: Restore. (line 101)
* -extract_l copies files to disk: Restore. (line 97)
* -extract_single copies file to disk: Restore. (line 94)
* -file_name_limit curbs length of file names: Loading. (line 267)
* -file_name_limit curbs length of file names: Loading. (line 276)
* -file_size_limit limits data file size: SetInsert. (line 7)
* -find traverses and alters ISO tree: CmdFind. (line 7)
* -findx traverses disk tree: Navigate. (line 91)
@ -5595,10 +5604,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -indev acquires a drive for input: AqDrive. (line 23)
* -in_charset sets input character set: Loading. (line 112)
* -iso_nowtime fixed "now" time for ISO 9660 objects: Loading.
(line 241)
(line 250)
* -iso_rr_pattern controls pattern expansion: Manip. (line 10)
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 37)
* -joliet enables production of Joliet tree: SetWrite. (line 10)
* -joliet_map Joliet names: Loading. (line 242)
* -launch_frontend starts frontend program at pipes: Frontend.
(line 141)
* -list_arg_sorting prints sorting order of -x: ArgSort. (line 26)
@ -5680,7 +5690,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
(line 57)
* -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 154)
* -rom_toc_scan searches for sessions: Loading. (line 299)
* -rom_toc_scan searches for sessions: Loading. (line 308)
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 150)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179)
* -scsi_dev_family choose Linux device file type: AqDrive. (line 95)
@ -5755,7 +5765,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Appended partition, in MBR or GPT: Bootable. (line 284)
* Automatic execution order, of arguments, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 53)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 247)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 256)
* Backup, enable features, -for_backup: Loading. (line 215)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Blank media, _definition: Media. (line 29)
@ -5795,8 +5805,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Directory, delete, -rmdir: Manip. (line 29)
* disk_path, _definition: Insert. (line 6)
* Drive, accessability, -drive_class: AqDrive. (line 43)
* Drive, classify stdio, -early_stdio_test: Loading. (line 341)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 337)
* Drive, classify stdio, -early_stdio_test: Loading. (line 350)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 346)
* Drive, eject tray, -eject: Writing. (line 50)
* Drive, for input and output, -dev: AqDrive. (line 12)
* Drive, for input, -indev: AqDrive. (line 23)
@ -5804,7 +5814,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, get drive list, -device_links: Inquiry. (line 17)
* Drive, list supported media, -list_profiles: Writing. (line 163)
* Drive, reduce activity, -calm_drive: Loading. (line 327)
* Drive, reduce activity, -calm_drive: Loading. (line 336)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 143)
* Drive, write and eject, -commit_eject: Writing. (line 53)
* Drive, _definition: Drives. (line 6)
@ -5820,7 +5830,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Examples: Examples. (line 6)
* extattr, _definition: Extras. (line 66)
* File content, copy, -concat: Restore. (line 139)
* File names, curb length, -file_name_limit: Loading. (line 267)
* File names, curb length, -file_name_limit: Loading. (line 276)
* File names, if Joliet is loaded: Loading. (line 242)
* File names, if neither Rock Ridge nor Joliet: Loading. (line 229)
* Filter, apply to file tree, -set_filter_r: Filter. (line 84)
* Filter, apply to file, -set_filter: Filter. (line 58)
@ -5844,7 +5855,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* HFS+ serial number: Bootable. (line 408)
* hidden, set in ISO image, -hide: Manip. (line 177)
* HP-PA boot sector, production: Bootable. (line 383)
* Image reading, cache size, -data_cache_size: Loading. (line 353)
* Image reading, cache size, -data_cache_size: Loading. (line 362)
* Image, demand volume ID, -assert_volid: Loading. (line 105)
* Image, discard pending changes, -rollback: Writing. (line 9)
* Image, filesystem to load, -read_fs: Loading. (line 96)
@ -5896,7 +5907,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Jigdo Template Extraction, -jigdo: Jigdo. (line 37)
* Jigdo Template Extraction, _definition: Jigdo. (line 6)
* LBA, _definition: Drives. (line 17)
* libisofs, fixed "now" time: Loading. (line 241)
* libisofs, fixed "now" time: Loading. (line 250)
* Linux device type, -scsi_dev_family: AqDrive. (line 95)
* List delimiter, _definition: Processing. (line 9)
* Local Character Set, _definition: Charset. (line 11)
@ -6008,7 +6019,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* SUN SPARC boot images, activation: Bootable. (line 454)
* Symbolic link, create, -lns: Insert. (line 181)
* System area, _definition: Bootable. (line 200)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 299)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 308)
* Table-of-content, show, -toc: Inquiry. (line 27)
* Timestamps, set in ISO image, -alter_date: Manip. (line 139)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 174)
@ -6066,48 +6077,48 @@ Node: Commands25588
Node: ArgSort27265
Node: AqDrive28759
Node: Loading35916
Node: Insert57303
Node: SetInsert68806
Node: Manip78238
Node: CmdFind88338
Node: Filter107267
Node: Writing111889
Node: SetWrite124144
Node: Bootable153144
Node: Jigdo180352
Node: Charset185355
Node: Exception188684
Node: DialogCtl194813
Node: Inquiry197415
Node: Navigate206297
Node: Verify215004
Node: Restore226153
Node: Emulation236136
Node: Scripting246592
Node: Frontend254375
Node: Examples264001
Node: ExDevices265179
Node: ExCreate265840
Node: ExDialog267140
Node: ExGrowing268411
Node: ExModifying269220
Node: ExBootable269730
Node: ExCharset270285
Node: ExPseudo271181
Node: ExCdrecord272108
Node: ExMkisofs272428
Node: ExGrowisofs274325
Node: ExException275478
Node: ExTime275936
Node: ExIncBackup276394
Node: ExRestore280420
Node: ExRecovery281366
Node: Files281938
Node: Environ283272
Node: Seealso284020
Node: Bugreport284737
Node: Legal285328
Node: CommandIdx286340
Node: ConceptIdx303956
Node: Insert57755
Node: SetInsert69258
Node: Manip78690
Node: CmdFind88790
Node: Filter107719
Node: Writing112341
Node: SetWrite124596
Node: Bootable153596
Node: Jigdo180804
Node: Charset185807
Node: Exception189136
Node: DialogCtl195265
Node: Inquiry197867
Node: Navigate206749
Node: Verify215456
Node: Restore226605
Node: Emulation236588
Node: Scripting247044
Node: Frontend254827
Node: Examples264453
Node: ExDevices265631
Node: ExCreate266292
Node: ExDialog267592
Node: ExGrowing268863
Node: ExModifying269672
Node: ExBootable270182
Node: ExCharset270737
Node: ExPseudo271633
Node: ExCdrecord272560
Node: ExMkisofs272880
Node: ExGrowisofs274777
Node: ExException275930
Node: ExTime276388
Node: ExIncBackup276846
Node: ExRestore280872
Node: ExRecovery281818
Node: Files282390
Node: Environ283724
Node: Seealso284472
Node: Bugreport285189
Node: Legal285780
Node: CommandIdx286792
Node: ConceptIdx304481

End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.3, Nov 15, 2020"
@c man .TH XORRISO 1 "Version 1.5.3, Nov 20, 2020"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -1306,13 +1306,14 @@ from being recorded or restored.
@item -ecma119_map "stripped"|"unmapped"|"lowercase"|"uppercase"
@kindex -ecma119_map names w/o Rock Ridge, Joliet
@cindex File names, if neither Rock Ridge nor Joliet
Choose the conversion of file names from the loaded session if neither
a Rock Ridge name nor a Joliet name was read from the session.
Choose the conversion of file names when a session gets loaded, if they stem
neither from a Rock Ridge name nor from a Joliet name.
@*
Mode "stripped" is the default. It shows the names as found in the ISO but
removes trailing ";1" or ".;1" if present.
@*
Mode "unmapped" shows names as found without removing characters.
Warning: Multi-session converts "xyz;1" to "xyz_1" and maybe adds new ";1".
@*
Mode "lowercase" is like "stripped" but also maps uppercase letters to
lowercase letters. This is compatible to default GNU/Linux mount behavior.
@ -1320,6 +1321,17 @@ lowercase letters. This is compatible to default GNU/Linux mount behavior.
Mode "uppercase" is like "stripped" but maps lowercase letters to uppercase,
if any occur despite the prescriptions of ECMA-119.
@c man .TP
@item -joliet_map "stripped"|"unmapped"
@kindex -joliet_map Joliet names
@cindex File names, if Joliet is loaded
Choose the conversion of file names when a session gets loaded from a Joliet
tree.
@*
Mode "stripped" is the default. It removes trailing ";1" or ".;1" if present.
@*
Mode "unmapped" shows names as found without removing characters.
Warning: Multi-session converts "xyz;1" to "xyz_1" and maybe adds new ";1".
@c man .TP
@item -iso_nowtime "dynamic"|timestring
@kindex -iso_nowtime fixed "now" time for ISO 9660 objects
@cindex libisofs, fixed "now" time

View File

@ -150,6 +150,7 @@ struct XorrisO { /* the global context of xorriso */
int do_rockridge;
int do_iso1999;
int ecma119_map; /* 0=unmapped , 1=stripped , 2=uppercase , 3=lowercase */
int joliet_map; /* 0=unmapped , 1=stripped */
int do_aaip; /* bit0= ACL in
bit1= ACL out

View File

@ -1 +1 @@
#define Xorriso_timestamP "2020.11.22.134545"
#define Xorriso_timestamP "2020.11.22.135052"