From 95671e19c59c396eec98cf50140f3fd62b1b3206 Mon Sep 17 00:00:00 2001
From: Frederic Culot <calcurse@culot.org>
Date: Sun, 1 Jul 2007 17:50:53 +0000
Subject: date2sec() and get_sec_date() prototypes updated to take into account
 date_t type, today() renamed to get_today()

---
 src/utils.c | 57 +++++++++++++++++++++++++----------------------
 src/utils.h | 73 +++++++++++++++++++++++++++++--------------------------------
 2 files changed, 66 insertions(+), 64 deletions(-)

diff --git a/src/utils.c b/src/utils.c
index d97789e..95914a3 100755
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,4 +1,4 @@
-/*	$calcurse: utils.c,v 1.28 2007/05/06 13:27:51 culot Exp $	*/
+/*	$calcurse: utils.c,v 1.29 2007/07/01 17:50:53 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -442,8 +442,8 @@ status_bar(int which_pan, int nc_bar, int nl_bar)
 	wnoutrefresh(swin);
 }
 
-long date2sec(unsigned year, unsigned month, unsigned day, unsigned hour,
-	      unsigned min)
+long 
+date2sec(date_t day, unsigned hour, unsigned min)
 {
 	struct tm start, *lt;
 	time_t tstart, t;
@@ -452,9 +452,9 @@ long date2sec(unsigned year, unsigned month, unsigned day, unsigned hour,
 	lt = localtime(&t);
 	start = *lt;
 
-	start.tm_mon = month;
-	start.tm_mday = day;
-	start.tm_year = year;
+	start.tm_mon = day.mm;
+	start.tm_mday = day.dd;
+	start.tm_year = day.yyyy;
 	start.tm_hour = hour;
 	start.tm_min = min;
 	start.tm_sec = 0;
@@ -463,11 +463,14 @@ long date2sec(unsigned year, unsigned month, unsigned day, unsigned hour,
 	start.tm_mon--;
 	tstart = mktime(&start);
 	if (tstart == -1) {
-		fputs(_("FATAL ERROR in date2sec: failure in mktime\n"), stderr);
-		fprintf(stderr, "%u %u %u %u %u\n", year, month, day, hour, min);
+		fputs(_("FATAL ERROR in date2sec: failure in mktime\n"), 
+		    stderr);
+		fprintf(stderr, "%u %u %u %u %u\n", day.yyyy, day.mm, day.dd, 
+		    hour, min);
 		exit(EXIT_FAILURE);
 	}
-	return tstart;
+
+	return (tstart);
 }
 
 /* Return a string containing the hour of a given date in seconds. */
@@ -571,25 +574,26 @@ long update_time_in_date(long date, unsigned hr, unsigned mn)
  * If no date is entered, current date is chosen.
  */
 long
-get_sec_date(int year, int month, int day)
+get_sec_date(date_t date)
 {
 	struct tm *ptrtime;
 	time_t timer;
 	long long_date;
-	char current_day[3], current_month[3] ,current_year[5];
+	char current_day[] = "dd ";
+	char current_month[] = "mm ";
+	char current_year[] = "yyyy ";
 
-	if (year == 0 && month == 0 && day == 0) {
+	if (date.yyyy == 0 && date.mm == 0 && date.dd == 0) {
 		timer = time(NULL);
 		ptrtime = localtime(&timer);
-		strftime(current_day, 3, "%d", ptrtime);
-		strftime(current_month, 3, "%m", ptrtime);
-		strftime(current_year, 5, "%Y", ptrtime);
-		month = atoi(current_month);
-		day = atoi(current_day);
-		year = atoi(current_year);
-		
+		strftime(current_day, strlen(current_day), "%d", ptrtime);
+		strftime(current_month, strlen(current_month), "%m", ptrtime);
+		strftime(current_year, strlen(current_year), "%Y", ptrtime);
+		date.mm = atoi(current_month);
+		date.dd = atoi(current_day);
+		date.yyyy = atoi(current_year);
 	} 
-	long_date = date2sec(year, month, day, 0, 0);
+	long_date = date2sec(date, 0, 0);
 	return long_date;
 }
 
@@ -767,19 +771,20 @@ void other_status_page(int panel)
 }
 
 /* Returns the beginning of current day in seconds from 1900. */
-long today(void)
+long 
+get_today(void)
 {
 	struct tm *lt;
 	time_t current_time;
 	long current_day;
-	int year, month, day;
+	date_t day;
 
 	current_time = time(NULL);
 	lt = localtime(&current_time);
-	month = lt->tm_mon + 1;
-	day = lt->tm_mday;
-	year = lt->tm_year + 1900;
-	current_day = date2sec(year, month, day, 0, 0);	
+	day.mm = lt->tm_mon + 1;
+	day.dd = lt->tm_mday;
+	day.yyyy = lt->tm_year + 1900;
+	current_day = date2sec(day, 0, 0);	
 
 	return current_day;
 }
