summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-09-30 01:06:20 +0000
committerZac Medico <zmedico@gentoo.org>2008-09-30 01:06:20 +0000
commit3f64053d6d09603b8b031b3020d6c09556fbf185 (patch)
tree90c07af097fef961ae78dd6cfedf7522267548ac
parent6a45cf7fa340be3754f12222089f2e57cb560b4a (diff)
downloadportage-3f64053d6d09603b8b031b3020d6c09556fbf185.tar.gz
portage-3f64053d6d09603b8b031b3020d6c09556fbf185.tar.bz2
portage-3f64053d6d09603b8b031b3020d6c09556fbf185.zip
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
-rwxr-xr-xbin/isolated-functions.sh6
-rw-r--r--pym/portage/elog/messages.py2
2 files changed, 2 insertions, 6 deletions
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: