Fixed some recent GCC + 64-bit arch warnings.
[timeplan.git] / timeplan.c
index f710be7..5021932 100644 (file)
@@ -25,7 +25,7 @@
 #define ERRNO2 strerror(errno)
 #define FAKEUSE =0
 
-static const char version[]="This is TimePlan, version 1.0\n";
+static const char version[]="This is TimePlan, version 1.0.1\n";
 static const char *pname;
 static char *finame;
 static FILE *fi;
@@ -39,9 +39,9 @@ static unsigned long lifetime_seq=1;
 
 static void usage(void)
 {
-       fprintf(stderr,"\
-%s\
-This command summarizes the timelog information:\n\
+       fprintf(stderr,"%s%s%s",
+version,
+"This command summarizes the timelog information:\n\
 \n\
 Usage: timeplan [-u|--unsort] [-s|--stores] [-T|--timetot]  [-t|--tree]\n\
                 [-c|--condition <cond>] [-f|--formtotal <fmtstring>]\n\
@@ -51,6 +51,7 @@ Usage: timeplan [-u|--unsort] [-s|--stores] [-T|--timetot]  [-t|--tree]\n\
   -u, --unsort\t\tDon't sort the result in any way\n\
   -s, --stores\t\tSort the result by stores count\n\
   -T, --timetot\t\tSort the result by total time (default)\n\
+","\
   -t, --tree\t\tOrganize data as hierarchy tree\n\
   -a, --average\t\tDisplay all times as average-per-day value\n\
   -c, --condition\tDefine condition variable\n\
@@ -59,7 +60,7 @@ Usage: timeplan [-u|--unsort] [-s|--stores] [-T|--timetot]  [-t|--tree]\n\
   -v, --verbose\t\tInform about phases of transfer\n\
   -h, --help\t\tPrint a summary of the options\n\
   -V, --version\t\tPrint the version number\n\
-",version);
+");
        exit(EXIT_FAILURE);
 }
 
@@ -114,7 +115,7 @@ char *end,*s2;
                                for (s2=s+1;isdigit(*s2);s2++);
                                l=strtol(s+1,&end,10);
                                if (end!=s2) {
-                                       fprintf(ERRH1"Number parse error at column %d of formtotal string!\n",ERRH2,s-formtotal);
+                                       fprintf(ERRH1"Number parse error at column %ld of formtotal string!\n",ERRH2,(long)(s-formtotal));
                                        exit(EXIT_FAILURE);
                                        }
                                if (*s=='*') tot*=l;
@@ -232,7 +233,7 @@ struct textlist {
        int line;
        char text[1];
        };
-struct textlist *conditions,**conditionstail=&conditions;
+static struct textlist *conditions,**conditionstail=&conditions;
 
 static int iscondition(const char *text)
 {
@@ -309,12 +310,12 @@ int isplus;
                        while (isspace(*s)) s++;
                        if (*s==':') break;
                        if (!isalpha(*s)) {
-                               fprintf(ERRH1"Invalid character at offset %d"WHERE1,ERRH2,s-buf+1,WHERE2);
+                               fprintf(ERRH1"Invalid character at offset %ld"WHERE1,ERRH2,(long)(s-buf+1),WHERE2);
                                exit(EXIT_FAILURE);
                                }
                        for (s2=s+1;isalpha(*s2);s2++);
                        if (*s2!='+' && *s2!='-') {
-                               fprintf(ERRH1"Only plus ('+') or minus ('-'), not '%c' expected at offset %d"WHERE1,ERRH2,*s2,s2-buf+1,WHERE2);
+                               fprintf(ERRH1"Only plus ('+') or minus ('-'), not '%c' expected at offset %ld"WHERE1,ERRH2,*s2,(long)(s2-buf+1),WHERE2);
                                exit(EXIT_FAILURE);
                                }
                        isplus=(*s2=='+'); *s2++='\0';
@@ -693,7 +694,7 @@ const char *days[]={"Ne","Po","Ut","St","Ct","Pa","So"};
                        t=mktime(&tm);
                        if (t==-1 || tm.tm_wday<0 || tm.tm_wday>6
                            || tm.tm_mday<1 || tm.tm_mday>31
-                                       || tm.tm_mon <1 || tm.tm_mon >12
+                                       || tm.tm_mon <0 || tm.tm_mon >11
                                        || tm.tm_year<80 || tm.tm_year>150
                                  ) {
                                fprintf(ERRH1"Incorrect timestamp \"%s\""WHERE1,ERRH2,buf,WHERE2);