From 6f19f5b951f441c148edf04ac2fe297cb810d434 Mon Sep 17 00:00:00 2001
From: Olaf Barthel
Date: Fri, 4 Nov 2005 10:10:58 +0000
Subject: [PATCH] This commit was manufactured by cvs2svn to create tag
'V1_197'.
git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/tags/V1_197@15060 87f5fb63-7c3d-0410-a384-fd976d0f7a62
---
CVSROOT/checkoutlist | 13 --
CVSROOT/commitinfo | 15 --
CVSROOT/config | 21 --
CVSROOT/cvswrappers | 19 --
CVSROOT/editinfo | 21 --
CVSROOT/loginfo | 27 ---
CVSROOT/modules | 26 ---
CVSROOT/notify | 12 -
CVSROOT/rcsinfo | 13 --
CVSROOT/taginfo | 20 --
CVSROOT/verifymsg | 21 --
documentation/BUILDING.html | 30 ---
documentation/GCC-68K.html | 67 ------
documentation/README.html | 324 ---------------------------
documentation/specs | 64 ------
test_programs/GNUmakefile.68k | 126 -----------
test_programs/GNUmakefile.os4 | 111 ---------
test_programs/README | 5 -
test_programs/clib-bug.c | 74 ------
test_programs/date_test.c | 22 --
test_programs/fgets_test.c | 41 ----
test_programs/fstat_stdout_test.c | 36 ---
test_programs/iotest.c | 44 ----
test_programs/printf_g_test.c | 12 -
test_programs/printf_test.c | 238 --------------------
test_programs/simple.c | 13 --
test_programs/simple_sprintf.c | 99 --------
test_programs/smakefile | 167 --------------
test_programs/sprintf_test.c | 25 ---
test_programs/sscanf_64.c | 22 --
test_programs/sscanf_test.c | 135 -----------
test_programs/stack_extension_test.c | 31 ---
test_programs/stack_size_test.c | 15 --
test_programs/strtok_test.c | 35 ---
test_programs/test.c | 282 -----------------------
test_programs/translate_test.c | 39 ----
test_programs/uname.c | 56 -----
37 files changed, 2321 deletions(-)
delete mode 100644 CVSROOT/checkoutlist
delete mode 100644 CVSROOT/commitinfo
delete mode 100644 CVSROOT/config
delete mode 100644 CVSROOT/cvswrappers
delete mode 100644 CVSROOT/editinfo
delete mode 100644 CVSROOT/loginfo
delete mode 100644 CVSROOT/modules
delete mode 100644 CVSROOT/notify
delete mode 100644 CVSROOT/rcsinfo
delete mode 100644 CVSROOT/taginfo
delete mode 100644 CVSROOT/verifymsg
delete mode 100644 documentation/BUILDING.html
delete mode 100644 documentation/GCC-68K.html
delete mode 100644 documentation/README.html
delete mode 100644 documentation/specs
delete mode 100644 test_programs/GNUmakefile.68k
delete mode 100644 test_programs/GNUmakefile.os4
delete mode 100644 test_programs/README
delete mode 100644 test_programs/clib-bug.c
delete mode 100755 test_programs/date_test.c
delete mode 100644 test_programs/fgets_test.c
delete mode 100644 test_programs/fstat_stdout_test.c
delete mode 100644 test_programs/iotest.c
delete mode 100644 test_programs/printf_g_test.c
delete mode 100644 test_programs/printf_test.c
delete mode 100644 test_programs/simple.c
delete mode 100644 test_programs/simple_sprintf.c
delete mode 100644 test_programs/smakefile
delete mode 100644 test_programs/sprintf_test.c
delete mode 100755 test_programs/sscanf_64.c
delete mode 100644 test_programs/sscanf_test.c
delete mode 100644 test_programs/stack_extension_test.c
delete mode 100644 test_programs/stack_size_test.c
delete mode 100644 test_programs/strtok_test.c
delete mode 100644 test_programs/test.c
delete mode 100644 test_programs/translate_test.c
delete mode 100644 test_programs/uname.c
diff --git a/CVSROOT/checkoutlist b/CVSROOT/checkoutlist
deleted file mode 100644
index 2921bff..0000000
--- a/CVSROOT/checkoutlist
+++ /dev/null
@@ -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:
-#
-# [][]
-#
-# comment lines begin with '#'
diff --git a/CVSROOT/commitinfo b/CVSROOT/commitinfo
deleted file mode 100644
index b19e7b7..0000000
--- a/CVSROOT/commitinfo
+++ /dev/null
@@ -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".
diff --git a/CVSROOT/config b/CVSROOT/config
deleted file mode 100644
index 92c150b..0000000
--- a/CVSROOT/config
+++ /dev/null
@@ -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
diff --git a/CVSROOT/cvswrappers b/CVSROOT/cvswrappers
deleted file mode 100644
index e989b75..0000000
--- a/CVSROOT/cvswrappers
+++ /dev/null
@@ -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'
diff --git a/CVSROOT/editinfo b/CVSROOT/editinfo
deleted file mode 100644
index d78886c..0000000
--- a/CVSROOT/editinfo
+++ /dev/null
@@ -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.
diff --git a/CVSROOT/loginfo b/CVSROOT/loginfo
deleted file mode 100644
index 537607d..0000000
--- a/CVSROOT/loginfo
+++ /dev/null
@@ -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
diff --git a/CVSROOT/modules b/CVSROOT/modules
deleted file mode 100644
index cb9e9ef..0000000
--- a/CVSROOT/modules
+++ /dev/null
@@ -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.
diff --git a/CVSROOT/notify b/CVSROOT/notify
deleted file mode 100644
index 74ae6f9..0000000
--- a/CVSROOT/notify
+++ /dev/null
@@ -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
diff --git a/CVSROOT/rcsinfo b/CVSROOT/rcsinfo
deleted file mode 100644
index 49e59f4..0000000
--- a/CVSROOT/rcsinfo
+++ /dev/null
@@ -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".
diff --git a/CVSROOT/taginfo b/CVSROOT/taginfo
deleted file mode 100644
index 274a46d..0000000
--- a/CVSROOT/taginfo
+++ /dev/null
@@ -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".
diff --git a/CVSROOT/verifymsg b/CVSROOT/verifymsg
deleted file mode 100644
index 86f747c..0000000
--- a/CVSROOT/verifymsg
+++ /dev/null
@@ -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.
diff --git a/documentation/BUILDING.html b/documentation/BUILDING.html
deleted file mode 100644
index 7138427..0000000
--- a/documentation/BUILDING.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-Notes on building the library
-
-
-Notes on building the library
-
-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.
-
-
-
diff --git a/documentation/GCC-68K.html b/documentation/GCC-68K.html
deleted file mode 100644
index 43d0200..0000000
--- a/documentation/GCC-68K.html
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-Notes on using the library with Amiga GCC (68k)
-
-
-Notes on using the library with Amiga GCC (68k)
-
-You can use the 68k build of clib2 with the existing Amiga 68k ports of the
-GNU 'C' compiler. In order to do so, you need to modify the specs file which
-controls how the compiler(s) and the linker interact, and where the linker
-will look for the program startup code and library files. Also, you will need
-to copy the header files, startup code and library files to the locations
-where the 'C' compiler and linker expects them.
-
-Please read the following description before you follow the instructions. The
-changes suggested may have unexpected side-effects!
-
-I have provided a working specs file with this documentation file. To switch
-over an existing Amiga 68k port of GCC to use clib2, you would proceed as
-follows:
-
-
-- Locate the directory within which GCC is installed. For example, this
-could be within a directory to which the name ADE:, GG: or GCC:
-is assigned. For the sake of simplicity, the following notes assume
-that the assignment name is GCC:
-
-
- Make backup copies of the following directories and files:
-
-- GCC:lib/gcc-lib/amigaos/2.95.3/specs
-
-(NOTE: Check the directory called GCC:lib/gcc-lib/amigaos
-first; the "2.95.3" quoted above refers to the version,
-revision and patch number of the GCC installed and your
-version number may differ!)
-
- - GCC:include
-
- GCC:lib
-
-
-
- - Now you can proceed to install clib2; just copy the include and lib
-directories over, like this:
-
-- Copy include GCC:include all quiet
-
- Copy lib GCC:lib all quiet
-
-
- - Finally, replace the specs file with the one provided:
-
-
-- Copy specs GCC:lib/gcc-lib/amigaos/2.95.3/specs
-
-(NOTE: Check the directory called GCC:lib/gcc-lib/amigaos
-first; the "2.95.3" quoted above refers to the version,
-revision and patch number of the GCC installed and your
-version number may differ!)
-
-
-
-Once you have completed these steps you should be able to build programs using
-the 68k build of clib2 and you currently installed GCC. Note that these
-changes may have the effect of rendering your C++ compiler unusable, so make
-sure that you've made backup copies of all files and directories first!
-
-
diff --git a/documentation/README.html b/documentation/README.html
deleted file mode 100644
index f27e6f1..0000000
--- a/documentation/README.html
+++ /dev/null
@@ -1,324 +0,0 @@
-
-
-
-An ISO 'C' (1994) compliant runtime library for the Amiga
-
-
-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 (4th edition) 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 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, for the 68k platform, 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.
-
-For the PowerPC platform, the library uses code borrowed from fdlibm 5.3,
-which is a portable library of arithmetic functions developed by Sun
-Microsystems which, for example, is also used within the Java platform.
-
-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.
-
-2.1 Thread-safety
-
-The library code is supposed to be thread-safe if built with the __THREAD_SAFE
-preprocesssor symbold defined. Note that 'thread-safe' does not mean
-'reentrant'. Multiple callers for certain library functions are permitted, but
-not for all of them. For example, mkdtemp() is not thread-safe, and neither is
-rand() or localtime(). But as per POSIX 1003.1c-1995 there are thread-safe
-variants of rand() and localtime() called rand_r(), localtime_r(), and others.
-
-The use of the socket I/O functions is still problematic because the
-underlying bsdsocket.library API is not supposed to be used by any process
-other than the one that opened it. While one TCP/IP stack (my own "Roadshow") allows you
-to share the library base among different processes, if so configured, it is the
-exception. No other TCP/IP stack available for the Amiga robustly supports a similar
-feature. Any attempt to enable it by default would introduce incompatibilities which
-might be difficult to support.
-
-Also yet unsolved is the issue of reading
-error codes from the errno variable which currently always contains the
-error code left by the last caller. This is also the case for the global h_errno
-variable, which the socket I/O name resolution functions may change.
-
-A much more serious problem resides with the exit(), abort(),
-assert() and raise() functions, and the how SIGINT signal is
-processed. In the thread-safe library only the main() function may directly
-or indirectly call the exit() function. No child process may do so, since this
-would wreck its stack context, crashing it instantly; the main program would be very
-likely to crash, too, because exit() will clean up after all memory allocations
-and files currently in use. Functions such as abort() and raise() may
-call the exit() function indirectly. And the raise() function may
-be invoked as part of the Control+C checking. You should make sure that the
-signal handling does not affect any child processes. This can be done by replacing the
-__check_abort() function or by disabling SIGINT processing altogether,
-such as through a signal(SIGINT,SIG_IGN) call.
-
-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.
-
-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.
-
-Different build makefiles are supplied for use with GCC. There is
-GNUmakefile.68k for the 68k platform and GNUmakefile.os4 for the AmigaOS4
-PowerPC version.
-
-5.1 Floating point math and functions (scanf(), printf(), etc.)
-
-The plain libc.a, which your software would be linked against by default, does not contain
-any floating point support code. This means, for example, that printf("%f",...) will not produce
-the desired output and that scanf("%f",...) may not read any data at all. If your
-program needs functions such as these or atod() then you must link against libm.a or
-the equivalent.
-
-To link the floating point support code with your software, use the -lm compiler option. Careful!
-The order in which you specify the libraries to link against is important here. Thus, gcc -o test test.c -lm -lc
-would correctly link the program test against the proper floating point math library, but
-gcc -o test test.c -lc -lm would not.
-
-5.2 The thread-safe library
-
-Thread-safety does not imply that you can have multiple callers
-access and close the same file. There is no resource tracking to that degree
-yet. All that the thread-safety tries to afford you is not to get into big trouble
-if simultaneous and overlapping accesses to files, memory allocation and other
-resources are taking place.
-
- Also take care with file I/O involving the stdin/stdout/stderr
-streams; read/write operations on these streams will be mapped to the Input()/Output()/ErrorOutput()
-file handles of the process performing these operations. Since only this small set of
-operations is mapped, functions such as fcntl() or select() will not
-work on the stdin/stdout/stderr streams and the corresponding
-file descriptors STDIN_FILENO/STDOUT_FILENO/STDERR_FILENO.
-It is therefore strongly recommended to use the thread-safe library only for applications
-which can cope with the limitations described above.
-
-5.3 Using gmon (PowerPC only)
-
-To use profiling, two steps are required. First of all, your program must be compiled with
-the gcc command line option -pg. This instructs the compiler to generate special
-profiling code in the prologue and epilogue of each function. Additionally, the program
-must be linked with libprofile.a. To do this, either manually add
--lprofile to the linker command line, or modify the specs file as follows.
-Find the lines that look like this (it may actually differ silghtily from your specs file,
-but the important thing is that the line before the line to be modified reads lib:):
-
-lib:
---start-group -lc --end-group
-
-You will have to modify this to look like this:
-
-lib:
-%{pg: -lprofile} --start-group -lc --end-group
-
-Normally, the specs file is located at the compilers installation directory. For cross-compilers,
-this is /usr/local/amiga/lib/gcc/ppc-amigaos/compiler-version/specs. For a native compiler,
-it's in gcc:lib/gcc/ppc-amigaos/compiler-version/specs. Most likely, your compiler will already have this added to it's specs file.
-
-Profiling makes use of a special PowerPC facility called the Performance Monitor. It
-allows to "mark" tasks and count only during while a marked task is running. This allows
-performance analysis to be made independant of the actual system load. The Performace Monitor
-is available on all PowerPC models supported by AmigaOS 4 except for the 603e, and
-embedded versions of the PowerPC like the 405 and 440 series. Consult the manual
-of the appropriate chip for more information.
-
-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 variables which need to be visible across several
-modules have names 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' 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.
-
-
-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
-
-
diff --git a/documentation/specs b/documentation/specs
deleted file mode 100644
index 6bafdb4..0000000
--- a/documentation/specs
+++ /dev/null
@@ -1,64 +0,0 @@
-*asm:
- %{m68000:-mc68010} %{mc68000:-mc68010} %{m68020:-mc68020} %{mc68020:-mc68020} %{m68030:-mc68030} %{m68040:-mc68040} %{m68060:-mc68060} %{m68020-40:-mc68020} %{m68020-60:-mc68020} %{!mc68000:%{!m68000:%{!mc68020:%{!m68020:%{!m68030:%{!m68040:%{!m68060:%{!m68020-40:%{!m68020-60:-mc68010}}}}}}}}} %{msmall-code:-sc}
-
-*asm_final:
-
-
-*cpp:
-%{m68881:-D__HAVE_68881__} %{!ansi:%{m68020:-Dmc68020} %{mc68020:-Dmc68020} %{m68020-40:-Dmc68020} %{m68020-60:-Dmc68020} %{m68030:-Dmc68030} %{m68040:-Dmc68040} %{m68060:-Dmc68060}} %{m68020:-D__mc68020__ -D__mc68020} %{mc68020:-D__mc68020__ -D__mc68020} %{m68020-40:-D__mc68020__ -D__mc68020} %{m68020-60:-D__mc68020__ -D__mc68020} %{m68030:-D__mc68030__ -D__mc68030} %{m68040:-D__mc68040__ -D__mc68040} %{m68060:-D__mc68060__ -D__mc68060}
-
-*cc1:
-%{resident:-fbaserel} %{resident32:-fbaserel32} %{msmall-code:-fno-function-cse}
-
-*cc1plus:
-
-
-*endfile:
-
-
-*link:
-%{fbaserel:%{!resident:-m amiga_bss -fl libb}} %{resident:-m amiga_bss -amiga-datadata-reloc -fl libb} %{fbaserel32:%{!resident32:-m amiga_bss -fl libb32}} %{resident32:-m amiga_bss -amiga-datadata-reloc -fl libb32} %{g:-amiga-debug-hunk} %{m68020:-fl libm020} %{mc68020:-fl libm020} %{m68030:-fl libm020} %{m68040:-fl libm020} %{m68060:-fl libm020} %{m68020-40:-fl libm020} %{m68020-60:-fl libm020}
-
-*lib:
-%{mstackextend:-lstack} -lc -lamiga -ldebug -lgcc -lc
-
-*libgcc:
-
-
-*startfile:
-%{resident32:nr32crt0.o%s}%{!resident32:%{fbaserel32:nb32crt0.o%s}%{!fbaserel32:%{resident:nrcrt0.o%s}%{!resident:%{fbaserel:nbcrt0.o%s}%{!fbaserel:ncrt0.o%s}}}}
-
-*switches_need_spaces:
-
-
-*signed_char:
-%{funsigned-char:-D__CHAR_UNSIGNED__}
-
-*predefines:
--Dmc68000 -Damiga -Damigaos -DMCH_AMIGA -DAMIGA -D__chip=__attribute__((__chip__)) -D__saveds=__attribute__((__saveds__)) -D__interrupt=__attribute__((__interrupt__)) -D__stackext=__attribute__((__stackext__)) -D__regargs=__attribute__((__regparm__)) -D__stdargs=__attribute__((__stkparm__)) -D__aligned=__attribute__((__aligned__(4))) -Asystem(amigaos) -Acpu(m68k) -Amachine(m68k)
-
-*cross_compile:
-0
-
-*version:
-2.95.3
-
-*multilib:
-. ;
-
-*multilib_defaults:
-
-
-*multilib_extra:
-
-
-*multilib_matches:
-
-
-*linker:
-collect2
-
-*link_command:
-%{!fsyntax-only: %{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l %X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r} %{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}} %{static:} %{L*} %D %o %{!nostdlib:%{!nodefaultlibs:%G %L %G}} %{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*}
- }}}}}}
-
diff --git a/test_programs/GNUmakefile.68k b/test_programs/GNUmakefile.68k
deleted file mode 100644
index 3c09e40..0000000
--- a/test_programs/GNUmakefile.68k
+++ /dev/null
@@ -1,126 +0,0 @@
-#
-# $Id: GNUmakefile.68k,v 1.9 2005-08-27 12:52:26 obarthel Exp $
-#
-# :ts=8
-#
-
-##############################################################################
-
-CC = gcc
-DELETE = delete all quiet
-
-##############################################################################
-
-.c.o:
- @echo "Compiling $<"
- @$(CC) -c $(CFLAGS) $<
-
-##############################################################################
-
-#CODE_TYPE := -fbaserel -DSMALL_DATA -m68020-60 -DM68020
-#CODE_TYPE := -fbaserel -DSMALL_DATA -m68000
-#CODE_TYPE := -fbaserel32 -DSMALL_DATA32 -m68020-60 -DM68020
- CODE_TYPE := -m68020-60 -DM68020
-#CODE_TYPE := -m68000
-
-##############################################################################
-
-WARNINGS = \
- -Wall -W -Wshadow -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
- -Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion
-
-INCLUDE = -I../library/include
-LIB = -L../library/lib
- OPTIONS = -DNDEBUG -fno-builtin -fwritable-strings -DNO_INLINE_STDARG -DIEEE_FLOATING_POINT_SUPPORT
-#OPTIONS = -D__MEM_DEBUG -fno-builtin
-#OPTIONS = -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG -fno-builtin
- OPTIMIZE = -O
-#OPTIMIZE = -O2 -fomit-frame-pointer
-DEBUG = -ggdb
-
-CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDE) $(LIB)
-
-##############################################################################
-
-LIBS = -lm -lc -lgcc
-
-##############################################################################
-
-all: test fgets_test iotest sscanf_test printf_test sprintf_test \
- stack_size_test translate_test strtok_test uname simple \
- fstat_stdout_test simple_sprintf date_test sscanf_64
-
-clean:
- $(DELETE) #?.o #?.map test fgets_test iotest sscanf_test printf_test \
- sprintf_test stack_size_test translate_test strtok_test uname \
- simple fstat_stdout_test simple_sprintf date_test sscanf_64
-
-##############################################################################
-
-test : test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-fgets_test : fgets_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ fgets_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-strtok_test : strtok_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ strtok_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-iotest : iotest.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ iotest.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-sscanf_test : sscanf_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ sscanf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-printf_test : printf_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ printf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-sprintf_test : sprintf_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ sprintf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-stack_size_test : stack_size_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ stack_size_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-translate_test : translate_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ translate_test.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-uname : uname.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ uname.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-simple : simple.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ simple.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-fstat_stdout_test : fstat_stdout_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ fstat_stdout_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-simple_sprintf : simple_sprintf.o
- @echo "Linking $@"
- $(CC) -nostdlib $(CFLAGS) -o $@ simple_sprintf.o -lc -Wl,--cref,-M,-Map=$@.map
-
-date_test : date_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ date_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-sscanf_64 : sscanf_64.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ sscanf_64.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-##############################################################################
-
-mkid:
- mkid -v #?.(c|h|asm|i)
-
-update:
- mkid -v -u
diff --git a/test_programs/GNUmakefile.os4 b/test_programs/GNUmakefile.os4
deleted file mode 100644
index 8cb4e50..0000000
--- a/test_programs/GNUmakefile.os4
+++ /dev/null
@@ -1,111 +0,0 @@
-#
-# $Id: GNUmakefile.os4,v 1.10 2005-08-27 12:52:26 obarthel Exp $
-#
-# :ts=8
-#
-
-##############################################################################
-
-CC = ppc-amigaos-gcc
-DELETE = rm -r
-
-##############################################################################
-
-.c.o:
- @echo "Compiling $<"
- @$(CC) -c $(CFLAGS) $<
-
-##############################################################################
-
-WARNINGS = \
- -Wall -W -Wshadow -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
- -Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion
-
-INCLUDE = -I$(V)/include -I../library/include
-LIB = -L../library/lib
-#OPTIONS = -DNDEBUG -fno-builtin -DNO_INLINE_STDARG -DIEEE_FLOATING_POINT_SUPPORT
-#OPTIONS = -D__MEM_DEBUG -fno-builtin
- OPTIONS = -DDEBUG -DNO_INLINE_STDARG -fno-builtin
-#OPTIMIZE = -O
-#OPTIMIZE = -O2 -fomit-frame-pointer
-DEBUG = -ggdb
-
-CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDE) $(LIB)
-
-##############################################################################
-
-LIBS = -lm -lc -ldebug -lgcc
-
-##############################################################################
-
-all: test fgets_test iotest sscanf_test printf_test sprintf_test \
- stack_size_test translate_test strtok_test uname simple \
- fstat_stdout_test simple_sprintf date_test sscanf_64
-
-clean:
- $(DELETE) *.o *.map test fgets_test iotest sscanf_test printf_test \
- sprintf_test stack_size_test translate_test strtok_test \
- uname simple fstat_stdout_test simple_sprintf date_test \
- sscanf_64
-
-##############################################################################
-
-test : test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-date_test : date_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-fgets_test : fgets_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ fgets_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-strtok_test : strtok_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ strtok_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-iotest : iotest.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ iotest.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-sscanf_test : sscanf_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ sscanf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-printf_test : printf_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ printf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-sprintf_test : sprintf_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ sprintf_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-stack_size_test : stack_size_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ stack_size_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-translate_test : translate_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ translate_test.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-uname : uname.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ uname.o -lunix $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-simple : simple.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ simple.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-fstat_stdout_test : fstat_stdout_test.o
- @echo "Linking $@"
- $(CC) $(CFLAGS) -o $@ fstat_stdout_test.o $(LIBS) -Wl,--cref,-M,-Map=$@.map
-
-simple_sprintf : simple_sprintf.o
- @echo "Linking $@"
- $(CC) -nostdlib $(CFLAGS) -o $@ simple_sprintf.o -lc -lgcc -Wl,--cref,-M,-Map=$@.map
-
-sscanf_64 : sscanf_64.o
- @echo "Linking $@"
- $(CC) -nostdlib $(CFLAGS) -o $@ sscanf_64.o -lc -lgcc -Wl,--cref,-M,-Map=$@.map
diff --git a/test_programs/README b/test_programs/README
deleted file mode 100644
index be6967b..0000000
--- a/test_programs/README
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a collection of programs I'm using to test the library. These
-are functional tests: the library is supposed to do something, and produce
-a particular result. For example, "printf_test" exercises a bunch of
-output formatting rules. Currently, there is only an smakefile for SAS/C
-to build these programs with.
diff --git a/test_programs/clib-bug.c b/test_programs/clib-bug.c
deleted file mode 100644
index c3a554d..0000000
--- a/test_programs/clib-bug.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include
-#include
-
-#define LINEBUFLENGTH 180
-
-#define STRIP_LF(str) (str[strlen(str)-1]=0)
-void invert_str(char * in)
-{
-char t;
-while(t=*in)
- {
- *in++=~t;
- }
-}
-
-int main(int i, char *c[])
-{
-char dest_fname[80], in_linebuffer[LINEBUFLENGTH];
-FILE * fileout, * filein;
-
-if(i>1)
- {
- sprintf(dest_fname, "%s.c", c[1]);
-
- fileout=fopen(dest_fname, "w");
- filein =fopen(c[1], "r");
-
- if(fileout && filein)
- {
- fgets(in_linebuffer, LINEBUFLENGTH, filein);
- STRIP_LF(in_linebuffer);
- invert_str(in_linebuffer);
- fputs("char *s_leading=\"", fileout);
- fputs(in_linebuffer, fileout);
- fputs("\";\n", fileout);
-
- fputs("char *s_messages[]={\n", fileout);
-
- while(fgets(in_linebuffer, LINEBUFLENGTH, filein))
- {
- STRIP_LF(in_linebuffer);
- invert_str(in_linebuffer);
-
- fputs("\"", fileout);
- fputs(in_linebuffer, fileout);
- fputs("\",\n", fileout);
- }
- fputs("};\n", fileout);
- fputs("unsigned s_mess_num = sizeof(s_messages)/sizeof(char *);\n", fileout);
- fclose(filein);
- fclose(fileout);
- }
- }
-return 0;
-}
-
-/*
-What's this stuff for ? I use it in SP_Engine to hide the usual bunch of "secret
-messages". As you can see, the strings are simply not'ed .
-This source shows both flaws: fgets() and the missing buffer flush. You can
-change the while() statement with
-
-while(!feof(filein))
- {
- fgets(in_linebuffer, LINEBUFLENGTH, filein);
-....
-
-This way you'll workaround the first problem.
-The second issue manifests itself this way: the last two fputs() followed by the
-fclose() don't do anything: no "};\n" and no "unsigned....." lines are output to
-'fileout'. With SAS, it works perfectly. Converting the source to dos.library
-calls also works perfectly. I wonder if there's some kind of strange interaction
-with the dos/shell updates.
-*/
diff --git a/test_programs/date_test.c b/test_programs/date_test.c
deleted file mode 100755
index a538daf..0000000
--- a/test_programs/date_test.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include
-#include
-#include
-
-int
-main(void)
-{
- time_t tm;
- struct tm *ptr;
- char str[60];
-
- setlocale(LC_ALL, "C");
-
- tm = time(NULL);
- ptr = localtime(&tm);
-
- strftime(str, sizeof(str), "%x\n", ptr);
-
- printf(str);
-
- return 0;
-}
diff --git a/test_programs/fgets_test.c b/test_programs/fgets_test.c
deleted file mode 100644
index 7190b8d..0000000
--- a/test_programs/fgets_test.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * $Id: fgets_test.c,v 1.1.1.1 2004-07-26 16:36:07 obarthel Exp $
- *
- * :ts=4
- */
-
-/****************************************************************************/
-
-#include
-#include
-
-/****************************************************************************/
-
-int
-main(int argc,char ** argv)
-{
- char line[256];
- size_t len;
- FILE * in;
- int i;
-
- for(i = 1 ; i < argc ; i++)
- {
- in = fopen(argv[i],"rb");
- if(in != NULL)
- {
- while(fgets(line,sizeof(line),in) != NULL)
- {
- len = strlen(line);
- while(len > 0 && (line[len-1] == '\n' || line[len-1] == '\r'))
- line[--len] = '\0';
-
- printf("%s\n",line);
- }
-
- fclose(in);
- }
- }
-
- return(0);
-}
diff --git a/test_programs/fstat_stdout_test.c b/test_programs/fstat_stdout_test.c
deleted file mode 100644
index ae511e7..0000000
--- a/test_programs/fstat_stdout_test.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * $Id: fstat_stdout_test.c,v 1.1 2005-05-08 16:27:25 obarthel Exp $
- *
- * :ts=4
- */
-
-#include
-
-#include
-
-#include
-#include
-
-/****************************************************************************/
-
-int
-main(int argc,char ** argv)
-{
- struct stat st;
- int fd;
-
- fd = dup(STDOUT_FILENO);
- if(fd < 0)
- {
- perror("dup(STDOUT_FILENO)");
- return(EXIT_FAILURE);
- }
-
- if(fstat(fd,&st) < 0)
- {
- perror("fstat(fd,&st)");
- return(EXIT_FAILURE);
- }
-
- return(EXIT_SUCCESS);
-}
diff --git a/test_programs/iotest.c b/test_programs/iotest.c
deleted file mode 100644
index 8f5c269..0000000
--- a/test_programs/iotest.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include
-#include
-#include
-
-#define FILE_SIZE 2048
-#define WRITE_SIZE 32
-
-char FileData[FILE_SIZE];
-
-void CreateFile(char *filename)
-{
- FILE *file;
-
- if (file = fopen(filename,"w")) {
- memset(FileData,'0',FILE_SIZE);
- memset(FileData,'-',WRITE_SIZE);
- fwrite(FileData,1,FILE_SIZE,file);
- fclose(file);
- }
-}
-
-void ReadWriteFile(char *filename)
-{
- FILE *file;
-
- if (file = fopen(filename,"r+")) {
- fseek(file,0,SEEK_SET);
- fread(FileData,1,FILE_SIZE,file);
- fseek(file,0,SEEK_SET);
- memset(FileData,'1',WRITE_SIZE);
- fwrite(FileData,1,WRITE_SIZE,file);
- fclose(file);
- }
-}
-
-int main(int argc, char **argv)
-{
- if (argc > 1) {
- CreateFile(argv[1]);
- ReadWriteFile(argv[1]);
- }
-
- return 0;
-}
diff --git a/test_programs/printf_g_test.c b/test_programs/printf_g_test.c
deleted file mode 100644
index 0a9edcb..0000000
--- a/test_programs/printf_g_test.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include
-
-int __debug_level = 2;
-
-int main(void)
-{
- double val = 0.0001;
-
- printf("%g\n", val);
-
- return(0);
-}
diff --git a/test_programs/printf_test.c b/test_programs/printf_test.c
deleted file mode 100644
index 072a84e..0000000
--- a/test_programs/printf_test.c
+++ /dev/null
@@ -1,238 +0,0 @@
-#include
-#include
-#include
-
-double x;
-
-void
-print_format_int(const char * format_string,int parameter1,int parameter2)
-{
- printf("\"");
- printf(format_string,parameter1);
- printf("\"\t");
-
- printf("Value = % d, Format = \"%s\"\n",parameter1,format_string);
-
- printf("\"");
- printf(format_string,parameter2);
- printf("\"\t");
-
- printf("Value = % d, Format = \"%s\"\n",parameter2,format_string);
-}
-
-void
-print_format_char(const char * format_string,char parameter)
-{
- printf("\"");
- printf(format_string,parameter);
- printf("\"\t");
-
- printf("Value = '%c', Format = \"%s\"\n",parameter,format_string);
-}
-
-void
-print_format_string(const char * format_string,const char *parameter1,const char *parameter2)
-{
- printf("\"");
- printf(format_string,parameter1);
- printf("\"\t");
-
- printf("Value = \"%s\", Format = \"%s\"\n",parameter1,format_string);
-
- printf("\"");
- printf(format_string,parameter2);
- printf("\"\t");
-
- printf("Value = \"%s\", Format = \"%s\"\n",parameter2,format_string);
-}
-
-void
-print_format_float(const char * format_string,double parameter1,double parameter2)
-{
- printf("\"");
- printf(format_string,parameter1);
- printf("\"\t");
-
- printf("Value = % f, Format = \"%s\"\n",parameter1,format_string);
-
- printf("\"");
- printf(format_string,parameter2);
- printf("\"\t");
-
- printf("Value = % f, Format = \"%s\"\n",parameter2,format_string);
-}
-
-int
-main(void)
-{
- /*
- unsigned long foo[2] = { 0x41f00000, 0 };
-
- memcpy(&x,foo,sizeof(x));
-
- printf("%.20g\n",x);
- */
-
- print_format_int("%12d",45,-45);
- print_format_int("%012d",45,-45);
- print_format_int("% 012d",45,-45);
- print_format_int("%+12d",45,-45);
- print_format_int("%+012d",45,-45);
- print_format_int("%-12d",45,-45);
- print_format_int("%- 12d",45,-45);
- print_format_int("%-+12d",45,-45);
- print_format_int("%12.4d",45,-45);
- print_format_int("%-12.4d",45,-45);
- print_format_int("%12.0d",45,-45);
-
- printf("\n");
-
- print_format_int("%14u",45,-45);
- print_format_int("%014u",45,-45);
- print_format_int("%#14u",45,-45);
- print_format_int("%#014u",45,-45);
- print_format_int("%-14u",45,-45);
- print_format_int("%-#14u",45,-45);
- print_format_int("%14.4u",45,-45);
- print_format_int("%-14.4u",45,-45);
- print_format_int("%14.0u",45,-45);
-
- printf("\n");
-
- print_format_int("%14o",45,-45);
- print_format_int("%014o",45,-45);
- print_format_int("%#14o",45,-45);
- print_format_int("%#014o",45,-45);
- print_format_int("%-14o",45,-45);
- print_format_int("%-#14o",45,-45);
- print_format_int("%14.4o",45,-45);
- print_format_int("%-14.4o",45,-45);
- print_format_int("%14.0o",45,-45);
-
- printf("\n");
-
- print_format_int("%12x",45,-45);
- print_format_int("%012x",45,-45);
- print_format_int("%#12X",45,-45);
- print_format_int("%#012X",45,-45);
- print_format_int("%-12x",45,-45);
- print_format_int("%-#12x",45,-45);
- print_format_int("%12.4x",45,-45);
- print_format_int("%-12.4x",45,-45);
- print_format_int("%12.0x",45,-45);
-
- printf("\n");
-
- print_format_char("%12c",'*');
- print_format_char("%012c",'*');
- print_format_char("%-12c",'*');
- print_format_char("%12.0c",'*');
-
- printf("\n");
-
- print_format_string("%12s","zap","longish");
- print_format_string("%12.5s","zap","longish");
- print_format_string("%012s","zap","longish");
- print_format_string("%-12s","zap","longish");
- print_format_string("%12.0s","zap","longish");
-
- printf("\n");
-
- print_format_float("%10.2f",12.678,-12.678);
- print_format_float("%010.2f",12.678,-12.678);
- print_format_float("% 010.2f",12.678,-12.678);
- print_format_float("%+10.2f",12.678,-12.678);
- print_format_float("%+010.2f",12.678,-12.678);
- print_format_float("%-10.2f",12.678,-12.678);
- print_format_float("%- 10.2f",12.678,-12.678);
- print_format_float("%-+10.4f",12.678,-12.678);
- print_format_float("%f",12.678,-12.678);
- print_format_float("%10f",12.678,-12.678);
- print_format_float("%10.0f",12.678,-12.678);
-
- printf("\n");
-
- print_format_float("%10.2e",12.678,-12.678);
- print_format_float("%010.2e",12.678,-12.678);
- print_format_float("% 010.2e",12.678,-12.678);
- print_format_float("%+10.2E",12.678,-12.678);
- print_format_float("%+010.2E",12.678,-12.678);
- print_format_float("%-10.2e",12.678,-12.678);
- print_format_float("%- 10.2e",12.678,-12.678);
- print_format_float("%-+10.2e",12.678,-12.678);
- print_format_float("%e",12.678,-12.678);
- print_format_float("%10e",12.678,-12.678);
- print_format_float("%10.0e",12.678,-12.678);
-
- printf("\n");
-
- print_format_float("%10.2a",12.678,-12.678);
- print_format_float("%010.2a",12.678,-12.678);
- print_format_float("% 010.2a",12.678,-12.678);
- print_format_float("%+10.2A",12.678,-12.678);
- print_format_float("%+010.2A",12.678,-12.678);
- print_format_float("%-10.2a",12.678,-12.678);
- print_format_float("%- 10.2a",12.678,-12.678);
- print_format_float("%-+10.2a",12.678,-12.678);
- print_format_float("%a",12.678,-12.678);
- print_format_float("%10a",12.678,-12.678);
- print_format_float("%10.0a",12.678,-12.678);
-
- printf("\n");
-
- print_format_float("%10.2g",12.678,-12.678);
- print_format_float("%010.2g",12.678,-12.678);
- print_format_float("% 010.2g",12.678,-12.678);
- print_format_float("%+10.2G",12.678,-12.678);
- print_format_float("%+010.2G",12.678,-12.678);
- print_format_float("%-10.2g",12.678,-12.678);
- print_format_float("%- 10.2g",12.678,-12.678);
- print_format_float("%-+10.2g",12.678,-12.678);
- print_format_float("%g",12.678,-12.678);
- print_format_float("%10g",12.678,-12.678);
- print_format_float("%10.0g",12.678,-12.678);
-
- printf("\n");
-
- print_format_float("%10.2g",0.678,-0.678);
- print_format_float("%010.2g",0.678,-0.678);
- print_format_float("% 010.2g",0.678,-0.678);
- print_format_float("%+10.2G",0.678,-0.678);
- print_format_float("%+010.2G",0.678,-0.678);
- print_format_float("%-10.2g",0.678,-0.678);
- print_format_float("%- 10.2g",0.678,-0.678);
- print_format_float("%-+10.2g",0.678,-0.678);
- print_format_float("%g",0.678,-0.678);
- print_format_float("%10g",0.678,-0.678);
- print_format_float("%10.0g",0.678,-0.678);
-
- printf("\n");
-
- print_format_float("%10.2g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%010.2g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("% 010.2g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%+10.2G",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%+010.2G",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%-10.2g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%- 10.2g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%-+10.2g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%10g",strtod("infinity",NULL),strtod("-infinity",NULL));
- print_format_float("%10.0g",strtod("infinity",NULL),strtod("-infinity",NULL));
-
- printf("\n");
-
- print_format_float("%10.2g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%010.2g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("% 010.2g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%+10.2G",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%+010.2G",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%-10.2g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%- 10.2g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%-+10.2g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%10g",strtod("nan",NULL),strtod("-nan",NULL));
- print_format_float("%10.0g",strtod("nan",NULL),strtod("-nan",NULL));
-
- return(0);
-}
diff --git a/test_programs/simple.c b/test_programs/simple.c
deleted file mode 100644
index 4b38c53..0000000
--- a/test_programs/simple.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * $Id: simple.c,v 1.1 2005-03-03 15:12:18 obarthel Exp $
- *
- * :ts=4
- */
-
-/****************************************************************************/
-
-int
-main(int argc,char ** argv)
-{
- return(0);
-}
diff --git a/test_programs/simple_sprintf.c b/test_programs/simple_sprintf.c
deleted file mode 100644
index 9919c0f..0000000
--- a/test_programs/simple_sprintf.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * $Id: simple_sprintf.c,v 1.2 2005-05-18 07:22:52 obarthel Exp $
- *
- * :ts=4
- */
-
-#include
-
-/****************************************************************************/
-
-#define __NOLIBBASE__
-#define __USE_INLINE__
-#define __NOGLOBALIFACE__
-
-/****************************************************************************/
-
-#include
-#include
-
-/****************************************************************************/
-
-#include
-#include
-#include
-
-/****************************************************************************/
-
-struct Library * SysBase;
-struct Library * DOSBase;
-
-/****************************************************************************/
-
-#if defined(__amigaos4__)
-
-struct ExecIFace * IExec;
-struct DOSIFace * IDOS;
-
-#endif /* __amigaos4__ */
-
-/****************************************************************************/
-
-BOOL __check_abort_enabled = FALSE;
-
-/****************************************************************************/
-
-int _start(void);
-
-/****************************************************************************/
-
-int
-_start(void)
-{
- char string[80];
-
- SysBase = *(struct Library **)4;
-
- #if defined(__amigaos4__)
- {
- IExec = (struct ExecIFace *)((struct ExecBase *)SysBase)->MainInterface;
- }
- #endif /* __amigaos4__ */
-
- DOSBase = OpenLibrary("dos.library",37);
- if(DOSBase == NULL)
- goto out;
-
- #if defined(__amigaos4__)
- {
- IDOS = (struct DOSIFace *)GetInterface(DOSBase, "main", 1, 0);
- if(IDOS == NULL)
- goto out;
- }
- #endif /* __amigaos4__ */
-
- sprintf(string,"a %s c\n","b");
-
- Write(Output(),string,(LONG)strlen(string));
-
- out:
-
- #if defined(__amigaos4__)
- {
- if(IDOS != NULL)
- DropInterface((struct Interface *)IDOS);
- }
- #endif /* __amigaos4__ */
-
- if(DOSBase != NULL)
- CloseLibrary(DOSBase);
-
- return(0);
-}
-
-/****************************************************************************/
-
-void
-__check_abort(void)
-{
-}
diff --git a/test_programs/smakefile b/test_programs/smakefile
deleted file mode 100644
index 06a7cf0..0000000
--- a/test_programs/smakefile
+++ /dev/null
@@ -1,167 +0,0 @@
-#
-# $Id: smakefile,v 1.8 2005-08-26 12:21:51 obarthel Exp $
-#
-# :ts=8
-#
-
-##############################################################################
-
-.c.o:
- @echo "Compiling $<"
- @sc nover $(CFLAGS) $<
-
-.asm.o:
- @echo "Assembling $<"
- @asm $(AFLAGS) $<
-
-##############################################################################
-
-# You might want to change this to the directory where your operating system
-# header files are stored. On my system, that's "V:include", but you might
-# get lucky with "sc:include" instead, which is the default for SAS/C.
-INCLUDE_DIR = V:include
-#INCLUDE_DIR = sc:include
-
-##############################################################################
-
-# This is where the header files, the startup code and the c.lib files are
-# stored; see below how this prefix is used.
-LIB = /library/
-
-##############################################################################
-
- OPTIMIZE = optimize opttime optschedule optinline
-#DEBUG = debug=line noopt define=CHECK_FOR_NULL_POINTERS
-#DEBUG = debug=line
-#DEBUG = debug=line define=NDEBUG
- DEBUG = debug=sf noopt
-#DEBUG = debug=sf noopt define=CHECK_FOR_NULL_POINTERS
-#PROFILE = profile
- DATA = data=faronly
-#CODE = code=far
- CPU = cpu=060
-MATH = define=IEEE_FLOATING_POINT_SUPPORT math=IEEE
-SUPPORT = define=UNIX_PATH_SEMANTICS define=SOCKET_SUPPORT define=USERGROUP_SUPPORT \
- define=__C_MACROS__
-
-##############################################################################
-
-CFLAGS = \
- resopt \
- nover \
- memorysize=huge \
- idlen=64 \
- commentnest \
- nostackcheck \
- stringmerge \
- errorrexx \
- $(PROFILE) $(OPTIMIZE) $(CODE) $(DATA) $(CPU) $(MATH) \
- $(SUPPORT) $(DEBUG)
-
-AFLAGS = \
- -d -m2
-
-##############################################################################
-
-all: \
- setup \
- test fgets_test iotest sscanf_test printf_test sprintf_test \
- stack_size_test translate_test strtok_test uname simple \
- fstat_stdout_test simple_sprintf date_test \
- cleanup
-
-clean:
- -delete \#?.o \#?.map \
- test fgets_test iotest sscanf_test printf_test sprintf_test \
- stack_size_test translate_test strtok_test uname simple \
- simple_sprintf date_test
-
-##############################################################################
-
-setup:
- @echo "Setting up include: assignment"
- @assign include: $(LIB)include V:include
-
-cleanup:
- @echo "Cleaning up include: assignment"
- @assign include: sc:include
-
-##############################################################################
-
-test: test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-date_test: date_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o date_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-fgets_test: fgets_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o fgets_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-strtok_test: strtok_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o strtok_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-iotest: iotest.o
- @echo "Linking $@"
- @slink $(LIB)startup.o iotest.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-sscanf_test: sscanf_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o sscanf_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-printf_test: printf_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o printf_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-sprintf_test: sprintf_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o sprintf_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-stack_size_test: stack_size_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o stack_size_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-translate_test: translate_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o translate_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-uname: uname.o
- @echo "Linking $@"
- @slink $(LIB)startup.o uname.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-simple: simple.o
- @echo "Linking $@"
- @slink $(LIB)startup.o simple.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-fstat_stdout_test: fstat_stdout_test.o
- @echo "Linking $@"
- @slink $(LIB)startup.o fstat_stdout_test.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-simple_sprintf: simple_sprintf.o
- @echo "Linking $@"
- @slink simple_sprintf.o to $@ lib $(LIB)c.lib addsym \
- map $@.map,fhx fwidth 32 pwidth 32 swidth 32
-
-##############################################################################
-
-mkid:
- mkid \#?.(c|h|asm|i) include/\#?.(c|h|asm|i) include/sys/\#?.(c|h|asm|i)
-
-update:
- mkid -v -u
diff --git a/test_programs/sprintf_test.c b/test_programs/sprintf_test.c
deleted file mode 100644
index 40e92a1..0000000
--- a/test_programs/sprintf_test.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include
-#include
-
-static char buf[256];
-
-void addsomething(void)
-{
- char *p = &buf[strlen(buf)];
- sprintf(p, "yeah");
-}
-
-int main(void)
-{
- buf[0] = '\0';
-
- addsomething();
- printf("1: [%s]\n", buf);
-
- sprintf(buf, "");
-
- addsomething();
- printf("2: [%s]\n", buf);
-
- return (0);
-}
diff --git a/test_programs/sscanf_64.c b/test_programs/sscanf_64.c
deleted file mode 100755
index 5addac6..0000000
--- a/test_programs/sscanf_64.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include
-
-/*extern int __debug_level;*/
-
-int
-main (int argc, char **argv)
-{
- long long int l;
- char * arg;
-
- /*__debug_level = 2;*/
-
- if(argc > 1)
- arg = argv[1];
- else
- arg = "123456789012";
-
- sscanf (arg, "%lld", &l);
- printf ("number = %lld = 0x%llX\n", l, l);
-
- return(0);
-}
diff --git a/test_programs/sscanf_test.c b/test_programs/sscanf_test.c
deleted file mode 100644
index 428fa16..0000000
--- a/test_programs/sscanf_test.c
+++ /dev/null
@@ -1,135 +0,0 @@
-#include
-#include
-#include
-
-int
-main(void)
-{
- int first, second, third, num;
- int n,a,b,c;
- char str[4];
- double f;
-
- a = 0;
- n = sscanf("060206","%x",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- num = sscanf("day-month-year", "%d-%d-%d", &first, &second, &third);
-
- printf("%s:%d:",__FILE__,__LINE__);printf("%d %d %d %d\n", num, first, second, third);
-
- num = sscanf("8-11-2004", "%d-%d-%d", &first, &second, &third);
-
- printf("%s:%d:",__FILE__,__LINE__);printf("%d %d %d %d\n", num, first, second, third);
-
- num = sscanf("", "%d-%d-%d", &first, &second, &third);
-
- printf("%s:%d:",__FILE__,__LINE__);printf("%d %d %d %d\n", num, first, second, third);
-
- num = sscanf("6", "%d %d", &first, &second);
-
- printf("%s:%d:",__FILE__,__LINE__);printf("%d %d\n", num, first);
-
- a = b = c = 0;
- n = sscanf("","%*d,%d,%d",&a,&b,&c);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c);
-
- a = b = c = 0;
- n = sscanf("1,2,3","%*d,%d,%d",&a,&b,&c);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c);
-
- a = b = c = 0;
- n = sscanf("1,2","%*d,%d,%d",&a,&b,&c);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c);
-
- a = b = c = 0;
- n = sscanf("asdf","*d,d,d",&a,&b,&c);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d, c = %d\n",n,a,b,c);
-
- memset(str,0,sizeof(str));
- n = sscanf("asdf","%[abc]",str);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str);
-
- memset(str,0,sizeof(str));
- n = sscanf("asdbbfc","%[abc]",str);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str);
-
- memset(str,0,sizeof(str));
- n = sscanf("","%[abc]",str);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str);
-
- memset(str,0,sizeof(str));
- n = sscanf("abcdef","%[abc]",str);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str);
-
- a = b = c = 0;
- n = sscanf("-","%d",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- a = b = c = 0;
- n = sscanf("-4,-","%d,%d",&a,&b);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, b = %d\n",n,a,b);
-
- memset(str,0,sizeof(str));
- n = sscanf("1 abc","%d %4c",&a,str);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d, str = '%s'\n",n,a,str);
-
- memset(str,0,sizeof(str));
- n = sscanf("abc","%4c",&a,str);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str);
-
- a = 0;
- n = sscanf("17","%i",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- a = 0;
- n = sscanf("017","%i",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- a = 0;
- n = sscanf("0x17","%i",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- a = 0;
- n = sscanf("0x017","%i",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- a = 0;
- n = sscanf("0x017","%x",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- a = 0;
- n = sscanf("0017","%x",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %d\n",n,a);
-
- a = 0;
- n = sscanf("0x80000000","%i",&a);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, a = %u\n",n,a);
-
- memset(str,0,sizeof(str));
- n = sscanf("1,e","%*d,%[abc]",str);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, str = '%s'\n",n,str);
-
- n = sscanf("1","%lf",&f);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, f = '%f' (%f)\n",n,f,atof("1"));
-
- n = sscanf("1234.567","%lf",&f);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, f = '%f' (%f)\n",n,f,atof("1234.567"));
-
- n = sscanf("inf","%lf",&f);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, f = '%f' (%f)\n",n,f,atof("inf"));
-
- n = sscanf("infinity","%lf",&f);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, f = '%f' (%f)\n",n,f,atof("infinity"));
-
- n = sscanf("nan","%lf",&f);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, f = '%f' (%f)\n",n,f,atof("nan"));
-
- n = sscanf("nan(23)","%lf",&f);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, f = '%f' (%f)\n",n,f,atof("nan(23)"));
-
- n = sscanf("0xabc.defp+101","%lf",&f);
- printf("%s:%d:",__FILE__,__LINE__);printf("n = %d, f = '%f' (%f)\n",n,f,atof("0xabc.defp+101"));
-
- return(0);
-}
diff --git a/test_programs/stack_extension_test.c b/test_programs/stack_extension_test.c
deleted file mode 100644
index 589dbb2..0000000
--- a/test_programs/stack_extension_test.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* gcc -mstackextend -o stack_extension_test stack_extension_test.c */
-
-#include
-#include
-
-void
-recursive_function(char *data,int data_size,int level)
-{
- char local_data[10000];
- char line[10];
- int c;
-
- data_size += sizeof(local_data);
- level++;
-
- printf("recursion level=%d, size=%d; continue? ",level,data_size);
-
- fgets(line,sizeof(line),stdin);
- c = toupper(line[0]);
-
- if(c == 'Y')
- recursive_function(local_data,data_size,level);
-}
-
-int
-main(int argc,char ** argv)
-{
- recursive_function(NULL,0,0);
-
- return(0);
-}
diff --git a/test_programs/stack_size_test.c b/test_programs/stack_size_test.c
deleted file mode 100644
index eac5df5..0000000
--- a/test_programs/stack_size_test.c
+++ /dev/null
@@ -1,15 +0,0 @@
-#include
-
-int __stack_size = 60000;
-
-int
-main(void)
-{
- int first, second, num;
-
- num = sscanf("6", "%d %d", &first, &second);
-
- printf("%d %d\n", num, first);
-
- return(0);
-}
diff --git a/test_programs/strtok_test.c b/test_programs/strtok_test.c
deleted file mode 100644
index e684a34..0000000
--- a/test_programs/strtok_test.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * $Id: strtok_test.c,v 1.1 2004-10-25 19:50:33 obarthel Exp $
- *
- * :ts=4
- */
-
-/****************************************************************************/
-
-#include
-#include
-
-/****************************************************************************/
-
-int
-main(int argc,char ** argv)
-{
- char test[256];
- char * one;
- char * two;
- char * three;
-
- strcpy(test," one two three");
-
- strtok(test," ");
-
- one = strtok(NULL," ");
- two = strtok(NULL," ");
- three = strtok(NULL," ");
-
- printf("one = %p '%s'\n",one,one);
- printf("two = %p '%s'\n",two,two);
- printf("three = %p '%s'\n",three,three);
-
- return(0);
-}
diff --git a/test_programs/test.c b/test_programs/test.c
deleted file mode 100644
index 82d6a6b..0000000
--- a/test_programs/test.c
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * $Id: test.c,v 1.6 2005-08-26 12:21:51 obarthel Exp $
- *
- * :ts=4
- */
-
-/****************************************************************************/
-
-#define __USE_INLINE__
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-/****************************************************************************/
-
-/*int __stack_size = 20000;*/
-
-/****************************************************************************/
-
-#if defined(__GNUC__)
-
-void __attribute__ ((constructor))
-constructor_test1(void)
-{
- fprintf(stderr,"constructor #1 called\n");
-}
-
-void __attribute__ ((constructor))
-constructor_test2(void)
-{
- fprintf(stderr,"constructor #2 called\n");
-}
-
-void __attribute__ ((destructor))
-destructor_test1(void)
-{
- fprintf(stderr,"destructor #1 called\n");
-}
-
-void __attribute__ ((destructor))
-destructor_test2(void)
-{
- fprintf(stderr,"destructor #2 called\n");
-}
-
-void __attribute__ ((destructor))
-destructor_test3(void)
-{
- /*DebugPrintF("__iob = 0x%08lx\n",__iob);*/
-
- fprintf(stderr,"destructor #3 called\n");
-}
-
-#endif /* __GNUC__ */
-
-/****************************************************************************/
-
-int foo = 3;
-int bar = 9;
-
-/****************************************************************************/
-
-#if 1
-int
-main(int argc,char ** argv)
-{
- struct timeval tv;
- time_t now;
- struct tm tm;
- int i,j,k;
- long n,r;
- char time_buffer[100];
-
- for(i = 0 ; i < argc ; i++)
- printf("%2d) \"%s\"\n",i,argv[i]);
-
- printf("div %d mod %d\n",foo / 2,bar % 4);
-
- time(&now);
- printf("%s",ctime(&now));
-
- tm = (*localtime(&now));
- strftime(time_buffer,sizeof(time_buffer),"%c",&tm);
- printf("local time = %s\n",time_buffer);
-
- tm = (*gmtime(&now));
- strftime(time_buffer,sizeof(time_buffer),"%c",&tm);
- printf("gmt = %s\n",time_buffer);
-
- tm = (*gmtime(&now));
- strftime(time_buffer,sizeof(time_buffer),"%c %U %W %j",&tm);
- printf("%s\n",time_buffer);
-
- tm.tm_year = 105;
- tm.tm_mon = 0;
- tm.tm_mday = 25;
- tm.tm_hour = 12;
- tm.tm_min = 3;
- tm.tm_sec = 53;
- tm.tm_isdst = -1;
-
- now = mktime(&tm);
-
- tm = (*localtime(&now));
- strftime(time_buffer,sizeof(time_buffer),"%c",&tm);
- printf("2005-01-25 12:03:53 -> local time = %s\n",time_buffer);
-
- tm = (*gmtime(&now));
- strftime(time_buffer,sizeof(time_buffer),"%c",&tm);
- printf("2005-01-25 12:03:53 -> gmt = %s\n",time_buffer);
-
- #if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT)
- {
- const double pi = 3.14159265358979323846;
- const double ten = 10.0;
- const double quarter = 0.25;
- const double thousand = 1000.0;
- const double foo = 4 * atan((double)1);
- float f1;
- double d1;
-
- printf("pi=%3.1f (float)\n",pi);
- printf("pi=%.21e (exponential)\n",pi);
- printf("pi=%g (float/exponential)\n",pi);
-
- printf("ten=%f (float)\n",ten);
- printf("ten=%.21e (exponential)\n",ten);
- printf("ten=%g (float/exponential)\n",ten);
-
- printf("thousand=%f (float)\n",thousand);
- printf("thousand=%.21e (exponential)\n",thousand);
- printf("thousand=%g (float/exponential)\n",thousand);
-
- printf("quarter=%f (float)\n",quarter);
- printf("quarter=%.21e (exponential)\n",quarter);
- printf("quarter=%g (float/exponential)\n",quarter);
-
- printf("foo=%f (float)\n",foo);
- printf("foo=%.21e (exponential)\n",foo);
- printf("foo=%g (float/exponential)\n",foo);
-
- printf("32 bit float = %f\n",4294967295.0);
- printf("32+1 bit float = %f\n",-4294967295.0);
- printf("big float on the edge = %f\n",4294967296.0);
- printf("big float = %f\n",429496729654321.0);
- printf("small float = %f\n",-429496729654321.0);
-
- f1 = d1 = 9;
-
- r = sscanf("13.24 1.324","%f %lf",&f1,&d1);
- printf("r = %ld, f1 = %f, d1 = %f\n",r,f1,d1);
- }
- #endif
-
- #ifndef NDEBUG
- {
- char * allocation;
-
- allocation = malloc(4);
- if(allocation != NULL)
- {
- strcpy(allocation,"....FOO");
- strcpy(allocation-3,"bar");
- }
- }
- #endif /* NDEBUG */
-
- printf("hex 0x%08x\n",1);
- printf("hex 0x%08x\n",1);
- printf("hex 0x%08x\n",2);
- printf("big int %d\n",0x80000000L);
- printf("converted big int %d\n",atoi("-2147483648"));
-
- r = sscanf("1324","%lx",&n);
- printf("r = %ld, n = %ld\n",r,n);
-
- r = sscanf("1234567890","%4d%3d%3d",&i,&j,&k);
- printf("r = %ld, i = %d, j = %d, k = %d\n",r,i,j,k);
-
- /*#if defined(IEEE_FLOATING_POINT_SUPPORT) || defined(M68881_FLOATING_POINT_SUPPORT)
- {
- const char *arg = "100x100";
- float xres = 0, yres = 0;
-
- printf("%d: ", sscanf(arg, "%fx%f", &xres, &yres));
- printf("%.02fx%.02f\n", xres, yres);
- }
- #endif*/
-
- gettimeofday(&tv,0);
- printf("time = %d.%06d\n",tv.tv_sec,tv.tv_usec);
-
- if(argc > 1)
- {
- DIR * dir;
-
- dir = opendir(argv[1]);
- if(dir != NULL)
- {
- struct dirent *d;
- struct stat st;
-
- chdir(argv[1]);
-
- while((d = readdir(dir)) != NULL)
- {
- if(stat(d->d_name,&st) == 0)
- printf("%s%s\n",d->d_name,S_ISDIR(st.st_mode) ? " (dir)" : "");
- }
-
- closedir(dir);
- }
- }
-
- return(0);
-}
-#endif
-
-/****************************************************************************/
-
-#if 0
-
-#define LINEBUFLENGTH 180
-
-#define STRIP_LF(str) (str[strlen(str)-1]=0)
-void invert_str(char * in)
-{
-char t;
-while(t=*in)
- {
- *in++=~t;
- }
-}
-
-int main(int i, char *c[])
-{
-char dest_fname[80], in_linebuffer[LINEBUFLENGTH];
-FILE * fileout, * filein;
-
-if(i>1)
- {
- sprintf(dest_fname, "%s.c", c[1]);
-
- fileout=fopen(dest_fname, "w");
- filein =fopen(c[1], "r");
-
- if(fileout && filein)
- {
- fgets(in_linebuffer, LINEBUFLENGTH, filein);
- STRIP_LF(in_linebuffer);
- invert_str(in_linebuffer);
- fputs("char *s_leading=\"", fileout);
- fputs(in_linebuffer, fileout);
- fputs("\";\n", fileout);
-
- fputs("char *s_messages[]={\n", fileout);
-
- while(fgets(in_linebuffer, LINEBUFLENGTH, filein))
- {
- STRIP_LF(in_linebuffer);
- invert_str(in_linebuffer);
-
- fputs("\"", fileout);
- fputs(in_linebuffer, fileout);
- fputs("\",\n", fileout);
- }
- fputs("};\n", fileout);
- fputs("unsigned s_mess_num = sizeof(s_messages)/sizeof(char *);\n", fileout);
- fclose(filein);
- fclose(fileout);
- }
- }
-return 0;
-}
-
-#endif
diff --git a/test_programs/translate_test.c b/test_programs/translate_test.c
deleted file mode 100644
index 9bf7c7e..0000000
--- a/test_programs/translate_test.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * $Id: translate_test.c,v 1.1.1.1 2004-07-26 16:36:08 obarthel Exp $
- *
- * :ts=4
- */
-
-#include
-#include
-#include
-#include
-
-extern char __current_path_name[];
-
-int
-main(int argc,char ** argv)
-{
- struct name_translation_info nti;
- char * name;
- int error;
- int i;
-
- /*strcpy(__current_path_name,"/absolute_path_name/whatever");*/
-
- for(i = 1 ; i < argc ; i++)
- {
- name = argv[i];
-
- printf("'%s' -> ",name);
-
- error = __translate_unix_to_amiga_path_name(&name,&nti);
- /*error = __translate_amiga_to_unix_path_name(&name,&nti);*/
- if(error == 0)
- printf("'%s'\n",name);
- else
- printf("%s\n",strerror(error));
- }
-
- return(0);
-}
diff --git a/test_programs/uname.c b/test_programs/uname.c
deleted file mode 100644
index 2b72438..0000000
--- a/test_programs/uname.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id: uname.c,v 1.2 2005-03-03 15:12:18 obarthel Exp $
- *
- * :ts=4
- */
-
-/****************************************************************************/
-
-#include
-#include
-#include
-#include
-
-int main(int cnt,char *arg[])
-{
-struct utsname uinfo;
-int Ret=EXIT_SUCCESS;
-
-if(cnt>1 && (!strcmp(arg[1],"-h") || !strcmp(arg[1],"--help"))) {
- printf(
- " -a\tPrint all information.\n"
- " -m\tPrint the machine type.\n"
- " -n\tPrint the node (host) name.\n"
- " -r\tPrint the OS release.\n"
- " -s\tPrint the OS name.\n"
- " -v\tPrint the OS version.\n\n"
- " -h or --help displays this message.\n\n"
- );
-} else {
- if(!uname(&uinfo)) {
- if(cnt<2 || !strcmp(arg[1],"-s")) {
- printf("%s\n",uinfo.sysname);
- } else if(!strcmp(arg[1],"-a")) {
- printf("%s %s %s %s %s\n",uinfo.sysname,uinfo.version,uinfo.release,uinfo.nodename,uinfo.machine);
- } else if(!strcmp(arg[1],"-m")) {
- printf("%s\n",uinfo.machine);
- } else if(!strcmp(arg[1],"-n")) {
- printf("%s\n",uinfo.nodename);
- } else if(!strcmp(arg[1],"-r")) {
- printf("%s\n",uinfo.release);
- } else if(!strcmp(arg[1],"-v")) {
- printf("%s\n",uinfo.version);
- } else {
- printf("Unknown option \"%s\"!\nTry -h or --help.\n",arg[1]);
- Ret=EXIT_FAILURE;
- }
- } else {
- printf("Unknown error!\n");
- }
-}
-
-return(Ret);
-}
-
-/* vi:set ts=3: */
-