mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
Compare commits
273 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6f19f5b951 | |||
| 0f5e6747e0 | |||
| a0a46206d1 | |||
| c7fbdf27e1 | |||
| 010d4c1c06 | |||
| 81958fd44b | |||
| 937169c0ba | |||
| dda36eb609 | |||
| 867e6d500a | |||
| 99e9ebfc15 | |||
| 63c08cfe0e | |||
| b6de3e4c48 | |||
| 090753282b | |||
| d45da0acd4 | |||
| 3480ec40b3 | |||
| f9e782d358 | |||
| 44bcf889e5 | |||
| 257dd6af88 | |||
| acafd14bc2 | |||
| b63587ed80 | |||
| b861ed19c4 | |||
| ccfea73fc5 | |||
| d74640b15b | |||
| db9a1c69e5 | |||
| cb1f1a4a10 | |||
| bb2376a6ed | |||
| 159e55f1e6 | |||
| 4e30f5604d | |||
| 095a14bf1f | |||
| f84fbc32cb | |||
| 3099f6210a | |||
| 378e50d2ab | |||
| 0d85b41a2d | |||
| 7a57c4d499 | |||
| cef75752d9 | |||
| d31a351d6c | |||
| 2e56caa3fb | |||
| 4cde124d5d | |||
| 1d1d340ae1 | |||
| 6612118e97 | |||
| 5acfef419b | |||
| eb10d40332 | |||
| 6aaa439593 | |||
| b76ec2c143 | |||
| 773035a695 | |||
| 79be2279ec | |||
| b1f08e4123 | |||
| 872c9bc39c | |||
| 132aaa8293 | |||
| 882875d79a | |||
| cd7b02f4d7 | |||
| 2ed463f8e3 | |||
| acaf12ee7c | |||
| fdb188da1a | |||
| 9d2ab96b56 | |||
| 6ba2f7a178 | |||
| 525bdde6d5 | |||
| 38818e6502 | |||
| ebf5d63bc6 | |||
| 2421ffcbb9 | |||
| 2bdd055f4b | |||
| 039c805161 | |||
| e19974fe47 | |||
| bb41d5e549 | |||
| fd163c7105 | |||
| a3d61a67c8 | |||
| 459d57da9c | |||
| 3d58795d0f | |||
| e293873dc7 | |||
| 17e3b3b0e2 | |||
| ae1ac21c71 | |||
| 2025e39014 | |||
| ea09fc96db | |||
| bf0a6e0c43 | |||
| cf74717ead | |||
| f81dfdfca7 | |||
| 196ce6e140 | |||
| 629e40475f | |||
| 85e421feb8 | |||
| 3be260b746 | |||
| b78a86774c | |||
| 9aba55afba | |||
| 426fe0cc61 | |||
| 6a13b08f40 | |||
| 59807dbff1 | |||
| 414e07aa20 | |||
| 2a22c4ff0d | |||
| 576660ca0a | |||
| 5451d3a694 | |||
| c26da2c5e8 | |||
| c3975b1e6e | |||
| a79b05194d | |||
| 3975d234bd | |||
| 3c220c3939 | |||
| 49e98713d4 | |||
| 505c23237a | |||
| ffeb475873 | |||
| c3a10b88b5 | |||
| 2ced1d3293 | |||
| fb4dae84aa | |||
| a03ced93b0 | |||
| a19d60f524 | |||
| f6d20fee01 | |||
| d4aa0b04af | |||
| df05c80c57 | |||
| a1ffc20864 | |||
| 13c857ba0a | |||
| 5ecfdf33c6 | |||
| fa31c468dc | |||
| feb29fa334 | |||
| d0a4e057bc | |||
| c5087c78ce | |||
| c5c6492868 | |||
| 539cc3553d | |||
| bc65dd2877 | |||
| ec027fa510 | |||
| 65484eac3c | |||
| 2be60de3e7 | |||
| 89b568bcb8 | |||
| 2548af2b4b | |||
| a1b39c4d01 | |||
| 9e32991a6d | |||
| c8d29ea9c1 | |||
| 28f561c61b | |||
| 07056f3e26 | |||
| 3bd6766484 | |||
| e01d58319d | |||
| ec4fd3c2cb | |||
| df89c636db | |||
| 90a192134e | |||
| 3660b26c9f | |||
| 9f3d5e50b4 | |||
| 876039440f | |||
| 0c553faff1 | |||
| 1d611fefbe | |||
| a50aba0b64 | |||
| 2e9ac7d003 | |||
| 0a440c8405 | |||
| f63a0788d5 | |||
| 431dd488a1 | |||
| 15c16efd07 | |||
| 6e39efe7d7 | |||
| 92cc3e9a79 | |||
| a18f415374 | |||
| 3096691d75 | |||
| d5c36d66e4 | |||
| 7f9fbc453b | |||
| 6f010ddf87 | |||
| 09b52e077f | |||
| 9c2c44b008 | |||
| df01f27551 | |||
| 58d26ce8cb | |||
| b1ac45a0b9 | |||
| aafda37c84 | |||
| 3eb15a612f | |||
| 590d1b8eec | |||
| 1fbe4bd0a5 | |||
| 8edfcc3f86 | |||
| a6daababe7 | |||
| 5695784272 | |||
| 5eefcf4555 | |||
| d85d6648ea | |||
| c471c50784 | |||
| cd10dc9a1a | |||
| 7d3ea7fae6 | |||
| ead29c1850 | |||
| f492e6a6c0 | |||
| dc80018239 | |||
| 966851e8bd | |||
| a60623bbc6 | |||
| d8bf652ae6 | |||
| b048323196 | |||
| 08cc54d3fa | |||
| 419172fb0e | |||
| f289140266 | |||
| 86b7e5c429 | |||
| 42963b39c4 | |||
| 678cab02fb | |||
| 59d7f8d07f | |||
| 9a7c8a8705 | |||
| 96e74015f0 | |||
| db8710d2ae | |||
| 91f12dd8f0 | |||
| d2f157b0a1 | |||
| e3e82b3657 | |||
| 4d3dc4a77f | |||
| ee556fcb35 | |||
| cc8a8e42c0 | |||
| 0fad53e56e | |||
| d33e3e909e | |||
| ef43011783 | |||
| a9c8cdc554 | |||
| d370bd123b | |||
| 6931123dc1 | |||
| b2ddf28fa7 | |||
| 1bc19a04d3 | |||
| 1a0999bc1c | |||
| 1bf430d1d6 | |||
| f2d1a3238d | |||
| 2c3bd39f71 | |||
| 0deb0e3e2d | |||
| dd380f8479 | |||
| ec3d921f7b | |||
| ebd6cc3639 | |||
| 7690bb8399 | |||
| 2aba208878 | |||
| 593caccb38 | |||
| ac0cc97924 | |||
| ef44c75126 | |||
| 9a8fe330a9 | |||
| 17d81c12c0 | |||
| c799b17bb9 | |||
| 1df294c07e | |||
| f51faeb168 | |||
| c0c70bfd99 | |||
| b10d1ad38c | |||
| 1550c6fef3 | |||
| 53d99ac7a2 | |||
| c4c25649f2 | |||
| 18f1f75479 | |||
| 410833d2ed | |||
| cfa6f566db | |||
| 99547756fe | |||
| ea638f0970 | |||
| 4aa85e1d12 | |||
| fcb8cfc0dc | |||
| a626336b7b | |||
| 07d09bb185 | |||
| 6ad88ff97f | |||
| 2ddfeab0cf | |||
| 91028c63bc | |||
| 209884bd1f | |||
| 3548d3cf7e | |||
| 50b8b623cc | |||
| 49bc1d6b13 | |||
| fce21e21d6 | |||
| f8b1e7516f | |||
| 8e2820e9b7 | |||
| ab22a23f27 | |||
| 0ae8d68e64 | |||
| 0b1d21471d | |||
| 987316e638 | |||
| e8d4187ea5 | |||
| 003faf7a24 | |||
| d1aaa84bcc | |||
| e1476c15b3 | |||
| 17fea5626a | |||
| e4b70e946f | |||
| 56b0a74c61 | |||
| d23f4318f9 | |||
| 23f70d0c53 | |||
| c6fcede4ce | |||
| 5801d000d4 | |||
| 619b64e6f4 | |||
| 5191ee5660 | |||
| 64c1175f7b | |||
| be827762de | |||
| 618299fb48 | |||
| fbc6d94840 | |||
| 5cf80326bc | |||
| e571888f4f | |||
| f519aafaca | |||
| 984c6729c1 | |||
| 49df44872d | |||
| e77cc97daf | |||
| ad0880d204 | |||
| d74535f87f | |||
| 73e6ccc14e | |||
| 3c9f119046 | |||
| 76c68da3a5 | |||
| 7b67ccdec1 | |||
| 19ea207fba | |||
| b3f0f0dfe0 |
@ -1,13 +0,0 @@
|
|||||||
# The "checkoutlist" file is used to support additional version controlled
|
|
||||||
# administrative files in $CVSROOT/CVSROOT, such as template files.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a filename which will be checked out from
|
|
||||||
# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
|
|
||||||
# The remainder of the line is an error message to use if the file cannot
|
|
||||||
# be checked out.
|
|
||||||
#
|
|
||||||
# File format:
|
|
||||||
#
|
|
||||||
# [<whitespace>]<filename>[<whitespace><error message>]<end-of-line>
|
|
||||||
#
|
|
||||||
# comment lines begin with '#'
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
# The "commitinfo" file is used to control pre-commit checks.
|
|
||||||
# The filter on the right is invoked with the repository and a list
|
|
||||||
# of files to check. A non-zero exit of the filter program will
|
|
||||||
# cause the commit to be aborted.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a regular expression which is tested
|
|
||||||
# against the directory that the change is being committed to, relative
|
|
||||||
# to the $CVSROOT. For the first match that is found, then the remainder
|
|
||||||
# of the line is the name of the filter to run.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name "ALL" appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or "DEFAULT".
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
# Set this to "no" if pserver shouldn't check system users/passwords
|
|
||||||
#SystemAuth=no
|
|
||||||
|
|
||||||
# Put CVS lock files in this directory rather than directly in the repository.
|
|
||||||
#LockDir=/var/lock/cvs
|
|
||||||
|
|
||||||
# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
|
|
||||||
# level of the new working directory when using the `cvs checkout'
|
|
||||||
# command.
|
|
||||||
#TopLevelAdmin=no
|
|
||||||
|
|
||||||
# Set `LogHistory' to `all' or `TOEFWUPCGMAR' to log all transactions to the
|
|
||||||
# history file, or a subset as needed (ie `TMAR' logs all write operations)
|
|
||||||
#LogHistory=TOEFWUPCGMAR
|
|
||||||
|
|
||||||
# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg
|
|
||||||
# script to change the log message. Set it to `stat' to force CVS to verify# that the file has changed before reading it (this can take up to an extra
|
|
||||||
# second per directory being committed, so it is not recommended for large
|
|
||||||
# repositories. Set it to `never' (the previous CVS behavior) to prevent
|
|
||||||
# verifymsg scripts from changing the log message.
|
|
||||||
#RereadLogAfterVerify=always
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
# This file affects handling of files based on their names.
|
|
||||||
#
|
|
||||||
# The -m option specifies whether CVS attempts to merge files.
|
|
||||||
#
|
|
||||||
# The -k option specifies keyword expansion (e.g. -kb for binary).
|
|
||||||
#
|
|
||||||
# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
|
|
||||||
#
|
|
||||||
# wildcard [option value][option value]...
|
|
||||||
#
|
|
||||||
# where option is one of
|
|
||||||
# -f from cvs filter value: path to filter
|
|
||||||
# -t to cvs filter value: path to filter
|
|
||||||
# -m update methodology value: MERGE or COPY
|
|
||||||
# -k expansion mode value: b, o, kkv, &c
|
|
||||||
#
|
|
||||||
# and value is a single-quote delimited value.
|
|
||||||
# For example:
|
|
||||||
#*.gif -k 'b'
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
# The "editinfo" file is used to allow verification of logging
|
|
||||||
# information. It works best when a template (as specified in the
|
|
||||||
# rcsinfo file) is provided for the logging procedure. Given a
|
|
||||||
# template with locations for, a bug-id number, a list of people who
|
|
||||||
# reviewed the code before it can be checked in, and an external
|
|
||||||
# process to catalog the differences that were code reviewed, the
|
|
||||||
# following test can be applied to the code:
|
|
||||||
#
|
|
||||||
# Making sure that the entered bug-id number is correct.
|
|
||||||
# Validating that the code that was reviewed is indeed the code being
|
|
||||||
# checked in (using the bug-id number or a seperate review
|
|
||||||
# number to identify this particular code set.).
|
|
||||||
#
|
|
||||||
# If any of the above test failed, then the commit would be aborted.
|
|
||||||
#
|
|
||||||
# Actions such as mailing a copy of the report to each reviewer are
|
|
||||||
# better handled by an entry in the loginfo file.
|
|
||||||
#
|
|
||||||
# One thing that should be noted is the the ALL keyword is not
|
|
||||||
# supported. There can be only one entry that matches a given
|
|
||||||
# repository.
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
# The "loginfo" file controls where "cvs commit" log information
|
|
||||||
# is sent. The first entry on a line is a regular expression which must match
|
|
||||||
# the directory that the change is being made to, relative to the
|
|
||||||
# $CVSROOT. If a match is found, then the remainder of the line is a filter
|
|
||||||
# program that should expect log information on its standard input.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name ALL appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or DEFAULT.
|
|
||||||
#
|
|
||||||
# You may specify a format string as part of the
|
|
||||||
# filter. The string is composed of a `%' followed
|
|
||||||
# by a single format character, or followed by a set of format
|
|
||||||
# characters surrounded by `{' and `}' as separators. The format
|
|
||||||
# characters are:
|
|
||||||
#
|
|
||||||
# s = file name
|
|
||||||
# V = old version number (pre-checkin)
|
|
||||||
# v = new version number (post-checkin)
|
|
||||||
# t = tag or branch name
|
|
||||||
#
|
|
||||||
# For example:
|
|
||||||
#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
|
|
||||||
# or
|
|
||||||
#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
# Three different line formats are valid:
|
|
||||||
# key -a aliases...
|
|
||||||
# key [options] directory
|
|
||||||
# key [options] directory files...
|
|
||||||
#
|
|
||||||
# Where "options" are composed of:
|
|
||||||
# -i prog Run "prog" on "cvs commit" from top-level of module.
|
|
||||||
# -o prog Run "prog" on "cvs checkout" of module.
|
|
||||||
# -e prog Run "prog" on "cvs export" of module.
|
|
||||||
# -t prog Run "prog" on "cvs rtag" of module.
|
|
||||||
# -u prog Run "prog" on "cvs update" of module.
|
|
||||||
# -d dir Place module in directory "dir" instead of module name.
|
|
||||||
# -l Top-level directory only -- do not recurse.
|
|
||||||
#
|
|
||||||
# NOTE: If you change any of the "Run" options above, you'll have to
|
|
||||||
# release and re-checkout any working directories of these modules.
|
|
||||||
#
|
|
||||||
# And "directory" is a path to a directory relative to $CVSROOT.
|
|
||||||
#
|
|
||||||
# The "-a" option specifies an alias. An alias is interpreted as if
|
|
||||||
# everything on the right of the "-a" had been typed on the command line.
|
|
||||||
#
|
|
||||||
# You can encode a module within a module by using the special '&'
|
|
||||||
# character to interpose another module into the current module. This
|
|
||||||
# can be useful for creating a module that consists of many directories
|
|
||||||
# spread out over the entire source repository.
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
# The "notify" file controls where notifications from watches set by
|
|
||||||
# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
|
|
||||||
# a regular expression which is tested against the directory that the
|
|
||||||
# change is being made to, relative to the $CVSROOT. If it matches,
|
|
||||||
# then the remainder of the line is a filter program that should contain
|
|
||||||
# one occurrence of %s for the user to notify, and information on its
|
|
||||||
# standard input.
|
|
||||||
#
|
|
||||||
# "ALL" or "DEFAULT" can be used in place of the regular expression.
|
|
||||||
#
|
|
||||||
# For example:
|
|
||||||
#ALL mail -s "CVS notification" %s
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
# The "rcsinfo" file is used to control templates with which the editor
|
|
||||||
# is invoked on commit and import.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a regular expression which is tested
|
|
||||||
# against the directory that the change is being made to, relative to the
|
|
||||||
# $CVSROOT. For the first match that is found, then the remainder of the
|
|
||||||
# line is the name of the file that contains the template.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name "ALL" appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or "DEFAULT".
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
# The "taginfo" file is used to control pre-tag checks.
|
|
||||||
# The filter on the right is invoked with the following arguments:
|
|
||||||
#
|
|
||||||
# $1 -- tagname
|
|
||||||
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
|
|
||||||
# $3 -- repository
|
|
||||||
# $4-> file revision [file revision ...]
|
|
||||||
#
|
|
||||||
# A non-zero exit of the filter program will cause the tag to be aborted.
|
|
||||||
#
|
|
||||||
# The first entry on a line is a regular expression which is tested
|
|
||||||
# against the directory that the change is being committed to, relative
|
|
||||||
# to the $CVSROOT. For the first match that is found, then the remainder
|
|
||||||
# of the line is the name of the filter to run.
|
|
||||||
#
|
|
||||||
# If the repository name does not match any of the regular expressions in this
|
|
||||||
# file, the "DEFAULT" line is used, if it is specified.
|
|
||||||
#
|
|
||||||
# If the name "ALL" appears as a regular expression it is always used
|
|
||||||
# in addition to the first matching regex or "DEFAULT".
|
|
||||||
@ -1,21 +0,0 @@
|
|||||||
# The "verifymsg" file is used to allow verification of logging
|
|
||||||
# information. It works best when a template (as specified in the
|
|
||||||
# rcsinfo file) is provided for the logging procedure. Given a
|
|
||||||
# template with locations for, a bug-id number, a list of people who
|
|
||||||
# reviewed the code before it can be checked in, and an external
|
|
||||||
# process to catalog the differences that were code reviewed, the
|
|
||||||
# following test can be applied to the code:
|
|
||||||
#
|
|
||||||
# Making sure that the entered bug-id number is correct.
|
|
||||||
# Validating that the code that was reviewed is indeed the code being
|
|
||||||
# checked in (using the bug-id number or a seperate review
|
|
||||||
# number to identify this particular code set.).
|
|
||||||
#
|
|
||||||
# If any of the above test failed, then the commit would be aborted.
|
|
||||||
#
|
|
||||||
# Actions such as mailing a copy of the report to each reviewer are
|
|
||||||
# better handled by an entry in the loginfo file.
|
|
||||||
#
|
|
||||||
# One thing that should be noted is the the ALL keyword is not
|
|
||||||
# supported. There can be only one entry that matches a given
|
|
||||||
# repository.
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
In order to build the library, you need a 'C' compiler (obvious, isn't it?) and
|
|
||||||
a set of header files for the networking API definitions. The networking header
|
|
||||||
files go into a directory "netinclude" which has to sit in the same directory as
|
|
||||||
the source code and the "include" directory you find in there. I'm not currently
|
|
||||||
supplying these header files here. Drop me a line, and I'll take care of that.
|
|
||||||
|
|
||||||
The SAS/C flavour (smakefile) should get the library built using the "large data"
|
|
||||||
model. This rules out the use of residentable programs as the startup code I'm
|
|
||||||
using is very primitive (startup.o) and doesn't tinker with A4 relative data
|
|
||||||
addressing (and how this may be set up).
|
|
||||||
|
|
||||||
There are two makefiles for GCC, each a different flavour. There is "GNUmakefile.68k",
|
|
||||||
which will build the library for GCC on the 68k platform ("classic" Amiga). This
|
|
||||||
builds all variants of the library, for large data, small data, resident, whatever
|
|
||||||
model. It's a lot of work and I don't recommend you do this on a plain 68k machine.
|
|
||||||
It will literally (!) take hours. The other makefile flavour is for AmigaOS4 using
|
|
||||||
the PowerPC hosted GCC system ("GNUmakefile.os4"). This builds only the large data
|
|
||||||
version of the library, but this is usually all you need. Small data support is
|
|
||||||
currently not implemented but might follow in the future.
|
|
||||||
@ -1,235 +0,0 @@
|
|||||||
An ISO 'C' (1994) compliant runtime library for the Amiga
|
|
||||||
=========================================================
|
|
||||||
|
|
||||||
1. What is this?
|
|
||||||
|
|
||||||
This is my attempt to get Samba 2.2.x ported to the Amiga. My first Amiga
|
|
||||||
port required SAS/C and a number of strange tricks had to be pulled to get
|
|
||||||
it to support the kind of environment Samba needed. But with the
|
|
||||||
introduction of Samba 2.2.x many of those tricks did not work any more,
|
|
||||||
which is why I decided to attack the problem at the root, namely the
|
|
||||||
runtime library.
|
|
||||||
|
|
||||||
Because it was no longer possible to build Samba with SAS/C on the new
|
|
||||||
Amiga platform, the idea came up to move development to the GNU 'C'
|
|
||||||
compiler. This turned out to be a challenge due to its somewhat
|
|
||||||
underdeveloped runtime library and header files. Eventually, I decided to
|
|
||||||
rewrite that library from scratch.
|
|
||||||
|
|
||||||
|
|
||||||
2. What does it do?
|
|
||||||
|
|
||||||
Using "'C' - A reference manual" as a reference I wrote a set of header
|
|
||||||
files, then proceeded to implement each single function referenced in them.
|
|
||||||
With few exceptions in the area of wide character support, the result
|
|
||||||
should be a feature complete implementation of the ISO 'C' (1994) runtime
|
|
||||||
library.
|
|
||||||
|
|
||||||
Because Samba needs a few POSIX-like routines to be supported, the library
|
|
||||||
functionality is complemented by a set of routines described in "Advanced
|
|
||||||
programming in the Unix environent". This set is not complete, however. It
|
|
||||||
will have to grow even further to accomodate for Samba's needs, but this is
|
|
||||||
a good start. I specifically added hooks for integrating socket I/O at a
|
|
||||||
later point of time.
|
|
||||||
|
|
||||||
This is not a portable implementation of the library in the sense that you
|
|
||||||
could move it from one 'C' compiler on one operating system to another.
|
|
||||||
This is an Amiga specific implementation.
|
|
||||||
|
|
||||||
The library supports floating point math, which is limited to IEEE single
|
|
||||||
and double precision or M68881 inline math. There is no support for the
|
|
||||||
fast floating point (FFP) format or exclusive IEEE single precision. You
|
|
||||||
either get double precision (IEEE math) or extended precision (M68881
|
|
||||||
inline math). What it is that you get is determined at compile time. Use
|
|
||||||
the IEEE_FLOATING_POINT_SUPPORT preprocessor symbol to activate IEEE math
|
|
||||||
code and the M68881_FLOATING_POINT_SUPPORT symbol for M68881 inline math.
|
|
||||||
|
|
||||||
Not unlike SAS/C, you can configure a minimum stack size the program is to
|
|
||||||
use when it starts up. This is controlled via the '__stack_size' variable
|
|
||||||
(see "stdlib_main.c").
|
|
||||||
|
|
||||||
I added some amiga.lib and debug.lib functionality to the library, but
|
|
||||||
don't count on it to be complete.
|
|
||||||
|
|
||||||
|
|
||||||
3. What does it not do?
|
|
||||||
|
|
||||||
This library is a departure from the typical 'C' runtime environments of
|
|
||||||
the past which had to run on all AmigaOS releases, down to Kickstart 1.1.
|
|
||||||
This very library was designed to take advantage of the routines available
|
|
||||||
since Kickstart 2.04 was introduced and virtually nobody ever put to use.
|
|
||||||
This helps to cut the code size, and it also helps to keep bugs out of the
|
|
||||||
library by falling back onto well-tested implementations. However, the
|
|
||||||
catch is that the code won't run under Kickstart 1.3 and below. But then
|
|
||||||
these operating system releases have been obsolete for more than a decade,
|
|
||||||
and you can always go back to a compiler environment which supports them.
|
|
||||||
|
|
||||||
Practically all library routines are implemented in a sort of na<6E>ve
|
|
||||||
fashion. That is, they contain virtually no optimizations whatsoever. This
|
|
||||||
is particularly apparent in workhorses such as memset() or memmove(). But
|
|
||||||
then, the issue is easy testability and Amiga platform portability.
|
|
||||||
|
|
||||||
There is very little support for amiga.lib functionality. There is
|
|
||||||
NewList(), HookEntry(), CallHook(), CallHookA(), the DoMethod() family, the
|
|
||||||
RexxVars family, but that's all. If you need more, you would have to
|
|
||||||
implement it yourself. Put another way, if you absolutely need
|
|
||||||
functionality that is only found in amiga.lib, you really shouldn't need in
|
|
||||||
in the first place.
|
|
||||||
|
|
||||||
|
|
||||||
4. Where does the source code come from?
|
|
||||||
|
|
||||||
I originally thought that it might be helpful to piece this library
|
|
||||||
together from various sources, such as the BSD libc. Turned out that this
|
|
||||||
code was so 'portable' that it became much more complex than it ought to
|
|
||||||
be. Also, some side-effects were present which considerably changed the
|
|
||||||
behaviour of the library. For example, the BSD libc uses bcopy() as an
|
|
||||||
alias for memcpy(), and unlike memcpy() is documented to, bcopy() supports
|
|
||||||
overlapping copies.
|
|
||||||
|
|
||||||
Eventually, I wrote virtually all the code myself, borrowing algorithmic
|
|
||||||
ideas from the BSD libc and the Manx Aztec 'C' runtime library. Because I
|
|
||||||
don't know much about the environment GCC expects, I borrowed code snippets
|
|
||||||
from libnix, which was written by Matthias Fleischer and Gunther Nikl. This
|
|
||||||
in particular concerns the integer and floating point math support, the
|
|
||||||
setjmp/longjmp routines and the startup code. The M68881 inline math code
|
|
||||||
comes from the <math-68881.h> file written by Matthew Self
|
|
||||||
(self@bayes.arc.nasa.gov).
|
|
||||||
|
|
||||||
|
|
||||||
5. Limitations and caveats
|
|
||||||
|
|
||||||
There is hardly any documentation on the code I wrote. In part this is due
|
|
||||||
to the fact that the code itself is very simple in design. It should speak
|
|
||||||
for itself. However, to make a usable runtime library you have to have a
|
|
||||||
user documentation as in man pages or autodocs. We will eventually have to
|
|
||||||
have autodocs for this library.
|
|
||||||
|
|
||||||
The code is currently plastered with assertions and debug code. It is
|
|
||||||
therefore much larger than it ought to be and runs much slower than it
|
|
||||||
ought to be. For example, the malloc() routine will set the contents of the
|
|
||||||
memory allocated to a 'dirty' bit pattern which is likely to break software
|
|
||||||
which makes assumptions about its contents. Likewise, the free() routine
|
|
||||||
will trash the memory to deallocate with a different 'dirty' bit pattern to
|
|
||||||
turn up reuse of memory after deallocation. All these debugging features
|
|
||||||
can be disabled by defining the NDEBUG preprocessor symbol at compile time
|
|
||||||
(see <assert.h>).
|
|
||||||
|
|
||||||
The exception handling in the math code is not particularly effective. For
|
|
||||||
one part this is due to the fact that there is no exception handler
|
|
||||||
installed by the runtime library when it starts up which could catch and
|
|
||||||
process the error conditions the CPU or FPU generates. The idea was to
|
|
||||||
provide for a portable runtime library with little to no assembly language
|
|
||||||
involved. To make the exception handling complete, such code would be
|
|
||||||
necessary.
|
|
||||||
|
|
||||||
The library currently builds under SAS/C, but because the 'normal' program
|
|
||||||
startup code is not utilized, the base relative (A4) addressing does not
|
|
||||||
work. If you are going to test it, use the data=faronly option to compile
|
|
||||||
the library and the programs.
|
|
||||||
|
|
||||||
If you are going to rebuild the library with SAS/C you will need to
|
|
||||||
reassign INCLUDE: to point to the local 'include' directory or things won't
|
|
||||||
work.
|
|
||||||
|
|
||||||
|
|
||||||
6. Conventions and design issues
|
|
||||||
|
|
||||||
You will have noticed the 330+ files in this directory. This is not the
|
|
||||||
best way to organize a runtime library, but at least all the bits and
|
|
||||||
pieces are in plain sight. Each file stands for the one or two routines it
|
|
||||||
contains. The name indicates what routine(s) that might be. Each file name
|
|
||||||
is prefixed by the name of the header file in which the corresponding
|
|
||||||
routine is defined. So, for example, you will find that "unistd_lchown.c"
|
|
||||||
contains the definition of the lchown() routine, which has its prototype
|
|
||||||
defined in the <unistd.h> header file.
|
|
||||||
|
|
||||||
Internal function and variable names are prefixed with two underscores, as
|
|
||||||
in '__stdio_init()'.
|
|
||||||
|
|
||||||
All routines attempt to do error checking on their parameters. They will
|
|
||||||
either drop into an assert() or set an errno value and refuse to go any
|
|
||||||
further. This cuts performance but should help to catch the simple bugs
|
|
||||||
quite easily (NULL pointers).
|
|
||||||
|
|
||||||
Just like any halfway sane Amiga 'C'<27>runtime library, this one performs its
|
|
||||||
^C checking in the I/O routines. Typically once upon entry and in every
|
|
||||||
iteration of the loop there might be it will quickly poll the ^C signal and
|
|
||||||
drop into raise(SIGINT) in case the signal is set. This is just about the
|
|
||||||
safest method to solve the problem and should be much more robust than the
|
|
||||||
ixemul approach of 'interrupt anywhere - crash anywhere' using the task
|
|
||||||
switch/launch hooks to test for signals.
|
|
||||||
|
|
||||||
By default all library routines follow the ISO 'C' conventions in that
|
|
||||||
where implementation defined behaviour is permitted, the AmigaOS rules are
|
|
||||||
followed. For example, unlink() will by default operate like DeleteFile()
|
|
||||||
and rename() will return with an error code set if the name of the
|
|
||||||
file/directory to be renamed would collide with an existing directory
|
|
||||||
entry. However, your program can set a global variable '__unix_semantics'
|
|
||||||
which will cause some routines to perform like their Unix counterparts.
|
|
||||||
This is necessary for Samba to work but not a generally desirable feature.
|
|
||||||
You have some Unix-like behaviour, but the environment itself is not
|
|
||||||
completely Unix- or POSIX-compliant. And it shouldn't be. Don't make the
|
|
||||||
mistake of trying to mold the environment into a POSIX emulation. It
|
|
||||||
doesn't work; AmigaOS is not Unix.
|
|
||||||
|
|
||||||
|
|
||||||
7. The startup code
|
|
||||||
|
|
||||||
There are three program startup files provided. The most simplistic is in
|
|
||||||
'startup.c' which I use for SAS/C. It just invokes the setup routine which
|
|
||||||
eventually calls main() and drops straight into exit().
|
|
||||||
|
|
||||||
The ncrt0.S file was adapted from the libnix startup code which sets up the
|
|
||||||
base relative data area, if necessary (the SMALL_DATA preprocessor symbol
|
|
||||||
must be defined).
|
|
||||||
|
|
||||||
The nrcrt0.S file was adapted from libnix startup code, too, and sets up
|
|
||||||
the base relative data area for programs to be made resident. Note that the
|
|
||||||
geta4() stub is missing here; it wouldn't work in a resident program
|
|
||||||
anyway.
|
|
||||||
|
|
||||||
The ncrt0.S and nrcrt0.S files are considerably smaller and less complex
|
|
||||||
than the libnix code they are based on. This is because in this library
|
|
||||||
design all the more complex tasks are performed in the stdlib_main.c file
|
|
||||||
rather than in assembly language.
|
|
||||||
|
|
||||||
|
|
||||||
8. Documentation
|
|
||||||
|
|
||||||
Well, you're reading it. There isn't anything much yet. You can consult the book
|
|
||||||
"'C' - A reference manual" and you could look at the Open Group's Single Unix
|
|
||||||
Specification at <http://www.opengroup.org/onlinepubs/007904975>.
|
|
||||||
|
|
||||||
|
|
||||||
9. Legal status
|
|
||||||
|
|
||||||
Because this library is in part based upon free software it would be uncourteous
|
|
||||||
not to make it free software itself. The BSD license would probably be
|
|
||||||
appropriate here.
|
|
||||||
|
|
||||||
The PowerPC math library is based in part on work by Sun Microsystems:
|
|
||||||
|
|
||||||
====================================================
|
|
||||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
|
||||||
|
|
||||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
|
||||||
Permission to use, copy, modify, and distribute this
|
|
||||||
software is freely granted, provided that this notice
|
|
||||||
is preserved.
|
|
||||||
====================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
10. Contacting the author
|
|
||||||
|
|
||||||
The basic work was done by Olaf Barthel during two weeks in July 2002. You
|
|
||||||
can reach me at:
|
|
||||||
|
|
||||||
Olaf Barthel
|
|
||||||
Gneisenaustr. 43
|
|
||||||
D-31275 Lehrte
|
|
||||||
|
|
||||||
Or via e-mail:
|
|
||||||
|
|
||||||
olsen@sourcery.han.de
|
|
||||||
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# $Id: GNUmakefile.68k,v 1.17 2004-11-18 09:40:37 obarthel Exp $
|
# $Id: GNUmakefile.68k,v 1.73 2005-10-20 07:19:15 obarthel Exp $
|
||||||
#
|
#
|
||||||
# :ts=8
|
# :ts=8
|
||||||
#
|
#
|
||||||
@ -12,7 +12,7 @@ RANLIB = ranlib
|
|||||||
COPY = copy clone buf=0
|
COPY = copy clone buf=0
|
||||||
DELETE = delete all quiet
|
DELETE = delete all quiet
|
||||||
MAKEDIR = makedir
|
MAKEDIR = makedir
|
||||||
MAKE = make -f GNUmakefile.68k
|
MAKE = $(MAKE_COMMAND) -f GNUmakefile.68k
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@ -77,40 +77,50 @@ $(LIBAMIGA_OBJS)/%.o : %.c
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
ifeq (small_data_020,$(TYPE))
|
ifeq (small_data_020,$(TYPE))
|
||||||
CODE_TYPE := -fbaserel -DSMALL_DATA -m68020-60 -DM68020
|
CODE_TYPE := -m68020-60
|
||||||
|
CODE_FLAGS := -fbaserel -DSMALL_DATA -DM68020 -DUSE_64_BIT_INTS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (small_data,$(TYPE))
|
ifeq (small_data,$(TYPE))
|
||||||
CODE_TYPE := -fbaserel -DSMALL_DATA -m68000
|
CODE_TYPE := -m68000
|
||||||
|
CODE_FLAGS := -fbaserel -DSMALL_DATA
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (small_data32,$(TYPE))
|
ifeq (small_data32,$(TYPE))
|
||||||
CODE_TYPE := -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020
|
CODE_TYPE := -m68020-60
|
||||||
|
CODE_FLAGS := -fbaserel32 -DSMALL_DATA32 -DM68020 -DUSE_64_BIT_INTS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (large_data_020,$(TYPE))
|
ifeq (large_data_020,$(TYPE))
|
||||||
CODE_TYPE := -m68020-60 -DM68020
|
CODE_TYPE := -m68020-60
|
||||||
|
CODE_FLAGS := -DM68020 -DUSE_64_BIT_INTS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (large_data,$(TYPE))
|
ifeq (large_data,$(TYPE))
|
||||||
CODE_TYPE := -m68000
|
CODE_TYPE := -m68000
|
||||||
|
CODE_FLAGS :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
WARNINGS = \
|
WARNINGS = \
|
||||||
-Wall -W -Wshadow -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
|
-Wall -W -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
|
||||||
-Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion
|
-Wundef -Wbad-function-cast -Wmissing-declarations -Wunused
|
||||||
|
|
||||||
|
# -Wconversion -Wshadow
|
||||||
|
|
||||||
INCLUDES = -Iinclude -I. -Inetinclude
|
INCLUDES = -Iinclude -I. -Inetinclude
|
||||||
OPTIONS = -DNDEBUG -fno-builtin -DNO_INLINE_STDARG
|
#OPTIONS = -fno-builtin -fno-common -DDEBUG
|
||||||
#OPTIONS = -D__MEM_DEBUG -fno-builtin
|
OPTIONS = -fno-builtin -fno-common -DNDEBUG
|
||||||
#OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin
|
#OPTIONS = -fno-builtin -fno-common -D__MEM_DEBUG
|
||||||
|
#OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG
|
||||||
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
|
||||||
#OPTIMIZE = -O2 -fomit-frame-pointer
|
#OPTIMIZE = -O2 -fomit-frame-pointer
|
||||||
#DEBUG = -g2
|
#DEBUG = -g
|
||||||
|
|
||||||
CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDES)
|
CFLAGS = \
|
||||||
|
$(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) \
|
||||||
|
$(CODE_FLAGS) $(CODE_TYPE) $(INCLUDES)
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@ -119,6 +129,7 @@ C_LIB = \
|
|||||||
ctype_isalnum.o \
|
ctype_isalnum.o \
|
||||||
ctype_isalpha.o \
|
ctype_isalpha.o \
|
||||||
ctype_isascii.o \
|
ctype_isascii.o \
|
||||||
|
ctype_isblank.o \
|
||||||
ctype_iscntrl.o \
|
ctype_iscntrl.o \
|
||||||
ctype_isdigit.o \
|
ctype_isdigit.o \
|
||||||
ctype_isgraph.o \
|
ctype_isgraph.o \
|
||||||
@ -128,27 +139,34 @@ C_LIB = \
|
|||||||
ctype_isspace.o \
|
ctype_isspace.o \
|
||||||
ctype_isupper.o \
|
ctype_isupper.o \
|
||||||
ctype_isxdigit.o \
|
ctype_isxdigit.o \
|
||||||
|
ctype_table.o \
|
||||||
ctype_tolower.o \
|
ctype_tolower.o \
|
||||||
ctype_toupper.o \
|
ctype_toupper.o \
|
||||||
ctype_table.o \
|
|
||||||
dirent_closedir.o \
|
dirent_closedir.o \
|
||||||
dirent_data.o \
|
|
||||||
dirent_rewinddir.o \
|
|
||||||
dirent_opendir.o \
|
dirent_opendir.o \
|
||||||
dirent_readdir.o \
|
dirent_readdir.o \
|
||||||
|
dirent_rewinddir.o \
|
||||||
errno_data.o \
|
errno_data.o \
|
||||||
fcntl_close.o \
|
fcntl_close.o \
|
||||||
fcntl_creat.o \
|
fcntl_creat.o \
|
||||||
fcntl_fcntl.o \
|
fcntl_fcntl.o \
|
||||||
|
fcntl_get_default_file.o \
|
||||||
|
fcntl_lock.o \
|
||||||
fcntl_lseek.o \
|
fcntl_lseek.o \
|
||||||
fcntl_open.o \
|
fcntl_open.o \
|
||||||
fcntl_read.o \
|
fcntl_read.o \
|
||||||
fcntl_write.o \
|
fcntl_write.o \
|
||||||
fcntl_get_default_file.o \
|
ftw_ftw.o \
|
||||||
|
ftw_nftw.o \
|
||||||
|
inttypes_imaxdiv.o \
|
||||||
|
inttypes_imaxabs.o \
|
||||||
|
inttypes_strtoimax.o \
|
||||||
|
inttypes_strtoumax.o \
|
||||||
libgen_basename.o \
|
libgen_basename.o \
|
||||||
libgen_dirname.o \
|
libgen_dirname.o \
|
||||||
locale_init_exit.o \
|
locale_init_exit.o \
|
||||||
locale_localeconv.o \
|
locale_localeconv.o \
|
||||||
|
locale_open_locale.o \
|
||||||
locale_setlocale.o \
|
locale_setlocale.o \
|
||||||
mount_convertinfo.o \
|
mount_convertinfo.o \
|
||||||
mount_fstatfs.o \
|
mount_fstatfs.o \
|
||||||
@ -166,7 +184,6 @@ C_LIB = \
|
|||||||
signal_sigsetmask.o \
|
signal_sigsetmask.o \
|
||||||
stat_chmod.o \
|
stat_chmod.o \
|
||||||
stat_convertfileinfo.o \
|
stat_convertfileinfo.o \
|
||||||
stat_data.o \
|
|
||||||
stat_fchmod.o \
|
stat_fchmod.o \
|
||||||
stat_fstat.o \
|
stat_fstat.o \
|
||||||
stat_lstat.o \
|
stat_lstat.o \
|
||||||
@ -176,21 +193,23 @@ C_LIB = \
|
|||||||
stat_umask.o \
|
stat_umask.o \
|
||||||
stdio_asprintf.o \
|
stdio_asprintf.o \
|
||||||
stdio_clearerr.o \
|
stdio_clearerr.o \
|
||||||
stdio_data.o \
|
|
||||||
stdio_dropiobreadbuffer.o \
|
stdio_dropiobreadbuffer.o \
|
||||||
stdio_duplicate_fd.o \
|
stdio_duplicate_fd.o \
|
||||||
|
stdio_examine_fh.o \
|
||||||
stdio_fclose.o \
|
stdio_fclose.o \
|
||||||
stdio_fdhookentry.o \
|
stdio_fdhookentry.o \
|
||||||
stdio_feof.o \
|
stdio_feof.o \
|
||||||
stdio_ferror.o \
|
stdio_ferror.o \
|
||||||
stdio_fflush.o \
|
stdio_fflush.o \
|
||||||
stdio_flush.o \
|
|
||||||
stdio_fgetc.o \
|
stdio_fgetc.o \
|
||||||
stdio_fgetpos.o \
|
stdio_fgetpos.o \
|
||||||
stdio_fgets.o \
|
stdio_fgets.o \
|
||||||
stdio_filliobreadbuffer.o \
|
stdio_filliobreadbuffer.o \
|
||||||
stdio_findvacantfdentry.o \
|
stdio_findvacantfdentry.o \
|
||||||
stdio_findvacantiobentry.o \
|
stdio_findvacantiobentry.o \
|
||||||
|
stdio_flockfile.o \
|
||||||
|
stdio_flush.o \
|
||||||
|
stdio_flush_all_files.o \
|
||||||
stdio_flushiobwritebuffer.o \
|
stdio_flushiobwritebuffer.o \
|
||||||
stdio_fopen.o \
|
stdio_fopen.o \
|
||||||
stdio_fprintf.o \
|
stdio_fprintf.o \
|
||||||
@ -200,29 +219,42 @@ C_LIB = \
|
|||||||
stdio_freopen.o \
|
stdio_freopen.o \
|
||||||
stdio_fscanf.o \
|
stdio_fscanf.o \
|
||||||
stdio_fseek.o \
|
stdio_fseek.o \
|
||||||
|
stdio_fseeko.o \
|
||||||
stdio_fsetpos.o \
|
stdio_fsetpos.o \
|
||||||
stdio_ftell.o \
|
stdio_ftell.o \
|
||||||
|
stdio_ftello.o \
|
||||||
|
stdio_ftrylockfile.o \
|
||||||
|
stdio_funlockfile.o \
|
||||||
stdio_fwrite.o \
|
stdio_fwrite.o \
|
||||||
stdio_getc.o \
|
stdio_getc.o \
|
||||||
|
stdio_getc_unlocked.o \
|
||||||
stdio_getchar.o \
|
stdio_getchar.o \
|
||||||
stdio_get_file_descriptor.o \
|
stdio_getchar_unlocked.o \
|
||||||
stdio_gets.o \
|
stdio_gets.o \
|
||||||
|
stdio_get_file_descriptor.o \
|
||||||
stdio_growfdtable.o \
|
stdio_growfdtable.o \
|
||||||
stdio_growiobtable.o \
|
stdio_growiobtable.o \
|
||||||
|
stdio_grow_file.o \
|
||||||
stdio_initializefd.o \
|
stdio_initializefd.o \
|
||||||
stdio_initializeiob.o \
|
stdio_initializeiob.o \
|
||||||
stdio_init_exit.o \
|
stdio_init_exit.o \
|
||||||
|
stdio_file_init.o \
|
||||||
stdio_iobhookentry.o \
|
stdio_iobhookentry.o \
|
||||||
|
stdio_lock.o \
|
||||||
stdio_locksemaphorename.o \
|
stdio_locksemaphorename.o \
|
||||||
stdio_nostdio.o \
|
stdio_nostdio.o \
|
||||||
stdio_openiob.o \
|
stdio_openiob.o \
|
||||||
|
stdio_parent_of_fh.o \
|
||||||
stdio_perror.o \
|
stdio_perror.o \
|
||||||
stdio_popen.o \
|
stdio_popen.o \
|
||||||
stdio_printf.o \
|
stdio_printf.o \
|
||||||
stdio_putc.o \
|
stdio_putc.o \
|
||||||
|
stdio_putc_unlocked.o \
|
||||||
stdio_putchar.o \
|
stdio_putchar.o \
|
||||||
|
stdio_putchar_unlocked.o \
|
||||||
stdio_puts.o \
|
stdio_puts.o \
|
||||||
stdio_remove.o \
|
stdio_remove.o \
|
||||||
|
stdio_remove_fd_alias.o \
|
||||||
stdio_rename.o \
|
stdio_rename.o \
|
||||||
stdio_rewind.o \
|
stdio_rewind.o \
|
||||||
stdio_scanf.o \
|
stdio_scanf.o \
|
||||||
@ -236,6 +268,7 @@ C_LIB = \
|
|||||||
stdio_tmpnam.o \
|
stdio_tmpnam.o \
|
||||||
stdio_translateioerror.o \
|
stdio_translateioerror.o \
|
||||||
stdio_ungetc.o \
|
stdio_ungetc.o \
|
||||||
|
stdio_unlockfile.o \
|
||||||
stdio_vasprintf.o \
|
stdio_vasprintf.o \
|
||||||
stdio_vasprintf_hook_entry.o \
|
stdio_vasprintf_hook_entry.o \
|
||||||
stdio_vfprintf.o \
|
stdio_vfprintf.o \
|
||||||
@ -245,6 +278,8 @@ C_LIB = \
|
|||||||
stdio_vsnprintf_hook_entry.o \
|
stdio_vsnprintf_hook_entry.o \
|
||||||
stdio_vsprintf.o \
|
stdio_vsprintf.o \
|
||||||
stdio_vsprintf_hook_entry.o \
|
stdio_vsprintf_hook_entry.o \
|
||||||
|
stdio_vsscanf.o \
|
||||||
|
stdio_vscanf.o \
|
||||||
stdlib_abort.o \
|
stdlib_abort.o \
|
||||||
stdlib_abs.o \
|
stdlib_abs.o \
|
||||||
stdlib_alloca.o \
|
stdlib_alloca.o \
|
||||||
@ -252,13 +287,12 @@ C_LIB = \
|
|||||||
stdlib_atexit.o \
|
stdlib_atexit.o \
|
||||||
stdlib_atoi.o \
|
stdlib_atoi.o \
|
||||||
stdlib_atol.o \
|
stdlib_atol.o \
|
||||||
|
stdlib_atoll.o \
|
||||||
stdlib_bsearch.o \
|
stdlib_bsearch.o \
|
||||||
stdlib_calloc.o \
|
stdlib_calloc.o \
|
||||||
stdlib_checkdetach.o \
|
stdlib_checkdetach.o \
|
||||||
stdlib_constructor.o \
|
stdlib_constructor.o \
|
||||||
stdlib_constructor_begin.o \
|
stdlib_constructor_begin.o \
|
||||||
stdlib_constructor_end.o \
|
|
||||||
stdlib_data.o \
|
|
||||||
stdlib_default_pool_size.o \
|
stdlib_default_pool_size.o \
|
||||||
stdlib_default_puddle_size.o \
|
stdlib_default_puddle_size.o \
|
||||||
stdlib_destructor.o \
|
stdlib_destructor.o \
|
||||||
@ -273,11 +307,16 @@ C_LIB = \
|
|||||||
stdlib_getdefstacksize.o \
|
stdlib_getdefstacksize.o \
|
||||||
stdlib_getenv.o \
|
stdlib_getenv.o \
|
||||||
stdlib_getsp.o \
|
stdlib_getsp.o \
|
||||||
stdlib_init_exit.o \
|
stdlib_get_errno.o \
|
||||||
stdlib_isresident.o \
|
stdlib_isresident.o \
|
||||||
stdlib_labs.o \
|
stdlib_labs.o \
|
||||||
|
stdlib_llabs.o \
|
||||||
stdlib_ldiv.o \
|
stdlib_ldiv.o \
|
||||||
|
stdlib_lldiv.o \
|
||||||
|
stdlib_lib_main.o \
|
||||||
|
stdlib_lib_startup.o \
|
||||||
stdlib_machine_test.o \
|
stdlib_machine_test.o \
|
||||||
|
stdlib_main.o \
|
||||||
stdlib_malloc.o \
|
stdlib_malloc.o \
|
||||||
stdlib_math.o \
|
stdlib_math.o \
|
||||||
stdlib_mkdtemp.o \
|
stdlib_mkdtemp.o \
|
||||||
@ -290,16 +329,20 @@ C_LIB = \
|
|||||||
stdlib_oslibversion.o \
|
stdlib_oslibversion.o \
|
||||||
stdlib_priority.o \
|
stdlib_priority.o \
|
||||||
stdlib_process_name.o \
|
stdlib_process_name.o \
|
||||||
|
stdlib_program_name.o \
|
||||||
stdlib_putenv.o \
|
stdlib_putenv.o \
|
||||||
stdlib_qsort.o \
|
stdlib_qsort.o \
|
||||||
stdlib_rand.o \
|
stdlib_rand.o \
|
||||||
|
stdlib_rand_r.o \
|
||||||
stdlib_realloc.o \
|
stdlib_realloc.o \
|
||||||
stdlib_red_black.o \
|
stdlib_red_black.o \
|
||||||
|
stdlib_semaphore.o \
|
||||||
stdlib_setenv.o \
|
stdlib_setenv.o \
|
||||||
stdlib_setjmp.o \
|
stdlib_setjmp.o \
|
||||||
|
stdlib_set_errno.o \
|
||||||
|
stdlib_set_process_window.o \
|
||||||
stdlib_shell_escape.o \
|
stdlib_shell_escape.o \
|
||||||
stdlib_showerror.o \
|
stdlib_showerror.o \
|
||||||
stdlib_socket.o \
|
|
||||||
stdlib_srand.o \
|
stdlib_srand.o \
|
||||||
stdlib_stackargbytes.o \
|
stdlib_stackargbytes.o \
|
||||||
stdlib_stackcheck.o \
|
stdlib_stackcheck.o \
|
||||||
@ -307,22 +350,23 @@ C_LIB = \
|
|||||||
stdlib_stacksafezone.o \
|
stdlib_stacksafezone.o \
|
||||||
stdlib_stacksize.o \
|
stdlib_stacksize.o \
|
||||||
stdlib_stack_usage.o \
|
stdlib_stack_usage.o \
|
||||||
stdlib_startup.o \
|
stdlib_arg.o \
|
||||||
|
stdlib_stdio_window_spec.o \
|
||||||
stdlib_strtol.o \
|
stdlib_strtol.o \
|
||||||
stdlib_strtoul.o \
|
|
||||||
stdlib_strtoll.o \
|
stdlib_strtoll.o \
|
||||||
|
stdlib_strtoul.o \
|
||||||
stdlib_strtoull.o \
|
stdlib_strtoull.o \
|
||||||
stdlib_swapstack.o \
|
stdlib_swapstack.o \
|
||||||
stdlib_sysbase.o \
|
stdlib_sysbase.o \
|
||||||
stdlib_system.o \
|
stdlib_system.o \
|
||||||
stdlib_termination_message.o \
|
stdlib_termination_message.o \
|
||||||
stdlib_threshold.o \
|
stdlib_threshold.o \
|
||||||
|
stdlib_utilitybase.o \
|
||||||
stdlib_udivsi3.o \
|
stdlib_udivsi3.o \
|
||||||
stdlib_udivsi4.o \
|
stdlib_udivsi4.o \
|
||||||
stdlib_umodsi3.o \
|
stdlib_umodsi3.o \
|
||||||
stdlib_unsetenv.o \
|
stdlib_unsetenv.o \
|
||||||
stdlib_wildcard_expand.o \
|
strings_ffs.o \
|
||||||
stdlib_stdio_window_spec.o \
|
|
||||||
strings_strcasecmp.o \
|
strings_strcasecmp.o \
|
||||||
strings_strncasecmp.o \
|
strings_strncasecmp.o \
|
||||||
string_bcmp.o \
|
string_bcmp.o \
|
||||||
@ -360,9 +404,12 @@ C_LIB = \
|
|||||||
time_asctime_r.o \
|
time_asctime_r.o \
|
||||||
time_clock.o \
|
time_clock.o \
|
||||||
time_converttime.o \
|
time_converttime.o \
|
||||||
|
time_convert_datestamp.o \
|
||||||
|
time_convert_time.o \
|
||||||
time_ctime.o \
|
time_ctime.o \
|
||||||
time_ctime_r.o \
|
time_ctime_r.o \
|
||||||
time_data.o \
|
time_data.o \
|
||||||
|
time_days_per_date.o \
|
||||||
time_gettimeofday.o \
|
time_gettimeofday.o \
|
||||||
time_gmtime.o \
|
time_gmtime.o \
|
||||||
time_gmtime_r.o \
|
time_gmtime_r.o \
|
||||||
@ -372,6 +419,9 @@ C_LIB = \
|
|||||||
time_numbertostring.o \
|
time_numbertostring.o \
|
||||||
time_strftime.o \
|
time_strftime.o \
|
||||||
time_time.o \
|
time_time.o \
|
||||||
|
time_weekday.o \
|
||||||
|
uio_readv.o \
|
||||||
|
uio_writev.o \
|
||||||
unistd_access.o \
|
unistd_access.o \
|
||||||
unistd_chdir.o \
|
unistd_chdir.o \
|
||||||
unistd_chdir_exit.o \
|
unistd_chdir_exit.o \
|
||||||
@ -380,8 +430,10 @@ C_LIB = \
|
|||||||
unistd_dup.o \
|
unistd_dup.o \
|
||||||
unistd_dup2.o \
|
unistd_dup2.o \
|
||||||
unistd_fchown.o \
|
unistd_fchown.o \
|
||||||
|
unistd_fdatasync.o \
|
||||||
unistd_fdopen.o \
|
unistd_fdopen.o \
|
||||||
unistd_fileno.o \
|
unistd_fileno.o \
|
||||||
|
unistd_fsync.o \
|
||||||
unistd_ftruncate.o \
|
unistd_ftruncate.o \
|
||||||
unistd_getcwd.o \
|
unistd_getcwd.o \
|
||||||
unistd_getopt.o \
|
unistd_getopt.o \
|
||||||
@ -394,17 +446,18 @@ C_LIB = \
|
|||||||
unistd_realpath.o \
|
unistd_realpath.o \
|
||||||
unistd_sleep.o \
|
unistd_sleep.o \
|
||||||
unistd_symlink.o \
|
unistd_symlink.o \
|
||||||
|
unistd_sync_fd.o \
|
||||||
unistd_timer.o \
|
unistd_timer.o \
|
||||||
unistd_time_delay.o \
|
unistd_time_delay.o \
|
||||||
unistd_truncate.o \
|
unistd_truncate.o \
|
||||||
unistd_unlink.o \
|
unistd_unlink.o \
|
||||||
unistd_usleep.o \
|
unistd_usleep.o \
|
||||||
utime_utime.o
|
utime_utime.o \
|
||||||
|
utsname_uname.o
|
||||||
|
|
||||||
UNIX_LIB = \
|
UNIX_LIB = \
|
||||||
unix.lib_rev.o \
|
unix.lib_rev.o \
|
||||||
dirent_closedir.o \
|
dirent_closedir.o \
|
||||||
dirent_data.o \
|
|
||||||
dirent_rewinddir.o \
|
dirent_rewinddir.o \
|
||||||
dirent_opendir.o \
|
dirent_opendir.o \
|
||||||
dirent_readdir.o \
|
dirent_readdir.o \
|
||||||
@ -412,6 +465,7 @@ UNIX_LIB = \
|
|||||||
fcntl_fcntl.o \
|
fcntl_fcntl.o \
|
||||||
fcntl_open.o \
|
fcntl_open.o \
|
||||||
fcntl_get_default_file.o \
|
fcntl_get_default_file.o \
|
||||||
|
getopt_getopt_long.o \
|
||||||
mount_convertinfo.o \
|
mount_convertinfo.o \
|
||||||
mount_statfs.o \
|
mount_statfs.o \
|
||||||
stat_chmod.o \
|
stat_chmod.o \
|
||||||
@ -420,21 +474,38 @@ UNIX_LIB = \
|
|||||||
stat_mkdir.o \
|
stat_mkdir.o \
|
||||||
stat_rmdir.o \
|
stat_rmdir.o \
|
||||||
stat_stat.o \
|
stat_stat.o \
|
||||||
|
stdio_ctermid.o \
|
||||||
stdio_fdhookentry.o \
|
stdio_fdhookentry.o \
|
||||||
stdio_fflush.o \
|
stdio_fflush.o \
|
||||||
stdio_fopen.o \
|
stdio_fopen.o \
|
||||||
stdio_fopen.o \
|
|
||||||
stdio_init_exit.o \
|
stdio_init_exit.o \
|
||||||
|
stdio_file_init.o \
|
||||||
stdio_locksemaphorename.o \
|
stdio_locksemaphorename.o \
|
||||||
stdio_openiob.o \
|
stdio_openiob.o \
|
||||||
stdio_popen.o \
|
stdio_popen.o \
|
||||||
|
stdio_record_locking.o \
|
||||||
stdio_remove.o \
|
stdio_remove.o \
|
||||||
stdio_rename.o \
|
stdio_rename.o \
|
||||||
|
stdlib_arg.o \
|
||||||
|
stdlib_main.o \
|
||||||
stdlib_mkdtemp.o \
|
stdlib_mkdtemp.o \
|
||||||
stdlib_mkstemp.o \
|
stdlib_mkstemp.o \
|
||||||
stdlib_mkstemp.o \
|
|
||||||
stdlib_mktemp.o \
|
stdlib_mktemp.o \
|
||||||
stdlib_system.o \
|
stdlib_system.o \
|
||||||
|
termios_cfgetispeed.o \
|
||||||
|
termios_cfgetospeed.o \
|
||||||
|
termios_cfmakeraw.o \
|
||||||
|
termios_cfsetispeed.o \
|
||||||
|
termios_cfsetospeed.o \
|
||||||
|
termios_console_fdhookentry.o \
|
||||||
|
termios_tcdrain.o \
|
||||||
|
termios_tcflow.o \
|
||||||
|
termios_tcflush.o \
|
||||||
|
termios_tcgetattr.o \
|
||||||
|
termios_tcsendbreak.o \
|
||||||
|
termios_tcsetattr.o \
|
||||||
|
uio_readv.o \
|
||||||
|
uio_writev.o \
|
||||||
unistd_access.o \
|
unistd_access.o \
|
||||||
unistd_chdir.o \
|
unistd_chdir.o \
|
||||||
unistd_chdir_exit.o \
|
unistd_chdir_exit.o \
|
||||||
@ -451,44 +522,142 @@ UNIX_LIB = \
|
|||||||
unistd_translaterel.o \
|
unistd_translaterel.o \
|
||||||
unistd_translateu2a.o \
|
unistd_translateu2a.o \
|
||||||
unistd_truncate.o \
|
unistd_truncate.o \
|
||||||
|
unistd_ttyname.o \
|
||||||
|
unistd_ttyname_r.o \
|
||||||
unistd_unix_path_semantics.o \
|
unistd_unix_path_semantics.o \
|
||||||
unistd_unlink.o \
|
unistd_unlink.o \
|
||||||
unistd_wildcard_expand.o \
|
unistd_wildcard_expand.o \
|
||||||
utime_utime.o
|
utime_utime.o
|
||||||
|
|
||||||
MATH_LIB = \
|
MATH_LIB = \
|
||||||
|
complex_carg.o \
|
||||||
|
complex_cargf.o \
|
||||||
|
complex_cargl.o \
|
||||||
|
complex_cimag.o \
|
||||||
|
complex_cimagf.o \
|
||||||
|
complex_cimagl.o \
|
||||||
|
complex_conj.o \
|
||||||
|
complex_conjf.o \
|
||||||
|
complex_conjl.o \
|
||||||
|
complex_creal.o \
|
||||||
|
complex_crealf.o \
|
||||||
|
complex_creall.o \
|
||||||
math_acos.o \
|
math_acos.o \
|
||||||
|
math_acosf.o \
|
||||||
|
math_acosh.o \
|
||||||
|
math_acoshf.o \
|
||||||
math_asin.o \
|
math_asin.o \
|
||||||
|
math_asinf.o \
|
||||||
|
math_asinh.o \
|
||||||
|
math_asinhf.o \
|
||||||
math_atan.o \
|
math_atan.o \
|
||||||
math_atan2.o \
|
math_atan2.o \
|
||||||
|
math_atan2f.o \
|
||||||
|
math_atanf.o \
|
||||||
|
math_atanh.o \
|
||||||
|
math_atanhf.o \
|
||||||
|
math_cbrt.o \
|
||||||
|
math_cbrtf.o \
|
||||||
math_ceil.o \
|
math_ceil.o \
|
||||||
|
math_ceilf.o \
|
||||||
|
math_copysign.o \
|
||||||
|
math_copysignf.o \
|
||||||
math_cos.o \
|
math_cos.o \
|
||||||
|
math_cosf.o \
|
||||||
math_cosh.o \
|
math_cosh.o \
|
||||||
math_data.o \
|
math_coshf.o \
|
||||||
|
math_erf.o \
|
||||||
|
math_erfc.o \
|
||||||
|
math_erfcf.o \
|
||||||
|
math_erff.o \
|
||||||
math_exp.o \
|
math_exp.o \
|
||||||
|
math_exp2.o \
|
||||||
|
math_exp2f.o \
|
||||||
|
math_expf.o \
|
||||||
|
math_expm1.o \
|
||||||
|
math_expm1f.o \
|
||||||
math_fabs.o \
|
math_fabs.o \
|
||||||
|
math_fabsf.o \
|
||||||
math_floor.o \
|
math_floor.o \
|
||||||
|
math_floorf.o \
|
||||||
|
math_fma.o \
|
||||||
|
math_fmaf.o \
|
||||||
math_fmod.o \
|
math_fmod.o \
|
||||||
|
math_fmodf.o \
|
||||||
|
math_fpclassify.o \
|
||||||
math_frexp.o \
|
math_frexp.o \
|
||||||
|
math_frexpf.o \
|
||||||
|
math_huge_val.o \
|
||||||
|
math_huge_valf.o \
|
||||||
math_hypot.o \
|
math_hypot.o \
|
||||||
|
math_hypotf.o \
|
||||||
|
math_ilogb.o \
|
||||||
|
math_ilogbf.o \
|
||||||
|
math_inf.o \
|
||||||
|
math_inff.o \
|
||||||
math_init_exit.o \
|
math_init_exit.o \
|
||||||
math_isinf.o \
|
math_isfinite.o \
|
||||||
math_isnan.o \
|
math_isunordered.o \
|
||||||
|
math_kernel_cosf.o \
|
||||||
|
math_kernel_sinf.o \
|
||||||
|
math_kernel_tanf.o \
|
||||||
math_ldexp.o \
|
math_ldexp.o \
|
||||||
|
math_ldexpf.o \
|
||||||
|
math_lgamma.o \
|
||||||
|
math_lgammaf.o \
|
||||||
math_log.o \
|
math_log.o \
|
||||||
math_log10.o \
|
math_log10.o \
|
||||||
|
math_log10f.o \
|
||||||
|
math_log1p.o \
|
||||||
|
math_log1pf.o \
|
||||||
|
math_log2.o \
|
||||||
|
math_log2f.o \
|
||||||
math_logb.o \
|
math_logb.o \
|
||||||
|
math_logbf.o \
|
||||||
|
math_logf.o \
|
||||||
|
math_lrint.o \
|
||||||
|
math_lrintf.o \
|
||||||
|
math_lround.o \
|
||||||
|
math_lroundf.o \
|
||||||
math_modf.o \
|
math_modf.o \
|
||||||
|
math_modff.o \
|
||||||
|
math_nan.o \
|
||||||
|
math_nanf.o \
|
||||||
|
math_nearbyint.o \
|
||||||
|
math_nearbyintf.o \
|
||||||
|
math_nextafter.o \
|
||||||
|
math_nextafterf.o \
|
||||||
math_pow.o \
|
math_pow.o \
|
||||||
|
math_powf.o \
|
||||||
|
math_remainder.o \
|
||||||
|
math_remainderf.o \
|
||||||
|
math_remquo.o \
|
||||||
|
math_remquof.o \
|
||||||
|
math_rem_pio2f.o \
|
||||||
math_rint.o \
|
math_rint.o \
|
||||||
math_rintf.o \
|
math_rintf.o \
|
||||||
|
math_round.o \
|
||||||
|
math_roundf.o \
|
||||||
|
math_scalbn.o \
|
||||||
|
math_scalbnf.o \
|
||||||
|
math_signbit.o \
|
||||||
math_sin.o \
|
math_sin.o \
|
||||||
|
math_sinf.o \
|
||||||
math_sinh.o \
|
math_sinh.o \
|
||||||
|
math_sinhf.o \
|
||||||
math_sqrt.o \
|
math_sqrt.o \
|
||||||
|
math_sqrtf.o \
|
||||||
math_tan.o \
|
math_tan.o \
|
||||||
|
math_tanf.o \
|
||||||
math_tanh.o \
|
math_tanh.o \
|
||||||
|
math_tanhf.o \
|
||||||
|
math_tgamma.o \
|
||||||
|
math_tgammaf.o \
|
||||||
|
math_trunc.o \
|
||||||
|
math_truncf.o \
|
||||||
stdio_asprintf.o \
|
stdio_asprintf.o \
|
||||||
stdio_flush.o \
|
stdio_flush.o \
|
||||||
|
stdio_flush_all_files.o \
|
||||||
stdio_fprintf.o \
|
stdio_fprintf.o \
|
||||||
stdio_fscanf.o \
|
stdio_fscanf.o \
|
||||||
stdio_printf.o \
|
stdio_printf.o \
|
||||||
@ -499,12 +668,14 @@ MATH_LIB = \
|
|||||||
stdio_vasprintf.o \
|
stdio_vasprintf.o \
|
||||||
stdio_vfprintf.o \
|
stdio_vfprintf.o \
|
||||||
stdio_vfscanf.o \
|
stdio_vfscanf.o \
|
||||||
|
stdio_vsscanf.o \
|
||||||
|
stdio_vscanf.o \
|
||||||
stdio_vprintf.o \
|
stdio_vprintf.o \
|
||||||
stdio_vsnprintf.o \
|
stdio_vsnprintf.o \
|
||||||
stdio_vsprintf.o \
|
stdio_vsprintf.o \
|
||||||
stdlib_atof.o \
|
stdlib_atof.o \
|
||||||
stdlib_machine_test.o \
|
|
||||||
stdlib_strtod.o \
|
stdlib_strtod.o \
|
||||||
|
stdlib_strtof.o \
|
||||||
time_difftime.o
|
time_difftime.o
|
||||||
|
|
||||||
MATH_LIB_881 = \
|
MATH_LIB_881 = \
|
||||||
@ -557,8 +728,8 @@ NET_LIB = \
|
|||||||
net.lib_rev.o \
|
net.lib_rev.o \
|
||||||
socket_accept.o \
|
socket_accept.o \
|
||||||
socket_bind.o \
|
socket_bind.o \
|
||||||
|
socket_check_daemon.o \
|
||||||
socket_connect.o \
|
socket_connect.o \
|
||||||
socket_data.o \
|
|
||||||
socket_gethostbyaddr.o \
|
socket_gethostbyaddr.o \
|
||||||
socket_gethostbyname.o \
|
socket_gethostbyname.o \
|
||||||
socket_gethostid.o \
|
socket_gethostid.o \
|
||||||
@ -584,6 +755,7 @@ NET_LIB = \
|
|||||||
socket_ioctl.o \
|
socket_ioctl.o \
|
||||||
socket_isdaemon.o \
|
socket_isdaemon.o \
|
||||||
socket_listen.o \
|
socket_listen.o \
|
||||||
|
socket_obtain_daemon.o \
|
||||||
socket_recv.o \
|
socket_recv.o \
|
||||||
socket_recvfrom.o \
|
socket_recvfrom.o \
|
||||||
socket_recvmsg.o \
|
socket_recvmsg.o \
|
||||||
@ -596,6 +768,8 @@ NET_LIB = \
|
|||||||
socket_socket.o \
|
socket_socket.o \
|
||||||
socket_hook_entry.o \
|
socket_hook_entry.o \
|
||||||
socket_hstrerror.o \
|
socket_hstrerror.o \
|
||||||
|
socket_get_h_errno.o \
|
||||||
|
socket_set_h_errno.o \
|
||||||
stat_umask.o \
|
stat_umask.o \
|
||||||
usergroup_crypt.o \
|
usergroup_crypt.o \
|
||||||
usergroup_data.o \
|
usergroup_data.o \
|
||||||
@ -625,7 +799,8 @@ NET_LIB = \
|
|||||||
usergroup_setregid.o \
|
usergroup_setregid.o \
|
||||||
usergroup_setreuid.o \
|
usergroup_setreuid.o \
|
||||||
usergroup_setsid.o \
|
usergroup_setsid.o \
|
||||||
usergroup_setuid.o
|
usergroup_setuid.o \
|
||||||
|
utsname_uname.o
|
||||||
|
|
||||||
DEBUG_LIB = \
|
DEBUG_LIB = \
|
||||||
debug.lib_rev.o \
|
debug.lib_rev.o \
|
||||||
@ -694,6 +869,17 @@ AMIGA_LIB = \
|
|||||||
amiga_timedelay.o \
|
amiga_timedelay.o \
|
||||||
amiga_waitbeam.o
|
amiga_waitbeam.o
|
||||||
|
|
||||||
|
MEMDEBUG_LIB = \
|
||||||
|
stdio_vasprintf_debug.o \
|
||||||
|
stdio_vasprintf_debug.o \
|
||||||
|
stdio_vasprintf_hook_entry_debug.o \
|
||||||
|
stdlib_alloca_debug.o \
|
||||||
|
stdlib_calloc_debug.o \
|
||||||
|
stdlib_free_debug.o \
|
||||||
|
stdlib_malloc_debug.o \
|
||||||
|
string_strdup_debug.o \
|
||||||
|
unistd_getcwd_debug.o
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
LIBS_68K := $(LIBC_OBJS)/libc.a $(LIBSTACK_OBJS)/libstack.a $(LIBUNIX_OBJS)/libunix.a \
|
LIBS_68K := $(LIBC_OBJS)/libc.a $(LIBSTACK_OBJS)/libstack.a $(LIBUNIX_OBJS)/libunix.a \
|
||||||
@ -704,7 +890,7 @@ LIBS_020 := $(LIBM881_OBJS)/libm881.a $(LIBS_68K)
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
# The 881 math library won't build in plain 68k mode
|
# The 881 math library won't build in plain 68k mode
|
||||||
ifneq (,$(findstring 68020,$(CODE_TYPE)))
|
ifneq (,$(findstring 68020,$(CODE_FLAGS)))
|
||||||
LIBS := $(LIBS_020)
|
LIBS := $(LIBS_020)
|
||||||
else
|
else
|
||||||
LIBS := $(LIBS_68K)
|
LIBS := $(LIBS_68K)
|
||||||
@ -712,7 +898,7 @@ endif
|
|||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o mainnb.o mainb.o mainb32.o
|
STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@ -722,9 +908,6 @@ all: \
|
|||||||
lib/ncrt0.o \
|
lib/ncrt0.o \
|
||||||
lib/n32bcrt0.o \
|
lib/n32bcrt0.o \
|
||||||
lib/n32rcrt0.o \
|
lib/n32rcrt0.o \
|
||||||
lib/mainnb.o \
|
|
||||||
lib/mainb.o \
|
|
||||||
lib/mainb32.o \
|
|
||||||
lib/libm020/libm.a \
|
lib/libm020/libm.a \
|
||||||
lib/libm.a \
|
lib/libm.a \
|
||||||
lib/libb/libm.a \
|
lib/libb/libm.a \
|
||||||
@ -801,47 +984,38 @@ lib/libm020 : lib
|
|||||||
|
|
||||||
lib/libb/libm020/libm.a: lib lib/libb/libm020
|
lib/libb/libm020/libm.a: lib lib/libb/libm020
|
||||||
$(MAKE) TYPE=small_data_020 kitchen_sink
|
$(MAKE) TYPE=small_data_020 kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_020),small_data_020/$(file)) lib/libb/libm020
|
@$(COPY) $(foreach file,$(LIBS_020),small_data_020/$(file)) lib/libb/libm020
|
||||||
|
|
||||||
lib/libb/libm.a: lib lib/libb
|
lib/libb/libm.a: lib lib/libb
|
||||||
$(MAKE) TYPE=small_data kitchen_sink
|
$(MAKE) TYPE=small_data kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_68K),small_data/$(file)) lib/libb
|
@$(COPY) $(foreach file,$(LIBS_68K),small_data/$(file)) lib/libb
|
||||||
|
|
||||||
lib/libb32/libm020/libm.a: lib lib/libb32 lib/libb32/libm020
|
lib/libb32/libm020/libm.a: lib lib/libb32 lib/libb32/libm020
|
||||||
$(MAKE) TYPE=small_data32 kitchen_sink
|
$(MAKE) TYPE=small_data32 kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_020),small_data32/$(file)) lib/libb32/libm020
|
@$(COPY) $(foreach file,$(LIBS_020),small_data32/$(file)) lib/libb32/libm020
|
||||||
|
|
||||||
lib/libm020/libm.a: lib lib/libm020
|
lib/libm020/libm.a: lib lib/libm020
|
||||||
$(MAKE) TYPE=large_data_020 kitchen_sink
|
$(MAKE) TYPE=large_data_020 kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_020),large_data_020/$(file)) lib/libm020
|
@$(COPY) $(foreach file,$(LIBS_020),large_data_020/$(file)) lib/libm020
|
||||||
|
|
||||||
lib/libm.a: lib
|
lib/libm.a: lib
|
||||||
$(MAKE) TYPE=large_data kitchen_sink
|
$(MAKE) TYPE=large_data kitchen_sink
|
||||||
$(COPY) $(foreach file,$(LIBS_68K),large_data/$(file)) lib
|
@$(COPY) $(foreach file,$(LIBS_68K),large_data/$(file)) lib
|
||||||
|
|
||||||
lib/nrcrt0.o : lib nrcrt0.o
|
lib/nrcrt0.o : lib nrcrt0.o
|
||||||
$(COPY) nrcrt0.o lib
|
@$(COPY) nrcrt0.o lib
|
||||||
|
|
||||||
lib/nbcrt0.o : lib nbcrt0.o
|
lib/nbcrt0.o : lib nbcrt0.o
|
||||||
$(COPY) nbcrt0.o lib
|
@$(COPY) nbcrt0.o lib
|
||||||
|
|
||||||
lib/ncrt0.o : lib ncrt0.o
|
lib/ncrt0.o : lib ncrt0.o
|
||||||
$(COPY) ncrt0.o lib
|
@$(COPY) ncrt0.o lib
|
||||||
|
|
||||||
lib/n32bcrt0.o : lib nb32crt0.o
|
lib/n32bcrt0.o : lib nb32crt0.o
|
||||||
$(COPY) nb32crt0.o lib
|
@$(COPY) nb32crt0.o lib
|
||||||
|
|
||||||
lib/n32rcrt0.o : lib nr32crt0.o
|
lib/n32rcrt0.o : lib nr32crt0.o
|
||||||
$(COPY) nr32crt0.o lib
|
@$(COPY) nr32crt0.o lib
|
||||||
|
|
||||||
lib/mainnb.o : lib mainnb.o
|
|
||||||
$(COPY) mainnb.o lib
|
|
||||||
|
|
||||||
lib/mainb.o : lib mainb.o
|
|
||||||
$(COPY) mainb.o lib
|
|
||||||
|
|
||||||
lib/mainb32.o : lib mainb32.o
|
|
||||||
$(COPY) mainb32.o lib
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@ -877,21 +1051,92 @@ $(LIBAMIGA_OBJS)/amiga.lib_rev.o : amiga.lib_rev.c amiga.lib_rev.h
|
|||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h
|
$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_getdefstacksize.o : stdlib_getdefstacksize.c stdlib_gcc_help.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h
|
$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_init_exit.o : stdlib_init_exit.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_mem_debug.h
|
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_memory.h
|
||||||
|
|
||||||
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_mem_debug.h
|
##############################################################################
|
||||||
|
|
||||||
|
# The -fbaserel32 option requires the CPU type to be 68020, too.
|
||||||
|
ifneq (,$(findstring fbaserel32,$(CODE_FLAGS)))
|
||||||
|
LOCAL_CODE_FLAGS := $(CODE_FLAGS) $(CODE_TYPE)
|
||||||
|
else
|
||||||
|
LOCAL_CODE_FLAGS := $(CODE_FLAGS)
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(LIBM881_OBJS)/math_init_exit.o : math_init_exit.c
|
||||||
|
@echo "Compiling $< [$(TYPE):m881]"
|
||||||
|
@$(CC) -o $(LIBM881_OBJS)/math_init_exit.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) -DM68881_FLOATING_POINT_SUPPORT $(INCLUDES) $<
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_machine_test.o : stdlib_machine_test.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_machine_test.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_showerror.o : stdlib_showerror.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_showerror.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_main.o : stdlib_main.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_main.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) stdlib_main.c
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_alloca_debug.o : stdlib_alloca.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_alloca_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_alloca.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_calloc_debug.o : stdlib_calloc.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_calloc_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_calloc.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_free_debug.o : stdlib_free.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_free_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_free.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_malloc_debug.o : stdlib_malloc.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_malloc_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_malloc.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdlib_realloc_debug.o : stdlib_realloc.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdlib_realloc_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_realloc.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdio_vasprintf_hook_entry_debug.o : stdio_vasprintf_hook_entry.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdio_vasprintf_hook_entry_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdio_vasprintf_hook_entry.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/stdio_vasprintf_debug.o : stdio_vasprintf.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/stdio_vasprintf_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdio_vasprintf.c
|
||||||
|
|
||||||
|
$(LIBM_OBJS)/stdio_vasprintf_debug.o : stdio_vasprintf.c
|
||||||
|
@echo "Compiling $< [$(TYPE):m debug]"
|
||||||
|
@$(CC) -o $(LIBM_OBJS)/stdio_vasprintf_debug.o -c $(CFLAGS) -DIEEE_FLOATING_POINT_SUPPORT -D__USE_MEM_TREES -D__MEM_DEBUG stdio_vasprintf.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/string_strdup_debug.o : string_strdup.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/string_strdup_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG string_strdup.c
|
||||||
|
|
||||||
|
$(LIBC_OBJS)/unistd_getcwd_debug.o : unistd_getcwd.c
|
||||||
|
@echo "Compiling $< [$(TYPE):c debug]"
|
||||||
|
@$(CC) -o $(LIBC_OBJS)/unistd_getcwd_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG unistd_getcwd.c
|
||||||
|
|
||||||
|
$(LIBUNIX_OBJS)/unistd_getcwd_debug.o : unistd_getcwd.c
|
||||||
|
@echo "Compiling $< [$(TYPE):unix debug]"
|
||||||
|
@$(CC) -o $(LIBUNIX_OBJS)/unistd_getcwd_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG -DUNIX_PATH_SEMANTICS unistd_getcwd.c
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@ -976,25 +1221,49 @@ $(LIBAMIGA_OBJS)/libamiga.a : $(LIBAMIGA_OBJS) $(foreach file,$(AMIGA_LIB),$(LIB
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
nrcrt0.o : nrcrt0.S
|
nrcrt0.o : nrcrt0.S
|
||||||
$(CC) -traditional -o $@ -c nrcrt0.S
|
@echo "Assembling $< [resident]"
|
||||||
|
@$(CC) -traditional -o $@ -c nrcrt0.S
|
||||||
|
|
||||||
nr32crt0.o : nrcrt0.S
|
nr32crt0.o : nrcrt0.S
|
||||||
$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c nrcrt0.S
|
@echo "Assembling $< [resident32]"
|
||||||
|
@$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c nrcrt0.S
|
||||||
|
|
||||||
nbcrt0.o : ncrt0.S
|
nbcrt0.o : ncrt0.S
|
||||||
$(CC) -traditional -DSMALL_DATA -o $@ -c ncrt0.S
|
@echo "Assembling $< [small_data]"
|
||||||
|
@$(CC) -traditional -DSMALL_DATA -o $@ -c ncrt0.S
|
||||||
|
|
||||||
nb32crt0.o : ncrt0.S
|
nb32crt0.o : ncrt0.S
|
||||||
$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c ncrt0.S
|
@echo "Assembling $< [small_data32]"
|
||||||
|
@$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c ncrt0.S
|
||||||
|
|
||||||
ncrt0.o : ncrt0.S
|
ncrt0.o : ncrt0.S
|
||||||
$(CC) -traditional -o $@ -c ncrt0.S
|
@echo "Assembling $< [large_data]"
|
||||||
|
@$(CC) -traditional -o $@ -c ncrt0.S
|
||||||
|
|
||||||
mainb32.o : stdlib_main.c
|
##############################################################################
|
||||||
$(CC) -o mainb32.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020 stdlib_main.c
|
|
||||||
|
|
||||||
mainb.o : stdlib_main.c
|
CONSTRUCTOR_FILES = \
|
||||||
$(CC) -o mainb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -fbaserel -DSMALL_DATA -m68000 stdlib_main.c
|
amiga_rexxvars.c \
|
||||||
|
dirent_closedir.c \
|
||||||
|
locale_init_exit.c \
|
||||||
|
math_init_exit.c \
|
||||||
|
sas_profile.c \
|
||||||
|
socket_init_exit.c \
|
||||||
|
stdio_file_init.c \
|
||||||
|
stdio_init_exit.c \
|
||||||
|
stdlib_alloca.c \
|
||||||
|
stdlib_arg.c \
|
||||||
|
stdlib_malloc.c \
|
||||||
|
stdlib_program_name.c \
|
||||||
|
stdlib_setenv.c \
|
||||||
|
stdlib_stackcheck.c \
|
||||||
|
stdlib_stackextension.c \
|
||||||
|
time_clock.c \
|
||||||
|
unistd_chdir_exit.c \
|
||||||
|
unistd_init_exit.c \
|
||||||
|
unistd_timer.c \
|
||||||
|
unistd_wildcard_expand.c \
|
||||||
|
usergroup_init_exit.c
|
||||||
|
|
||||||
mainnb.o : stdlib_main.c
|
touch_constructor_files:
|
||||||
$(CC) -o mainnb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -m68000 stdlib_main.c
|
touch $(CONSTRUCTOR_FILES)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
5
library/TODO
Executable file
5
library/TODO
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
C99 math functions:
|
||||||
|
|
||||||
|
fma() and fmaf() should be implemented as a true "fused" multiply
|
||||||
|
and add function rather than the sequential operation implied in the
|
||||||
|
current implementation.
|
||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga.lib_rev.c,v 1.1.1.1 2004-07-26 16:30:15 obarthel Exp $
|
* $Id: amiga.lib_rev.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 184
|
#define REVISION 197
|
||||||
#define DATE "28.11.2004"
|
#define DATE "4.11.2005"
|
||||||
#define VERS "amiga.lib 1.184"
|
#define VERS "amiga.lib 1.197"
|
||||||
#define VSTRING "amiga.lib 1.184 (28.11.2004)\r\n"
|
#define VSTRING "amiga.lib 1.197 (4.11.2005)\r\n"
|
||||||
#define VERSTAG "\0$VER: amiga.lib 1.184 (28.11.2004)"
|
#define VERSTAG "\0$VER: amiga.lib 1.197 (4.11.2005)"
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
184
|
197
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_acrypt.c,v 1.1.1.1 2004-07-26 16:30:16 obarthel Exp $
|
* $Id: amiga_acrypt.c,v 1.3 2005-05-30 14:01:20 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -31,10 +31,14 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define ACrypt __ACrypt
|
||||||
|
|
||||||
#include <exec/types.h>
|
#include <exec/types.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <clib/alib_protos.h>
|
#include <clib/alib_protos.h>
|
||||||
|
|
||||||
|
#undef ACrypt
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_addtof.c,v 1.1.1.1 2004-07-26 16:30:16 obarthel Exp $
|
* $Id: amiga_addtof.c,v 1.3 2005-02-25 10:14:20 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -57,7 +57,7 @@ typedef LONG (* CFUNC)(APTR arg);
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static LONG INTERRUPT ASM
|
STATIC LONG INTERRUPT ASM
|
||||||
call_routine(REG(a1,struct Isrvstr *i))
|
call_routine(REG(a1,struct Isrvstr *i))
|
||||||
{
|
{
|
||||||
CFUNC p = (CFUNC)i->ccode;
|
CFUNC p = (CFUNC)i->ccode;
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argarraydone.c,v 1.1.1.1 2004-07-26 16:30:16 obarthel Exp $
|
* $Id: amiga_argarraydone.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argarrayinit.c,v 1.1.1.1 2004-07-26 16:30:16 obarthel Exp $
|
* $Id: amiga_argarrayinit.c,v 1.3 2005-10-27 08:58:41 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -61,11 +61,11 @@ struct DiskObject * CXLIB_disko;
|
|||||||
STRPTR *
|
STRPTR *
|
||||||
ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
ArgArrayInit(LONG argc, CONST_STRPTR * argv)
|
||||||
{
|
{
|
||||||
unsigned char ** result = NULL;
|
STRPTR * result = NULL;
|
||||||
|
|
||||||
if(argc != 0) /* run from CLI */
|
if(argc != 0) /* run from CLI */
|
||||||
{
|
{
|
||||||
int i;
|
LONG i;
|
||||||
|
|
||||||
if(argc == 1)
|
if(argc == 1)
|
||||||
goto out; /* skip command name */
|
goto out; /* skip command name */
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argint.c,v 1.1.1.1 2004-07-26 16:30:16 obarthel Exp $
|
* $Id: amiga_argint.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_argstring.c,v 1.1.1.1 2004-07-26 16:30:16 obarthel Exp $
|
* $Id: amiga_argstring.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_beginio.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $
|
* $Id: amiga_beginio.c,v 1.3 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_callhook.c,v 1.1.1.1 2004-07-26 16:30:17 obarthel Exp $
|
* $Id: amiga_callhook.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
*
|
*
|
||||||
* $Id: amiga_callhooka.asm,v 1.1.1.1 2004-07-26 16:30:17 obarthel Exp $
|
* $Id: amiga_callhooka.asm,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_callhooka.c,v 1.1.1.1 2004-07-26 16:30:17 obarthel Exp $
|
* $Id: amiga_callhooka.c,v 1.2 2005-01-02 09:07:06 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_coercemethod.c,v 1.1.1.1 2004-07-26 16:30:17 obarthel Exp $
|
* $Id: amiga_coercemethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createextio.c,v 1.2 2004-11-10 14:55:30 obarthel Exp $
|
* $Id: amiga_createextio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createport.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $
|
* $Id: amiga_createport.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createstdio.c,v 1.2 2004-11-10 14:55:30 obarthel Exp $
|
* $Id: amiga_createstdio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_createtask.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $
|
* $Id: amiga_createtask.c,v 1.4 2005-03-18 12:38:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -46,6 +46,12 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _STDLIB_PROFILE_H
|
||||||
|
#include "stdlib_profile.h"
|
||||||
|
#endif /* _STDLIB_PROFILE_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deleteextio.c,v 1.2 2004-11-10 14:55:30 obarthel Exp $
|
* $Id: amiga_deleteextio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deleteport.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $
|
* $Id: amiga_deleteport.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deletestdio.c,v 1.2 2004-11-10 14:55:30 obarthel Exp $
|
* $Id: amiga_deletestdio.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_deletetask.c,v 1.2 2004-11-13 12:55:39 obarthel Exp $
|
* $Id: amiga_deletetask.c,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_domethod.c,v 1.1.1.1 2004-07-26 16:30:19 obarthel Exp $
|
* $Id: amiga_domethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_dosupermethod.c,v 1.1.1.1 2004-07-26 16:30:19 obarthel Exp $
|
* $Id: amiga_dosupermethod.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_dotimer.c,v 1.1.1.1 2004-07-26 16:30:19 obarthel Exp $
|
* $Id: amiga_dotimer.c,v 1.6 2005-09-03 14:45:14 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -44,6 +44,12 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _STDLIB_PROFILE_H
|
||||||
|
#include "stdlib_profile.h"
|
||||||
|
#endif /* _STDLIB_PROFILE_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
@ -58,18 +64,38 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
|
|
||||||
assert( tv != NULL );
|
assert( tv != NULL );
|
||||||
|
|
||||||
mp = AllocVec(sizeof(*mp),MEMF_ANY|MEMF_PUBLIC|MEMF_CLEAR);
|
#if defined(__amigaos4__)
|
||||||
if(mp == NULL)
|
|
||||||
{
|
{
|
||||||
error = IOERR_OPENFAIL;
|
mp = AllocSysObjectTags(ASOT_PORT,
|
||||||
goto out;
|
ASOPORT_Action, PA_SIGNAL,
|
||||||
}
|
ASOPORT_AllocSig, FALSE,
|
||||||
|
ASOPORT_Signal, SIGB_SINGLE,
|
||||||
|
ASOPORT_Target, FindTask(NULL),
|
||||||
|
TAG_DONE);
|
||||||
|
|
||||||
mp->mp_Node.ln_Type = NT_MSGPORT;
|
if(mp == NULL)
|
||||||
mp->mp_Flags = PA_SIGNAL;
|
{
|
||||||
mp->mp_SigBit = SIGB_SINGLE;
|
error = IOERR_OPENFAIL;
|
||||||
mp->mp_SigTask = FindTask(NULL);
|
goto out;
|
||||||
NewList(&mp->mp_MsgList);
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
mp = AllocVec(sizeof(*mp),MEMF_ANY|MEMF_PUBLIC|MEMF_CLEAR);
|
||||||
|
if(mp == NULL)
|
||||||
|
{
|
||||||
|
error = IOERR_OPENFAIL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
mp->mp_Node.ln_Type = NT_MSGPORT;
|
||||||
|
mp->mp_Flags = PA_SIGNAL;
|
||||||
|
mp->mp_SigBit = SIGB_SINGLE;
|
||||||
|
mp->mp_SigTask = FindTask(NULL);
|
||||||
|
|
||||||
|
NewList(&mp->mp_MsgList);
|
||||||
|
}
|
||||||
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
tr = (struct timerequest *)CreateIORequest(mp,sizeof(*tr));
|
tr = (struct timerequest *)CreateIORequest(mp,sizeof(*tr));
|
||||||
if(tr == NULL)
|
if(tr == NULL)
|
||||||
@ -88,7 +114,7 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
|
|
||||||
PROFILE_OFF();
|
PROFILE_OFF();
|
||||||
|
|
||||||
SetSignal(0,SIGF_SINGLE);
|
SetSignal(0,(1UL << mp->mp_SigBit));
|
||||||
|
|
||||||
error = DoIO((struct IORequest *)tr);
|
error = DoIO((struct IORequest *)tr);
|
||||||
|
|
||||||
@ -107,7 +133,16 @@ DoTimer(struct timeval *tv,LONG unit,LONG command)
|
|||||||
DeleteIORequest((struct IORequest *)tr);
|
DeleteIORequest((struct IORequest *)tr);
|
||||||
}
|
}
|
||||||
|
|
||||||
FreeVec(mp);
|
#if defined(__amigaos4__)
|
||||||
|
{
|
||||||
|
if(mp != NULL)
|
||||||
|
FreeSysObject(ASOT_PORT,mp);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
FreeVec(mp);
|
||||||
|
}
|
||||||
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_fastrand.c,v 1.1.1.1 2004-07-26 16:30:20 obarthel Exp $
|
* $Id: amiga_fastrand.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_freeievents.c,v 1.1.1.1 2004-07-26 16:30:20 obarthel Exp $
|
* $Id: amiga_freeievents.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
*
|
*
|
||||||
* $Id: amiga_hookentry.asm,v 1.1.1.1 2004-07-26 16:30:20 obarthel Exp $
|
* $Id: amiga_hookentry.asm,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_hookentry.c,v 1.1.1.1 2004-07-26 16:30:20 obarthel Exp $
|
* $Id: amiga_hookentry.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_hotkey.c,v 1.1.1.1 2004-07-26 16:30:20 obarthel Exp $
|
* $Id: amiga_hotkey.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_invertstring.c,v 1.1.1.1 2004-07-26 16:30:20 obarthel Exp $
|
* $Id: amiga_invertstring.c,v 1.3 2005-02-25 10:14:20 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static int
|
STATIC int
|
||||||
do_escape(int cc)
|
do_escape(int cc)
|
||||||
{
|
{
|
||||||
int result;
|
int result;
|
||||||
@ -91,7 +91,7 @@ do_escape(int cc)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static ULONG
|
STATIC ULONG
|
||||||
do_angle(STRPTR * strp, struct InputEvent *ie)
|
do_angle(STRPTR * strp, struct InputEvent *ie)
|
||||||
{
|
{
|
||||||
ULONG result;
|
ULONG result;
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_newlist.c,v 1.1.1.1 2004-07-26 16:30:21 obarthel Exp $
|
* $Id: amiga_newlist.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_rangerand.c,v 1.1.1.1 2004-07-26 16:30:21 obarthel Exp $
|
* $Id: amiga_rangerand.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_remtof.c,v 1.1.1.1 2004-07-26 16:30:21 obarthel Exp $
|
* $Id: amiga_remtof.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_rexxvars.c,v 1.1 2004-11-14 11:06:27 obarthel Exp $
|
* $Id: amiga_rexxvars.c,v 1.6 2005-03-18 12:38:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -34,12 +34,20 @@
|
|||||||
/* We don't want to pull in <clib/alib_protos.h> */
|
/* We don't want to pull in <clib/alib_protos.h> */
|
||||||
#define CLIB_ALIB_PROTOS_H
|
#define CLIB_ALIB_PROTOS_H
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _STDLIB_HEADERS_H
|
#ifndef _STDLIB_HEADERS_H
|
||||||
#include "stdlib_headers.h"
|
#include "stdlib_headers.h"
|
||||||
#endif /* _STDLIB_HEADERS_H */
|
#endif /* _STDLIB_HEADERS_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _STDLIB_CONSTRUCTOR_H
|
||||||
|
#include "stdlib_constructor.h"
|
||||||
|
#endif /* _STDLIB_CONSTRUCTOR_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
#include <rexx/rxslib.h>
|
#include <rexx/rxslib.h>
|
||||||
#include <rexx/errors.h>
|
#include <rexx/errors.h>
|
||||||
|
|
||||||
@ -50,17 +58,17 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
STATIC struct Library * RexxSysBase;
|
static struct Library * RexxSysBase;
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
#if defined(__amigaos4__)
|
||||||
STATIC struct RexxSysIFace * IRexxSys;
|
static struct RexxSysIFace * IRexxSys;
|
||||||
#endif /* __amigaos4__ */
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
CLIB_CONSTRUCTOR(__rexxvars_init)
|
CLIB_CONSTRUCTOR(rexxvars_init)
|
||||||
{
|
{
|
||||||
ENTER();
|
ENTER();
|
||||||
|
|
||||||
@ -80,12 +88,14 @@ CLIB_CONSTRUCTOR(__rexxvars_init)
|
|||||||
}
|
}
|
||||||
#endif /* __amigaos4__ */
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
|
LEAVE();
|
||||||
|
|
||||||
CONSTRUCTOR_SUCCEED();
|
CONSTRUCTOR_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
CLIB_DESTRUCTOR(__rexxvars_exit)
|
CLIB_DESTRUCTOR(rexxvars_exit)
|
||||||
{
|
{
|
||||||
ENTER();
|
ENTER();
|
||||||
|
|
||||||
@ -144,7 +154,7 @@ CheckRexxMsg(struct RexxMsg *message)
|
|||||||
LONG
|
LONG
|
||||||
GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer)
|
GetRexxVar(struct RexxMsg *message,STRPTR variable_name,STRPTR *buffer_pointer)
|
||||||
{
|
{
|
||||||
STATIC TEXT buffer[256];
|
static UBYTE buffer[256];
|
||||||
LONG result;
|
LONG result;
|
||||||
|
|
||||||
/* The following uses a function which was added to rexxsyslib.library V45.
|
/* The following uses a function which was added to rexxsyslib.library V45.
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_setsuperattrs.c,v 1.1.1.1 2004-07-26 16:30:21 obarthel Exp $
|
* $Id: amiga_setsuperattrs.c,v 1.4 2005-02-25 10:14:20 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_timedelay.c,v 1.1.1.1 2004-07-26 16:30:21 obarthel Exp $
|
* $Id: amiga_timedelay.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: amiga_waitbeam.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: amiga_waitbeam.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
31
library/build_archive_amiga
Executable file
31
library/build_archive_amiga
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
; Simple release archive build script for Amiga systems.
|
||||||
|
|
||||||
|
; Set the name of the archive and the directory the
|
||||||
|
; files go into
|
||||||
|
set dir_name clib2-1.`type c.lib_rev.rev`
|
||||||
|
|
||||||
|
; Start with a clean slate
|
||||||
|
delete all quiet ram:$dir_name
|
||||||
|
|
||||||
|
; Create the directory, copy all the libraries, header files
|
||||||
|
; and release note files inside.
|
||||||
|
makedir ram:$dir_name
|
||||||
|
copy lib ram:${dir_name}/lib all clone quiet
|
||||||
|
copy include ram:${dir_name}/include all clone quiet
|
||||||
|
copy changes ram:$dir_name clone
|
||||||
|
|
||||||
|
; Delete the CVS data from the include directory
|
||||||
|
delete ram:${dir_name}/include/CVS ram:${dir_name}/include/sys/CVS ram:${dir_name}/include/arpa/CVS ram:${dir_name}/include/netinet/CVS all quiet
|
||||||
|
|
||||||
|
; Finally, create an lha archive in RAM:
|
||||||
|
pushcd ram:
|
||||||
|
lha -r -x -a a ${dir_name}-gcc-68k.lha ${dir_name}
|
||||||
|
popcd
|
||||||
|
|
||||||
|
; Move the archive back to this directory
|
||||||
|
copy ram:${dir_name}-gcc-68k.lha "" clone
|
||||||
|
|
||||||
|
; Clean up...
|
||||||
|
delete ram:$dir_name all quiet
|
||||||
|
unset dir_name
|
||||||
|
|
||||||
27
library/build_archive_unix.sh
Executable file
27
library/build_archive_unix.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Simple release archive build script for Unix systems.
|
||||||
|
# I typically build the library with a cross compiler.
|
||||||
|
|
||||||
|
# Set the name of the archive and the directory the
|
||||||
|
# files go into
|
||||||
|
export dir_name=clib2-1.`cat c.lib_rev.rev`
|
||||||
|
|
||||||
|
# Start with a clean slate
|
||||||
|
rm -rf $dir_name
|
||||||
|
|
||||||
|
# Create the directory, copy all the libraries, header files
|
||||||
|
# and release note files inside.
|
||||||
|
mkdir $dir_name
|
||||||
|
cp -a lib $dir_name
|
||||||
|
cp -a lib.threadsafe $dir_name
|
||||||
|
cp -a include $dir_name
|
||||||
|
cp changes $dir_name
|
||||||
|
|
||||||
|
# Delete the CVS data from the include directory
|
||||||
|
rm -rf ${dir_name}/include/CVS ${dir_name}/include/sys/CVS ${dir_name}/include/arpa/CVS ${dir_name}/include/netinet/CVS
|
||||||
|
|
||||||
|
# Finally, create an lha type 5 archive; the Amiga LhA port
|
||||||
|
# can unpack it.
|
||||||
|
lha ao5q ${dir_name}-gcc-os4.lha ${dir_name}
|
||||||
|
|
||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: c.lib_rev.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: c.lib_rev.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 184
|
#define REVISION 197
|
||||||
#define DATE "28.11.2004"
|
#define DATE "4.11.2005"
|
||||||
#define VERS "c.lib 1.184"
|
#define VERS "c.lib 1.197"
|
||||||
#define VSTRING "c.lib 1.184 (28.11.2004)\r\n"
|
#define VSTRING "c.lib 1.197 (4.11.2005)\r\n"
|
||||||
#define VERSTAG "\0$VER: c.lib 1.184 (28.11.2004)"
|
#define VERSTAG "\0$VER: c.lib 1.197 (4.11.2005)"
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
184
|
197
|
||||||
|
|||||||
934
library/changes
934
library/changes
@ -1,3 +1,929 @@
|
|||||||
|
c.lib 1.197 (4.11.2005)
|
||||||
|
|
||||||
|
- Updated math_hypot.c to a newer (e_hypot.c 1.3 95/01/18) version from
|
||||||
|
fdlibm which uses macros for manipulating the high and low words of a
|
||||||
|
double, like the rest of fdlibm functions in clib2. The previous version
|
||||||
|
would give bogus results when compiled with -O3 in clib2 which lead to
|
||||||
|
"interesting" results (and lots of fun while searching for the problem)
|
||||||
|
in Ghostscript. Wish I managed to track this down yesterday for 1.196
|
||||||
|
release... <aantonijevic>
|
||||||
|
|
||||||
|
- Implemented atanh() and atanhf() which were not listed in the TODO
|
||||||
|
file but were still unimplemented up until now.
|
||||||
|
|
||||||
|
- Replaced ldexp() and modf().
|
||||||
|
|
||||||
|
- Added __set_h_errno() and __get_h_errno() functions.
|
||||||
|
|
||||||
|
- The thread-safe library now tries to enable bsdsocket.library base
|
||||||
|
sharing and attempts to make the TCP/IP stack call the local
|
||||||
|
__set_errno() and __set_h_errno(), so that any Process calling
|
||||||
|
the library functions will get a chance to see proper error
|
||||||
|
codes. Whether any of these features could be enabled can be tested
|
||||||
|
through two global variables __can_share_socket_library_base and
|
||||||
|
__thread_safe_errno_h_errno which are defined in <dos.h>. Note that
|
||||||
|
for both features to work you will need the Roadshow bsdsocket.library
|
||||||
|
version 4.275 or higher.
|
||||||
|
|
||||||
|
- In <stdbool.h> the preprocessor definition should read
|
||||||
|
"__bool_true_false_are_defined" rather than "__bool_true_and_false_are_defined".
|
||||||
|
Thanks go to Peter Bengtsson for finding and fixing it.
|
||||||
|
|
||||||
|
- The network startup code no longer checks for the presence of a possible
|
||||||
|
daemon startup message by default. You now have to enable this feature
|
||||||
|
by declaring a global variable called "__check_daemon_startup" which is
|
||||||
|
described in <dos.h>.
|
||||||
|
|
||||||
|
- Moved the code which rebinds the standard I/O streams to the server
|
||||||
|
socket into a separate function which can be overridden by user code.
|
||||||
|
|
||||||
|
- Updated the new __obtain_daemon_message() function to call a
|
||||||
|
bsdsocket.library API function to determine if what appears to be
|
||||||
|
a valid daemon startup message is sound.
|
||||||
|
|
||||||
|
- Replaced the OS4 specific build makefile with an updated version
|
||||||
|
prepared by Steven Solie. Thank you very much!
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.196 (11.10.2005)
|
||||||
|
|
||||||
|
- Removed the various workarounds associated with <unistd.h>, required
|
||||||
|
for building code that references the networking API. It is now possible,
|
||||||
|
provided you build your code with an existing TCP/IP API header file
|
||||||
|
set (such as from the "Roadshow" SDK) without running into data type
|
||||||
|
or function prototype declaration conflicts. I have added local versions
|
||||||
|
of <arpa/inet.h>, <netinet/in.h>, <netdb.h>, <sys/filio.h>, <sys/ioccom.h>,
|
||||||
|
<sys/ioctl.h>, <sys/select.h> and <sys/socket.h> and updated <unistd.h>,
|
||||||
|
<pwd.h> and <grp.h> accordingly. Note that some of the function prototypes
|
||||||
|
will conflict with the bsdsocket.library/usergroup.library API, which is
|
||||||
|
why you can disable the declarations through the __NO_NET_API preprocessor
|
||||||
|
symbol: if defined, none of the function prototypes will be defined.
|
||||||
|
|
||||||
|
- Implemented lrintf(), lrint(), lroundf(), lround(), nearbyintf(),
|
||||||
|
nearbyint(), remquof(), remquo(), roundf(), round(), tgammaf(),
|
||||||
|
tgamma(), truncf(), trunc(). Sort of implemented fmaf() and fma(),
|
||||||
|
which really ought to be done in "SIMD" fashion.
|
||||||
|
|
||||||
|
This completes the "real" floating point math library (ignoring
|
||||||
|
for a moment that the floating point environment code is still
|
||||||
|
not implemented).
|
||||||
|
|
||||||
|
- accept() now calls the bsdsocket.library accept() function first
|
||||||
|
and then hooks up the socket with the clib2 data structures. This
|
||||||
|
makes it possible to have several Processes calling the accept()
|
||||||
|
stub at the same time.
|
||||||
|
|
||||||
|
- When the main() function returns directly or indirectly by way of
|
||||||
|
calling exit(), the IoErr() value set at this time will now be
|
||||||
|
preserved until the program really returns control to the shell.
|
||||||
|
This turned out to be easier to implement than I had originally
|
||||||
|
thought, thanks to the fact that the atexit() functions are all
|
||||||
|
invoked straight after the exit() call.
|
||||||
|
|
||||||
|
- strtoimax(), strtoumax(), strtod(), strtof(), strtol(), strtoll(),
|
||||||
|
strtoul() and strtoull() now count how many digits were converted.
|
||||||
|
If that number is zero, then the conversion is considered to have
|
||||||
|
failed: 0 is returned and the 'ptr' parameter reference is initialized
|
||||||
|
with a pointer to the string to be converted. This has two consequences:
|
||||||
|
|
||||||
|
1) A floating point number that has no digits in the significand
|
||||||
|
is no longer converted to zero. For example ".e10" can no longer
|
||||||
|
result in a successful conversion.
|
||||||
|
|
||||||
|
2) You can detect if a conversion is successful by comparing pointers
|
||||||
|
after the conversion function has returned:
|
||||||
|
|
||||||
|
char * str;
|
||||||
|
char * ptr;
|
||||||
|
long n;
|
||||||
|
|
||||||
|
n = strtol(str,&ptr,10);
|
||||||
|
if(n == 0 && str == ptr)
|
||||||
|
printf("conversion has failed");
|
||||||
|
|
||||||
|
- Following detection of a stack overflow, the startup code eventually
|
||||||
|
called _exit(). It should have called exit() instead.
|
||||||
|
|
||||||
|
- tmpnam() wrote more than L_tmpnam bytes to the name buffer. Also, the
|
||||||
|
TMP_MAX value was off by one.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.195 (3.9.2005)
|
||||||
|
|
||||||
|
- In __time_delay() the CheckIO() test was wrong and should have
|
||||||
|
tested for a request still in progress. Fixed.
|
||||||
|
|
||||||
|
- Modified select() to support plain files, too. The new code now
|
||||||
|
compares the current file position against the current file size,
|
||||||
|
if that file is on a file system, or simply checks if there is
|
||||||
|
any data in the file (which works for the default PIPE: device).
|
||||||
|
|
||||||
|
- The raw file descriptor structure member fd_Position is now
|
||||||
|
always updated, regardless of whether the file supports random
|
||||||
|
access or not.
|
||||||
|
|
||||||
|
- The wildcard escape character used in __wildcard_expand_init() was
|
||||||
|
wrong. It should have been "'" but it was "`". Fixed.
|
||||||
|
|
||||||
|
- The startup code now references the linker symbol generated for
|
||||||
|
the user-supplied main() function.
|
||||||
|
|
||||||
|
- log(+/-0), logb(+/-0), log10(+/-0) now return -infinity.
|
||||||
|
|
||||||
|
- getcwd() now considers a buffer size of 0 an error, and it sets
|
||||||
|
the errno code to ERANGE if the buffer is too small.
|
||||||
|
|
||||||
|
- With Unix path semantics enabled, rename() now fails if either
|
||||||
|
the old or the new name are empty strings. Same thing for
|
||||||
|
opendir(), utime(), unlink(), chown(), link(), readlink(),
|
||||||
|
realpath(), chdir(), access(), stat(), rmdir(), lstat(),
|
||||||
|
chmod(), statfs() and open()/fopen().
|
||||||
|
|
||||||
|
- Fixed several issues with the formatted output of strftime()
|
||||||
|
for the "C" locale: "%p" could return " PM", "%c" is now
|
||||||
|
equivalent to "%a %b %e %T %Y", "%x" is equivalent to "%m/%d/%y"
|
||||||
|
and "%X" is now equivalent to "%T".
|
||||||
|
|
||||||
|
- The 68020/030/040/060 versions of the library now include the
|
||||||
|
64 bit integer conversion code. The plain 68000 version does not.
|
||||||
|
|
||||||
|
- The 64 bit integer conversion code used in by the scanf() family
|
||||||
|
was broken due to a misplaced overflow check, which had the cruel
|
||||||
|
effect of triggering for 32 bit integers as well. Fixed.
|
||||||
|
|
||||||
|
- DoTimer() did not allocate the local MsgPort correctly. Fixed.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.194 (15.7.2005)
|
||||||
|
|
||||||
|
- Added getopt_long to libunix.a <tfrieden>
|
||||||
|
|
||||||
|
- Added new libprofile.a which implements gprof gmon.out output <tfrieden>
|
||||||
|
|
||||||
|
- Added the function profil() to libc.a <tfrieden>
|
||||||
|
|
||||||
|
- Added ftello() and fseeko() which both merely call the equivalent (at
|
||||||
|
least for clib2) ftell() and fseek() functions, respectively.
|
||||||
|
|
||||||
|
- statfs() never stated that a disk was mounted for read-only access
|
||||||
|
because the wrong InfoData structure member was tested. Fixed.
|
||||||
|
|
||||||
|
- lstat would overwrite the name parameter via ReadLink(..., name, ...)
|
||||||
|
instead of ReadLink(..., new_name, ...) <tfrieden>
|
||||||
|
|
||||||
|
- Implemented exp2()/exp2f() and log2()/log2f() as suggested by
|
||||||
|
Henning Nielsen Lund. Thank you very much!
|
||||||
|
|
||||||
|
- The pattern matching code which expands command line arguments, as part
|
||||||
|
of libunix.a, now translates the "*" wildcard into "#?" unless you prefix
|
||||||
|
it with a backtick ("'"), which is the wildcard pattern escape character
|
||||||
|
used on AmigaOS.
|
||||||
|
|
||||||
|
- Repaired the pattern matching code which expands command line arguments:
|
||||||
|
it no longer requires that any parameters are quoted and it is automatically
|
||||||
|
enabled if you link against libunix.a, without libc.a standing a chance to
|
||||||
|
accidentally override it.
|
||||||
|
|
||||||
|
- Fixed a bug in vfprintf that would surface when the buffer was enlarged
|
||||||
|
if the pattern was too large to fit the static internal buffer <tfrieden>
|
||||||
|
|
||||||
|
- Added file system names to statfs <tfrieden>
|
||||||
|
|
||||||
|
- Moved all the constructor code out of "stdlib_init_exit.c" and into the
|
||||||
|
files which initialize global data, such as the new "stdlib_program_name.c"
|
||||||
|
and "stdlib_malloc.c".
|
||||||
|
|
||||||
|
- Until I can find a way to invoke it from within the library, the
|
||||||
|
__machine_test() function is no longer invoked.
|
||||||
|
|
||||||
|
- Tagged global data with NOCOMMON attributes.
|
||||||
|
|
||||||
|
- Added the __lib_init() and __lib_exit() functions, which are part of the
|
||||||
|
thread-safe library and which can be used to hook up clib2 with standard
|
||||||
|
Amiga shared library/device code. Some documentation on how to use them
|
||||||
|
can be found in the <dos.h> header file.
|
||||||
|
|
||||||
|
- Added a complete shared library skeleton example to demonstrate how the
|
||||||
|
clib2 shared library initialization/cleanup functions should be used.
|
||||||
|
This is a dual-build library which will both work with the plain 68k
|
||||||
|
AmigaOS and the PowerPC native AmigaOS4. The example source code can be
|
||||||
|
found in the "skeleton_library" subdirectory.
|
||||||
|
|
||||||
|
- The thread-safe version of isatty() should now work for stdio
|
||||||
|
file descriptors, too.
|
||||||
|
|
||||||
|
- Retrofitted thread-safety into the termios code.
|
||||||
|
|
||||||
|
- The socket/usergroup API function and data type definitions that used to
|
||||||
|
be defined in <unistd.h> have been moved into a separate header file
|
||||||
|
<sys/clib2_net.h> which, for backwards compatibility, can be include
|
||||||
|
from within <unistd.h> if the preprocessor symbol __USE_CLIB2_NETLIB
|
||||||
|
is defined early on. Eventually, <sys/clib2_net.h> should be removed
|
||||||
|
from the general header files and become a local library build header
|
||||||
|
file altogether. Note that in this case you would have to build your
|
||||||
|
own software using common TCP/IP SDK header files.
|
||||||
|
|
||||||
|
- <sys/types.h> now also includes <time.h> and <stddef.h>.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.193 (4.6.2005)
|
||||||
|
|
||||||
|
- fpclassify() now returns FP_ZERO both for 0 and -0.
|
||||||
|
|
||||||
|
- nan() and nanf() now return quiet NaNs.
|
||||||
|
|
||||||
|
- Added internal __inf() and __inff() functions.
|
||||||
|
|
||||||
|
- strtof() now calls nanf() and __inff(), respectively, to produce
|
||||||
|
the special floating point values for nan/inf/infinity.
|
||||||
|
|
||||||
|
- strtod() now calls nan() and __inf(), respectively, to produce
|
||||||
|
the special floating point values for nan/inf/infinity.
|
||||||
|
|
||||||
|
- The scanf() family now calls nan() and __inf(), respectively, to
|
||||||
|
produce the special floating point values for nan/inf/infinity.
|
||||||
|
|
||||||
|
- Added %D, %e, %F, %g, %G and %h for strftime(); repaired %I.
|
||||||
|
|
||||||
|
- Documented __strip_double_slash() and plugged in a memmove()
|
||||||
|
in place of the copying loop.
|
||||||
|
|
||||||
|
- Modified __translate_unix_to_amiga_path_name() and
|
||||||
|
__translate_amiga_to_unix_path_name() to not to call strlen()
|
||||||
|
on the results of __strip_double_slash().
|
||||||
|
|
||||||
|
- For %C strtime() should return the century number, not the
|
||||||
|
year number mod 100.
|
||||||
|
|
||||||
|
- The record locking code in fcntl() is no longer part of the
|
||||||
|
regular libc.a, but only of libunix.a.
|
||||||
|
|
||||||
|
- Changed the definition of the D_S() macro to cast the pointer
|
||||||
|
address to an unsigned 32 bit integer.
|
||||||
|
|
||||||
|
- Modified the locale-aware isalnum(), isalpha(), iscntrl(),
|
||||||
|
isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(),
|
||||||
|
isupper(), isxdigit(), tolower() and toupper() functions
|
||||||
|
to clamp the input parameter to the "unsigned char" range before
|
||||||
|
it is submitted to the respective locale.library function. This
|
||||||
|
should be in sync with what the specs demand, which state that
|
||||||
|
if the input parameter is neither EOF nor in the range of an
|
||||||
|
"unsigned char" variable, then the results are undefined.
|
||||||
|
|
||||||
|
- ungetc() now returns the input character, clamped to an unsigned
|
||||||
|
char value, upon success. Previously, if the input parameter was
|
||||||
|
negative and not EOF, the result was identical to the input, which
|
||||||
|
could have had negative side-effects.
|
||||||
|
|
||||||
|
-<2D>Added NAN, INFINITY, FLT_EVAL_METHOD, float_t and double_t to
|
||||||
|
<math.h> (C99).
|
||||||
|
|
||||||
|
- Added skeleton code for acosf(), acosh(), acoshf(), asinf(), asinh(),
|
||||||
|
asinhf(), atan2f(), atanf(), atanh(), atanhf(), cbrt(), cbrtf(),
|
||||||
|
ceilf(), cosf(), coshf(), erf(), erfc(), erfcf(), erff(),
|
||||||
|
exp2(), exp2f(), expf(), expm1(), expm1f(), fdim(), fdimf(),
|
||||||
|
floorf(), fma(), fmaf(), fmax(), fmaxf(), fmin(), fminf(),
|
||||||
|
fmodf(), frexpf(), hypotf(), ilogb(), ilogbf(), ldexpf(), lgamma(),
|
||||||
|
lgammaf(), log10f(), log1p(), log1pf(), log2(), log2f(), logbf(),
|
||||||
|
logf(), lrint(), lrintf(), lround(), lroundf(), modff(), nearbyint(),
|
||||||
|
nearbyintf(), powf(), remainder(), remainderf(), remquo(), remquof(), round(),
|
||||||
|
roundf(), scalbn(), scalbnf(), sinf(), sinhf(), sqrtf(), tanf(),
|
||||||
|
tanhf(), tgamma(), tgammaf(), trunc() and truncf(), to be filled in
|
||||||
|
later...
|
||||||
|
|
||||||
|
- Implemented fmin()/fminf(), fmax()/fmaxf(), fdim()/fdimf() for C99.
|
||||||
|
|
||||||
|
- Ported acosf(), asinf(), atan2f(), atanf(), ceilf(), expf(), floorf(),
|
||||||
|
fmodf(), frexpf(), ldexpf(), log10f(), logbf(), logf(), modff(), powf(), sqrtf(),
|
||||||
|
scalbn() and scalbnf() for C99.
|
||||||
|
|
||||||
|
- Ported cbrt(), cbrtf(), erf(), erff(), erfc(), erfcf(), expm1(),
|
||||||
|
expm1f(), ilogb(), ilogbf(), log1p() and log1pf() for C99.
|
||||||
|
|
||||||
|
- Ported cosf(), coshf(), sinf(), sinhf(), tanf(), tanhf()
|
||||||
|
and hypotf() for C99.
|
||||||
|
|
||||||
|
- Ported acosh(), acoshf(), asinh(), asinhf(), lgamma(), lgammaf(),
|
||||||
|
remainder() and remainderf() for C99.
|
||||||
|
|
||||||
|
- The scanf() family now supports character ranges for the %[
|
||||||
|
conversion. Note that this is a non-standard feature!
|
||||||
|
|
||||||
|
- Integrated Peter Bengtsson's termios code. Thank you very much! I chose
|
||||||
|
to add it to libunix.a rather than keeping it in a separate libtermios.a
|
||||||
|
library.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.192 (12.5.2005)
|
||||||
|
|
||||||
|
- Changed how errors are detected, as returned by Write(), Read() and
|
||||||
|
Seek(). Seek() is particularly challenging because the value it
|
||||||
|
returns might be a valid file position and not an error.
|
||||||
|
|
||||||
|
- Replaced numeric function return codes of 0 and -1 with macros OK,
|
||||||
|
SEEK_ERROR/ERROR to clarify the respective purposes.
|
||||||
|
|
||||||
|
- Changed how ftell() and fseek() are used, double-checking the return
|
||||||
|
value and the errno code.
|
||||||
|
|
||||||
|
- The record locking semaphore could wind up getting added to the public
|
||||||
|
list twice. Fixed.
|
||||||
|
|
||||||
|
- Fixed two linker errors which were caused by duplicate symbol definitions.
|
||||||
|
|
||||||
|
- Added code to the startup routine which allows you to monitor where a command
|
||||||
|
was started from and which parameters it was invoked with.
|
||||||
|
|
||||||
|
- If fread()/fwrite() fail to read/write any data because either the number
|
||||||
|
of records or the size of each record is zero, both now call clearerr() to
|
||||||
|
avoid giving the caller the wrong impression that an EOF or error occured.
|
||||||
|
|
||||||
|
- The libunix.a flavour of system() no longer attempts to translate the name
|
||||||
|
of a command unless it contains path separator characters.
|
||||||
|
|
||||||
|
- Added strtof(), llabs(), lldiv(), vsscanf() and vscanf() for C99.
|
||||||
|
|
||||||
|
- strftime() now supports %C, %n, %r, %R, %t, %T, %u, %V, and %z for C99.
|
||||||
|
And it ignores the E and O modifiers.
|
||||||
|
|
||||||
|
- The printf() family now supports the %hh, %j, %t and %z modifiers and the
|
||||||
|
%a/%A conversions for C99. The %j is treated like %ll; %t and %z are treated
|
||||||
|
like %l. Also, the "infinity"/"not a number" signals now come out as the
|
||||||
|
strings "inf" and "nan".
|
||||||
|
|
||||||
|
- Added HUGE_VALF to <math.h>.
|
||||||
|
|
||||||
|
- For the printf() "%a" conversion the exponent now comes out as a binary
|
||||||
|
number rather than a decimal one. Now how odd is that?
|
||||||
|
|
||||||
|
- strtod() and strtof() now support "inf"/"infinity"/"nan"/"nan(..)" and
|
||||||
|
hexadecimal floating point numbers, for C99.
|
||||||
|
|
||||||
|
- Added the fpclassify(), isfinite(), isnormal() and signbit() macros for C99.
|
||||||
|
|
||||||
|
- Reimplemented isnan() and isinf() as macros for C99. The corresponding
|
||||||
|
functions will be dropped from the library. Note that the isinf() macro
|
||||||
|
does not return -1, 0 or 1 like the old function did, but only 0 or 1
|
||||||
|
depending upon whether the parameter represents +/- infinity or not.
|
||||||
|
|
||||||
|
- Added fabsf() for C99.
|
||||||
|
|
||||||
|
- The scanf() family now supports the %hh, %j, %t and %z modifiers and the
|
||||||
|
%a/%A conversions for C99. The %j is treated like %ll; %t and %z are treated
|
||||||
|
like %l. Also, the "inf"/"infinity"/"nan"/"nan()" keywords are processed.
|
||||||
|
|
||||||
|
- The strftime() %z conversion now prints the time zone difference as a
|
||||||
|
"decimal" number. That is, if the difference is 5 hours and 30 minutes,
|
||||||
|
then %z will now print "530" rather than "330".
|
||||||
|
|
||||||
|
- mktime() now handles one leap second gracefully.
|
||||||
|
|
||||||
|
- Added isblank().
|
||||||
|
|
||||||
|
- Added isunordered(), isgreater(), isgreaterequal(), isless(),
|
||||||
|
islessequal() and islessgreater() to <math.h> for C99.
|
||||||
|
|
||||||
|
- The wchar_t type is now an 'unsigned short' integer (16 bits wide).
|
||||||
|
|
||||||
|
- Added PTRDIFF_MIN/PTRDIFF_MAX, WCHAR_MIN/WCHAR_MAX and
|
||||||
|
WINT_MIN/WINT_MAX to <stdint.h> for C99.
|
||||||
|
|
||||||
|
- Added imaxdiv() and imaxabs() for C99.
|
||||||
|
|
||||||
|
- Added strtoimax() and strtoumax() for C99.
|
||||||
|
|
||||||
|
- Added nextafter() and nextafterf() for C99.
|
||||||
|
|
||||||
|
- Added copysign() and copysignf() for C99.
|
||||||
|
|
||||||
|
- Unless I missed something, clib2 should now be functionally complete
|
||||||
|
with regard to C99, except for the floating point operations covered.
|
||||||
|
These are a major challenge all by themselves, and I wonder both
|
||||||
|
whether they are worth the effort and how one could implement them
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
- fflush() now consistently supports a NULL parameter, causing all
|
||||||
|
streams to be flushed for which this behaviour is defined.
|
||||||
|
|
||||||
|
- The printf() family can now produce output for floating point
|
||||||
|
numbers with more than about 77 characters, provided sufficient
|
||||||
|
memory is available. C99 calls for a minimum of 4095 characters,
|
||||||
|
but we're trying to allocate the space required dynamically.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.191 (9.4.2005)
|
||||||
|
|
||||||
|
- The name of the public record locking semaphore has to be preallocated
|
||||||
|
for OS4 if the AllocSysObject() function is used to create it.
|
||||||
|
|
||||||
|
- Moved the signal block mask and the signal function table out of
|
||||||
|
signal_data.c and into signal_raise.c where they are actually used.
|
||||||
|
This makes it possible to override the default definition of the
|
||||||
|
__check_abort_enabled variable in your own programs.
|
||||||
|
|
||||||
|
- raise() no longer resets the signal handler before it invokes the one
|
||||||
|
currently configured. It merely blocks the delivery of the respective
|
||||||
|
signal to prevent recursion.
|
||||||
|
|
||||||
|
- raise() now drops into abort() if a signal handler is set to
|
||||||
|
SIG_DFL. The exception is in SIGINT delivery, which has the
|
||||||
|
effect of printing a different termination message but otherwise
|
||||||
|
program flow takes the same path as abort().
|
||||||
|
|
||||||
|
- Moved the __UtilityBase/__IUtility variable declarations into
|
||||||
|
a separate file.
|
||||||
|
|
||||||
|
- Simplified the library/open close code in "stdlib_main.c".
|
||||||
|
|
||||||
|
- File descriptors produced by dup() or dup2() now work exactly like
|
||||||
|
the original file descriptors they are duplicates of. I modified the
|
||||||
|
function which maps file descriptor numbers to file descriptor
|
||||||
|
table entries to return the table entries of the original files.
|
||||||
|
|
||||||
|
- In the thread-safe library, duplicated stdin/stdout/stderr
|
||||||
|
descriptors now work like the "real" ones. This is true even if
|
||||||
|
the "real" ones were closed and only their former aliases remain.
|
||||||
|
|
||||||
|
- Invoking fstat() on what maps to a con-handler stream now produces
|
||||||
|
information identifying it as a character special file.
|
||||||
|
|
||||||
|
- Added more code and changes contributed by Peter Bengtsson, thank you
|
||||||
|
very much! This includes the following:
|
||||||
|
|
||||||
|
- Added SSIZE_MAX to <limits.h>.
|
||||||
|
|
||||||
|
- Added <sys/uio.h>, readv() and writev().
|
||||||
|
|
||||||
|
- Cut back the soft link resolution code in lstat().
|
||||||
|
|
||||||
|
- In <fcntl.h> O_NDELAY is now an alias for O_NONBLOCK.
|
||||||
|
|
||||||
|
- Added <complex.h>, carg(), cargf(), cargl(), cimag(), cimagf(),
|
||||||
|
cimagl(), conj(), conjf(), conjl(), creal(), crealf() and creall().
|
||||||
|
|
||||||
|
Note that the C99 support for the complex floating point data
|
||||||
|
types is limited to GCC 3.x for now.
|
||||||
|
|
||||||
|
- Added va_copy() to <stdarg.h>.
|
||||||
|
|
||||||
|
- Added _Exit() to <stdlib.h>.
|
||||||
|
|
||||||
|
- Added <stdbool.h>.
|
||||||
|
|
||||||
|
- Added vfscanf() to <stdio.h>.
|
||||||
|
|
||||||
|
- The stdio locking in fcntl() wasn't working correctly. Fixed.
|
||||||
|
|
||||||
|
- Made the clearerr(), feof() and ferror() macros thread-safe.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.190 (25.3.2005)
|
||||||
|
|
||||||
|
- DoTimer() now calls AllocSysObject() rather than making up
|
||||||
|
a MsgPort locally.
|
||||||
|
|
||||||
|
- The record locking semaphore code now builds a semaphore to add
|
||||||
|
before it tries to find the public one in memory. That way, the
|
||||||
|
code can spend less time in Forbid() state and, heaven forbid,
|
||||||
|
refrain from allocating memory while in that state.
|
||||||
|
|
||||||
|
- Split the general stdio initialization/cleanup code from the
|
||||||
|
initialization of the stdin/stdout/stderr streams.
|
||||||
|
|
||||||
|
- Moved the Workbench console stream initialization into the
|
||||||
|
initialization code for the stdin/stdout/stderr streams and
|
||||||
|
out of the program parameter setup.
|
||||||
|
|
||||||
|
- The current program name is now set up in the stdlib
|
||||||
|
initialization function.
|
||||||
|
|
||||||
|
- Simplified the machine test code; moved the FPU check into
|
||||||
|
the math initialization code.
|
||||||
|
|
||||||
|
- Added more safety checks to verify that file descriptor
|
||||||
|
file handles are valid.
|
||||||
|
|
||||||
|
- Made the file descriptor checks in the fsync() and fdatasync()
|
||||||
|
functions more robust.
|
||||||
|
|
||||||
|
- Cleaned up the 68k build makefile, so that the CPU and FPU
|
||||||
|
tests and the error message display can run safely even
|
||||||
|
on plain 68000 machines. This won't work for the 32 bit small
|
||||||
|
data model, which implies 68020 code, but so there...
|
||||||
|
|
||||||
|
- Moved the CPU/FPU type tests into the respective linker
|
||||||
|
libraries.
|
||||||
|
|
||||||
|
- Moved the data declarations out of math_data.c, stat_data.c,
|
||||||
|
socket_data.c, dirent_data.c and stdio_data.c and into the
|
||||||
|
code that initializes them.
|
||||||
|
|
||||||
|
- Moved a few __delete_semaphore() calls into conditional compilation
|
||||||
|
sections where they should have been in the first place.
|
||||||
|
|
||||||
|
- Thanks to J<>rg Strohmayer, the GCC library build now manages to
|
||||||
|
invoke the library's constructor/destructor functions in a
|
||||||
|
very particular order. That way, you can use constructor/destructor
|
||||||
|
functions in your own code and not have them clash with the library's
|
||||||
|
own functions.
|
||||||
|
|
||||||
|
- Reimplemented the constructor/destructor invocation code for GCC.
|
||||||
|
Both the 68k and PowerPC platform now invoke them in the same order
|
||||||
|
and the 68k code uses the designated invocation priorities. The
|
||||||
|
PowerPC destructor function now sets up the exit() jmp_buf before
|
||||||
|
the destructor functions are called.
|
||||||
|
|
||||||
|
- Added S_IREAD, S_IWRITE and S_IEXEC aliases to <sys/stat.h>.
|
||||||
|
|
||||||
|
- Moved data out of stdlib_data.c and into the code that references
|
||||||
|
or initializes it.
|
||||||
|
|
||||||
|
- The stdlib constructor now performs the CPU/FPU compatibility test.
|
||||||
|
|
||||||
|
- Introduced new constructor types and changed the overall priority
|
||||||
|
order.
|
||||||
|
|
||||||
|
- Switched over the startup code and the library itself to use
|
||||||
|
constructor/destructor functions for initialization and cleanup
|
||||||
|
purposes.
|
||||||
|
|
||||||
|
- The destructor function invocation code no longer calls
|
||||||
|
setjmp(). This is now done within stdlib_main.c prior to
|
||||||
|
calling the destructor function invocation code.
|
||||||
|
|
||||||
|
- Fixed the SAS/C destructor function prototypes and verified
|
||||||
|
that the constructors/destructors are called in the proper
|
||||||
|
order, too.
|
||||||
|
|
||||||
|
- Aliases of file descriptors are now using the signal semaphore
|
||||||
|
of the original file descriptor.
|
||||||
|
|
||||||
|
- close() did not return 0 if the file descriptor in question
|
||||||
|
was really just an alias. Fixed.
|
||||||
|
|
||||||
|
- Added a feature which makes it possible to have several clients
|
||||||
|
use the standard I/O streams (stdin/stdout/stderr) and have these
|
||||||
|
referring to their process' Input()/Output()/ErrorOutput()
|
||||||
|
streams. This is intended to support the upcoming shared
|
||||||
|
library feature.
|
||||||
|
|
||||||
|
- Turns out that the 68k GCC port does not sort constructor and
|
||||||
|
destructor functions in any way at all. I reimplemented the
|
||||||
|
entire library constructor/destructor functionality to use the
|
||||||
|
same approach as libnix.
|
||||||
|
|
||||||
|
- ftruncate() ended up changing the current file position, contrary
|
||||||
|
to what it is supposed to do. Fixed.
|
||||||
|
|
||||||
|
- fcntl() did not work for sockets. Fixed.
|
||||||
|
|
||||||
|
- Reorganized the local header files, removing redundancies.
|
||||||
|
|
||||||
|
- Dropped unused stub code which is now redundant because of
|
||||||
|
the constructor/destructor mechanism.
|
||||||
|
|
||||||
|
- Moved the call chain printing out of stdlib_main.c and into
|
||||||
|
separate files.
|
||||||
|
|
||||||
|
- Removed some more redundant data from stdlib_main.c.
|
||||||
|
|
||||||
|
- Added the first "real" C99 function: _Exit() ;-)
|
||||||
|
|
||||||
|
- assertion failures early on during program initialization
|
||||||
|
should no longer spell big trouble on account of the stdio
|
||||||
|
data structures possibly not being in a well-defined and
|
||||||
|
initialized state.
|
||||||
|
|
||||||
|
- Turns out that the constructor/destructor calling sequence
|
||||||
|
was still wrongish for the OS4 library. So I had to change
|
||||||
|
it *again*. Which probably means that the 68k library will
|
||||||
|
need further changes...
|
||||||
|
|
||||||
|
- Moved stdlib_main.o into the regular libc.a, at least for
|
||||||
|
the 68k build. The PowerPC build may follow later, provided
|
||||||
|
I manage to get the specs file fixed. Actually, stdlib_main.o
|
||||||
|
is in the libc.a library already. Now about that specs file...
|
||||||
|
|
||||||
|
- Moved the check for the presence of an FPU into the
|
||||||
|
math_init.c code. I am far from certain whether this will
|
||||||
|
have the desired effect, though. Due to how the GNU ld linker
|
||||||
|
works, libraries are scanned once only. And the FPU check will
|
||||||
|
be pulled in only if something references the HUGE_VAL
|
||||||
|
constant.
|
||||||
|
|
||||||
|
- Activated the dormant thread-safe standard input/output/error
|
||||||
|
handling code.
|
||||||
|
|
||||||
|
- Small fixes to fcntl() and select() to cover the thread-safe
|
||||||
|
fd->fd_DefaultFile == ZERO case.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.189 (5.3.2005)
|
||||||
|
|
||||||
|
- Rewrote the __translate_unix_to_amiga_path_name() function to
|
||||||
|
translate patterns such as "foo/bar/../../baz" properly, and to
|
||||||
|
use strlen() a lot less.
|
||||||
|
|
||||||
|
- Major, major changes! Moved most of the monolithic code out of
|
||||||
|
the file descriptor hook and into the respective functions,
|
||||||
|
such as dup2(), fchmod(), fchown(), fcntl(), fdatasync(), fstatfs(),
|
||||||
|
fsync(), ftruncate() and lseek(). Code which is not strictly
|
||||||
|
required will no longer find its way into your programs if you
|
||||||
|
link with the updated library.
|
||||||
|
|
||||||
|
NOTE: these changes require that the entire library is rebuilt!
|
||||||
|
|
||||||
|
- The buffered and unbuffered file hook code is now invoked through
|
||||||
|
function pointers alone. The utility.library/CallHookPkt mechanism
|
||||||
|
is no longer required.
|
||||||
|
|
||||||
|
- Moved the entire lseek() code relevant for files into the hook
|
||||||
|
function.
|
||||||
|
|
||||||
|
- Simplified the close() function which now just calls into the
|
||||||
|
hook code to perform whatever is necessary. The hook code is
|
||||||
|
responsible for cleaning up after aliases, etc. This change in
|
||||||
|
turn made it possible to greatly simplify the hook code for
|
||||||
|
buffered files which now bypasses close/read/write/lseek and
|
||||||
|
directly invokes the hook code for unbuffered files.
|
||||||
|
|
||||||
|
- Added various floating point constants to <math.h>, courtesy
|
||||||
|
of Henning Nielsen Lund. Thank you very much!
|
||||||
|
|
||||||
|
- When using the wildcard expansion code for command line
|
||||||
|
parameters (which is by default linked in with libunix.a),
|
||||||
|
regular expressions can no longer prompt dos.library requesters
|
||||||
|
to appear. However, to be on the safe side, if you are expecting
|
||||||
|
to pass regular expressions on the command line, do not use
|
||||||
|
the wildcard expansion code such as by overriding the library
|
||||||
|
symbols with dummy functions such as are used in the file
|
||||||
|
"stdlib_wildcard_expand.c".
|
||||||
|
|
||||||
|
- Added a new variable '__open_locale'<27>which can be used to
|
||||||
|
restrict all library functions to use the "C" language locale
|
||||||
|
rather than the current system locale settings. In addition
|
||||||
|
to that, two new functions __locale_exit() and __locale_init()
|
||||||
|
can be used to close and (re-)open the system locale at a
|
||||||
|
later time.
|
||||||
|
|
||||||
|
- Local ("static") functions are now identified by the STATIC
|
||||||
|
qualifier. This was done in preparation for changes that will
|
||||||
|
deal with global and local data and the issue of thread safety.
|
||||||
|
|
||||||
|
- Added stdio thread locking functions flockfile(), funlockfile(),
|
||||||
|
and ftrylockfile().
|
||||||
|
|
||||||
|
- Modified the internal FILE structure to allow for thread locking.
|
||||||
|
Note that this again requires that the library is rebuilt!
|
||||||
|
|
||||||
|
- Added or modified macros for getc_unlocked(), getchar_unlocked(),
|
||||||
|
putc_unlocked() and putchar_unlocked().
|
||||||
|
|
||||||
|
- Added rand_r().
|
||||||
|
|
||||||
|
- Added flockfile()/funlockfile() wrappers around all stdio
|
||||||
|
functions.
|
||||||
|
|
||||||
|
- Added more semaphore locking around the basic stdio, memory, locale
|
||||||
|
and dirent data operations. That should do it! While the library is
|
||||||
|
not reentrant (this is not ixemul.library) it should be thread-safe
|
||||||
|
now. Thread-safe in the sense of POSIX 1003.1c-1995.
|
||||||
|
|
||||||
|
- The thread-safety code is now subject to conditional compilation.
|
||||||
|
Both the library and the user code need to be rebuilt with the
|
||||||
|
preprocessor symbol __THREAD_SAFE defined to get thread-safe
|
||||||
|
code.
|
||||||
|
|
||||||
|
- Extended the thread-safety locking to the file descriptors.
|
||||||
|
|
||||||
|
NOTE: these changes require that the entire library is rebuilt!
|
||||||
|
|
||||||
|
- The translation of Unix to Amiga path names now silently accepts
|
||||||
|
absolute Amiga path names passed to it and will use them without
|
||||||
|
changing them.
|
||||||
|
|
||||||
|
- Added atoll(), ffs(), ftw(), nftw(), lstat() and uname() code
|
||||||
|
contributed by Peter Bengtsson. Thank you very much!
|
||||||
|
|
||||||
|
- Reworked the code that handles quoting for the wildcard expansion
|
||||||
|
routine. We no longer allocate memory and then modify it, but
|
||||||
|
call a function for each quoted parameter which does whatever is
|
||||||
|
necessary.
|
||||||
|
|
||||||
|
- The shell command parameter parser now considers the non-breaking
|
||||||
|
space character (ISO code 160) to be a blank space character, too.
|
||||||
|
|
||||||
|
- Moved the signal semaphore allocation/initialization/deallocation
|
||||||
|
into a dedicated module. This also has the advantage that it's
|
||||||
|
harder to break code by accidentally forgetting to call
|
||||||
|
InitSemaphore() after having allocated the memory for it.
|
||||||
|
|
||||||
|
- Rewrote the code that allocates the file descriptor and file
|
||||||
|
buffer tables so that all the memory allocations are in one
|
||||||
|
place and it's possible to specify exactly how many table
|
||||||
|
entries are required at a time.
|
||||||
|
|
||||||
|
- Creation and initialization of semaphores now uses the AmigaOS4
|
||||||
|
specific functions for this purpose, if available.
|
||||||
|
|
||||||
|
- In the thread-safe variant, the library now tries to allow
|
||||||
|
multiple concurrent callers to use the socket functions. Note
|
||||||
|
that this works only with the Roadshow TCP/IP stack, and the
|
||||||
|
results with other TCP/IP stacks are rather unpredictable.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.188 (7.2.2005)
|
||||||
|
|
||||||
|
- Folded duplicate code in "stdio_init_exit.c" into a common function.
|
||||||
|
|
||||||
|
- Simplified the code in "time_asctime_r.c" which builds the time
|
||||||
|
string. It gracefully handles buffer sizes which are too short
|
||||||
|
by returning an empty string.
|
||||||
|
|
||||||
|
- Moved the "tm->tm_wday" initialization out of the hook function
|
||||||
|
in "time_strftime.c" since it was to be called only once anyway.
|
||||||
|
|
||||||
|
- Lost a few compiler warnings in "unistd_time_delay.c" and
|
||||||
|
"time_gettimeofday.c".
|
||||||
|
|
||||||
|
- Folded duplicate code in "time_mktime.c"; also, errno is no longer
|
||||||
|
modified unless the library is built with the "CHECK_FOR_NULL_POINTERS"
|
||||||
|
option.
|
||||||
|
|
||||||
|
- We now allocate the AnchorPath used in the unistd_wildcard_expand.c
|
||||||
|
code. Also, the contents of the AnchorPath structure are no longer
|
||||||
|
modified between calls. MatchEnd() has to be sufficient.
|
||||||
|
|
||||||
|
- Moved redundant code out of the readdir()/opendir()/closedir()
|
||||||
|
functions which is not required unless the code is built for
|
||||||
|
Unix compatibility mode.
|
||||||
|
|
||||||
|
- Lost the __not_a_number and __infinity variables, including the
|
||||||
|
code which initialized them.
|
||||||
|
|
||||||
|
- Reading/changing the errno variable is no longer done directly, but
|
||||||
|
involves accessor functions.
|
||||||
|
|
||||||
|
- References to the HUGE_VAL quantity now involve an accessor function, too.
|
||||||
|
|
||||||
|
- Changed the manner in which the __huge_val constant is initialized by
|
||||||
|
the __math_init() function. The new approach should be more portable.
|
||||||
|
|
||||||
|
- The library no longer sends ACTION_DISK_INFO packets to the console
|
||||||
|
handler. The side-effects were too varied and irritating after all.
|
||||||
|
|
||||||
|
- Added the fsync() and fdatasync() functions and the <stdint.h> and
|
||||||
|
<inttypes.h> header files contributed by Peter Bengtsson. Thank
|
||||||
|
you very much!
|
||||||
|
|
||||||
|
- Tweaked the build makefiles to produce fewer meaningless warnings.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.187 (29.1.2005)
|
||||||
|
|
||||||
|
- The default console output window opened when a program is launched
|
||||||
|
from Workbench would open and stay open. This was not intended to
|
||||||
|
happen and is a side-effect of the new stdio initialization code which
|
||||||
|
checks if the stdio streams are in non-blocking mode. Fixed.
|
||||||
|
|
||||||
|
- Moved the common DateStamp to time_t conversion code into a shared
|
||||||
|
function.
|
||||||
|
|
||||||
|
- The fall-back function for converting time into a string in strftime()
|
||||||
|
now calls itself for the "%c", "%x" and "%X" format specifiers.
|
||||||
|
|
||||||
|
- mktime() is supposed to convert the time specification, given as local
|
||||||
|
time, into the number of seconds since January 1st, 1970, relative to
|
||||||
|
UTC. This didn't really work up until now since the time value returned
|
||||||
|
was given as local time.
|
||||||
|
|
||||||
|
- Plugged in a different algorithm for calculating the day of the week in
|
||||||
|
strftime() and asctime_r(). This one isn't sensitive to the effects of
|
||||||
|
adding/subtracting the local time zone.
|
||||||
|
|
||||||
|
- Changed the algorithm that calculates the number of days that have passed
|
||||||
|
so far as used by the the __convert_time() function and the conversion
|
||||||
|
code in strftime().
|
||||||
|
|
||||||
|
- Also changed the algorithm used by strftime() to produce the week numbers
|
||||||
|
(the '%U' and '%W' format specifiers). The new method is much simpler
|
||||||
|
than the old one.
|
||||||
|
|
||||||
|
- Made the code that converts a 'time_t' value into the 'struct DateStamp',
|
||||||
|
as used by strftime() and utime(), into its own function. This also
|
||||||
|
fixes a bug in the code strftime() would use which was completely
|
||||||
|
unaware of the local time zone settings.
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.186 (14.1.2005)
|
||||||
|
|
||||||
|
- Redirecting stderr to a file no longer has the effect of showing error
|
||||||
|
messages and assertion failure notifications as requesters. The exception
|
||||||
|
is in redirecting stderr to NIL: which will prompt the requester use.
|
||||||
|
|
||||||
|
- gettimeofday() now calls GetSysTime() rather than DateStamp() to obtain
|
||||||
|
the current system time. This resolves granularity issues since the
|
||||||
|
DateStamp() result was only accurate by 1/50 of a second.
|
||||||
|
|
||||||
|
- The "ptrdiff_t" definition in <stddef.h> now defaults to type 'int' rather
|
||||||
|
than 'long int'.
|
||||||
|
|
||||||
|
- The "char" limits in <limits.h> are now set up according to the current
|
||||||
|
compiler settings, which can either default to an unsigned or
|
||||||
|
signed definition.
|
||||||
|
|
||||||
|
- Changed the rules again for the use of stderr/stdout redirection when
|
||||||
|
printing error messages. It is always safe to redirect them now and
|
||||||
|
no requester will appear unless you specifically set the value of the
|
||||||
|
"__no_standard_io" variable to TRUE in your program.
|
||||||
|
|
||||||
|
- Removed a misplaced IsInteractive() from the stdio initialization
|
||||||
|
function. Now this could have been big trouble...
|
||||||
|
|
||||||
|
- Removed tests for FileHandle->fh_Type != NULL which used to precede
|
||||||
|
all IsInterative() tests. I verified that IsInteractive() will always
|
||||||
|
return FALSE for NIL: type file handles.
|
||||||
|
|
||||||
|
- Dropped the special flag variable used by the abort() function that
|
||||||
|
tracks whether or not console output is possible. We now use the
|
||||||
|
global "__no_standard_io" instead.
|
||||||
|
|
||||||
|
- Made the <ctype.h> macros more robust.
|
||||||
|
|
||||||
|
- Removed the "NIL:" file handle tests preceding the Open("CONSOLE:",..)
|
||||||
|
calls. As of Kickstart 2.x and beyond these are no longer a source of
|
||||||
|
trouble.
|
||||||
|
|
||||||
|
- The V37/V40 compatibility code is no longer built for the AmigaOS4
|
||||||
|
version of the library.
|
||||||
|
|
||||||
|
- Switched over the last use of DeviceProc() to GetDeviceProc(), etc.
|
||||||
|
|
||||||
|
- open() no longer examines a file after opening it in order to figure
|
||||||
|
out whether read/write accesses are permitted. This decision is now
|
||||||
|
for the file system to make.
|
||||||
|
|
||||||
|
- Whether or not stdio console streams are blocking or non-blocking
|
||||||
|
is now determined at initialization time. The I/O mode is restored before
|
||||||
|
the program exits. Previously, any changes to the I/O mode would persist.
|
||||||
|
|
||||||
|
- Lost some more code that is not required for AmigaOS 4.x and can be
|
||||||
|
handled conveniently through conditional compilation.
|
||||||
|
|
||||||
|
- close() did not reset the non-blocking file property, as it should
|
||||||
|
have. This only worked for files which were closed anyway, but not
|
||||||
|
for the stdio streams. Fixed.
|
||||||
|
|
||||||
|
- Added a missing definition to stdio_init_exit.c which is part of
|
||||||
|
the OS4 header files, but not of the older header file distributions.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
c.lib 1.185 (2.1.2005)
|
||||||
|
|
||||||
|
- Moved the environment variable cleanup code into a destructor function.
|
||||||
|
|
||||||
|
- Fixed a typo in the hstrerror() function.
|
||||||
|
|
||||||
|
- The common error reporting function __show_error() could throw Enforcer
|
||||||
|
hits if the program was not launched from Shell. Fixed.
|
||||||
|
|
||||||
|
- Moved the memory initialization and cleanup functions into the
|
||||||
|
malloc/free code itself and updated the alloca code to do its
|
||||||
|
own data management.
|
||||||
|
|
||||||
|
- Finally optimized the alloca() memory cleanup code.
|
||||||
|
|
||||||
|
- Tried to make it possible to have debug versions of the memory
|
||||||
|
management code in the default link library along with the
|
||||||
|
normal versions. Let's see how well this works out in the GCC
|
||||||
|
version. SAS/C does not seem to like it...
|
||||||
|
|
||||||
|
- Changed the definition of alloca() for GCC, which now defaults
|
||||||
|
to the built-in function.
|
||||||
|
|
||||||
|
- Updated the stdio.h, stdlib.h, string.h and unistd.h header files
|
||||||
|
to declare function prototypes for the __MEM_DEBUG versions of the
|
||||||
|
library functions only if that preprocessor symbol is defined.
|
||||||
|
|
||||||
|
- If a SIGINT signal is caught and processed by the default signal
|
||||||
|
handler, the localized "*** BREAK" string will be printed rather
|
||||||
|
than the built-in one.
|
||||||
|
|
||||||
|
- The data structure alignment (file I/O buffer) is now configurable
|
||||||
|
at compile time. The default used to be 16 bytes, which is appropriate
|
||||||
|
for the 68040/68060 but not for the PowerPC, which uses 32 or 128
|
||||||
|
bytes per cache line.
|
||||||
|
|
||||||
|
- fwrite() now flushes the entire "buffer" for unbuffered files. The
|
||||||
|
exception are "interactive" files such as console windows. For these
|
||||||
|
line buffered output is used.
|
||||||
|
|
||||||
|
- Whether or not a file is bound to an interactive device, such as a
|
||||||
|
console window, is now checked and remembered after a file descriptor
|
||||||
|
has been associated with it.
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.184 (28.11.2004)
|
c.lib 1.184 (28.11.2004)
|
||||||
|
|
||||||
- Added asctime_r(), ctime_r(), gmtime_r(), localtime_r() and strtok_r().
|
- Added asctime_r(), ctime_r(), gmtime_r(), localtime_r() and strtok_r().
|
||||||
@ -1059,7 +1985,7 @@ c.lib 1.117 (26.5.2004)
|
|||||||
- The size of the physical memory allocation chunks is now taken into
|
- The size of the physical memory allocation chunks is now taken into
|
||||||
account when making memory allocations. This means that allocations
|
account when making memory allocations. This means that allocations
|
||||||
are rounded up to multiples of 8 bytes each.
|
are rounded up to multiples of 8 bytes each.
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.116 (26.5.2004)
|
c.lib 1.116 (26.5.2004)
|
||||||
|
|
||||||
@ -1148,7 +2074,7 @@ c.lib 1.110 (10.4.2004)
|
|||||||
|
|
||||||
c.lib 1.109 (9.4.2004)
|
c.lib 1.109 (9.4.2004)
|
||||||
|
|
||||||
- Fixed a bug in the PPC version of setjmp that would trash floating
|
- Fixed a bug in the PPC version of setjmp that would trash floating
|
||||||
point registers.
|
point registers.
|
||||||
|
|
||||||
- Fixed a bug in dup2: If the second fd didn't exist, it would return -1,
|
- Fixed a bug in dup2: If the second fd didn't exist, it would return -1,
|
||||||
@ -1746,7 +2672,7 @@ c.lib 1.60 (5.10.2003)
|
|||||||
- Renamed the source code files which implement the strtod(), strtol(),
|
- Renamed the source code files which implement the strtod(), strtol(),
|
||||||
strtoul(), atof(), atoi() and atol() functions.
|
strtoul(), atof(), atoi() and atol() functions.
|
||||||
|
|
||||||
- Moved main() out of libc.a and made it into a startup object file
|
- Moved main() out of libc.a and made it into a startup object file
|
||||||
which needs to be added to the GCC specs file in the "*startfile"
|
which needs to be added to the GCC specs file in the "*startfile"
|
||||||
section, right at the end of the list. This solves practically all
|
section, right at the end of the list. This solves practically all
|
||||||
linking problems I encountered so far. Which means that -lunix
|
linking problems I encountered so far. Which means that -lunix
|
||||||
@ -1906,7 +2832,7 @@ c.lib 1.47 (31.7.2003)
|
|||||||
- Fixed vfscanf() and strtol() again to accept very small negative
|
- Fixed vfscanf() and strtol() again to accept very small negative
|
||||||
integers (-2147483648). The previous check to avoid overflows
|
integers (-2147483648). The previous check to avoid overflows
|
||||||
was too strict.
|
was too strict.
|
||||||
|
|
||||||
|
|
||||||
c.lib 1.46 (31.7.2003)
|
c.lib 1.46 (31.7.2003)
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: stdlib_constructor_end.c,v 1.1.1.1 2004-07-26 16:31:52 obarthel Exp $
|
* $Id: complex_carg.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -31,14 +31,22 @@
|
|||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* End markers for the CTOR and DTOR list. */
|
#if defined(COMPLEX_SUPPORT)
|
||||||
static volatile void (*__CTOR_LIST__[1]) (void) __attribute__((section(".ctors"))) = { (void *)0 };
|
|
||||||
static volatile void (*__DTOR_LIST__[1]) (void) __attribute__((section(".dtors"))) = { (void *)0 };
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
double
|
||||||
|
carg(double complex z)
|
||||||
|
{
|
||||||
|
return(atan2(IMAG(z),REAL(z)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cargf.c
Normal file
52
library/complex_cargf.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cargf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float
|
||||||
|
cargf(float complex z)
|
||||||
|
{
|
||||||
|
return(atan2(IMAG(z),REAL(z))); /* ZZZ this really needs to call ata2f(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cargl.c
Normal file
52
library/complex_cargl.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cargl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double
|
||||||
|
cargl(long double complex z)
|
||||||
|
{
|
||||||
|
return(atan2(IMAG(z),REAL(z))); /* ZZZ this really needs to call atan2l(). */
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cimag.c
Normal file
52
library/complex_cimag.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cimag.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
double
|
||||||
|
cimag(double complex z)
|
||||||
|
{
|
||||||
|
return(IMAG(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cimagf.c
Normal file
52
library/complex_cimagf.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cimagf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float
|
||||||
|
cimagf(float complex z)
|
||||||
|
{
|
||||||
|
return(IMAG(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_cimagl.c
Normal file
52
library/complex_cimagl.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_cimagl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double
|
||||||
|
cimagl(long double complex z)
|
||||||
|
{
|
||||||
|
return(IMAG(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_conj.c
Normal file
52
library/complex_conj.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_conj.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
double complex
|
||||||
|
conj(double complex z)
|
||||||
|
{
|
||||||
|
return(CONJ(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_conjf.c
Normal file
52
library/complex_conjf.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_conjf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float complex
|
||||||
|
conjf(float complex z)
|
||||||
|
{
|
||||||
|
return(CONJ(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_conjl.c
Normal file
52
library/complex_conjl.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_conjl.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double complex
|
||||||
|
conjl(long double complex z)
|
||||||
|
{
|
||||||
|
return(CONJ(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_creal.c
Normal file
52
library/complex_creal.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_creal.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
double
|
||||||
|
creal(double complex z)
|
||||||
|
{
|
||||||
|
return(REAL(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_crealf.c
Normal file
52
library/complex_crealf.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_crealf.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
float
|
||||||
|
crealf(float complex z)
|
||||||
|
{
|
||||||
|
return(REAL(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
52
library/complex_creall.c
Normal file
52
library/complex_creall.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_creall.c,v 1.1 2005-04-03 10:22:47 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#include "complex_headers.h"
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(COMPLEX_SUPPORT)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
long double
|
||||||
|
creall(long double complex z)
|
||||||
|
{
|
||||||
|
return(REAL(z));
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* COMPLEX_SUPPORT */
|
||||||
68
library/complex_headers.h
Executable file
68
library/complex_headers.h
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* $Id: complex_headers.h,v 1.3 2005-05-12 14:50:06 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _COMPLEX_HEADERS_H
|
||||||
|
#define _COMPLEX_HEADERS_H
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _MATH_FP_SUPPORT_H
|
||||||
|
#include "math_fp_support.h"
|
||||||
|
#endif /* _MATH_FP_SUPPORT_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#if defined(FLOATING_POINT_SUPPORT) && defined(__GNUC__) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#include <complex.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#define COMPLEX_SUPPORT
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#define REAL(z) (__real__ (z))
|
||||||
|
#define IMAG(z) (__imag__ (z))
|
||||||
|
#define CONJ(z) (~(z))
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* FLOATING_POINT_SUPPORT && __GNUC__ && __STDC_VERSION__ */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /* _COMPLEX_HEADERS_H */
|
||||||
@ -1,11 +1,12 @@
|
|||||||
//
|
//
|
||||||
// $Id: crt0.S,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
// $Id: crt0.S,v 1.6 2005-10-11 09:28:29 obarthel Exp $
|
||||||
//
|
//
|
||||||
// :ts=4
|
// :ts=4
|
||||||
//
|
//
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
|
.globl main /* This enforces linkage against the main() function */
|
||||||
.globl _main
|
.globl _main
|
||||||
.globl _start
|
.globl _start
|
||||||
|
|
||||||
@ -18,5 +19,10 @@ _start:
|
|||||||
addi r13, r13, _SDA_BASE_@l
|
addi r13, r13, _SDA_BASE_@l
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
b _main
|
#if defined(BASEREL_DATA)
|
||||||
|
/* We also need to set up the data segment pointer */
|
||||||
|
lis r2, _DATA_BASE_@ha
|
||||||
|
addi r2, r2, _DATA_BASE_@l
|
||||||
|
#endif
|
||||||
|
|
||||||
|
b _main
|
||||||
|
|||||||
@ -1,132 +1,43 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: crtbegin.c,v 1.3 2004-09-29 16:54:54 obarthel Exp $
|
* $Id: crtbegin.c,v 1.10 2005-03-18 12:38:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Handles global constructors and destructors.
|
* Handles global constructors and destructors for the OS4 GCC build.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <exec/types.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <setjmp.h>
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
#if defined(__amigaos4__)
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef EXEC_TYPES_H
|
||||||
|
#include <exec/types.h>
|
||||||
|
#endif /* EXEC_TYPES_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dummy constructor and destructor array. The linker script will put these at the
|
* Dummy constructor and destructor array. The linker script will put these at the
|
||||||
* very beginning of section ".ctors" and ".dtors". crtend.o contains a similar entry
|
* very beginning of section ".ctors" and ".dtors". crtend.o contains a similar entry
|
||||||
* with a NULL pointer entry and is put at the end of the sections. This way, the init
|
* with a NULL pointer entry and is put at the end of the sections. This way, the init
|
||||||
* code can find the global constructor/destructor pointers
|
* code can find the global constructor/destructor pointers
|
||||||
*/
|
*/
|
||||||
static void (*__CTOR_LIST__[1]) (void) __attribute__((section(".ctors"))) = { (void *)-1 };
|
static void (*__CTOR_LIST__[1]) (void) __attribute__(( used, section(".ctors"), aligned(sizeof(void (*)(void))) ));
|
||||||
static void (*__DTOR_LIST__[1]) (void) __attribute__((section(".dtors"))) = { (void *)-1 };
|
static void (*__DTOR_LIST__[1]) (void) __attribute__(( used, section(".dtors"), aligned(sizeof(void (*)(void))) ));
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
|
||||||
_do_ctors(void)
|
|
||||||
{
|
|
||||||
void (**pFuncPtr)(void);
|
|
||||||
|
|
||||||
/* Skip the first entry in the list (it's -1 anyway) */
|
|
||||||
pFuncPtr = __CTOR_LIST__ + 1;
|
|
||||||
|
|
||||||
/* Call all constructors in forward order */
|
|
||||||
while (*pFuncPtr != NULL)
|
|
||||||
(**pFuncPtr++)();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
|
||||||
_do_dtors(void)
|
|
||||||
{
|
|
||||||
ULONG i = (ULONG)__DTOR_LIST__[0];
|
|
||||||
void (**pFuncPtr)(void);
|
|
||||||
|
|
||||||
if (i == ~0UL)
|
|
||||||
{
|
|
||||||
/* Find the end of the destructors list */
|
|
||||||
i = 1;
|
|
||||||
|
|
||||||
while (__DTOR_LIST__[i] != NULL)
|
|
||||||
i++;
|
|
||||||
|
|
||||||
/* We're at the NULL entry now. Go back by one */
|
|
||||||
i--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Call all destructors in reverse order */
|
|
||||||
pFuncPtr = __DTOR_LIST__ + i;
|
|
||||||
while (i-- > 0)
|
|
||||||
(**pFuncPtr--)();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
typedef void (*func_ptr)(void);
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
|
||||||
_do_ctors(void)
|
|
||||||
{
|
|
||||||
extern func_ptr __CTOR_LIST__[];
|
|
||||||
ULONG nptrs = (ULONG)__CTOR_LIST__[0];
|
|
||||||
ULONG i;
|
|
||||||
|
|
||||||
for(i = nptrs ; i > 0 ; i--)
|
|
||||||
__CTOR_LIST__[i]();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
static void
|
|
||||||
_do_dtors(void)
|
|
||||||
{
|
|
||||||
extern func_ptr __DTOR_LIST__[];
|
|
||||||
extern jmp_buf __exit_jmp_buf;
|
|
||||||
ULONG nptrs = (ULONG)__DTOR_LIST__[0];
|
|
||||||
static ULONG i;
|
|
||||||
|
|
||||||
/* If one of the destructors drops into
|
|
||||||
* exit(), processing will continue with
|
|
||||||
* the next following destructor.
|
|
||||||
*/
|
|
||||||
(void)setjmp(__exit_jmp_buf);
|
|
||||||
|
|
||||||
while(i++ < nptrs)
|
|
||||||
__DTOR_LIST__[i]();
|
|
||||||
}
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
/* FIXME: Do we need to put these in .init/.fini sections? */
|
|
||||||
|
|
||||||
//void _init(void) __attribute__((section(".init")));
|
|
||||||
//void _fini(void) __attribute__((section(".fini")));
|
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
void
|
void
|
||||||
_init(void)
|
_init(void)
|
||||||
{
|
{
|
||||||
_do_ctors();
|
int num_ctors,i;
|
||||||
|
int j;
|
||||||
|
|
||||||
|
for(i = 1, num_ctors = 0 ; __CTOR_LIST__[i] != NULL ; i++)
|
||||||
|
num_ctors++;
|
||||||
|
|
||||||
|
for(j = 0 ; j < num_ctors ; j++)
|
||||||
|
__CTOR_LIST__[num_ctors - j]();
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
@ -134,5 +45,16 @@ _init(void)
|
|||||||
void
|
void
|
||||||
_fini(void)
|
_fini(void)
|
||||||
{
|
{
|
||||||
_do_dtors();
|
int num_dtors,i;
|
||||||
|
static int j;
|
||||||
|
|
||||||
|
for(i = 1, num_dtors = 0 ; __DTOR_LIST__[i] != NULL ; i++)
|
||||||
|
num_dtors++;
|
||||||
|
|
||||||
|
while(j++ < num_dtors)
|
||||||
|
__DTOR_LIST__[j]();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif /*__amigaos4__ */
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: crtend.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: crtend.c,v 1.2 2005-03-09 21:07:25 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
@ -10,9 +10,10 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static volatile void (*__CTOR_LIST__[1]) (void) __attribute__((used,section(".ctors"))) = { (void *)0 };
|
static void (*__CTOR_LIST__[1]) (void) __attribute__((used, section(".ctors"), aligned(sizeof(void (*)(void))) ));
|
||||||
static volatile void (*__DTOR_LIST__[1]) (void) __attribute__((used,section(".dtors"))) = { (void *)0 };
|
static void (*__DTOR_LIST__[1]) (void) __attribute__((used, section(".dtors"), aligned(sizeof(void (*)(void))) ));
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#endif /*__amigaos4__ */
|
#endif /*__amigaos4__ */
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_headers.h,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: ctype_headers.h,v 1.5 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -42,18 +42,25 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#ifndef _STDLIB_LOCALE_UTILITY_H
|
#ifndef _STDLIB_LOCALEBASE_H
|
||||||
#include "stdlib_locale_utility.h"
|
#include "stdlib_localebase.h"
|
||||||
#endif /* _STDLIB_LOCALE_UTILITY_H */
|
#endif /* _STDLIB_LOCALEBASE_H */
|
||||||
|
|
||||||
|
#ifndef _STDLIB_UTILITYBASE_H
|
||||||
|
#include "stdlib_utilitybase.h"
|
||||||
|
#endif /* _STDLIB_UTILITYBASE_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef _MACROS_H
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
#endif /* _MACROS_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include <limits.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalnum.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: ctype_isalnum.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -49,16 +49,26 @@ isalnum(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsAlNum(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsAlNum(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = isalpha(c) || isdigit(c);
|
result = isalpha(c) || isdigit(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isalpha.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: ctype_isalpha.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,11 +47,19 @@ isalpha(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsAlpha(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsAlpha(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -59,5 +67,7 @@ isalpha(int c)
|
|||||||
('A' <= c && c <= 'Z'));
|
('A' <= c && c <= 'Z'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isascii.c,v 1.1.1.1 2004-07-26 16:30:22 obarthel Exp $
|
* $Id: ctype_isascii.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
52
library/ctype_isblank.c
Normal file
52
library/ctype_isblank.c
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* $Id: ctype_isblank.c,v 1.2 2005-05-29 08:19:36 obarthel Exp $
|
||||||
|
*
|
||||||
|
* :ts=4
|
||||||
|
*
|
||||||
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Neither the name of Olaf Barthel nor the names of contributors
|
||||||
|
* may be used to endorse or promote products derived from this
|
||||||
|
* software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _CTYPE_HEADERS_H
|
||||||
|
#include "ctype_headers.h"
|
||||||
|
#endif /* _CTYPE_HEADERS_H */
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#undef isblank
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
int
|
||||||
|
isblank(int c)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
|
||||||
|
result = (c == '\t' || c == ' ');
|
||||||
|
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_iscntrl.c,v 1.1.1.1 2004-07-26 16:30:23 obarthel Exp $
|
* $Id: ctype_iscntrl.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,16 +47,26 @@ iscntrl(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsCntrl(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsCntrl(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = (('\0' <= c && c < ' ') || (c == 127));
|
result = (('\0' <= c && c < ' ') || (c == 127));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isdigit.c,v 1.1.1.1 2004-07-26 16:30:23 obarthel Exp $
|
* $Id: ctype_isdigit.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,16 +47,26 @@ isdigit(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsDigit(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsDigit(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = ('0' <= c && c <= '9');
|
result = ('0' <= c && c <= '9');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isgraph.c,v 1.1.1.1 2004-07-26 16:30:23 obarthel Exp $
|
* $Id: ctype_isgraph.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,16 +47,26 @@ isgraph(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsGraph(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsGraph(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = (' ' < c && c < 127);
|
result = (' ' < c && c < 127);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_islower.c,v 1.1.1.1 2004-07-26 16:30:23 obarthel Exp $
|
* $Id: ctype_islower.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,16 +47,26 @@ islower(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsLower(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsLower(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = ('a' <= c && c <= 'z');
|
result = ('a' <= c && c <= 'z');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isprint.c,v 1.1.1.1 2004-07-26 16:30:23 obarthel Exp $
|
* $Id: ctype_isprint.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,16 +47,26 @@ isprint(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsPrint(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsPrint(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = (' ' <= c && c <= '~');
|
result = (' ' <= c && c <= '~');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_ispunct.c,v 1.1.1.1 2004-07-26 16:30:23 obarthel Exp $
|
* $Id: ctype_ispunct.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,11 +47,19 @@ ispunct(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsPunct(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsPunct(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -61,5 +69,7 @@ ispunct(int c)
|
|||||||
('{' <= c && c <= '~'));
|
('{' <= c && c <= '~'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isspace.c,v 1.1.1.1 2004-07-26 16:30:23 obarthel Exp $
|
* $Id: ctype_isspace.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,11 +47,19 @@ isspace(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsSpace(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsSpace(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -63,5 +71,7 @@ isspace(int c)
|
|||||||
c == ' ');
|
c == ' ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isupper.c,v 1.1.1.1 2004-07-26 16:30:24 obarthel Exp $
|
* $Id: ctype_isupper.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,16 +47,26 @@ isupper(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsUpper(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsUpper(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = ('A' <= c && c <= 'Z');
|
result = ('A' <= c && c <= 'Z');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_isxdigit.c,v 1.1.1.1 2004-07-26 16:30:24 obarthel Exp $
|
* $Id: ctype_isxdigit.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -47,11 +47,19 @@ isxdigit(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = IsXDigit(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = IsXDigit(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -60,5 +68,7 @@ isxdigit(int c)
|
|||||||
('A' <= c && c <= 'F'));
|
('A' <= c && c <= 'F'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_table.c,v 1.1.1.1 2004-07-26 16:30:24 obarthel Exp $
|
* $Id: ctype_table.c,v 1.3 2005-01-09 15:20:31 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -36,22 +36,8 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
/* The construction of this table is rather peculiar. The assumption is that
|
const unsigned char __ctype_table[2 * 128] =
|
||||||
the table index from which a flag value could be fetched is in the range
|
|
||||||
-128..255 since the character to be tested could be a signed or unsigned
|
|
||||||
8 bit value. The table access pointer (declared below) therefore points
|
|
||||||
to the 128th byte of '__ctype_data[]'. */
|
|
||||||
static const unsigned char __ctype_data[3 * 128] =
|
|
||||||
{
|
{
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
||||||
|
|
||||||
/* 0 */ __CTYPE_CONTROL,
|
/* 0 */ __CTYPE_CONTROL,
|
||||||
/* 1 */ __CTYPE_CONTROL,
|
/* 1 */ __CTYPE_CONTROL,
|
||||||
/* 2 */ __CTYPE_CONTROL,
|
/* 2 */ __CTYPE_CONTROL,
|
||||||
@ -190,7 +176,3 @@ static const unsigned char __ctype_data[3 * 128] =
|
|||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
const unsigned char * const __ctype_table = &__ctype_data[128];
|
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_tolower.c,v 1.1.1.1 2004-07-26 16:30:25 obarthel Exp $
|
* $Id: ctype_tolower.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -43,16 +43,26 @@ tolower(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = ConvToLower(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = ConvToLower(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = c;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = ('A' <= c && c <= 'Z') ? (c + ('a' - 'A')) : c;
|
result = ('A' <= c && c <= 'Z') ? (c + ('a' - 'A')) : c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: ctype_toupper.c,v 1.1.1.1 2004-07-26 16:30:25 obarthel Exp $
|
* $Id: ctype_toupper.c,v 1.4 2005-05-29 09:56:09 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -43,16 +43,26 @@ toupper(int c)
|
|||||||
DECLARE_LOCALEBASE();
|
DECLARE_LOCALEBASE();
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
__locale_lock();
|
||||||
|
|
||||||
if(__locale_table[LC_CTYPE] != NULL)
|
if(__locale_table[LC_CTYPE] != NULL)
|
||||||
{
|
{
|
||||||
assert( LocaleBase != NULL );
|
assert( LocaleBase != NULL );
|
||||||
|
|
||||||
result = ConvToUpper(__locale_table[LC_CTYPE],(ULONG)c);
|
/* The parameter must be either EOF or in the range of an
|
||||||
|
'unsigned char'. If it's not, then the behaviour is
|
||||||
|
undefined. */
|
||||||
|
if(c != EOF && ((0 <= c && c <= UCHAR_MAX) || ((c + 256) <= UCHAR_MAX)))
|
||||||
|
result = ConvToUpper(__locale_table[LC_CTYPE],(ULONG)(c & 255));
|
||||||
|
else
|
||||||
|
result = c;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = ('a' <= c && c <= 'z') ? (c - ('a' - 'A')) : c;
|
result = ('a' <= c && c <= 'z') ? (c - ('a' - 'A')) : c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__locale_unlock();
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug.c,v 1.1.1.1 2004-07-26 16:30:25 obarthel Exp $
|
* $Id: debug.c,v 1.3 2005-02-25 10:14:21 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -133,7 +133,7 @@ _POPDEBUGLEVEL(void)
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
static void
|
STATIC VOID
|
||||||
_INDENT(void)
|
_INDENT(void)
|
||||||
{
|
{
|
||||||
if(program_name_len > 0)
|
if(program_name_len > 0)
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug.h,v 1.2 2004-11-14 11:06:27 obarthel Exp $
|
* $Id: debug.h,v 1.3 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=8
|
* :ts=8
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug.lib_rev.c,v 1.1.1.1 2004-07-26 16:30:26 obarthel Exp $
|
* $Id: debug.lib_rev.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#define VERSION 1
|
#define VERSION 1
|
||||||
#define REVISION 184
|
#define REVISION 197
|
||||||
#define DATE "28.11.2004"
|
#define DATE "4.11.2005"
|
||||||
#define VERS "debug.lib 1.184"
|
#define VERS "debug.lib 1.197"
|
||||||
#define VSTRING "debug.lib 1.184 (28.11.2004)\r\n"
|
#define VSTRING "debug.lib 1.197 (4.11.2005)\r\n"
|
||||||
#define VERSTAG "\0$VER: debug.lib 1.184 (28.11.2004)"
|
#define VERSTAG "\0$VER: debug.lib 1.197 (4.11.2005)"
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
184
|
197
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_cmpstrexec.c,v 1.1.1.1 2004-07-26 16:30:26 obarthel Exp $
|
* $Id: debug_cmpstrexec.c,v 1.2 2005-01-02 09:07:07 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: debug_headers.h,v 1.1.1.1 2004-07-26 16:30:27 obarthel Exp $
|
* $Id: debug_headers.h,v 1.3 2005-03-18 12:38:22 obarthel Exp $
|
||||||
*
|
*
|
||||||
* :ts=4
|
* :ts=4
|
||||||
*
|
*
|
||||||
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
* Portable ISO 'C' (1994) runtime library for the Amiga computer
|
||||||
* Copyright (c) 2002-2004 by Olaf Barthel <olsen@sourcery.han.de>
|
* Copyright (c) 2002-2005 by Olaf Barthel <olsen@sourcery.han.de>
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -36,14 +36,15 @@
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef EXEC_LIBRARIES_H
|
||||||
#include <exec/libraries.h>
|
#include <exec/libraries.h>
|
||||||
|
#endif /* EXEC_LIBRARIES_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#if defined(__SASC)
|
#if defined(__SASC)
|
||||||
|
|
||||||
#include <clib/exec_protos.h>
|
#include <clib/exec_protos.h>
|
||||||
/*#include <pragmas/exec_sysbase_pragmas.h>*/
|
|
||||||
#include <pragmas/exec_pragmas.h>
|
#include <pragmas/exec_pragmas.h>
|
||||||
|
|
||||||
LONG RawMayGetChar(VOID);
|
LONG RawMayGetChar(VOID);
|
||||||
@ -57,7 +58,11 @@ VOID RawPutChar(UBYTE c);
|
|||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#if defined(__amigaos4__)
|
#if defined(__amigaos4__)
|
||||||
|
|
||||||
|
#ifndef EXEC_EMULATION_H
|
||||||
#include <exec/emulation.h>
|
#include <exec/emulation.h>
|
||||||
|
#endif /* EXEC_EMULATION_H */
|
||||||
|
|
||||||
#endif /* __amigaos4__ */
|
#endif /* __amigaos4__ */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
@ -106,11 +111,13 @@ VOID RawPutChar(UBYTE c);
|
|||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
#include "debug.h"
|
#ifndef _MACROS_H
|
||||||
|
|
||||||
/****************************************************************************/
|
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
#endif /* _MACROS_H */
|
||||||
|
|
||||||
|
#ifndef _DEBUG_H
|
||||||
|
#include "debug.h"
|
||||||
|
#endif /* _DEBUG_H */
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user