[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OT:cscope/tags
From: |
Perry Smith |
Subject: |
Re: OT:cscope/tags |
Date: |
Tue, 5 Dec 2006 18:31:53 -0600 |
On Dec 5, 2006, at 4:39 PM, Hadron Quark wrote:
Perry Smith <pedz@easesoftware.com> writes:
cscope. To make the db I use -q. To invoke it via emacs, I use -q
and -d:
-d Do not update the cross-reference.
-q Enable fast symbol lookup via an inverted
Just for thread completeness, how do you add these options when
inviking
cscope from emacs? How are you accessing cscope from emacs? Which el
package do you use?
Well, its a long story. I created my own cscope.el back in 1990.
I'm happy to share it
but it has lots of weird twisted gunk in it. I have the concept of
an "inherited buffer". Each
buffer has a buffer local variable that points back to its inherited
buffer. In this way,
different buffers can use different cscope's and not get confused
between them. At the
time, there was a lot of other things that were inherited besides
just the cscope information
(like build information and that sort of thing).
I also have a script called cscope-front (I've appended it to the
bottom). I doubt if it
will do you much good either except just as a thought of calling
cscope via a script
and then that script can add and subtract arguments based upon a
number of
variables. This keeps the lisp code simpler -- I was more
comfortable writing shell
scripts than lisp code at the time.
I create the cscope database via make. The makefile creates a list
of files called cscope.files,
(usually based upon various make variables), then it calls cscope as:
cscope -q -b
(The cscope I'm using defaults to looking in cscope.files for the
list of files.)
From emacs, I call cscope-front (using my cscope.el routines). As
you can see, the script
has debug output to /tmp/doggy. Here are some sample lines from doggy:
/home/pedz/Eclipse/SATA/src
a='' p='/home/pedz/Eclipse/SATA/src'
/usr/local/bin/cscope -d -q -l -P /home/pedz/Eclipse/SATA/src -f
cscope.out
The last line is all the args I use to call cscope with.
Hopefully, something in here will be useful to you.
#!/usr/local/bin/bash
#
# First arg is the string to pass to setup, second arg is the
# directory where the cscope should behave from
#
a=$1
p=$( echo $2 | sed -e 's%/$%%' )
CSCOPE=/usr/local/bin/cscope
shift
shift
/bin/pwd >> /tmp/doggy
echo "a='$a' p='$p'" >> /tmp/doggy
if [ -n "$a" ] ; then
source ~/.setup $a
fi
#
# DFS permissions are weird and I can execute things even though the
# file system says I can not. So I only check to see if the file
# exists or not.
#
if [ -e cscope/bin/cscope ] ; then
CSCOPE=cscope/bin/cscope
elif [ -e ../cscope/bin/cscope ] ; then
CSCOPE=../cscope/bin/cscope
elif [ -e ../../cscope/bin/cscope ] ; then
CSCOPE=../../cscope/bin/cscope
fi
echo $CSCOPE -d -q -l -P "$p" "$@" >> /tmp/doggy
exec $CSCOPE -d -q -l -P "$p" "$@" 2>>/tmp/doggy
# echo $CSCOPE -q -l -P "'$p'" "$@" >> /tmp/doggy
# exec $CSCOPE -q -l -P "'$p'" "$@" 2>> /tmp/doggy
# echo $CSCOPE -q -l >> /tmp/doggy
# $CSCOPE -q -l 2>> /tmp/doggy
# /afs/austin/aix/project/aix41C/cscope/bin/cscope -d -q -l \
# -f /afs/austin/aix/project/aix41C/cscope/bos.db
#
# -P /afs/austin/aix/project/aix41C/build/base
- Re: OT:cscope/tags, (continued)
Re: OT:cscope/tags, Perry Smith, 2006/12/04
Message not available