aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAlexey Gladkov <gladkov.alexey@gmail.com>2020-08-05 17:00:21 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-08-05 21:55:19 +0200
commite1578773182e8f69c3a0cd8add8dfbe7561a8240 (patch)
treed068c43b4ff6c3eb3345f8e6bdb947bf0c5887ce
parent8c7aee717a3366a2f77dd7871089588862b114a6 (diff)
downloadsparse-e1578773182e8f69c3a0cd8add8dfbe7561a8240.tar.gz
sindex: rename it to 'semind'
The name 'sindex' is already used by another package (biosquid). So it was decided to rename it to 'semind'. Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--.gitignore2
-rw-r--r--Makefile14
-rw-r--r--semind.1 (renamed from sindex.1)18
-rw-r--r--semind.c (renamed from sindex.c)356
4 files changed, 195 insertions, 195 deletions
diff --git a/.gitignore b/.gitignore
index 58598364..63c74afd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,7 +19,7 @@ graph
obfuscate
sparse
sparse-llvm
-sindex
+semind
test-dissect
test-inspect
test-lexing
diff --git a/Makefile b/Makefile
index fea2d74f..639d4f51 100644
--- a/Makefile
+++ b/Makefile
@@ -157,17 +157,17 @@ ifeq ($(HAVE_SQLITE),yes)
SQLITE_VERSION:=$(shell $(PKG_CONFIG) --modversion sqlite3)
SQLITE_VNUMBER:=$(shell printf '%d%02d%02d' $(subst ., ,$(SQLITE_VERSION)))
ifeq ($(shell expr "$(SQLITE_VNUMBER)" '>=' 32400),1)
-PROGRAMS += sindex
-INST_PROGRAMS += sindex
-INST_MAN1 += sindex.1
-sindex-ldlibs := $(shell $(PKG_CONFIG) --libs sqlite3)
-sindex-cflags := $(shell $(PKG_CONFIG) --cflags sqlite3)
-sindex-cflags += -std=gnu99
+PROGRAMS += semind
+INST_PROGRAMS += semind
+INST_MAN1 += semind.1
+semind-ldlibs := $(shell $(PKG_CONFIG) --libs sqlite3)
+semind-cflags := $(shell $(PKG_CONFIG) --cflags sqlite3)
+semind-cflags += -std=gnu99
else
$(warning Your SQLite3 version ($(SQLITE_VERSION)) is too old, 3.24.0 or later is required.)
endif
else
-$(warning Your system does not have sqlite3, disabling sindex)
+$(warning Your system does not have sqlite3, disabling semind)
endif
# Can we use gtk (needed for test-inspect)
diff --git a/sindex.1 b/semind.1
index 06b0bcff..44e79346 100644
--- a/sindex.1
+++ b/semind.1
@@ -1,27 +1,27 @@
.\" Sindex manpage by Alexey Gladkov
-.TH sindex "1"
+.TH semind "1"
.
.SH NAME
-sindex \- Semantic Indexer for C
+semind \- Semantic Indexer for C
.
.SH SYNOPSIS
-.B sindex
+.B semind
[\fIoptions\fR]
.br
-.B sindex
+.B semind
[\fIoptions\fR] \fIadd\fR [\fIcommand options\fR] [\fI--\fR] [\fIcompiler options\fR] [\fIfiles...\fR]
.br
-.B sindex
+.B semind
[\fIoptions\fR] \fIrm\fR [\fIcommand options\fR] \fIpattern\fR
.br
-.B sindex
+.B semind
[\fIoptions\fR] \fIsearch\fR [\fIcommand options\fR] [\fIpattern\fR]
.br
-.B sindex [\fIoptions\fR] \fIsearch\fR [\fIcommand options\fR] (\fI-e\fR|\fI-l\fR) \fIfilename\fR:\fIlinenr\fR:\fIcolumn\fR
+.B semind [\fIoptions\fR] \fIsearch\fR [\fIcommand options\fR] (\fI-e\fR|\fI-l\fR) \fIfilename\fR:\fIlinenr\fR:\fIcolumn\fR
.br
.SH DESCRIPTION
.P
-sindex is the simple to use cscope-like tool based on sparse/dissect. Unlike
+semind is the simple to use cscope-like tool based on sparse/dissect. Unlike
cscope it runs after pre-processor and thus it can't index the code filtered out
by ifdef's, but otoh it understands how the symbol is used and it can track the
usage of struct members.
@@ -44,7 +44,7 @@ wildcard pattern.
.SH COMMON OPTIONS
.TP
\fB-D\fR, \fB--database=FILE\fR
-specify database file (default: ./sindex.sqlite).
+specify database file (default: ./semind.sqlite).
.TP
\fB-v\fR, \fB--verbose\fR
show information about what is being done.
diff --git a/sindex.c b/semind.c
index bff6d8c4..911fc747 100644
--- a/sindex.c
+++ b/semind.c
@@ -1,5 +1,5 @@
/*
- * sindex - semantic indexer for C.
+ * semind - semantic indexer for C.
*
* Copyright (C) 2020 Alexey Gladkov
*/
@@ -23,44 +23,44 @@
#define U_DEF (0x100 << U_SHIFT)
#define SINDEX_DATABASE_VERSION 1
-#define message(fmt, ...) sindex_error(0, 0, (fmt), ##__VA_ARGS__)
+#define message(fmt, ...) semind_error(0, 0, (fmt), ##__VA_ARGS__)
static const char *progname;
-static const char *sindex_command = NULL;
+static const char *semind_command = NULL;
// common options
-static const char *sindex_dbfile = "sindex.sqlite";
-static int sindex_verbose = 0;
+static const char *semind_dbfile = "semind.sqlite";
+static int semind_verbose = 0;
static char cwd[PATH_MAX];
static size_t n_cwd;
// 'add' command options
-static struct string_list *sindex_filelist = NULL;
-static int sindex_include_local_syms = 0;
+static struct string_list *semind_filelist = NULL;
+static int semind_include_local_syms = 0;
-struct sindex_streams {
+struct semind_streams {
sqlite3_int64 id;
};
-static struct sindex_streams *sindex_streams = NULL;
-static int sindex_streams_nr = 0;
+static struct semind_streams *semind_streams = NULL;
+static int semind_streams_nr = 0;
// 'search' command options
-static int sindex_search_modmask;
-static int sindex_search_modmask_defined = 0;
-static int sindex_search_kind = 0;
-static char *sindex_search_path = NULL;
-static char *sindex_search_symbol = NULL;
-static const char *sindex_search_format = "(%m) %f\t%l\t%c\t%C\t%s";
+static int semind_search_modmask;
+static int semind_search_modmask_defined = 0;
+static int semind_search_kind = 0;
+static char *semind_search_path = NULL;
+static char *semind_search_symbol = NULL;
+static const char *semind_search_format = "(%m) %f\t%l\t%c\t%C\t%s";
#define EXPLAIN_LOCATION 1
#define USAGE_BY_LOCATION 2
-static int sindex_search_by_location;
-static char *sindex_search_filename;
-static int sindex_search_line;
-static int sindex_search_column;
+static int semind_search_by_location;
+static char *semind_search_filename;
+static int semind_search_line;
+static int semind_search_column;
-static sqlite3 *sindex_db = NULL;
+static sqlite3 *semind_db = NULL;
static sqlite3_stmt *lock_stmt = NULL;
static sqlite3_stmt *unlock_stmt = NULL;
static sqlite3_stmt *insert_rec_stmt = NULL;
@@ -77,9 +77,9 @@ struct command {
static void show_usage(void)
{
- if (sindex_command)
+ if (semind_command)
printf("Try '%s %s --help' for more information.\n",
- progname, sindex_command);
+ progname, semind_command);
else
printf("Try '%s --help' for more information.\n",
progname);
@@ -111,7 +111,7 @@ static void show_help(int ret)
"\n"
"Report bugs to authors.\n"
"\n",
- progname, sindex_dbfile);
+ progname, semind_dbfile);
exit(ret);
}
@@ -179,17 +179,17 @@ static void show_help_search(int ret)
exit(ret);
}
-static void sindex_print_progname(void)
+static void semind_print_progname(void)
{
fprintf(stderr, "%s: ", progname);
- if (sindex_command)
- fprintf(stderr, "%s: ", sindex_command);
+ if (semind_command)
+ fprintf(stderr, "%s: ", semind_command);
}
-static void sindex_error(int status, int errnum, const char *fmt, ...)
+static void semind_error(int status, int errnum, const char *fmt, ...)
{
va_list ap;
- sindex_print_progname();
+ semind_print_progname();
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
@@ -209,10 +209,10 @@ static void set_search_modmask(const char *v)
size_t n = strlen(v);
if (n != 1 && n != 3)
- sindex_error(1, 0, "the length of mode value must be 1 or 3: %s", v);
+ semind_error(1, 0, "the length of mode value must be 1 or 3: %s", v);
- sindex_search_modmask_defined = 1;
- sindex_search_modmask = 0;
+ semind_search_modmask_defined = 1;
+ semind_search_modmask = 0;
if (n == 1) {
switch (v[0]) {
@@ -220,10 +220,10 @@ static void set_search_modmask(const char *v)
case 'w': v = "ww-"; break;
case 'm': v = "mmm"; break;
case '-': v = "---"; break;
- default: sindex_error(1, 0, "unknown modificator: %s", v);
+ default: semind_error(1, 0, "unknown modificator: %s", v);
}
} else if (!strcmp(v, "def")) {
- sindex_search_modmask = U_DEF;
+ semind_search_modmask = U_DEF;
return;
}
@@ -235,11 +235,11 @@ static void set_search_modmask(const char *v)
for (int i = 0; i < 3; i++) {
switch (v[i]) {
- case 'r': sindex_search_modmask |= modes[i * 3]; break;
- case 'w': sindex_search_modmask |= modes[i * 3 + 1]; break;
- case 'm': sindex_search_modmask |= modes[i * 3 + 2]; break;
+ case 'r': semind_search_modmask |= modes[i * 3]; break;
+ case 'w': semind_search_modmask |= modes[i * 3 + 1]; break;
+ case 'm': semind_search_modmask |= modes[i * 3 + 2]; break;
case '-': break;
- default: sindex_error(1, 0,
+ default: semind_error(1, 0,
"unknown modificator in the mode value"
" (`r', `w', `m' or `-' expected): %c", v[i]);
}
@@ -260,18 +260,18 @@ static void parse_cmdline(int argc, char **argv)
char *env;
if ((env = getenv("SINDEX_DATABASE")) != NULL)
- sindex_dbfile = env;
+ semind_dbfile = env;
while ((c = getopt_long(argc, argv, "+B:D:vh", long_options, NULL)) != -1) {
switch (c) {
case 'D':
- sindex_dbfile = optarg;
+ semind_dbfile = optarg;
break;
case 'B':
basedir = optarg;
break;
case 'v':
- sindex_verbose++;
+ semind_verbose++;
break;
case 'h':
show_help(0);
@@ -285,7 +285,7 @@ static void parse_cmdline(int argc, char **argv)
if (basedir) {
if (!realpath(basedir, cwd))
- sindex_error(1, errno, "unable to get project base directory");
+ semind_error(1, errno, "unable to get project base directory");
n_cwd = strlen(cwd);
}
}
@@ -305,10 +305,10 @@ static void parse_cmdline_add(int argc, char **argv)
while ((c = getopt_long(argc, argv, "+vh", long_options, NULL)) != -1) {
switch (c) {
case 1:
- sindex_include_local_syms = 1;
+ semind_include_local_syms = 1;
break;
case 'v':
- sindex_verbose++;
+ semind_verbose++;
break;
case 'h':
show_help_add(0);
@@ -328,7 +328,7 @@ done:
// step back since sparse_initialize will ignore argv[0].
optind--;
- sparse_initialize(argc - optind, argv + optind, &sindex_filelist);
+ sparse_initialize(argc - optind, argv + optind, &semind_filelist);
}
static void parse_cmdline_rm(int argc, char **argv)
@@ -343,7 +343,7 @@ static void parse_cmdline_rm(int argc, char **argv)
while ((c = getopt_long(argc, argv, "+vh", long_options, NULL)) != -1) {
switch (c) {
case 'v':
- sindex_verbose++;
+ semind_verbose++;
break;
case 'h':
show_help_rm(0);
@@ -374,36 +374,36 @@ static void parse_cmdline_search(int argc, char **argv)
while ((c = getopt_long(argc, argv, "+ef:m:k:p:lvh", long_options, NULL)) != -1) {
switch (c) {
case 'e':
- sindex_search_by_location = EXPLAIN_LOCATION;
+ semind_search_by_location = EXPLAIN_LOCATION;
break;
case 'l':
- sindex_search_by_location = USAGE_BY_LOCATION;
+ semind_search_by_location = USAGE_BY_LOCATION;
break;
case 'f':
- sindex_search_format = optarg;
+ semind_search_format = optarg;
break;
case 'm':
set_search_modmask(optarg);
break;
case 'k':
- sindex_search_kind = tolower(optarg[0]);
+ semind_search_kind = tolower(optarg[0]);
break;
case 'p':
- sindex_search_path = optarg;
+ semind_search_path = optarg;
break;
case 'v':
- sindex_verbose++;
+ semind_verbose++;
break;
case 'h':
show_help_search(0);
}
}
- if (sindex_search_by_location) {
+ if (semind_search_by_location) {
char *str;
if (optind == argc)
- sindex_error(1, 0, "one argument required");
+ semind_error(1, 0, "one argument required");
str = argv[optind];
@@ -414,18 +414,18 @@ static void parse_cmdline_search(int argc, char **argv)
*ptr++ = '\0';
if (*str != '\0') {
- if (!sindex_search_filename) {
- sindex_search_filename = str;
- } else if (!sindex_search_line) {
- sindex_search_line = atoi(str);
- } else if (!sindex_search_column) {
- sindex_search_column = atoi(str);
+ if (!semind_search_filename) {
+ semind_search_filename = str;
+ } else if (!semind_search_line) {
+ semind_search_line = atoi(str);
+ } else if (!semind_search_column) {
+ semind_search_column = atoi(str);
}
}
str = ptr;
}
} else if (optind < argc)
- sindex_search_symbol = argv[optind++];
+ semind_search_symbol = argv[optind++];
}
static int query_appendf(sqlite3_str *query, const char *fmt, ...)
@@ -452,22 +452,22 @@ static int query_appendf(sqlite3_str *query, const char *fmt, ...)
static inline void sqlite_bind_text(sqlite3_stmt *stmt, const char *field, const char *var, int len)
{
if (sqlite3_bind_text(stmt, sqlite3_bind_parameter_index(stmt, field), var, len, SQLITE_STATIC) != SQLITE_OK)
- sindex_error(1, 0, "unable to bind value for %s: %s", field, sqlite3_errmsg(sindex_db));
+ semind_error(1, 0, "unable to bind value for %s: %s", field, sqlite3_errmsg(semind_db));
}
static inline void sqlite_bind_int64(sqlite3_stmt *stmt, const char *field, long long var)
{
if (sqlite3_bind_int64(stmt, sqlite3_bind_parameter_index(stmt, field), var) != SQLITE_OK)
- sindex_error(1, 0, "unable to bind value for %s: %s", field, sqlite3_errmsg(sindex_db));
+ semind_error(1, 0, "unable to bind value for %s: %s", field, sqlite3_errmsg(semind_db));
}
static inline void sqlite_prepare(const char *sql, sqlite3_stmt **stmt)
{
int ret;
do {
- ret = sqlite3_prepare_v2(sindex_db, sql, -1, stmt, NULL);
+ ret = sqlite3_prepare_v2(semind_db, sql, -1, stmt, NULL);
if (ret != SQLITE_OK && ret != SQLITE_BUSY)
- sindex_error(1, 0, "unable to prepare query: %s: %s", sqlite3_errmsg(sindex_db), sql);
+ semind_error(1, 0, "unable to prepare query: %s: %s", sqlite3_errmsg(semind_db), sql);
} while (ret == SQLITE_BUSY);
}
@@ -475,9 +475,9 @@ static inline void sqlite_prepare_persistent(const char *sql, sqlite3_stmt **stm
{
int ret;
do {
- ret = sqlite3_prepare_v3(sindex_db, sql, -1, SQLITE_PREPARE_PERSISTENT, stmt, NULL);
+ ret = sqlite3_prepare_v3(semind_db, sql, -1, SQLITE_PREPARE_PERSISTENT, stmt, NULL);
if (ret != SQLITE_OK && ret != SQLITE_BUSY)
- sindex_error(1, 0, "unable to prepare query: %s: %s", sqlite3_errmsg(sindex_db), sql);
+ semind_error(1, 0, "unable to prepare query: %s: %s", sqlite3_errmsg(semind_db), sql);
} while (ret == SQLITE_BUSY);
}
@@ -494,7 +494,7 @@ static int sqlite_run(sqlite3_stmt *stmt)
{
int ret = sqlite3_step(stmt);
if (ret != SQLITE_DONE && ret != SQLITE_ROW)
- sindex_error(1, 0, "unable to process query: %s: %s", sqlite3_errmsg(sindex_db), sqlite3_sql(stmt));
+ semind_error(1, 0, "unable to process query: %s: %s", sqlite3_errmsg(semind_db), sqlite3_sql(stmt));
return ret;
}
@@ -522,7 +522,7 @@ static sqlite3_int64 get_db_version(void)
static void set_db_version(void)
{
char *sql;
- sqlite3_str *query = sqlite3_str_new(sindex_db);
+ sqlite3_str *query = sqlite3_str_new(semind_db);
if (query_appendf(query, "PRAGMA user_version = %d", SINDEX_DATABASE_VERSION) < 0)
exit(1);
@@ -536,7 +536,7 @@ static void open_temp_database(void)
{
static const char *database_schema[] = {
"ATTACH ':memory:' AS tempdb",
- "CREATE TABLE tempdb.sindex ("
+ "CREATE TABLE tempdb.semind ("
" file INTEGER NOT NULL,"
" line INTEGER NOT NULL,"
" column INTEGER NOT NULL,"
@@ -560,7 +560,7 @@ static void open_database(const char *filename, int flags)
" name TEXT UNIQUE NOT NULL,"
" mtime INTEGER NOT NULL"
")",
- "CREATE TABLE sindex ("
+ "CREATE TABLE semind ("
" file INTEGER NOT NULL REFERENCES file(id) ON DELETE CASCADE,"
" line INTEGER NOT NULL,"
" column INTEGER NOT NULL,"
@@ -569,15 +569,15 @@ static void open_database(const char *filename, int flags)
" context TEXT,"
" mode INTEGER NOT NULL"
")",
- "CREATE UNIQUE INDEX sindex_0 ON sindex (symbol, kind, mode, file, line, column)",
- "CREATE INDEX sindex_1 ON sindex (file)",
+ "CREATE UNIQUE INDEX semind_0 ON semind (symbol, kind, mode, file, line, column)",
+ "CREATE INDEX semind_1 ON semind (file)",
NULL,
};
int exists = !access(filename, R_OK);
- if (sqlite3_open_v2(filename, &sindex_db, flags, NULL) != SQLITE_OK)
- sindex_error(1, 0, "unable to open database: %s: %s", filename, sqlite3_errmsg(sindex_db));
+ if (sqlite3_open_v2(filename, &semind_db, flags, NULL) != SQLITE_OK)
+ semind_error(1, 0, "unable to open database: %s: %s", filename, sqlite3_errmsg(semind_db));
sqlite_command("PRAGMA journal_mode = WAL");
sqlite_command("PRAGMA synchronous = OFF");
@@ -587,7 +587,7 @@ static void open_database(const char *filename, int flags)
if (exists) {
if (get_db_version() < SINDEX_DATABASE_VERSION)
- sindex_error(1, 0, "%s: Database too old. Please rebuild it.", filename);
+ semind_error(1, 0, "%s: Database too old. Please rebuild it.", filename);
return;
}
@@ -627,16 +627,16 @@ static void insert_record(struct index_record *rec)
static void update_stream(void)
{
- if (sindex_streams_nr >= input_stream_nr)
+ if (semind_streams_nr >= input_stream_nr)
return;
- sindex_streams = realloc(sindex_streams, input_stream_nr * sizeof(struct sindex_streams));
- if (!sindex_streams)
- sindex_error(1, errno, "realloc");
+ semind_streams = realloc(semind_streams, input_stream_nr * sizeof(struct semind_streams));
+ if (!semind_streams)
+ semind_error(1, errno, "realloc");
sqlite_run(lock_stmt);
- for (int i = sindex_streams_nr; i < input_stream_nr; i++) {
+ for (int i = semind_streams_nr; i < input_stream_nr; i++) {
struct stat st;
const char *filename;
char fullname[PATH_MAX];
@@ -647,26 +647,26 @@ static void update_stream(void)
* FIXME: Files in the input_streams may be duplicated.
*/
if (stat(input_streams[i].name, &st) < 0)
- sindex_error(1, errno, "stat: %s", input_streams[i].name);
+ semind_error(1, errno, "stat: %s", input_streams[i].name);
cur_mtime = st.st_mtime;
if (!realpath(input_streams[i].name, fullname))
- sindex_error(1, errno, "realpath: %s", input_streams[i].name);
+ semind_error(1, errno, "realpath: %s", input_streams[i].name);
if (!strncmp(fullname, cwd, n_cwd) && fullname[n_cwd] == '/') {
filename = fullname + n_cwd + 1;
- sindex_streams[i].id = 0;
+ semind_streams[i].id = 0;
} else {
- sindex_streams[i].id = -1;
+ semind_streams[i].id = -1;
continue;
}
} else {
- sindex_streams[i].id = -1;
+ semind_streams[i].id = -1;
continue;
}
- if (sindex_verbose > 1)
+ if (semind_verbose > 1)
message("filename: %s", filename);
sqlite_bind_text(select_file_stmt, "@name", filename, -1);
@@ -674,7 +674,7 @@ static void update_stream(void)
if (sqlite_run(select_file_stmt) == SQLITE_ROW) {
sqlite3_int64 old_mtime;
- sindex_streams[i].id = sqlite3_column_int64(select_file_stmt, 0);
+ semind_streams[i].id = sqlite3_column_int64(select_file_stmt, 0);
old_mtime = sqlite3_column_int64(select_file_stmt, 1);
sqlite_reset_stmt(select_file_stmt);
@@ -694,12 +694,12 @@ static void update_stream(void)
sqlite_run(insert_file_stmt);
sqlite_reset_stmt(insert_file_stmt);
- sindex_streams[i].id = sqlite3_last_insert_rowid(sindex_db);
+ semind_streams[i].id = sqlite3_last_insert_rowid(semind_db);
}
sqlite_run(unlock_stmt);
- sindex_streams_nr = input_stream_nr;
+ semind_streams_nr = input_stream_nr;
}
static void r_symbol(unsigned mode, struct position *pos, struct symbol *sym)
@@ -710,10 +710,10 @@ static void r_symbol(unsigned mode, struct position *pos, struct symbol *sym)
update_stream();
- if (sindex_streams[pos->stream].id == -1)
+ if (semind_streams[pos->stream].id == -1)
return;
- if (!sindex_include_local_syms && sym_is_local(sym))
+ if (!semind_include_local_syms && sym_is_local(sym))
return;
if (!sym->ident) {
@@ -730,7 +730,7 @@ static void r_symbol(unsigned mode, struct position *pos, struct symbol *sym)
rec.sym_len = sym->ident->len;
rec.kind = sym->kind;
rec.mode = mode;
- rec.file = sindex_streams[pos->stream].id;
+ rec.file = semind_streams[pos->stream].id;
rec.line = pos->line;
rec.col = pos->pos;
@@ -747,10 +747,10 @@ static void r_member(unsigned mode, struct position *pos, struct symbol *sym, st
update_stream();
- if (sindex_streams[pos->stream].id == -1)
+ if (semind_streams[pos->stream].id == -1)
return;
- if (!sindex_include_local_syms && sym_is_local(sym))
+ if (!semind_include_local_syms && sym_is_local(sym))
return;
ni = built_in_ident("?");
@@ -769,7 +769,7 @@ static void r_member(unsigned mode, struct position *pos, struct symbol *sym, st
rec.sym_len = si->len + mi->len + 1;
rec.kind = 'm';
rec.mode = mode;
- rec.file = sindex_streams[pos->stream].id;
+ rec.file = semind_streams[pos->stream].id;
rec.line = pos->line;
rec.col = pos->pos;
@@ -806,7 +806,7 @@ static void command_add(int argc, char **argv)
&unlock_stmt);
sqlite_prepare_persistent(
- "INSERT OR IGNORE INTO tempdb.sindex "
+ "INSERT OR IGNORE INTO tempdb.semind "
"(context, symbol, kind, mode, file, line, column) "
"VALUES (@context, @symbol, @kind, @mode, @file, @line, @column)",
&insert_rec_stmt);
@@ -823,10 +823,10 @@ static void command_add(int argc, char **argv)
"DELETE FROM file WHERE name == @name",
&delete_file_stmt);
- dissect(&reporter, sindex_filelist);
+ dissect(&reporter, semind_filelist);
sqlite_run(lock_stmt);
- sqlite_command("INSERT OR IGNORE INTO sindex SELECT * FROM tempdb.sindex");
+ sqlite_command("INSERT OR IGNORE INTO semind SELECT * FROM tempdb.semind");
sqlite_run(unlock_stmt);
sqlite3_finalize(insert_rec_stmt);
@@ -835,7 +835,7 @@ static void command_add(int argc, char **argv)
sqlite3_finalize(delete_file_stmt);
sqlite3_finalize(lock_stmt);
sqlite3_finalize(unlock_stmt);
- free(sindex_streams);
+ free(semind_streams);
}
static void command_rm(int argc, char **argv)
@@ -845,7 +845,7 @@ static void command_rm(int argc, char **argv)
sqlite_command("BEGIN IMMEDIATE");
sqlite_prepare("DELETE FROM file WHERE name GLOB @file", &stmt);
- if (sindex_verbose > 1)
+ if (semind_verbose > 1)
message("SQL: %s", sqlite3_sql(stmt));
for (int i = 0; i < argc; i++) {
@@ -877,12 +877,12 @@ static inline void print_mode(char *value)
#undef U
}
-static char *sindex_file_name;
-static FILE *sindex_file_fd;
-static int sindex_file_lnum;
-static char *sindex_line;
-static size_t sindex_line_buflen;
-static int sindex_line_len;
+static char *semind_file_name;
+static FILE *semind_file_fd;
+static int semind_file_lnum;
+static char *semind_line;
+static size_t semind_line_buflen;
+static int semind_line_len;
static void print_file_line(const char *name, int lnum)
{
@@ -890,43 +890,43 @@ static void print_file_line(const char *name, int lnum)
* All files are sorted by name and line number. So, we can reopen
* the file and read it line by line.
*/
- if (!sindex_file_name || strcmp(sindex_file_name, name)) {
- if (sindex_file_fd) {
- fclose(sindex_file_fd);
- free(sindex_file_name);
+ if (!semind_file_name || strcmp(semind_file_name, name)) {
+ if (semind_file_fd) {
+ fclose(semind_file_fd);
+ free(semind_file_name);
}
- sindex_file_name = strdup(name);
+ semind_file_name = strdup(name);
- if (!sindex_file_name)
- sindex_error(1, errno, "strdup");
+ if (!semind_file_name)
+ semind_error(1, errno, "strdup");
- sindex_file_fd = fopen(name, "r");
+ semind_file_fd = fopen(name, "r");
- if (!sindex_file_fd)
- sindex_error(1, errno, "fopen: %s", name);
+ if (!semind_file_fd)
+ semind_error(1, errno, "fopen: %s", name);
- sindex_file_lnum = 0;
+ semind_file_lnum = 0;
}
do {
- if (sindex_file_lnum == lnum) {
- if (sindex_line[sindex_line_len-1] == '\n')
- sindex_line_len--;
- printf("%.*s", sindex_line_len, sindex_line);
+ if (semind_file_lnum == lnum) {
+ if (semind_line[semind_line_len-1] == '\n')
+ semind_line_len--;
+ printf("%.*s", semind_line_len, semind_line);
break;
}
- sindex_file_lnum++;
+ semind_file_lnum++;
errno = 0;
- } while((sindex_line_len = getline(&sindex_line, &sindex_line_buflen, sindex_file_fd)) != -1);
+ } while((semind_line_len = getline(&semind_line, &semind_line_buflen, semind_file_fd)) != -1);
if (errno && errno != EOF)
- sindex_error(1, errno, "getline");
+ semind_error(1, errno, "getline");
}
static int search_query_callback(void *data, int argc, char **argv, char **colname)
{
- char *fmt = (char *) sindex_search_format;
+ char *fmt = (char *) semind_search_format;
char buf[32];
int quote = 0;
int n = 0;
@@ -948,7 +948,7 @@ static int search_query_callback(void *data, int argc, char **argv, char **colna
c = *fmt;
if (c == '\0')
- sindex_error(1, 0, "unexpected end of format string");
+ semind_error(1, 0, "unexpected end of format string");
switch (c) {
case 'f': colnum = 0; goto print_string;
@@ -995,7 +995,7 @@ static int search_query_callback(void *data, int argc, char **argv, char **colna
}
if (pos == fmt)
- sindex_error(1, 0, "invalid format specification: %%%c", c);
+ semind_error(1, 0, "invalid format specification: %%%c", c);
continue;
} else if (c == '\\') {
@@ -1024,104 +1024,104 @@ static void command_search(int argc, char **argv)
{
char *sql;
char *dberr = NULL;
- sqlite3_str *query = sqlite3_str_new(sindex_db);
+ sqlite3_str *query = sqlite3_str_new(semind_db);
if (chdir(cwd) < 0)
- sindex_error(1, errno, "unable to change directory: %s", cwd);
+ semind_error(1, errno, "unable to change directory: %s", cwd);
if (query_appendf(query,
"SELECT"
" file.name,"
- " sindex.line,"
- " sindex.column,"
- " sindex.context,"
- " sindex.symbol,"
- " sindex.mode,"
- " sindex.kind "
- "FROM sindex, file "
- "WHERE sindex.file == file.id") < 0)
+ " semind.line,"
+ " semind.column,"
+ " semind.context,"
+ " semind.symbol,"
+ " semind.mode,"
+ " semind.kind "
+ "FROM semind, file "
+ "WHERE semind.file == file.id") < 0)
goto fail;
- if (sindex_search_kind) {
- if (query_appendf(query, " AND sindex.kind == %d", sindex_search_kind) < 0)
+ if (semind_search_kind) {
+ if (query_appendf(query, " AND semind.kind == %d", semind_search_kind) < 0)
goto fail;
}
- if (sindex_search_symbol) {
+ if (semind_search_symbol) {
int ret;
if (query_appendf(query, " AND ") < 0)
goto fail;
- if (strpbrk(sindex_search_symbol, "*?[]"))
- ret = query_appendf(query, "sindex.symbol GLOB %Q", sindex_search_symbol);
+ if (strpbrk(semind_search_symbol, "*?[]"))
+ ret = query_appendf(query, "semind.symbol GLOB %Q", semind_search_symbol);
else
- ret = query_appendf(query, "sindex.symbol == %Q", sindex_search_symbol);
+ ret = query_appendf(query, "semind.symbol == %Q", semind_search_symbol);
if (ret < 0)
goto fail;
}
- if (sindex_search_modmask_defined) {
- if (!sindex_search_modmask) {
- if (query_appendf(query, " AND sindex.mode == %d", sindex_search_modmask) < 0)
+ if (semind_search_modmask_defined) {
+ if (!semind_search_modmask) {
+ if (query_appendf(query, " AND semind.mode == %d", semind_search_modmask) < 0)
goto fail;
- } else if (query_appendf(query, " AND (sindex.mode & %d) != 0", sindex_search_modmask) < 0)
+ } else if (query_appendf(query, " AND (semind.mode & %d) != 0", semind_search_modmask) < 0)
goto fail;
}
- if (sindex_search_path) {
- if (query_appendf(query, " AND file.name GLOB %Q", sindex_search_path) < 0)
+ if (semind_search_path) {
+ if (query_appendf(query, " AND file.name GLOB %Q", semind_search_path) < 0)
goto fail;
}
- if (sindex_search_by_location == EXPLAIN_LOCATION) {
- if (query_appendf(query, " AND file.name == %Q", sindex_search_filename) < 0)
+ if (semind_search_by_location == EXPLAIN_LOCATION) {
+ if (query_appendf(query, " AND file.name == %Q", semind_search_filename) < 0)
goto fail;
- if (sindex_search_line &&
- query_appendf(query, " AND sindex.line == %d", sindex_search_line) < 0)
+ if (semind_search_line &&
+ query_appendf(query, " AND semind.line == %d", semind_search_line) < 0)
goto fail;
- if (sindex_search_column &&
- query_appendf(query, " AND sindex.column == %d", sindex_search_column) < 0)
+ if (semind_search_column &&
+ query_appendf(query, " AND semind.column == %d", semind_search_column) < 0)
goto fail;
- } else if (sindex_search_by_location == USAGE_BY_LOCATION) {
- if (query_appendf(query, " AND sindex.symbol IN (") < 0)
+ } else if (semind_search_by_location == USAGE_BY_LOCATION) {
+ if (query_appendf(query, " AND semind.symbol IN (") < 0)
goto fail;
if (query_appendf(query,
- "SELECT sindex.symbol FROM sindex, file WHERE"
- " sindex.file == file.id AND"
- " file.name == %Q", sindex_search_filename) < 0)
+ "SELECT semind.symbol FROM semind, file WHERE"
+ " semind.file == file.id AND"
+ " file.name == %Q", semind_search_filename) < 0)
goto fail;
- if (sindex_search_line &&
- query_appendf(query, " AND sindex.line == %d", sindex_search_line) < 0)
+ if (semind_search_line &&
+ query_appendf(query, " AND semind.line == %d", semind_search_line) < 0)
goto fail;
- if (sindex_search_column &&
- query_appendf(query, " AND sindex.column == %d", sindex_search_column) < 0)
+ if (semind_search_column &&
+ query_appendf(query, " AND semind.column == %d", semind_search_column) < 0)
goto fail;
if (query_appendf(query, ")") < 0)
goto fail;
}
- if (query_appendf(query, " ORDER BY file.name, sindex.line, sindex.column ASC", sindex_search_path) < 0)
+ if (query_appendf(query, " ORDER BY file.name, semind.line, semind.column ASC", semind_search_path) < 0)
goto fail;
sql = sqlite3_str_value(query);
- if (sindex_verbose > 1)
+ if (semind_verbose > 1)
message("SQL: %s", sql);
- sqlite3_exec(sindex_db, sql, search_query_callback, NULL, &dberr);
+ sqlite3_exec(semind_db, sql, search_query_callback, NULL, &dberr);
if (dberr)
- sindex_error(1, 0, "sql query failed: %s", dberr);
+ semind_error(1, 0, "sql query failed: %s", dberr);
fail:
sql = sqlite3_str_finish(query);
sqlite3_free(sql);
- if (sindex_file_fd) {
- fclose(sindex_file_fd);
- free(sindex_file_name);
+ if (semind_file_fd) {
+ fclose(semind_file_fd);
+ free(semind_file_name);
}
- free(sindex_line);
+ free(semind_line);
}
@@ -1156,25 +1156,25 @@ int main(int argc, char **argv)
progname++;
if (!realpath(".", cwd))
- sindex_error(1, errno, "unable to get current directory");
+ semind_error(1, errno, "unable to get current directory");
n_cwd = strlen(cwd);
parse_cmdline(argc, argv);
for (cmd = commands; cmd->name && strcmp(argv[optind], cmd->name); cmd++);
if (!cmd->name)
- sindex_error(1, 0, "unknown command: %s", argv[optind]);
+ semind_error(1, 0, "unknown command: %s", argv[optind]);
optind++;
- sindex_command = cmd->name;
+ semind_command = cmd->name;
if (cmd->parse_cmdline)
cmd->parse_cmdline(argc, argv);
- open_database(sindex_dbfile, cmd->dbflags);
+ open_database(semind_dbfile, cmd->dbflags);
cmd->handler(argc - optind, argv + optind);
- sqlite3_close(sindex_db);
+ sqlite3_close(semind_db);
return 0;
}