$NetBSD: patch-ac,v 1.23 2009/09/15 10:46:10 drochner Exp $

--- abcde.orig	2005-08-26 00:43:27.000000000 +0200
+++ abcde
@@ -1302,14 +1302,20 @@ do_cleancue()
 			# FIXME It doesn't preserve spaces! Why?
 			# FIXME parse $track into PERFORMER and TITLE - abcde already has code for this?
 			n=1
+			newtrack=0
 			echo "PERFORMER \"$DARTIST\"" >> "$CUEFILE_OUT"
 			echo "TITLE \"$DALBUM\"" >> "$CUEFILE_OUT"
 			cat "$CUEFILE_IN" | while read line
 			do
-				if echo "$line" | grep -q "INDEX"
+				if echo "$line" | grep -q "TRACK"
+				then
+					newtrack=1
+				fi
+				if echo "$line" | grep -q "INDEX" && [ $newtrack = 1 ]
 				then
 					eval track="\$TRACK$n"
 					n=$(expr $n + 1)
+					newtrack=0
 					echo "TITLE \"$track\"" >> "$CUEFILE_OUT"
 				fi
 				echo "$line" >> "$CUEFILE_OUT"
@@ -1559,7 +1565,11 @@ do_cddbread ()
 do_cddbedit ()
 {
 	if checkstatus cddb-edit >/dev/null; then
+		# Strip out ^M
 		CDDBDATA="$ABCDETEMPDIR/cddbread.$(checkstatus cddb-choice)"
+		CDDBDATATMP="$ABCDETEMPDIR/cddbread.tmp"
+		tr -d '\r' < $CDDBDATA > $CDDBDATATMP
+		mv $CDDBDATATMP $CDDBDATA
 		VARIOUSARTISTS="$(checkstatus variousartists)"
 		VARIOUSARTISTSTYLE="$(checkstatus variousartiststyle)"
 		return 0
@@ -1824,7 +1834,7 @@ do_cddbedit ()
 	echo "variousartiststyle=$VARIOUSARTISTSTYLE" >> "$ABCDETEMPDIR/status"
 
 	if [ "$EDITCDDB" = "y" ] && [ "$UNINTENTIONALLY_ANGER_THE_FREEDB_PEOPLE" = "y" ]; then
-		if [ $CDDBDATAMD5SUM != "" ]  && [ $CDDBDATAMD5SUM != $($MD5SUM "$CDDBDATA" | cut -d " " -f 1) ]; then
+		if [ "$CDDBDATAMD5SUM" != "" ]  && [ "$CDDBDATAMD5SUM" != "$($MD5SUM '$CDDBDATA' | cut -d' ' -f1)" ]; then
 			# This works but does not have the necessary error checking
 			# yet. If you are familiar with the CDDB spec
 			# (see http://www.freedb.org/src/latest/DBFORMAT) 
@@ -2114,7 +2124,7 @@ MD5SUM=md5sum
 DISTMP3=distmp3
 VORBISCOMMENT=vorbiscomment
 METAFLAC=metaflac
-NORMALIZE=normalize-audio
+NORMALIZE=normalize
 CDSPEED=eject
 VORBISGAIN=vorbisgain
 MKCUE=mkcue
@@ -2169,6 +2179,7 @@ if [ X$(uname) = "XFreeBSD" ] ; then
 	HTTPGET=fetch
 	NEEDCDROMID=y
 	OSFLAVOUR=FBSD
+	MD5SUM=md5
 elif [ X$(uname) = "XDarwin" ] ; then
 	HTTPGET=curl
 	OSFLAVOUR=OSX
@@ -2178,6 +2189,9 @@ elif [ X$(uname) = "XDarwin" ] ; then
 elif [ X$(uname) = "XOpenBSD" ] ; then
 	HTTPGET=wget
 	MD5SUM=md5
+elif [ X$(uname) = "XNetBSD" ] ; then
+	HTTPGET=wget
+	MD5SUM=md5
 else
 	HTTPGET=wget
 fi
@@ -2231,6 +2245,9 @@ if [ "$CDROM" = "" ] ; then
 		CDROM=/dev/acd0c
 	elif [ -e /dev/disk1 ]; then
 		CDROM=/dev/disk1
+	else
+		RAWPART=`sysctl -n kern.rawpartition | awk '{printf "%c",97+$0}'`
+		CDROM=/dev/rcd0$RAWPART
 	fi
 fi
 
@@ -2427,7 +2444,7 @@ fi
 case "$CDROMREADERSYNTAX" in
 	cdparanoia|debug)
 		CDROMREADER="$CDPARANOIA"
-		CDROMREADEROPTS="$CDPARANOIAOPTS"
+		CDROMREADEROPTS="$CDPARANOIAOPTS -g ${CDROM}"
 		;;
 	cdda2wav)
 		CDROMREADER="$CDDA2WAV"
@@ -2681,7 +2698,8 @@ for X in $CDROMREADER $CDDISCID ${NEEDTA
 do
 	# Cut off the command-line options we just added in
 	X=$(echo $X | cut -d' ' -f2)
-	if [ "$(which $X)" = "" ]; then
+	Y="$(which $X | cut -d' ' -f1,2)"
+	if [ "$Y" = "" -o "$Y" = "no $X" ]; then
 		echo "abcde error: $X is not in your path." >&2
 		exit 1
 	elif [ ! -x $(which $X) ]; then
