Eventual backslash output conversion outside quotes for more terminal-safety
This commit is contained in:
parent
417f828cff
commit
b288541937
@ -2,7 +2,7 @@
|
|||||||
.\" First parameter, NAME, should be all caps
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
.TH XORRISO 1 "Nov 07, 2008"
|
.TH XORRISO 1 "Nov 11, 2008"
|
||||||
.\" Please adjust this date whenever revising the manpage.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -2292,11 +2292,11 @@ Enable or disable the interpretation of symbolic representations of special
|
|||||||
characters with quoted input, or with program arguments, or with program
|
characters with quoted input, or with program arguments, or with program
|
||||||
text output. If enabled the following translations apply:
|
text output. If enabled the following translations apply:
|
||||||
.br
|
.br
|
||||||
\\a=bell(007) \\b=backspace(008) \\e=Escape(033) \\f=formfeed(014)
|
\\a=bell(007) \\b=backspace(010) \\e=Escape(033) \\f=formfeed(014)
|
||||||
.br
|
.br
|
||||||
\\n=linefeed(012) \\r=carriage_return(015) \\t=tab(011)
|
\\n=linefeed(012) \\r=carriage_return(015) \\t=tab(011)
|
||||||
.br
|
.br
|
||||||
\\v=vtab(013) \\\\=backslash(134) \\[0-9][0-9][0-9]=octal_code
|
\\v=vtab(013) \\\\=backslash(134) \\[0-7][0-7][0-7]=octal_code
|
||||||
.br
|
.br
|
||||||
\\\\x[0-9a-f][0-9a-f]=hex_code \\cC=control-C
|
\\\\x[0-9a-f][0-9a-f]=hex_code \\cC=control-C
|
||||||
.br
|
.br
|
||||||
@ -2313,9 +2313,12 @@ With the start program arguments there is mode:
|
|||||||
"with_program_arguments" translates all program arguments.
|
"with_program_arguments" translates all program arguments.
|
||||||
.br
|
.br
|
||||||
.br
|
.br
|
||||||
Mode "encode_output" encodes output characters inside single or double
|
Mode "encode_output" encodes output characters. It combines "encode_results"
|
||||||
quotation marks. It combines "encode_results" with "encode_infos". Encoding
|
with "encode_infos". Inside single or double quotation marks encoding applies
|
||||||
applies to ASCII characters 1 to 31 and 127 to 255.
|
to ASCII characters octal 001 to 037 , 177 to 377 and to backslash(134).
|
||||||
|
Outside quotation marks some harmless control characters stay unencoded:
|
||||||
|
bell(007), backspace(010), tab(011), linefeed(012), formfeed(014),
|
||||||
|
carriage_return(015).
|
||||||
.br
|
.br
|
||||||
Mode "off" is default and disables any translation.
|
Mode "off" is default and disables any translation.
|
||||||
Mode "on" is
|
Mode "on" is
|
||||||
@ -2595,12 +2598,13 @@ This example assumes that the existing ISO image was written with character
|
|||||||
set ISO-8859-1 but that the readers expected UTF-8. Now a new session with
|
set ISO-8859-1 but that the readers expected UTF-8. Now a new session with
|
||||||
the same files gets added with converted file names.
|
the same files gets added with converted file names.
|
||||||
In order to avoid any weaknesses of the local character set this command
|
In order to avoid any weaknesses of the local character set this command
|
||||||
pretends that it is already the final target set UTF-8.
|
pretends that it uses already the final target set UTF-8.
|
||||||
Therefore strange file names may appear in eventual error messages.
|
Therefore strange file names may appear in eventual error messages which
|
||||||
|
will be made terminal-safe by option -backslash_codes.
|
||||||
.br
|
.br
|
||||||
\fB$\fR xorriso -in_charset ISO-8859-1 -local_charset UTF-8 \\
|
\fB$\fR xorriso -in_charset ISO-8859-1 -local_charset UTF-8 \\
|
||||||
.br
|
.br
|
||||||
-out_charset UTF-8 -dev /dev/sr0 \\
|
-out_charset UTF-8 -backslash_codes on -dev /dev/sr0 \\
|
||||||
.br
|
.br
|
||||||
-alter_date m +0 / -- -commit -eject all
|
-alter_date m +0 / -- -commit -eject all
|
||||||
.SS
|
.SS
|
||||||
|
@ -513,7 +513,7 @@ int Sfile_off_t_text(char text[80], off_t num, int flag)
|
|||||||
*/
|
*/
|
||||||
int Sfile_bsl_interpreter(char *text, int upto, int *eaten, int flag)
|
int Sfile_bsl_interpreter(char *text, int upto, int *eaten, int flag)
|
||||||
{
|
{
|
||||||
char *rpt, *wpt, num_text[4], wdummy[8];
|
char *rpt, *wpt, num_text[8], wdummy[8];
|
||||||
unsigned int num= 0;
|
unsigned int num= 0;
|
||||||
|
|
||||||
*eaten= 0;
|
*eaten= 0;
|
||||||
@ -542,13 +542,14 @@ int Sfile_bsl_interpreter(char *text, int upto, int *eaten, int flag)
|
|||||||
*(wpt++)= 11;
|
*(wpt++)= 11;
|
||||||
} else if(*rpt == '\\') {
|
} else if(*rpt == '\\') {
|
||||||
*(wpt++)= '\\';
|
*(wpt++)= '\\';
|
||||||
} else if(rpt[0] >= '0' && rpt[0] <= '9' &&
|
} else if(rpt[0] >= '0' && rpt[0] <= '7' &&
|
||||||
rpt[1] >= '0' && rpt[1] <= '9' &&
|
rpt[1] >= '0' && rpt[1] <= '7' &&
|
||||||
rpt[2] >= '0' && rpt[2] <= '9') {
|
rpt[2] >= '0' && rpt[2] <= '7') {
|
||||||
num_text[0]= *(rpt + 0);
|
num_text[0]= '0';
|
||||||
num_text[1]= *(rpt + 1);
|
num_text[1]= *(rpt + 0);
|
||||||
num_text[2]= *(rpt + 2);
|
num_text[2]= *(rpt + 1);
|
||||||
num_text[3]= 0;
|
num_text[3]= *(rpt + 2);
|
||||||
|
num_text[4]= 0;
|
||||||
sscanf(num_text, "%o", &num);
|
sscanf(num_text, "%o", &num);
|
||||||
if(num > 0 && num <= 255) {
|
if(num > 0 && num <= 255) {
|
||||||
rpt+= 2;
|
rpt+= 2;
|
||||||
@ -626,6 +627,8 @@ ex:;
|
|||||||
|
|
||||||
|
|
||||||
/* @param flag bit0= only encode inside quotes
|
/* @param flag bit0= only encode inside quotes
|
||||||
|
bit1= encode < 32 outside quotes except 7, 8, 9, 10, 12, 13
|
||||||
|
bit2= encode in any case above 126
|
||||||
*/
|
*/
|
||||||
int Sfile_bsl_encoder(char **result, char *text, int flag)
|
int Sfile_bsl_encoder(char **result, char *text, int flag)
|
||||||
{
|
{
|
||||||
@ -650,8 +653,16 @@ int Sfile_bsl_encoder(char **result, char *text, int flag)
|
|||||||
sq_open= !(sq_open || dq_open);
|
sq_open= !(sq_open || dq_open);
|
||||||
if(*rpt == '"')
|
if(*rpt == '"')
|
||||||
dq_open= !(sq_open || dq_open);
|
dq_open= !(sq_open || dq_open);
|
||||||
if((*rpt >= 32 && *rpt <= 126 && *rpt != '\\') ||
|
if(*rpt >= 32 && *rpt <= 126 && *rpt != '\\') {
|
||||||
((flag & 1) && !(sq_open || dq_open))) {
|
*(wpt++)= *rpt;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if( ((flag & 1) && !(sq_open || dq_open)) &&
|
||||||
|
!((flag & 2) && (*rpt >= 1 && * rpt <= 31 &&
|
||||||
|
!(*rpt == 7 || *rpt == 8 || *rpt == 9 || *rpt == 10 ||
|
||||||
|
*rpt == 12 || *rpt == 13))) &&
|
||||||
|
!((flag & 4) && (*rpt > 126 || *rpt < 0)) &&
|
||||||
|
!((flag & 6) && *rpt == '\\')) {
|
||||||
*(wpt++)= *rpt;
|
*(wpt++)= *rpt;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -4360,7 +4371,7 @@ bit15= with bit1 or bit2: close depicted log file
|
|||||||
/* Eventually perform backslash encoding of non-printable characters */
|
/* Eventually perform backslash encoding of non-printable characters */
|
||||||
if(((xorriso->bsl_interpretation & 32) && channel_no == 1) ||
|
if(((xorriso->bsl_interpretation & 32) && channel_no == 1) ||
|
||||||
((xorriso->bsl_interpretation & 64) && channel_no == 2)) {
|
((xorriso->bsl_interpretation & 64) && channel_no == 2)) {
|
||||||
ret= Sfile_bsl_encoder(&text, text, 1);
|
ret= Sfile_bsl_encoder(&text, text, 1 | 2 | 4);
|
||||||
if(ret <= 0)
|
if(ret <= 0)
|
||||||
{ret= -1; goto ex;}
|
{ret= -1; goto ex;}
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2008.11.10.123332"
|
#define Xorriso_timestamP "2008.11.10.123713"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user