bin/date: Upgrade calculations (take 2)
Use uint64_t instead of long, as this type is not correct for platforms like i386 or armv7. Pointed out by: imp
This commit is contained in:
parent
81a37995c7
commit
4ef3964b5f
@ -29,12 +29,13 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <err.h>
|
||||
#include <time.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "vary.h"
|
||||
|
||||
struct trans {
|
||||
long val;
|
||||
int64_t val;
|
||||
const char *str;
|
||||
};
|
||||
|
||||
@ -52,7 +53,7 @@ static struct trans trans_wday[] = {
|
||||
};
|
||||
|
||||
static char digits[] = "0123456789";
|
||||
static int adjhour(struct tm *, char, long, int);
|
||||
static int adjhour(struct tm *, char, int64_t, int);
|
||||
|
||||
static int
|
||||
domktime(struct tm *t, char type)
|
||||
@ -125,7 +126,7 @@ daysinmonth(const struct tm *t)
|
||||
|
||||
|
||||
static int
|
||||
adjyear(struct tm *t, char type, long val, int mk)
|
||||
adjyear(struct tm *t, char type, int64_t val, int mk)
|
||||
{
|
||||
switch (type) {
|
||||
case '+':
|
||||
@ -146,7 +147,7 @@ adjyear(struct tm *t, char type, long val, int mk)
|
||||
}
|
||||
|
||||
static int
|
||||
adjmon(struct tm *t, char type, long val, int istext, int mk)
|
||||
adjmon(struct tm *t, char type, int64_t val, int istext, int mk)
|
||||
{
|
||||
int lmdays;
|
||||
|
||||
@ -206,7 +207,7 @@ adjmon(struct tm *t, char type, long val, int istext, int mk)
|
||||
}
|
||||
|
||||
static int
|
||||
adjday(struct tm *t, char type, long val, int mk)
|
||||
adjday(struct tm *t, char type, int64_t val, int mk)
|
||||
{
|
||||
int lmdays;
|
||||
|
||||
@ -250,7 +251,7 @@ adjday(struct tm *t, char type, long val, int mk)
|
||||
}
|
||||
|
||||
static int
|
||||
adjwday(struct tm *t, char type, long val, int istext, int mk)
|
||||
adjwday(struct tm *t, char type, int64_t val, int istext, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
@ -286,7 +287,7 @@ adjwday(struct tm *t, char type, long val, int istext, int mk)
|
||||
}
|
||||
|
||||
static int
|
||||
adjhour(struct tm *t, char type, long val, int mk)
|
||||
adjhour(struct tm *t, char type, int64_t val, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
@ -331,7 +332,7 @@ adjhour(struct tm *t, char type, long val, int mk)
|
||||
}
|
||||
|
||||
static int
|
||||
adjmin(struct tm *t, char type, long val, int mk)
|
||||
adjmin(struct tm *t, char type, int64_t val, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
@ -372,7 +373,7 @@ adjmin(struct tm *t, char type, long val, int mk)
|
||||
}
|
||||
|
||||
static int
|
||||
adjsec(struct tm *t, char type, long val, int mk)
|
||||
adjsec(struct tm *t, char type, int64_t val, int mk)
|
||||
{
|
||||
if (val < 0)
|
||||
return 0;
|
||||
@ -419,7 +420,7 @@ vary_apply(const struct vary *v, struct tm *t)
|
||||
char which;
|
||||
char *arg;
|
||||
size_t len;
|
||||
long val;
|
||||
int64_t val;
|
||||
|
||||
for (; v; v = v->next) {
|
||||
type = *v->arg;
|
||||
|
Loading…
Reference in New Issue
Block a user