mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-22 14:29:00 +00:00
prodos: more work on subdir support
This commit is contained in:
parent
b4852bf33e
commit
ee544928c1
@ -873,7 +873,7 @@ static void display_help(char *name, int version_only) {
|
||||
printf("\n");
|
||||
printf(" Where disk_image is a valid PRODOS disk image\n"
|
||||
" and COMMAND is one of the following:\n");
|
||||
printf("\tCATALOG [dir]\n");
|
||||
printf("\tCATALOG [dir_name]\n");
|
||||
printf("\tLOAD apple_file <local_file>\n");
|
||||
printf("\tSAVE [-t type] [-a addr] [-l len] local_file <apple_file>\n");
|
||||
printf("\tDELETE apple_file\n");
|
||||
@ -970,6 +970,7 @@ int main(int argc, char **argv) {
|
||||
int inode;
|
||||
int address=0, length=0;
|
||||
struct voldir_t voldir;
|
||||
int dir_block;
|
||||
|
||||
/* Check command line arguments */
|
||||
while ((c = getopt (argc, argv,"a:i:l:t:dhvxy"))!=-1) {
|
||||
@ -1226,7 +1227,9 @@ int main(int argc, char **argv) {
|
||||
|
||||
case COMMAND_CATALOG:
|
||||
|
||||
prodos_catalog(prodos_fd,&voldir);
|
||||
dir_block=PRODOS_VOLDIR_KEY_BLOCK;
|
||||
|
||||
prodos_catalog(&voldir,dir_block);
|
||||
|
||||
break;
|
||||
|
||||
|
@ -105,7 +105,7 @@ int prodos_find_next_file(int inode, struct voldir_t *voldir);
|
||||
int prodos_populate_filedesc(unsigned char *file_desc,
|
||||
struct file_entry_t *file_entry);
|
||||
//unsigned char prodos_char_to_type(char type, int lock);
|
||||
void prodos_catalog(int dos_fd, struct voldir_t *voldir);
|
||||
void prodos_catalog(struct voldir_t *voldir, int dir_block);
|
||||
//char *prodos_filename_to_ascii(char *dest,unsigned char *src,int len);
|
||||
//unsigned char prodos_file_type(int value);
|
||||
|
||||
|
@ -209,7 +209,7 @@ static int prodos_print_file_info(int inode, struct voldir_t *voldir) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
void prodos_catalog(int dos_fd, struct voldir_t *voldir) {
|
||||
void prodos_catalog(struct voldir_t *voldir, int dir_block) {
|
||||
|
||||
int catalog_block,catalog_offset,catalog_inode;
|
||||
int blocks_free=0;
|
||||
@ -222,7 +222,7 @@ void prodos_catalog(int dos_fd, struct voldir_t *voldir) {
|
||||
printf(" NAME TYPE BLOCKS MODIFIED CREATED ENDFILE SUBTYPE\n");
|
||||
printf("\n");
|
||||
|
||||
catalog_block=PRODOS_VOLDIR_KEY_BLOCK;
|
||||
catalog_block=dir_block;
|
||||
catalog_offset=0; /* skip the header */
|
||||
catalog_inode=(catalog_block<<8)|catalog_offset;
|
||||
|
||||
|
@ -290,6 +290,10 @@ int prodos_dump_subdir(struct voldir_t *voldir, int subdir_key_block) {
|
||||
|
||||
printf("\tHeader pointer: %x\n",file_entry.header_pointer);
|
||||
|
||||
if (file_entry.storage_type==PRODOS_FILE_SUBDIR) {
|
||||
prodos_dump_subdir(voldir,file_entry.key_pointer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* move to next */
|
||||
|
Loading…
x
Reference in New Issue
Block a user