Commit Graph

92 Commits

Author SHA1 Message Date
tg
83c2ee87f4 • remove strcasestr.c, use home-grown implementation¹, call it stricmp,
and have it return an API-correct const char *
• enhance and stylify comments
• a little KNF and simplifications
• #ifdef DEBUG: replace strchr and strstr with ucstrchr and ucstrstr
  that take and return a non-const char *, and fix the violations
• new cstrchr, cstrstr (take and give const char *)
• new vstrchr, vstrstr (take const or not, give boolean value)
• new afreechk(x) = afreechv(x,x) = if (x1) afree(x2, ATEMP)
• new ksh_isdash(str) = (str != NULL) && !strcmp(str, "-")
• replace the only use of strrchr with inlined code to shrink
• minor man page fixes
• Minix 3 signames are autogenerated with gcc
• rename strlfun.c to strlcpy.c since we don't do strlcat(3) anyway,
  only strlcpy(3), and shorten it
• dot.mkshrc: move MKSH=… down to the export line
  to not disturb the PS1 visual impression ☺
• dot.mkshrc: Lstripcom(): optimise
• bump version

¹) side effect from creating API-correct cstrchr, cstrstr, etc.
   uses goto so it must be better ☻

tested on mirbsd-current via both Makefile and Build.sh
2007-03-04 03:04:28 +00:00
tg
ad05a2414b * edit.c: when tabcompleting a newline to backslash+newline, this
sequence is eaten before the command is called; cought by <TGEN>
  (Thomas E. Spanjaard) via IRC
  fix is to tabcomplete a newline to singlequote+newline+singlequote
* bump version
2007-02-16 17:46:42 +00:00
tg
665fba6dbf bump version 2007-02-07 02:31:06 +00:00
tg
8d696d001e if mksh_small don't even support -T instead of ignoring it 2007-01-26 18:27:34 +00:00
tg
6900d1e3ca history editing seems to work without persistent history sometimes 2007-01-18 16:13:29 +00:00
tg
6d157ffe47 autoscan for persistent history support 2007-01-18 16:05:05 +00:00
tg
7b903e4aa9 header overhaul: replace all #ifdef __OS__ with mirtoconf checks
(except the persistent history one)
2007-01-18 15:50:32 +00:00
tg
21bceac32e autoscan for the correct ed(1) type
XXX amend check_categories with stuff like persist history, etc.
2007-01-18 01:10:55 +00:00
tg
263f518dfd * Build.sh: add -fwrapv to standard CFLAGS, just to be on the safe
side (I don't have capacities to scan 71711 files in MirOS for a
  standards-compliance whack)
* copyright: mention CVS changelogs as place of contributors' name
  and credit information, too
* check.t, sh.h: bump
2007-01-17 01:24:29 +00:00
tg
981a515287 bump vsn 2007-01-15 00:38:20 +00:00
tg
87f681b488 * revert some of the const-warning cleanup which must be done
with different means (reads, tricky magical kludgery)
  YES, THIS BREAKS -rHEAD, I KNOW.
* while here, fix spelling
2007-01-12 10:18:22 +00:00
tg
2f15a11c55 Clean up the signal mess, saves 172 Bytes:
* 'sigseen' in Build.sh goes away
* Signal name existence is checked in this order:
  have our own¹ -> sys_signame[] -> _sys_signame[] -> build our own²
* Signal description existence is checked in this order:
  sys_siglist[] -> _sys_siglist[] -> strsignal() -> NULL³
¹ Predefined list of items, for operating systems where we
  cannot build² them, i.e. Plan 9 and Minix 3 (e.g. no $CPP -dD)
² The usual cpp(1) stuff
³ Changed later, see below
* Make $CPP test dependent on $NEED_MKSH_SIGNAME (others can
  be added here, this is not absolute)
* Make signal name list generation² dependent on $NEED_MKSH_SIGNAME
* Fix check if the generation worked
* Guarantee that sigtraps[*].name and sigtraps[*].mess are valid
  C strings; this makes the code shorter *and* removes a few pos-
  sible nil pointer dereferences
* Embed autoconf'd usages of sys_sig* / strsignal / mksh_sigpairs
  into inittraps()
* Check for each signal 0<=i<=NSIG that
  name is not NULL or "" -> replace with ("%d", i)
  mess is not NULL or "" -> replace with ("Signal %d", i)
  name does not start (case-insensitive) with "SIG" -> name += 3
* In gettrap(), fix check if signal name starts, case-sensitive
  or case-insensitive, depending on need, with "SIG" (bug from millert@)

Other changes:
* Build.sh: ac_test[n]() are documented
* Build.sh: ac_test[n]() can have negative prereqs as well now
* Build.sh: use <<-'EOF' consistently
* bump patchlevel to today
2007-01-12 00:25:40 +00:00
tg
e269c4ed29 if building a small mksh, don't check for persistent history,
since it's not supported anyway; makes regression tests pass there
2007-01-11 02:08:50 +00:00
tg
e960fabf63 expand ~foo to getpwnam("foo")->dir only #if !defined(MKSH_SMALL)
this makes it possible to build a (small) mksh on glibc systems statically
2007-01-11 00:32:31 +00:00
tg
dbf5cdf632 * main.c: prevent segmentation faults on inferiour operating systems
such as Debian GNU/Linux "etch" 4.0 with not installed locale file
  corresponding to the current environmental settings. ばかたち!
