git://source.jalview.org
/
jalview.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5560848
)
JAL-3141 Fixed what happens when suffix template has no '%n' index
author
Ben Soares
<bsoares@dundee.ac.uk>
Tue, 22 Jan 2019 13:15:08 +0000
(13:15 +0000)
committer
Ben Soares
<bsoares@dundee.ac.uk>
Tue, 22 Jan 2019 13:15:08 +0000
(13:15 +0000)
src/jalview/io/BackupFilenameParts.java
patch
|
blob
|
history
diff --git
a/src/jalview/io/BackupFilenameParts.java
b/src/jalview/io/BackupFilenameParts.java
index
93aa602
..
a91414a
100644
(file)
--- a/
src/jalview/io/BackupFilenameParts.java
+++ b/
src/jalview/io/BackupFilenameParts.java
@@
-22,21
+22,12
@@
public class BackupFilenameParts
}
public BackupFilenameParts(String filename, String base, String template,
}
public BackupFilenameParts(String filename, String base, String template,
- int digits)
+ int suggesteddigits)
{
this.isBackupFile = false;
{
this.isBackupFile = false;
- // calculate minimum length of a backup filename
- int minlength = base.length() + template.length()
- - BackupFiles.NUM_PLACEHOLDER.length() + digits ;
-
- if (!(filename.startsWith(base) && filename.length() >= minlength))
- {
- // non-starter
- return;
- }
-
int numcharstart = template.indexOf(BackupFiles.NUM_PLACEHOLDER);
int numcharstart = template.indexOf(BackupFiles.NUM_PLACEHOLDER);
+ int digits = 0;
String templateStart = template;
String templateEnd = "";
if (numcharstart > -1)
String templateStart = template;
String templateEnd = "";
if (numcharstart > -1)
@@
-44,23
+35,33
@@
public class BackupFilenameParts
templateStart = template.substring(0, numcharstart);
templateEnd = template.substring(
numcharstart + BackupFiles.NUM_PLACEHOLDER.length());
templateStart = template.substring(0, numcharstart);
templateEnd = template.substring(
numcharstart + BackupFiles.NUM_PLACEHOLDER.length());
+ digits = suggesteddigits;
}
}
+ // calculate minimum length of a backup filename
+ int minlength = base.length() + template.length()
+ - BackupFiles.NUM_PLACEHOLDER.length() + digits ;
+
+ if (!(filename.startsWith(base) && filename.length() >= minlength))
+ {
+ // non-starter
+ return;
+ }
+
int startLength = base.length() + templateStart.length();
int endLength = templateEnd.length();
int startLength = base.length() + templateStart.length();
int endLength = templateEnd.length();
- String numString = filename.substring(startLength,
- filename.length() - endLength);
+ String numString = numcharstart > -1?filename.substring(startLength,
+ filename.length() - endLength):"";
if (filename.length() >= startLength + digits + endLength
&& filename.startsWith(base + templateStart)
&& filename.endsWith(templateEnd)
if (filename.length() >= startLength + digits + endLength
&& filename.startsWith(base + templateStart)
&& filename.endsWith(templateEnd)
- && numString.matches("[0-9]+"))
+ && numString.matches("[0-9]*"))
{
this.base = base;
this.templateStart = templateStart;
{
this.base = base;
this.templateStart = templateStart;
- this.num = Integer.parseInt(numString);
+ this.num = numString.length() > 0?Integer.parseInt(numString):0;
this.digits = digits;
this.digits = digits;
- this.templateStart = templateStart;
this.templateEnd = templateEnd;
this.isBackupFile = true;
}
this.templateEnd = templateEnd;
this.isBackupFile = true;
}