Jesus Climent wrote: > On Thu, Apr 21, 2005 at 04:13:59PM -0600, Peter Karbaliotis wrote: > >>I have a CD with a data track in track 1 so I was trying to grab the >>audio tracks (2-9) using the command 'abcde -b -T 1 2-9' and was left >>with the tracks still numbered 2 through 9. Using -T 3 resulted in >>tracks numbered 4 to 11. >> >>The problem is in the expression for calculating TRACKNUM: >> $(expr ${UTRACKNUM} +${STARTTRACKNUMBER} - 1 ) >>The '-1' should be replaced by something like ${FIRSTTRACKNUM}. > > > Never thought on that use for the -T option. Ingenious! > > I will check that patch! >
This seems to do the trick. I couldn't figure out any better way to get the first item in TRACKQUEUE. Peter
--- abcde.orig 2005-04-25 15:53:05.000000000 -0600 +++ abcde 2005-04-25 16:13:23.395695871 -0600 @@ -292,7 +292,7 @@ if [ -n "$STARTTRACKNUMBER" -a -n "$STARTTRACKNUMBERTAG" ] ; then # Get the trackpadding from the current track CURRENTTRACKPADDING=$(echo -n $UTRACKNUM | wc -c) - TRACKNUM=$( printf %0.${CURRENTTRACKPADDING}d $(expr ${UTRACKNUM} + ${STARTTRACKNUMBER} - 1 )) + TRACKNUM=$( printf %0.${CURRENTTRACKPADDING}d $(expr ${UTRACKNUM} + ${STARTTRACKNUMBER} - ${FIRSTTRACKNUM} )) fi for OUTPUT in $(echo $OUTPUTTYPE | tr , \ ) do @@ -691,7 +691,7 @@ if [ -n "$STARTTRACKNUMBER" ] ; then # Get the trackpadding from the current track CURRENTTRACKPADDING=$(echo -n $UTRACKNUM | wc -c) - TRACKNUM=$( printf %0.${CURRENTTRACKPADDING}d $(expr ${UTRACKNUM} + ${STARTTRACKNUMBER} - 1 )) + TRACKNUM=$( printf %0.${CURRENTTRACKPADDING}d $(expr ${UTRACKNUM} + ${STARTTRACKNUMBER} - ${FIRSTTRACKNUM} )) else TRACKNUM=${UTRACKNUM} fi @@ -771,7 +771,7 @@ if [ -n "$STARTTRACKNUMBER" ] ; then # Get the trackpadding from the current track CURRENTTRACKPADDING=$(echo -n $UTRACKNUM | wc -c) - TRACKNUM=$( printf %0.${CURRENTTRACKPADDING}d $(expr ${UTRACKNUM} + ${STARTTRACKNUMBER} - 1 )) + TRACKNUM=$( printf %0.${CURRENTTRACKPADDING}d $(expr ${UTRACKNUM} + ${STARTTRACKNUMBER} - ${FIRSTTRACKNUM} )) else TRACKNUM=${UTRACKNUM} fi @@ -1951,6 +1951,8 @@ TRACKQUEUE=$(echo "$TRACKQUEUE" "$NEWTRACKS") shift done + # Strip any leading spaces and grab the first item in TRACKQUEUE + FIRSTTRACKNUM=$(echo "$TRACKQUEUE" | sed 's/^ *//' | sed 's/ .*$//') fi # List of valid actions: cddb,read,normalize,encode,tag,move,playlist,clean