(PR#85, PR#86):
For login shells (command line starts with '-'),
If $PATH doesn't start with ':' or contain a space,
change all ":" to " ".
source /etc/glogin
source $HOME/glogin
$HOME/gshrc is sourced afterward for both login and non-login shells.
Don't the print number of hashed commands (from "rehash") until all
initialization is completed.
Only pass exported environment variables to child processes, and prevent child
processes from changing parent's environment.
A null command followed by a redirection of stdout, for example
> /tmp/list
would cause an error message "<garbage> not found" due to incorrect
setting of command buffer pointer.
Filename completion did not work following ">&" or ">" without a trailing
space.
Entabbed all the asm files, saving more than 36,000 bytes.
removed the need for p-string routines, so they were removed. Also
removed alloc256/free256 and associated data structures.
In removing calls, found instances in pwd & prefix commands and prompt
handler where current directory name was assumed to be < 256 characters;
recoded to use a flexible buffer size.
Updated and expanded mmdebug.asm routines that perform error checking on
memory management calls. Added macros ~NEW and ~DISPOSE that invoke either
the real or debug routines.
Fixed call to read $TERM variable's length to fix PR#81.
Removed echo of data when setting value of $< in expandvars (expand.asm).
The characters are echoed as they are typed and do not need to be reprinted
on stdout after carriage-return is typed.
Added error checking to the various flavors of prefix (just like cd):
- Verify 2nd parameter is a valid directory before setting.
- Verify 1st parameter < 32 before displaying or setting.
Set_Variable, Export, etc.) to new ones (ReadVariableGS, SetGS, ExportGS,
etc.) in many places; there are still a few more to change. This change
removed the 256-character limit on strings retrieved by these routines,
such as the value of environment variables. (PR # 9).
At startup do not set $TERM to gnocon if it is already set.
Removed the df command (from builtin.asm).
Defined macro incad to increment a 4-byte address, checking for overflow;
replaced instances of "inc ptr" with "incad ptr".
Changed column offset table to use a 1-word rather than 1-byte entry. This
resolves PR#14 (hash wouldn't print beyond first 256 filenames).
Fixed defect in unalias (alias.asm) where the double quote portion of the
scanner would look for a terminating single quote. This resolves PR#69.
Changed default order for copying files in $PATH dirs into executable list,
so earlier paths files are found first.
Added environment variable flag $OLDPATHMODE to make gsh behave in the old
(backwards order) way when necessary.
Discard duplicate filenames when hashing.
Fix PR#73: directory in $PATH with escaped space (\ ) is not searched.
- fixed a bug introduced in 1.1 where getting an error while
reading the calandar file could cause an infinite loop
- added "ChangeLog" comments for all versions
- added stack checking
- eliminated "pragma stacksize" from the source file; it was too
small (was 512 bytes, currently using 862 bytes) and overriding
the value given on the command line during the GNO base build
process
README, calendar.info:
- Moved the information in these files to the man page.
Makefile, calendar.rez:
- initial checkin
calendar.1:
- cleaned it up a bit and made it conform to the GNO base builds
- added an example
Updates for v1.1 as submitted by Marlin Allred. His comments:
"I compiled calendar with the 2.0.6 libraries and fixed it so
the date could be put anywhere on the line. I also fix[ed] the
program so that tomorrow's and Monday's activity was also being
listed. The man page for calendar was also updated. [...] I did
not update the source file to indicate the changes made."
calendar.desc:
Updated for v1.1.
* When ~ is parsed and next character is a delimiter, make sure contents
of expanded $HOME match the user's delimiter.
* When wildcard patterns don't match, rather than terminating the command
gsh now prints "No match: <pattern> ignored" and passes the command line
minus the unmatched patterns on to be executed.
* Modified echo command so it doesn't add a blank to the end.
* Make "clear" and "source" built-ins non-forked commands. Unforking
"source" allows prefixes to be set in files that are sourced.
* Add loop to parse a single command (removing leading whitespace) before
sending it off to be expanded and executed. Skip null lines and comments
at this level. This allows later commands that depend upon variables set
in the 1st command to work; e.g.: set t_num=1 ; echo "Test number $t_num"
Also fixes problems seen when tab was first character of multiple lines.
* Initialize environment variable flags at startup (for echo, nodirexec,
nonewline, noglob, nobeep, pushdsilent, term, and ignoreeof). Set
flag when env var is set in upper or lower case (formerly, only worked
with lower case).
* Lots of places two-word addresses are incremented using inc, without
checking for overflow into the high-order word. As these are discovered,
they are changed to use adc on both words.
See file UpdateLog for detailed list of changes.
Changed some '0' constants to '0L'. Probably not necessary, but
consider it paranoia from earlier ORCA/C bugs.
sys/syslog.h:
These changes reflect the new implementation for syslog(3) and
friends. The biggest change is that the facility/priority (which
is encoded as a single number) requires 32 bits, so has been moved
from an int value to a long value.
This means that any programs using syslog(3) cannot merely be
relinked, but will need to be recompiled.
This file also contained various constants coded as bitshift
values, like (4<<3). ORCA/C can't handle this in the context
of a constant initializer, so these constants have been resolved
and changed to single hex values. The originals are left in
comments.
sys/uio.h:
- #include <sys/types.h> if it has not already been done.
- change the return value of readv/writev back from size_t to
ssize_t. I don't recall why they were originally changed,
given that they weren't implemented and BSD uses ssize_t.
Did changes for the initial GNO version. This includes:
- prototyping;
- changing the facility/priority value from an int to a
long (we need 32 bits for all the information);
- stack checking code; and
- after doing a freopen() of stdin, change it back to text mode.
Makefile, logger.rez, logger.desc:
New files.
added links for status lists
intro.tex:
added installation chapter for GNO v2.0.6. This isn't finished
yet, but it's a start.
kern.tex:
fixed typo for listen(2)
related.html:
fixed html link.
ignored.pages:
added some ... deleted some
Added direct-page/stack data segment of size 2048 to main.asm. It is
initialized to be filled with "?" characters, so that it can be examined
to see how much space is actually being used.
- expanded the .TH line to have all arguments. If this is not
done, then when building the html versions of the man pages
the page is not recognised as a GNO man page and is ignored.
* Add -f option to control printing of filename
* Rewrote printing of text to allow carriage-return and tab
* Report no version information as warning for both no rVersion and
no version fork
Added explanation of the (minor) changes made in the initial
v2.0.6 checkin, and what still needs to be done.
UpdateLog:
Minor formatting change on some lines.
link.script, mods:
These files are obsolete.