|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4059 (0xfdb) Types: TextFile Notes: UNIX file Names: »lint«
└─⟦ec4aa5908⟧ Bits:30004042/swdev3.imd SW95705I 386/ix Multi-user Release 1.2 └─⟦ec4aa5908⟧ UNIX Filesystem └─⟦this⟧ »sd/new/usr/bin/lint«
# Copyright (c) 1984 AT&T # All Rights Reserved # THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T # The copyright notice above does not evidence any # actual or intended publication of such source code. #ident "@(#)lint:lint.sh 1.10" # # # New lint shell script. Changed to make lint(1) act as much as is possible # like a different version of the cc(1) command. This includes the notion of # a ``lint .o'' (.ln) and incremental linting. Thu Jan 27 10:07:15 EST 1983 # TOUT=/usr/tmp/tlint.$$ # combined input for second pass HOUT=/usr/tmp/hlint.$$ # header messages file LDIR=/usr/lib # where first & second pass are LLDIR=/usr/lib # where lint libraries are found PATH=/bin:/usr/bin CCF="-E -C -Dlint" # options for the cc command LINTF= # options for the lint passes FILES= # the *.c and *.ln files in order NDOTC= # how many *.c were there DEFL=$LLDIR/llib-lc.ln # the default library to use LLIB= # lint library file to create CONLY= # set for ``compile only'' pre= # these three variables used for post= # handling options with arguments optarg= # list variable to add argument to # DIRLST= # ordered list of args to -L option LIBLST= # lint libs to look for in DIRLST # trap "rm -f $TOUT $HOUT; exit 2" 1 2 3 15 # # First, run through all of the arguments, building lists # # lint's options are "Labchl:no:puvx" # cc/cpp options are "I:D:U:gO" # for OPT in "$@" do if [ "$optarg" ] then if [ "$optarg" = "LLIB" ] # special case... then OPT=`basename $OPT` eval "$optarg=\"\$$optarg \$pre\$OPT\$post\"" elif [ "$optarg" = "LLDIR" ] # special case... then DIRLST="$DIRLST $OPT" else eval "$optarg=\"\$$optarg \$pre\$OPT\$post\"" fi pre= post= optarg= continue fi case "$OPT" in *.c) FILES="$FILES $OPT" NDOTC="x$NDOTC";; *.ln) FILES="$FILES $OPT";; -*) OPT=`echo $OPT | sed s/-//p` while [ "$OPT" ] do O=`echo $OPT | sed "s/\\(.\\).*/\\1/p"` OPT=`echo $OPT | sed s/.//p` case $O in p) LINTF="$LINTF -p" CCF="$CCF -Wp,-T" DEFL=$LLDIR/llib-port.ln;; n) LINTF="$LINTF -n" DEFL=;; c) CONLY=1;; [abhuvx]) LINTF="$LINTF -$O";; [gO]) CCF="$CCF -$O";; [IDU]) if [ "$OPT" ] then CCF="$CCF -$O$OPT" else optarg=CCF pre=-$O fi break;; l) if [ "$OPT" ] then LIBLST="$LIBLST llib-l$OPT.ln" else optarg=LIBLST pre=llib-l post=.ln fi break;; o) if [ "$OPT" ] then OPT=`basename $OPT` LLIB="llib-l$OPT.ln" else LLIB= optarg=LLIB pre=llib-l post=.ln fi break;; L) if [ "$OPT" ] then DIRLST="$DIRLST $OPT" else optarg="LLDIR" fi break;; *) echo "lint: bad option ignored: $O";; esac done;; *) echo "lint: file with unknown suffix ignored: $OPT";; esac done LLDIR="$DIRLST $LLDIR" for LIB in $LIBLST do for DIR in $LLDIR do if [ -r "$DIR"/"$LIB" ] then FILES="$FILES $DIR/$LIB" break fi done if [ ! -r "$DIR"/"$LIB" ] then echo "$0: $LIB not found" fi done # # Second, walk through the FILES list, running all .c's through # lint's first pass, and just adding all .ln's to the running result # if [ "$NDOTC" != "x" ] # note how many *.c's there were then NDOTC=1 else NDOTC= fi if [ "$CONLY" ] # run lint1 on *.c's only producing *.ln's then for i in $FILES do case $i in *.c) T=`basename $i .c`.ln if [ "$NDOTC" ] then echo $i: fi (cc $CCF $i | $LDIR/lint1 $LINTF -H$HOUT $i >$T) 2>&1 $LDIR/lint2 -H$HOUT rm -f $HOUT;; esac done else # send all *.c's through lint1 run all through lint2 rm -f $TOUT $HOUT for i in $FILES do case $i in *.ln) cat <$i >>$TOUT;; *.c) if [ "$NDOTC" ] then echo $i: fi (cc $CCF $i|$LDIR/lint1 $LINTF -H$HOUT $i >>$TOUT)2>&1;; esac done if [ "$LLIB" ] then cp $TOUT $LLIB fi if [ "$DEFL" ] then cat <$DEFL >>$TOUT fi if [ -s "$HOUT" ] then $LDIR/lint2 -T$TOUT -H$HOUT $LINTF else $LDIR/lint2 -T$TOUT $LINTF fi fi rm -f $TOUT $HOUT