From 3227b27ef4ae8b2d503ccbb7b2bffd3fc797908d Mon Sep 17 00:00:00 2001 From: mdb Date: Fri, 24 Oct 2003 18:34:28 +0000 Subject: [PATCH] Fixed regex handling. git-svn-id: https://samskivert.googlecode.com/svn/trunk@1277 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../src/java/robodj/convert/CDParanoiaRipper.java | 12 ++++++------ .../robodj/src/java/robodj/convert/LameEncoder.java | 6 +++--- projects/robodj/src/java/robodj/convert/RipUtil.java | 9 ++++++++- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/projects/robodj/src/java/robodj/convert/CDParanoiaRipper.java b/projects/robodj/src/java/robodj/convert/CDParanoiaRipper.java index 64d5a0da..ae19d0d8 100644 --- a/projects/robodj/src/java/robodj/convert/CDParanoiaRipper.java +++ b/projects/robodj/src/java/robodj/convert/CDParanoiaRipper.java @@ -1,5 +1,5 @@ // -// $Id: CDParanoiaRipper.java,v 1.8 2003/10/10 21:30:42 mdb Exp $ +// $Id: CDParanoiaRipper.java,v 1.9 2003/10/24 18:34:28 mdb Exp $ package robodj.convert; @@ -58,10 +58,10 @@ public class CDParanoiaRipper implements Ripper // see if we match our regular expression Matcher match = regex.matcher(inline); - if (match.matches()) { - flist.add(inline.substring(match.start(0), match.end(0))); + if (match.find()) { flist.add(inline.substring(match.start(1), match.end(1))); - } + flist.add(inline.substring(match.start(2), match.end(2))); + } } // check the return value of the process @@ -153,11 +153,11 @@ public class CDParanoiaRipper implements Ripper // parse the output Matcher match = regex.matcher(out); if (match.matches()) { - String action = out.substring(match.start(0), match.end(0)); + String action = out.substring(match.start(1), match.end(1)); long offset = -1L; try { offset = Long.parseLong( - out.substring(match.start(1), match.end(1))); + out.substring(match.start(2), match.end(2))); } catch (NumberFormatException nfe) { // System.err.println("Malformed pos. info: " + out); continue; diff --git a/projects/robodj/src/java/robodj/convert/LameEncoder.java b/projects/robodj/src/java/robodj/convert/LameEncoder.java index 937858ea..4dbe5622 100644 --- a/projects/robodj/src/java/robodj/convert/LameEncoder.java +++ b/projects/robodj/src/java/robodj/convert/LameEncoder.java @@ -1,5 +1,5 @@ // -// $Id: LameEncoder.java,v 1.3 2003/10/10 21:30:42 mdb Exp $ +// $Id: LameEncoder.java,v 1.4 2003/10/24 18:34:28 mdb Exp $ package robodj.convert; @@ -60,9 +60,9 @@ public class LameEncoder implements Encoder int offset = -1, total = -1; try { offset = Integer.parseInt( - out.substring(match.start(0), match.end(0))); - total = Integer.parseInt( out.substring(match.start(1), match.end(1))); + total = Integer.parseInt( + out.substring(match.start(2), match.end(2))); } catch (NumberFormatException nfe) { System.err.println("Malformed position info: " + out); continue; diff --git a/projects/robodj/src/java/robodj/convert/RipUtil.java b/projects/robodj/src/java/robodj/convert/RipUtil.java index cf59dbd6..f0a84f80 100644 --- a/projects/robodj/src/java/robodj/convert/RipUtil.java +++ b/projects/robodj/src/java/robodj/convert/RipUtil.java @@ -1,8 +1,10 @@ // -// $Id: RipUtil.java,v 1.2 2000/10/30 22:21:11 mdb Exp $ +// $Id: RipUtil.java,v 1.3 2003/10/24 18:34:28 mdb Exp $ package robodj.convert; +import com.samskivert.util.StringUtil; + /** * This class contains utility functions related to ripping. */ @@ -44,6 +46,11 @@ public class RipUtil */ public static int computeDiscLength (Ripper.TrackInfo[] info) { + if (info == null || info.length == 0) { + String errmsg = "Must have at least one track to compute disc " + + "length [info=" + StringUtil.toString(info) + "]"; + throw new IllegalArgumentException(errmsg); + } return (info[info.length-1].offset + info[info.length-1].length - info[0].offset)/FRAMES_PER_SECOND;