sparse | upgrade to upstream v0.6.2 (!2)
Subsystems (2)
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): 20200805112141.ier2xkhm5sqjtbck@comp-core-i7-2640m-0182e6
Quoted 8 lines · Alexey Gladkov
Quoted 6 lines · Luc Van Oostenryck
Quoted 5 lines · Uwe Kleine-König
dissectseems to be fine, there is only/lib/systemd/systemd-dissectin Debian.Alternatives that come to my mind are:
sein(which is German for "be") orsemind(which sounds a bit like "the mind"). If there were a mode to emit a tag file (asctagsandetagsdo) to be used in an editor, alsostagsis funny.
Quoted 6 lines
It looks like a feature request :)
Quoted 2 lines
Quoted 2 lines
All of them seem to be free to be used.
I like 'semind'.
Excellent.
Can I apply the attached patch with your signoff and you as author?
-- Luc
From af1f245feffd2a3a299fad6489dad76066604002 Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <[email protected]>
Date: Wed, 5 Aug 2020 17:00:21 +0200
Subject: [PATCH] sindex: rename it to 'semind'
The name 'sindex' is already used by another package (biosquid).
So it was decided to rename it to 'semind'.
--- .gitignore | 2 +- Makefile | 14 +- sindex.1 => semind.1 | 18 +-- sindex.c => semind.c | 356 +++++++++++++++++++++---------------------- 4 files changed, 195 insertions(+), 195 deletions(-) rename sindex.1 => semind.1 (91%) rename sindex.c => semind.c (72%)
.gitignore +1 -1
@@ -19,7 +19,7 @@ graph obfuscate sparse sparse-llvm -sindex +semind test-dissect test-inspect test-lexing
Makefile +7 -7
@@ -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)
semind.1 renamed from sindex.1 +9 -9
@@ -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.
semind.c renamed from sindex.c +178 -178
799 lines not on this page · raw message
Signature · 1 line
2.28.0
Quoted 12 lines · Luc Van Oostenryck
Quoted 11 lines · Alexey Gladkov
Quoted 6 lines · Luc Van Oostenryck
Quoted 5 lines · Uwe Kleine-König
dissectseems to be fine, there is only/lib/systemd/systemd-dissectin Debian.Alternatives that come to my mind are:
sein(which is German for "be") orsemind(which sounds a bit like "the mind"). If there were a mode to emit a tag file (asctagsandetagsdo) to be used in an editor, alsostagsis funny.It looks like a feature request :)
Quoted 1 line
Quoted 1 line
Quoted 6 lines
Quoted 3 lines
Quoted 1 line
Quoted 1 line
All of them seem to be free to be used.
I like 'semind'.
Excellent.
Can I apply the attached patch with your signoff and you as author?
Sure.
Quoted 964 lines
-- Luc
From
af1f245feffd2a3a299fad6489dad76066604002Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <[email protected]>
Date: Wed, 5 Aug 2020 17:00:21 +0200
Subject: [PATCH] sindex: rename it to 'semind'The name 'sindex' is already used by another package (biosquid).
So it was decided to rename it to 'semind'.
--- .gitignore | 2 +- Makefile | 14 +- sindex.1 => semind.1 | 18 +-- sindex.c => semind.c | 356 +++++++++++++++++++++---------------------- 4 files changed, 195 insertions(+), 195 deletions(-) rename sindex.1 => semind.1 (91%) rename sindex.c => semind.c (72%).gitignore +1
-1@@ -19,7 +19,7 @@ graph obfuscate sparse sparse-llvm -sindex +semind test-dissect test-inspect test-lexingMakefile +7
-7@@ -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)semind.1 renamed from sindex.1 +9
-9@@ -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.semind.c renamed from sindex.c +178
-178@@ -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, stupdate_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 ; }Signature · 1 line
2.28.0
Signature · 1 line
Rgrds, legion
Quoted 6 lines · Alexey Gladkov
Quoted 3 lines · Luc Van Oostenryck
Excellent.
Can I apply the attached patch with your signoff and you as author?Sure.
Thanks. I just pushed it upstream.
-- Luc