From: Blue Swirl <blauwirbel@gmail.com>
To: Stefan Weil <weil@mail.berlios.de>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Andreas Färber" <andreas.faerber@web.de>,
"QEMU Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v2] win32: Fix CRLF problem in make_device_config.sh
Date: Sun, 19 Dec 2010 16:21:17 +0000 [thread overview]
Message-ID: <AANLkTi=90RiXBMd06m8MPENHX8pOrXV7Fcbc4M8hgaSQ@mail.gmail.com> (raw)
In-Reply-To: <4D0E27F7.6020006@mail.berlios.de>
On Sun, Dec 19, 2010 at 3:42 PM, Stefan Weil <weil@mail.berlios.de> wrote:
> Am 18.12.2010 19:59, schrieb Blue Swirl:
>>
>> Thanks, applied.
>>
>> On Sat, Dec 18, 2010 at 5:09 PM, Andreas Färber <andreas.faerber@web.de>
>> wrote:
>>>
>>> Am 18.12.2010 um 17:34 schrieb Stefan Weil:
>>>
>>>> QEMU source code with CRLF line endings
>>>> which is quite common on windows hosts
>>>> fails with current make_device_config.sh.
>>>>
>>>> The awk script gets the name of the included
>>>> file with \r, so instead of pci.mak it will
>>>> search for pci.mak\r which of course does
>>>> not work.
>>>>
>>>> Fix this by removing any \r.
>>>>
>>>> v2:
>>>> Avoid using sub() and \r with awk because they are unsupported
>>>> on some platforms. Use tr to remove \r. This new solution
>>>> improves portability and was suggested by Paolo Bonzini.
>>>>
>>>> Signed-off-by: Stefan Weil <weil@mail.berlios.de>
>>>
>>> Acked-by: Andreas Färber <andreas.faerber@web.de>
>>>>
>>>> ---
>>>> make_device_config.sh | 2 +-
>>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/make_device_config.sh b/make_device_config.sh
>>>> index 8abadfe..596fc5b 100644
>>>> --- a/make_device_config.sh
>>>> +++ b/make_device_config.sh
>>>> @@ -18,7 +18,7 @@ process_includes () {
>>>>
>>>> f=$src
>>>> while [ -n "$f" ] ; do
>>>> - f=`awk '/^include / {ORS=" " ; print "'$src_dir'/" $2}' $f`
>>>> + f=`tr -d '\r' < $f | awk '/^include / {ORS=" "; print "'$src_dir'/"
>>>> $2}'`
>>>> [ $? = 0 ] || exit 1
>>>> all_includes="$all_includes $f"
>>>> done
>>>> --
>>>> 1.7.2.3
>
> The new code raises a new problem (sorry that I did not detect it earlier):
>
> On hosts with /bin/sh != bash, make displays an error from
> make_device_config.sh:
>
> $ touch default-configs/i386-softmmu.mak
> $ make
> GEN i386-softmmu/config-devices.mak
> /qemu/make_device_config.sh: 24: cannot open /qemu/default-configs/pci.mak :
> No such file
>
> make continues, so the error message is not fatal but a cosmetical issue.
> It took me some time to find the reason for this error message although
> it is quite simple:
>
> The filename f which is calculated using awk ends with a blank character
> caused by ORS=" ".
>
> Obviously this blank does not matter for bash and other shells when
> $f is used as a parameter. I/O redirection with bash works, too.
> But dash (and perhaps other simple shells) work different. For dash,
> < $f works like < "$f", so the blank is part of the filename,
> and "pci.mak " of course does not exist. Is this a dash bug or a feature?
>
> Using ORS="" solves the problem for me, but might raise new compatibility
> problems (is an empty records separator always supported?).
>
> Andreas, may I ask you for one more test?
>
> $ echo -e 'include xy\r' | tr -d '\r' | awk '/^include / {ORS=""; print $2}'
> | od -c
>
> It should return 0000002, not 0000003 like the previous test:
>
> 0000000 x y
> 0000002
How about something like this instead:
(SRC_DIR=/src; echo -e 'include xy' | sed -n 's|^include
*\(.*\)|'$SRC_DIR/'\1|p')
/src/xy
next prev parent reply other threads:[~2010-12-19 16:21 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-16 21:52 [Qemu-devel] [PATCH] win32: Fix CRLF problem in make_device_config.sh Stefan Weil
2010-12-16 22:42 ` [Qemu-devel] " Paolo Bonzini
2010-12-17 13:34 ` Andreas Färber
2010-12-17 13:44 ` Paolo Bonzini
2010-12-17 19:01 ` Stefan Weil
2010-12-17 19:33 ` Andreas Färber
2010-12-17 19:54 ` Stefan Weil
2010-12-17 21:00 ` Andreas Färber
2010-12-17 21:25 ` Paolo Bonzini
2010-12-17 22:17 ` Andreas Färber
2010-12-17 23:24 ` Paolo Bonzini
2010-12-18 10:19 ` Stefan Weil
2010-12-18 12:02 ` Andreas Färber
2010-12-18 14:20 ` Stefan Weil
2010-12-17 20:08 ` Paolo Bonzini
2010-12-18 16:34 ` [Qemu-devel] [PATCH v2] " Stefan Weil
2010-12-18 17:09 ` Andreas Färber
2010-12-18 18:59 ` Blue Swirl
2010-12-19 15:42 ` Stefan Weil
2010-12-19 16:06 ` Andreas Färber
2010-12-20 10:37 ` Paolo Bonzini
2010-12-30 21:53 ` Andreas Färber
2010-12-30 22:04 ` [Qemu-devel] [PATCH] make_device_config: Fix non-fatal error message with dash and other shells Stefan Weil
2010-12-30 23:08 ` Andreas Färber
2010-12-19 16:21 ` Blue Swirl [this message]
2010-12-19 16:43 ` [Qemu-devel] [PATCH v2] win32: Fix CRLF problem in make_device_config.sh Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='AANLkTi=90RiXBMd06m8MPENHX8pOrXV7Fcbc4M8hgaSQ@mail.gmail.com' \
--to=blauwirbel@gmail.com \
--cc=andreas.faerber@web.de \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=weil@mail.berlios.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).