Mercurial > hg > digilib-old
diff servlet/src/digilib/io/DocuDirectory.java @ 341:d10e4ce2a153
Servlet version 1.5.4b
- filenames with dots (brr...) work when given without extension
author | robcast |
---|---|
date | Wed, 17 Nov 2004 19:30:34 +0100 |
parents | 90bab835fc25 |
children | f8ca069517a2 |
line wrap: on
line diff
--- a/servlet/src/digilib/io/DocuDirectory.java Thu Nov 04 17:06:13 2004 +0100 +++ b/servlet/src/digilib/io/DocuDirectory.java Wed Nov 17 19:30:34 2004 +0100 @@ -425,21 +425,16 @@ } else { // try closest matches without extension idx = -idx - 1; - String fb = FileOps.basename(fn); - DocuDirent fs; if ((idx < fileList.size()) - && (FileOps.basename(((DocuDirent) fileList.get(idx)) - .getName()).equals(fb))) { + && isBaseInList(fileList, idx, fn)) { // idx matches return idx; } else if ((idx > 0) - && (FileOps.basename(((DocuDirent) fileList.get(idx - 1)) - .getName()).equals(fb))) { + && isBaseInList(fileList, idx-1, fn)) { // idx-1 matches return idx - 1; } else if ((idx + 1 < fileList.size()) - && (FileOps.basename(((DocuDirent) fileList.get(idx - 1)) - .getName()).equals(fb))) { + && isBaseInList(fileList, idx+1, fn)) { // idx+1 matches return idx + 1; } @@ -448,6 +443,13 @@ return -1; } + private boolean isBaseInList(List fl, int idx, String fn) { + String dfn = FileOps.basename(((DocuDirent) fl.get(idx)) + .getName()); + return (dfn.equals(fn)||dfn.equals(FileOps.basename(fn))); + } + + /** * Finds the DocuDirent with the name <code>fn</code>. *