This isn't used and if it were, it wouldn't compile. It calls
`ufn`, which doesn't get compiled in either (unless `C_ONLY`
is defined, which it isn't, and if it were, that wouldn't
compile either due to a missing `StkLim0`).
A subsequent PR will remove `ufn` and related code.
* ForkUnixShell() can be a static procedure
* Restructure SAFEREAD() to be a little clearer
* Convert unixjob type field defines to an enum and fix related unhandled switch cases.
* Use local declaration of loop variables in for-loop, removing register attributes
* Restructure SAFEREAD() to be a little clearer
* Send and receive 2 additional bytes for pid.
* Prefer standard C99 "inline" over "__inline__" for SAFEREAD
* Address older versions of C compiler which don't have __BYTE_ORDER__
* Checking for __GNUC__ is not sufficient to determine if builtins are available.
* Add makefile fragment for 32-bit PowerPC on Mac OSX build, and ignore the build directories.
* Add comment describing use of __BIG/LITTLE_ENDIAN__ definition
Reformat and make use of PTRMASK & swapx() as appropriate.
It's likely that nnewframe() could be reworked to avoid needing
to unconditionally swapx() the result and, like native_newframe()
return the appropriate value as the result.
* Switch from sgtty over to termios. All of the various
separate values that were copied individually before
can now be done at once.
* Fix compilation error with missing `&`.
* Fix compilation error with missing return value.
I haven't tested that this works as I don't know how to do that,
but at least it compiles now.
* `LOGINT` is only useful when `MAIKO_HANDLE_CONSOLE_MESSAGES`
is set.
* Only define some variables if `MAIKO_HANDLE_CONSOLE_MESSAGES`
is set. Flag them as static.
* Remove setting `LOGINT` from the build system as it isn't
needed because we aren't handling console messages.
Rather than having to specify or omit -DBYTESWAP in the Makefile
fragment for each system we can detect whether the system requires
byte swapping based on the __BYTE_ORDER__ C preprocessor definition.
Update CMakeLists.txt to account for this as well.
This was a machine running SunOS 4, which we no longer support.
It had an odd display controller and a compiler with issues that
required workarounds. Those compiler issues aren't an issue in
today's world, so we don't need to keep the workarounds present
for reference.
It had a bit of inline assembly, but that is still present in
other files for other platforms.
The LowerRightX and LowerRightY were calculated as the X and Y coordinates of the
pixel to the right and below the last visible pixel, but are compared with the
last actually visible pixel in the source. They need an extra -1 offset to correct.
Add comments to explain what's going on. Fix the signature of the function to reflect
that the "dummy" passed for the display region is a pointer not an integer.
Some versions of "make" do not predefine make variable RM (looking at you, FreeBSD)
so if it has NOT been defined we define it as "rm -f"
Also, update the cleanup target to use $(RM) rather than refering directly to "rm".
This was only used in commented out code, which is now removed
as well. In that code, it was used to set the function to `GXcopy`,
but it would already have been that as that's the only thing
we set function to.
This also lets us remove the `gcv` code in `xcursor.c`, since
we no longer need those values there.
`EXTA` and `PENDIN` are not POSIX, so let's not use them.
Make notes that the baud rate constant mapping comes from DLTTY
and add comments explaining the holes.
We no longer build a separate `maiko` library that gets linked
into `ldex`. It was the only thing linking it, so now we just
build those files as part of `ldex`.
We only build `ldex` when X11 is requested (which it is by default).
If we add a new display implementation, this structure will support
that by adding a new `ldewhatever` and it will build a new binary
that the `lde` launcher can be updated to support.
We no longer need to run a separate peephole optimization pass over the
compiler generated or hand-coded assembler for SunOS3 and SunOS4 on 68K or SPARC
We remove the preprocessor symbols and code controlled by them
SUN4_OS4_IL
SUN3_OS3_IL
SUN3_OS4_IL
and SUN3_OS3_OR_OS4_IL
This removes a bit of the debug info printing, but other than
that, is pretty close to what it was before.
We also now build it in both the make and cmake build systems.
This code has not worked for a long time. Most systems now maintain
the password entries so that a password is not accessible through the
getpwent() interface. The SUBR that calls this interface may be
removed at a future time.
In the old code (prior to b234064d), this was:
```
LispReadFds &= ~(1 << LispWindowFd);
```
This was inadvertently converted to `FD_SET`, but should have
been `FD_CLR`.
* Correct signedness of 2nd parameter of lispcmp().
* Be clear that comparison of characters in bytecmp is unsigned since GETBYTE returns unsigned char.
* Make bytecmp() and lispcmp() helper functions static and removed from mkatomdefs.h.
* If no BYTESWAP we need to include <string.h> for memcmp()
* Use (uint8_t) rather than (unsigned char) in bytecmp when comparing to GETBYTE()
We need to build `.o` files for the executables separately from
their link step. This lets us have the `CFLAGS` only get used
by the compilation step and not the link step (which uses
`LDFLAGS` or a variant).
This is a prerequisite for doing automatic dependency tracking.
Previously, we had a global `optable`, an alias to it, `table`,
and code to initialize it within `dispatch()`. This code would
initialize the whole thing to either `op_ufn` or `native_check`
and then fill in the entries for the individual opcodes.
Now, we have a function-static `optable` which is statically
initialized and placed (by the compiler) into read-only storage.
This eliminates having generated code within `dispatch()` that
initializes it.
Additionally, it was previously 512 elements long with the second
half of it being all `native_check` entries. We index it with a
byte though, so we only need 256 entries, and we can lose the
`native_check` stuff.
Without those, it wasn't including `devif.h`, which is where
we define `min` and `max`. I make an assumption here that any
new display would be using the current display device support
code.
This was checking that neither `DOS` nor `XWINDOW` were defined,
but this needs a more specific flag for this feature so that it
doesn't get enabled when `!DOS && !XWINDOW`.