Exemplo n.º 1
0
Arquivo: state.c Projeto: pscha/tines
static void* save_state_cmd (int argc, char **argv, void *data)
{
	Node *pos = (Node *) data;
	Node *i;
	Node *j;

	if (savedtree != NULL) {
		tree_free (savedtree);
	}
	savedtree = node_new ();

	i = node_root (pos);
	j = savedtree;
	do {
		j = savedtree = tree_duplicate (i, j);
		i = node_down (i);
		j = node_insert_down (j);
	} while (i != NULL);
	j = node_remove (j);

	{
		int no;

		no = node_no (pos);
		savedtree = node_root (savedtree);
		while (--no)
			savedtree = node_recurse (savedtree);
	}

	return pos;
}
Exemplo n.º 2
0
static int copy_cmd (int argc,char **argv, void *data)
{
	Node *pos = (Node *) data;

	if (clipboard != NULL) {
		tree_free (clipboard);
	}
	clipboard = node_new ();

	clipboard = tree_duplicate (pos, clipboard);
	return (int) pos;
}
Exemplo n.º 3
0
static int paste_cmd (int argc,char **argv, void *data)
{
	Node *pos = (Node *) data;

	if (clipboard == NULL) {
		docmd (pos, "status no data in clipboard");
	} else {
		Node *temp;

		temp = node_insert_down (pos);
		tree_duplicate (clipboard, temp);
	}
	return (int) pos;
}
Exemplo n.º 4
0
static void* cut_cmd (int argc,char **argv, void *data)
{
	Node *pos = (Node *) data;
	if(prefs.readonly){
		cli_outfun("readonly flag set, avoiding tree change");
		return data;
	}

	if (clipboard != NULL) {
		tree_free (clipboard);
	}
	clipboard = node_new ();

	clipboard = tree_duplicate (pos, clipboard);
	pos = node_remove (pos);
	docmd(pos,"tree_changed");
	return pos;
}
Exemplo n.º 5
0
static void* paste_cmd (int argc,char **argv, void *data)
{
	Node *pos = (Node *) data;

	if (clipboard == NULL) {
		docmd (pos, "status no data in clipboard");
	} else {
		Node *temp;
		if(prefs.readonly){
			cli_outfun("readonly flag set, avoiding insertion");
			return data;
		}

		temp = node_insert_down (pos);
		tree_duplicate (clipboard, temp);
		docmd(pos,"tree_changed");
	}
	return pos;
}