diff options
author | katherine <ageha@airen-no-jikken.icu> | 2021-01-09 14:30:51 -0700 |
---|---|---|
committer | katherine <ageha@airen-no-jikken.icu> | 2021-01-09 14:30:51 -0700 |
commit | bad02f6ac0b272df131608b12b650795c0088e8f (patch) | |
tree | f58e9a00230108f66457721f0242f871090bc8dd | |
parent | 5113a9fd817e5df67b3b9cf9cf3a4fee715587b8 (diff) | |
download | every-master.tar.gz |
-rw-r--r-- | Readme.md | 4 | ||||
-rw-r--r-- | src/calendar.c | 4 | ||||
-rw-r--r-- | src/opt.c | 6 | ||||
-rw-r--r-- | src/opt.h | 2 | ||||
-rw-r--r-- | src/print.c | 13 |
5 files changed, 13 insertions, 16 deletions
@@ -78,7 +78,7 @@ Usage: ./dbg_every [-c CALENDAR_FILE] [-e TEXT_EDITOR] [COMMAND] -v --version print the version of every in use and exit -c --calendar=FILE path to calendar file -e --editor=CMD text editor for editing calendars - --line-delim=CHAR line delimiter for scripting output + --line-term=CHAR line terminator for scripting output --col-delim=CHAR column delimiter for scripting output Commands @@ -108,7 +108,7 @@ equivalent. ### script `every s` prints the upcoming events in an easily-parseable format, for use in -scripting. each line (by-default separated with `\n`) represents one upcoming +scripting. each line (by-default terminated with `\n`) represents one upcoming event, with fields (by default) delimited with `\t`. the fields are: diff --git a/src/calendar.c b/src/calendar.c index b852b1c..e656525 100644 --- a/src/calendar.c +++ b/src/calendar.c @@ -596,9 +596,9 @@ static char* sub_get_msg(struct state_s *s) } } - if (c == opt_line_delim() || c == opt_col_delim()) { + if (c == opt_line_term() || c == opt_col_delim()) { sub_set_pos(s, sub_get_pos(s)); - ERRP("message may not contain line or column delimiter characters"); + ERRP("message may not contain column delimiter or line terminator"); s->err_flag = true; free(msg); return NULL; @@ -17,8 +17,8 @@ static struct simple_opt options[] = { "path to calendar file", "FILE" }, { SIMPLE_OPT_STRING, 'e', "editor", true, "text editor for editing calendars", "CMD" }, - { SIMPLE_OPT_CHAR, '\0', "line-delim", true, - "line delimiter for scripting output" }, + { SIMPLE_OPT_CHAR, '\0', "line-term", true, + "line terminator for scripting output" }, { SIMPLE_OPT_CHAR, '\0', "col-delim", true, "column delimiter for scripting output" }, { SIMPLE_OPT_END } @@ -99,7 +99,7 @@ char* opt_editor(void) return getenv("EDITOR"); } -char opt_line_delim(void) +char opt_line_term(void) { if (options[4].was_seen) return options[4].val.v_char; @@ -12,7 +12,7 @@ void opt_parse(int argc, char **argv); char* opt_calpath(void); char* opt_editor(void); -char opt_line_delim(void); +char opt_line_term(void); char opt_col_delim(void); enum opt_command_e opt_command(void); diff --git a/src/print.c b/src/print.c index 02f78c6..34c1802 100644 --- a/src/print.c +++ b/src/print.c @@ -195,8 +195,7 @@ void print_script(struct calendar_s *cal) size_t i, j; struct tm t = { 0 }; time_t now = time(NULL), *rttmp; - char cd; - bool first = true; + char cd, lt; struct buf_s *buf = malloc(cal->count * sizeof(*buf)); if (buf == NULL) { @@ -205,6 +204,7 @@ void print_script(struct calendar_s *cal) } cd = opt_col_delim(); + lt = opt_line_term(); /* fill buffer with active events */ for (i = 0, j = 0; i < cal->count; i++) { @@ -223,23 +223,20 @@ void print_script(struct calendar_s *cal) for (i = 0; i < j; i++) { t = *localtime( &(buf[i].rt) ); - if (!first) - printf("%c", opt_line_delim()); - printf( "%d%c%d%c%d%c%d%c%d%c%d%c" /* date */ "%d%c" /* urgent */ "%d%c" /* local */ "%s" /* msg */ + "%c" /* line_end */ , t.tm_year + 1900, cd, t.tm_mon + 1, cd, t.tm_mday, cd, t.tm_hour, cd, t.tm_min, cd, t.tm_sec, cd, cal->entries[i].urgent, cd, cal->entries[i].local, cd, - (cal->entries[i].msg == NULL ? "" : cal->entries[i].msg) + (cal->entries[i].msg == NULL ? "" : cal->entries[i].msg), + lt ); - - first = false; } free(buf); |