Example #1
0
static imgtoolerr_t rsdos_diskimage_deletefile(imgtool::partition &partition, const char *fname)
{
	imgtoolerr_t err;
	imgtool::image &image(partition.image());
	int pos;
	struct rsdos_dirent ent;

	err = lookup_rsdos_file(image, fname, ent, &pos);
	if (err)
		return err;

	return delete_entry(image, ent, pos);
}
Example #2
0
static imgtoolerr_t rsdos_diskimage_deletefile(imgtool_partition *partition, const char *fname)
{
    imgtoolerr_t err;
    imgtool_image *image = imgtool_partition_image(partition);
    int pos;
    struct rsdos_dirent ent;

    err = lookup_rsdos_file(image, fname, &ent, &pos);
    if (err)
        return err;

    return delete_entry(image, &ent, pos);
}
Example #3
0
static imgtoolerr_t rsdos_diskimage_suggesttransfer(imgtool::partition &partition, const char *fname, imgtool_transfer_suggestion *suggestions, size_t suggestions_length)
{
	imgtoolerr_t err;
	imgtool::image &image(partition.image());
	struct rsdos_dirent ent;
	int pos;

	if (fname)
	{
		err = lookup_rsdos_file(image, fname, ent, &pos);
		if (err)
			return err;

		if (ent.asciiflag == (char) 0xFF)
		{
			/* ASCII file */
			suggestions[0].viability = SUGGESTION_RECOMMENDED;
			suggestions[0].filter = filter_eoln_getinfo;
			suggestions[1].viability = SUGGESTION_POSSIBLE;
			suggestions[1].filter = NULL;
		}
		else if (ent.ftype == 0)
		{
			/* tokenized BASIC file */
			suggestions[0].viability = SUGGESTION_RECOMMENDED;
			suggestions[0].filter = NULL;
			suggestions[1].viability = SUGGESTION_POSSIBLE;
			suggestions[1].filter = filter_cocobas_getinfo;
		}
	}
	else
	{
		suggestions[0].viability = SUGGESTION_RECOMMENDED;
		suggestions[0].filter = NULL;
		suggestions[1].viability = SUGGESTION_POSSIBLE;
		suggestions[1].filter = filter_eoln_getinfo;
		suggestions[2].viability = SUGGESTION_POSSIBLE;
		suggestions[2].filter = filter_cocobas_getinfo;
	}

	return IMGTOOLERR_SUCCESS;
}
Example #4
0
static imgtoolerr_t rsdos_diskimage_readfile(imgtool::partition &partition, const char *fname, const char *fork, imgtool::stream &destf)
{
	imgtoolerr_t err;
	struct rsdos_dirent ent;
	size_t size;
	imgtool::image &img(partition.image());

	err = lookup_rsdos_file(img, fname, ent);
	if (err)
		return err;

	err = process_rsdos_file(&ent, img, &destf, size);
	if (err)
		return err;

	if (size == (size_t) -1)
		return IMGTOOLERR_CORRUPTIMAGE;

	return (imgtoolerr_t)0;
}
Example #5
0
static imgtoolerr_t rsdos_diskimage_readfile(imgtool_partition *partition, const char *fname, const char *fork, imgtool_stream *destf)
{
    imgtoolerr_t err;
    struct rsdos_dirent ent;
    size_t size;
    imgtool_image *img = imgtool_partition_image(partition);

    err = lookup_rsdos_file(img, fname, &ent, NULL);
    if (err)
        return err;

    err = process_rsdos_file(&ent, img, destf, &size);
    if (err)
        return err;

    if (size == (size_t) -1)
        return IMGTOOLERR_CORRUPTIMAGE;

    return (imgtoolerr_t)0;
}