public inbox for
 help / color / mirror / Atom feed
From: "David Gray" <>
To: <>
Subject: Using Source Nav. database API
Date: Thu, 03 Jan 2002 15:19:00 -0000	[thread overview]
Message-ID: <003401c194ad$05519410$2e91630f@DGRAYPC> (raw)

Hi, guys,

I installed Source Nav. to help me analyze our source.  It seems like a =
very powerful tool.  I also need to use the database programming =
interface to extend the capabilities.  I've read over the programming =
documentation several times, but still cannot get the tcl/tk or C =
interfaces to work.

I am not familiar with tcl/tk but here's what happens when I run the =
sample script shown below. =20

% pwd
% ls
Makefile            dbqry.c             legacyio_cscope     tbvm
cscope_clock        extract_clock       legacyio_snav.proj
dbqry             legacyio_thtk
% cat
# Replace $HOME/snavigator with the Source-Navigator
# installation directory! \
exec /opt/snav/bin/hyper "$0" "$@"
# Don't forget the backslash before exec!
set db_functions [dbopen nav_func .snprj/ RDONLY 0644 =
btree \

puts [join [$db_functions seq -data] \n]
% ll /opt/snav/bin/hyper
-rwxr-xr-x   1 root       mppos      19368880 Mar 22  2001 =
% ll .snprj/
-rw-rw----   1 dgray      mppos      259457024 Dec  4 09:57 =
Error: unknown encoding "iso8859-1"
% uname -a
HP-UX bobcat B.10.20 A 9000/889 274844331 two-user license

This seems simply like some kind of setup or environmental problem.

I also compiled and linked the dbqry.c sample program.  I tried various =
pattern arguments but repeatedly got no output.  Is there any =
documentation on specifying the pattern argument?  What is the universal =
"dump it all" pattern?

I attached the dbqry.c program below.

I am just trying to get started with the database interface but got =
stuck.  I would appreciate any tips you guys can send me.

David Gray
Richardson, Texas

---------------------------- attachment -------------------------------

 * dbquery.c
 * Copyright (C) 1998 Cygnus Solutions
 * Description:
 * This example shows how to query the Source-Navigator database in C.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>

#include "db.h"

main(int argc, char *argv[])
        DB      *db;
        DBT     data;
        DBT     key;
        int     flag;
        int     len;
        char    *pattern;

        if (argc !=3D 3)
                printf("usage: %s database pattern\n",argv[0]);
        if (!(db =3D dbopen(argv[1],O_RDONLY,0644,DB_BTREE,NULL)))
                fprintf(stderr,"Could not open \"%s\",%s\n",argv[1],

        pattern =3D argv[2];
        len =3D strlen(pattern); =3D (void *)pattern;
        key.size =3D len;
        for(flag =3D R_CURSOR;
                db->seq(db,&key,&data,flag) =3D=3D 0 &&
                strncmp(,pattern,len) =3D=3D 0; flag =3D R_NEXT)
                printf("key:  %s\n", (char *);
                printf("data: %s\n", (char *);

        exit (0);

             reply	other threads:[~2002-01-03 23:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-03 15:19 David Gray [this message]
2002-01-03 15:58 ` Khamis Abuelkomboz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='003401c194ad$05519410$2e91630f@DGRAYPC' \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).