⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shtool

📁 Linux下的中文输入法
💻
📖 第 1 页 / 共 5 页
字号:
                fi                if [ ".$opt_t" = .yes ]; then                    echo "chmod 755 $file" 2>&1                fi                chmod 755 $file                continue            fi            if [ ".$opt_v" = .yes ]; then                echo "?????????? $file" 2>&1            fi        done    done    shtool_exit 0    ;;tarball )    ##    ##  tarball -- Roll distribution tarballs    ##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>    ##    srcs="$*"    #   check whether the test command supports the -x option    if [ -x /bin/sh ] 2>/dev/null; then        minusx="-x"    else        minusx="-r"    fi    #   find the tools    paths="`echo $PATH |\            sed -e 's%/*:%:%g' -e 's%/*$%%' \                -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \                -e 's/:/ /g'`"    for spec in find:gfind,find tar:gtar,tar tardy:tardy,tarcust; do        prg=`echo $spec | sed -e 's/:.*$//'`        tools=`echo $spec | sed -e 's/^.*://'`        eval "prg_${prg}=''"        #   iterate over tools        for tool in `echo $tools | sed -e 's/,/ /g'`; do            #   iterate over paths            for path in $paths; do                if [ $minusx "$path/$tool" ] && [ ! -d "$path/$tool" ]; then                    eval "prg_${prg}=\"$path/$tool\""                    break                fi            done            eval "val=\$prg_${prg}"            if [ ".$val" != . ]; then                break            fi        done    done    #   expand source paths    exclude=''    for pat in `echo $opt_e | sed 's/,/ /g'`; do        exclude="$exclude | grep -v '$pat'"    done    if [ ".$opt_t" = .yes ]; then        echo "cp /dev/null $tmpfile.lst" 1>&2    fi    cp /dev/null $tmpfile.lst    for src in $srcs; do        if [ -d $src ]; then            if [ ".$opt_t" = .yes ]; then                echo "(cd $src && $prg_find . -type f -depth -print) | sed -e 's:^\\.\$::' -e 's:^\\./::' | cat $exclude >>$tmpfile.lst" 1>&2            fi            (cd $src && $prg_find . -type f -depth -print) |\            sed -e 's:^\.$::' -e 's:^\./::' | eval cat $exclude >>$tmpfile.lst        else            if [ ".$opt_t" = .yes ]; then                echo "echo $src >>$tmpfile.lst" 1>&2            fi            echo $src >>$tmpfile.lst        fi    done    sort <$tmpfile.lst >$tmpfile.lst.n    mv $tmpfile.lst.n $tmpfile.lst    if [ ".$opt_v" = .yes ]; then        cat $tmpfile.lst | sed -e 's/^/  /' 1>&2    fi    #   determine tarball file and directory name    if [ ".$opt_o" != . ]; then        tarfile="$opt_o"        if [ ".$opt_d" != . ]; then            tarname="$opt_d"        else            tarname=`echo $tarfile | sed -e 's/\.tar.*$//' -e 's;.*/\([^/]*\)$;\1;'`        fi    else        if [ ".$opt_d" != . ]; then            tarname="$opt_d"        elif [ -d "$from" ]; then            tarname=`echo $from | sed -e 's;.*/\([^/]*\)$;\1;'`        else            tarname="out"        fi        tarfile="$tarname.tar"    fi    #   roll the tarball    compress=''    if [ ".$opt_c" != . ]; then        compress="| $opt_c"    fi    if [ ".$prg_tardy" != . ]; then        #   the elegant hackers way        tardy_opt="--prefix=$tarname"        tardy_opt="$tardy_opt --user_number=0 --group_number=0" # security!        if [ ".$opt_u" != . ]; then            tardy_opt="$tardy_opt --user_name=$opt_u"        fi        if [ ".$opt_g" != . ]; then            tardy_opt="$tardy_opt --group_name=$opt_g"        fi        if [ ".$opt_t" = .yes ]; then            echo "cat $tmpfile.lst | xargs $prg_tar cf - | $prg_tardy $tardy_opt | cat $compress >$tmpfile.out" 1>&2        fi        cat $tmpfile.lst |\        xargs $prg_tar cf - |\        $prg_tardy $tardy_opt |\        eval cat $compress >$tmpfile.out        if [ ".$opt_t" = .yes ]; then            echo "cp $tmpfile.out $tarfile" 1>&2        fi        cp $tmpfile.out $tarfile    else        #  the portable standard way        if [ ".$opt_t" = .yes ]; then            echo "mkdir $tmpdir/$tarname" 1>&2        fi        mkdir $tmpdir/$tarname || shtool_exit 1        if [ ".$opt_t" = .yes ]; then            echo "cat $tmpfile.lst | xargs $prg_tar cf - | (cd $tmpdir/$tarname && $prg_tar xf -)" 1>&2        fi        cat $tmpfile.lst |\        xargs $prg_tar cf - |\        (cd $tmpdir/$tarname && $prg_tar xf -)        if [ ".$opt_u" != . ]; then            if [ ".$opt_t" = .yes ]; then                echo "chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1" 2>&1            fi            chown -R $opt_u $tmpdir/$tarname >/dev/null 2>&1 ||\            echo "$msgprefix:Warning: cannot set user name \`$opt_u' (would require root privileges)"        fi        if [ ".$opt_g" != . ]; then            if [ ".$opt_t" = .yes ]; then                echo "chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1" 2>&1            fi            chgrp -R $opt_g $tmpdir/$tarname >/dev/null 2>&1 ||\            echo "$msgprefix:Warning: cannot set group name \`$opt_g' (would require root privileges)"        fi        if [ ".$opt_t" = .yes ]; then            echo "(cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) | cat $compress >$tmpfile.out" 1>&2        fi        (cd $tmpdir && $prg_find $tarname -type f -depth -print | sort | xargs $prg_tar cf -) |\        eval cat $compress >$tmpfile.out        if [ ".$opt_t" = .yes ]; then            echo "cp $tmpfile.out $tarfile" 1>&2        fi        cp $tmpfile.out $tarfile        if [ ".$opt_t" = .yes ]; then            echo "rm -rf $tmpdir/$tarname" 1>&2        fi        rm -rf $tmpdir/$tarname    fi    #   cleanup    if [ ".$opt_t" = .yes ]; then        echo "rm -f $tmpfile.lst $tmpfile.out" 1>&2    fi    rm -f $tmpfile.lst $tmpfile.out    shtool_exit 0    ;;scpp )    ##    ##  scpp -- Sharing C Pre-Processor    ##  Copyright (c) 1999-2004 Ralf S. Engelschall <rse@engelschall.com>    ##    srcs="$*"    output="${opt_o}.n"    #   find a reasonable Awk    awk=''    paths=`echo $PATH |\           sed -e 's%/*:%:%g' -e 's%/$%%' \               -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' \               -e 's/:/ /g'`    for name in gawk nawk awk; do        for path in $paths; do            if [ -r "$path/$name" ]; then                awk="$path/$name"                break            fi        done        if [ ".$awk" != . ]; then            break        fi    done    if [ ".$awk" = . ]; then        echo "$msgprefix:Error: cannot find a reasonable Awk" 1>&2        shtool_exit 1    fi    #   parse source file(s)    if [ ".$opt_v" = .yes ]; then        echo "Parsing:" | $awk '{ printf("%s", $0); }' 1>&2    fi    for src in $srcs; do        if [ ".$opt_v" = .yes ]; then            echo $src | $awk '{ printf(" %s", $0); }' 1>&2        fi        if [ ".$opt_f" != . ]; then            inputcmd="sed"            OIFS="$IFS"; IFS="$ASC_NL"; set -- $opt_f; IFS="$OIFS"            for e            do                inputcmd="$inputcmd -e '$e'"            done            inputcmd="$inputcmd '$src'"        else            inputcmd="cat '$src'"        fi        eval $inputcmd |\        $awk '           BEGIN {               ln    = 0;               fln   = 0;               level = 0;               mode  = "";               store = "";           }           {               ln++;           }           /^#if.*/ {               level++;           }           /^#if [a-zA-Z_][a-zA-Z0-9_]* *$/ {               if ($2 == define) {                   mode = "D";                   printf("D:#line %d \"%s\"\n", ln, src);                   next;               }           }           /^#endif.*/ {               level--;               if (mode == "D" && level == 0) {                   mode = "";                   next;               }           }           /^[a-zA-Z_][a-zA-Z0-9_].*;.*/ {               if ($1 == class) {                   printf("V:#line %d \"%s\"\n", ln, src);                   printf("V:%s\n", $0);                   printf("J:%s\n", $0);                   next;               }           }           /^[a-zA-Z_][a-zA-Z0-9_].*=.*/ {               if ($1 == class) {                   printf("V:#line %d \"%s\"\n", ln, src);                   printf("V:%s\n", $0);                   printf("J:%s\n", $0);                   next;               }           }           /^[a-zA-Z_][a-zA-Z0-9_]*/ {               if ($1 == class) {                   fln = ln;                   store = $0;                   mode = "F";                   next;               }           }           /^\{ *$/ {               if (mode == "F") {                   printf("F:#line %d \"%s\"\n", fln, src);                   printf("F:%s;\n", store);                   printf("I:%s;\n", store);                   store = "";                   mode = "";                   next;               }           }           {               if (mode == "D")                   printf("D:%s\n", $0);               else if (mode == "F")                   store = store " " $0;           }        ' "src=$src" "define=$opt_D" "class=$opt_C" >>$tmpfile    done    if [ ".$opt_v" = .yes ]; then        echo "" 1>&2    fi    #   start generating output header    echo "/* $opt_o -- autogenerated from $opt_t, DO NOT EDIT! */" >$output    echo "#line 1 \"$opt_t\"" >>$output    sed <$opt_t -e "1,/^${opt_M} *\$/p" -e 'd' |\    sed -e "/^${opt_M} *\$/d" >>$output    #   merge in the define blocks    grep '^D:' $tmpfile | sed -e 's/^D://' >>$output    #   generate standard prolog    echo "#line 1 \"_ON_THE_FLY_\"" >>$output    echo "" >>$output    echo "/* make sure the scpp source extensions are skipped */" >>$output    echo "#define $opt_D 0" >>$output    echo "#define $opt_C /**/" >>$output    #   generate namespace hiding for variables    echo "" >>$output    echo "/* move intern variables to hidden namespace */" >>$output    grep '^J:' $tmpfile | sed >>$output \        -e 's/^J://' \        -e 's/  */ /g' \        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\];.*$/#define \1 __\1/' \        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\)\[\] =.*$/#define \1 __\1/' \        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\);.*$/#define \1 __\1/' \        -e 's/^[^=;]*[ *]\([a-zA-Z0-9_]*\) =.*$/#define \1 __\1/'    #   generate namespace hiding for functions    echo "" >>$output    echo "/* move intern functions to hidden namespace */" >>$output    grep '^I:' $tmpfile | sed >>$output \        -e 's/^I://' \        -e 's/\([ (]\) */\1/g' \        -e 's/ *\([),]\)/\1/g' \        -e 's/^[^(]*[ *]\([a-zA-Z0-9_]*\)(.*$/#define \1 __\1/'    #   generate prototypes for variables    echo "" >>$output    echo "/* prototypes for intern variables */" >>$output    grep '^V:' $tmpfile | sed >>$output \        -e 's/^V://' \        -e 's/  */ /g' \        -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\);.*$/\1;/' \        -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\[\]\) =.*$/\1;/' \        -e 's/^\([^=;]*[ *][a-zA-Z0-9_]*\);.*$/\1;/' \

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -