Re: [PATCH v2] scripts: socfpga_import_preloader: Translate DOS line endings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sascha,

On 16/06/2023 11:30, Sascha Hauer wrote:
On Fri, Jun 16, 2023 at 10:19:38AM +0100, Ian Abbott wrote:
On 16/06/2023 07:41, Sascha Hauer wrote:
Hi Ian,

On Thu, Jun 15, 2023 at 04:57:38PM +0100, Ian Abbott wrote:
If the handoff files were generated on a Windows system, they will have
DOS line endings.  The `indent` program (with the options used by the
script) does a lousy job tidying up those files, leaving ASCII CR
characters embedded in the lines.  This is particularly bad for array
initializers that have one value per line, because they all end up on a
single line with embedded ASCII CR characters between each value.

Add an initial `sed` command to `copy_source()` to match and remove an
ASCII CR character from the end of each input line.

Also output a message before running `unifdef` and fix the spelling of
"paths" in one of the other messages.

Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx>
---
v2: Corrected tabs in echoed output.
---
   scripts/socfpga_import_preloader | 6 +++++-
   1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/scripts/socfpga_import_preloader b/scripts/socfpga_import_preloader
index bd54e1b913..26a8556b1a 100755
--- a/scripts/socfpga_import_preloader
+++ b/scripts/socfpga_import_preloader
@@ -79,6 +79,10 @@ copy_source() {
   	cp $src $tgt
+	echo "	Translating DOS line endings..."
+	sed -i "s/`echo -e '\r'`$//" $tgt

Why `echo -e '\r'` here? A plain \r should work as well.

A plain \r doesn't work, but \\\r works. I prefer '\r'.

Strange, would be interesting to know where the difference is.
Here both of these commands have behave the same:

echo hallo | unix2dos | sed "s/`echo -e '\r'`$//" | hexdump -C
echo hallo | unix2dos | sed "s/\r$//" | hexdump -C

They both result in:

00000000  68 61 6c 6c 6f 0a                                 |hallo.|
00000006

Sorry, I misinterpreted what you wrote. I thought you meant replace '\r'` with \r, rather than replace `echo -e '\r'` with \r.

I've never seen \r in a sed regular expression before. It seems to be a GNU sed extension. POSIX only supports \\ and \n.

--
-=( Ian Abbott <abbotti@xxxxxxxxx> || MEV Ltd. is a company  )=-
-=( registered in England & Wales.  Regd. number: 02862268.  )=-
-=( Regd. addr.: S11 & 12 Building 67, Europa Business Park, )=-
-=( Bird Hall Lane, STOCKPORT, SK3 0XA, UK. || www.mev.co.uk )=-





[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux