summaryrefslogtreecommitdiff
path: root/bin/ksh
AgeCommit message (Collapse)Author
2018-09-29Export the PWD and OLDPWD shell variables as per POSIX.Todd C. Miller
Previously, these would only be exported if they were present in the environment when the shell started. OK deraadt@ anton@ kn@
2018-09-28Contrary to the sh manual, it is possible to modify the PWD variableTodd C. Miller
(and this is allowed by POSIX). OK deraadt@ kn@
2018-07-09Second attempt of the recently backed out variable expansion fix. This time withanton
a missing NULL check added by jca@ which fixes the segfault in the installer. ok jca@ tb@
2018-07-08Back out previous. naddy and rpe found that it breaks the installer withTheo Buehler
install.sub's ${*:+$*} substitution in addel(). ok jca
2018-07-08Fix a bug related to variable expansion referencing multiple read-onlyanton
variables; such as positional arguments. Since global() returns a pointer to static storage for read-only variables, the memory pointed to needs to be copied to prevent any subsequent call to global() to override the previously accessed variable. Bug reported by Andreas Kusalananda Kähäri on bugs@ ok benno@ jca@ tb@
2018-06-25Count $MAILCHECK with the monotonic clock.cheloha
So that ksh still looks for new mail every $MAILCHECK seconds, even if the system clock is rolled backward. ok anton@
2018-06-18Use shl_out->fd instead of STDOUT_FILENO in the call the setupterm().Todd C. Miller
Suggested by anton@
2018-06-18Add clear-screen emacs editing command, currently not bound to aTodd C. Miller
key by default. The shell will query the terminfo database to find the escape sequence to clear the screen. OK deraadt@
2018-05-30point readers to the correct place instead of having themSebastian Benoit
jump around. suggested and ok jmc@, ok jcm@
2018-05-18remove the alias type='whence -v' and replace it withSebastian Benoit
a buildin command, that just calls into c_whence(). This makes type look like the buildin in other shells and makes things like system("'type' 'git'"); work. With lots of suggestions and feedback from anton@, kn@ and jca@. ok kn@ jca@
2018-04-24Keep the time pipeline's stack in tactkn
Revision 1.28 (2008) fixed stack abuse by allocating a new one and effectively clearing it. This broke pipelines such as $ time for i in . ; do : ; done /bin/ksh: : is read only Prompted by tb, OK millert, tb, jca
2018-04-13Count $SECONDS with CLOCK_MONOTONIC.cheloha
Keeps $SECONDS advancing uniformly and independent of wall clock jumps. ok jca@
2018-04-09Support 64 bit integers on 32 bit architectures.Tobias Stoeckmann
No binary change on amd64 and there should be no differences on any other 64 bit architecture either (because long = int64_t). ok cheloha, tb
2018-03-31Fix spacing in brace command list grammar.anton
Initial diff by me, later improved by schwarze@; also ok jmc@
2018-03-16improve markup quality in the cases found by the new "--" style messageIngo Schwarze
2018-03-15Favor usage of __func__ in warning/error messages. Some of them referred to theanton
wrong function and fix the rest for consistency. Diff from Michael W. Bombardieri with some cosmetic cleanup applied. ok benno@ tb@
2018-02-06Clarify that the "bind" built-in command only affects Emacs editingIngo Schwarze
mode, to avoid potential confusion pointed out by andreas dot kahari at icm dot uu dot se on misc@. Patch minimally tweaked based on a comment from jmc@. OK anton@ jca@ jmc@ on the previous version without the tweak.
2018-01-20Remove code that has been disabled since 1999. From Michael W. Bombardieri whoanton
also took the time to provide an excellent explanation on why the code isn't useful on tech@. ok jca@
2018-01-16Introduce internal_warningf() and mark internal_errorf() as noreturnJeremie Courreges-Anglas
This helps tools like scan-build, and follows the example of warningf() and errorf(). ok anton@
2018-01-16Stop constructing the ulimit optstring passed to ksh_getopt() at runtime sinceanton
it's rarely subject to change. While here, unifdef RLIMIT_VMEM. ok jca@
2018-01-16One minor scan-build warningJeremie Courreges-Anglas
emacs.c:1041:2: warning: Value stored to 'cp' is never read
2018-01-15Don't try to open HISTFILE if the variable is unset.Jeremie Courreges-Anglas
str_val returns null, not NULL, if the variable isn't set. The erroneous check means that we later tried to open(""). ok millert@ tb@ anton@ benno@
2018-01-15Stop pretending we support building ksh without EDIT/HISTORY supportJeremie Courreges-Anglas
ok anton@
2018-01-14unifdef BRACE_EXPAND; ok jca@anton
2018-01-13remove unused parameter from the static function print_expansions();Ingo Schwarze
patch from Michael W. Bombardieri <mb at ii dot net>; OK tb@
2018-01-12Some more tweaks to NOTESJeremie Courreges-Anglas
- it's safe to assume that there's no plan to write "an `agent' to execute unreadable/setuid/setgid shell scripts" - the BUG-REPORTS file has been removed - update the entry for FPATH, ksh93 also documents the described behavior - kill entry about octal and hex notation in arithmetic expressions (supported) - typos Feedback from Klemens Nanni
2018-01-08update comments that were left behind in the recent unifdef JOB commitSebastian Benoit
from Klemens Nanni, thanks.
2018-01-08Drop two outdated entriesJeremie Courreges-Anglas
Namely POSIX character classes and tilde expansion within parameter substitution. While here, kill a useless line and fix a typo. From Klemens Nanni
2018-01-08Remove unused "args" param from kb_add(), it is always NULL.Todd C. Miller
OK anton@ jca@
2018-01-08Kill entries that are obviously outdated/out of scopeJeremie Courreges-Anglas
Pointed out by Klemens Nanni who had ~ the same diff
2018-01-07Add proper bounds checking to kb_add(). OK anton@Todd C. Miller
2018-01-06Bring back the sign compare changes, this time with a fix from otto@Todd C. Miller
that fixes the issues seen on hppa. OK deraadt@ otto@
2018-01-05unifdef JOBS supportJeremie Courreges-Anglas
Prompted by a mail from Klemens Nanni, who also had the same diff. ok deraadt@ millert@
2018-01-05Typos in comments: 'it' -> 'if' and 'noityf' -> 'notify'.Theo Buehler
from Klemens Nanni
2018-01-04Back out sign compare changes that appear to cause problems on hppa.Todd C. Miller
Requested by deraadt@
2018-01-01Add WARNINGS=yes to ksh and fix the resulting sign compare warnings.Todd C. Miller
OK tb@
2017-12-30backslash also escapes newlines when quoted;Jason McIntyre
from kshe
2017-12-27Add -Wshadow to Makefile and fix the resulting warnings. Many ofTodd C. Miller
the warnings are due to the use of globals with generic names, specifically "options" and "path". I've renamed "options" to "sh_options" since it holds the shell options and "path" to "search_path". OK jca@ tb@
2017-12-26The hack for /dev/fd support on systems without it was removed aTodd C. Miller
long time ago. Update the comments and replace test_stat() calls with stat() since test_stat() now just calls stat() directly. Also rename the "mode" parameter to "amode" in test_eaccess() to match access(2) and make it clear that this is the access mode and not the file mode. OK jca@
2017-12-18Get rid of a todo by stop declaring variable texec as static and instead zeroinganton
it out prior to continuing down the recursive call chain. Initial diff from Michael W. Bombardieri, later tweaked; ok tb@
2017-12-18Add another pair of home/end key bindings; from Lari Rasku.anton
ok jca@
2017-12-15oops - previous should have been a list item;Jason McIntyre
2017-12-12Document change in the default shell prompts.Theo Buehler
Discussed with and ok jmc
2017-12-12Include hostname in shell prompts by defaultTheo Buehler
With tmux, ssh and vmd, we tend to open shells on many different hosts simultaneously and the default prompts '$ ' and '# ' for {,k}sh as well as '% ' and '# ' for csh become dangerous: it's very easy to issue a command on the wrong host. This can easily be avoided by displaying the hostname in the prompt. Everything beyond "hostname{$,#,%} " is going to be a matter of taste, so we left it at that. If you use an FQDN, only the first part (the output of 'hostname -s') will be printed. requested by and ok deraadt; mostly positive feedback many ok anton, brynet, bcallah and others
2017-12-07Drop the unused second argument from set_prompt(). It used to be used forTheo Buehler
early special casing of ! and !! in the PS1 expansion. This was removed from set_prompt() as part of the implementaion of the character count toggles \[ and \] back in 2004. ok jca
2017-11-27Follow emacs mode and remove the interactive "version" function.Theo Buehler
ok jca, anton (who both had the same diff) and deraadt
2017-11-26Remove the "version" interactive function in emacs mode.Jeremie Courreges-Anglas
Not bound by default and not very useful. ok schwarze@ anton@
2017-11-22Fix some incorrectness related to Emacs editing mode in ksh:anton
- Keep the order of bindings in sync between the manual and implementation - Fix wrongly documented bindings in the manual - Break out commands without a default binding in the manual ok jmc@ tb@
2017-11-21Initialize *histbase to NULL to fix a bus error in emacs editing modeTheo Buehler
found by anton. To reproduce, run "env EDITOR=emacs MALLOC_OPTIONS=J ksh" then press "^[_". ok anton, jca
2017-11-02Switch calloc(3) back to malloc(3). The call to calloc was introducedTheo Buehler
by the plaintext history diff, but the code that may have depended on this was since removed from history.c. None of the code introduced between the plaintext history commit and now depends on calloc(3). This way we can again use malloc.conf(5)'s J option to recognize use of uninitialized memory. ok jca