• improve comments
• do shave off 20 bytes from c_test() and get rid of the ugly stack variable and double “using” despite not parsing
This commit is contained in:
parent
2fb9df56e4
commit
1ac636670f
64
Build.sh
64
Build.sh
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.491 2011/11/26 17:56:29 tg Exp $'
|
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.492 2011/12/02 22:55:45 tg Exp $'
|
||||||
#-
|
#-
|
||||||
# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||||
# Thorsten Glaser <tg@mirbsd.org>
|
# Thorsten Glaser <tg@mirbsd.org>
|
||||||
@ -22,17 +22,7 @@ srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.491 2011/11/26 17:56:29 tg Exp $'
|
|||||||
# People analysing the output must whitelist conftest.c for any kind
|
# People analysing the output must whitelist conftest.c for any kind
|
||||||
# of compiler warning checks (mirtoconf is by design not quiet).
|
# of compiler warning checks (mirtoconf is by design not quiet).
|
||||||
#
|
#
|
||||||
# Environment used: CC CFLAGS CPPFLAGS LDFLAGS LIBS NOWARN NROFF
|
# Used environment documentation is at the end of this file.
|
||||||
# TARGET_OS TARGET_OSREV
|
|
||||||
# Feature selectors: USE_PRINTF_BUILTIN
|
|
||||||
# CPPFLAGS recognised: MKSH_MIDNIGHTBSD01ASH_COMPAT MKSH_CONSERVATIVE_FDS
|
|
||||||
# MKSH_DONT_EMIT_IDSTRING MKSH_NO_DEPRECATED_WARNING
|
|
||||||
# MKSH_DISABLE_DEPRECATED MKSH_ASSUME_UTF8 MKSH_A4PB
|
|
||||||
# MKSH_SMALL MKSH_BINSHREDUCED MKSH_NOPROSPECTOFWORK
|
|
||||||
# MKSH_UNEMPLOYED MKSH_NO_LIMITS MKSH_DEFAULT_TMPDIR
|
|
||||||
# MKSH_DEFAULT_EXECSHELL MKSHRC_PATH MKSH_CLS_STRING
|
|
||||||
# MKSH_CLRTOEOL_STRING MKSH_NO_EXTERNAL_CAT
|
|
||||||
# MKSH_NOPWNAM MKSH_S_NOVI
|
|
||||||
|
|
||||||
LC_ALL=C
|
LC_ALL=C
|
||||||
export LC_ALL
|
export LC_ALL
|
||||||
@ -1183,7 +1173,7 @@ else
|
|||||||
#define EXTERN
|
#define EXTERN
|
||||||
#define MKSH_INCLUDES_ONLY
|
#define MKSH_INCLUDES_ONLY
|
||||||
#include "sh.h"
|
#include "sh.h"
|
||||||
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.491 2011/11/26 17:56:29 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.492 2011/12/02 22:55:45 tg Exp $");
|
||||||
int main(void) { printf("Hello, World!\n"); return (0); }
|
int main(void) { printf("Hello, World!\n"); return (0); }
|
||||||
EOF
|
EOF
|
||||||
case $cm in
|
case $cm in
|
||||||
@ -1785,3 +1775,51 @@ $e
|
|||||||
$e Run the regression test suite: ./test.sh
|
$e Run the regression test suite: ./test.sh
|
||||||
$e Please also read the sample file dot.mkshrc and the fine manual.
|
$e Please also read the sample file dot.mkshrc and the fine manual.
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
|
: <<'EOD'
|
||||||
|
|
||||||
|
=== Environment used ===
|
||||||
|
|
||||||
|
==== build environment ====
|
||||||
|
CC default: cc
|
||||||
|
CFLAGS if empty, defaults to -xO2 or +O2
|
||||||
|
or -O3 -qstrict or -O2, per compiler
|
||||||
|
CPPFLAGS default empty
|
||||||
|
LDFLAGS default empty; added before sources
|
||||||
|
LIBS default empty; added after sources
|
||||||
|
[Interix] default: -lcrypt (XXX still needed?)
|
||||||
|
NOWARN -Wno-error or similar
|
||||||
|
NROFF default: nroff
|
||||||
|
TARGET_OS default: $(uname -s || uname)
|
||||||
|
TARGET_OSREV [QNX] default: $(uname -r)
|
||||||
|
|
||||||
|
==== feature selectors ====
|
||||||
|
USE_PRINTF_BUILTIN 1 to include (unsupported) printf(1) as builtin
|
||||||
|
===== general format =====
|
||||||
|
HAVE_STRLEN ac_test
|
||||||
|
HAVE_STRING_H ac_header
|
||||||
|
HAVE_CAN_FSTACKPROTECTORALL ac_flags
|
||||||
|
|
||||||
|
==== cpp definitions ====
|
||||||
|
MKSHRC_PATH "~/.mkshrc" (do not change)
|
||||||
|
MKSH_A4PB force use of arc4random_pushb
|
||||||
|
MKSH_ASSUME_UTF8 (0=disabled, 1=enabled; default: unset)
|
||||||
|
MKSH_BINSHREDUCED if */sh or */-sh, enable set -o sh
|
||||||
|
MKSH_CLRTOEOL_STRING "\033[K"
|
||||||
|
MKSH_CLS_STRING "\033[;H\033[J"
|
||||||
|
MKSH_CONSERVATIVE_FDS fd 0-9 for scripts, shell only up to 31
|
||||||
|
MKSH_DEFAULT_EXECSHELL "/bin/sh" (do not change)
|
||||||
|
MKSH_DEFAULT_TMPDIR "/tmp" (do not change)
|
||||||
|
MKSH_DISABLE_DEPRECATED disable code paths scheduled for later removal
|
||||||
|
MKSH_DONT_EMIT_IDSTRING omit RCS IDs from binary
|
||||||
|
MKSH_MIDNIGHTBSD01ASH_COMPAT set -o sh: additional compatibility quirk
|
||||||
|
MKSH_NOPROSPECTOFWORK disable jobs, co-processes, etc. (do not use)
|
||||||
|
MKSH_NOPWNAM skip PAM calls, for -static on eglibc, Solaris
|
||||||
|
MKSH_NO_DEPRECATED_WARNING omit warning when deprecated stuff is run
|
||||||
|
MKSH_NO_EXTERNAL_CAT omit hack to skip cat builtin when flags passed
|
||||||
|
MKSH_NO_LIMITS omit ulimit code
|
||||||
|
MKSH_SMALL omit some code, optimise hard for size (slower)
|
||||||
|
MKSH_S_NOVI disable Vi editing mode (default if MKSH_SMALL)
|
||||||
|
MKSH_UNEMPLOYED disable job control (but not jobs/co-processes)
|
||||||
|
|
||||||
|
EOD
|
||||||
|
4
check.t
4
check.t
@ -1,4 +1,4 @@
|
|||||||
# $MirOS: src/bin/mksh/check.t,v 1.497 2011/11/30 21:34:10 tg Exp $
|
# $MirOS: src/bin/mksh/check.t,v 1.498 2011/12/02 22:55:46 tg Exp $
|
||||||
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: bksl-nl.t,v 1.2 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
# $OpenBSD: history.t,v 1.5 2001/01/28 23:04:56 niklas Exp $
|
||||||
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
# $OpenBSD: read.t,v 1.3 2003/03/10 03:48:16 david Exp $
|
||||||
@ -28,7 +28,7 @@
|
|||||||
# http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/bin/test/regress.sh?rev=HEAD
|
# http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/bin/test/regress.sh?rev=HEAD
|
||||||
|
|
||||||
expected-stdout:
|
expected-stdout:
|
||||||
@(#)MIRBSD KSH R40 2011/11/30
|
@(#)MIRBSD KSH R40 2011/12/02
|
||||||
description:
|
description:
|
||||||
Check version of shell.
|
Check version of shell.
|
||||||
stdin:
|
stdin:
|
||||||
|
26
funcs.c
26
funcs.c
@ -38,7 +38,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.200 2011/11/30 21:34:12 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.201 2011/12/02 22:55:48 tg Exp $");
|
||||||
|
|
||||||
#if HAVE_KILLPG
|
#if HAVE_KILLPG
|
||||||
/*
|
/*
|
||||||
@ -2697,7 +2697,7 @@ c_mknod(const char **wp)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
test(1) accepts the following grammar:
|
test(1) roughly accepts the following grammar:
|
||||||
oexpr ::= aexpr | aexpr "-o" oexpr ;
|
oexpr ::= aexpr | aexpr "-o" oexpr ;
|
||||||
aexpr ::= nexpr | nexpr "-a" aexpr ;
|
aexpr ::= nexpr | nexpr "-a" aexpr ;
|
||||||
nexpr ::= primary | "!" nexpr ;
|
nexpr ::= primary | "!" nexpr ;
|
||||||
@ -2713,9 +2713,9 @@ c_mknod(const char **wp)
|
|||||||
|
|
||||||
binary-operator ::= "="|"=="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"|
|
binary-operator ::= "="|"=="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"|
|
||||||
"-nt"|"-ot"|"-ef"|
|
"-nt"|"-ot"|"-ef"|
|
||||||
"<"|">" # rules used for [[ .. ]] expressions
|
"<"|">" # rules used for [[ ... ]] expressions
|
||||||
;
|
;
|
||||||
operand ::= <any thing>
|
operand ::= <anything>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* POSIX says > 1 for errors */
|
/* POSIX says > 1 for errors */
|
||||||
@ -2778,19 +2778,13 @@ c_test(const char **wp)
|
|||||||
case 3:
|
case 3:
|
||||||
ptest_three:
|
ptest_three:
|
||||||
swp = te.pos.wp;
|
swp = te.pos.wp;
|
||||||
/* skip lhs, without evaluation */
|
/* inside knowledge shows ptest_getopnd never evaluates */
|
||||||
(*te.getopnd)(&te, TO_NONOP, false);
|
/* skip lhs, without evaluation; assign with */
|
||||||
|
lhs = (*te.getopnd)(&te, TO_NONOP, true);
|
||||||
if ((op = (*te.isa)(&te, TM_BINOP))) {
|
if ((op = (*te.isa)(&te, TM_BINOP))) {
|
||||||
const char *rhs;
|
/* test lhs op rhs */
|
||||||
|
rv = (*te.eval)(&te, op, lhs,
|
||||||
/* read rhs, with evaluation */
|
(*te.getopnd)(&te, op, true), true);
|
||||||
rhs = (*te.getopnd)(&te, op, true);
|
|
||||||
/* back up to lhs */
|
|
||||||
te.pos.wp = swp;
|
|
||||||
/* re-read lhs, with evaluation */
|
|
||||||
lhs = (*te.getopnd)(&te, op, true);
|
|
||||||
/* finally run the test of lhs op rhs */
|
|
||||||
rv = (*te.eval)(&te, op, lhs, rhs, true);
|
|
||||||
goto ptest_out;
|
goto ptest_out;
|
||||||
}
|
}
|
||||||
/* back up to lhs */
|
/* back up to lhs */
|
||||||
|
4
sh.h
4
sh.h
@ -151,9 +151,9 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EXTERN
|
#ifdef EXTERN
|
||||||
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.506 2011/11/30 21:34:15 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.507 2011/12/02 22:55:49 tg Exp $");
|
||||||
#endif
|
#endif
|
||||||
#define MKSH_VERSION "R40 2011/11/30"
|
#define MKSH_VERSION "R40 2011/12/02"
|
||||||
|
|
||||||
#ifndef MKSH_INCLUDES_ONLY
|
#ifndef MKSH_INCLUDES_ONLY
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user