mirror of
https://github.com/michaeldv/pit.git
synced 2025-12-10 08:25:34 +00:00
Added for_each... macros
This commit is contained in:
10
src/pit.h
10
src/pit.h
@@ -10,12 +10,18 @@ typedef unsigned char uchar;
|
|||||||
#include "table.h"
|
#include "table.h"
|
||||||
|
|
||||||
/* Externals. */
|
/* Externals. */
|
||||||
|
extern PTable activities;
|
||||||
|
extern PTable notes;
|
||||||
extern PTable projects;
|
extern PTable projects;
|
||||||
extern PTable tasks;
|
extern PTable tasks;
|
||||||
extern PTable notes;
|
|
||||||
extern PTable activities;
|
|
||||||
extern PTable users;
|
extern PTable users;
|
||||||
|
|
||||||
|
#define for_each_activity(ptr) for (ptr = (PActivity)tasks->slots; (ptr - (PActivity)tasks->slots) / sizeof(PActivity) < tasks->number_of_records; ptr++)
|
||||||
|
#define for_each_note(ptr) for (ptr = (PNote)tasks->slots; (ptr - (PNote)tasks->slots) / sizeof(PNote) < tasks->number_of_records; ptr++)
|
||||||
|
#define for_each_project(ptr) for (ptr = (PProject)tasks->slots; (ptr - (PProject)tasks->slots) / sizeof(PProject) < tasks->number_of_records; ptr++)
|
||||||
|
#define for_each_task(ptr) for (ptr = (PTask)tasks->slots; (ptr - (PTask)tasks->slots) / sizeof(PTask) < tasks->number_of_records; ptr++)
|
||||||
|
#define for_each_user(ptr) for (ptr = (PUser)users->slots; (ptr - (PUser)users->slots) / sizeof(PUser) < users->number_of_records; ptr++)
|
||||||
|
|
||||||
/* Command line parsing. */
|
/* Command line parsing. */
|
||||||
int pit_arg_is_option(char **arg);
|
int pit_arg_is_option(char **arg);
|
||||||
int pit_arg_option(char **arg);
|
int pit_arg_option(char **arg);
|
||||||
|
|||||||
@@ -5,11 +5,10 @@
|
|||||||
|
|
||||||
static int already_exist(char *name)
|
static int already_exist(char *name)
|
||||||
{
|
{
|
||||||
ulong i;
|
|
||||||
PProject pp;
|
PProject pp;
|
||||||
|
|
||||||
pit_db_load();
|
pit_db_load();
|
||||||
for(i = 0, pp = (PProject)projects->slots; i < projects->number_of_records; i++, pp++) {
|
for_each_project(pp) {
|
||||||
if (!strcmp(pp->name, name)) {
|
if (!strcmp(pp->name, name)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -19,11 +18,10 @@ static int already_exist(char *name)
|
|||||||
|
|
||||||
static void list_projects()
|
static void list_projects()
|
||||||
{
|
{
|
||||||
ulong i;
|
|
||||||
PProject pp;
|
PProject pp;
|
||||||
|
|
||||||
pit_db_load();
|
pit_db_load();
|
||||||
for(i = 0, pp = (PProject)projects->slots; i < projects->number_of_records; i++, pp++) {
|
for_each_project(pp) {
|
||||||
printf("%c %lu: %s (%s, %lu open task%s)\n", (pp->id == projects->current ? '*' : ' '),
|
printf("%c %lu: %s (%s, %lu open task%s)\n", (pp->id == projects->current ? '*' : ' '),
|
||||||
pp->id, pp->name, pp->status,
|
pp->id, pp->name, pp->status,
|
||||||
pp->number_of_open_tasks, (pp->number_of_open_tasks != 1 ? "s" : ""));
|
pp->number_of_open_tasks, (pp->number_of_open_tasks != 1 ? "s" : ""));
|
||||||
@@ -72,11 +70,10 @@ static int show_project(ulong number)
|
|||||||
pp->number_of_open_tasks, (pp->number_of_open_tasks != 1 ? "s" : ""),
|
pp->number_of_open_tasks, (pp->number_of_open_tasks != 1 ? "s" : ""),
|
||||||
pp->number_of_closed_tasks, (pp->number_of_closed_tasks != 1 ? "s" : ""));
|
pp->number_of_closed_tasks, (pp->number_of_closed_tasks != 1 ? "s" : ""));
|
||||||
if (pp->number_of_open_tasks > 0) {
|
if (pp->number_of_open_tasks > 0) {
|
||||||
ulong i;
|
|
||||||
PTask pt = (PTask)tasks->slots;
|
PTask pt = (PTask)tasks->slots;
|
||||||
|
|
||||||
puts("Open tasks:");
|
puts("Open tasks:");
|
||||||
for(i = 0; i < tasks->number_of_records; i++, pt++) {
|
for_each_task(pt) {
|
||||||
if (pt->closed_at) {
|
if (pt->closed_at) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,11 +23,10 @@ static void list_tasks(char *mode, char *status, char *deadline, ulong priority)
|
|||||||
{
|
{
|
||||||
pit_db_load();
|
pit_db_load();
|
||||||
|
|
||||||
ulong i = 0;
|
|
||||||
PTask pt = (PTask)tasks->slots;
|
PTask pt = (PTask)tasks->slots;
|
||||||
PProject pp = (PProject)pit_table_current(projects);
|
PProject pp = (PProject)pit_table_current(projects);
|
||||||
|
|
||||||
for(; i < tasks->number_of_records; i++, pt++) {
|
for_each_task(pt) {
|
||||||
if (pp && pt->project_id != pp->id) {
|
if (pp && pt->project_id != pp->id) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user