Better keyword (timer->timers)

- sizeof(a)[0]->sizeof(a[0]) thanks to ekleog
    - Add more work to TODO
This commit is contained in:
Ivan Tham 2016-02-02 23:07:13 +08:00
parent 8c0cb46576
commit bf41fc8e6c
3 changed files with 21 additions and 20 deletions

9
TODO
View File

@ -1,8 +1,9 @@
major
-----
- Add options to start and stop spt with only one process
1. Show remaining time to the next timer (using SIGUSR1)
2. Add #ifdef to make libnotify an optional dependency
3. Add more support for non-libnotify such as echo(1)
4. Pause and continue the timer
misc
Misc
----
$ grep -n 'TODO' spt.c

View File

@ -8,15 +8,15 @@ static char *notifyext = ""; /* Notify with extra command (eg. play an alarm) */
* This is the array which defines all the timer that will be used.
* It will be repeated after all of it is executed.
*/
static Timer timer[] = {
/* timer comment */
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 900, "Time to take some nap!"},
static Timers timers[] = {
/* timer(s) comment */
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 1500, "Time to start working!"},
{ 300, "Time to start resting!"},
{ 900, "Time to take some nap!"},
};

10
spt.c
View File

@ -12,12 +12,12 @@
char *argv0;
/* macros */
#define LEN(a) (sizeof(a) / sizeof(a)[0])
#define LEN(a) (sizeof(a) / sizeof(a[0]))
typedef struct {
unsigned int tmr;
char *cmt;
} Timer;
} Timers;
#include "config.h"
@ -102,9 +102,9 @@ main(int argc, char *argv[])
} ARGEND;
run:
notify_send(timer[i].cmt);
sleep(timer[i].tmr);
i + 1 >= LEN(timer) ? i = 0 : i++; /* i infinal loop */
notify_send(timers[i].cmt);
sleep(timers[i].tmr);
i + 1 >= LEN(timers) ? i = 0 : i++; /* i infinal loop */
goto run;
return 0;