Re: [edk2] [edk2-buildtools] build -y logfile has line ending issues on OS X

Subject: Re: [edk2] [edk2-buildtools] build -y logfile has line ending issues on OS X

From: Andrew Fish <afish@apple.com>

To: edk2-buildtools-devel@lists.sourceforge.net, edk2-devel@lists.sourceforge.net

Date: 2013-12-04 18:24:27

  • 2013-12-04 18:24:27  Andrew Fish   Re: [edk2] [edk2-buildtools] build -y logfile has line ending issues on OS X
I think this is the bug:

##
# Writes a string to the file object.
#
# This function writes a string to the file object and a new line is appended
# afterwards. It may optionally wraps the string for better readability.
#
# @File                      The file object to write
# @String                    The string to be written to the file
# @Wrapper                   Indicates whether to wrap the string
#
def FileWrite(File, String, Wrapper=False):
    if Wrapper:
        String = textwrap.fill(String, 120)
    File.write(String + "\r\n")

It should be \n so Python can do the right thing. 

Thanks,

Andrew Fish

On Dec 4, 2013, at 10:05 AM, Andrew Fish <afish@apple.com> wrote:

When I build a log file I noticed that it has line ending issues. Most of the file seems to have 0x0d 0x0a, but some cases have 0x0a 0x0d 0x0a which my editor thinks is a upside-down question mark. Im guessing this is an OS specific line ending issue with the Python code? As you can see in the PS OS X uses LF for newline. 

given:
0x0a -> LF
0x0d -> CR 

The sequence is strange as I thought Windows was CR+LF? I wonder what it looks like on Linux?

hexdump -C of chunks of the log file:

00000000  50 6c 61 74 66 6f 72 6d  20 53 75 6d 6d 61 72 79  |Platform Summary|
00000010  0d 0a 50 6c 61 74 66 6f  72 6d 20 4e 61 6d 65 3a  |..Platform Name:|

00000230  3d 3d 3d 3d 3d 3d 3d 3d  3c 0a 0d 0a 50 6c 61 74  |========<...Plat|

000033d0  7b 20 30 78 42 37 2c 20  30 78 44 36 2c 20 30 78  |{ 0xB7, 0xD6, 0x|
000033e0  37 41 2c 20 30 78 43 35  2c 20 30 78 31 35 2c 20  |7A, 0xC5, 0x15, |
000033f0  30 78 30 35 2c 20 30 78  41 38 2c 20 30 78 34 30  |0x05, 0xA8, 0x40|
00003400  2c 20 30 78 39 44 2c 0a  20 30 78 32 31 2c 20 30  |, 0x9D,. 0x21, 0|
00003410  78 35 35 2c 20 30 78 31  36 2c 20 30 78 35 32 2c  |x55, 0x16, 0x52,|
00003420  20 30 78 38 35 2c 20 30  78 34 45 2c 20 30 78 33  | 0x85, 0x4E, 0x3|
00003430  37 20 7d 0d 0a 20 20 20  20 50 63 64 49 73 61 42  |7 }..    PcdIsaB|

Thanks,

Andrew Fish

PS

(master)>python
Python 2.7.5 (default, Sep 12 2013, 21:33:34) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> fo = open("foo.txt", "wb")
>>> fo.write( "Python is a great language.\nYeah its great!!\n");
>>> fo.close()
>>> ^D
(master)>cat foo.txt 
Python is a great language.
Yeah its great!!
(master)>hexdump -C foo.txt 
00000000  50 79 74 68 6f 6e 20 69  73 20 61 20 67 72 65 61  |Python is a grea|
00000010  74 20 6c 61 6e 67 75 61  67 65 2e 0a 59 65 61 68  |t language..Yeah|
00000020  20 69 74 73 20 67 72 65  61 74 21 21 0a           | its great!!.|
0000002d

------------------------------------------------------------------------------
Sponsored by Intel(R) XDK
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk_______________________________________________
edk2-buildtools-devel mailing list
edk2-buildtools-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-buildtools-devel