Added additional optional debug code. A version of gsh with the memory
checking debug code turned on is available as an exe file.
Lock and unlock the hash mutual exclusion key in when disposing of the
hash table.
Allow five digits rather than four when printing the process number in
the ps command.
Piping the output of a command into a non-executable file no longer
causes gsh to hang.
- Initial checkin. Explains what the various file here are.
TO.DO:
- moved to 'devel' subdirectory
archives:
- Initial checkin. Shows breakdown of distribution disks.
headers:
- made some updates. This is probably really out of date.
new.syscalls:
- deleted. This information is now in the kernel reference manual,
so avoid duplication.
status.bin:
- updated entries for ed, asml, assemble, cmpl, col, calendar.
status.lib:
- updated entries for routines vsyslogmt, syslogmt, vis, and unvis.
- updated entries for files syslog.c and vis.c
status.usrman:
- Initial checkin. This lists the status of the files in the
src/gno/usr.man directory hierarchy.
update.usrman:
- Initial checkin. A script to help keep status.usrman current.
Initial checkin. Explains what the various file here are.
adding.utils:
Initial checkin. Discusses stuff necessary to add utils to the
base distribution.
doing.builds:
Initial checkin. Explains how to create the base builds.
eliminate oldlog.c from the build. old_syslog() was only used by
syslog2.asm, and inspection showed it to be likely buggy anyway.
It was missing a field in the passed data structure, and using
it would cause any long-running daemon to run out of memory if
didn't crash first. For now I'm leaving oldlog.c where it is
rather than doing a 'cvs rm'.
syslog.c:
Major changes...
- The facility/priority has gone back to being of type int vice long;
the original change was a red herring.
- The current syslog implementation will now talk to Phil's original
syslogd.
- The busy wait in sendPort now forces a context switch.
syslog2.asm:
- I commented the sources while figuring out what Phil's syslogd
was doing. I may was well check in those comments even though
this file is not currently used.
- fixed the save name and the 'mcopy' directive
vis.c, unvis.c:
- initial checkin
- The facility/priority has gone back to being of type int vice long;
the original change was a red herring.
- The current syslog implementation will now talk to Phil's original
syslogd, so only list the version zero protocol structure.
Fixed several mutual exclusion problems, including a particularly nasty
one that would cause gsh to loop forever inside the memory manager. (You
could identify this one by the "BRA (-23)" at the bottom of the infinite
loop.)
Fixed the string vector print routine to properly handle all numbers of
entries in the hash table. Previously, it would always print duplicate
entries if there were < 6 commands hashed, and would sometimes print
duplicates (depending on previous contents of an internal table) for
other numbers of commands.
gsh would wait on background processes started from an exec file
(executed, not sourced). Now the exec file does not wait on the process,
but the background process is not associated with the parent shell after
the exec file terminates.
Made gsh globbing work more like csh: if none of the requested patterns
are found, print "No match" and exit.
At startup, if /etc/glogin, $HOME/glogin, or $HOME/gshrc does not exist,
don't report a "file not found" error message. (PR#100)
out of 13/RInclude instead of /src/gno/build.tools. This implies that
builddate.rez has to have been previously installed in 13/RInclude; this
is done by the 'install' and 'release' targets in /src/gno/build.tools.
- initial checkin. Needed for 'install' and 'release' targets.
dmake.startup, startup.mk:
- When dmake finds a startup.mk in the current directory, it
parses that file after the system startup.mk. In this case they're
one and the same. While this shouldn't be a problem, it's
causing dmake to crash. See PR#99.
The workaround was to rename startup.mk in this directory to
dmake startup. It is renamed back to its proper name in the
recipes to the install and release targets.
Fixed several memory leaks.
Prefix command without any parameter (to list the prefixes) would cause
memory corruption when prefix had been invoked previously with a parameter.
Sourcing a command file from within an exec file could cause gsh to
wait forever, depending upon the commands executed in the sourced file.
All built-in commands return appropriate status: 1 for error, 0 for no error.
Fixed several cases where incorrect value was set in $status.
Added usage strings for tset, hash, commands, and history.
Fixed memory corruption error when edit command had no parameters.
When system() is called with pointer = NULL or with a command string that
causes gsh to detect an error (e.g., incompatibility with | and <), return
status of -1. In other cases, return process's status rather than always 0.
System would crash when output from a non-forked command was piped to
another process; for example clear | cat > /tmp/list
Fixed defect introduced in version 2.0d5: when a background job completed
while gsh was waiting for command line input, gsh would print a bogus error
message and quit.
from both Phil Vandry's v1 syslogd (which is part of init), and the
BSD version. It still needs some work, but it can log to a file
or to console at the moment.
Until syslogd v1 is removed from init, you should ensure that you're
not logging to the same file from both versions of syslogd.
- Added the sprintmt and vsprintmt routines. These are thread
safe variants of the sprintf and vsprintf routines. Note that
they don't support as many formatting options as stdio does.
gnomisc.c:
- Define the global variable "__progname". This is initially
set to "(unknown)", but is properly initialized to the return
value of __prognameGS() the first time that function is called.
- added thread safe functions syslogmt and vsyslogmt.
- minor changes to sendPort to make it thread safe
- moved variadic wrappers to the end of the file so that the
command line optimize/debug levels get propogated through
the rest of the source during compilation.
- changed the mechanism by which sendPort waits for it's buffer
to be released by syslogd
- since ctime(3) is not thread safe, add a flag to the
SyslogDataBuffer_t that tells syslogd(8) to add the appropriate
time stamp. This is easier than implementing thread safe
versions of ctime and localtime.