[Info-vax] Significance of 2020 / 2021 date

1tim....@gmail.com 1tim.lovern at gmail.com
Sat Jan 9 17:20:42 EST 2021


On Saturday, January 9, 2021 at 8:43:09 AM UTC-7, Arne Vajhøj wrote:
> On 1/9/2021 8:38 AM, Bill Gunshannon wrote: 
> > On 1/9/21 8:27 AM, Bill Gunshannon wrote: 
> >> On 1/9/21 7:35 AM, Andy Burns wrote: 
> >>> Chris wrote: 
> >>> 
> >>>> issinoho wrote: 
> >>>> 
> >>>>> if (atoi (date_string + 5)> 2020) 
> >>>> 
> >>>> That code is type unsafe for starters. atoi() requires an ascii string, 
> >>>> but you are trying to add 5 decimal to an ascii string ?. 
> >>> 
> >>> atoi requires a *pointer* to an asciiz string, presumably in this 
> >>> case the format is something like DDMMMYYYY, so that the +5 starts 
> >>> the decimal conversion from the address of the first Y. 
> >>> 
> >> 
> >> Am I the only one who things this was fat fingered and the example 
> >> should really be: if ((atoi (date_string) + 5) > 2020)
> That code makes little sense. 
> 
> The original code as already noted do a skip of DDMMM.
> >> I would have expected the original to generate an error at compile 
> >> time. 
> > 
> > OK, it made me curious enough that I tried a few examples. Apparently 
> > the compiler (at least gcc) doesn't really care what you throw at the 
> > call to atoi(). Interesting to say the least.
> char* + int is char*. atoi expects char*. Why should it complain? 
> 
> Arne


You're right! I just re-read it. duh!  offset the date string start by 5 chars, do the atoi for the last part of the string and do the compare.

I'm embarrassed :-)

I was reading it as add 5 to the value of the date string and compare. Not offset from the start of the string.



More information about the Info-vax mailing list