diff --git a/src/utils.h b/src/utils.h
index 59b9619..48f7536 100755
--- a/src/utils.h
+++ b/src/utils.h
@@ -1,4 +1,4 @@
-/*	$calcurse: utils.h,v 1.17 2007/03/24 23:12:35 culot Exp $	*/
+/*	$calcurse: utils.h,v 1.18 2007/07/01 17:50:53 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -27,6 +27,8 @@
 #ifndef CALCURSE_UTILS_H
 #define CALCURSE_UTILS_H
 
+#include "calendar.h"
+
 #define MAX(x,y) 	((x)>(y)?(x):(y))
 #define MIN(x,y) 	((x)<(y)?(x):(y))
 
@@ -50,42 +52,37 @@ typedef struct { /* structure defining a keybinding */
 	char *label;
 } binding_t;
 
-void status_mesg(char *mesg_line1, char *mesg_line2);
-void erase_window_part(WINDOW *win, int first_col, int first_row, 
-    int last_col, int last_row);
-WINDOW *popup(int pop_row, int pop_col, int pop_y, int pop_x, char *pop_lab);
-void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);
-void del_char(int pos, char *str);
-char *add_char(int pos, int ch, char *str);
-void showcursor(WINDOW *win, int y, int pos, char *str, int l, int offset);
-void showstring(WINDOW *win, int y, int x, char *str, int len, int pos);
-int getstring(WINDOW *win, char *str, int l, int x, int y);
-int updatestring(WINDOW *win, char **str, int x, int y);
-int is_all_digit(char *string);
-void border_color(WINDOW *window);
-void border_nocolor(WINDOW *window);
-void status_bar(int which_pan, int nc_bar, int nl_bar);
-long date2sec(unsigned year, unsigned month, unsigned day, unsigned hour,
-    unsigned min);
-char *date_sec2hour_str(long sec);
-char *date_sec2date_str(long sec);
-void date_sec2ical_date(long sec, char *ical_date);
-void date_sec2ical_datetime(long sec, char *ical_date);
-long update_time_in_date(long date, unsigned hr, unsigned min);
-long get_sec_date(int year, int month, int day);
-long min2sec(unsigned minutes);
-int check_time(char *string);
-void draw_scrollbar(WINDOW *win, int y, int x, int length, 
-    int bar_top, int bar_bottom, bool hilt);
-void item_in_popup(char *saved_a_start, char *saved_a_end, char *msg, 
-    char *pop_title);
-void win_show(WINDOW * win, char *label);
-void display_item(WINDOW *win, int incolor, char *msg, int recur,
-    int len, int y, int x);
-void reset_status_page(void);
-void other_status_page(int panel);
-long today(void);
-long now(void);
-char *mycpy(const char *src);
+void 	status_mesg(char *, char *);
+void 	erase_window_part(WINDOW *, int, int, int, int);
+WINDOW *popup(int, int, int, int, char *);
+void 	print_in_middle(WINDOW *, int, int, int, char *);
+void 	del_char(int, char *);
+char   *add_char(int, int, char *);
+void 	showcursor(WINDOW *, int, int, char *, int, int);
+void 	showstring(WINDOW *, int, int, char *, int, int);
+int 	getstring(WINDOW *, char *, int, int, int);
+int 	updatestring(WINDOW *, char **, int, int);
+int 	is_all_digit(char *);
+void 	border_color(WINDOW *);
+void 	border_nocolor(WINDOW *);
+void 	status_bar(int, int, int);
+long 	date2sec(date_t, unsigned, unsigned);
+char   *date_sec2hour_str(long);
+char   *date_sec2date_str(long);
+void 	date_sec2ical_date(long, char *);
+void 	date_sec2ical_datetime(long, char *);
+long 	update_time_in_date(long, unsigned, unsigned);
+long 	get_sec_date(date_t);
+long 	min2sec(unsigned);
+int 	check_time(char *);
+void 	draw_scrollbar(WINDOW *, int, int, int, int, int, bool);
+void 	item_in_popup(char *, char *, char *, char *);
+void 	win_show(WINDOW *, char *);
+void 	display_item(WINDOW *, int, char *, int, int, int, int);
+void 	reset_status_page(void);
+void 	other_status_page(int);
+long 	get_today(void);
+long 	now(void);
+char   *mycpy(const char *);
 
 #endif /* CALCURSE_UTILS_H */
-- 
cgit v1.2.3-70-g09d2