mirror of
https://github.com/AppleCommander/AppleCommander.git
synced 2024-06-12 17:32:20 +00:00
Handle ProDOS path error in ac -p, 1.27, v1.3.5.6.
This commit is contained in:
parent
7ab0495b0c
commit
683ffd19e8
|
@ -149,12 +149,8 @@ public class ac {
|
|||
Disk disk = new Disk(imageName);
|
||||
FormattedDisk[] formattedDisks = disk.getFormattedDisks();
|
||||
FormattedDisk formattedDisk = formattedDisks[0];
|
||||
FileEntry entry;
|
||||
if (name.path.length > 1) {
|
||||
entry = name.getParent(formattedDisk).createFile();
|
||||
} else {
|
||||
entry = formattedDisk.createFile();
|
||||
}
|
||||
FileEntry entry = name.createEntry(formattedDisk);
|
||||
if (entry != null) {
|
||||
entry.setFilename(name.name);
|
||||
entry.setFiletype(fileType);
|
||||
entry.setFileData(buf.toByteArray());
|
||||
|
@ -163,6 +159,7 @@ public class ac {
|
|||
}
|
||||
formattedDisk.save();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Put <stdin> into the file named fileName on the disk named imageName;
|
||||
|
@ -187,8 +184,7 @@ public class ac {
|
|||
FormattedDisk[] formattedDisks = disk.getFormattedDisks();
|
||||
for (int i = 0; i < formattedDisks.length; i++) {
|
||||
FormattedDisk formattedDisk = formattedDisks[i];
|
||||
List files = formattedDisk.getFiles();
|
||||
FileEntry entry = name.getEntry(files);
|
||||
FileEntry entry = name.getEntry(formattedDisk);
|
||||
if (entry != null) {
|
||||
entry.delete();
|
||||
disk.save();
|
||||
|
@ -209,8 +205,7 @@ public class ac {
|
|||
FormattedDisk[] formattedDisks = disk.getFormattedDisks();
|
||||
for (int i = 0; i < formattedDisks.length; i++) {
|
||||
FormattedDisk formattedDisk = formattedDisks[i];
|
||||
List files = formattedDisk.getFiles();
|
||||
FileEntry entry = name.getEntry(files);
|
||||
FileEntry entry = name.getEntry(formattedDisk);
|
||||
if (entry != null) {
|
||||
if (filter) {
|
||||
FileFilter ff = entry.getSuggestedFilter();
|
||||
|
@ -369,8 +364,7 @@ public class ac {
|
|||
FormattedDisk[] formattedDisks = disk.getFormattedDisks();
|
||||
for (int i = 0; i < formattedDisks.length; i++) {
|
||||
FormattedDisk formattedDisk = formattedDisks[i];
|
||||
List files = formattedDisk.getFiles();
|
||||
FileEntry entry = name.getEntry(files);
|
||||
FileEntry entry = name.getEntry(formattedDisk);
|
||||
if (entry != null) {
|
||||
entry.setLocked(lockState);
|
||||
disk.save();
|
||||
|
@ -463,8 +457,8 @@ public class ac {
|
|||
this.name = path[path.length - 1];
|
||||
}
|
||||
|
||||
public FileEntry getEntry(List files) {
|
||||
if (files == null) return null;
|
||||
public FileEntry getEntry(FormattedDisk formattedDisk) {
|
||||
List files = formattedDisk.getFiles();
|
||||
FileEntry entry = null;
|
||||
for (int i = 0; i < path.length - 1; i++) {
|
||||
String dirName = path[i];
|
||||
|
@ -486,8 +480,11 @@ public class ac {
|
|||
return null;
|
||||
}
|
||||
|
||||
public DirectoryEntry getParent(FormattedDisk formattedDisk) {
|
||||
List files =formattedDisk.getFiles();
|
||||
public FileEntry createEntry(FormattedDisk formattedDisk) throws DiskFullException {
|
||||
if (path.length == 1) {
|
||||
return formattedDisk.createFile();
|
||||
}
|
||||
List files = formattedDisk.getFiles();
|
||||
DirectoryEntry dir = null;
|
||||
for (int i = 0; i < path.length - 1; i++) {
|
||||
String dirName = path[i];
|
||||
|
@ -500,7 +497,13 @@ public class ac {
|
|||
}
|
||||
}
|
||||
}
|
||||
return dir;
|
||||
if (dir != null) {
|
||||
return dir.createFile();
|
||||
} else {
|
||||
System.err.println(textBundle.format(
|
||||
"CommandLineNoMatchMessage", fullName)); //$NON-NLS-1$
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user