mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
This takes another step towards cleaning up the build system. We now do not even pretend to be theoretically compatible with pre-1989 K&R C compilers or with C++ compilers. In practice, this had already been broken for many years due to bit rot. Commit46593a89
already removed the license handling enormity that depended on proto, so now we can cleanly remove it altogether. But we do need to leave some backwards compatibility stubs to keep the build system compatible with older AST code; it should remain possible to build older ksh versions with the current build system (the bin/ and src/cmd/INIT/ directories) for testing purposes. So as of now there is no more __MANGLE__d rubbish in your generated header files. This is only about a quarter of a century overdue... This commit also includes a huge amount of code cleanup to remove thousands of unused K&R C fallbacks and other cruft, particularly in libast. This code base should now be a little easier to understand for people who are familiar with a modern(ish) C standard. ratz is now also removed; this was a standalone and simplified 2005 version of gunzip. As of6137b99a
, none of our code uses it, even theoretically. And the real g(un)zip is now everywhere. src/cmd/INIT/proto.c, src/cmd/INIT/ratz.c: - Removed. COPYRIGHT: - Remove zlib license; this only applied to ratz. bin/package, src/cmd/INIT/package.sh: - Related cleanups. - Unset LC_ALL before invoking a new shell, respecting the user's locale again and avoiding multibyte character corruption on the command line. src/cmd/INIT/proto.sh: - Add stub for backwards compatibility with Mamfiles that depend on proto. It does nothing but pass input without modification and is now installed as the new arch/*/bin/proto by src/cmd/INIT/Mamfile. src/cmd/INIT/iffe.sh: - Ignore the proto-related -e (--package) and -p (--prototyped) options; keep parsing them for backwards compatibility. - Trim the macros passed to every test to their standard C versions, removing K&R C and C++ versions. These are now considered to be for backwards compatibility only. src/cmd/INIT/iffe.tst: - Remove proto(1) mangling code. By the way, iffe can be regression-tested as follows: $ bin/package use # set up environment in a child shell $ regress src/cmd/INIT/iffe.tst $ exit # leave package environment src/cmd/INIT/make.probe, src/cmd/INIT/probe.win32: - Remove code to handle C++. src/lib/libast/features/common: - As in iffe.sh above, trim macros designed for compatibility with C++ and ancient C compilers to their standard C versions and comment that they are for backwards compatibility with AST code. This is needed to keep all the old ast and ksh code compiling. src/cmd/ksh93/sh/init.c, src/cmd/ksh93/sh/name.c: - Clarify libshell ABI compatibility function versions of macros. A "proto workaround" comment in the original code mislead me into thinking this had something to do with the removed proto(1), but it's unrelated. Call the workaround macro BYPASS_MACRO instead. src/cmd/ksh93/include/defs.h: - sh_sigcheck() macro: allow &sh as an argument: parenthesise shp. src/cmd/ksh93/sh/nvtype.c: - Remove unused nv_mkstruct() function. (re:d0a5cab1
) **/features/*: - Remove obsolete iffe 'set prototyped' option. **/Mamfile: - Remove all references to the ast/prototyped.h header. - Remove all use of the proto command. Simply copy instead. *** 850-ish source files: *** - Remove all '#pragma prototyped' directives. - Remove all C++ compat code conditional upon defined(__cplusplus). - Remove all use of the _ARG_ macro, which on standard C expands to its argument: #define _ARG_(x) x (on K&R C, it expanded to nothing) - Remove all use of _BEGIN_EXTERNS_ and _END_EXTERNS_ macros (empty on standard C; this was for C++ compatibility) - Reduce all #if __STD_C (standard code) #else (K&R code) #endif blocks to the standard code only, without use of the macro. - Same for _STD_ macro which seems to have had the same function. - Change all instances of 'Void_t' to standard 'void'.
This commit is contained in:
parent
3785a0685c
commit
a1f5c99204
869 changed files with 1853 additions and 14292 deletions
54
COPYRIGHT
54
COPYRIGHT
|
@ -144,57 +144,3 @@ bsd package general copyright notice
|
||||||
# Bill Joy #
|
# Bill Joy #
|
||||||
# #
|
# #
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
zlib package general copyright notice
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
# #
|
|
||||||
# This software is part of the zlib package #
|
|
||||||
# Copyright (c) 1995-2012 Jean-loup Gailly and Mark Adler #
|
|
||||||
# #
|
|
||||||
# This software is provided 'as-is', without any express or implied #
|
|
||||||
# warranty. In no event will the authors be held liable for any #
|
|
||||||
# damages arising from the use of this software. #
|
|
||||||
# #
|
|
||||||
# Permission is granted to anyone to use this software for any #
|
|
||||||
# purpose, including commercial applications, and to alter it and #
|
|
||||||
# redistribute it freely, subject to the following restrictions: #
|
|
||||||
# #
|
|
||||||
# 1. The origin of this software must not be misrepresented; #
|
|
||||||
# you must not claim that you wrote the original software. If #
|
|
||||||
# you use this software in a product, an acknowledgment in the #
|
|
||||||
# product documentation would be appreciated but is not #
|
|
||||||
# required. #
|
|
||||||
# #
|
|
||||||
# 2. Altered source versions must be plainly marked as such, #
|
|
||||||
# and must not be misrepresented as being the original #
|
|
||||||
# software. #
|
|
||||||
# #
|
|
||||||
# 3. This notice may not be removed or altered from any source #
|
|
||||||
# distribution. #
|
|
||||||
# #
|
|
||||||
# This software is provided "as-is", without any express or implied #
|
|
||||||
# warranty. In no event will the authors be held liable for any damages#
|
|
||||||
# arising from the use of this software. #
|
|
||||||
# #
|
|
||||||
# Permission is granted to anyone to use this software for any purpose,#
|
|
||||||
# including commercial applications, and to alter it and redistribute i#
|
|
||||||
# freely, subject to the following restrictions: #
|
|
||||||
# #
|
|
||||||
# 1. The origin of this software must not be misrepresented; you must n#
|
|
||||||
# claim that you wrote the original software. If you use this softwa#
|
|
||||||
# in a product, an acknowledgment in the product documentation would#
|
|
||||||
# be appreciated but is not required. #
|
|
||||||
# #
|
|
||||||
# 2. Altered source versions must be plainly marked as such, and must n#
|
|
||||||
# be misrepresented as being the original software. #
|
|
||||||
# #
|
|
||||||
# 3. This notice may not be removed or altered from any source #
|
|
||||||
# distribution. #
|
|
||||||
# #
|
|
||||||
# CONTRIBUTORS #
|
|
||||||
# #
|
|
||||||
# Jean-loup Gailly #
|
|
||||||
# Mark Adler #
|
|
||||||
# #
|
|
||||||
########################################################################
|
|
||||||
|
|
153
bin/package
153
bin/package
|
@ -108,7 +108,7 @@ command=${0##*/}
|
||||||
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
0123) USAGE=$'
|
0123) USAGE=$'
|
||||||
[-?
|
[-?
|
||||||
@(#)$Id: '$command$' (ksh 93u+m) 2021-12-15 $
|
@(#)$Id: '$command$' (ksh 93u+m) 2021-12-22 $
|
||||||
]
|
]
|
||||||
[-author?Glenn Fowler <gsf@research.att.com>]
|
[-author?Glenn Fowler <gsf@research.att.com>]
|
||||||
[-author?Contributors to https://github.com/ksh93/ksh]
|
[-author?Contributors to https://github.com/ksh93/ksh]
|
||||||
|
@ -252,13 +252,6 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
file (\bMamfile\b). A Mamfile contains a portable makefile description
|
file (\bMamfile\b). A Mamfile contains a portable makefile description
|
||||||
written in a simple dependency tree language using indented
|
written in a simple dependency tree language using indented
|
||||||
\bmake\b...\bdone\b blocks.]
|
\bmake\b...\bdone\b blocks.]
|
||||||
[+?Most component C source is prototyped. If \b$CC\b (default value
|
|
||||||
\bcc\b) is not a prototyping C compiler then \b'$command$' make\b runs
|
|
||||||
\bproto\b(1) on portions of the \b$PACKAGEROOT/src\b tree and places
|
|
||||||
the converted output files in the \b$PACKAGEROOT/proto/src\b tree.
|
|
||||||
Converted files are then viewpathed over the original source.
|
|
||||||
\bproto\b(1) converts an ANSI C subset to code that is compatible with
|
|
||||||
K&R, ANSI, and C++ dialects.]
|
|
||||||
[+?All scripts and commands under \b$PACKAGEROOT\b use \b$PATH\b
|
[+?All scripts and commands under \b$PACKAGEROOT\b use \b$PATH\b
|
||||||
relative pathnames (via the \bAST\b \bpathpath\b(3) function); there
|
relative pathnames (via the \bAST\b \bpathpath\b(3) function); there
|
||||||
are no embedded absolute pathnames. This means that binaries generated
|
are no embedded absolute pathnames. This means that binaries generated
|
||||||
|
@ -271,7 +264,7 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
|
|
||||||
[+SEE ALSO?\bautoconfig\b(1), \bcksum\b(1), \bexecrate\b(1), \bexpmake\b(1),
|
[+SEE ALSO?\bautoconfig\b(1), \bcksum\b(1), \bexecrate\b(1), \bexpmake\b(1),
|
||||||
\bgzip\b(1), \bmake\b(1), \bmamake\b(1), \bpax\b(1),
|
\bgzip\b(1), \bmake\b(1), \bmamake\b(1), \bpax\b(1),
|
||||||
\bpkgadd\b(1), \bpkgmk\b(1), \bproto\b(1), \bratz\b(1), \brpm\b(1),
|
\bpkgadd\b(1), \bpkgmk\b(1), \brpm\b(1),
|
||||||
\bsh\b(1), \btar\b(1), \boptget\b(3)]
|
\bsh\b(1), \btar\b(1), \boptget\b(3)]
|
||||||
'
|
'
|
||||||
case $* in
|
case $* in
|
||||||
|
@ -321,7 +314,6 @@ tab=" "
|
||||||
verbose=0
|
verbose=0
|
||||||
AUTHORIZE=
|
AUTHORIZE=
|
||||||
DEBUG=
|
DEBUG=
|
||||||
PROTOROOT=-
|
|
||||||
SHELLMAGIC=-
|
SHELLMAGIC=-
|
||||||
|
|
||||||
unset FIGNORE BINDIR DLLDIR ETCDIR FUNDIR INCLUDEDIR LIBDIR LOCALEDIR MANDIR SHAREDIR 2>/dev/null || true
|
unset FIGNORE BINDIR DLLDIR ETCDIR FUNDIR INCLUDEDIR LIBDIR LOCALEDIR MANDIR SHAREDIR 2>/dev/null || true
|
||||||
|
@ -507,13 +499,6 @@ DETAILS
|
||||||
Mamfile contains a portable makefile description written in a simple
|
Mamfile contains a portable makefile description written in a simple
|
||||||
dependency tree language using indented make...done blocks.
|
dependency tree language using indented make...done blocks.
|
||||||
|
|
||||||
Most component C source is prototyped. If $CC (default value cc) is not a
|
|
||||||
prototyping C compiler then package make runs proto(1) on portions of the
|
|
||||||
$PACKAGEROOT/src tree and places the converted output files in the
|
|
||||||
$PACKAGEROOT/proto/src tree. Converted files are then viewpathed over the
|
|
||||||
original source. proto(1) converts an ANSI C subset to code that is
|
|
||||||
compatible with K&R, ANSI, and C++ dialects.
|
|
||||||
|
|
||||||
All scripts and commands under $PACKAGEROOT use $PATH relative pathnames (via
|
All scripts and commands under $PACKAGEROOT use $PATH relative pathnames (via
|
||||||
the AST pathpath(3) function); there are no embedded absolute pathnames. This
|
the AST pathpath(3) function); there are no embedded absolute pathnames. This
|
||||||
means that binaries generated under $PACKAGEROOT may be copied to a different
|
means that binaries generated under $PACKAGEROOT may be copied to a different
|
||||||
|
@ -523,11 +508,10 @@ DETAILS
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
autoconfig(1), cksum(1), execrate(1), expmake(1), gzip(1), make(1),
|
autoconfig(1), cksum(1), execrate(1), expmake(1), gzip(1), make(1),
|
||||||
mamake(1), pax(1), pkgadd(1), pkgmk(1), proto(1), ratz(1), rpm(1), sh(1),
|
mamake(1), pax(1), pkgadd(1), pkgmk(1), rpm(1), sh(1), tar(1), optget(3)
|
||||||
tar(1), optget(3)
|
|
||||||
|
|
||||||
IMPLEMENTATION
|
IMPLEMENTATION
|
||||||
version package (ksh 93u+m) 2021-12-15
|
version package (ksh 93u+m) 2021-12-22
|
||||||
author Glenn Fowler <gsf@research.att.com>
|
author Glenn Fowler <gsf@research.att.com>
|
||||||
author Contributors to https://github.com/ksh93/ksh
|
author Contributors to https://github.com/ksh93/ksh
|
||||||
copyright (c) 1994-2012 AT&T Intellectual Property
|
copyright (c) 1994-2012 AT&T Intellectual Property
|
||||||
|
@ -2257,7 +2241,7 @@ cat $INITROOT/$i.sh
|
||||||
$show export PATH
|
$show export PATH
|
||||||
export PATH
|
export PATH
|
||||||
;;
|
;;
|
||||||
*) for i in package proto
|
*) for i in package
|
||||||
do if onpath $i
|
do if onpath $i
|
||||||
then EXECROOT=$(echo $_onpath_ | sed -e 's,//*[^/]*//*[^/]*$,,')
|
then EXECROOT=$(echo $_onpath_ | sed -e 's,//*[^/]*//*[^/]*$,,')
|
||||||
EXECTYPE=$(echo $EXECROOT | sed -e 's,.*/,,')
|
EXECTYPE=$(echo $EXECROOT | sed -e 's,.*/,,')
|
||||||
|
@ -2375,9 +2359,6 @@ cat $INITROOT/$i.sh
|
||||||
?*) USER_VPATH=$USER_VPATH:$i
|
?*) USER_VPATH=$USER_VPATH:$i
|
||||||
USER_VPATH_CHAIN="$USER_VPATH_CHAIN $p $i"
|
USER_VPATH_CHAIN="$USER_VPATH_CHAIN $p $i"
|
||||||
p=$i
|
p=$i
|
||||||
case $PROTOROOT in
|
|
||||||
-) executable $i/bin/mamake && PROTOROOT= ;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -2533,87 +2514,18 @@ esac
|
||||||
|
|
||||||
checkaout() # cmd ...
|
checkaout() # cmd ...
|
||||||
{
|
{
|
||||||
case $PROTOROOT in
|
case $cc in
|
||||||
-) PROTOROOT=
|
'') _PACKAGE_cc=0
|
||||||
case $* in
|
;;
|
||||||
ratz) if test -f $INITROOT/ratz.c -a -w $PACKAGEROOT
|
*) _PACKAGE_cc=1
|
||||||
then test -f $INITROOT/hello.c || {
|
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
||||||
cat > $INITROOT/hello.c <<'!'
|
note "$INITROOT: INIT package source not found"
|
||||||
#ifndef printf
|
return 1
|
||||||
#include <stdio.h>
|
|
||||||
#endif
|
|
||||||
int main() { int new = 0; printf("hello world\n"); return new;}
|
|
||||||
!
|
|
||||||
}
|
|
||||||
test -f $INITROOT/p.c || {
|
|
||||||
cat > $INITROOT/p.c <<'!'
|
|
||||||
/*
|
|
||||||
* small test for prototyping cc
|
|
||||||
*/
|
|
||||||
|
|
||||||
int main(int argc, char** argv) { return argc || argv; }
|
|
||||||
!
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c -a -w $PACKAGEROOT || {
|
|
||||||
for i
|
|
||||||
do onpath $i || {
|
|
||||||
note "$i: command not found"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
done
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
case $cc in
|
|
||||||
'') _PACKAGE_cc=0
|
|
||||||
;;
|
|
||||||
*) _PACKAGE_cc=1
|
|
||||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
|
||||||
note "$INITROOT: INIT package source not found"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# check for prototyping cc
|
for i in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||||
# NOTE: proto.c must be K&R compatible
|
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || return
|
||||||
|
done
|
||||||
$CC -c $INITROOT/p.c >/dev/null 2>&1
|
|
||||||
c=$?
|
|
||||||
rm -f p.*
|
|
||||||
test 0 != "$c" && {
|
|
||||||
checkaout proto || return
|
|
||||||
PROTOROOT=$PACKAGEROOT/proto
|
|
||||||
$show PROTOROOT=$PACKAGEROOT/proto
|
|
||||||
export PROTOROOT
|
|
||||||
INITPROTO=$PROTOROOT/src/cmd/INIT
|
|
||||||
note "proto convert $PACKAGEROOT/src into $PROTOROOT/src"
|
|
||||||
dirs="src"
|
|
||||||
(
|
|
||||||
if test -f $PROTOROOT/UPDATE
|
|
||||||
then newer="-newer $PROTOROOT/UPDATE"
|
|
||||||
else newer=""
|
|
||||||
fi
|
|
||||||
case $exec in
|
|
||||||
'') cd $PACKAGEROOT
|
|
||||||
find $dirs -name '*.[CcHh]' $newer -print | proto -v -L - -C proto
|
|
||||||
;;
|
|
||||||
*) $exec cd $PACKAGEROOT
|
|
||||||
$exec "find $dirs -name '*.[CcHh]' $newer -print | proto -L - -C proto"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
$exec touch $PROTOROOT/UPDATE
|
|
||||||
)
|
|
||||||
VPATH=$INSTALLROOT:$PROTOROOT:$PACKAGEROOT$USER_VPATH
|
|
||||||
$show VPATH=$VPATH
|
|
||||||
export VPATH
|
|
||||||
}
|
|
||||||
|
|
||||||
for i in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
|
||||||
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || return
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case $_PACKAGE_cc in
|
case $_PACKAGE_cc in
|
||||||
|
@ -2672,30 +2584,12 @@ int main(int argc, char** argv) { return argc || argv; }
|
||||||
case $(ls -t $INITROOT/$i.c $INSTALLROOT/bin/$i 2>/dev/null) in
|
case $(ls -t $INITROOT/$i.c $INSTALLROOT/bin/$i 2>/dev/null) in
|
||||||
"$INITROOT/$i.c"*)
|
"$INITROOT/$i.c"*)
|
||||||
note "update $INSTALLROOT/bin/$i"
|
note "update $INSTALLROOT/bin/$i"
|
||||||
if test proto != "$i" && executable $INSTALLROOT/bin/proto
|
if test ! -d $INSTALLROOT/bin
|
||||||
then case $exec in
|
then for j in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||||
'') $INSTALLROOT/bin/proto -p $INITROOT/$i.c > $i.c || return ;;
|
do test -d $PACKAGEROOT/$j || $exec mkdir $PACKAGEROOT/$j || return
|
||||||
*) $exec "$INSTALLROOT/bin/proto -p $INITROOT/$i.c > $i.c" ;;
|
done
|
||||||
esac
|
|
||||||
$exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $i.c || return
|
|
||||||
$exec rm -f $i.c
|
|
||||||
else if test ! -d $INSTALLROOT/bin
|
|
||||||
then for j in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
|
||||||
do test -d $PACKAGEROOT/$j || $exec mkdir $PACKAGEROOT/$j || return
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if test '' != "$PROTOROOT" -a -f $INITPROTO/$i.c
|
|
||||||
then $exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITPROTO/$i.c || return
|
|
||||||
else $exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITROOT/$i.c || return
|
|
||||||
fi
|
|
||||||
case $i:$exec in
|
|
||||||
proto:) test -d $INSTALLROOT/include || mkdir $INSTALLROOT/include
|
|
||||||
$INSTALLROOT/bin/proto -f /dev/null > $i.c
|
|
||||||
cmp -s $i.c $INSTALLROOT/include/prototyped.h 2>/dev/null || cp $i.c $INSTALLROOT/include/prototyped.h
|
|
||||||
rm $i.c
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
|
$exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITROOT/$i.c || return
|
||||||
test -f $i.o && $exec rm -f $i.o
|
test -f $i.o && $exec rm -f $i.o
|
||||||
i=$PATH
|
i=$PATH
|
||||||
PATH=/bin
|
PATH=/bin
|
||||||
|
@ -3172,9 +3066,9 @@ cat $j $k
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# initialize a few mamake related commands
|
# initialize mamake
|
||||||
|
|
||||||
checkaout mamake proto ratz || exit
|
checkaout mamake || exit
|
||||||
|
|
||||||
# execrate if necessary
|
# execrate if necessary
|
||||||
|
|
||||||
|
@ -3529,7 +3423,7 @@ results)set '' $target
|
||||||
case $filter in
|
case $filter in
|
||||||
errors) $exeg egrep '^pax:|\*\*\*' $j
|
errors) $exeg egrep '^pax:|\*\*\*' $j
|
||||||
;;
|
;;
|
||||||
*) $exec egrep -iv '^($||[\+\[]|cc[^-:]|kill |make.*(file system time|has been replaced)|so|[0123456789]+ error|uncrate |[0123456789]+ block|ar: creat|iffe: test: |conf: (check|generate|test)|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*=|gsf@research|ar:.*warning|cpio:|ld:.*(duplicate symbol|to obtain more information)|[0123456789]*$|(checking|creating|touch) [/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789])| obsolete predefined symbol | is (almost always misused|dangerous|deprecated|not implemented)| trigraph| assigned to | cast .* different size| integer overflow .*<<| optimization may be attained | passed as |::__builtin|pragma.*prototyped|^creating.*\.a$|warning.*not optimized|exceeds size thresh|ld:.*preempts|is unchanged|with value >=|(-l|lib)\*|/(ast|sys)/(dir|limits|param|stropts)\.h.*redefined|usage|base registers|`\.\.\.` obsolete'"$i" $j |
|
*) $exec egrep -iv '^($||[\+\[]|cc[^-:]|kill |make.*(file system time|has been replaced)|so|[0123456789]+ error|uncrate |[0123456789]+ block|ar: creat|iffe: test: |conf: (check|generate|test)|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*=|gsf@research|ar:.*warning|cpio:|ld:.*(duplicate symbol|to obtain more information)|[0123456789]*$|(checking|creating|touch) [/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789])| obsolete predefined symbol | is (almost always misused|dangerous|deprecated|not implemented)| trigraph| assigned to | cast .* different size| integer overflow .*<<| optimization may be attained | passed as |::__builtin|^creating.*\.a$|warning.*not optimized|exceeds size thresh|ld:.*preempts|is unchanged|with value >=|(-l|lib)\*|/(ast|sys)/(dir|limits|param|stropts)\.h.*redefined|usage|base registers|`\.\.\.` obsolete'"$i" $j |
|
||||||
$exec grep :
|
$exec grep :
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3564,6 +3458,7 @@ use) # finalize the environment
|
||||||
esac
|
esac
|
||||||
eval PACKAGE_USE=$package_use
|
eval PACKAGE_USE=$package_use
|
||||||
export PACKAGE_USE
|
export PACKAGE_USE
|
||||||
|
unset LC_ALL # respect the user's locale again; avoids multibyte corruption
|
||||||
|
|
||||||
# run the command
|
# run the command
|
||||||
|
|
||||||
|
|
|
@ -408,41 +408,6 @@ make install
|
||||||
done mamake.o generated
|
done mamake.o generated
|
||||||
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o mamake mamake.o
|
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o mamake mamake.o
|
||||||
done mamake generated
|
done mamake generated
|
||||||
make proto
|
|
||||||
make proto.o
|
|
||||||
make proto.c
|
|
||||||
done proto.c
|
|
||||||
meta proto.o %.c>%.o proto.c proto
|
|
||||||
prev proto.c
|
|
||||||
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -c proto.c
|
|
||||||
done proto.o generated
|
|
||||||
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o proto proto.o
|
|
||||||
done proto generated
|
|
||||||
make ratz
|
|
||||||
make ratz.o
|
|
||||||
make ratz.c
|
|
||||||
make unix.h implicit
|
|
||||||
done unix.h dontcare virtual
|
|
||||||
make alloc.h implicit
|
|
||||||
done alloc.h dontcare virtual
|
|
||||||
make unixio.h implicit
|
|
||||||
done unixio.h dontcare virtual
|
|
||||||
make ast_std.h implicit
|
|
||||||
done ast_std.h dontcare virtual
|
|
||||||
make windows.h implicit
|
|
||||||
done windows.h dontcare virtual
|
|
||||||
make io.h implicit
|
|
||||||
done io.h dontcare virtual
|
|
||||||
make direct.h implicit
|
|
||||||
done direct.h dontcare virtual
|
|
||||||
prev ast.h implicit
|
|
||||||
done ratz.c
|
|
||||||
meta ratz.o %.c>%.o ratz.c ratz
|
|
||||||
prev ratz.c
|
|
||||||
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -c ratz.c
|
|
||||||
done ratz.o generated
|
|
||||||
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o ratz ratz.o
|
|
||||||
done ratz generated
|
|
||||||
make mprobe
|
make mprobe
|
||||||
make mprobe.sh
|
make mprobe.sh
|
||||||
done mprobe.sh
|
done mprobe.sh
|
||||||
|
@ -634,14 +599,16 @@ make install
|
||||||
prev mamake
|
prev mamake
|
||||||
exec - test '' = 'mamake' || ${STDCMP} 2>/dev/null -s mamake ${INSTALLROOT}/bin/mamake || { ${STDMV} ${INSTALLROOT}/bin/mamake ${INSTALLROOT}/bin/mamake.old 2>/dev/null || true; ${STDCP} mamake ${INSTALLROOT}/bin/mamake ;}
|
exec - test '' = 'mamake' || ${STDCMP} 2>/dev/null -s mamake ${INSTALLROOT}/bin/mamake || { ${STDMV} ${INSTALLROOT}/bin/mamake ${INSTALLROOT}/bin/mamake.old 2>/dev/null || true; ${STDCP} mamake ${INSTALLROOT}/bin/mamake ;}
|
||||||
done ${INSTALLROOT}/bin/mamake generated
|
done ${INSTALLROOT}/bin/mamake generated
|
||||||
make ${INSTALLROOT}/bin/proto
|
make __proto_stub
|
||||||
prev proto
|
note *
|
||||||
exec - test '' = 'proto' || ${STDCMP} 2>/dev/null -s proto ${INSTALLROOT}/bin/proto || { ${STDMV} ${INSTALLROOT}/bin/proto ${INSTALLROOT}/bin/proto.old 2>/dev/null || true; ${STDCP} proto ${INSTALLROOT}/bin/proto ;}
|
note * proto(1) has been removed, but install a backwards compatibility stub
|
||||||
done ${INSTALLROOT}/bin/proto generated
|
note * that allows old Mamfiles containing proto commands to keep working.
|
||||||
make ${INSTALLROOT}/bin/ratz
|
note *
|
||||||
prev ratz
|
exec - src=${PACKAGEROOT}/src/cmd/INIT/proto.sh
|
||||||
exec - test '' = 'ratz' || ${STDCMP} 2>/dev/null -s ratz ${INSTALLROOT}/bin/ratz || { ${STDMV} ${INSTALLROOT}/bin/ratz ${INSTALLROOT}/bin/ratz.old 2>/dev/null || true; ${STDCP} ratz ${INSTALLROOT}/bin/ratz ;}
|
exec - dst=${INSTALLROOT}/bin/proto
|
||||||
done ${INSTALLROOT}/bin/ratz generated
|
exec - ${STDCMP} 2>/dev/null -s $src $dst || { ${STDMV} $dst $dst.old 2>/dev/null || true; ${STDCP} $src $dst ;}
|
||||||
|
exec - test -w $dst && test -x $dst || chmod u+w,+x $dst
|
||||||
|
done __proto_stub dontcare virtual
|
||||||
make ${INSTALLROOT}/bin/mkdir
|
make ${INSTALLROOT}/bin/mkdir
|
||||||
make mkdir.sh
|
make mkdir.sh
|
||||||
done mkdir.sh
|
done mkdir.sh
|
||||||
|
@ -876,18 +843,6 @@ make install
|
||||||
exec - then mkdir -p ${INSTALLROOT}/include/ast
|
exec - then mkdir -p ${INSTALLROOT}/include/ast
|
||||||
exec - fi
|
exec - fi
|
||||||
done ${INSTALLROOT}/include/ast generated
|
done ${INSTALLROOT}/include/ast generated
|
||||||
make ${INSTALLROOT}/include/ast/prototyped.h
|
|
||||||
prev ${INSTALLROOT}/include/ast
|
|
||||||
make prototyped.h
|
|
||||||
prev ${INSTALLROOT}/bin/proto
|
|
||||||
exec - proto -f /dev/null > h.${COTEMP}.h
|
|
||||||
exec - if cmp 2>/dev/null -s h.${COTEMP}.h prototyped.h
|
|
||||||
exec - then rm -f h.${COTEMP}.h
|
|
||||||
exec - else mv h.${COTEMP}.h prototyped.h
|
|
||||||
exec - fi
|
|
||||||
done prototyped.h generated
|
|
||||||
exec - test '' = 'prototyped.h' || ${STDCMP} 2>/dev/null -s prototyped.h ${INSTALLROOT}/include/ast/prototyped.h || { ${STDMV} ${INSTALLROOT}/include/ast/prototyped.h ${INSTALLROOT}/include/ast/prototyped.h.old 2>/dev/null || true; ${STDCP} prototyped.h ${INSTALLROOT}/include/ast/prototyped.h ;}
|
|
||||||
done ${INSTALLROOT}/include/ast/prototyped.h generated
|
|
||||||
make ${INSTALLROOT}/lib/lib
|
make ${INSTALLROOT}/lib/lib
|
||||||
exec - if test ! -d ${INSTALLROOT}/lib/lib
|
exec - if test ! -d ${INSTALLROOT}/lib/lib
|
||||||
exec - then mkdir -p ${INSTALLROOT}/lib/lib
|
exec - then mkdir -p ${INSTALLROOT}/lib/lib
|
||||||
|
|
|
@ -32,7 +32,7 @@ AIX) unset LIBPATH ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
command=iffe
|
command=iffe
|
||||||
version=2021-12-06
|
version=2021-12-22
|
||||||
|
|
||||||
compile() # $cc ...
|
compile() # $cc ...
|
||||||
{
|
{
|
||||||
|
@ -682,7 +682,6 @@ case `(set -f && set x * && echo $# && set +f) 2>/dev/null` in
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
protoflags=
|
|
||||||
puthdr=
|
puthdr=
|
||||||
putlib=
|
putlib=
|
||||||
pragma=
|
pragma=
|
||||||
|
@ -811,9 +810,8 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
||||||
[N!:optimize?\b--nooptimize\b disables compiler optimization options.]
|
[N!:optimize?\b--nooptimize\b disables compiler optimization options.]
|
||||||
[o:output?Sets the output file name to \afile\a.]:[file]
|
[o:output?Sets the output file name to \afile\a.]:[file]
|
||||||
[O:stdio?Sets the standard io header to \ahdr\a.]:[hdr:=stdio.h]
|
[O:stdio?Sets the standard io header to \ahdr\a.]:[hdr:=stdio.h]
|
||||||
[e:package?Sets the \bproto\b(1) package name to \aname\a.]:[name]
|
[e:package?Obsolete; ignored.]
|
||||||
[p:prototyped?Emits \b#pragma prototyped\b at the top of the
|
[p:prototyped?Obsolete; ignored.]
|
||||||
output file. See \bproto\b(1).]
|
|
||||||
[P:pragma?Emits \b#pragma\b \atext\a at the top of the output file.]:[text]
|
[P:pragma?Emits \b#pragma\b \atext\a at the top of the output file.]:[text]
|
||||||
[r:regress?Massage output for regression testing.]
|
[r:regress?Massage output for regression testing.]
|
||||||
[s:shell?Sets the internal shell name to \aname\a. Used for debugging
|
[s:shell?Sets the internal shell name to \aname\a. Used for debugging
|
||||||
|
@ -880,30 +878,17 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
||||||
\bNOTE("...")\b to emit short text in \b--verbose\b output; only one
|
\bNOTE("...")\b to emit short text in \b--verbose\b output; only one
|
||||||
\bNOTE()\b should be called per test for readability. In addition to
|
\bNOTE()\b should be called per test for readability. In addition to
|
||||||
all macro definitions generated by previous tests, all generated
|
all macro definitions generated by previous tests, all generated
|
||||||
code contains the following at the top to hide dialect differences:]{
|
code contains the following at the top:]{
|
||||||
[+ ?#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)]
|
[+ ?/* AST backwards compatibility macros */]
|
||||||
|
[+ ?#define _NIL_(x) ((x)0)]
|
||||||
[+ ?#define _STD_ 1]
|
[+ ?#define _STD_ 1]
|
||||||
[+ ?#define _ARG_(x) x]
|
[+ ?#define _ARG_(x) x]
|
||||||
[+ ?#define _VOID_ void]
|
[+ ?#define _VOID_ void]
|
||||||
[+ ?#else]
|
|
||||||
[+ ?#define _STD_ 0]
|
|
||||||
[+ ?#define _ARG_(x) ()]
|
|
||||||
[+ ?#define _VOID_ char]
|
|
||||||
[+ ?#endif]
|
|
||||||
[+ ?#if defined(__cplusplus)]
|
|
||||||
[+ ?#define _BEGIN_EXTERNS_ extern "C" {]
|
|
||||||
[+ ?#define _END_EXTERNS_ }]
|
|
||||||
[+ ?#else]
|
|
||||||
[+ ?#define _BEGIN_EXTERNS_]
|
[+ ?#define _BEGIN_EXTERNS_]
|
||||||
[+ ?#define _END_EXTERNS_]
|
[+ ?#define _END_EXTERNS_]
|
||||||
[+ ?#endif]
|
[+ ?/* if/when available, "$INSTALLROOT/src/lib/libast/FEATURE/standards" is included here */]
|
||||||
[+ ?#define _NIL_(x) ((x)0)]
|
[+ ?/* then <stdio.h> is included, unless this was disabled using the "stdio" option */]
|
||||||
[+ ?#include <stdio.h> /* unless changed using the "stdio" option */]
|
|
||||||
}
|
}
|
||||||
[+?In addition, if and when available, standards macros set as a result of the
|
|
||||||
\bsrc/lib/libast/features/standards\b feature test are incorporated
|
|
||||||
here, ensuring the compilation environment is consistent between the
|
|
||||||
tests and the code that uses the test results.]
|
|
||||||
[+?= \adefault\a may be specified for the \bkey\b, \blib\b, \bmac\b, \bmth\b
|
[+?= \adefault\a may be specified for the \bkey\b, \blib\b, \bmac\b, \bmth\b
|
||||||
and \btyp\b tests. If the test fails for \aarg\a then
|
and \btyp\b tests. If the test fails for \aarg\a then
|
||||||
\b#define\b \aarg\a \adefault\a is emitted. \bkey\b accepts multiple
|
\b#define\b \aarg\a \adefault\a is emitted. \bkey\b accepts multiple
|
||||||
|
@ -1111,7 +1096,7 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
||||||
\bendif\b } with unnamed \b{\b ... \b}\b blocks.]
|
\bendif\b } with unnamed \b{\b ... \b}\b blocks.]
|
||||||
}
|
}
|
||||||
[+SEE ALSO?\bautoconf\b(1), \bconfig\b(1), \bgetconf\b(1), \bcrossexec\b(1),
|
[+SEE ALSO?\bautoconf\b(1), \bconfig\b(1), \bgetconf\b(1), \bcrossexec\b(1),
|
||||||
\bnmake\b(1), \bpackage\b(1), \bproto\b(1), \bsh\b(1)]
|
\bnmake\b(1), \bpackage\b(1), \bsh\b(1)]
|
||||||
'
|
'
|
||||||
while getopts -a "$command" "$USAGE" OPT
|
while getopts -a "$command" "$USAGE" OPT
|
||||||
do case $OPT in
|
do case $OPT in
|
||||||
|
@ -1128,8 +1113,8 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
||||||
n) set="$set set namval $OPTARG :" ;;
|
n) set="$set set namval $OPTARG :" ;;
|
||||||
N) set="$set set nooptimize $OPTARG :" ;;
|
N) set="$set set nooptimize $OPTARG :" ;;
|
||||||
o) set="$set set output $OPTARG :" ;;
|
o) set="$set set output $OPTARG :" ;;
|
||||||
e) set="$set set package $OPTARG :" ;;
|
e) ;; # obsolete
|
||||||
p) set="$set set prototyped :" ;;
|
p) ;; # obsolete
|
||||||
P) set="$set set pragma $OPTARG :" ;;
|
P) set="$set set pragma $OPTARG :" ;;
|
||||||
r) set="$set set regress :" ;;
|
r) set="$set set regress :" ;;
|
||||||
s) set="$set set shell $OPTARG :" ;;
|
s) set="$set set shell $OPTARG :" ;;
|
||||||
|
@ -1195,10 +1180,10 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
||||||
REM=o`echo X$1 | sed 's,[^=]*=,,'`
|
REM=o`echo X$1 | sed 's,[^=]*=,,'`
|
||||||
;;
|
;;
|
||||||
--pa=*|--pac=*|--pack=*|--packa=*|--packag=*|--package=*)
|
--pa=*|--pac=*|--pack=*|--packa=*|--packag=*|--package=*)
|
||||||
REM=e`echo X$1 | sed 's,[^=]*=,,'`
|
# obsolete
|
||||||
;;
|
;;
|
||||||
--pro|--prot|--proto|--protot|--prototy|--prototyp|--prototype|--prototyped)
|
--pro|--prot|--proto|--protot|--prototy|--prototyp|--prototype|--prototyped)
|
||||||
REM=p
|
# obsolete
|
||||||
;;
|
;;
|
||||||
--pra=*|--prag=*|--pragma=*)
|
--pra=*|--prag=*|--pragma=*)
|
||||||
REM=P`echo X$1 | sed 's,[^=]*=,,'`
|
REM=P`echo X$1 | sed 's,[^=]*=,,'`
|
||||||
|
@ -1265,8 +1250,8 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
||||||
n) set="$set set namval $OPTARG :" ;;
|
n) set="$set set namval $OPTARG :" ;;
|
||||||
N) set="$set set nooptimize $OPTARG :" ;;
|
N) set="$set set nooptimize $OPTARG :" ;;
|
||||||
o) set="$set set output $OPTARG :" ;;
|
o) set="$set set output $OPTARG :" ;;
|
||||||
e) set="$set set package $OPTARG :" ;;
|
e) ;; # obsolete
|
||||||
p) set="$set set prototyped :" ;;
|
p) ;; # obsolete
|
||||||
P) set="$set set pragma $OPTARG :" ;;
|
P) set="$set set pragma $OPTARG :" ;;
|
||||||
r) set="$set set regress :" ;;
|
r) set="$set set regress :" ;;
|
||||||
s) set="$set set shell $OPTARG :" ;;
|
s) set="$set set shell $OPTARG :" ;;
|
||||||
|
@ -1352,23 +1337,13 @@ status=2
|
||||||
|
|
||||||
# standard header for c source
|
# standard header for c source
|
||||||
|
|
||||||
std='#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
|
std='/* AST backwards compatibility macros */
|
||||||
|
#define _NIL_(x) ((x)0)
|
||||||
#define _STD_ 1
|
#define _STD_ 1
|
||||||
#define _ARG_(x) x
|
#define _ARG_(x) x
|
||||||
#define _VOID_ void
|
#define _VOID_ void
|
||||||
#else
|
|
||||||
#define _STD_ 0
|
|
||||||
#define _ARG_(x) ()
|
|
||||||
#define _VOID_ char
|
|
||||||
#endif
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
#define _BEGIN_EXTERNS_ extern "C" {
|
|
||||||
#define _END_EXTERNS_ }
|
|
||||||
#else
|
|
||||||
#define _BEGIN_EXTERNS_
|
#define _BEGIN_EXTERNS_
|
||||||
#define _END_EXTERNS_
|
#define _END_EXTERNS_'
|
||||||
#endif
|
|
||||||
#define _NIL_(x) ((x)0)'
|
|
||||||
# To ensure the environment tested is the same as that used, add standards
|
# To ensure the environment tested is the same as that used, add standards
|
||||||
# compliance macros as probed by libast as soon as they are available.
|
# compliance macros as probed by libast as soon as they are available.
|
||||||
if test -f "${INSTALLROOT}/src/lib/libast/FEATURE/standards"
|
if test -f "${INSTALLROOT}/src/lib/libast/FEATURE/standards"
|
||||||
|
@ -1392,7 +1367,6 @@ ini=
|
||||||
init=1
|
init=1
|
||||||
line=0
|
line=0
|
||||||
nan=
|
nan=
|
||||||
prototyped=
|
|
||||||
while :
|
while :
|
||||||
do case $in in
|
do case $in in
|
||||||
"") case $argx:$* in
|
"") case $argx:$* in
|
||||||
|
@ -1616,8 +1590,8 @@ do case $in in
|
||||||
n) op=namval ;;
|
n) op=namval ;;
|
||||||
N) op=nooptimize ;;
|
N) op=nooptimize ;;
|
||||||
o) op=output ;;
|
o) op=output ;;
|
||||||
e) op=package ;;
|
e) ;; # obsolete
|
||||||
p) op=prototyped ;;
|
p) ;; # obsolete
|
||||||
P) op=pragma ;;
|
P) op=pragma ;;
|
||||||
r) op=regress ;;
|
r) op=regress ;;
|
||||||
s) op=shell ;;
|
s) op=shell ;;
|
||||||
|
@ -1818,15 +1792,11 @@ do case $in in
|
||||||
def=
|
def=
|
||||||
test=
|
test=
|
||||||
;;
|
;;
|
||||||
package)protoflags="$protoflags -e $arg"
|
package)# obsolete
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
prototyped|noprototyped)
|
prototyped|noprototyped)
|
||||||
pragma="$pragma $op"
|
# obsolete
|
||||||
case $op in
|
|
||||||
prototyped) prototyped=1 ;;
|
|
||||||
*) prototyped= ;;
|
|
||||||
esac
|
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
pragma) pragma="$pragma $arg"
|
pragma) pragma="$pragma $arg"
|
||||||
|
@ -2406,10 +2376,8 @@ int x;
|
||||||
$std
|
$std
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
$usr
|
$usr
|
||||||
_BEGIN_EXTERNS_
|
|
||||||
struct _iffe_struct { int _iffe_member; };
|
struct _iffe_struct { int _iffe_member; };
|
||||||
extern struct _iffe_struct* $x _ARG_((struct _iffe_struct*));
|
extern struct _iffe_struct* $x (struct _iffe_struct*);
|
||||||
_END_EXTERNS_
|
|
||||||
"
|
"
|
||||||
# some compilers with -O only warn for invalid intrinsic prototypes
|
# some compilers with -O only warn for invalid intrinsic prototypes
|
||||||
case " $cc " in
|
case " $cc " in
|
||||||
|
@ -2445,13 +2413,7 @@ _END_EXTERNS_
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
copy - "extern $t $x$v;"
|
copy - "extern $t $x$v;"
|
||||||
# NOTE: technically if prototyped is on all tests should
|
usr="$usr${nl}extern $t $x$v;"
|
||||||
# be run through proto(1), but we'd like iffe to
|
|
||||||
# work sans proto -- so we drop the extern's in
|
|
||||||
# the test headers
|
|
||||||
case $prototyped in
|
|
||||||
'') usr="$usr${nl}extern $t $x$v;" ;;
|
|
||||||
esac
|
|
||||||
else failure -
|
else failure -
|
||||||
case $in in
|
case $in in
|
||||||
"") while :
|
"") while :
|
||||||
|
@ -3142,8 +3104,7 @@ int x;
|
||||||
n) sed '/^#/d' $tmp.h > $tmp.c
|
n) sed '/^#/d' $tmp.h > $tmp.c
|
||||||
sed '/^#/d' $x > $tmp.t
|
sed '/^#/d' $x > $tmp.t
|
||||||
;;
|
;;
|
||||||
*) (proto -r $protoflags $tmp.h) >/dev/null 2>&1
|
*) sed 's,/\*[^/]*\*/, ,g' $tmp.h > $tmp.c
|
||||||
sed 's,/\*[^/]*\*/, ,g' $tmp.h > $tmp.c
|
|
||||||
sed 's,/\*[^/]*\*/, ,g' $x > $tmp.t
|
sed 's,/\*[^/]*\*/, ,g' $x > $tmp.t
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3596,9 +3557,7 @@ $tst
|
||||||
$ext
|
$ext
|
||||||
$std
|
$std
|
||||||
$usr
|
$usr
|
||||||
_BEGIN_EXTERNS_
|
|
||||||
extern int $statictest;
|
extern int $statictest;
|
||||||
_END_EXTERNS_
|
|
||||||
int main(){char* i = (char*)&$statictest; return ((unsigned int)i)^0xaaaa;}
|
int main(){char* i = (char*)&$statictest; return ((unsigned int)i)^0xaaaa;}
|
||||||
"
|
"
|
||||||
rm -f $tmp.exe
|
rm -f $tmp.exe
|
||||||
|
@ -3707,9 +3666,7 @@ $pre
|
||||||
case $inc in
|
case $inc in
|
||||||
?*) echo "$inc"
|
?*) echo "$inc"
|
||||||
;;
|
;;
|
||||||
*) echo "_BEGIN_EXTERNS_
|
*) echo "extern int $v;"
|
||||||
extern int $v;
|
|
||||||
_END_EXTERNS_"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
echo "
|
echo "
|
||||||
|
@ -4081,9 +4038,7 @@ $v i;
|
||||||
#else
|
#else
|
||||||
typedef int (*_IFFE_fun)();
|
typedef int (*_IFFE_fun)();
|
||||||
#ifdef _IFFE_extern
|
#ifdef _IFFE_extern
|
||||||
_BEGIN_EXTERNS_
|
|
||||||
extern int $v();
|
extern int $v();
|
||||||
_END_EXTERNS_
|
|
||||||
#endif
|
#endif
|
||||||
static _IFFE_fun i=(_IFFE_fun)$v;int main(){return ((unsigned int)i)^0xaaaa;}
|
static _IFFE_fun i=(_IFFE_fun)$v;int main(){return ((unsigned int)i)^0xaaaa;}
|
||||||
#endif
|
#endif
|
||||||
|
@ -4124,9 +4079,7 @@ $std
|
||||||
$usr
|
$usr
|
||||||
$pre
|
$pre
|
||||||
$inc
|
$inc
|
||||||
_BEGIN_EXTERNS_
|
|
||||||
extern int foo();
|
extern int foo();
|
||||||
_END_EXTERNS_
|
|
||||||
static int ((*i)())=foo;int main(){return(i==0);}
|
static int ((*i)())=foo;int main(){return(i==0);}
|
||||||
"
|
"
|
||||||
compile $cc -c $tmp.c <&$nullin >&$nullout
|
compile $cc -c $tmp.c <&$nullin >&$nullout
|
||||||
|
@ -4248,14 +4201,8 @@ $std
|
||||||
$usr
|
$usr
|
||||||
$pre
|
$pre
|
||||||
$inc
|
$inc
|
||||||
_BEGIN_EXTERNS_
|
|
||||||
struct _iffe_struct { int _iffe_member; };
|
struct _iffe_struct { int _iffe_member; };
|
||||||
#if _STD_
|
|
||||||
extern struct _iffe_struct* $v(struct _iffe_struct*);
|
extern struct _iffe_struct* $v(struct _iffe_struct*);
|
||||||
#else
|
|
||||||
extern struct _iffe_struct* $v();
|
|
||||||
#endif
|
|
||||||
_END_EXTERNS_
|
|
||||||
"
|
"
|
||||||
# some compilers with -O only warn for invalid intrinsic prototypes
|
# some compilers with -O only warn for invalid intrinsic prototypes
|
||||||
case " $cc " in
|
case " $cc " in
|
||||||
|
@ -4273,9 +4220,7 @@ $std
|
||||||
$usr
|
$usr
|
||||||
$pre
|
$pre
|
||||||
$inc
|
$inc
|
||||||
_BEGIN_EXTERNS_
|
|
||||||
int _iffe_int = $v / 2;
|
int _iffe_int = $v / 2;
|
||||||
_END_EXTERNS_
|
|
||||||
"
|
"
|
||||||
compile $cc -c $tmp.c <&$nullin >&$nullout
|
compile $cc -c $tmp.c <&$nullin >&$nullout
|
||||||
report $? 1 "$v is a numeric constant" "$v is not a numeric constant"
|
report $? 1 "$v is a numeric constant" "$v is not a numeric constant"
|
||||||
|
|
|
@ -1778,71 +1778,9 @@ iffe: test: is Tab_lE a symbol that needs a prototype ... yes'
|
||||||
TEST 17 'features/* => FEATURE/*'
|
TEST 17 'features/* => FEATURE/*'
|
||||||
|
|
||||||
EXEC -r -v run features/stdio
|
EXEC -r -v run features/stdio
|
||||||
INPUT features/stdio $'set prototyped
|
INPUT features/stdio $'header stdio.h'
|
||||||
header stdio.h'
|
OUTPUT FEATURE/stdio $'/* : : generated from features/stdio by iffe version 1995-03-19 : : */
|
||||||
OUTPUT FEATURE/stdio $'
|
|
||||||
/* : : generated by proto : : */
|
|
||||||
/* : : generated from features/stdio by iffe version 1995-03-19 : : */
|
|
||||||
|
|
||||||
#ifndef _REGRESS
|
#ifndef _REGRESS
|
||||||
#if !defined(__PROTO__)
|
|
||||||
# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
|
|
||||||
# if defined(__cplusplus)
|
|
||||||
# define __LINKAGE__ "C"
|
|
||||||
# else
|
|
||||||
# define __LINKAGE__
|
|
||||||
# endif
|
|
||||||
# define __STDARG__
|
|
||||||
# define __PROTO__(x) x
|
|
||||||
# define __OTORP__(x)
|
|
||||||
# define __PARAM__(n,o) n
|
|
||||||
# if !defined(__STDC__) && !defined(__cplusplus)
|
|
||||||
# if !defined(c_plusplus)
|
|
||||||
# define const
|
|
||||||
# endif
|
|
||||||
# define signed
|
|
||||||
# define void int
|
|
||||||
# define volatile
|
|
||||||
# define __V_ char
|
|
||||||
# else
|
|
||||||
# define __V_ void
|
|
||||||
# endif
|
|
||||||
# else
|
|
||||||
# define __PROTO__(x) ()
|
|
||||||
# define __OTORP__(x) x
|
|
||||||
# define __PARAM__(n,o) o
|
|
||||||
# define __LINKAGE__
|
|
||||||
# define __V_ char
|
|
||||||
# define const
|
|
||||||
# define signed
|
|
||||||
# define void int
|
|
||||||
# define volatile
|
|
||||||
# endif
|
|
||||||
# define __MANGLE__ __LINKAGE__
|
|
||||||
# if defined(__cplusplus) || defined(c_plusplus)
|
|
||||||
# define __VARARG__ ...
|
|
||||||
# else
|
|
||||||
# define __VARARG__
|
|
||||||
# endif
|
|
||||||
# if defined(__STDARG__)
|
|
||||||
# define __VA_START__(p,a) va_start(p,a)
|
|
||||||
# else
|
|
||||||
# define __VA_START__(p,a) va_start(p)
|
|
||||||
# endif
|
|
||||||
# if !defined(__INLINE__)
|
|
||||||
# if defined(__cplusplus)
|
|
||||||
# define __INLINE__ extern __MANGLE__ inline
|
|
||||||
# else
|
|
||||||
# if defined(_WIN32) && !defined(__GNUC__)
|
|
||||||
# define __INLINE__ __inline
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#if !defined(__LINKAGE__)
|
|
||||||
#define __LINKAGE__ /* 2004-08-11 transition */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define _REGRESS 1
|
#define _REGRESS 1
|
||||||
#define _sys_types 1 /* #include <sys/types.h> ok */
|
#define _sys_types 1 /* #include <sys/types.h> ok */
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
@ -72,7 +72,6 @@ extern int i;
|
||||||
int i = 1;
|
int i = 1;
|
||||||
extern int f(){return(!i);}
|
extern int f(){return(!i);}
|
||||||
int main(){FILE* fp=stdin;return(f());}' > pic.$src
|
int main(){FILE* fp=stdin;return(f());}' > pic.$src
|
||||||
echo 'class x {int n;} m;' > plusplus.$src
|
|
||||||
echo 'int prefix(){return 0;}' > prefix.$src
|
echo 'int prefix(){return 0;}' > prefix.$src
|
||||||
echo 'template<class T> int gt(T a, T b);
|
echo 'template<class T> int gt(T a, T b);
|
||||||
template<class T> int gt(T a, T b) { return a > b; }
|
template<class T> int gt(T a, T b) { return a > b; }
|
||||||
|
@ -102,9 +101,7 @@ int i;
|
||||||
int main(){int j;j = i * 10;return j;}' > strip.$src
|
int main(){int j;j = i * 10;return j;}' > strip.$src
|
||||||
echo 'template <class T> void f(T){}
|
echo 'template <class T> void f(T){}
|
||||||
int main(){f(1);return 0;}' > toucho.$src
|
int main(){f(1);return 0;}' > toucho.$src
|
||||||
echo '#if defined(__STDC__) || defined(__cplusplus)
|
echo 'extern type call(int);
|
||||||
extern type call(int);
|
|
||||||
#endif
|
|
||||||
int main() {call(0);return(0);}' > tstlib.$src
|
int main() {call(0);return(0);}' > tstlib.$src
|
||||||
echo 'int main(){return 0;}' > warn.$src
|
echo 'int main(){return 0;}' > warn.$src
|
||||||
echo 'int f(){return 0;}' > warn1.$src
|
echo 'int f(){return 0;}' > warn1.$src
|
||||||
|
@ -154,7 +151,6 @@ nmedit=
|
||||||
nmflags=
|
nmflags=
|
||||||
no_protect=
|
no_protect=
|
||||||
optimize=
|
optimize=
|
||||||
plusplus=
|
|
||||||
prefix_archive=lib
|
prefix_archive=lib
|
||||||
prefix_dynamic=
|
prefix_dynamic=
|
||||||
prefix_shared=lib
|
prefix_shared=lib
|
||||||
|
@ -433,7 +429,6 @@ int main() { f(); return 0; }' > picok.$src
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$cc -c plusplus.$src && plusplus=1
|
|
||||||
$cc -E -dD dDflag.$src > t
|
$cc -E -dD dDflag.$src > t
|
||||||
case `grep '#define[ ][ ]*dDflag[ ][ ]*on' t` in
|
case `grep '#define[ ][ ]*dDflag[ ][ ]*on' t` in
|
||||||
?*) dDflag=1 ;;
|
?*) dDflag=1 ;;
|
||||||
|
@ -441,90 +436,7 @@ esac
|
||||||
case `grep '#define.*_GNUC_' t` in
|
case `grep '#define.*_GNUC_' t` in
|
||||||
?*) gnu=1 ;;
|
?*) gnu=1 ;;
|
||||||
esac
|
esac
|
||||||
case $plusplus in
|
$cc -c stdc.$src && stdc=1
|
||||||
"") $cc -c stdc.$src && stdc=1 ;;
|
|
||||||
*) mkdir ptr
|
|
||||||
cd ptr
|
|
||||||
$cc -c ../ptr.$src &
|
|
||||||
NFS_locks_are_botched=$!
|
|
||||||
cd ..
|
|
||||||
if $cc -c require.$src && $cc require.$obj
|
|
||||||
then set x `$cc require.$obj 2>&1`
|
|
||||||
d=
|
|
||||||
while :
|
|
||||||
do shift
|
|
||||||
case $# in
|
|
||||||
0) break ;;
|
|
||||||
esac
|
|
||||||
case $1 in
|
|
||||||
-l*) d="$d $1" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
for f in ++
|
|
||||||
do if $cc require.$obj -l$f
|
|
||||||
then set x `$cc require.$obj -l$f 2>&1`
|
|
||||||
r=
|
|
||||||
while :
|
|
||||||
do shift
|
|
||||||
case $# in
|
|
||||||
0) break ;;
|
|
||||||
esac
|
|
||||||
case $1 in
|
|
||||||
-l*) case " $d $r " in
|
|
||||||
*" "$1" "*) ;;
|
|
||||||
*) r="$r $1" ;;
|
|
||||||
esac
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
case $r in
|
|
||||||
?*) require="$require $f"
|
|
||||||
echo '' $r > req.$f
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
cd ptr
|
|
||||||
for i in *
|
|
||||||
do if test -d $i
|
|
||||||
then repository=$i
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
cd ..
|
|
||||||
kill -9 $NFS_locks_are_botched
|
|
||||||
rm -rf ptr
|
|
||||||
case $repository in
|
|
||||||
*?) mkdir ptr
|
|
||||||
cd ptr
|
|
||||||
i=PTR
|
|
||||||
case $repository in
|
|
||||||
$i) i=$i$i ;;
|
|
||||||
esac
|
|
||||||
$cc -ptr$i -c ../ptr.$src &
|
|
||||||
NFS_locks_are_botched=$!
|
|
||||||
cd ..
|
|
||||||
sleep 5
|
|
||||||
if test -d ptr/$i/$repository
|
|
||||||
then ptrimplicit=1
|
|
||||||
fi
|
|
||||||
kill -9 $NFS_locks_are_botched
|
|
||||||
rm -rf ptr
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
$cc -o implc implc.$src && $executable implc && implicitc=1
|
|
||||||
if $cc -c toucho.$src && test -f toucho.$obj
|
|
||||||
then o=`ls -l toucho.$obj`
|
|
||||||
if $cc -o toucho toucho.$obj && $executable toucho
|
|
||||||
then n=`ls -l touch.$obj`
|
|
||||||
case $n in
|
|
||||||
"$o") ;;
|
|
||||||
*) toucho=1 ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if $cc -c pic.$src
|
if $cc -c pic.$src
|
||||||
then eval set x $probe_nmflags
|
then eval set x $probe_nmflags
|
||||||
|
@ -713,37 +625,34 @@ case $cc_dll:$cc_pic:$so:$dynamic:$static in
|
||||||
esac
|
esac
|
||||||
dld=$xx
|
dld=$xx
|
||||||
shared=$1
|
shared=$1
|
||||||
# does -nostartfiles make sense for C?
|
# does -nostartfiles make sense?
|
||||||
case $plusplus in
|
z=`wc -c < xxx$dll`
|
||||||
'') z=`wc -c < xxx$dll`
|
eval set x $probe_shared_nostart
|
||||||
eval set x $probe_shared_nostart
|
while :
|
||||||
while :
|
do shift
|
||||||
do shift
|
case $# in
|
||||||
case $# in
|
0) break ;;
|
||||||
0) break ;;
|
esac
|
||||||
esac
|
rm -f xxx$dll
|
||||||
rm -f xxx$dll
|
if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll
|
||||||
if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll
|
then case `wc -c < xxx$dll` in
|
||||||
then case `wc -c < xxx$dll` in
|
$z) ;;
|
||||||
$z) ;;
|
*) if test -s e
|
||||||
*) if test -s e
|
then case `cat e` in
|
||||||
then case `cat e` in
|
*[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*)
|
||||||
*[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*)
|
continue
|
||||||
continue
|
;;
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
case $shared in
|
|
||||||
'') shared=$1 ;;
|
|
||||||
*) shared="$shared $1" ;;
|
|
||||||
esac
|
esac
|
||||||
break
|
fi
|
||||||
;;
|
case $shared in
|
||||||
|
'') shared=$1 ;;
|
||||||
|
*) shared="$shared $1" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
break
|
||||||
done
|
;;
|
||||||
;;
|
esac
|
||||||
esac
|
fi
|
||||||
|
done
|
||||||
case $cc_dll in
|
case $cc_dll in
|
||||||
"") cc_dll=$cc_dll_def ;;
|
"") cc_dll=$cc_dll_def ;;
|
||||||
esac
|
esac
|
||||||
|
@ -1319,9 +1228,7 @@ case $stdlib in
|
||||||
fi
|
fi
|
||||||
tstlib="$tstlib $implib"
|
tstlib="$tstlib $implib"
|
||||||
if $cc -Dtype=void -Dcall=exit -c tstlib.$src && mv tstlib.$obj tst.$obj
|
if $cc -Dtype=void -Dcall=exit -c tstlib.$src && mv tstlib.$obj tst.$obj
|
||||||
then case $plusplus in
|
then probe_lxx=
|
||||||
'') probe_lxx= ;;
|
|
||||||
esac
|
|
||||||
l=
|
l=
|
||||||
for sym in $probe_l $probe_lxx
|
for sym in $probe_l $probe_lxx
|
||||||
do case $l in
|
do case $l in
|
||||||
|
@ -1666,9 +1573,6 @@ done
|
||||||
case $stdc in
|
case $stdc in
|
||||||
?*) dialect="$dialect ANSI" ;;
|
?*) dialect="$dialect ANSI" ;;
|
||||||
esac
|
esac
|
||||||
case $plusplus in
|
|
||||||
?*) dialect="$dialect C++" ;;
|
|
||||||
esac
|
|
||||||
case $hosted in
|
case $hosted in
|
||||||
"") dialect="$dialect CROSS" ;;
|
"") dialect="$dialect CROSS" ;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* Glenn Fowler <gsf@research.att.com> *
|
* Glenn Fowler <gsf@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#pragma clang diagnostic ignored "-Wdeprecated-register"
|
#pragma clang diagnostic ignored "-Wdeprecated-register"
|
||||||
#pragma clang diagnostic ignored "-Wparentheses"
|
#pragma clang diagnostic ignored "-Wparentheses"
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ command=${0##*/}
|
||||||
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
0123) USAGE=$'
|
0123) USAGE=$'
|
||||||
[-?
|
[-?
|
||||||
@(#)$Id: '$command$' (ksh 93u+m) 2021-12-15 $
|
@(#)$Id: '$command$' (ksh 93u+m) 2021-12-22 $
|
||||||
]
|
]
|
||||||
[-author?Glenn Fowler <gsf@research.att.com>]
|
[-author?Glenn Fowler <gsf@research.att.com>]
|
||||||
[-author?Contributors to https://github.com/ksh93/ksh]
|
[-author?Contributors to https://github.com/ksh93/ksh]
|
||||||
|
@ -252,13 +252,6 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
file (\bMamfile\b). A Mamfile contains a portable makefile description
|
file (\bMamfile\b). A Mamfile contains a portable makefile description
|
||||||
written in a simple dependency tree language using indented
|
written in a simple dependency tree language using indented
|
||||||
\bmake\b...\bdone\b blocks.]
|
\bmake\b...\bdone\b blocks.]
|
||||||
[+?Most component C source is prototyped. If \b$CC\b (default value
|
|
||||||
\bcc\b) is not a prototyping C compiler then \b'$command$' make\b runs
|
|
||||||
\bproto\b(1) on portions of the \b$PACKAGEROOT/src\b tree and places
|
|
||||||
the converted output files in the \b$PACKAGEROOT/proto/src\b tree.
|
|
||||||
Converted files are then viewpathed over the original source.
|
|
||||||
\bproto\b(1) converts an ANSI C subset to code that is compatible with
|
|
||||||
K&R, ANSI, and C++ dialects.]
|
|
||||||
[+?All scripts and commands under \b$PACKAGEROOT\b use \b$PATH\b
|
[+?All scripts and commands under \b$PACKAGEROOT\b use \b$PATH\b
|
||||||
relative pathnames (via the \bAST\b \bpathpath\b(3) function); there
|
relative pathnames (via the \bAST\b \bpathpath\b(3) function); there
|
||||||
are no embedded absolute pathnames. This means that binaries generated
|
are no embedded absolute pathnames. This means that binaries generated
|
||||||
|
@ -271,7 +264,7 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
|
||||||
|
|
||||||
[+SEE ALSO?\bautoconfig\b(1), \bcksum\b(1), \bexecrate\b(1), \bexpmake\b(1),
|
[+SEE ALSO?\bautoconfig\b(1), \bcksum\b(1), \bexecrate\b(1), \bexpmake\b(1),
|
||||||
\bgzip\b(1), \bmake\b(1), \bmamake\b(1), \bpax\b(1),
|
\bgzip\b(1), \bmake\b(1), \bmamake\b(1), \bpax\b(1),
|
||||||
\bpkgadd\b(1), \bpkgmk\b(1), \bproto\b(1), \bratz\b(1), \brpm\b(1),
|
\bpkgadd\b(1), \bpkgmk\b(1), \brpm\b(1),
|
||||||
\bsh\b(1), \btar\b(1), \boptget\b(3)]
|
\bsh\b(1), \btar\b(1), \boptget\b(3)]
|
||||||
'
|
'
|
||||||
case $* in
|
case $* in
|
||||||
|
@ -321,7 +314,6 @@ tab=" "
|
||||||
verbose=0
|
verbose=0
|
||||||
AUTHORIZE=
|
AUTHORIZE=
|
||||||
DEBUG=
|
DEBUG=
|
||||||
PROTOROOT=-
|
|
||||||
SHELLMAGIC=-
|
SHELLMAGIC=-
|
||||||
|
|
||||||
unset FIGNORE BINDIR DLLDIR ETCDIR FUNDIR INCLUDEDIR LIBDIR LOCALEDIR MANDIR SHAREDIR 2>/dev/null || true
|
unset FIGNORE BINDIR DLLDIR ETCDIR FUNDIR INCLUDEDIR LIBDIR LOCALEDIR MANDIR SHAREDIR 2>/dev/null || true
|
||||||
|
@ -507,13 +499,6 @@ DETAILS
|
||||||
Mamfile contains a portable makefile description written in a simple
|
Mamfile contains a portable makefile description written in a simple
|
||||||
dependency tree language using indented make...done blocks.
|
dependency tree language using indented make...done blocks.
|
||||||
|
|
||||||
Most component C source is prototyped. If $CC (default value cc) is not a
|
|
||||||
prototyping C compiler then package make runs proto(1) on portions of the
|
|
||||||
$PACKAGEROOT/src tree and places the converted output files in the
|
|
||||||
$PACKAGEROOT/proto/src tree. Converted files are then viewpathed over the
|
|
||||||
original source. proto(1) converts an ANSI C subset to code that is
|
|
||||||
compatible with K&R, ANSI, and C++ dialects.
|
|
||||||
|
|
||||||
All scripts and commands under $PACKAGEROOT use $PATH relative pathnames (via
|
All scripts and commands under $PACKAGEROOT use $PATH relative pathnames (via
|
||||||
the AST pathpath(3) function); there are no embedded absolute pathnames. This
|
the AST pathpath(3) function); there are no embedded absolute pathnames. This
|
||||||
means that binaries generated under $PACKAGEROOT may be copied to a different
|
means that binaries generated under $PACKAGEROOT may be copied to a different
|
||||||
|
@ -523,11 +508,10 @@ DETAILS
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
autoconfig(1), cksum(1), execrate(1), expmake(1), gzip(1), make(1),
|
autoconfig(1), cksum(1), execrate(1), expmake(1), gzip(1), make(1),
|
||||||
mamake(1), pax(1), pkgadd(1), pkgmk(1), proto(1), ratz(1), rpm(1), sh(1),
|
mamake(1), pax(1), pkgadd(1), pkgmk(1), rpm(1), sh(1), tar(1), optget(3)
|
||||||
tar(1), optget(3)
|
|
||||||
|
|
||||||
IMPLEMENTATION
|
IMPLEMENTATION
|
||||||
version package (ksh 93u+m) 2021-12-15
|
version package (ksh 93u+m) 2021-12-22
|
||||||
author Glenn Fowler <gsf@research.att.com>
|
author Glenn Fowler <gsf@research.att.com>
|
||||||
author Contributors to https://github.com/ksh93/ksh
|
author Contributors to https://github.com/ksh93/ksh
|
||||||
copyright (c) 1994-2012 AT&T Intellectual Property
|
copyright (c) 1994-2012 AT&T Intellectual Property
|
||||||
|
@ -2257,7 +2241,7 @@ cat $INITROOT/$i.sh
|
||||||
$show export PATH
|
$show export PATH
|
||||||
export PATH
|
export PATH
|
||||||
;;
|
;;
|
||||||
*) for i in package proto
|
*) for i in package
|
||||||
do if onpath $i
|
do if onpath $i
|
||||||
then EXECROOT=$(echo $_onpath_ | sed -e 's,//*[^/]*//*[^/]*$,,')
|
then EXECROOT=$(echo $_onpath_ | sed -e 's,//*[^/]*//*[^/]*$,,')
|
||||||
EXECTYPE=$(echo $EXECROOT | sed -e 's,.*/,,')
|
EXECTYPE=$(echo $EXECROOT | sed -e 's,.*/,,')
|
||||||
|
@ -2375,9 +2359,6 @@ cat $INITROOT/$i.sh
|
||||||
?*) USER_VPATH=$USER_VPATH:$i
|
?*) USER_VPATH=$USER_VPATH:$i
|
||||||
USER_VPATH_CHAIN="$USER_VPATH_CHAIN $p $i"
|
USER_VPATH_CHAIN="$USER_VPATH_CHAIN $p $i"
|
||||||
p=$i
|
p=$i
|
||||||
case $PROTOROOT in
|
|
||||||
-) executable $i/bin/mamake && PROTOROOT= ;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
@ -2533,87 +2514,18 @@ esac
|
||||||
|
|
||||||
checkaout() # cmd ...
|
checkaout() # cmd ...
|
||||||
{
|
{
|
||||||
case $PROTOROOT in
|
case $cc in
|
||||||
-) PROTOROOT=
|
'') _PACKAGE_cc=0
|
||||||
case $* in
|
;;
|
||||||
ratz) if test -f $INITROOT/ratz.c -a -w $PACKAGEROOT
|
*) _PACKAGE_cc=1
|
||||||
then test -f $INITROOT/hello.c || {
|
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
||||||
cat > $INITROOT/hello.c <<'!'
|
note "$INITROOT: INIT package source not found"
|
||||||
#ifndef printf
|
return 1
|
||||||
#include <stdio.h>
|
|
||||||
#endif
|
|
||||||
int main() { int new = 0; printf("hello world\n"); return new;}
|
|
||||||
!
|
|
||||||
}
|
|
||||||
test -f $INITROOT/p.c || {
|
|
||||||
cat > $INITROOT/p.c <<'!'
|
|
||||||
/*
|
|
||||||
* small test for prototyping cc
|
|
||||||
*/
|
|
||||||
|
|
||||||
int main(int argc, char** argv) { return argc || argv; }
|
|
||||||
!
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c -a -w $PACKAGEROOT || {
|
|
||||||
for i
|
|
||||||
do onpath $i || {
|
|
||||||
note "$i: command not found"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
done
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
case $cc in
|
|
||||||
'') _PACKAGE_cc=0
|
|
||||||
;;
|
|
||||||
*) _PACKAGE_cc=1
|
|
||||||
test -f $INITROOT/hello.c -a -f $INITROOT/p.c || {
|
|
||||||
note "$INITROOT: INIT package source not found"
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# check for prototyping cc
|
for i in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||||
# NOTE: proto.c must be K&R compatible
|
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || return
|
||||||
|
done
|
||||||
$CC -c $INITROOT/p.c >/dev/null 2>&1
|
|
||||||
c=$?
|
|
||||||
rm -f p.*
|
|
||||||
test 0 != "$c" && {
|
|
||||||
checkaout proto || return
|
|
||||||
PROTOROOT=$PACKAGEROOT/proto
|
|
||||||
$show PROTOROOT=$PACKAGEROOT/proto
|
|
||||||
export PROTOROOT
|
|
||||||
INITPROTO=$PROTOROOT/src/cmd/INIT
|
|
||||||
note "proto convert $PACKAGEROOT/src into $PROTOROOT/src"
|
|
||||||
dirs="src"
|
|
||||||
(
|
|
||||||
if test -f $PROTOROOT/UPDATE
|
|
||||||
then newer="-newer $PROTOROOT/UPDATE"
|
|
||||||
else newer=""
|
|
||||||
fi
|
|
||||||
case $exec in
|
|
||||||
'') cd $PACKAGEROOT
|
|
||||||
find $dirs -name '*.[CcHh]' $newer -print | proto -v -L - -C proto
|
|
||||||
;;
|
|
||||||
*) $exec cd $PACKAGEROOT
|
|
||||||
$exec "find $dirs -name '*.[CcHh]' $newer -print | proto -L - -C proto"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
$exec touch $PROTOROOT/UPDATE
|
|
||||||
)
|
|
||||||
VPATH=$INSTALLROOT:$PROTOROOT:$PACKAGEROOT$USER_VPATH
|
|
||||||
$show VPATH=$VPATH
|
|
||||||
export VPATH
|
|
||||||
}
|
|
||||||
|
|
||||||
for i in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
|
||||||
do test -d $PACKAGEROOT/$i || $exec mkdir $PACKAGEROOT/$i || return
|
|
||||||
done
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case $_PACKAGE_cc in
|
case $_PACKAGE_cc in
|
||||||
|
@ -2672,30 +2584,12 @@ int main(int argc, char** argv) { return argc || argv; }
|
||||||
case $(ls -t $INITROOT/$i.c $INSTALLROOT/bin/$i 2>/dev/null) in
|
case $(ls -t $INITROOT/$i.c $INSTALLROOT/bin/$i 2>/dev/null) in
|
||||||
"$INITROOT/$i.c"*)
|
"$INITROOT/$i.c"*)
|
||||||
note "update $INSTALLROOT/bin/$i"
|
note "update $INSTALLROOT/bin/$i"
|
||||||
if test proto != "$i" && executable $INSTALLROOT/bin/proto
|
if test ! -d $INSTALLROOT/bin
|
||||||
then case $exec in
|
then for j in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
||||||
'') $INSTALLROOT/bin/proto -p $INITROOT/$i.c > $i.c || return ;;
|
do test -d $PACKAGEROOT/$j || $exec mkdir $PACKAGEROOT/$j || return
|
||||||
*) $exec "$INSTALLROOT/bin/proto -p $INITROOT/$i.c > $i.c" ;;
|
done
|
||||||
esac
|
|
||||||
$exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $i.c || return
|
|
||||||
$exec rm -f $i.c
|
|
||||||
else if test ! -d $INSTALLROOT/bin
|
|
||||||
then for j in arch arch/$HOSTTYPE arch/$HOSTTYPE/bin
|
|
||||||
do test -d $PACKAGEROOT/$j || $exec mkdir $PACKAGEROOT/$j || return
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
if test '' != "$PROTOROOT" -a -f $INITPROTO/$i.c
|
|
||||||
then $exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITPROTO/$i.c || return
|
|
||||||
else $exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITROOT/$i.c || return
|
|
||||||
fi
|
|
||||||
case $i:$exec in
|
|
||||||
proto:) test -d $INSTALLROOT/include || mkdir $INSTALLROOT/include
|
|
||||||
$INSTALLROOT/bin/proto -f /dev/null > $i.c
|
|
||||||
cmp -s $i.c $INSTALLROOT/include/prototyped.h 2>/dev/null || cp $i.c $INSTALLROOT/include/prototyped.h
|
|
||||||
rm $i.c
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
|
$exec $CC $CCFLAGS -o $INSTALLROOT/bin/$i $INITROOT/$i.c || return
|
||||||
test -f $i.o && $exec rm -f $i.o
|
test -f $i.o && $exec rm -f $i.o
|
||||||
i=$PATH
|
i=$PATH
|
||||||
PATH=/bin
|
PATH=/bin
|
||||||
|
@ -3172,9 +3066,9 @@ cat $j $k
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# initialize a few mamake related commands
|
# initialize mamake
|
||||||
|
|
||||||
checkaout mamake proto ratz || exit
|
checkaout mamake || exit
|
||||||
|
|
||||||
# execrate if necessary
|
# execrate if necessary
|
||||||
|
|
||||||
|
@ -3529,7 +3423,7 @@ results)set '' $target
|
||||||
case $filter in
|
case $filter in
|
||||||
errors) $exeg egrep '^pax:|\*\*\*' $j
|
errors) $exeg egrep '^pax:|\*\*\*' $j
|
||||||
;;
|
;;
|
||||||
*) $exec egrep -iv '^($||[\+\[]|cc[^-:]|kill |make.*(file system time|has been replaced)|so|[0123456789]+ error|uncrate |[0123456789]+ block|ar: creat|iffe: test: |conf: (check|generate|test)|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*=|gsf@research|ar:.*warning|cpio:|ld:.*(duplicate symbol|to obtain more information)|[0123456789]*$|(checking|creating|touch) [/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789])| obsolete predefined symbol | is (almost always misused|dangerous|deprecated|not implemented)| trigraph| assigned to | cast .* different size| integer overflow .*<<| optimization may be attained | passed as |::__builtin|pragma.*prototyped|^creating.*\.a$|warning.*not optimized|exceeds size thresh|ld:.*preempts|is unchanged|with value >=|(-l|lib)\*|/(ast|sys)/(dir|limits|param|stropts)\.h.*redefined|usage|base registers|`\.\.\.` obsolete'"$i" $j |
|
*) $exec egrep -iv '^($||[\+\[]|cc[^-:]|kill |make.*(file system time|has been replaced)|so|[0123456789]+ error|uncrate |[0123456789]+ block|ar: creat|iffe: test: |conf: (check|generate|test)|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*=|gsf@research|ar:.*warning|cpio:|ld:.*(duplicate symbol|to obtain more information)|[0123456789]*$|(checking|creating|touch) [/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789])| obsolete predefined symbol | is (almost always misused|dangerous|deprecated|not implemented)| trigraph| assigned to | cast .* different size| integer overflow .*<<| optimization may be attained | passed as |::__builtin|^creating.*\.a$|warning.*not optimized|exceeds size thresh|ld:.*preempts|is unchanged|with value >=|(-l|lib)\*|/(ast|sys)/(dir|limits|param|stropts)\.h.*redefined|usage|base registers|`\.\.\.` obsolete'"$i" $j |
|
||||||
$exec grep :
|
$exec grep :
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -3564,6 +3458,7 @@ use) # finalize the environment
|
||||||
esac
|
esac
|
||||||
eval PACKAGE_USE=$package_use
|
eval PACKAGE_USE=$package_use
|
||||||
export PACKAGE_USE
|
export PACKAGE_USE
|
||||||
|
unset LC_ALL # respect the user's locale again; avoids multibyte corruption
|
||||||
|
|
||||||
# run the command
|
# run the command
|
||||||
|
|
||||||
|
|
|
@ -37,9 +37,6 @@ done
|
||||||
for i in $probe_header
|
for i in $probe_header
|
||||||
do echo "#include <$i>"
|
do echo "#include <$i>"
|
||||||
done
|
done
|
||||||
echo '#ifdef __cplusplus'
|
|
||||||
echo "int _Pr0b3_cplus=__cplusplus;"
|
|
||||||
echo '#endif'
|
|
||||||
echo '#ifdef _UWIN'
|
echo '#ifdef _UWIN'
|
||||||
echo "int _Pr0b3_uwin=_UWIN;"
|
echo "int _Pr0b3_uwin=_UWIN;"
|
||||||
echo '#endif'
|
echo '#endif'
|
||||||
|
@ -71,7 +68,6 @@ echo '#endif'
|
||||||
|
|
||||||
include=
|
include=
|
||||||
uwin=
|
uwin=
|
||||||
cplus=
|
|
||||||
|
|
||||||
$cc -E easy.c 2>&1 |
|
$cc -E easy.c 2>&1 |
|
||||||
egrep -i '^(#(line)? 1 .*\.[hH]| *int +_Pr0b3_[a-zA-Z_]* *= *[0-9])' |
|
egrep -i '^(#(line)? 1 .*\.[hH]| *int +_Pr0b3_[a-zA-Z_]* *= *[0-9])' |
|
||||||
|
@ -133,11 +129,6 @@ then : the payoff
|
||||||
set -- $(whence $cmd) "$@"
|
set -- $(whence $cmd) "$@"
|
||||||
typ=$(package)
|
typ=$(package)
|
||||||
dialect="ANSI CLOSURE DYNAMIC EXPORT=DLL LIBPP -I-"
|
dialect="ANSI CLOSURE DYNAMIC EXPORT=DLL LIBPP -I-"
|
||||||
case ${cc##*/} in
|
|
||||||
*CC*) dialect="$dialect C++"
|
|
||||||
cplus=1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
ld=${cc%cc}ld
|
ld=${cc%cc}ld
|
||||||
if [[ ! -x $ld ]]
|
if [[ ! -x $ld ]]
|
||||||
then ld=${cc%/*}/ld
|
then ld=${cc%/*}/ld
|
||||||
|
|
3215
src/cmd/INIT/proto.c
3215
src/cmd/INIT/proto.c
File diff suppressed because it is too large
Load diff
35
src/cmd/INIT/proto.sh
Normal file
35
src/cmd/INIT/proto.sh
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
########################################################################
|
||||||
|
# #
|
||||||
|
# This file is part of the ksh 93u+m package #
|
||||||
|
# Copyright (c) 2021 Contributors to ksh 93u+m #
|
||||||
|
# <https://github.com/ksh93/ksh> #
|
||||||
|
# and is licensed under the #
|
||||||
|
# Eclipse Public License, Version 1.0 #
|
||||||
|
# #
|
||||||
|
# A copy of the License is available at #
|
||||||
|
# http://www.eclipse.org/org/documents/epl-v10.html #
|
||||||
|
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
|
||||||
|
# #
|
||||||
|
# Martijn Dekker <martijn@inlv.org> #
|
||||||
|
# #
|
||||||
|
########################################################################
|
||||||
|
|
||||||
|
# proto(1) has been removed. This is a backwards compatibility stub that allows
|
||||||
|
# compiling older AST code (with Mamfiles containing proto commands) using the
|
||||||
|
# current INIT system. This stub ignores all options, then invokes 'cat'.
|
||||||
|
|
||||||
|
while getopts ':dfhinprstvzPSC:e:l:o:L:' opt
|
||||||
|
do case $opt in
|
||||||
|
\?) case $OPTARG in
|
||||||
|
+) ;;
|
||||||
|
*) echo "proto: $OPTARG: unknown option"
|
||||||
|
echo 'Usage: proto [-dfhinprstvzP+S] [-C directory] [-e package] [-l file]'
|
||||||
|
echo ' [-o "name='\''value'\'' ..."] [-L file] file ...'
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac >&2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $((OPTIND - 1))
|
||||||
|
exec cat -- "$@"
|
5310
src/cmd/INIT/ratz.c
5310
src/cmd/INIT/ratz.c
File diff suppressed because it is too large
Load diff
|
@ -21,8 +21,6 @@ setv IFFEFLAGS
|
||||||
setv LDFLAGS
|
setv LDFLAGS
|
||||||
make .INIT
|
make .INIT
|
||||||
make ${PACKAGE_ast_INCLUDE}/cmdlist.h
|
make ${PACKAGE_ast_INCLUDE}/cmdlist.h
|
||||||
make ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/prototyped.h dontcare
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/cmdlist.h
|
done ${PACKAGE_ast_INCLUDE}/cmdlist.h
|
||||||
exec - sed -e '/^CMDLIST(.*)$/!d' -e 's/CMDLIST(\(.*\))/\1/' -e '/^getconf$/d' -e '/^ln$/d' -e '/^mv$/d' -e '/^md5sum$/d' -e '/^sum$/d' ${PACKAGE_ast_INCLUDE}/cmdlist.h
|
exec - sed -e '/^CMDLIST(.*)$/!d' -e 's/CMDLIST(\(.*\))/\1/' -e '/^getconf$/d' -e '/^ln$/d' -e '/^mv$/d' -e '/^md5sum$/d' -e '/^sum$/d' ${PACKAGE_ast_INCLUDE}/cmdlist.h
|
||||||
bind -lcmd
|
bind -lcmd
|
||||||
|
@ -43,7 +41,6 @@ make install
|
||||||
prev ${PACKAGE_ast_INCLUDE}/regex.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/regex.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/proc.h implicit
|
make ${PACKAGE_ast_INCLUDE}/proc.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/proc.h
|
done ${PACKAGE_ast_INCLUDE}/proc.h
|
||||||
prev ${PACKAGE_ast_INCLUDE}/error.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/error.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/cmd.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/cmd.h implicit
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
set prototyped
|
|
||||||
|
|
||||||
header sys/types.h
|
header sys/types.h
|
||||||
header pty.h
|
header pty.h
|
||||||
header libutil.h
|
header libutil.h
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
static const char usage[] =
|
static const char usage[] =
|
||||||
"[-?\n@(#)pty (AT&T Research) 2013-05-22\n]"
|
"[-?\n@(#)pty (AT&T Research) 2013-05-22\n]"
|
||||||
|
|
|
@ -77,10 +77,7 @@ make install
|
||||||
done ${PACKAGE_ast_INCLUDE}/dlldefs.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/dlldefs.h dontcare
|
||||||
make ${PACKAGE_ast_INCLUDE}/cmdext.h implicit
|
make ${PACKAGE_ast_INCLUDE}/cmdext.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/shcmd.h implicit
|
make ${PACKAGE_ast_INCLUDE}/shcmd.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/prototyped.h dontcare
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/shcmd.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/shcmd.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/cmdext.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/cmdext.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/shcmd.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/shcmd.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/stak.h implicit
|
make ${PACKAGE_ast_INCLUDE}/stak.h implicit
|
||||||
|
@ -120,13 +117,10 @@ make install
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_wchar.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_wchar.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/regex.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/regex.h dontcare
|
||||||
make ${PACKAGE_ast_INCLUDE}/getopt.h implicit
|
make ${PACKAGE_ast_INCLUDE}/getopt.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/ast_getopt.h implicit
|
make ${PACKAGE_ast_INCLUDE}/ast_getopt.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_getopt.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_getopt.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/getopt.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/getopt.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_map.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_map.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/ast_botch.h implicit
|
make ${PACKAGE_ast_INCLUDE}/ast_botch.h implicit
|
||||||
|
@ -146,12 +140,9 @@ make install
|
||||||
make ${PACKAGE_ast_INCLUDE}/ast_lib.h implicit
|
make ${PACKAGE_ast_INCLUDE}/ast_lib.h implicit
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_lib.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_lib.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_std.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_std.h dontcare
|
||||||
done ${PACKAGE_ast_INCLUDE}/sfio.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/sfio.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/stk.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/stk.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/stak.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/stak.h dontcare
|
||||||
make ${PACKAGE_ast_INCLUDE}/error.h implicit
|
make ${PACKAGE_ast_INCLUDE}/error.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/option.h implicit
|
make ${PACKAGE_ast_INCLUDE}/option.h implicit
|
||||||
|
@ -163,15 +154,11 @@ make install
|
||||||
done ${PACKAGE_ast_INCLUDE}/vmalloc.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/vmalloc.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/sfio.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/sfio.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_std.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_std.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/option.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/option.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/error.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/error.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/cmd.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/cmd.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/shcmd.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/shcmd.h implicit
|
||||||
make include/nval.h implicit
|
make include/nval.h implicit
|
||||||
|
@ -213,7 +200,6 @@ make install
|
||||||
make ${PACKAGE_ast_INCLUDE}/ast_time.h implicit
|
make ${PACKAGE_ast_INCLUDE}/ast_time.h implicit
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_time.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_time.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/times.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/times.h dontcare
|
||||||
done FEATURE/time generated
|
done FEATURE/time generated
|
||||||
make include/builtins.h implicit
|
make include/builtins.h implicit
|
||||||
|
@ -292,7 +278,6 @@ make install
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_mode.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_mode.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_fs.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_fs.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_std.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_std.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/ls.h
|
done ${PACKAGE_ast_INCLUDE}/ls.h
|
||||||
prev include/builtins.h implicit
|
prev include/builtins.h implicit
|
||||||
prev include/name.h implicit
|
prev include/name.h implicit
|
||||||
|
@ -442,7 +427,6 @@ make install
|
||||||
make ${PACKAGE_ast_INCLUDE}/ast_ccode.h implicit
|
make ${PACKAGE_ast_INCLUDE}/ast_ccode.h implicit
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_ccode.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_ccode.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_common.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/ccode.h
|
done ${PACKAGE_ast_INCLUDE}/ccode.h
|
||||||
make ${PACKAGE_ast_INCLUDE}/tmx.h implicit
|
make ${PACKAGE_ast_INCLUDE}/tmx.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/tv.h implicit
|
make ${PACKAGE_ast_INCLUDE}/tv.h implicit
|
||||||
|
@ -451,7 +435,6 @@ make install
|
||||||
make ${PACKAGE_ast_INCLUDE}/tm.h implicit
|
make ${PACKAGE_ast_INCLUDE}/tm.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/times.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/times.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/tm.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/tm.h dontcare
|
||||||
done ${PACKAGE_ast_INCLUDE}/tmx.h
|
done ${PACKAGE_ast_INCLUDE}/tmx.h
|
||||||
make include/streval.h implicit
|
make include/streval.h implicit
|
||||||
|
@ -800,12 +783,10 @@ make install
|
||||||
make dirlib.h implicit
|
make dirlib.h implicit
|
||||||
done dirlib.h dontcare virtual
|
done dirlib.h dontcare virtual
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast_lib.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast_lib.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_dir.h
|
done ${PACKAGE_ast_INCLUDE}/ast_dir.h
|
||||||
prev ${PACKAGE_ast_INCLUDE}/stak.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/stak.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ls.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ls.h implicit
|
||||||
make ${PACKAGE_ast_INCLUDE}/glob.h implicit
|
make ${PACKAGE_ast_INCLUDE}/glob.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/glob.h
|
done ${PACKAGE_ast_INCLUDE}/glob.h
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
||||||
prev include/test.h implicit
|
prev include/test.h implicit
|
||||||
|
@ -946,7 +927,6 @@ make install
|
||||||
make ${PACKAGE_ast_INCLUDE}/ast_wait.h implicit
|
make ${PACKAGE_ast_INCLUDE}/ast_wait.h implicit
|
||||||
done ${PACKAGE_ast_INCLUDE}/ast_wait.h dontcare
|
done ${PACKAGE_ast_INCLUDE}/ast_wait.h dontcare
|
||||||
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
prev ${PACKAGE_ast_INCLUDE}/ast.h implicit
|
||||||
prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit
|
|
||||||
done ${PACKAGE_ast_INCLUDE}/wait.h
|
done ${PACKAGE_ast_INCLUDE}/wait.h
|
||||||
prev include/defs.h implicit
|
prev include/defs.h implicit
|
||||||
done sh/jobs.c
|
done sh/jobs.c
|
||||||
|
@ -1508,26 +1488,23 @@ make install
|
||||||
make ${PACKAGE_ast_INCLUDE}/nval.h
|
make ${PACKAGE_ast_INCLUDE}/nval.h
|
||||||
prev ${PACKAGE_ast_INCLUDE}
|
prev ${PACKAGE_ast_INCLUDE}
|
||||||
prev include/nval.h
|
prev include/nval.h
|
||||||
exec - proto -p -s include/nval.h > 1.${COTEMP}.x
|
exec - if cmp 2>/dev/null -s include/nval.h ${PACKAGE_ast_INCLUDE}/nval.h
|
||||||
exec - if cmp 2>/dev/null -s ${PACKAGE_ast_INCLUDE}/nval.h 1.${COTEMP}.x
|
exec - then :
|
||||||
exec - then rm -f 1.${COTEMP}.x
|
exec - else ${STDCP} include/nval.h ${PACKAGE_ast_INCLUDE}/nval.h
|
||||||
exec - else mv 1.${COTEMP}.x ${PACKAGE_ast_INCLUDE}/nval.h
|
|
||||||
exec - fi
|
exec - fi
|
||||||
done ${PACKAGE_ast_INCLUDE}/nval.h generated
|
done ${PACKAGE_ast_INCLUDE}/nval.h generated
|
||||||
make ${PACKAGE_ast_INCLUDE}/shell.h
|
make ${PACKAGE_ast_INCLUDE}/shell.h
|
||||||
prev include/shell.h
|
prev include/shell.h
|
||||||
exec - proto -p -s include/shell.h > 1.${COTEMP}.x
|
exec - if cmp 2>/dev/null -s include/shell.h ${PACKAGE_ast_INCLUDE}/shell.h
|
||||||
exec - if cmp 2>/dev/null -s ${PACKAGE_ast_INCLUDE}/shell.h 1.${COTEMP}.x
|
exec - then :
|
||||||
exec - then rm -f 1.${COTEMP}.x
|
exec - else ${STDCP} include/shell.h ${PACKAGE_ast_INCLUDE}/shell.h
|
||||||
exec - else mv 1.${COTEMP}.x ${PACKAGE_ast_INCLUDE}/shell.h
|
|
||||||
exec - fi
|
exec - fi
|
||||||
done ${PACKAGE_ast_INCLUDE}/shell.h generated
|
done ${PACKAGE_ast_INCLUDE}/shell.h generated
|
||||||
make ${PACKAGE_ast_INCLUDE}/history.h
|
make ${PACKAGE_ast_INCLUDE}/history.h
|
||||||
prev include/history.h
|
prev include/history.h
|
||||||
exec - proto -p -s include/history.h > 1.${COTEMP}.x
|
exec - if cmp 2>/dev/null -s include/history.h ${PACKAGE_ast_INCLUDE}/history.h
|
||||||
exec - if cmp 2>/dev/null -s ${PACKAGE_ast_INCLUDE}/history.h 1.${COTEMP}.x
|
exec - then :
|
||||||
exec - then rm -f 1.${COTEMP}.x
|
exec - else ${STDCP} include/history.h ${PACKAGE_ast_INCLUDE}/history.h
|
||||||
exec - else mv 1.${COTEMP}.x ${PACKAGE_ast_INCLUDE}/history.h
|
|
||||||
exec - fi
|
exec - fi
|
||||||
done ${PACKAGE_ast_INCLUDE}/history.h generated
|
done ${PACKAGE_ast_INCLUDE}/history.h generated
|
||||||
make ${INSTALLROOT}/bin/suid_exec
|
make ${INSTALLROOT}/bin/suid_exec
|
||||||
|
|
|
@ -620,8 +620,8 @@ ____
|
||||||
10-09-29 A bug in which loading a function from FPATH could leave a file
|
10-09-29 A bug in which loading a function from FPATH could leave a file
|
||||||
descriptor open has been fixed.
|
descriptor open has been fixed.
|
||||||
10-09-28 +A new compile option SHOPT_FIXEDARRAY has been added and is being
|
10-09-28 +A new compile option SHOPT_FIXEDARRAY has been added and is being
|
||||||
evaluated. It allows fixed sized indexed arrays be to defined
|
evaluated. It allows fixed-size indexed arrays be to defined
|
||||||
using "typeset array[dim1][dim2]...[dimn]". Fixed sized arrays
|
using "typeset array[dim1][dim2]...[dimn]". Fixed-size arrays
|
||||||
are used the same way indexed arrays are. Currently, only fixed
|
are used the same way indexed arrays are. Currently, only fixed
|
||||||
arrays of fixed objects (float, int, and justified objects) are
|
arrays of fixed objects (float, int, and justified objects) are
|
||||||
supported.
|
supported.
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* alarm [-r] [varname [+]when]
|
* alarm [-r] [varname [+]when]
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* cd [-L] [-Pe] [dirname]
|
* cd [-L] [-Pe] [dirname]
|
||||||
* cd [-L] [-Pe] [old] [new]
|
* cd [-L] [-Pe] [old] [new]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* break [n]
|
* break [n]
|
||||||
* continue [n]
|
* continue [n]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
||||||
#define ENUM_ID "enum (ksh 93u+m) 2021-12-17"
|
#define ENUM_ID "enum (ksh 93u+m) 2021-12-17"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* getopts [-a name] optstring name [args...]
|
* getopts [-a name] optstring name [args...]
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
#include <stak.h>
|
#include <stak.h>
|
||||||
#include <ls.h>
|
#include <ls.h>
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* bg [job...]
|
* bg [job...]
|
||||||
* disown [job...]
|
* disown [job...]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* mkservice varname pathname
|
* mkservice varname pathname
|
||||||
* eloop [-t timeout]
|
* eloop [-t timeout]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* echo [arg...]
|
* echo [arg...]
|
||||||
* print [-enprsvC] [-f format] [-u fd] [string ...]
|
* print [-enprsvC] [-f format] [-u fd] [string ...]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* read [-ACprsSv] [-d delim] [-u fd] [-t timeout] [-n count] [-N count] [var?prompt] [var ...]
|
* read [-ACprsSv] [-d delim] [-u fd] [-t timeout] [-n count] [-N count] [var?prompt] [var ...]
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* regression test intercept control
|
* regression test intercept control
|
||||||
* enable with 'SHOPT REGRESS=1' in src/cmd/ksh93/SHOPT.sh
|
* enable with 'SHOPT REGRESS=1' in src/cmd/ksh93/SHOPT.sh
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* sleep [-s] duration
|
* sleep [-s] duration
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* test expression
|
* test expression
|
||||||
* [ expression ]
|
* [ expression ]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* trap [-p] action sig...
|
* trap [-p] action sig...
|
||||||
* kill [-lL] [sig...]
|
* kill [-lL] [sig...]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* export [-p] [arg...]
|
* export [-p] [arg...]
|
||||||
* readonly [-p] [arg...]
|
* readonly [-p] [arg...]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* ulimit [-HSaMctdfxlqenupmrbiswTv] [limit]
|
* ulimit [-HSaMctdfxlqenupmrbiswTv] [limit]
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* umask [-S] [mask]
|
* umask [-S] [mask]
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* command [-pvVx] name [arg...]
|
* command [-pvVx] name [arg...]
|
||||||
* whence [-afpqv] name...
|
* whence [-afpqv] name...
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include "FEATURE/options"
|
#include "FEATURE/options"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#include "shell.h"
|
#include "shell.h"
|
||||||
#include "shlex.h"
|
#include "shlex.h"
|
||||||
#include "FEATURE/options"
|
#include "FEATURE/options"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#include <ast.h>
|
#include <ast.h>
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#include <ast.h>
|
#include <ast.h>
|
||||||
#include "ulimit.h"
|
#include "ulimit.h"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
* S. R. Bourne
|
* S. R. Bourne
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
#include "name.h"
|
#include "name.h"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* data for string evaluator library
|
* data for string evaluator library
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* tables for the test builtin [[ ... ]] and [ ... ]
|
* tables for the test builtin [[ ... ]] and [ ... ]
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#include <ast.h>
|
#include <ast.h>
|
||||||
#include "FEATURE/options"
|
#include "FEATURE/options"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* completion.c - command and file completion for shell editors
|
* completion.c - command and file completion for shell editors
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* edit.c - common routines for vi and emacs one line editors in shell
|
* edit.c - common routines for vi and emacs one line editors in shell
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/* Original version by Michael T. Veach
|
/* Original version by Michael T. Veach
|
||||||
* Adapted for ksh by David Korn */
|
* Adapted for ksh by David Korn */
|
||||||
/* EMACS_MODES: c tabstop=4
|
/* EMACS_MODES: c tabstop=4
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* bash style history expansion
|
* bash style history expansion
|
||||||
*
|
*
|
||||||
|
@ -591,7 +590,7 @@ getsel:
|
||||||
{
|
{
|
||||||
/* preset old with match from !?string? */
|
/* preset old with match from !?string? */
|
||||||
if(!sb.str[0] && wm)
|
if(!sb.str[0] && wm)
|
||||||
sb.str[0] = sh_strdup(sfsetbuf(wm, (Void_t*)1, 0));
|
sb.str[0] = sh_strdup(sfsetbuf(wm, (void*)1, 0));
|
||||||
cp = parse_subst(cp, &sb);
|
cp = parse_subst(cp, &sb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -608,7 +607,7 @@ getsel:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* need pointer for strstr() */
|
/* need pointer for strstr() */
|
||||||
str = sfsetbuf(tmp, (Void_t*)1, 0);
|
str = sfsetbuf(tmp, (void*)1, 0);
|
||||||
|
|
||||||
flag |= HIST_SUBSTITUTE;
|
flag |= HIST_SUBSTITUTE;
|
||||||
while(flag & HIST_SUBSTITUTE)
|
while(flag & HIST_SUBSTITUTE)
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* History file manipulation routines
|
* History file manipulation routines
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/* Adapted for ksh by David Korn */
|
/* Adapted for ksh by David Korn */
|
||||||
/*+ VI.C P.D. Sullivan
|
/*+ VI.C P.D. Sullivan
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
set prototyped
|
|
||||||
hdr nc,exec_attr
|
hdr nc,exec_attr
|
||||||
mem exception.name,_exception.name math.h
|
mem exception.name,_exception.name math.h
|
||||||
lib setreuid,setregid,nice,fork,spawnveg,fchdir
|
lib setreuid,setregid,nice,fork,spawnveg,fchdir
|
||||||
|
@ -21,16 +20,12 @@ tst note{ determining extra bytes per argument for arguments list }end output{
|
||||||
* even if all the arguments should fit in ARG_MAX based on their length.
|
* even if all the arguments should fit in ARG_MAX based on their length.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* AST includes */
|
|
||||||
#include <ast.h>
|
#include <ast.h>
|
||||||
#include <error.h>
|
#include <error.h>
|
||||||
#include <sfio.h>
|
#include <sfio.h>
|
||||||
#include <stak.h>
|
#include <stak.h>
|
||||||
#include <wait.h>
|
#include <wait.h>
|
||||||
|
|
||||||
/* Standard includes */
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
int main(int argc,char *argv[])
|
int main(int argc,char *argv[])
|
||||||
{
|
{
|
||||||
int extra_bytes = 0, envlen, argmax, i;
|
int extra_bytes = 0, envlen, argmax, i;
|
||||||
|
|
|
@ -122,7 +122,6 @@ eval `iffe $iffeflags -c "$cc" - dat,npt,mac $lib $iffehdrs $iffelibs 2>&$stderr
|
||||||
eval `iffe $iffeflags -c "$cc" - num $nums $iffehdrs $iffelibs 2>&$stderr`
|
eval `iffe $iffeflags -c "$cc" - num $nums $iffehdrs $iffelibs 2>&$stderr`
|
||||||
|
|
||||||
cat <<!
|
cat <<!
|
||||||
#pragma prototyped
|
|
||||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
|
||||||
/* : : generated by $command from $table : : */
|
/* : : generated by $command from $table : : */
|
||||||
|
|
|
@ -123,7 +123,6 @@ tst socketpair_shutdown_mode note{ fchmod() after socketpair() shutdown() }end e
|
||||||
}
|
}
|
||||||
}end
|
}end
|
||||||
cat{
|
cat{
|
||||||
#pragma prototyped
|
|
||||||
#ifdef _lib_poll
|
#ifdef _lib_poll
|
||||||
# define poll _SYS_poll
|
# define poll _SYS_poll
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef ARG_RAW
|
#ifndef ARG_RAW
|
||||||
/*
|
/*
|
||||||
* struct to hold a word argument
|
* struct to hold a word argument
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#ifndef __builtins_h_defined
|
#ifndef __builtins_h_defined
|
||||||
#define __builtins_h_defined
|
#define __builtins_h_defined
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
|
@ -417,7 +416,7 @@ extern char *sh_getcwd(void);
|
||||||
#define sh_getstate() (sh.st.states)
|
#define sh_getstate() (sh.st.states)
|
||||||
#define sh_setstate(x) (sh.st.states = (x))
|
#define sh_setstate(x) (sh.st.states = (x))
|
||||||
|
|
||||||
#define sh_sigcheck(shp) do{if(shp->trapnote&SH_SIGSET)sh_exit(SH_EXITSIG);} while(0)
|
#define sh_sigcheck(shp) do{if((shp)->trapnote&SH_SIGSET)sh_exit(SH_EXITSIG);} while(0)
|
||||||
|
|
||||||
extern int32_t sh_mailchk;
|
extern int32_t sh_mailchk;
|
||||||
extern const char e_dict[];
|
extern const char e_dict[];
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef SEARCHSIZE
|
#ifndef SEARCHSIZE
|
||||||
/*
|
/*
|
||||||
* edit.h - common data structure for vi and emacs edit options
|
* edit.h - common data structure for vi and emacs edit options
|
||||||
|
@ -238,11 +237,11 @@ extern int hist_expand(const char *, char **);
|
||||||
#endif /* SHOPT_HISTEXPAND */
|
#endif /* SHOPT_HISTEXPAND */
|
||||||
|
|
||||||
#if SHOPT_ESH
|
#if SHOPT_ESH
|
||||||
extern void emacs_redraw(Void_t*);
|
extern void emacs_redraw(void*);
|
||||||
#endif /* SHOPT_ESH */
|
#endif /* SHOPT_ESH */
|
||||||
|
|
||||||
#if SHOPT_VSH
|
#if SHOPT_VSH
|
||||||
extern void vi_redraw(Void_t*);
|
extern void vi_redraw(void*);
|
||||||
#endif /* SHOPT_VSH */
|
#endif /* SHOPT_VSH */
|
||||||
|
|
||||||
#endif /* !SEARCHSIZE */
|
#endif /* !SEARCHSIZE */
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef SH_SIGBITS
|
#ifndef SH_SIGBITS
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef fcgetc
|
#ifndef fcgetc
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef HIST_VERSION
|
#ifndef HIST_VERSION
|
||||||
/*
|
/*
|
||||||
* Interface for history mechanism
|
* Interface for history mechanism
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
* David Korn
|
* David Korn
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef JOB_NFLAG
|
#ifndef JOB_NFLAG
|
||||||
/*
|
/*
|
||||||
* Interface to job control for shell
|
* Interface to job control for shell
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef S_BREAK
|
#ifndef S_BREAK
|
||||||
#define S_BREAK 1 /* end of token */
|
#define S_BREAK 1 /* end of token */
|
||||||
#define S_EOF 2 /* end of buffer */
|
#define S_EOF 2 /* end of buffer */
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef _NV_PRIVATE
|
#ifndef _NV_PRIVATE
|
||||||
/*
|
/*
|
||||||
* This is the implementation header file for name-value pairs
|
* This is the implementation header file for name-value pairs
|
||||||
|
@ -76,7 +75,7 @@ union Value
|
||||||
#if SHOPT_FIXEDARRAY
|
#if SHOPT_FIXEDARRAY
|
||||||
# define ARRAY_FIXED ARRAY_NOCLONE /* For index values */
|
# define ARRAY_FIXED ARRAY_NOCLONE /* For index values */
|
||||||
#endif /* SHOPT_FIXEDARRAY */
|
#endif /* SHOPT_FIXEDARRAY */
|
||||||
#define NV_FARRAY 0x10000000 /* fixed sized arrays */
|
#define NV_FARRAY 0x10000000 /* fixed-size arrays */
|
||||||
#define NV_ASETSUB 8 /* set subscript */
|
#define NV_ASETSUB 8 /* set subscript */
|
||||||
|
|
||||||
/* These flags are used as options to array_get() */
|
/* These flags are used as options to array_get() */
|
||||||
|
@ -213,7 +212,7 @@ extern Namval_t *nv_parent(Namval_t*);
|
||||||
extern char *nv_getbuf(size_t);
|
extern char *nv_getbuf(size_t);
|
||||||
extern Namval_t *nv_mount(Namval_t*, const char *name, Dt_t*);
|
extern Namval_t *nv_mount(Namval_t*, const char *name, Dt_t*);
|
||||||
extern Namval_t *nv_arraychild(Namval_t*, Namval_t*, int);
|
extern Namval_t *nv_arraychild(Namval_t*, Namval_t*, int);
|
||||||
extern int nv_compare(Dt_t*, Void_t*, Void_t*, Dtdisc_t*);
|
extern int nv_compare(Dt_t*, void*, void*, Dtdisc_t*);
|
||||||
extern void nv_outnode(Namval_t*,Sfio_t*, int, int);
|
extern void nv_outnode(Namval_t*,Sfio_t*, int, int);
|
||||||
extern int nv_subsaved(Namval_t*, int);
|
extern int nv_subsaved(Namval_t*, int);
|
||||||
extern void nv_typename(Namval_t*, Sfio_t*);
|
extern void nv_typename(Namval_t*, Sfio_t*);
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* national.h - definitions for multibyte character sets
|
* national.h - definitions for multibyte character sets
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef NV_DEFAULT
|
#ifndef NV_DEFAULT
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
|
@ -87,7 +86,7 @@ struct Namarray
|
||||||
Namfun_t hdr;
|
Namfun_t hdr;
|
||||||
long nelem; /* number of elements */
|
long nelem; /* number of elements */
|
||||||
void *(*fun)(Namval_t*,const char*,int); /* associative arrays */
|
void *(*fun)(Namval_t*,const char*,int); /* associative arrays */
|
||||||
void *fixed; /* for fixed sized arrays */
|
void *fixed; /* for fixed-size arrays */
|
||||||
Dt_t *table; /* for subscripts */
|
Dt_t *table; /* for subscripts */
|
||||||
void *scope; /* non-zero when scoped */
|
void *scope; /* non-zero when scoped */
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef PATH_OFFSET
|
#ifndef PATH_OFFSET
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef SH_INTERACTIVE
|
#ifndef SH_INTERACTIVE
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef NOTSYM
|
#ifndef NOTSYM
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef _SHNODES_H
|
#ifndef _SHNODES_H
|
||||||
#define _SHNODES_H 1
|
#define _SHNODES_H 1
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef _SHTABLE_H
|
#ifndef _SHTABLE_H
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef SEQPOINT
|
#ifndef SEQPOINT
|
||||||
/*
|
/*
|
||||||
* D. G. Korn
|
* D. G. Korn
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#ifndef _terminal_
|
#ifndef _terminal_
|
||||||
#define _terminal_ 1
|
#define _terminal_ 1
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef TEST_ARITH
|
#ifndef TEST_ARITH
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
#ifndef _ULIMIT_H
|
#ifndef _ULIMIT_H
|
||||||
#define _ULIMIT_H 1
|
#define _ULIMIT_H 1
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#ifndef SH_VALNOD
|
#ifndef SH_VALNOD
|
||||||
|
|
||||||
|
|
|
@ -1267,7 +1267,7 @@ For each of these attributes, a width can be defined explicitly or else
|
||||||
it is defined the first time an assignment is made to the variable.
|
it is defined the first time an assignment is made to the variable.
|
||||||
Each assignment causes justification of the field, truncating
|
Each assignment causes justification of the field, truncating
|
||||||
if necessary.
|
if necessary.
|
||||||
Assignment to fixed sized variables
|
Assignment to fixed-size variables
|
||||||
provides one way to generate a substring consisting of
|
provides one way to generate a substring consisting of
|
||||||
a fixed number of characters from
|
a fixed number of characters from
|
||||||
the beginning or end of a string.
|
the beginning or end of a string.
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* Shell arithmetic - uses streval library
|
* Shell arithmetic - uses streval library
|
||||||
* David Korn
|
* David Korn
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* Array processing routines
|
* Array processing routines
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* File name expansion
|
* File name expansion
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* Fault handling routines
|
* Fault handling routines
|
||||||
*
|
*
|
||||||
|
@ -50,7 +49,7 @@ static int cursig = -1;
|
||||||
/*
|
/*
|
||||||
* This exception handler is called after vmalloc() unlocks the region
|
* This exception handler is called after vmalloc() unlocks the region
|
||||||
*/
|
*/
|
||||||
static int malloc_done(Vmalloc_t* vm, int type, Void_t* val, Vmdisc_t* dp)
|
static int malloc_done(Vmalloc_t* vm, int type, void* val, Vmdisc_t* dp)
|
||||||
{
|
{
|
||||||
dp->exceptf = 0;
|
dp->exceptf = 0;
|
||||||
sh_exit(SH_EXITSIG);
|
sh_exit(SH_EXITSIG);
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* Routines to implement fast character input
|
* Routines to implement fast character input
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
*
|
*
|
||||||
* Shell initialization
|
* Shell initialization
|
||||||
|
@ -2005,43 +2004,32 @@ static void env_import_attributes(Shell_t *shp, char *next)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* terminate shell and free up the space
|
* libshell ABI compatibility functions
|
||||||
*/
|
*/
|
||||||
int sh_term(void)
|
#define BYPASS_MACRO
|
||||||
{
|
|
||||||
sfdisc(sfstdin,SF_POPDISC);
|
|
||||||
free((char*)sh.outbuff);
|
|
||||||
stakset(NIL(char*),0);
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* function versions of these */
|
unsigned long sh_isoption BYPASS_MACRO (int opt)
|
||||||
|
|
||||||
#define DISABLE /* proto workaround */
|
|
||||||
|
|
||||||
unsigned long sh_isoption DISABLE (int opt)
|
|
||||||
{
|
{
|
||||||
return(sh_isoption(opt));
|
return(sh_isoption(opt));
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long sh_onoption DISABLE (int opt)
|
unsigned long sh_onoption BYPASS_MACRO (int opt)
|
||||||
{
|
{
|
||||||
return(sh_onoption(opt));
|
return(sh_onoption(opt));
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long sh_offoption DISABLE (int opt)
|
unsigned long sh_offoption BYPASS_MACRO (int opt)
|
||||||
{
|
{
|
||||||
return(sh_offoption(opt));
|
return(sh_offoption(opt));
|
||||||
}
|
}
|
||||||
|
|
||||||
void sh_sigcheck DISABLE (Shell_t *shp)
|
void sh_sigcheck BYPASS_MACRO (Shell_t *shp)
|
||||||
{
|
{
|
||||||
if(!shp)
|
NOT_USED(shp);
|
||||||
shp = sh_getinterp();
|
sh_sigcheck(&sh);
|
||||||
sh_sigcheck(shp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Dt_t* sh_bltin_tree DISABLE (void)
|
Dt_t* sh_bltin_tree(void)
|
||||||
{
|
{
|
||||||
return(sh.bltin_tree);
|
return(sh.bltin_tree);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Input/output file processing
|
* Input/output file processing
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* Job control for UNIX Shell
|
* Job control for UNIX Shell
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* KornShell lexical analyzer
|
* KornShell lexical analyzer
|
||||||
*
|
*
|
||||||
|
@ -145,7 +144,7 @@ static void lex_advance(Sfio_t *iop, const char *buff, register int size, void *
|
||||||
sfwrite(shp->strbuf,lp->lexd.docend,n);
|
sfwrite(shp->strbuf,lp->lexd.docend,n);
|
||||||
lp->lexd.docextra += n;
|
lp->lexd.docextra += n;
|
||||||
if(sffileno(iop)>=0)
|
if(sffileno(iop)>=0)
|
||||||
lp->lexd.docend = sfsetbuf(iop,(Void_t*)iop,0);
|
lp->lexd.docend = sfsetbuf(iop,(void*)iop,0);
|
||||||
else
|
else
|
||||||
lp->lexd.docend = fcfirst();
|
lp->lexd.docend = fcfirst();
|
||||||
}
|
}
|
||||||
|
@ -1736,7 +1735,7 @@ void sh_lexskip(Lex_t *lp,int close, register int copy, int state)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SHOPT_CRNL
|
#if SHOPT_CRNL
|
||||||
ssize_t _sfwrite(Sfio_t *sp, const Void_t *buff, size_t n)
|
ssize_t _sfwrite(Sfio_t *sp, const void *buff, size_t n)
|
||||||
{
|
{
|
||||||
const char *cp = (const char*)buff, *next=cp, *ep = cp + n;
|
const char *cp = (const char*)buff, *next=cp, *ep = cp + n;
|
||||||
int m=0,k;
|
int m=0,k;
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* Shell macro expander
|
* Shell macro expander
|
||||||
* expands ~
|
* expands ~
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
*
|
*
|
||||||
|
@ -3703,28 +3702,25 @@ char *nv_name(register Namval_t *np)
|
||||||
|
|
||||||
Namval_t *nv_lastdict(void)
|
Namval_t *nv_lastdict(void)
|
||||||
{
|
{
|
||||||
Shell_t *shp = sh_getinterp();
|
return(sh.last_table);
|
||||||
return(shp->last_table);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef nv_context
|
|
||||||
/*
|
/*
|
||||||
* returns the data context for a builtin
|
* libshell ABI compatibility functions
|
||||||
*/
|
*/
|
||||||
void *nv_context(Namval_t *np)
|
#define BYPASS_MACRO
|
||||||
|
|
||||||
|
void *nv_context BYPASS_MACRO (Namval_t *np)
|
||||||
{
|
{
|
||||||
return((void*)np->nvfun);
|
return(nv_context(np));
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DISABLE /* proto workaround */
|
int nv_isnull BYPASS_MACRO (Namval_t *np)
|
||||||
|
|
||||||
int nv_isnull DISABLE (register Namval_t *np)
|
|
||||||
{
|
{
|
||||||
return(nv_isnull(np));
|
return(nv_isnull(np));
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef nv_setsize
|
int nv_setsize BYPASS_MACRO (Namval_t *np, int size)
|
||||||
int nv_setsize(register Namval_t *np, int size)
|
|
||||||
{
|
{
|
||||||
int oldsize = nv_size(np);
|
int oldsize = nv_size(np);
|
||||||
if(size>=0)
|
if(size>=0)
|
||||||
|
@ -3732,9 +3728,7 @@ int nv_setsize(register Namval_t *np, int size)
|
||||||
return(oldsize);
|
return(oldsize);
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef nv_unset
|
void nv_unset BYPASS_MACRO (Namval_t *np)
|
||||||
|
|
||||||
void nv_unset(register Namval_t *np)
|
|
||||||
{
|
{
|
||||||
_nv_unset(np,0);
|
_nv_unset(np,0);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
*
|
*
|
||||||
|
@ -33,7 +32,7 @@
|
||||||
|
|
||||||
static void assign(Namval_t*,const char*,int,Namfun_t*);
|
static void assign(Namval_t*,const char*,int,Namfun_t*);
|
||||||
|
|
||||||
int nv_compare(Dt_t* dict, Void_t *sp, Void_t *dp, Dtdisc_t *disc)
|
int nv_compare(Dt_t* dict, void *sp, void *dp, Dtdisc_t *disc)
|
||||||
{
|
{
|
||||||
if(sp==dp)
|
if(sp==dp)
|
||||||
return(0);
|
return(0);
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* code for tree nodes and name walking
|
* code for tree nodes and name walking
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
|
@ -1408,129 +1407,6 @@ Fields_t foo[]=
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Namval_t *nv_mkstruct(const char *name, int rsize, Fields_t *fields)
|
|
||||||
{
|
|
||||||
Namval_t *mp, *nq, *nr, *tp;
|
|
||||||
Fields_t *fp;
|
|
||||||
Namtype_t *dp, *pp;
|
|
||||||
char *cp, *sp;
|
|
||||||
int nnodes=0, offset=staktell(), n, r, i, j;
|
|
||||||
size_t m, size=0;
|
|
||||||
stakputs(NV_CLASS);
|
|
||||||
stakputc('.');
|
|
||||||
r = staktell();
|
|
||||||
stakputs(name);
|
|
||||||
stakputc(0);
|
|
||||||
mp = nv_open(stakptr(offset), sh.var_tree, NV_VARNAME);
|
|
||||||
stakseek(r);
|
|
||||||
|
|
||||||
for(fp=fields; fp->name; fp++)
|
|
||||||
{
|
|
||||||
m = strlen(fp->name)+1;
|
|
||||||
size += m;
|
|
||||||
nnodes++;
|
|
||||||
if(memcmp(fp->type,"typeset",7))
|
|
||||||
{
|
|
||||||
stakputs(fp->type);
|
|
||||||
stakputc(0);
|
|
||||||
tp = nv_open(stakptr(offset), sh.var_tree, NV_VARNAME|NV_NOADD|NV_NOFAIL);
|
|
||||||
stakseek(r);
|
|
||||||
if(!tp)
|
|
||||||
{
|
|
||||||
errormsg(SH_DICT,ERROR_exit(1),e_unknowntype,strlen(fp->type),fp->type);
|
|
||||||
UNREACHABLE();
|
|
||||||
}
|
|
||||||
if(dp = (Namtype_t*)nv_hasdisc(tp,&type_disc))
|
|
||||||
{
|
|
||||||
nnodes += dp->numnodes;
|
|
||||||
if((i=dp->strsize) < 0)
|
|
||||||
i = -i;
|
|
||||||
size += i + dp->numnodes*m;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pp = sh_newof(NiL,Namtype_t, 1, nnodes*NV_MINSZ + rsize + size);
|
|
||||||
pp->fun.dsize = sizeof(Namtype_t)+nnodes*NV_MINSZ +rsize;
|
|
||||||
pp->fun.type = mp;
|
|
||||||
pp->np = mp;
|
|
||||||
pp->childfun.fun.disc = &chtype_disc;
|
|
||||||
pp->childfun.fun.nofree = 1;
|
|
||||||
pp->childfun.ttype = pp;
|
|
||||||
pp->childfun.ptype = pp;
|
|
||||||
pp->fun.disc = &type_disc;
|
|
||||||
pp->nodes = (char*)(pp+1);
|
|
||||||
pp->numnodes = nnodes;
|
|
||||||
pp->strsize = size;
|
|
||||||
pp->data = pp->nodes + nnodes*NV_MINSZ;
|
|
||||||
cp = pp->data + rsize;
|
|
||||||
for(i=0,fp=fields; fp->name; fp++)
|
|
||||||
{
|
|
||||||
nq = nv_namptr(pp->nodes,i++);
|
|
||||||
nq->nvname = cp;
|
|
||||||
nq->nvalue.cp = pp->data + fp->offset;
|
|
||||||
nv_onattr(nq,NV_MINIMAL|NV_NOFREE);
|
|
||||||
m = strlen(fp->name)+1;
|
|
||||||
memcpy(cp, fp->name, m);
|
|
||||||
cp += m;
|
|
||||||
if(memcmp(fp->type,"typeset",7))
|
|
||||||
{
|
|
||||||
stakputs(fp->type);
|
|
||||||
stakputc(0);
|
|
||||||
tp = nv_open(stakptr(offset), sh.var_tree, NV_VARNAME);
|
|
||||||
stakseek(r);
|
|
||||||
clone_all_disc(tp,nq,NV_RDONLY);
|
|
||||||
nq->nvflag = tp->nvflag|NV_MINIMAL|NV_NOFREE;
|
|
||||||
nq->nvsize = tp->nvsize;
|
|
||||||
if(dp = (Namtype_t*)nv_hasdisc(nq,&type_disc))
|
|
||||||
dp->strsize = -dp->strsize;
|
|
||||||
if(dp = (Namtype_t*)nv_hasdisc(tp,&type_disc))
|
|
||||||
{
|
|
||||||
if(nv_hasdisc(nq,&chtype_disc))
|
|
||||||
nv_disc(nq, &pp->childfun.fun, NV_LAST);
|
|
||||||
sp = (char*)nq->nvalue.cp;
|
|
||||||
memcpy(sp, dp->data, nv_size(tp));
|
|
||||||
for(j=0; j < dp->numnodes; j++)
|
|
||||||
{
|
|
||||||
nr = nv_namptr(dp->nodes,j);
|
|
||||||
nq = nv_namptr(pp->nodes,i++);
|
|
||||||
nq->nvname = cp;
|
|
||||||
memcpy(cp,fp->name,m);
|
|
||||||
cp[m-1] = '.';
|
|
||||||
cp += m;
|
|
||||||
n = strlen(nr->nvname)+1;
|
|
||||||
memcpy(cp,nr->nvname,n);
|
|
||||||
cp += n;
|
|
||||||
if(nr->nvalue.cp>=dp->data && nr->nvalue.cp < (char*)pp + pp->fun.dsize)
|
|
||||||
{
|
|
||||||
nq->nvalue.cp = sp + (nr->nvalue.cp-dp->data);
|
|
||||||
}
|
|
||||||
nq->nvflag = nr->nvflag;
|
|
||||||
nq->nvsize = nr->nvsize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(strmatch(fp->type+7,"*-*i*")==0)
|
|
||||||
{
|
|
||||||
nv_onattr(nq,NV_NOFREE|NV_RDONLY|NV_INTEGER);
|
|
||||||
if(strmatch(fp->type+7,"*-*s*")==0)
|
|
||||||
nv_onattr(nq,NV_INT16P);
|
|
||||||
else if(strmatch(fp->type+7,"*-*l*")==0)
|
|
||||||
nv_onattr(nq,NV_INT64);
|
|
||||||
if(strmatch(fp->type+7,"*-*u*")==0)
|
|
||||||
nv_onattr(nq,NV_UNSIGN);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
stakseek(offset);
|
|
||||||
nv_onattr(mp,NV_RDONLY|NV_NOFREE|NV_BINARY);
|
|
||||||
nv_setsize(mp,rsize);
|
|
||||||
nv_disc(mp, &pp->fun, NV_LAST);
|
|
||||||
mp->nvalue.cp = pp->data;
|
|
||||||
nv_newtype(mp);
|
|
||||||
return(mp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void write_indent(Sfio_t *out,char *str,int n,int indent)
|
static void write_indent(Sfio_t *out,char *str,int n,int indent)
|
||||||
{
|
{
|
||||||
register int c, first=1;
|
register int c, first=1;
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* UNIX shell
|
* UNIX shell
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
|
|
||||||
#include <shell.h>
|
#include <shell.h>
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
* David Korn <dgk@research.att.com> *
|
* David Korn <dgk@research.att.com> *
|
||||||
* *
|
* *
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
#pragma prototyped
|
|
||||||
/*
|
/*
|
||||||
* David Korn
|
* David Korn
|
||||||
* AT&T Labs
|
* AT&T Labs
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue