Ejemplo n.º 1
0
/* Navigates the view to given mark if it's valid.  Returns new value for
 * save_msg flag. */
static int
navigate_to_bookmark(FileView *view, char mark)
{
	const bookmark_t *const bmark = get_bookmark(mark);

	if(is_bmark_valid(bmark))
	{
		if(change_directory(view, bmark->directory) >= 0)
		{
			load_dir_list(view, 1);
			(void)ensure_file_is_selected(view, bmark->file);
		}
	}
	else
	{
		if(!char_is_one_of(valid_bookmarks, mark))
			status_bar_message("Invalid mark name");
		else if(is_bmark_empty(bmark))
			status_bar_message("Mark is not set");
		else
			status_bar_message("Mark is invalid");

		move_to_list_pos(view, view->list_pos);
		return 1;
	}
	return 0;
}
Ejemplo n.º 2
0
/* Checks whether given bookmark points to specified directory-file pair.
 * Returns non-zero if so, otherwise zero is returned. */
static int
is_bmark_points_to(const bookmark_t *bmark, const char directory[],
		const char file[])
{
	return !is_bmark_empty(bmark)
	    && bmark->timestamp != (time_t)-1
	    && strcmp(bmark->directory, directory) == 0
	    && strcmp(bmark->file, file) == 0;
}
Ejemplo n.º 3
0
/* Frees memory allocated for bookmark with given index.  For convenience
 * bmark can be NULL. */
static void
clear_mark(bookmark_t *bmark)
{
	if(bmark != NULL && !is_bmark_empty(bmark))
	{
		free(bmark->directory);
		bmark->directory = NULL;

		free(bmark->file);
		bmark->file = NULL;

		bmark->timestamp = time(NULL);
	}
}
Ejemplo n.º 4
0
int
check_mark_directory(FileView *view, char mark)
{
	const bookmark_t *const bmark = get_bookmark(mark);

	if(!is_bmark_empty(bmark))
	{
		if(stroscmp(view->curr_dir, bmark->directory) == 0)
		{
			return find_file_pos_in_list(view, bmark->file);
		}
	}

	return -1;
}
Ejemplo n.º 5
0
int
check_mark_directory(FileView *view, char mark)
{
	const bookmark_t *const bmark = get_bmark_by_name(mark);

	if(!is_bmark_empty(bmark))
	{
		if(paths_are_equal(view->curr_dir, bmark->directory))
		{
			return find_file_pos_in_list(view, bmark->file);
		}
	}

	return -1;
}
Ejemplo n.º 6
0
int
init_active_bookmarks(const char marks[], int active_bookmarks[])
{
	int i, x;

	i = 0;
	for(x = 0; x < NUM_BOOKMARKS; ++x)
	{
		if(!char_is_one_of(marks, index2mark(x)))
			continue;
		if(is_bmark_empty(&bookmarks[x]))
			continue;
		active_bookmarks[i++] = x;
	}
	return i;
}
Ejemplo n.º 7
0
int
is_bookmark_empty(const char mark)
{
	const bookmark_t *const bmark = get_bookmark(mark);
	return is_bmark_empty(bmark);
}
Ejemplo n.º 8
0
/* Checks if a bookmark is valid (exists and points to an existing directory).
 * For convenience bmark can be NULL.  Returns non-zero if so, otherwise zero is
 * returned. */
static int
is_bmark_valid(const bookmark_t *bmark)
{
	return !is_bmark_empty(bmark) && is_valid_dir(bmark->directory);
}