Commit Graph

1080 Commits

Author SHA1 Message Date
tg 01b54f1fd5 I _think_ this implements ${foo/bar/baz} logic (bar is a glob pattern)
todo tomorrow:
• test case (compare with e.g. GNU bash)
• manpage
• version bump

sqchar is a bit ugly, but \/ must be preserved, as we don’t get wdencoded
strings later on in the process (eval.c CSUBST) and I didn’t want to have
an implementation like ${foo: 2: 3} this time
2008-02-27 01:00:10 +00:00
tg 0f1501326b clean up, optimise, comment code 2008-02-26 21:08:33 +00:00
tg 5ea53a15c7 implement “here strings” 2008-02-26 20:43:11 +00:00
tg 9b1504a221 move some constants private to the lexer into its .c file 2008-02-26 20:35:25 +00:00
tg aea6eea7de I hacked on mksh in this year, too 2008-02-25 02:52:20 +00:00
tg 5468e6ee12 now we don’t need more special FPOSIX behaviour any more 2008-02-25 00:58:26 +00:00
tg 8c86fedc2d * lex.c: Don't expand aliases if there's an opening bracket just after
the token. Fixes unreported problem with pdksh reporting syntax error
    on the init scripts that define function named ‘stop’ (clashing
    with an built-in alias.)

 -- Robert Luberda <robert@debian.org>  Sun, 27 Feb 2005 18:36:55 +0100
2008-02-24 22:12:36 +00:00
tg 635bdac720 another one from debian: '.' needs an argument 2008-02-24 15:57:20 +00:00
tg d16fc19335 live code from FOSDEM: add print \xDB and \u20AC, including regression test
agreed bsiegert@
good idea and manpage diff ok'd by some netbsd person sitting next to me
2008-02-24 15:48:43 +00:00
tg 1a5ea7052c sync w/ oksh 2008-02-24 15:20:52 +00:00
tg 7c0db962eb oeps… unbreak 32-bit array indicēs (or rather, wrap of negative indicēs
into the positive high range) on 64-bit platforms: just always wrap and
ignore the result, remove the nonsensical out-of-range check
2007-10-25 16:10:16 +00:00
tg 98f0a3c101 oops 2007-10-25 15:34:57 +00:00
tg 5e02cce898 optimise more :) 2007-10-25 15:34:30 +00:00
tg f9a4d9605c reduce RAM usage 2007-10-25 15:27:54 +00:00
tg 6976ed8bc3 get rid of u_char, u_int, u_long 2007-10-25 15:23:10 +00:00
tg 3b5bbaefcb optimise (struct padding, function→macro, etc.) 2007-10-25 15:19:16 +00:00
tg e56a49adb1 small optimisations 2007-10-25 14:54:00 +00:00
tg f69f2664df spacing 2007-10-25 14:44:45 +00:00
tg 6d2a011a93 be more quiet at test-build time 2007-10-25 14:43:02 +00:00
tg 13676f4914 even better: don't require 64-bit types at all
also, improve wording of Build.sh (passive terms)
2007-10-25 14:26:53 +00:00
tg bbbe959bf2 only check for 64-bit integer types if needed (arc4random support) 2007-10-25 14:18:56 +00:00
tg 2ca968e25f • fix for the pipeline-as-coprocess problem
• bump to mksh R32
2007-10-25 13:51:19 +00:00
tg 84e78bcfb6 clean up 2007-10-25 13:27:00 +00:00
tg 97ba2fabc7 first step towards mksh R32 ☺
allow array indices in the uint32_t range (0‥4294967295) and map negatives
into that range; adjust manual page and regression tests; to be used RSN ☻
2007-10-18 20:32:33 +00:00
tg d0fc6b07e0 • the “check headers for declarations” block must be a compile-time check,
not a link-time check (the only one in mirtoconf, and there are, still,
  no run-time checks, thank goddess)
• NEED_ARC4RANDOM is thusly superfluous
2007-10-15 21:09:51 +00:00
tg e2c2a1c1a0 clean up the CHARMASK mess 2007-10-14 13:43:41 +00:00
tg 80e0de3f98 mention interactive shells processing ~/.mkshrc 2007-10-14 13:43:17 +00:00
tg f8ead8ae27 sync w/ current Build.sh 2007-10-14 13:36:40 +00:00
tg 0b9f22abe6 • we don’t need -D__Plan9__ at the moment
• finish with “exit 0” for good measure
2007-10-14 13:31:01 +00:00
tg 7dad41efe3 fix warning and simplify one case 2007-10-10 11:42:24 +00:00
tg 6903e79b30 improve integer type detection, as some OSes may lack only some types 2007-10-10 11:32:49 +00:00
tg 52b9911ff6 revert the return type of x_e_getc() back from u_char to int
this change broke abortion on failure to read input, was not
needed for gcc warnings and is the fault of Intel’s compiler

this should fix the other busy-loop problem occuring only on
GNU/Linux so far – 10x spaetzle@freewrt.o for pointing me to
the problem; reproduced on my work craptop
2007-10-09 14:50:50 +00:00
tg eab0a407eb implement parallel make (Build.sh -j)
this is for the 16-fold Itanium Ⅱ box with 64 GiB RAM ☻
2007-10-09 14:29:42 +00:00
tg abe075c319 remove the deprecated -DMKSH_DO_MKNOD
instead, use the environment variable
• HAVE_MKNOD=0 ‣ force off
• HAVE_MKNOD=1 ‣ force on
• HAVE_MKNOD=x ‣ force detection (on even if -DMKSH_SMALL)
2007-10-09 14:21:54 +00:00
tg 60dfd05620 enable to use colour escapes framed with ^A by default 2007-10-02 01:03:12 +00:00
tg 307330bee2 be more accurate but terse regarding pipe sequences
somehow, variables don’t propagate up much more often
2007-09-26 19:26:58 +00:00
tg 1086ebe83f • reduce number of readlink(1) / realpath(3) calls by caching the result of
running it on “~/.” (must be a directory) in a global readonly variable
• if readlink fails, use some more or less sane values (no idea what csh(1)
  does in these cases, maybe some feedback here?)
• optimise, while here
2007-09-25 22:36:36 +00:00
tg 9533756d25 use precmd() to do the errorlevel-display dance, so that yofuh can disable
it more easily, and it got an actual use case
2007-09-25 15:48:45 +00:00
tg f632120cc2 by popular request, add
• dirs, pushd, popd like ports/shells/csh (Berkeley C shell)
• precmd, chpwd like ports/shells/zsh (Z shell)
and implement keeping ${DIRSTACK[0]} up to date via chpwd()
instead of doing it on entry of pushd and dirs (so that it
can be used directly)

this is slow compared to earlier, but people seem to want it
2007-09-24 20:30:04 +00:00
tg 491a420607 initial support pcc (somewhat) 2007-09-21 10:46:56 +00:00
tg e6ceaf921b mksh R31c 2007-09-11 18:38:29 +00:00
tg 12e371f1af • scanning for integer types: only scan for these we need,
i.e. uint32_t and uint64_t
• faking <stdint.h>: u_int32_t is not part of ISO C99, so
  do not add it there
• add a test if u_int32_t is declared, for the sake of the
  fucked up OpenBSD standard arc4random(3) declaration, and
  define it to uint32_t if the former type is not available,
  e.g. on Solaris or if we fake <stdint.h>
• fix detection of arc4random_pushb(3) and the prototypes
  if one of the things above applied to our system
• fix detection of arc4random function suite prototypes if
  they are added via an arc4random.c file in the srcdir, and
  copy that file into builddir (if it does not already exist)
  to keep these isolated from each other

based on a real-life bug report by cnuke@ at the Croatian restaurant ☺☻
unbreaks “set ±o arc4random” on Solaris, both SUNpro and GCC
2007-09-11 18:12:16 +00:00
tg 699b908b9d do not use “test … -o …” 2007-09-11 17:49:57 +00:00
tg 88bfbeb0f0 make "test $x = 1" into "test 1 = $x" consistently 2007-09-11 17:47:25 +00:00
tg 0904ad7d89 extend the scope of tests run with -Werror for gcc
otherwise, gcc4 on non-propolice-capable targets doesn’t find __attribute__
2007-09-10 20:16:47 +00:00
tg 3d6f318d90 On Debian GNU/kFreeBSD, gcc version 4.2.1 (Debian 4.2.1-5):
../edit.c: In function ‘x_cf_glob’:
../edit.c:508: warning: ‘words’ may be used uninitialized in this function
2007-09-09 20:03:32 +00:00
tg 49c7194ffa • plug in some Digital Taugtnix support, with help from the IceWM coffee pot
maintainer, or, From: Josef 'Jupp' Schugt <schugt@cip.physik.uni-bonn.de>
• www: sync changelog
2007-09-09 19:24:58 +00:00
tg 957291d4b8 sync: “unset” always returns zero as per SUSv3 2007-09-09 19:18:59 +00:00
tg ccb41ecb4d shut up some gcc warn_unused_result thingies from Fedora 2007-09-09 19:12:10 +00:00
tg 1b7294b564 more cosmetics 2007-09-09 18:31:41 +00:00