tg
62d9cf9fa9
only auto-enable set -o utf8-hack (set -U) for interactive shells
2006-11-12 10:44:42 +00:00
tg
56ffbf7e70
hand-sorted ctypes/chtypes upgrade; use table-driven where they make
...
sense and preprocessored otherwise; unify the logic
saves 144t 1i and lots of cpp(1) time, as well as improves readability
2006-11-10 07:52:04 +00:00
tg
feb7dddd44
* use only macros for ctype stuff any more
...
XXX one of these uses a gcc extension, ok for now tho
* don't include <ctype.h> any more at all
* don't try nl_langinfo in small mode, just check locale
saves 171 .text, 4 .data, 256 .bss, 1 import
2006-11-10 07:18:58 +00:00
tg
35b30679c7
since so many internal things hardcode 'C' locale anyway,
...
use own is{digit,lower,upper} macros that go via byte ranges
doesn't affect utf-8 hack because these only operate on single bytes anyway
saves 224t
2006-11-10 06:53:27 +00:00
tg
b323a22b59
use tolower_() and toupper_() macros (if not available, our quick 'C' ones)
...
76t 8d 2i
2006-11-10 06:45:28 +00:00
tg
a199d23dfa
use setresuid(2) and friends instead, saves 88t 4d 1i
...
XXX revisit this if we encounter systems without at least
XXX one of setresuid, setresgid, setgroups - only tested on BSD
2006-11-10 06:27:09 +00:00
tg
2342fa1242
don't use setreuid(2) etc. stuff, like OpenBSD
...
only affects suid shell scripts, which are *ugh* anyway,
and I really have no idea what the old code did, when, why, etc.
262t 16d 2i
2006-11-10 06:16:25 +00:00
tg
493ad928e3
if MKSH_SMALL, disable persistent history code as well (like on Solaris,
...
where it can't work anyway), and fix that code to shrink
saves 2071t 20d 5i
2006-11-10 05:23:14 +00:00
tg
d10dd31b9a
correct a few protos and comments
...
saves 4 .text bytes and my nerves
2006-11-10 03:45:57 +00:00
tg
f8e7fdbb71
use qsort(3) instead of rolling our own
...
saves 284 in .text, no added import since we already use qsort(3) once
2006-11-10 03:23:50 +00:00
tg
c60dbdc6cb
* change EXECSHELL to /bin/sh (we can override it via environment anyway,
...
and this is a sensible choice instead of ourselves)
* move this stuff from sh.h into exec.c where it belongs
* simplify set -o stuff
saves 8 bytes
2006-11-10 01:44:40 +00:00
tg
cd9202835c
cosmetics
2006-11-10 01:25:22 +00:00
tg
ebf58f6b42
if !MKSH_SMALL, str_save() can be a macro
2006-11-10 01:19:17 +00:00
tg
273ca89019
* check.t: add new regression test "typeset-padding-1" according to TFM
...
* edit.c: remove debug stuff again; next time better use shl.c functions ;)
* sh.h: add format attributes to a few shf functions
* histrap.c, var.c: fix format string mistakes
* main.c, sh.h: error_prefix and warningf take bool not int
* misc.c: make chvt() stuff use shf_* functions
* misc.c: rewrite the TIOCSTTY stuff to be better integrated in mksh,
since it originally was an external patch
* misc.c: chvt() no longer fails if e.g. chown fails due to e.g. R/O / fs
* var.c: fix typeset padding for right-justified zero-filled
2006-11-10 01:13:52 +00:00
tg
320f503391
get rid of ulton() - a joke
...
saves 32 bss, but adds 84 text oO
2006-11-09 23:55:52 +00:00
tg
88bf6422d9
shrink chtypes array down to 8 bit
...
saves 72 text and a lot bss
2006-11-09 23:39:16 +00:00
tg
3c33cbcecc
don't compile mknod(1) builtin if MKSH_SMALL
...
saves 1037 text, 20 data (on i386)
2006-11-09 22:18:10 +00:00
tg
2345d8b72b
more getconf/confstr fixes
2006-11-09 22:11:08 +00:00
tg
d4ca2c9141
simplify getconf and confstr stuff
2006-11-09 22:08:08 +00:00
tg
bc215df211
make a few functions static that should be, and optimise a little
2006-11-09 21:20:49 +00:00
tg
c43e701025
optional (#ifdef MKSH_SMALL) saving of 364 more bytes of .text
...
intended e.g. for FreeWRT
2006-11-09 21:00:13 +00:00
tg
35776a9d4d
using a function instead of a macro saves 896 bytes of .text
2006-11-09 20:53:42 +00:00
tg
617950554f
missed these
2006-11-09 15:03:56 +00:00
tg
36ac8dc0f7
get rid of the need of strlcat() altogether (only one use was left)
2006-11-09 15:02:31 +00:00
tg
2b375abef1
fix SIGSEGV, we are passed NULL sometimes
2006-11-09 14:58:27 +00:00
tg
a1bfc17aa0
optimise and, ahem… plug…
2006-11-09 14:19:31 +00:00
tg
39057dd592
add the new function utf_ptradj() which does the same as utf_widthadj()
...
except it doesn't return a value and is much cheaper (no internal con-
version to UCS-2, just range checking on the multibytes)
2006-11-09 00:39:27 +00:00
tg
0307ecb492
* instead of including <sys/cdefs.h> (not in Solaris), we hope <sys/types.h>
...
includes it for us
* autoconf-test for <sys/param.h> (not in SUSv3) existence
2006-11-09 00:11:39 +00:00
tg
d8de18df87
can use short form here
2006-11-08 23:50:47 +00:00
tg
11fbdb4378
implement autoconf tests for langstuff; sync date
2006-11-08 23:45:47 +00:00
tg
0e0782c856
first attempts at more autoconf'isation
2006-11-08 23:23:41 +00:00
tg
5e2e209d51
make this R29(beta), mksh -U turn on (or setlocale), and document.
2006-11-05 17:01:47 +00:00
tg
a373d2e7ab
first part of utf-8 ability in mksh, already works pretty well
2006-11-05 15:31:37 +00:00
tg
1547b04e66
add new "set -o utf8-hack", currently no effect
...
set automatically on startup if we have locale functions (on MirOS)
2006-11-05 12:11:14 +00:00
tg
02c14f2a62
use the same idstring stuff everywhere, makes sense
2006-10-03 19:46:14 +00:00
tg
fe3ada7780
sync with src/sys/sys/cdefs.h,v 1.11
2006-09-30 02:23:22 +00:00
tg
7ae68e335c
* avoid unaligned memory access causing SIGBUS on IA-64 (Itanic)
...
(incidentally, the information xor'd now is more random)
only affects non-arc4random targets
* bump version
2006-09-30 02:13:21 +00:00
tg
851e2d1bdb
pasto: forgot these
2006-09-21 22:05:46 +00:00
tg
3dd0c521d0
use the easier __RCSID() etc. stuff from current <sys/cdefs.h>
2006-09-21 22:03:23 +00:00
tg
33ddf84c63
bump version
...
our regression tests:
Total failed: 1 (as expected)
Total passed: 213
the IFS testsuite:
# tests 6856 passed 5192 failed 1664
2006-08-28 01:40:54 +00:00
tg
695503952f
use an autoconf-like approach to check for arc4random(3)
...
after gecko2 told me his mac recently has it and I found
out that Interix has it in -lcrypt and soon -lmirmake (:
2006-08-26 20:30:27 +00:00
tg
456bd584a3
bump version (hey, after all, I fixed the persistent history*!)
...
and that after submitting it to the FSF/UNESCO directory...
*) regression test for that? how?
2006-08-24 20:35:40 +00:00
tg
4fac7ec24b
* remove redundancy
...
* integrate compat.h, version.h into sh.h (dependency trick didn't work anyway)
* mention #ksh in mksh(1) since the founder (twkm) said it's on topic too
(don't remove mention of #mksh despite it's usually empty because of control)
2006-08-22 22:49:38 +00:00
tg
93ab969fdc
compat.h does have the status of a system header though...
2006-08-22 22:22:07 +00:00
tg
5b2be8517f
save more whitespace and make it compile again (oops)
2006-08-22 22:21:20 +00:00
tg
a87ff74cbd
* version.h doesn't need an RCS ID
...
* compat.h does, add it to misc.c, always include it, move if NEED_COMPAT
* major whitespace cleanup in sh.h
2006-08-22 22:16:04 +00:00
tg
11282be59d
compat.h has a section 'extra headers', move inttypes.h there
2006-08-16 00:00:24 +00:00
tg
98c4dc04a1
interix doesn't have <inttypes.h>, openbsd no <stdint.h>, the old chaos.
...
so add <inttypes.h> only for the one platform which needs it today, APE.
2006-08-15 23:54:09 +00:00
tg
1e313c282c
minor cleanups from the porting work
2006-08-15 23:43:30 +00:00
tg
1100be9300
re-implement "set -o posix" which doesn't do much ;)
...
but turns off 'braceexpand' when turned on as side effect,
just like oksh/pdksh.
document "set -o sh" too.
2006-08-09 20:44:16 +00:00
tg
790c312e9f
fix the prompt redrawal routines for multi-line prompts, prompts
...
with embedded newline (\n), and multi-line prompts with embedded
newlines. single-line prompts should be not affected; prompts with
embedded carriage return (\r) should be fixed by this as well.
also fix prompt_redraw comment (can't remove the variable though,
since it's required if the shell inserts a newline after the prompt
herself).
tested on cygwin and interix
2006-08-02 11:33:37 +00:00
tg
ce18e01f2c
move promptlen from edit.c into lex.c
2006-08-01 14:10:25 +00:00
tg
c504a42ac1
(partial) sync with openbsd (and fix after them),
...
gives us a better wrapping prompt and a manpage wording cleanup
2006-08-01 14:09:20 +00:00
tg
711496f6fb
move version definition into extra file
2006-08-01 12:22:26 +00:00
tg
ab231f3595
new conditional: HAVE_ARC4RANDOM_PUSH
2006-06-21 19:35:38 +00:00
tg
7672b9b346
apply some fixes from OpenBSD and don't apply some others
...
but sync RCS IDs for easier future adaption:
* Simplify savefd() by removing the "noclose" flag and make noclose
behavior the default. Almost all uses of savefd() are followed
by an implicit or explicit close.
* fix typos
* might as well make ksh_getopt() match real getopt(), ie. get rid of that
stupid EOF concept that was never true. adobriyan@gmail
* use SEEK_* for lseek()
* fix lint comments, no functional changes
* remove excessive optimization; from adobriyan@gmail
* only santa checks things twice; from adobriyan@gmail
* Interpret zero-filled numbers as decimal; PR 4213; from Alexey Dobriyan
2006-05-10 18:54:13 +00:00
tg
5726a50ab9
* shuffle around _*_SOURCE definitions (sh.h -> Build.sh), per OS
...
* Tonnerre Lombard reports that Solaris 10 needs _BSD_SOURCE
2006-03-19 18:06:32 +00:00
tg
94ee3b388a
sync with OpenBSD: remove unused code and vars; name clash with libc
...
compiles under MirBSD
2006-01-29 20:04:54 +00:00
tg
95cfad6339
* only have one $MirOS RCS ID per file to shrink source size
...
(this is an exception from normal use)
* bump to R26
2005-11-22 18:40:44 +00:00
tg
f38d8299f9
Change interpretation of '\"' in here documents with substitution
...
according to SUSv3 and other modern shells (POSIX allows both).
Idea for the patch (add another lex state) from OpenBSD, but the
implementation differs slightly (and is better in quality).
Also add two testcases (/bin/sh passes both, old mksh only one),
and document the change in the manual page. Sync RCS IDs with OBSD.
2005-11-22 18:36:20 +00:00
tg
9b97d72d5e
* move _all_ #include stuff into sh.h
...
* sort out #include stuff which isn't necessary on MirOS into compat.h
2005-10-25 19:53:29 +00:00
tg
df22a0fb1b
Shuffle some stuff around to the compat functions and add glue
2005-10-25 19:46:11 +00:00
tg
2f9687c58a
follow OpenBSD and add mknod as mksh builtin (mknod <file> p acts as mkfifo)
...
but write a good chunk of that code myself (better structured, better error
handling, more gotos, less function calls, int -> bool)
passes all tests on mirbsd; this will become mksh R25 once tested on other
supported OSes
2005-10-21 12:41:56 +00:00
tg
7ee8296628
our test(1) promises we can do string1 < string2, and
...
our /bin/test uses mksh... so we pee (literally) on
POSIX and don't accept < and > only for [[ ... ]] operator
2005-10-08 19:31:00 +00:00
tg
0651ba008e
^V now is quote, not version, even in emacs mode. (From OpenBSD.)
...
Also, the "version" command got removed in its entirety.
Shaves off another global variable, even.
2005-08-02 12:35:27 +00:00
tg
ee7992988b
* move <sys/param.h> include to sh.h
...
* fix compilation and invocation of test suite with whitespace in
the pathnames for real, this time
* clean up (especially whitespace)
2005-07-07 23:27:52 +00:00
tg
74a942550d
it's said newer NetBSDen have arc4random(3)
2005-07-05 22:00:20 +00:00
tg
76c700b3a6
get rid of $PGRP
...
get rid of special bourne-shell emulating mode
2005-07-04 12:34:24 +00:00
tg
3fb44287d4
mksh now does not look at $EDITOR and $VISUAL any more to determine
...
the editing mode; default is emacs (vi and gmacs off).
mksh also defaults to emacs-usemeta=OFF now.
2005-07-04 12:07:41 +00:00
tg
37d4f1e874
first step for GNU/Cygwin support
2005-06-24 15:36:57 +00:00
tg
521da70fc8
* major revamp of build system
...
* whitespace cleanup; junk comment removal
* syndicate debian/copyright file from my port (shrinks sh.h)
* bump to R23
2005-06-08 21:51:22 +00:00
tg
428e27331e
forgot a #endif
2005-05-26 23:12:09 +00:00
tg
dc22f4da3a
* fix logic for srand() I got reversed
...
* introduce HAVE_ARC4RANDOM tristate (0/1/undef) and fill it appropriately
* NetBSD(R) joins the list of OSes which don't have arc4random
2005-05-26 23:01:30 +00:00
tg
cd54ef8f51
* fix emacs [ tabcompletion bug
...
XXX it's probably a bug in vi mode too, it just doesn't show
* bring manual page and reality into closer sync'd state
* sort ulimits
2005-05-25 23:31:08 +00:00
tg
d7c3f0a066
make setuid/setgid scripts and access() work again
...
by reverting some OpenBSD and applying some Debian diff
2005-05-25 13:46:02 +00:00
tg
16fb264efc
aaaand: Interix.
2005-05-23 16:23:19 +00:00
tg
37d3bd813d
no persistent history (flock missing), no arc4random, etc. for Solaris
2005-05-23 15:36:56 +00:00
tg
dc5614a091
missing preprocessor defines on Solaris
2005-05-23 15:24:43 +00:00
tg
b8a06e0fbe
* Solaris misses sig_t
...
* our gmatch becomes gmatchx, it's extended against sh(C)
2005-05-23 15:18:17 +00:00
tg
8266c126ac
* add definition of __RCSID if not yet existant (GNU/Linux)
...
* add declarations of strlcpy and strlcat (for GNU/Linux, again)
* always include <sys/resource.h>
* some more compile / warning fixes
2005-05-23 14:19:14 +00:00
tg
cd7b8bd79b
Add mirbsdksh R21, which was developed in a temporary external CVS repo-
...
sitory whose ChangeLog follows. mksh R21 is licenced under the MirOS li-
cence, shown in "sh.h", and a two-clause UCB-style licence by Marc Espie
as shown in "alloc.c".
This executable is a fair bit smaller and shorter than our /bin/ksh that
it is designed to eventually replace (as /bin/sh hardlink), with the old
/bin/ksh to completely vanish. It is still in beta testing though, and I
don't think it will compile on other operating systems.
mksh R21 is a completely new port, bringing together the OpenBSD-current
/bin/ksh, the MirOS-current /bin/ksh and the older mksh R20 (which still
was portable, ocvs-based).
2005-05-23 03:06:10 +00:00
tg
d8d708aa45
* un-hook bin/ksh, usr.bin/xmlwf and lib/libexpat from the build
...
- expat as discussed with bsiegert@ today on the phone
- ksh as announced earlier on the lists
* un-hook lib/libexpat from make includes
* remove /usr/include/{,open}ssl upgrade workaround from includes/Makefile
* nuke old bin/ksh
* nuke libexpat and xmlwf
2005-10-21 11:33:15 +00:00
tg
a90702a5a1
Initial revision
2005-03-06 15:42:55 +00:00
tg
6625949936
solaris doesn't have sig_t
2004-12-31 19:54:16 +00:00
tg
130367d617
further cleanup
2004-12-31 19:37:03 +00:00
tg
2b6df533b9
Use the BSD sig_t instead of homegrown handler_t
...
Remove KSH_SA_FLAGS
From: Todd C. Miller <millert@cvs.openbsd.org>
sanitise signal handling a bit (will be revisited)
2004-12-31 17:29:28 +00:00
tg
8f06ee02a7
Use _PATH_BSHELL instead of hardcoding "/bin/sh"
...
From: Todd C. Miller <millert@cvs.openbsd.org>
2004-12-31 17:08:29 +00:00
tg
0114af375d
Use stdbool.h instead of rolling our own bools.
...
From: Todd C. Miller <millert@cvs.openbsd.org>
XXX #ifndef HAVE_STDBOOL_H ?
2004-12-28 22:32:09 +00:00
tg
cddaa62a46
Flags set in signal handlers should be volatile sig_atomic_t
...
From: Todd C. Miller <millert@cvs.openbsd.org>
2004-12-28 22:28:01 +00:00
tg
6354a66090
always BRACE_EXPAND
...
no binary change
2004-12-18 19:27:21 +00:00
tg
cbeac44097
* unifdef EDIT, VI, EMACS, HISTORY
...
* optimise away 0 ||
no binary changes
2004-12-18 19:17:10 +00:00
tg
4c4a9323f8
unifdef: KSH
...
no binary change
2004-12-18 18:58:32 +00:00
tg
6d8b225141
make array_index_calc static and don't limit
...
array indices (well, to 2^31-1, but that's
for integer reasons only)
2004-12-18 18:39:10 +00:00
tg
c34add61ff
un-OS/2 (sorry)
...
no binary change
2004-12-13 19:05:09 +00:00
tg
97d9512149
bump to mksh R19
2004-12-10 18:12:32 +00:00
tg
7920708324
Initial revision
2004-12-10 18:12:29 +00:00
tg
c53499b45e
* Build.sh: bail out early if build failure
...
* Build.sh: fix manpage name
* chvt.c: Solaris:
chvt.c:57: `TIOCSCTTY' undeclared (first use in this function)
* chvt.c: GNU/Linux:
/tmp/ccrAeq0h.o(.text+0x5e): In function `chvt':
: warning: warning: revoke is not implemented and will always fail
* sh.h: let it only change to .section .comment ifdef __ELF__
2004-11-10 19:58:06 +00:00
tg
53f8234d04
sync with ksh's idea of __attribute__(())
2004-11-10 17:31:38 +00:00
tg
d3e9042073
sync with my idea of __RCSID()
2004-11-10 17:29:55 +00:00
tg
ee2d2797a4
an array shalt have 4096 entries max.
2004-10-28 16:49:13 +00:00
tg
b2de14e57c
run GNU protoize
...
protect header files
nuke some dead code
regenerate configure script
let silly code die
2004-10-28 11:53:44 +00:00
tg
75e25d6e50
de-register, de-inline, de-__P
2004-10-28 11:11:19 +00:00
tg
ecdd4d5568
unify spacing of RCS IDs
2004-09-21 11:57:17 +00:00
tg
60cde7c92e
another PATH_MAX
2004-09-21 11:37:29 +00:00
tg
44d697ade6
* Build.sh: fix a bug preventing build on MirOS #7-stable (sparc)
...
* rnd.c, sh.h: style
2004-08-27 14:55:45 +00:00
tg
3bdb721a73
merge
2004-08-27 14:08:36 +00:00
tg
6c8eabf72e
polish, mop up whitespace, etc.
...
passes regressions on MirOS
2004-05-24 19:56:25 +00:00
tg
712a3cc064
overhaul the random stuff ;-)
2004-05-24 19:06:55 +00:00
tg
b051c6e857
* merge OpenBSD 3.5-current
...
* retain local changes to ls and md5 (md4, hint hint)
* fix up ksh (limits - we still have 4096 bytes input buffer;
random usage)
* fix manpages (mdX, ksh)
2004-05-23 12:47:01 +00:00
tg
5be773aea6
* merge in OpenBSD
...
* rename cd34.iso to cdrom8.iso
XXX gzip/compress on ramdisk in MirOS should still
XXX be able to compress and not only decompress
XXX files. must be revisited
2003-12-23 13:41:51 +00:00
tg
434b10fb3c
Merge OpenBSD-current
2003-09-25 20:59:37 +00:00
tg
f31bf084e3
new non-standard mode: -o emacs-usemeta (on by default)
...
from naddy@, thanks
2003-06-26 18:26:21 +00:00
tg
019f31cd5c
merge CVS import stuff
2003-05-22 14:06:07 +00:00
tg
9a4f47c081
increase max line size from 1024 to 4096, hopefully
2003-04-12 14:32:14 +00:00
tg
80609f6010
This commit was generated by cvs2svn to compensate for changes in r2, which
...
included commits to RCS files with non-trunk default branches.
2003-03-22 17:35:03 +00:00