Thunderbird: fix appp.sh format problems
PATCH v2 1/1 Thunderbird: fix appp.sh format problems
The current script has got the following problems:
1) It doesn't work if the language used by Thunderbird is not English;
2) The field To: filled by format-patch is not evaluated;
3) The field Cc: is loaded only from Cc used in the commit message instead of using even the Cc field filled by format-patch in the email header.
Added comments for point 1). Fixed point 2) and 3).
---
v2: changed the commit message to reflect better the script implementation
contrib/thunderbird-patch-inline/appp.sh | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-)
contrib/thunderbird-patch-inline/appp.sh +14 -4
@@ -6,6 +6,9 @@ # ExternalEditor can be downloaded at http://globs.org/articles.php?lng=en&pg=2 +# NOTE: You must change some words in this script according to the language +# used by Mozilla Thunderbird, as <Subject>, <To>, <Don't remove this line>. + CONFFILE=~/.appprc SEP="-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"
@@ -26,17 +29,24 @@ fi cd - > /dev/null SUBJECT=`sed -n -e '/^Subject: /p' "${PATCH}"` -HEADERS=`sed -e '/^'"${SEP}"'$/,$d' $1` BODY=`sed -e "1,/${SEP}/d" $1` CMT_MSG=`sed -e '1,/^$/d' -e '/^---$/,$d' "${PATCH}"` DIFF=`sed -e '1,/^---$/d' "${PATCH}"` -CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \ - -e 's/^Signed-off-by: \(.*\)/\1,/gp'` +export PATCH +CCS=`perl -e 'local $/=undef; open FILE, $ENV{'PATCH'}; $text=<FILE>; +close FILE; $cc = $1 if $text =~ /Cc: (.*?(,\n .*?)*)\n/s; $cc =~ s/\n//g; +print $cc;'` + +TO=`perl -e 'local $/=undef; open FILE, $ENV{'PATCH'}; $text=<FILE>; +close FILE; $to = $1 if $text =~ /To: (.*?(,\n .*?)*)\n/s; $to =~ s/\n//g; +print $to;'` +# Change <Subject> before next line according to Thunderbird language echo "$SUBJECT" > $1 +# Change <To> according to Thunderbird language +echo "To: $TO" >> $1 echo "Cc: $CCS" >> $1 -echo "$HEADERS" | sed -e '/^Subject: /d' -e '/^Cc: /d' >> $1 echo "$SEP" >> $1 echo "$CMT_MSG" >> $1
Signature · 1 line
1.7.3.4
Quoted 8 lines · Marco Stornelli
The current script has got the following problems:
1) It doesn't work if the language used by Thunderbird is not English;
2) The field To: filled by format-patch is not evaluated;
3) The field Cc: is loaded only from Cc used in the commit message instead of using even the Cc field filled by format-patch in the email header.
Quoted 5 lines
Added comments for point 1). Fixed point 2) and 3).
Signed-off-by Marco Stornelli <[email protected]>---
v2: changed the commit message to reflect better the script implementation
I actually thought what the log message of the previous version claimed to do was much more sensible.
The language used in the above 3 items describe what you perceive as a problem, but it is unclear what the desired behaviour that is different from the current one is. (2) "... is not evaluated" implies ", which is a problem, so fix it by evaluating it", but there is no single obvious fix to (3) "loaded only from Cc in commit and not Cc from format-patch". Should it ignore Cc from commit log message, or should it take Cc from both log message and e-mail header? I personally think it should the former, but it is not clear which you think is the right thing to do (or perhaps you have a third answer) if you only say "Fixed point 3".
Quoted 30 lines
contrib/thunderbird-patch-inline/appp.sh | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-)contrib/thunderbird-patch-inline/appp.sh +4
-3@@ -6,6 +6,9 @@ # ExternalEditor can be downloaded at http://globs.org/articles.php?lng=en&pg=2 +# NOTE: You must change some words in this script according to the language +# used by Mozilla Thunderbird, as <Subject>, <To>, <Don't remove this line>. + CONFFILE=~/.appprc SEP="-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"@@ -26,17 +29,24 @@ fi cd - > /dev/null SUBJECT=`sed -n -e '/^Subject: /p' "${PATCH}"` -HEADERS=`sed -e '/^'"${SEP}"'$/,$d' $1` BODY=`sed -e "1,/${SEP}/d" $1` CMT_MSG=`sed -e '1,/^$/d' -e '/^---$/,$d' "${PATCH}"` DIFF=`sed -e '1,/^---$/d' "${PATCH}"` -CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \ - -e 's/^Signed-off-by: \(.*\)/\1,/gp'` +export PATCH
contrib/thunderbird-patch-inline/appp.sh fi · line 46
Quoted 10 lines
contrib/thunderbird-patch-inline/appp.sh +8
-0+CCS=`perl -e 'local $/=undef; open FILE, $ENV{'PATCH'}; $text=<FILE>; +close FILE; $cc = $1 if $text =~ /Cc: (.*?(,\n .*?)*)\n/s; $cc =~ s/\n//g; +print $cc;'` + +TO=`perl -e 'local $/=undef; open FILE, $ENV{'PATCH'}; $text=<FILE>; +close FILE; $to = $1 if $text =~ /To: (.*?(,\n .*?)*)\n/s; $to =~ s/\n//g; +print $to;'` +# Change <Subject> before next line according to Thunderbird language echo "$SUBJECT" > $1
"before next line"??? I do not think you meant to rename the variable $SUBJECT to $<localized string for subject>.
contrib/thunderbird-patch-inline/appp.sh fi · line 47
Quoted 1 line
contrib/thunderbird-patch-inline/appp.sh +1
-0+# Change <To> according to Thunderbird language
# Change "To: " according to...
would be less confusing, as the line has to "to" on it when viewed case insensitively.
Quoted 7 lines
contrib/thunderbird-patch-inline/appp.sh +1
-1+echo "To: $TO" >> $1 echo "Cc: $CCS" >> $1 -echo "$HEADERS" | sed -e '/^Subject: /d' -e '/^Cc: /d' >> $1 echo "$SEP" >> $1echo "$CMT_MSG" >> $1
Il 30/08/2012 19:00, Junio C Hamano ha scritto:
Quoted 19 lines
Quoted 8 lines · Marco Stornelli
The current script has got the following problems:
1) It doesn't work if the language used by Thunderbird is not English;
2) The field To: filled by format-patch is not evaluated;
3) The field Cc: is loaded only from Cc used in the commit message instead of using even the Cc field filled by format-patch in the email header.Quoted 5 lines
Added comments for point 1). Fixed point 2) and 3).
Signed-off-by Marco Stornelli <[email protected]>---
v2: changed the commit message to reflect better the script implementationI actually thought what the log message of the previous version claimed to do was much more sensible.
Quoted 10 lines
The language used in the above 3 items describe what you perceive as a problem, but it is unclear what the desired behaviour that is different from the current one is. (2) "... is not evaluated" implies ", which is a problem, so fix it by evaluating it", but there is no single obvious fix to (3) "loaded only from Cc in commit and not Cc from format-patch". Should it ignore Cc from commit log message, or should it take Cc from both log message and e-mail header? I personally think it should the former, but it is not clear which you think is the right thing to do (or perhaps you have a third answer) if you only say "Fixed point 3".
Ok, I can change the commit. Actually with the new implementation Cc: is evaluated in both cases.
Quoted 38 lines
Quoted 38 lines
contrib/thunderbird-patch-inline/appp.sh | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-)contrib/thunderbird-patch-inline/appp.sh +11
-3@@ -6,6 +6,9 @@ # ExternalEditor can be downloaded at http://globs.org/articles.php?lng=en&pg=2 +# NOTE: You must change some words in this script according to the language +# used by Mozilla Thunderbird, as <Subject>, <To>, <Don't remove this line>. + CONFFILE=~/.appprc SEP="-=-=-=-=-=-=-=-=-=# Don't remove this line #=-=-=-=-=-=-=-=-=-"@@ -26,17 +29,24 @@ fi cd - > /dev/null SUBJECT=`sed -n -e '/^Subject: /p' "${PATCH}"` -HEADERS=`sed -e '/^'"${SEP}"'$/,$d' $1` BODY=`sed -e "1,/${SEP}/d" $1` CMT_MSG=`sed -e '1,/^$/d' -e '/^---$/,$d' "${PATCH}"` DIFF=`sed -e '1,/^---$/d' "${PATCH}"` -CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \ - -e 's/^Signed-off-by: \(.*\)/\1,/gp'` +export PATCH +CCS=`perl -e 'local $/=undef; open FILE, $ENV{'PATCH'}; $text=<FILE>; +close FILE; $cc = $1 if $text =~ /Cc: (.*?(,\n .*?)*)\n/s; $cc =~ s/\n//g; +print $cc;'` + +TO=`perl -e 'local $/=undef; open FILE, $ENV{'PATCH'}; $text=<FILE>; +close FILE; $to = $1 if $text =~ /To: (.*?(,\n .*?)*)\n/s; $to =~ s/\n//g; +print $to;'`
Quoted 5 lines
contrib/thunderbird-patch-inline/appp.sh fi · line 46
Quoted 2 lines
contrib/thunderbird-patch-inline/appp.sh +1
-0+# Change <Subject> before next line according to Thunderbird language echo "$SUBJECT" > $1"before next line"??? I do not think you meant to rename the variable $SUBJECT to $<localized string for subject>.
In my case I add a line before in this way:
....
SUBJECT=echo $SUBJECT | sed 's/Subject/Oggetto/g' echo "$SUBJECT" > $1
....
Quoted 4 lines
contrib/thunderbird-patch-inline/appp.sh fi · line 47
Quoted 2 lines
contrib/thunderbird-patch-inline/appp.sh +1
-0+# Change <To> according to Thunderbird language# Change "To: " according to...
Ok.
Quoted 12 lines
would be less confusing, as the line has to "to" on it when viewed case insensitively.
Quoted 7 lines
contrib/thunderbird-patch-inline/appp.sh +1
-1+echo "To: $TO" >> $1 echo "Cc: $CCS" >> $1 -echo "$HEADERS" | sed -e '/^Subject: /d' -e '/^Cc: /d' >> $1 echo "$SEP" >> $1echo "$CMT_MSG" >> $1