Warn of volid length for Joliet only if more than 16 characters (was: 16 bytes)
This commit is contained in:
@ -2083,6 +2083,8 @@ int Xorriso_option_version(struct XorrisO *xorriso, int flag)
|
||||
int Xorriso_option_volid(struct XorrisO *xorriso, char *volid, int flag)
|
||||
{
|
||||
int warn_shell= 0, warn_ecma= 0, i, ret;
|
||||
char *result= NULL;
|
||||
size_t result_len= 0;
|
||||
static char shell_chars[]= {
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-+=:.,~@"};
|
||||
static char ecma_chars[]= {"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"};
|
||||
@ -2104,9 +2106,20 @@ int Xorriso_option_volid(struct XorrisO *xorriso, char *volid, int flag)
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
}
|
||||
if(xorriso->do_joliet && strlen(volid)>16 && !(flag & 1)) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-volid text is too long for Joliet (%d > 16)",(int) strlen(volid));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
ret= Xorriso_conv_name_chars(xorriso, volid, &result, &result_len, 2, 0);
|
||||
if(result != NULL)
|
||||
free(result); /* just want the result_len */
|
||||
xorriso->info_text[0]= 0;
|
||||
if(ret <= 0) {
|
||||
sprintf(xorriso->info_text,
|
||||
"Cannot determine length of -volid text in Joliet character set");
|
||||
} else if(result_len > 32) {
|
||||
sprintf(xorriso->info_text,
|
||||
"-volid text is too long for Joliet (%d > 16)",
|
||||
(int) (result_len + 1) / 2);
|
||||
}
|
||||
if(xorriso->info_text[0])
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||
}
|
||||
if(warn_ecma && !(flag & 1)) {
|
||||
sprintf(xorriso->info_text,
|
||||
|
Reference in New Issue
Block a user