1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-15 04:32:24 +00:00

INIT: remove proto, ratz (re: 46593a89, 6137b99a); major cleanup

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.

Commit 46593a89 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 of 6137b99a, 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:
Martijn Dekker 2021-12-23 03:14:20 +00:00
parent 3785a0685c
commit a1f5c99204
869 changed files with 1853 additions and 14292 deletions

View file

@ -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 #
# #
########################################################################

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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>

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -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

File diff suppressed because it is too large Load diff

35
src/cmd/INIT/proto.sh Normal file
View 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 -- "$@"

File diff suppressed because it is too large Load diff

View file

@ -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

View file

@ -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

View file

@ -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]"

View file

@ -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

View file

@ -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.

View file

@ -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]
* *

View file

@ -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]

View file

@ -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]

View file

@ -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"

View file

@ -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...]
* *

View file

@ -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>

View file

@ -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...]

View file

@ -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]

View file

@ -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 ...]

View file

@ -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 ...]
* *

View file

@ -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

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* sleep [-s] duration * sleep [-s] duration
* *

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* test expression * test expression
* [ expression ] * [ expression ]

View file

@ -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...]

View file

@ -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...]

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* ulimit [-HSaMctdfxlqenupmrbiswTv] [limit] * ulimit [-HSaMctdfxlqenupmrbiswTv] [limit]
* *

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* umask [-S] [mask] * umask [-S] [mask]
* *

View file

@ -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...

View file

@ -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"

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
#include "defs.h" #include "defs.h"

View file

@ -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"

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
#include <ast.h> #include <ast.h>

View file

@ -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"

View file

@ -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

View file

@ -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"

View file

@ -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
*/ */

View file

@ -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 [ ... ]

View file

@ -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"

View file

@ -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
* *

View file

@ -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
* *

View file

@ -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

View file

@ -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)

View file

@ -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
* *

View file

@ -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
* *

View file

@ -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;

View file

@ -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 : : */

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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[];

View file

@ -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 */

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 */

View file

@ -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*);

View file

@ -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
* *

View file

@ -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 */
}; };

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
#ifndef PATH_OFFSET #ifndef PATH_OFFSET
/* /*

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
/* /*

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
#ifndef _SHTABLE_H #ifndef _SHTABLE_H
/* /*

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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
/* /*

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
#ifndef SH_VALNOD #ifndef SH_VALNOD

View file

@ -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.

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* UNIX shell * UNIX shell
* *

View file

@ -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

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* Array processing routines * Array processing routines
* *

View file

@ -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

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* File name expansion * File name expansion
* *

View file

@ -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);

View file

@ -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
* *

View file

@ -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);
} }

View file

@ -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

View file

@ -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
* *

View file

@ -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;

View file

@ -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 ~

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* UNIX shell * UNIX shell
* *

View file

@ -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;

View file

@ -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);

View file

@ -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

View file

@ -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;

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
/* /*
* UNIX shell * UNIX shell
* *

View file

@ -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

View file

@ -18,7 +18,6 @@
* David Korn <dgk@research.att.com> * * David Korn <dgk@research.att.com> *
* * * *
***********************************************************************/ ***********************************************************************/
#pragma prototyped
#include <shell.h> #include <shell.h>

View file

@ -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