tg
9b8d4023fa
… but since I liked the bonus of having the hval stored so much, merge
...
it with the array index; var.c says that
│ 1244 /* The table entry is always [0] */
so that we can have a special flag and a union which stores hval for
the table index, the array index otherwise (coïncidentally *hint hint*
they have the same size)
2009-08-28 21:01:27 +00:00
tg
bb7a720a00
for now, until we really use kt*() otherwise, ifdef out tablep/hval
2009-08-28 20:38:43 +00:00
tg
4ccdfc8508
much better solution: save tablep and hash value¹ in the struct tbl entry
...
① also saves time during texpand :D
XXX this doesn’t work well with the current indexed-array implementation
2009-08-28 20:30:59 +00:00
tg
7240c843ce
this is a rather stupid diff: give ktsearch/ktenter the capability to
...
return information needed to do a real ktremove instead of the pseudo
ktdelete operation which merely unsets the DEFINED flag to mark it as
eligible for texpand garbage collection (even worse, !DEFINED entries
are still counted)
2009-08-28 19:57:43 +00:00
tg
cd7f3fd836
another int→bool
2009-08-28 19:16:17 +00:00
tg
2cda4dd7bb
this wants a size_t (but ssize_t is enough, since order(size_t) elements
...
is pretty much impossible… I estimate at most a million, but not more
than 16 million, array or keytab entries)
2009-08-28 18:59:01 +00:00
tg
ca1f967a45
• use Jenkins’ one-at-a-time hash for mksh keytabs, as it has
...
much better avalanche and no known funnels
• improve comments
• fix some types (uint32_t for hash, size_t for sizes)
• optimise ktsort()
no functional change, I think
2009-08-28 18:54:01 +00:00
tg
8f937ec71b
shuffle fields of struct tbl around for better padding results
2009-08-28 18:33:05 +00:00
tg
aec424e631
rpmlint says that one scn.c is compiled without rpm’s $CFLAGS
...
it’s probably right, except, maybe it was from a CPP invocation
nevertheless it now will never call $CC without $CFLAGS et al.
2009-08-28 17:37:47 +00:00
tg
345030a578
we need more RCS IDs!
2009-08-27 16:52:12 +00:00
tg
b5b5d905b0
various fixes and optimisations:
...
• ensure unsigned arithmetics is used in the cdb hash
• make the hash functions print their result again
• now we can use the Lb64{en,de}code trick of using stdin if "$*"==""
• optimise the one-at-a-time code for shell
2009-08-27 16:40:08 +00:00
tg
4c1a99da7c
implement Jenkins’ one-at-a-time hash, which has better avalanche
...
behaviour than DJB’s CDB hash (good if using more than one byte)
and probably no funnels
the CDB hash is good for short (5-6 char) ASCII keys though
2009-08-27 16:29:21 +00:00
tg
fb6d8cd895
this is Korn Shell, not C – less ops are always faster than many fast ops
2009-08-27 16:03:52 +00:00
tg
a95b90b79f
add the keyword “colour” to the PS1 example, since it wasn’t found in
...
here in either spelling and smultron@ wanted to see how it’s done
2009-08-14 09:00:30 +00:00
tg
56d51abd1f
need <sys/types.h> for mode_t
2009-08-08 13:52:35 +00:00
tg
0e1266ef90
While mksh R39 builds fine on MirOS #7s8E on my trusty sparc, pgcc 2.95.3
...
throws out quite some warnings – fix most of them except most emitted via
-Wconversion; work around some others; discard bogus warnings.
sync clog
2009-08-08 13:08:53 +00:00
tg
0d750bba12
Linux libc5 has some function protos in weird places
2009-08-01 21:58:06 +00:00
tg
cc4af7b17e
some bit of advice
2009-08-01 21:57:52 +00:00
tg
5cc1722967
ULTRIX, OSF/1, Tru64, Linux 2.0: uint8_t check must come *before* the
...
arc4random.c source file is added to $LIBS (and related checks)
2009-08-01 21:52:02 +00:00
tg
a49d855ab2
ash 0.2 (ecce!GNU/Linux 1.05) chokes on such "long" echo statements...
2009-08-01 21:51:24 +00:00
tg
587822eb4a
*curses* ensure all ‘!’ are quoted, ash 0.2, ecce!GNU/Linux 1.05
2009-08-01 20:58:07 +00:00
tg
ed0299042c
more use of memcpy(3) when we know destination and source sizes
2009-08-01 20:32:45 +00:00
tg
66b4399881
use sizeof
2009-08-01 20:31:47 +00:00
tg
68f9bfa689
if duplicating strings, it’s idiotic to use strlcpy(3) when we know
...
the sizes (checked)
2009-08-01 20:29:25 +00:00
tg
cfa64cebd1
arc4random.c needs uint8_t
...
tested on ULTRIX
2009-08-01 20:29:02 +00:00
tg
0c2555e5c2
utfincptr is a no-op in !UTFMODE, yet I had the “if (UTFMODE)” not only
...
commented out for mksh R38* but also used // denoting a temporary, de-
bugging-only, code exclusion which never should have been in the wild
Caught by ucode cc on DEC ULTRIX (where else?), thanks DEChengst ☻☺
2009-08-01 19:31:02 +00:00
tg
c172cdc922
bump version and rebuild+check on MirBSD
2009-08-01 14:21:30 +00:00
tg
7f5ce5e5ba
oops, fix adding arc4random.c to SRCS
2009-08-01 14:12:13 +00:00
tg
0bd3e05b9c
fix another warning from
...
gcc version 4.5.0 20090718 (experimental) [trunk revision 149777] (Debian 20090718-1)
caused by over-optimisation
2009-08-01 14:07:42 +00:00
tg
848edc698c
sync cleandir target
2009-07-30 19:18:06 +00:00
tg
cb2fd22c38
"official" but unsupported printf-as-builtin code, cleaner API than
...
in the branch; USE_PRINTF_BUILTIN=1 to enable it (Build.sh + Makefile)
2009-07-30 19:11:12 +00:00
tg
918aca2c45
* add __COPYRIGHT
...
* if MirBSD is recent enough, use OS' RCSID macros
2009-07-30 18:42:31 +00:00
tg
758dc5c6fe
* improve CPPFLAGS vs #define handling again: do not touch CPPFLAGS from
...
Build.sh but use 'if defined(PRECOND) && !defined(TOBEDEFINED)'if possible
* for all of the source code, drop annotations "imake style" (if we check
for specific OSes, bad, instead of using mirtoconf checks proper) and
"conditions correct?" (if I'm not entirely sure if that #if catches all
cases and no false positives) where I can see it by grepping immediately
* bump mksh patchlevel
* refresh Makefiles
2009-07-25 21:31:27 +00:00
tg
cfe6688a36
in an interesting piece of self humour, remove the stop and suspend
...
aliases from shells requiring the Arbeitsamt to get a job ;-)
2009-07-25 20:52:41 +00:00
tg
ac148debe8
another duplicate defn avoidance
2009-07-25 20:35:22 +00:00
tg
bcf4080793
improve MKSH_NOPWNAM handling, whether MKSH_SMALL or not; it will cause
...
the entire ~fac/ expansion code to be omitted
2009-07-25 20:26:33 +00:00
tg
5e3aba8b00
simplify MKSH_SMALL => MKSH_CONSERVATIVE_FDS handling
2009-07-25 20:18:13 +00:00
tg
48c84b6c62
avoid a redefinition warning if MKSH_SMALL and MKSH_NOPWNAM both given
2009-07-25 20:17:47 +00:00
tg
0a77903f53
allow overriding -DMKSH_SMALL with HAVE_PERSISTENT_HISTORY=x too
2009-07-25 20:04:09 +00:00
tg
c7b8b512a8
restructure the build system: new ac_ifcpp macro for _reliably_ determining
...
the state of the C Præprocessor at configuration time (simple checks, i.e.
set/unset, set+1/set+!1/unset, and more complex checks), including verbose
output; related cosmetics and variable naming cleanup
2009-07-19 14:59:40 +00:00
tg
45cac320e0
sync more tests with GNU bash2 (MirPorts), bash3 (sid), bash4 (experimental)
2009-07-19 11:14:28 +00:00
tg
0ce8f6fa39
bash4 expands 「echo ~/foo」 even if the ~ is generated by a substitution;
...
add appropriate quotes and mention that bash_4.0-3 (experimental) succeeds
2009-07-19 11:03:18 +00:00
tg
b42582689f
ABI bump to R39: adhere to the future POSIX standard regarding -o nounset;
...
add appropriate regression test (except $_ *is* unset in non-interactive
shells). See the thread at:
http://article.gmane.org/gmane.os.miros.general/8863
2009-07-16 15:06:45 +00:00
tg
e42e775d9b
sync special commands list (XXX why is alias there twice? pdksh.deb too…)
2009-07-08 10:37:24 +00:00
tg
db98d5e964
Nils Weller says to not use nwcc -stackprotect
2009-07-07 20:36:58 +00:00
tg
649eaa7244
nwcc accepts -std=gnu99 (but doesn't process it yet) and -Wall
2009-07-07 18:42:47 +00:00
tg
fca27ce872
fix cast warnings discovered by nwcc, and work around const optimisation
...
related over-zealous warnings by using a non-const integer value
2009-07-07 18:39:51 +00:00
tg
d162ed09a4
remove tack workarounds, for now
2009-07-07 18:38:49 +00:00
tg
30b1c9b2c0
prepare for ACK on GNU/Linux
2009-07-07 18:34:21 +00:00
tg
f349aeab3c
be more robust against things like Debian #535970
...
reverts and rewrites the code from cid 10047C1EBA57E4F4AF0
XXX find out if this is done right
2009-07-06 15:06:25 +00:00