From f1edbf9acb12476aa3b58eb65d7026211118461c Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Thu, 2 Feb 2012 14:33:53 +0100 Subject: [PATCH] Add options '+file', '=file', '( file1 file2 )' to --help and the man page --- doc/man/ja/mkvmerge.1 | 64 ++++++++++++++++++++++++++++++++++++++-- doc/man/mkvmerge.1 | 64 ++++++++++++++++++++++++++++++++++++++-- doc/man/mkvmerge.xml | 59 ++++++++++++++++++++++++++++++++---- doc/man/nl/mkvmerge.1 | 64 ++++++++++++++++++++++++++++++++++++++-- doc/man/uk/mkvmerge.1 | 64 ++++++++++++++++++++++++++++++++++++++-- doc/man/zh_CN/mkvmerge.1 | 64 ++++++++++++++++++++++++++++++++++++++-- src/merge/mkvmerge.cpp | 25 ++++++++++------ 7 files changed, 380 insertions(+), 24 deletions(-) diff --git a/doc/man/ja/mkvmerge.1 b/doc/man/ja/mkvmerge.1 index da1bd955a..77c89a186 100644 --- a/doc/man/ja/mkvmerge.1 +++ b/doc/man/ja/mkvmerge.1 @@ -224,7 +224,7 @@ XMLファイルからセグメント情報を読み取ります。このファ .sp 特殊な値\fB\-1\fRが指定された場合、たとえビデオトラックが存在していてもサンプリング音の精度を使用します。 .RE -.SS "ファイルの分割と紐付け、追加結合(グローバルオプションの続き):" +.SS "File splitting, linking, appending and concatenation (more global options)" .PP \fB\-\-split\fR \fIspecification\fR .RS 4 @@ -356,7 +356,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv .PP \fB=\fR .RS 4 -通常mkvmergeは、入力ファイルと同じディレクトリにあり、同じ基底名を持ち、通し番号だけが異なるファイル(例:\*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc)を検索します。この\*(Aq=\*(Aq一文字のオプションを使うと、mkvmergeはそういった追加ファイルを検索しません。 +Normally +\fBmkvmerge\fR(1) +looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&. .sp \*(Aq=\*(Aqは次のファイル名の直前に置くこともできます。よって、次の2つのコマンドは等価です。 .sp @@ -371,6 +373,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv .RE .\} .RE +.PP +\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR +.RS 4 +If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&. +.sp +This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&. +.sp +Putting a file name into parenthesis also prevents +\fBmkvmerge\fR(1) +from looking for additional files with the same base name as described in +option \fB=\fR\&. Therefore these two command lines are equivalent: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ mkvmerge \-o out\&.mkv = file\&.mkv +$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq +.fi +.if n \{\ +.RE +.\} +.sp +Several things should be noted: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +There must be spaces both after the opening and before the closing parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&. +.RE +.RE .SS "添付ファイルのサポート(グローバルオプションの続き)" .PP \fB\-\-attachment\-description\fR \fIdescription\fR diff --git a/doc/man/mkvmerge.1 b/doc/man/mkvmerge.1 index c836c8de1..ab18de472 100644 --- a/doc/man/mkvmerge.1 +++ b/doc/man/mkvmerge.1 @@ -316,7 +316,7 @@ is used then \fBmkvmerge\fR(1) will use sample precision even if a video track is present\&. .RE -.SS "File splitting, linking and appending (more global options)" +.SS "File splitting, linking, appending and concatenation (more global options)" .PP \fB\-\-split\fR \fIspecification\fR .RS 4 @@ -493,7 +493,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv .PP \fB=\fR .RS 4 -Normally mkvmerge looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc)\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&. +Normally +\fBmkvmerge\fR(1) +looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&. .sp The \*(Aq=\*(Aq can also be put in front of the next file name\&. Therefore the following two commands are equivalent: .sp @@ -508,6 +510,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv .RE .\} .RE +.PP +\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR +.RS 4 +If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&. +.sp +This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&. +.sp +Putting a file name into parenthesis also prevents +\fBmkvmerge\fR(1) +from looking for additional files with the same base name as described in +option \fB=\fR\&. Therefore these two command lines are equivalent: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ mkvmerge \-o out\&.mkv = file\&.mkv +$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq +.fi +.if n \{\ +.RE +.\} +.sp +Several things should be noted: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +There must be spaces both after the opening and before the closing parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&. +.RE +.RE .SS "Attachment support (more global options)" .PP \fB\-\-attachment\-description\fR \fIdescription\fR diff --git a/doc/man/mkvmerge.xml b/doc/man/mkvmerge.xml index 663bd5b4c..bb8485f9e 100644 --- a/doc/man/mkvmerge.xml +++ b/doc/man/mkvmerge.xml @@ -367,7 +367,7 @@ - File splitting, linking and appending (more global options) + File splitting, linking, appending and concatenation (more global options) @@ -561,13 +561,13 @@ $ mkvmerge -o full.mkv file1.mkv +file2.mkv - + - Normally mkvmerge looks for files in the same directory as an input file that have the same base name and only differ in their running - number (e.g. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' etc). This option, a single '=', causes mkvmerge not to look for those - additional files. + Normally &mkvmerge; looks for files in the same directory as an input file that have the same base name and only differ in their + running number (e.g. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' etc) and treats all of those files as if they were concatenated + into a single big file. This option, a single '=', causes mkvmerge not to look for those additional files. @@ -579,6 +579,55 @@ $ mkvmerge -o full.mkv =file1.mkv + + + file1 file2 + + + If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a + single big file consisting of the content of each of the files one after the other. + + + + This can be used for e.g. VOB files coming from a DVD or MPEG transport streams. It cannot be used if each file contains its own set + of headers which is usually the case with stand-alone files like AVI or MP4. + + + + Putting a file name into parenthesis also prevents &mkvmerge; from looking for additional files with the same base name as described + in option . Therefore these two command lines are + equivalent: + + + $ mkvmerge -o out.mkv = file.mkv +$ mkvmerge -o out.mkv '(' file.mkv ')' + + + Several things should be noted: + + + + + + There must be spaces both after the opening and before the closing parenthesis. + + + + + + Every parameter between parenthesis is interpreted as a file name. Therefore all options applying to this logical file must be listed before the opening parenthesis. + + + + + + Some shells treat parenthesis as special characters. Hence you must escape or quote them as shown in the example above. + + + + + + diff --git a/doc/man/nl/mkvmerge.1 b/doc/man/nl/mkvmerge.1 index 04deae997..8326d29f3 100644 --- a/doc/man/nl/mkvmerge.1 +++ b/doc/man/nl/mkvmerge.1 @@ -317,7 +317,7 @@ is gebruikt, dan zal \fBmkvmerge\fR(1) een voorbeeld precisie gebruiken zelfs als er een video spoor aanwezig is\&. .RE -.SS "File splitting, linking and appending (more global options)" +.SS "File splitting, linking, appending and concatenation (more global options)" .PP \fB\-\-split\fR \fIspecification\fR .RS 4 @@ -494,7 +494,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv .PP \fB=\fR .RS 4 -Normaal kijkt mkvmerge naar bestanden in dezelfde map welke dezelfde basis naam bevatten maar alleen verschillen van volgordenummer (b\&.v\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc)\&. Deze optie, een enkele \*(Aq=\*(Aq maakt dat mkvmerge niet kijkt naar die extra bestanden\&. +Normally +\fBmkvmerge\fR(1) +looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&. .sp De \*(Aq=\*(Aq kan ook worden ingegeven voor elk volgende bestandsnaam\&. Daarom zijn de volgende twee commando\*(Aqs gelijkwaardig: .sp @@ -509,6 +511,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv .RE .\} .RE +.PP +\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR +.RS 4 +If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&. +.sp +This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&. +.sp +Putting a file name into parenthesis also prevents +\fBmkvmerge\fR(1) +from looking for additional files with the same base name as described in +option \fB=\fR\&. Therefore these two command lines are equivalent: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ mkvmerge \-o out\&.mkv = file\&.mkv +$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq +.fi +.if n \{\ +.RE +.\} +.sp +Several things should be noted: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +There must be spaces both after the opening and before the closing parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&. +.RE +.RE .SS "Attachment support (more global options)" .PP \fB\-\-attachment\-description\fR \fIdescription\fR diff --git a/doc/man/uk/mkvmerge.1 b/doc/man/uk/mkvmerge.1 index 6c179c441..56fdfda6c 100644 --- a/doc/man/uk/mkvmerge.1 +++ b/doc/man/uk/mkvmerge.1 @@ -316,7 +316,7 @@ is used then \fBmkvmerge\fR(1) will use sample precision even if a video track is present\&. .RE -.SS "File splitting, linking and appending (more global options)" +.SS "File splitting, linking, appending and concatenation (more global options)" .PP \fB\-\-split\fR \fIspecification\fR .RS 4 @@ -493,7 +493,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv .PP \fB=\fR .RS 4 -Normally mkvmerge looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc)\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&. +Normally +\fBmkvmerge\fR(1) +looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&. .sp The \*(Aq=\*(Aq can also be put in front of the next file name\&. Therefore the following two commands are equivalent: .sp @@ -508,6 +510,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv .RE .\} .RE +.PP +\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR +.RS 4 +If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&. +.sp +This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&. +.sp +Putting a file name into parenthesis also prevents +\fBmkvmerge\fR(1) +from looking for additional files with the same base name as described in +option \fB=\fR\&. Therefore these two command lines are equivalent: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ mkvmerge \-o out\&.mkv = file\&.mkv +$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq +.fi +.if n \{\ +.RE +.\} +.sp +Several things should be noted: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +There must be spaces both after the opening and before the closing parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&. +.RE +.RE .SS "Attachment support (more global options)" .PP \fB\-\-attachment\-description\fR \fIdescription\fR diff --git a/doc/man/zh_CN/mkvmerge.1 b/doc/man/zh_CN/mkvmerge.1 index ed0a8ccb2..b9edf8545 100644 --- a/doc/man/zh_CN/mkvmerge.1 +++ b/doc/man/zh_CN/mkvmerge.1 @@ -307,7 +307,7 @@ Matroska(TM) 文件规划 \fB\-1\fR,即使有视频轨,\fBmkvmerge\fR(1) 也将使用采样精度。 .RE -.SS "File splitting, linking and appending (more global options)" +.SS "File splitting, linking, appending and concatenation (more global options)" .PP \fB\-\-split\fR \fI指令\fR .RS 4 @@ -476,7 +476,9 @@ $ mkvmerge \-o full\&.mkv file1\&.mkv +file2\&.mkv .PP \fB=\fR .RS 4 -通常情况下 mkvmerge 将在输入文件所在的目录中查找基本名称相同,仅在连续的数字方面有差异的文件 (如 \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq 等等)。此选项,单个 \*(Aq=\*(Aq,将令 mkvmerge 不查找这些额外的文件。 +Normally +\fBmkvmerge\fR(1) +looks for files in the same directory as an input file that have the same base name and only differ in their running number (e\&.g\&. \*(AqVTS_01_1\&.VOB\*(Aq, \*(AqVTS_01_2\&.VOB\*(Aq, \*(AqVTS_01_3\&.VOB\*(Aq etc) and treats all of those files as if they were concatenated into a single big file\&. This option, a single \*(Aq=\*(Aq, causes mkvmerge not to look for those additional files\&. .sp \*(Aq=\*(Aq 也可以放在下一个文件名的前面。因此以下两条命令等效: .sp @@ -491,6 +493,64 @@ $ mkvmerge \-o full\&.mkv =file1\&.mkv .RE .\} .RE +.PP +\fB(\fR \fIfile1\fR \fIfile2\fR \fB)\fR +.RS 4 +If multiple file names are contained in a pair of parenthesis then those files will be treated as if they were concatenated into a single big file consisting of the content of each of the files one after the other\&. +.sp +This can be used for e\&.g\&. VOB files coming from a DVD or MPEG transport streams\&. It cannot be used if each file contains its own set of headers which is usually the case with stand\-alone files like AVI or MP4\&. +.sp +Putting a file name into parenthesis also prevents +\fBmkvmerge\fR(1) +from looking for additional files with the same base name as described in +option \fB=\fR\&. Therefore these two command lines are equivalent: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ mkvmerge \-o out\&.mkv = file\&.mkv +$ mkvmerge \-o out\&.mkv \*(Aq(\*(Aq file\&.mkv \*(Aq)\*(Aq +.fi +.if n \{\ +.RE +.\} +.sp +Several things should be noted: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +There must be spaces both after the opening and before the closing parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +Every parameter between parenthesis is interpreted as a file name\&. Therefore all options applying to this logical file must be listed before the opening parenthesis\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Some shells treat parenthesis as special characters\&. Hence you must escape or quote them as shown in the example above\&. +.RE +.RE .SS "Attachment support (more global options)" .PP \fB\-\-attachment\-description\fR \fI描述\fR diff --git a/src/merge/mkvmerge.cpp b/src/merge/mkvmerge.cpp index 179483512..09d36b4bc 100644 --- a/src/merge/mkvmerge.cpp +++ b/src/merge/mkvmerge.cpp @@ -108,17 +108,9 @@ set_usage() { usage_text += Y(" --clusters-in-meta-seek Write meta seek data for clusters.\n"); usage_text += Y(" --disable-lacing Do not Use lacing.\n"); usage_text += Y(" --enable-durations Enable block durations for all blocks.\n"); - usage_text += Y(" --append-to \n" - " A comma separated list of file and track IDs\n" - " that controls which track of a file is\n" - " appended to another track of the preceding\n" - " file.\n"); - usage_text += Y(" --append-mode \n" - " Selects how mkvmerge calculates timecodes when\n" - " appending files.\n"); usage_text += Y(" --timecode-scale Force the timecode scale factor to n.\n"); usage_text += "\n"; - usage_text += Y(" File splitting and linking (more global options):\n"); + usage_text += Y(" File splitting, linking, appending and concatenating (more global options):\n"); usage_text += Y(" --split \n" " Create a new file after d bytes (KB, MB, GB)\n" " or after a specific time.\n"); @@ -129,6 +121,21 @@ set_usage() { usage_text += Y(" --link Link splitted files.\n"); usage_text += Y(" --link-to-previous Link the first file to the given SID.\n"); usage_text += Y(" --link-to-next Link the last file to the given SID.\n"); + usage_text += Y(" --append-to \n" + " A comma separated list of file and track IDs\n" + " that controls which track of a file is\n" + " appended to another track of the preceding\n" + " file.\n"); + usage_text += Y(" --append-mode \n" + " Selects how mkvmerge calculates timecodes when\n" + " appending files.\n"); + usage_text += Y(" + Append file2 to file1.\n"); + usage_text += Y(" + Same as \" + \".\n"); + usage_text += Y(" = Don't look for and concatenate files with the same\n" + " base name but with a different trailing number.\n"); + usage_text += Y(" = Same as \"= \".\n"); + usage_text += Y(" ( ) Treat file1 and file2 as if they were concatenated\n" + " into a single big file.\n"); usage_text += "\n"; usage_text += Y(" Attachment support (more global options):\n"); usage_text += Y(" --attachment-description \n"