Subject: 24.3.50; semantic-symref + cscope is problematic

From: Jambunathan K <[email-masked]>
Date: Fri, 24 May 2013 00:42:59 +0530

STEP 1: Create cscope xref
======

$ cd ~/src/emacs/trunk/src (This is a Bzr checkout)
$ find . -name '*.[ch]' > cscope.files
$ cscope -b

$ ls -al cscope.*
-rw-r--r-- 1 kjambunathan kjambunathan    2159 May 24 00:20 cscope.files
-rw-r--r-- 1 kjambunathan kjambunathan 8346136 May 24 00:20 cscope.out

STEP 2: Enable semantic
======

emacs -Q

Tools->Source code parsers(Semantic)->ON

STEP 3: Visit some C file in Emacs src.  Make sure cscope is used as symref tool
======

C-x C-f ~/src/emacs/trunk/src/buffer.c

STEP 4: Lookup definition of `set_interval_object'
======

C-c , J 

The above command would have loaded symref tool.  Make sure cscope
(and not grep) is the one that is used.

M-: (semantic-symref-calculate-rootdir)
    => "/home/kjambunathan/src/emacs/trunk/src/"

M-: (semantic-symref-detect-symref-tool)
    => cscope

STEP 5: Position the cursor over `INTERVAL' in it's signature
======

static void
set_interval_object (INTERVAL i, Lisp_Object obj)
                         ^
                         |
                         |
C-c , J

STEP 6: Expected Behaviour
======

I expect that 'INTTERVAL' be offered at the prompt.  Note the bug. `INTERVAL' is a symbol right.

Just type INTERVAL out.  Now semantic refuses to proceed ahead saying no match.

STEP 7:  Check that the native cscope looks up INTERVAL just fine.
=====

$ cscope
$ C-n (Cursor should be in Find this global definition)
$ Type out INTERVAL

cscope will take you to lisp.h with cursor at

     typedef struct interval *INTERVAL;

STEP 8: Can semantic do the right thing when I lookup INTERVAL?
======

----------------------------------------------------------------

In GNU Emacs 24.3.50.1 (i686-pc-linux-gnu, GTK+ Version 2.20.1)
 of 2013-05-20 on debian-6.05
Bzr revision: 112643 [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
Important settings:
  value of $LANG: en_IN
  locale-coding-system: iso-latin-1-unix
  default enable-multibyte-characters: t