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

Reply via email to