Blob Blame History Raw
--- abcde-2.3.99.7.orig/abcde
+++ abcde-2.3.99.7/abcde
@@ -1116,9 +1116,10 @@
 					esac	
 					COMMENT="--comment \"$COMMENT\""
 				fi
-				# Quick hack to avoid tagging Ogg/Speex, since there is no other way to tag than inline tagging
-				if [ ! "$DOTAG" = "y" ]; then
-					$RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS --author "$TRACKARTIST" --title "$TRACKNAME" "$COMMENT" "$IN" "$OUT"
+				# Tag the file at encode time, as it can't be done after encoding.
+				if [ "$DOTAG" = "y" ]; then
+					$RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS --author "$TRACKARTIST" --title "$TRACKNAME" --comment "$COMMENT" "$IN" "$OUT"
+
 				else
 					$RUN_COMMAND nice $EFFECTIVE_NICE $SPEEXENCODER $SPEEXENCODEROPTS "$IN" "$OUT"
 				fi
@@ -1133,8 +1134,8 @@
 				$RUN_COMMAND nice $EFFECTIVE_NICE $MPPENCODER $MPPENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" "$IN" "$OUT"
 				;;
 			m4a)
-				# Quick hack to avoid tagging Ogg/Speex, since there is no other way to tag than inline tagging
-				if [ ! "$DOTAG" = "y" ]; then
+				# Tag the file at encode time, as it can't be done after encoding.
+				if [ "$DOTAG" = "y" ]; then
 					$RUN_COMMAND nice $EFFECTIVE_NICE $AACENCODER $AACENCODEROPTS --artist "$TRACKARTIST" --album "$DALBUM" --title "$TRACKNAME" --track "$1" --genre "$CDGENRE" --year "$CDYEAR" --comment "$COMMENT" -o "$OUT" "$IN"
 					
 				else
@@ -3291,14 +3292,17 @@
 else
 	while [ $# -gt 0 ]; do
 		# Range parsing code courtesy of Vincent Ho
-		RSTART=$(echo $1 | cut -f1 -d-)
-		REND=$(echo $1 | cut -f2 -d-)
-		if [ "$RSTART" = "$REND" ]; then
-			NEWTRACKS="$RSTART"
+		# Cleaned up to use shell built-ins by Charles Steinkuehler
+		if [ "${1#*[^0-9-]}" != "$1" ]; then
+			log error "syntax error while processing track numbers"
 		else
-			NEWTRACKS=$(f_seq_line $RSTART $REND)
+			RSTART=${1%%-*}
+			REND=${1##*-}
+			while [ ${RSTART:=1} -le ${REND:=0} ] ; do
+				TRACKQUEUE="$TRACKQUEUE $RSTART"
+				RSTART=$(( $RSTART + 1 ))
+			done
 		fi
-		TRACKQUEUE=$(echo "$TRACKQUEUE" "$NEWTRACKS")
 		shift
 	done
 fi
@@ -3594,6 +3598,7 @@
 		FLACENCODER="$FLAC"	
 		if [ "$DOREPLAYGAIN" = "y" ]; then
 			FLACENCODEROPTS="${FLACENCODEROPTS} --replay-gain"
+		fi
 		# FLAC streams can be encapsulated on a Ogg transport layer
 		if echo "$FLACENCODEROPTS" | egrep -- "(^| )--ogg($| )" > /dev/null 2>&1 ;then
 			log error "FLAC on an Ogg container is not yet supported"