X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=src%2Futil.h;h=d0baa3b37e28a7010eca8ff4ef0ddc4948114396;hb=6e84acb58056ce793a08041d202bb96861874025;hp=f073205352529f7cf0977a27261c8ea9aad87e65;hpb=6d8ce73551b4e8f7a0f2556eba525018f4cf684e;p=lackey diff --git a/src/util.h b/src/util.h index f073205..d0baa3b 100644 --- a/src/util.h +++ b/src/util.h @@ -1,77 +1,38 @@ /* * Copyright (C) 2012 Andy Spencer - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#ifndef UTIL_H -#define UTIL_H - /* Macros */ #define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b)) +#define CLAMP(x,l,h) MIN(MAX(x,l),h) #define ROUND(x) ((int)((x)+0.5)) #define N_ELEMENTS(x) (sizeof(x)/sizeof((x)[0])) -/* Time types */ -typedef int year_t; -typedef int day_t; - -typedef enum { - JAN = 0, - FEB = 1, - MAR = 2, - APR = 3, - MAY = 4, - JUN = 5, - JUL = 6, - AUG = 7, - SEP = 8, - OCT = 9, - NOV = 10, - DEC = 11, -} month_t; - -typedef enum { - SUN = 0, - MON = 1, - TUE = 2, - WED = 3, - THU = 4, - FRI = 5, - SAT = 6, -} wday_t; +#define new0(type) alloc0(sizeof(type)) -/* Time functions */ -int is_leap_year(year_t year); -int days_in_year(year_t year); -int days_in_month(year_t year, month_t month); -int weeks_in_month(year_t year, month_t month); -wday_t day_of_week(year_t year, month_t month, day_t day); -wday_t start_of_month(year_t year, month_t month); -day_t start_of_week(year_t year, month_t month, day_t day); -void add_days(year_t *year, month_t *month, day_t *day, int days); -void add_months(year_t *year, month_t *month, int months); +/* Debug functions */ +void util_init(void); -/* Time to string functions */ -const char *month_to_str(month_t month); -const char *month_to_string(month_t month); -const char *day_to_st(wday_t day); -const char *day_to_str(wday_t day); -const char *day_to_string(wday_t day); +/* Stirng functions */ +void strsub(char *str, char find, char repl); -/* Tests */ -void test_time(void); +/* Memory functions */ +void *alloc0(int size); -#endif +/* Debug functions */ +void debug(char *fmt, ...); +void error(char *fmt, ...);