2007-01-06 17:08:14 +00:00
tg
17a3fffc26 * main.c: when doing the conversion from strcasecmp (wrongly used)
to strcasestr, it was used in a wrong way (reverse logic error in
  checking its return value), turning to mis-detection of UTF-8 locale.
* sh.h, check.t: bump version
* copyright: bump year
2007-01-03 22:43:48 +00:00
tg
1f6ba50590 this is mksh, benzday edition (2006/12/07)
last code change was on 12/06
2006-12-11 16:09:49 +00:00
tg
c2e79abc08 make mksh compatible to the AT&T ksh spec which says, according to
twkm (from #ksh on freenode), that $RANDOM is always an unsigned
15-bit decimal integer.

(RANDOM << 15 | RANDOM) thusly yields 30 bit, which is still more
than 36^5, so we can use it on the baselife CD to speed things up
2006-11-19 16:43:43 +00:00
tg
62d9cf9fa9 only auto-enable set -o utf8-hack (set -U) for interactive shells 2006-11-12 10:44:42 +00:00
tg
c942031805 mark the test that fails ifdef MKSH_SMALL as category:pdksh too,
so people can skip it if they build a small one
2006-11-10 06:18:05 +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
36ac8dc0f7 get rid of the need of strlcat() altogether (only one use was left) 2006-11-09 15:02:31 +00:00
tg
11fbdb4378 implement autoconf tests for langstuff; sync date 2006-11-08 23:45:47 +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
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
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
bd6d364c22 fix posix-mode-1 test on GNU/Linux:
grep: write error: Bad file descriptor
2006-09-21 22:08:26 +00:00
tg
aeb7922065 fgrep on some slowlarisen doesn't know -q 2006-09-07 13:25:14 +00:00
tg
9c98b4ba54 17:38⎜«hondza:#mksh» so I built new mksh, run tests and got:
17:38⎜«hondza:#mksh» fail ../mksh/check.t:IFS-space-colon-3 (as expected)
17:38⎜«hondza:#mksh» FAIL ../mksh/check.t:integer-base-5
17:39⎜<mirabile:#mksh> interesting
17:40⎜<mirabile:#mksh> why does integer-base-5 fail?
17:40⎜«hondza:#mksh»     j=~3
17:40⎜«hondza:#mksh» ~3 expands to /tmp/3
17:40⎜<mirabile:#mksh> aah, nice catch
17:40⎜<mirabile:#mksh> that must be quoted of course. bug in the test.
17:41⎜<mirabile:#mksh> can you try with j='~3'
17:41⎜<mirabile:#mksh> I'll commit that in an instant then
17:42⎜«hondza:#mksh» yeah, quoting it worked
17:42⎜<mirabile:#mksh> thanks
17:42⎜«hondza:#mksh» :)
2006-08-28 17:42:55 +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
70c5762b38 regression test for file-based persistent history 2006-08-24 20:50:02 +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
79ba3570f0 add a note about why this check can fail 2006-08-18 13:41:09 +00:00
tg
b131ca909d as long as we're using arc4random(3) to generate $RANDOM,
let it be an uint32_t, like nbsh(1)
2006-08-18 13:40:16 +00:00
tg
083f19dc53 * document the feature-not-bug status of pipeline-subshell-1
* fix spelling in regression test
* expand test-stlt-1 by reverse logic, just to make sure
2006-08-14 20:41:21 +00:00
tg
2936b81597 check the last command of a pipeline is REALLY executed in a subshell 2006-08-14 20:36:39 +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
c874727a5c commit a test for posix mode (turning off braceexpand when turned on)
which mksh doesn't currently pass (oksh passes this test)
2006-08-09 20:21:08 +00:00
tg
4661992d5b remove the 'stuff' functionality altogether,
ksh93 doesn't have it, and I don't know, nor
do I care about what "the BRL ^T mini-systat
feature" is.
2006-08-08 20:17:22 +00:00
tg
52357a30be this is mksh R28 (beta)
I think of implementing multiline editing (bash-style) for R28 final,
but other than that, the new features already suffice for a new major
2006-08-02 13:34:03 +00:00
tg
e869099ba3 some thoughts on the two expected-fail tests
change one from bug to feature
2006-08-02 12:38:45 +00:00
tg
bef8651936 * Build.sh: fix manpage generation defaults under Cygwin
* mksh.1: rework prompt ($PS1) section, simplify example,
  point to packaged dot.mkshrc example
* mksh.1: fix description of 'redraw' regarding redrawal
  of prompts longer than one screen line
* all: bump version/date
2006-08-02 11:50:30 +00:00
tg
db107a9b05 bring back the 'version' editing command at "ESC ^V" like AT&T ksh93+r 2006-08-01 12:44:17 +00:00
tg
80c579a758 dates 2006-07-23 14:35:44 +00:00
tg
64598758fb * TNF needs more to silence char subscript warnings (on 3.0-stable)
* bump vsn
2006-07-11 14:51:01 +00:00
tg
f54064509e Certain Sourcemage GNU/Linux people like to build (cast?) as root...
adjust regression testsuite so that it doesn't fail w.r.t. $PS1
2006-07-07 09:52:20 +00:00
tg
bc93d1c90d fix the "char subscripts" issue, bump version 2006-07-03 12:16:31 +00:00
tg
569cf64ff1 * process ~/.mksrc only if FTALKING (i.e. interactive shell)
From: hondza <miscreant@tiscali.cz>
* document that in the manual page myself
* add regression test for that myself
2006-06-21 19:27:35 +00:00