ORCALib
Go to file
Stephen Heumann 44dfc1d1d6 Prevent localtime() from potentially giving incorrect tm_isdst values.
This could happen when it was called for a time other than the present, because it set tm_isdst based on the current value of the DST flag in BRAM, which is valid only for the current time.

Now it works as follows: If localtime() is passed the time_t value that was produced by the most recent call to time(), it gives the DST setting in effect at the time of that call.  Otherwise, it sets tm_isdst to -1, indicating that the correct value is unknown.

This is about the best we can do without having a full timezone library/database. It should give the right tm_isdst value in probably the most common case, and avoids giving an incorrect value in any case (assuming the system's DST flag is right).

This fixes #18.
2020-02-02 12:52:42 -06:00
obj ORCA libraries, from the Opus ][ CD 2017-10-01 18:00:58 -06:00
LICENSE ORCA libraries, from the Opus ][ CD 2017-10-01 18:00:58 -06:00
README.md ORCA libraries, from the Opus ][ CD 2017-10-01 18:00:58 -06:00
assert.asm assert - use updated ph2/ph4 macros that support pei dp vs lda dp / pha. 2018-06-27 23:36:02 -04:00
assert.macros assert - use updated ph2/ph4 macros that support pei dp vs lda dp / pha. 2018-06-27 23:36:02 -04:00
backup CR -> LF 2017-10-31 13:14:07 -04:00
cc.asm Implement quick_exit() and at_quick_exit() from C11. 2020-01-23 18:43:20 -06:00
cc.macros CR -> LF 2017-10-31 13:14:07 -04:00
ctype.asm add the c99 isblank() function 2018-03-04 22:31:11 -05:00
equates.asm add the c99 isblank() function 2018-03-04 22:31:11 -05:00
fcntl.asm CR -> LF 2017-10-31 13:14:07 -04:00
fcntl.macros CR -> LF 2017-10-31 13:14:07 -04:00
make CR -> LF 2017-10-31 13:14:07 -04:00
orca.asm CR -> LF 2017-10-31 13:14:07 -04:00
orca.macros CR -> LF 2017-10-31 13:14:07 -04:00
setjmp.asm CR -> LF 2017-10-31 13:14:07 -04:00
signal.asm CR -> LF 2017-10-31 13:14:07 -04:00
signal.macros CR -> LF 2017-10-31 13:14:07 -04:00
smac CR -> LF 2017-10-31 13:14:07 -04:00
stdio.asm Ensure tmpfile() doesn't access a file created by someone else. 2020-01-31 12:47:34 -06:00
stdio.macros CR -> LF 2017-10-31 13:14:07 -04:00
stdlib.asm Allow -2147483648 (LONG_MIN) as valid input to strtol(), not setting errno. 2020-01-24 12:25:01 -06:00
stdlib.macros CR -> LF 2017-10-31 13:14:07 -04:00
string.asm Ensure that strtok returns NULL after reaching the end of the string. 2020-01-21 17:12:54 -06:00
string.macros CR -> LF 2017-10-31 13:14:07 -04:00
time.asm Prevent localtime() from potentially giving incorrect tm_isdst values. 2020-02-02 12:52:42 -06:00
time.macros CR -> LF 2017-10-31 13:14:07 -04:00
toolglue.asm CR -> LF 2017-10-31 13:14:07 -04:00
toolglue.macros CR -> LF 2017-10-31 13:14:07 -04:00
vars.asm Change sys_nerr from 6 to 12, to reflect actual number of error messages. 2017-10-31 22:50:22 -05:00
vars.macros CR -> LF 2017-10-31 13:14:07 -04:00

README.md

ORCALib

Libraries for the ORCA language suite (ORCA/C, ORCA/M, ORCA/Pascal) for the Apple IIGS

If you would like to make changes to this compiler and distribute them to others, feel free to submit them here. If the changes apply to the Apple IIGS, they will generally be approved for distribution on the master branch. For changes that retarget the library to generate code for a different platform, the project will either be forked or a new repository will be created, as appropriate.

The general conditions that must be met before a change is released on master are:

  1. The modified library must compile under the currently released version of ORCA/M.

  2. The various languages that make use of the library mush still pass their respective test suites, or changes to those test suites must also be submitted.

Contact support@byteworks.us if you need contributor access.

A complete distribution of the ORCA languages, including installers and documentation, is available from the Juiced GS store at https://juiced.gs/store/category/software/. It is distributed as part of the Opus ][ package.