On Wed, Oct 14, 2020 at 9:20 AM Philippe Blain <levraiphilippeblain@xxxxxxxxx> wrote: > > Le 12 oct. 2020 à 18:47, Eric Sunshine <sunshine@xxxxxxxxxxxxxx> a écrit : > > This is somewhat onerous to digest and compose. Have you considered > > making it more automated and easier to read? Perhaps something like > > this: > > > > create_crlf_ref () { > > branch=$1 > > cat >.crlf-message-$branch.txt && > > sed -n "1,/^$/p" <.crlf-message-$branch.txt | sed "/^$/d" | append_cr >.crlf-subject-$branch.txt && > > sed -n "/^$/,\$p" <.crlf-message-$branch.txt | sed "1d" | append_cr >.crlf-body-$branch.txt && > > ... > > } > > > > create_crlf_refs () { > > create_crlf_ref crlf <<-\EOF > > Subject first line > > > > Body first line > > Body second line > > EOF > > ... > > } > > I did not try to do that because I did not think of it. > However, I think it's clearer using printf, this way '\n' and '\r' > appear clearly on all platforms, whatever editor is in use > and whatever settings this editor is using to hide or not hide > control characters. Sorry, I'm not sure I understand what you are saying about editors and hiding or not hiding control characters. There are no hidden control characters in the example code I posted. The code I proposed is very explicit about using CRLF terminators. The here-doc fed to create_crlf_ref() contains only the normal LF, but then create_crlf_ref() explicitly converts those to CRLF by calling append_cr().