示例#1
0
void wd_init(void)
{
	/* DjV 027 280103 ---vvv--- */
	/*
	menu[MOPEN].ob_state = DISABLED;
	menu[MDELETE].ob_state = DISABLED;		/* HR 151102 */
	menu[MSHOWINF].ob_state = DISABLED;
	menu[MAPPLIK].ob_state = DISABLED;
	menu[MREMICON].ob_state = DISABLED;
	menu[MCHNGICN].ob_state = DISABLED;
	menu[MCLOSE].ob_state = DISABLED;
	menu[MCLOSEW].ob_state = DISABLED;
	menu[MNEWDIR].ob_state = DISABLED;
	menu[MSELALL].ob_state = DISABLED;
	menu[MSETMASK].ob_state = DISABLED;
	menu[MCYCLE].ob_state = DISABLED;
#if MFFORMAT				/* HR 050303 */
	menu[MFCOPY].ob_state= DISABLED;     /* DjV 006 291202 */
	menu[MFFORMAT].ob_state= DISABLED;   /* DjV 006 291202 */
#endif
	*/
	/* DjV 027 280103 ---^^^--- */

	selection.w = NULL;
	selection.selected = -1;
	selection.n = 0;

	dir_init();
	txt_init();
	edit_init();
}
示例#2
0
void
file_manager__init ()
{
	new_file_manager = ayyi_filemanager_new();

	type_init();
	pixmaps_init();
	dir_init();

	g_idle_add(_load_plugins, NULL);

	initialised = TRUE;
}
int32
FS_opendir(
	IN	fs_handle_t hfs,
	IN	byte * path,
	OUT	tdir_handle_t * phdir)
{
	int32 ret;
	fs_t * pfs = (fs_t *)hfs;
	tdir_t * pdir;

	if (!hfs || !path || !phdir)
		return ERR_FS_INVALID_PARAM;

	ret = FS_OK;
	if (dir_init(pfs, path, &pdir) == DIR_OK) {
		*phdir = (tdir_handle_t)pdir;
	}
	else {
		ret = ERR_FS_INVALID_PATH;
	}

	return ret;
}
示例#4
0
文件: file.c 项目: ralt/tffs-lib
int32 
TFFS_fopen(
	IN	tffs_handle_t hfs,
	IN	byte * file_path,
	IN	byte * open_mode,
	OUT	tfile_handle_t * phfile)
{
	int32 ret;
	tffs_t * ptffs = (tffs_t *)hfs;
	byte * fname, * path;
	byte * dup_file_path;
	tfile_t * pfile;
	tdir_t * pdir;
	tdir_entry_t * pdir_entry;

	if (!hfs || !file_path || !open_mode || !phfile)
		return ERR_TFFS_INVALID_PARAM;

	ret = TFFS_OK;
	pfile = (tfile_t *)Malloc(sizeof(tfile_t));
	dup_file_path = dup_string(file_path);
	pdir_entry = dirent_malloc();
	fname = (byte *)Malloc(DNAME_MAX);
	pfile->secbuf = (ubyte *)Malloc(ptffs->pbs->byts_per_sec);
	Memset(pfile->secbuf, 0, ptffs->pbs->byts_per_sec);

	path = dup_file_path;
	if (!divide_path(dup_file_path, fname)) {
		ret = ERR_TFFS_INVALID_PATH;
		goto _release;
	}
	
	if (!_parse_open_mode(open_mode, &pfile->open_mode)) {
		ret = ERR_TFFS_INVALID_OPENMODE;
		goto _release;
	}

	if ((dir_init(ptffs, path, &pdir)) != DIR_OK) {
		ret = ERR_TFFS_INVALID_PATH;
		goto _release;
	}

	if (dirent_find(pdir, fname, pdir_entry) != DIRENTRY_OK) {

		DBG("%s(): can't find file [%s] at [%s]\n", __FUNCTION__, fname, path);
		if (pfile->open_mode == OPENMODE_READONLY) {
			ret = ERR_TFFS_FILE_NOT_EXIST;
			goto _release;
		}
		
		if (!dirent_init(fname, 0, TRUE, pdir_entry)) {
			ret = ERR_TFFS_INVALID_PATH;
			goto _release;
		}

		if ((ret = dir_append_direntry(pdir, pdir_entry)) != DIR_OK) {
			if (ret == ERR_DIR_NO_FREE_SPACE) {
				ret = ERR_TFFS_NO_FREE_SPACE;
			}
			else {
				ret = ERR_TFFS_DEVICE_FAIL;
			}
			goto _release;
		}
	}
	
	ret = _initialize_file(ptffs, pdir, pdir_entry, pfile);
	if (ret == FILE_OK) {
		*phfile = (tfile_handle_t)pfile;
	}

_release:
	Free(fname);
	Free(dup_file_path);
	return ret;
}
示例#5
0
文件: file.c 项目: ralt/tffs-lib
int32
TFFS_rmfile(
	IN	tffs_handle_t hfs,
	IN	byte * file_path)
{
	int32 ret;
    byte * fname, * path;
    byte * dup_file_path;
    tdir_t * pdir;
    tffs_t * ptffs;
	tdir_entry_t * pdir_entry;

	ret = TFFS_OK;

    if (!hfs || !file_path)
        return ERR_TFFS_INVALID_PARAM;
	
    ptffs = (tffs_t *)hfs;
    dup_file_path = dup_string(file_path);
    fname = (byte *)Malloc(DNAME_MAX);
	pdir_entry = dirent_malloc();

    path = dup_file_path;
    if (!divide_path(dup_file_path, fname)) {
        ret = ERR_TFFS_INVALID_PATH;
        goto _release;
    }

    if ((dir_init(ptffs, path, &pdir)) != DIR_OK) {
        ret = ERR_TFFS_INVALID_PATH;
        goto _release;
    }

	if ((ret = dirent_find(pdir, fname, pdir_entry)) == DIRENTRY_OK) {
		if (dirent_get_dir_attr(pdir_entry) & ATTR_DIRECTORY) {
			ret = ERR_TFFS_IS_NOT_A_FILE;
			goto _release;
		}

		if (dir_del_direntry(pdir, fname) != DIR_OK) {
			ret = ERR_TFFS_REMOVE_FILE_FAIL;
			goto _release;
		}

		if (fat_free_clus(pdir->ptffs->pfat, dirent_get_clus(pdir_entry)) != FAT_OK) {
			ret = ERR_TFFS_REMOVE_FILE_FAIL;
			goto _release;
		}
		
		ret = TFFS_OK;
	}
	else {
		ret = ERR_TFFS_NO_SUCH_FILE;
	    goto _release;
    }

_release:
	Free(fname);
	Free(dup_file_path);
	dirent_release(pdir_entry);
	dir_destroy(pdir);
	return ret;
}