Beispiel #1
0
static int set_state_letter(int argc, char *argv[])
{
	/* 
	 * [0]   [1]       [2]    [3]       [4]
	 * y3act set-state <file> <part-id> <state letter> 
	 */
	
	if (!(strcmp(".", argv[4]) == 0 || strcmp(">", argv[4]) == 0 || strcmp("$", argv[4]) == 0)) {
		fprintf(stderr, "ERROR: Invalid state letter: '%s'\n", argv[4]);
		display_state_letter();
		return 1;
	}

	struct task tasks;
	INIT_LIST_HEAD(&tasks.list);
	if (file_read(&tasks, argv[2]) == -1)
		return 1;

	struct task *t;
	int ret	= find_task(&tasks, &t, argv[3], strlen(argv[3]));
	if (1 != ret) {
		free_tasks(&tasks);
		return 1;
	}
	strcpy(t->state, argv[4]);
	ret = file_new(&tasks, argv[2]); 
	free_tasks(&tasks);
	return ret;
}
Beispiel #2
0
void cleanup() /* {{{ */
{
	/* function to run on termination */
	keybind *lastbind;

	/* free memory allocated normally */
	check_free(searchstring);
	free_tasks(head);
	check_free(cfg.sortmode);
	free(cfg.version);
	free(cfg.formats.task);
	free(cfg.formats.title);
	free(cfg.formats.view);
	free(active_filter);
	while (keybinds!=NULL)
	{
		lastbind = keybinds;
		keybinds = keybinds->next;
		check_free(lastbind->argstr);
		free(lastbind);
	}
	free_colors();
	free_prompts();
	free_formats();

	/* close open files */
	fflush(logfp);
	fclose(logfp);
} /* }}} */
Beispiel #3
0
Datei: test.c Projekt: skn/tasknc
void test_search() /* {{{ */
{
	/* test search functionality */
	char *addcmdstr, *testcmdstr, *tmp;
	const char *proj = "test123";
	const char pri = 'H';
	const char *unique = "simple";
	FILE *cmdout;
	task *this;
	bool pass;

	asprintf(&addcmdstr, "task add pro:%s pri:%c %s", proj, pri, unique);
	cmdout = popen(addcmdstr, "r");
	pclose(cmdout);
	free_tasks(head);
	head = get_tasks(NULL);

	stdout = devnull;
	searchstring = strdup(unique);
	find_next_search_result(head, head);
	stdout = out;
	this = get_task_by_position(selline);
	pass = strcmp(this->project, proj)==0 && this->priority==pri;
	test_result("search", pass);
	if (!pass)
	{
		puts(addcmdstr);
		tmp = var_value_message(find_var("search_string"), 1);
		puts(tmp);
		free(tmp);
		puts("selected:");
		printf("uuid: %s\n", this->uuid);
		printf("description: %s\n", this->description);
		printf("project: %s\n", this->project);
		printf("tags: %s\n", this->tags);
		fflush(stdout);
		asprintf(&testcmdstr, "task list %s", unique);
		system(testcmdstr);
		free(testcmdstr);
	}

	cmdout = popen("task undo", "r");
	pclose(cmdout);
	free(addcmdstr);
} /* }}} */