From: Zac Medico Date: Tue, 30 Sep 2008 01:06:20 +0000 (-0000) Subject: Now that elog_base() uses 'echo -e' to expand escape codes prior to using X-Git-Tag: v2.2_rc12~51 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3f64053d6d09603b8b031b3020d6c09556fbf185;p=portage.git Now that elog_base() uses 'echo -e' to expand escape codes prior to using 'read' to split on newlines, it's safe to use newlines as delimiters in the log file since 'read' is guaranteed to split any newlines contained in the arguments. svn path=/main/trunk/; revision=11601 --- diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh index 74692c8a7..be8716be6 100755 --- a/bin/isolated-functions.sh +++ b/bin/isolated-functions.sh @@ -170,12 +170,8 @@ elog_base() { return 1 ;; esac - # Note: Even though the message is split on $'\n' here, it's still - # not entirely safe to use it as a delimiter in the log file since - # there can still be escaped newlines that will be expanded due to - # the echo -e parameter. echo -e "$@" | while read line ; do - echo -ne "${messagetype} ${line}\n\0" >> \ + echo "${messagetype} ${line}" >> \ "${T}/logging/${EBUILD_PHASE:-other}" done return 0 diff --git a/pym/portage/elog/messages.py b/pym/portage/elog/messages.py index de736664c..707003122 100644 --- a/pym/portage/elog/messages.py +++ b/pym/portage/elog/messages.py @@ -35,7 +35,7 @@ def collect_ebuild_messages(path): logentries[msgfunction] = [] lastmsgtype = None msgcontent = [] - for l in open(filename, "r").read().split("\0"): + for l in open(filename, "rb"): if not l: continue try: