Re: Joliet extensions and files with no filename extension
- From: "Thomas Schmitt" <scdbackup gmx net>
- To: brasero-list gnome org
- Cc: mrjones69 gmail com
- Subject: Re: Joliet extensions and files with no filename extension
- Date: Fri, 22 Jul 2016 09:18:56 +0200
Hi,
now it becomes tricky:
@Joerg Schilling:
Do you know Joliet specs, where the presence of SEPARATOR 1 and SEPARATOR 2
is declared optional ?
@everybody:
Does Microsoft in its own ISO 9660 + Joliet filesystems add ";1" to
Joliet names ?
Reading
Joliet Specification
CD-ROM Recording Spec ISO 9660:1988
Extensions for Unicode Version 1; May 22, 1995
Copyright 1995, Microsoft Corporation All Rights Reserved
i do not find any hint that the rule for file ISO 9660 name extensions
should not apply to Joliet. It talks explicitely of SEPARATOR 2, which
in the ECMA-119 (aka ISO 9660) specs is ';'.
Joliet does not override the prescription of ECMA-119, 7.5.1:
"A File Identifier shall consist of the following sequence:
− File Name: A sequence of zero or more d-characters or d1-characters;
− SEPARATOR 1;
− File Name Extension: A sequence of zero or more d-characters or d1-characters;
− SEPARATOR 2;
− File Version Number: Digits representing a number from 1 to 32 767.
"
So the file name "no_ext.;1" would be standards compliant.
But mkisofs tradition is different.
This is unfortunate, because one cannot easily judge whether a trailing ";1"
is an artefact of the specs or a part of the original file name.
(In ECMA-119, the problem does not exist, because ';' is not allowed in
File Name or File Name Extension.)
I will have to look into Linux kernel code to get an impression how
other programmers see the situation.
------------------------------------------------------------------------
In the xorriso runs the trailing dot is suppressed by a setting which
xorriso makes to libisofs.
One can override the setting by xorriso command
-compliance strict
E.g.
xorriso -compliance strict -as mkisofs -o test.iso -J -R -no-pad no_ext
The call of libisofs which disables the forced dot is
/**
* ISO-9660 forces filenames to have a ".", that separates file name from
* extension. libisofs adds it if original filename doesn't has one. Set
* this to 1 to prevent this behavior.
* This breaks ECMA-119 specification. Use with caution.
*
* @param opts
* The option set to be manipulated.
* @param no
* bit0= no forced dot with ECMA-119
* bit1= no forced dot with Joliet (@since 0.6.30)
*
* @since 0.6.2
*/
int iso_write_opts_set_no_force_dots(IsoWriteOpts *opts, int no);
If brasero wants to omit the dot and ";1", then it would have to call
in its libisofs plugin
iso_write_opts_set_no_force_dots(opts, 2);
E.g. in line 578 of:
https://github.com/GNOME/brasero/blob/master/plugins/libburnia/burn-libisofs.c
iso_write_opts_new (&opts, 2);
iso_write_opts_set_relaxed_vol_atts(opts, 1);
+ iso_write_opts_set_no_force_dots(opts, 2);
brasero_job_get_flags (BRASERO_JOB (self), &flags);
------------------------------------------------------------------------
Have a nice day :)
Thomas
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]