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

📄 ocs

📁 tvapp用于播放tv程序
💻
字号:
#!/bin/sh# $Id: ocs,v 1.3 2001/05/22 15:40:31 petr Exp $# This utility maintains the database for cscope on a recursive dir set# Author:   donwo	Tue Jun 25 15:36:39 PDT 1996# Modified: hops Jan 2000  chg defaults to not update if files exist and force## These comments ARE the manual.  What more do you really need?# if using unadorned cscope with this use cscope -d so not trash db#                    cscope -L -0 <ptn> - to display ptn matches on stdout## The lists of files are kept in two forms:#	TMP	cscope.tmplst#               The list generated by this program#		This list will be updated each time this program#		is executed.##	LST	cscope.lst#               The fixed list generated by some other process#		This list will be used, if found, rather than#		the TMP form generated here.# #	CSD	cscope.csd#               The fixed list generated by some other process#		This list will be used, if found, rather than#		the LST or TMP forms.  CSD differs from LST in#		that the CSD list is used where the source files#		change only seldom.  Cscope is requested not to#		check for changed files.  This can be#		significantly faster on large source trees.##	INC	cscope.inc#               This is a list of additional directories#		in which to search for include files.## Three hierarchies of libraries are supported:#	Local	In the current directory	./#		This is most useful for transient projects or#		where the information is of no use to others on#		the system.  This type is NOT usable on source#		directories that are read-only.#	Home	In users home directory		$HOME/lib/cs/`pwd`#		This is good for items that seldom change but are#		of use only the the current user.  This type is#		usable on source directories that are read-only.#	System	In a global system directory	$SYSDIR/`pwd`#		This is for items that are of interest to all accounts.#		This option is not available unless the system directory#		is writable by the current user.  This type is usable#		on source directories that are read-only.## If a shell script named ./cscope.rc is found and is# executable, the execution of it will be included within this# script after defaults_set/cmdline_parse and locating the# database.## Command line options:#	-x	set shell debugging#	-f	force#		  o  Do not ask about regenerating TMP.  Just do it.#		  o  Allow cscope to regenerate libraries for CSD lists.#	-q	Tell cscope to build an inverted index for quick#		symbol searching.  There is a SIGNIFICANT#		increase in speed with this option however the#		disk space used is doubled.  Once the quick#		database is generated, cs will detect the files#		and continue to use them.#	-d	Do not regenerate.  Intended for cscope sub-tasks.#	-u	Update/regenerate.## Here is where we put thingsCSCOPE=cscopeSYSDIR=/usr/local/lib/csHOMEDIR=${HOME}/lib/cs# Check that cscope is in PATHtype cscope 1>/dev/null 2>&1if [ $? -ne 0 ]then	echo "ERROR: cscope is not in \$PATH" >&2	echo "       Please set \$PATH correctly or make sure cscope is installed" >&2	exit 1fi# popup editor #XCS_EDITOR=${HOME}/bin/x_cscope_editorXCS_EDITOR=${HOME}/bin/xmeif [ -n "$DISPLAY" -a -x ${XCS_EDITOR} ]then	EDITOR=${XCS_EDITOR}	export EDITORfiunset XCS_EDITOR## Misc defaults#FORCE=N#NOUPDATE=FORCE=Y         # hops - default to force rather than queryNOUPDATE=-d     # hops - default to no update if files already existQUICK=SPECDEST=       # hops - query for files## Parse the command lineset -- `getopt xfqdu $*`if [ $? -ne 0 ]then    echo "Use: cs [-x] [-f] [-q] [-u]" >&2    echo " -x debug on " >&2    echo " -q quick Index - faster search but larger index" >&2    echo " -f ask about about regeneration" >&2    echo " -d don't update database (default)" >&2    echo " -u update database" >&2    echo " -s specify where files go" >&2    exit 1fifor argdo    case $arg in	-x )	set -x;     shift	;;	-f )	FORCE=N; NOUPDATE=; shift;;	-q )	QUICK=-q;    shift	;;	-d )	NOUPDATE=-d; shift	;;	-u )	NOUPDATE=;   shift	;;	-s )	SPECDEST=Y;   shift	;;    esacdone## Here is the security hole.  Execute whatever is needed for# this project.  A per-project setup script may be available.[ -x ./cscope.rc ] && {    . ./cscope.rc}## We look hard for appropriate files to scope.  We ignore items# containing "SCCS" assuming that these are directories of# source code control data.create_list(){    LIST=$1    if [ -f ${LIST} ]    then	[ -n "${NOUPDATE}" ] && return	if [ "${FORCE}" != "Y" ]	then	    echo "\n${LIST}"	    echo "Update the library? <(Y)es, (N)o, (Q)uit> [n] \c"	    read x y	    case $x in		[Yy]* )	;;		[Qq]* )	exit 1	;;		*)	return	;;	    esac	fi	echo "Updating library:\n  ${LIST} \c"    else	echo "Creating library:\n  ${LIST} \c"    fi    (	find . -follow -type f \( -name \*.[sScChHlyG] -o \				  -name \*.asm -o \				  -name \*.cc -o \				  -name \*.cxx -o \				  -name \*.ccP -o \				  -name \*.hP -o \				  -name \*.inc -o \				  -name \*.ed -o \				  -name vuifile -o \				  -name Gensymvals -o \				  -name \[mM\]ake\* \) \				  -print   ) | grep -v SCCS | sort -u > ${LIST}    echo "\n`cat ${LIST} | wc -l` files listed"}## Expand the include file list into command line argumentsexp_inc(){    theInc=$1    if [ -s "${theInc}" ]    then	for i in `cat ${theInc}`	do	    echo "-I $i \c"	done    fi}## This routine does not return to the callerdo_cscope(){    LIST=$1    CSLIB=$2    INC=$3    shift;shift;shift    ARGS="$*"    INCARGS=`exp_inc ${INC}`    echo "exec cscope"    exec $CSCOPE ${ARGS} -p 2 ${INCARGS} -i ${LIST} -f ${CSLIB}    echo "exec of $CSCOPE failed" >&2    exit 1}## If we have existing libraries, we should use them.std_libs(){    DIR=$1    OUT=${DIR}/cscope.out    LST=${DIR}/cscope.lst    CSD=${DIR}/cscope.csd    TMP=${DIR}/cscope.tmplst    INC=${DIR}/cscope.inc    QCK=${DIR}/cscope.out.po    [ -s ${QCK} ] && QUICK=-q    [ -f ${CSD} ] && {	if [ "${FORCE}" = "Y" ]	then	    do_cscope ${CSD} ${OUT} ${INC} ${QUICK}	else	    do_cscope ${CSD} ${OUT} ${INC} ${QUICK} -d	fi    }    [ -f ${LST} ] && do_cscope ${LST} ${OUT} ${INC} ${QUICK} ${NOUPDATE}    [ -f ${TMP} ] && {	create_list ${TMP}	do_cscope ${TMP} ${OUT} ${INC} ${QUICK} ${NOUPDATE}    }}## ######## main() #######umask 0PWD=`pwd`umask 02## Check for existing librariesstd_libs $PWDstd_libs ${HOMEDIR}$PWDstd_libs ${SYSDIR}$PWD## We may need to create one for this areaDIR=$PWDif [ ! -n "${NOUPDATE}" -o -n "${SPECDEST}" ] ; thenecho "Create new library? <(L)ocal, (H)ome, (S)ystem, (Q)uit> [q] \c"read x ycase $x in    [Ll]* )	DIR=$PWD		;;    [Hh]* )	DIR=${HOMEDIR}$PWD	;;    [Ss]* )	DIR=${SYSDIR}$PWD	;;    *)		exit 1			;;esacfi[ -d $DIR ] || {    mkdir -p $DIR || exit $?}OUT=${DIR}/cscope.outTMP=${DIR}/cscope.tmplstINC=${DIR}/cscope.inccreate_list ${TMP}do_cscope ${TMP} ${OUT} ${INC} ${QUICK}

⌨️ 快捷键说明

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