import cscope-15.9-24.el10

i10c-beta changed/i10c-beta/cscope-15.9-24.el10
MSVSphere Packaging Team 3 months ago
commit d96a9900ae
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

@ -0,0 +1 @@
e89c6a3458164552d9301ccc213181f463e5210e SOURCES/cscope-15.9.tar.gz

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/cscope-15.9.tar.gz

@ -0,0 +1,45 @@
From 39fb385d69dc06343e8f8a7e28d516d5aef97ec8 Mon Sep 17 00:00:00 2001
From: Hans-Bernhard Broeker <HBBroeker@T-Online.de>
Date: Sat, 28 Jul 2018 17:50:03 +0200
Subject: [PATCH 1/9] [modified from patch #81] Fix reading include files in -c
mode
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
src/build.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/build.c b/src/build.c
index a32b5cb..557e660 100644
--- a/src/build.c
+++ b/src/build.c
@@ -124,7 +124,7 @@ samelist(FILE *oldrefs, char **names, int count)
}
/* see if the name list is the same */
for (i = 0; i < count; ++i) {
- if ((1 != fscanf(oldrefs," %[^\n]",oldname)) ||
+ if ((1 != fscanf(oldrefs," %" PATHLEN_STR "[^\n]",oldname)) ||
strnotequal(oldname, names[i])) {
return(NO);
}
@@ -305,7 +305,7 @@ cscope: -q option mismatch between command line and old symbol database\n");
/* see if the list of source files is the same and
none have been changed up to the included files */
for (i = 0; i < nsrcfiles; ++i) {
- if ((1 != fscanf(oldrefs," %[^\n]",oldname))
+ if ((1 != fscanf(oldrefs, " %" PATHLEN_STR "[^\n]", oldname))
|| strnotequal(oldname, srcfiles[i])
|| (lstat(srcfiles[i], &statstruct) != 0)
|| (statstruct.st_mtime > reftime)
@@ -315,7 +315,7 @@ cscope: -q option mismatch between command line and old symbol database\n");
}
/* the old cross-reference is up-to-date */
/* so get the list of included files */
- while (i++ < oldnum && fgets(oldname, sizeof(oldname), oldrefs)) {
+ while (i++ < oldnum && fscanf(oldrefs, "%" PATHLEN_STR "s", oldname)) {
addsrcfile(oldname);
}
fclose(oldrefs);
--
2.26.2

@ -0,0 +1,26 @@
From 6a6998ecd0392ea643c4c4b317af9af8270761aa Mon Sep 17 00:00:00 2001
From: Hans-Bernhard Broeker <HBBroeker@T-Online.de>
Date: Thu, 9 Aug 2018 16:25:31 +0200
Subject: [PATCH 3/9] Cull extraneous declaration
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
src/global.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/global.h b/src/global.h
index dbc8a43..a6f1486 100644
--- a/src/global.h
+++ b/src/global.h
@@ -224,7 +224,7 @@ extern char dicode2[]; /* digraph second character code */
+ dicode2[(unsigned char)(inchar2)])
/* main.c global data */
-extern char *editor, *home, *shell, *lineflag; /* environment variables */
+extern char *editor, *shell, *lineflag; /* environment variables */
extern char *home; /* Home directory */
extern BOOL lineflagafterfile;
extern char *argv0; /* command name */
--
2.26.2

@ -0,0 +1,32 @@
From f693474b85f8dc1d31570833c62d9210ed1ffcf2 Mon Sep 17 00:00:00 2001
From: mikhail nefedov <mnefedov@users.sourceforge.net>
Date: Thu, 23 Aug 2018 00:36:52 +0200
Subject: [PATCH 4/9] Avoid putting directories found during header search into
srcfiles.
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
src/dir.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/dir.c b/src/dir.c
index 01c599e..7f7287e 100644
--- a/src/dir.c
+++ b/src/dir.c
@@ -616,8 +616,11 @@ incfile(char *file, char *type)
snprintf(path, sizeof(path), "%.*s/%s",
(int)(PATHLEN - 2 - file_len), incdirs[i],
file);
- if (access(compath(path), READ) == 0) {
- addsrcfile(path);
+ if (access(compath(path), READ) == 0) {
+ struct stat st;
+ if( 0 == stat(path,&st) && S_ISREG(st.st_mode) ) {
+ addsrcfile(path);
+ }
break;
}
}
--
2.26.2

@ -0,0 +1,38 @@
From f632c3fd86fce2c495a290dd70f5f09e3e7e7a28 Mon Sep 17 00:00:00 2001
From: Hans-Bernhard Broeker <HBBroeker@T-Online.de>
Date: Sat, 13 Apr 2019 14:52:35 +0200
Subject: [PATCH 5/9] Avoid double-free via double fclose in changestring.
Mark closed FILE* by setting it to NULL, and check for that.
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
src/command.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/command.c b/src/command.c
index 8740b11..dcb5278 100644
--- a/src/command.c
+++ b/src/command.c
@@ -786,6 +786,7 @@ changestring(void)
}
fprintf(script, "w\nq\n!\n"); /* write and quit */
fclose(script);
+ script = NULL;
/* if any line was marked */
if (anymarked == YES) {
@@ -803,7 +804,9 @@ changestring(void)
}
changing = NO;
mousemenu();
- fclose(script);
+ if (script != NULL) {
+ fclose(script);
+ }
free(change);
return(anymarked);
}
--
2.26.2

@ -0,0 +1,77 @@
From bb7f25fad3cade493486a6287f5212cdfb6cce24 Mon Sep 17 00:00:00 2001
From: Jari Aalto <jari.aalto@cante.net>
Date: Sat, 8 May 2010 20:15:35 +0300
Subject: [PATCH 6/9] contrib/ocs: Fix bashims (Closes: #480591)
Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
contrib/ocs | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/contrib/ocs b/contrib/ocs
index e924f4f..bd556b4 100755
--- a/contrib/ocs
+++ b/contrib/ocs
@@ -86,7 +86,7 @@ if [ ! -d ${SYSDIR} ]; then
fi
# Check that cscope is in PATH
-type cscope 1>/dev/null 2>&1
+which cscope 1>/dev/null 2>&1
if [ $? -ne 0 ]
then
@@ -167,8 +167,8 @@ create_list()
if [ "${FORCE}" != "Y" ]
then
- echo "\n${LIST}"
- echo "Update the library? <(Y)es, (N)o, (Q)uit> [n] \c"
+ printf "\n${LIST}\n"
+ printf "Update the library? <(Y)es, (N)o, (Q)uit> [n] "
read x y
case $x in
[Yy]* ) ;;
@@ -176,9 +176,9 @@ create_list()
*) return ;;
esac
fi
- echo "Updating library:\n ${LIST} \c"
+ printf "Updating library:\n ${LIST} "
else
- echo "Creating library:\n ${LIST} \c"
+ printf "Creating library:\n ${LIST} "
fi
(
@@ -196,7 +196,7 @@ create_list()
-print
) | grep -v SCCS | sort -u > ${LIST}
- echo "\n`cat ${LIST} | wc -l` files listed"
+ printf "\n`cat ${LIST} | wc -l` files listed\n"
}
#
@@ -210,7 +210,7 @@ exp_inc()
then
for i in `cat ${theInc}`
do
- echo "-I $i \c"
+ printf "-I $i "
done
fi
}
@@ -285,7 +285,7 @@ std_libs ${SYSDIR}$PWD
DIR=$PWD
if [ ! -n "${NOUPDATE}" -o -n "${SPECDEST}" ] ; then
-echo "Create new library? <(L)ocal, (H)ome, (S)ystem, (Q)uit> [q] \c"
+ printf "Create new library? <(L)ocal, (H)ome, (S)ystem, (Q)uit> [q] "
# shellcheck disable=SC2034
read x y
--
2.26.2

@ -0,0 +1,130 @@
From 3f9e3da40a77274705c9cb9103a6046daa950f5d Mon Sep 17 00:00:00 2001
From: Jari Aalto <jari.aalto@cante.net>
Date: Sat, 8 May 2010 20:16:14 +0300
Subject: [PATCH 7/9] doc/cscope.1: Fix hyphens
Signed-off-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
doc/cscope.1 | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)
diff --git a/doc/cscope.1 b/doc/cscope.1
index ca94e8b..0318347 100644
--- a/doc/cscope.1
+++ b/doc/cscope.1
@@ -1,4 +1,3 @@
-.PU
.TH CSCOPE "1" "January 2007" "The Santa Cruz Operation"
.SH NAME
cscope - interactively examine a C program
@@ -106,7 +105,7 @@ below. (The #include files
may be specified with either double quotes or angle brackets.)
The incdir directory is searched in addition to the current
directory (which is searched first) and the standard list
-(which is searched last). If more than one occurrence of -I
+(which is searched last). If more than one occurrence of \-I
appears, the directories are searched in the order they appear
on the command line.
.TP
@@ -129,7 +128,7 @@ source trees generally do not use it.
.TP
.B -L
Do a single search with line-oriented output when used with the
--num pattern option.
+\-num pattern option.
.TP
.B -l
Line-oriented interface (see ``Line-Oriented Interface''
@@ -146,7 +145,7 @@ Prepend
.I path
to relative file names in a pre-built cross-reference file so you do
not have to change to the directory where the cross-reference file was
-built. This option is only valid with the -d option.
+built. This option is only valid with the \-d option.
.TP
.BI -p n
Display the last
@@ -195,7 +194,7 @@ Remove the cscope reference file and inverted indexes when exiting
.I files
A list of file names to operate on.
.PP
-The -I, -c, -k, -p, -q, and -T options can also be in the cscope.files file.
+The \-I, \-c, \-k, \-p, \-q, and \-T options can also be in the cscope.files file.
.PP
.SS Requesting the initial search
.PP
@@ -266,7 +265,7 @@ Append the displayed list of lines to a file.
.TP
.B <
Read lines from a file that is in symbol reference format
-(created by > or >>), just like the -F option.
+(created by > or >>), just like the \-F option.
.TP
.B ^
Filter all lines through a shell command and display the
@@ -371,7 +370,7 @@ commands, respectively.
.PP
.SS Line-Oriented interface
.PP
-The -l option lets you use cscope where a screen-oriented interface
+The \-l option lets you use cscope where a screen-oriented interface
would not be useful, for example, from another screen-oriented
program.
.PP
@@ -380,10 +379,10 @@ with the field number (counting from 0) immediately followed by the
search pattern, for example, ``lmain'' finds the definition of the
main function.
.PP
-If you just want a single search, instead of the -l option use the -L
-and -num pattern options, and you won't get the >> prompt.
+If you just want a single search, instead of the \-l option use the \-L
+and \-num pattern options, and you won't get the >> prompt.
.PP
-For -l, cscope outputs the number of reference lines
+For \-l, cscope outputs the number of reference lines
cscope: 2 lines
.PP
For each reference found, cscope outputs a line consisting of the file
@@ -468,11 +467,11 @@ is not set, cscope searches only in the current directory.
.SH FILES
.TP
.B cscope.files
-Default files containing -I, -p, -q, and -T options and the
-list of source files (overridden by the -i option).
+Default files containing \-I, \-p, \-q, and \-T options and the
+list of source files (overridden by the \-i option).
.TP
.B cscope.out
-Symbol cross-reference file (overridden by the -f option),
+Symbol cross-reference file (overridden by the \-f option),
which is put in the home directory if it cannot be created in
the current directory.
.TP
@@ -482,11 +481,11 @@ the current directory.
.B cscope.po.out
.PD 1
Default files containing the inverted index used for quick
-symbol searching (-q option). If you use the -f option to
+symbol searching (\-q option). If you use the \-f option to
rename the cross-reference file (so it's not cscope.out), the
names for these inverted index files will be created by adding
- .in and .po to the name you supply with -f. For example, if you
-indicated -f xyz, then these files would be named xyz.in and
+ .in and .po to the name you supply with \-f. For example, if you
+indicated \-f xyz, then these files would be named xyz.in and
xyz.po.
.TP
.B INCDIR
@@ -554,7 +553,7 @@ definition, for example,
.PP
char flag
#ifdef ALLOCATE_STORAGE
- = -1
+ = \-1
#endif
;
.PP
--
2.26.2

@ -0,0 +1,43 @@
From e1b4cbc93529b07b3217928e8f9b1f43b80f9b06 Mon Sep 17 00:00:00 2001
From: Jiri Slaby <jslaby@suse.cz>
Date: Fri, 5 Dec 2014 19:15:53 +0100
Subject: [PATCH 8/9] fscanner: swallow function as parameters
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Some functions take as a parameter a pointer to another function. This
causes troubles in the cscope scanner and such function definition is
dropped on the floor.
Instead of choking and skipping the definition/declaration, teach the
scanner about this case. So now cscope will not skip those and put
them properly in the index.
I carry this patch for a couple of months and using cscope daily on
the Linux kernel and see no problems.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Hans-Bernhard Bröker <broeker@users.sourceforge.net>
Cc: Neil Horman <nhorman@users.sourceforge.net>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
src/fscanner.l | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/fscanner.l b/src/fscanner.l
index 8a93192..43880bf 100644
--- a/src/fscanner.l
+++ b/src/fscanner.l
@@ -505,7 +505,7 @@ if{wsnl}*\( { /* ignore 'if' */
}
<WAS_IDENTIFIER>{
-{ws}*\(({wsnl}|{identifier}|{number}|[*&[\]=,.:])*\)([()]|{wsnl})*[:a-zA-Z_#{] {
+{ws}*\(({wsnl}|{identifier}|\({ws}*\*{ws}*{identifier}{ws}*\){ws}*\([^()]*\)|{number}|[*&[\]=,.:])*\)([()]|{wsnl})*[:a-zA-Z_#{] {
/* a function definition */
/* note: "#define a (b) {" and "#if defined(a)\n#"
* are not fcn definitions! */
--
2.26.2

@ -0,0 +1,81 @@
From eaea31cb93ecddda69a373f83f632e1a450c3c90 Mon Sep 17 00:00:00 2001
From: Brock Zheng Techyauld Ltd <yzheng@techyauld.com>
Date: Tue, 25 Aug 2020 20:28:11 +0800
Subject: [PATCH 9/9] emacs plugin fixup: GNU/Emacs 27.1 removes function
process-kill-without-query
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
contrib/xcscope/xcscope.el | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/contrib/xcscope/xcscope.el b/contrib/xcscope/xcscope.el
index 0e814ea..859dff5 100644
--- a/contrib/xcscope/xcscope.el
+++ b/contrib/xcscope/xcscope.el
@@ -180,7 +180,7 @@
;; variable is used to determine the mapping. One use for this
;; variable is when you want to share the database file with other
;; users; in this case, the database may be located in a directory
-;; separate from the source files.
+;; separate from the source files.
;;
;; Setting the variable, `cscope-initial-directory', is useful when a
;; search is to be expanded by specifying a cscope database directory
@@ -366,7 +366,7 @@
;; disable automatic database creation, updating, and
;; maintenance.
;;
-;; "cscope-display-cscope-buffer"
+;; "cscope-display-cscope-buffer"
;; If non-nil, display the *cscope* buffer after each search
;; (default). This variable can be set in order to reduce the
;; number of keystrokes required to navigate through the matches.
@@ -1233,7 +1233,7 @@ directory should begin.")
:style toggle :selected cscope-use-relative-paths ]
[ "No mouse prompts" (setq cscope-no-mouse-prompts
(not cscope-no-mouse-prompts))
- :style toggle :selected cscope-no-mouse-prompts ]
+ :style toggle :selected cscope-no-mouse-prompts ]
)
))
@@ -1291,7 +1291,7 @@ The text properties to be added:
)
-(defun cscope-show-entry-internal (file line-number
+(defun cscope-show-entry-internal (file line-number
&optional save-mark-p window arrow-p)
"Display the buffer corresponding to FILE and LINE-NUMBER
in some window. If optional argument WINDOW is given,
@@ -1943,7 +1943,7 @@ using the mouse."
cscope-directory
(file-name-directory cscope-directory))
))
- (setq cscope-directory
+ (setq cscope-directory
(file-name-as-directory cscope-directory))
(if (not (member cscope-directory cscope-searched-dirs))
(progn
@@ -2006,7 +2006,7 @@ using the mouse."
(set-process-filter cscope-process cscope-filter-func)
(set-process-sentinel cscope-process cscope-sentinel-func)
(set-marker (process-mark cscope-process) (point))
- (process-kill-without-query cscope-process)
+ (set-process-query-on-exit-flag cscope-process nil)
(if cscope-running-in-xemacs
(setq modeline-process ": Searching ..."))
(setq buffer-read-only t)
@@ -2139,7 +2139,7 @@ SENTINEL-FUNC are optional process filter and sentinel, respectively."
cscope-indexing-script args))
(set-process-sentinel cscope-unix-index-process
'cscope-unix-index-files-sentinel)
- (process-kill-without-query cscope-unix-index-process)
+ (set-process-query-on-exit-flag cscope-unix-index-process nil)
)
))
--
2.26.2

@ -0,0 +1,75 @@
From b3ab5461f1a02aa0a07a6f50bc2fa4da057193d1 Mon Sep 17 00:00:00 2001
From: Dominique <dominique.pelle@gmail.com>
Date: Sun, 8 May 2022 08:27:32 +0200
Subject: [PATCH 1/2] fix: access beyond end of string when search called by
fails
Content-type: text/plain
findcalledby() returned a string which was not '\0' terminated.
That string is later output with the snprintf %s format which
accessed beyond the end of the string. Bug caused a crash on macOS
with M1 processor and was also causing a crash on Linux too when
building with asan (address sanitizer).
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
src/find.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/find.c b/src/find.c
index d7a66f0..e8f1141 100644
--- a/src/find.c
+++ b/src/find.c
@@ -1044,7 +1044,7 @@ char *
findcalledby(char *pattern)
{
char file[PATHLEN + 1]; /* source file name */
- static char found_caller = 'n'; /* seen calling function? */
+ static char found_caller[2] = "n"; /* seen calling function? */
BOOL macro = NO;
if (invertedindex == YES) {
@@ -1057,12 +1057,12 @@ findcalledby(char *pattern)
case FCNDEF:
if (dbseek(p->lineoffset) != -1 &&
scanpast('\t') != NULL) { /* skip def */
- found_caller = 'y';
+ found_caller[0] = 'y';
findcalledbysub(srcfiles[p->fileindex], macro);
}
}
}
- return(&found_caller);
+ return(&found_caller[0]);
}
/* find the function definition(s) */
while (scanpast('\t') != NULL) {
@@ -1072,7 +1072,7 @@ findcalledby(char *pattern)
skiprefchar(); /* save file name */
fetch_string_from_dbase(file, sizeof(file));
if (*file == '\0') { /* if end of symbols */
- return(&found_caller);
+ return(&found_caller[0]);
}
progress("Search", searchcount, nsrcfiles);
break;
@@ -1087,14 +1087,14 @@ findcalledby(char *pattern)
case FCNDEF:
skiprefchar(); /* match name to pattern */
if (match()) {
- found_caller = 'y';
+ found_caller[0] = 'y';
findcalledbysub(file, macro);
}
break;
}
}
- return (&found_caller);
+ return (&found_caller[0]);
}
/* find this term, which can be a regular expression */
--
2.37.3

@ -0,0 +1,229 @@
From b64638020badf92b36424c06bda6e49942f77cd6 Mon Sep 17 00:00:00 2001
From: Dominique <dominique.pelle@gmail.com>
Date: Sun, 8 May 2022 08:52:41 +0200
Subject: [PATCH 2/2] docs: typo fixes in man page and in source code comments
Content-type: text/plain
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
---
contrib/webcscope/hilite.c | 6 +++---
doc/xcscope.1 | 8 ++++----
src/build.c | 2 +-
src/command.c | 2 +-
src/compath.c | 2 +-
src/crossref.c | 2 +-
src/find.c | 4 ++--
src/invlib.c | 2 +-
src/main.c | 4 ++--
src/mouse.c | 2 +-
src/snprintf.c | 2 +-
11 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/contrib/webcscope/hilite.c b/contrib/webcscope/hilite.c
index 4f5af07..feacf0f 100644
--- a/contrib/webcscope/hilite.c
+++ b/contrib/webcscope/hilite.c
@@ -17,7 +17,7 @@
For HTML fragment generation:
CHTM file.c > file.htm
- - Some input convertion required to use this
+ - Some input conversion required to use this
code as CGI module. Will be done soon.
- Optimization required for blocks of EOL
comments
@@ -51,7 +51,7 @@
#define MODE_STRING 8
-int is_delimeter(char c)
+int is_delimiter(char c)
{
int ii=0;
char dlms[] =
@@ -318,7 +318,7 @@ int main(int _argc, char** _argv)
{
buf[bufidx++] = c;
buf[bufidx] = 0;
- if (is_delimeter(c))
+ if (is_delimiter(c))
{
kw = 0;
if (bufidx>2)
diff --git a/doc/xcscope.1 b/doc/xcscope.1
index fa4199c..5bf0de1 100644
--- a/doc/xcscope.1
+++ b/doc/xcscope.1
@@ -1,6 +1,6 @@
'\" t
.\" The xcscope.el man page
-.\" Origionally written by Darryl Okahata, Apr 2000
+.\" Originally written by Darryl Okahata, Apr 2000
.\"
.\" Converted to a man page July 20, 2004 by Neil Horman <nhorman@redhat.com>
.\"
@@ -152,7 +152,7 @@ cscope database directories:
.P
If a search is initiated from a .c file in /users/jdoe/sources/proj1
then (assuming the variable, `cscope-database-regexps', is not set)
-/users/jdoe/sources/proj1 will be used as the cscope data base directory.
+/users/jdoe/sources/proj1 will be used as the cscope database directory.
Only matches in files in /users/jdoe/sources/proj1 will be found. This
can be remedied by typing "C-c s a" and then "M-del" to remove single
path element in order to use a cscope database directory of
@@ -173,7 +173,7 @@ C-c s d Find global definition.
C-c s g Find global definition (alternate binding).
C-c s G Find global definition without prompting.
C-c s c Find functions calling a function.
-C-c s C Find called functions (list functions called
+C-c s C Find called functions (list functions called)
C-c s t Find text string.
C-c s e Find egrep pattern.
C-c s f Find a file.
@@ -527,7 +527,7 @@ done.
.P
1. The script, "cscope-indexer", uses a sed command to determine
-what is and is not a C/C++/lex/yacc source file. It's idea of a
+what is and is not a C/C++/lex/yacc source file. Its idea of a
source file may not correspond to yours.
.P
diff --git a/src/build.c b/src/build.c
index 557e660..4d4e201 100644
--- a/src/build.c
+++ b/src/build.c
@@ -133,7 +133,7 @@ samelist(FILE *oldrefs, char **names, int count)
}
-/* create the file name(s) used for a new cross-referene */
+/* create the file name(s) used for a new cross-reference */
void setup_build_filenames(char *reffile)
{
diff --git a/src/command.c b/src/command.c
index dcb5278..75fae6e 100644
--- a/src/command.c
+++ b/src/command.c
@@ -890,7 +890,7 @@ countrefs(void)
filelen = 4; /* strlen("File") */
fcnlen = 8; /* strlen("Function") */
numlen = 0;
- /* HBB NOTE 2012-04-07: it may look like we shouldn't assing tempstring here,
+ /* HBB NOTE 2012-04-07: it may look like we shouldn't assign tempstring here,
* since it's not used. But it has to be assigned just so the return value
* of fscanf will actually reach 4. */
while (EOF != (i = fscanf(refsfound,
diff --git a/src/compath.c b/src/compath.c
index 037d341..fadca1f 100644
--- a/src/compath.c
+++ b/src/compath.c
@@ -40,7 +40,7 @@
*
* WARNING: since pathname is altered by this function, it should
* be located in a temporary buffer. This avoids the problem
- * of accidently changing strings obtained from makefiles
+ * of accidentally changing strings obtained from makefiles
* and stored in global structures.
*/
diff --git a/src/crossref.c b/src/crossref.c
index 549bc6a..7304fd6 100644
--- a/src/crossref.c
+++ b/src/crossref.c
@@ -328,7 +328,7 @@ putcrossref(void)
if (c < ' ') {
++i;
- /* skip blanks before a preprocesor keyword */
+ /* skip blanks before a preprocessor keyword */
/* note: don't use isspace() because \f and \v
are used for keywords */
while ((j = my_yytext[i]) == ' ' || j == '\t') {
diff --git a/src/find.c b/src/find.c
index d7a66f0..0261161 100644
--- a/src/find.c
+++ b/src/find.c
@@ -975,7 +975,7 @@ fetch_string_from_dbase(char *s, size_t length)
}
-/* scan past the next occurence of this character in the cross-reference */
+/* scan past the next occurrence of this character in the cross-reference */
char *
scanpast(char c)
{
@@ -1035,7 +1035,7 @@ lcasify(char *s)
/* find the functions called by this function */
-/* HBB 2000/05/05: for consitency of calling interface between the
+/* HBB 2000/05/05: for consistency of calling interface between the
* different 'find...()' functions, this now returns a char pointer,
* too. Implemented as a pointer to static storage containing 'y' or
* 'n', for the boolean result values YES and NO */
diff --git a/src/invlib.c b/src/invlib.c
index cd15c35..cdccd32 100644
--- a/src/invlib.c
+++ b/src/invlib.c
@@ -106,7 +106,7 @@ invmake(char *invname, char *invpost, FILE *infile)
unsigned char *s;
long num;
int i;
- long fileindex = 0; /* initialze, to avoid warning */
+ long fileindex = 0; /* initialize, to avoid warning */
unsigned postsize = POSTINC * sizeof(*POST);
unsigned long *intptr;
char line[TERMMAX];
diff --git a/src/main.c b/src/main.c
index d28271c..2ffabc3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -547,7 +547,7 @@ cscope: Could not create private temp dir %s\n",
/* put it in the home directory if the database may not be
* up-to-date or doesn't exist in the relative directory,
* so a database in the current directory will be
- * used instead of failing to open a non-existant database in
+ * used instead of failing to open a non-existing database in
* the home directory
*/
snprintf(path, sizeof(path), "%s/%s", home, reffile);
@@ -884,7 +884,7 @@ cscope: cannot read source file name from file %s\n",
break;
#endif
}
- /* execute the commmand, updating the display if necessary */
+ /* execute the command, updating the display if necessary */
if (command(c) == YES) {
display();
}
diff --git a/src/mouse.c b/src/mouse.c
index ea75b37..4f55400 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -94,7 +94,7 @@ mouseinit(void)
emacsviterm = YES;
mouse = YES;
}
- /* the MOUSE enviroment variable is for 5620 terminal programs that have
+ /* the MOUSE environment variable is for 5620 terminal programs that have
mouse support but the TERM environment variable is the same as a
terminal without a mouse, such as myx */
else if (strcmp(mygetenv("MOUSE", ""), "myx") == 0) {
diff --git a/src/snprintf.c b/src/snprintf.c
index 3981151..5cb0afe 100644
--- a/src/snprintf.c
+++ b/src/snprintf.c
@@ -1299,7 +1299,7 @@ again:
* C99 says: "If the `0' and `-' flags both appear, the `0' flag is
* ignored." (7.19.6.1, 6)
*/
- if (flags & PRINT_F_MINUS) /* Left justifty. */
+ if (flags & PRINT_F_MINUS) /* Left justify. */
padlen = -padlen;
else if (flags & PRINT_F_ZERO && padlen > 0) {
if (sign != 0) { /* Sign. */
--
2.37.3

@ -0,0 +1,26 @@
diff -up ./src/egrep.c.coverity2 ./src/egrep.c
--- ./src/egrep.c.coverity2 2018-10-11 15:22:40.481384312 -0400
+++ ./src/egrep.c 2018-10-11 15:23:31.152211589 -0400
@@ -1205,6 +1205,7 @@ yyparse (void)
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
+ /* coverity[leaked_storage] */
}
# endif
#endif /* no yyoverflow */
diff -up ./src/logdir.c.coverity2 ./src/logdir.c
--- ./src/logdir.c.coverity2 2018-10-11 15:23:50.009147309 -0400
+++ ./src/logdir.c 2018-10-11 15:24:26.279023664 -0400
@@ -79,8 +79,10 @@ logdir(char *name)
if (line[j] == '\n')
break;
/* return a null pointer if the whole file has been read */
- if (j >= i)
+ if (j >= i) {
+ (void) close(pwf);
return(0);
+ }
line[++j] = 0; /* terminate the line */
(void) lseek(pwf, (long) (j - i), 1); /* point at the next line */
p = nextfield(line); /* get the logname */

@ -0,0 +1,52 @@
diff -up ./contrib/xcscope/cscope-indexer.help ./contrib/xcscope/cscope-indexer
--- ./contrib/xcscope/cscope-indexer.help 2017-12-07 10:45:07.000000000 -0500
+++ ./contrib/xcscope/cscope-indexer 2019-06-24 15:46:31.484852474 -0400
@@ -80,6 +80,37 @@ RECURSE=
VERBOSE=
export DIR RECURSE # Need to pass these to subprocesses
+show_usage() {
+
+cat << EOF
+
+ cscope-indexer [ -v ] [-f database_file ] [-i list_file ] [ -l ] [ -r ]
+
+ where:
+
+ -f database_file
+ Specifies the cscope database file (default: cscope.out).
+
+ -i list_file
+ Specifies the name of the file into which the list of files
+ to index is placed (default: cscope.files).
+
+ -l
+ Suppress the generation/updating of the cscope database
+ file. Only a list of files is generated.
+
+ -r
+ Recurse into subdirectories to locate files to index.
+ Without this option, only the current directory is
+ searched.
+
+ -v
+ Be verbose. Output simple progress messages.
+
+EOF
+
+}
+
while [ -n "$1" ]
do
case "$1" in
@@ -110,6 +141,10 @@ do
-v)
VERBOSE=1
;;
+ -h|--help)
+ show_usage
+ exit 0
+ ;;
*)
DIR="$1"
;;

@ -0,0 +1,385 @@
commit efc92106173b5130e32587f6c788f19f2477051d
Author: Neil Horman <nhorman@tuxdriver.com>
Date: Fri Jul 27 15:52:49 2018 -0400
Add make check test harness
Start adding tests to self test cscope in travis ci
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
diff --git a/Makefile.am b/Makefile.am
index ae0fc53..d79d44e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in
-SUBDIRS = doc src contrib
+SUBDIRS = doc src contrib tests
EXTRA_DIST = INSTALL.gnu packages
diff --git a/configure.in b/configure.in
index c51887d..e0a8b1f 100644
--- a/configure.in
+++ b/configure.in
@@ -415,5 +415,5 @@ case "$host_os" in
;;
esac
-AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile contrib/Makefile])
+AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile contrib/Makefile tests/Makefile])
AC_OUTPUT
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..2278a71
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,7 @@
+check_SCRIPTS = check0.sh check1.sh check2.sh \
+ check3.sh check4.sh check6.sh \
+ check7.sh check8.sh check9.sh
+
+TESTS = check0.sh check1.sh check2.sh \
+ check3.sh check4.sh check6.sh \
+ check7.sh check8.sh check9.sh
diff --git a/tests/check0.sh b/tests/check0.sh
new file mode 100755
index 0000000..6c6883b
--- /dev/null
+++ b/tests/check0.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+EXPECT=4
+SINDEX=0
+STERM=main
+STYPE="find C symbol"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+#Count the number of instances of the string 'Copyright'
+#We expect 178 currently
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check1.sh b/tests/check1.sh
new file mode 100755
index 0000000..78ffe21
--- /dev/null
+++ b/tests/check1.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+EXPECT=3
+SINDEX=1
+STERM=main
+STYPE="symbol definition"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+#Count the number of instances of the string 'Copyright'
+#We expect 178 currently
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check2.sh b/tests/check2.sh
new file mode 100755
index 0000000..414430a
--- /dev/null
+++ b/tests/check2.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+EXPECT=96
+SINDEX=2
+STERM=build
+STYPE="functions called by"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check3.sh b/tests/check3.sh
new file mode 100755
index 0000000..a6b2c7e
--- /dev/null
+++ b/tests/check3.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+EXPECT=35
+SINDEX=3
+STERM=printf
+STYPE="functions calling"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+#We expect 178 currently
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check4.sh b/tests/check4.sh
new file mode 100755
index 0000000..dd2c98c
--- /dev/null
+++ b/tests/check4.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+EXPECT=3
+SINDEX=4
+STERM=oldsigquit
+STYPE="regular text string"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check6.sh b/tests/check6.sh
new file mode 100755
index 0000000..c664960
--- /dev/null
+++ b/tests/check6.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+EXPECT=1
+SINDEX=6
+STERM=msg.*what
+STYPE="egrep string"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+#Count the number of instances of the string 'Copyright'
+#We expect 178 currently
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check7.sh b/tests/check7.sh
new file mode 100755
index 0000000..5ac965c
--- /dev/null
+++ b/tests/check7.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+EXPECT=1
+SINDEX=7
+STERM=main.c
+STYPE="file named"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+#Count the number of instances of the string 'Copyright'
+#We expect 178 currently
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check8.sh b/tests/check8.sh
new file mode 100755
index 0000000..72cb946
--- /dev/null
+++ b/tests/check8.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+EXPECT=8
+SINDEX=8
+STERM=unistd.h
+STYPE="files including this file"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+#Count the number of instances of the string 'Copyright'
+#We expect 178 currently
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
diff --git a/tests/check9.sh b/tests/check9.sh
new file mode 100755
index 0000000..a728a32
--- /dev/null
+++ b/tests/check9.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+EXPECT=2
+SINDEX=9
+STERM=reftime
+STYPE="assignments to symbol"
+
+if [ -z "$CSCOPE_BINARY" ]
+then
+ CSCOPE_BINARY=./src/cscope
+fi
+
+echo "Searching item $SINDEX, '$STYPE', '$STERM'"
+
+#Get to the top level directory
+cd ..
+
+#Remove any previous databases from testing
+rm -f cscope.out
+
+#Count the number of instances of the string 'Copyright'
+#We expect 178 currently
+COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l)
+
+if [ $COUNT -ne $EXPECT ]
+then
+ echo "Expected $EXPECT instances of $STYPE $STERM but found $COUNT"
+ exit 1
+fi
+
+exit 0
+
--
2.35.1

@ -0,0 +1,16 @@
diff --git a/contrib/ocs b/contrib/ocs
index e924f4f..bd556b4 100755
--- a/contrib/ocs
+++ b/contrib/ocs
@@ -210,7 +210,7 @@ exp_inc()
then
for i in `cat ${theInc}`
do
- printf "-I $i "
+ printf -- "-I $i "
done
fi
}
--
2.26.2

@ -0,0 +1,126 @@
Summary: C source code tree search and browse tool
Name: cscope
Version: 15.9
Release: 24%{?dist}
Source0: https://downloads.sourceforge.net/project/%{name}/%{name}/v%{version}/%{name}-%{version}.tar.gz
URL: http://cscope.sourceforge.net
License: BSD-3-Clause AND GPL-2.0-or-later
BuildRequires: pkgconf-pkg-config ncurses-devel gcc flex bison m4
BuildRequires: autoconf automake make
Requires: emacs-filesystem coreutils ed
%if !0%{?rhel} && 0%{?fedora} < 36
Requires: xemacs-filesystem
%endif
# upstream commits from https://sourceforge.net/p/cscope/cscope/commit_browser
Patch1: cscope-1-modified-from-patch-81-Fix-reading-include-files-in-.patch
Patch2: cscope-2-Cull-extraneous-declaration.patch
Patch3: cscope-3-Avoid-putting-directories-found-during-header-search.patch
Patch4: cscope-4-Avoid-double-free-via-double-fclose-in-changestring.patch
Patch5: cscope-5-contrib-ocs-Fix-bashims-Closes-480591.patch
Patch6: cscope-6-doc-cscope.1-Fix-hyphens.patch
Patch7: cscope-7-fscanner-swallow-function-as-parameters.patch
Patch8: cscope-8-emacs-plugin-fixup-GNU-Emacs-27.1-removes-function-p.patch
Patch9: cscope-9-fix-access-beyond-end-of-string.patch
Patch10: cscope-a-docs-typo-fixes-in-man-page-and-comments.patch
# distrubution patches which were not upstreamed
Patch11: dist-1-coverity-fixes.patch
Patch12: dist-2-cscope-indexer-help.patch
Patch13: dist-3-add-selftests.patch
Patch14: dist-4-fix-printf.patch
%define cscope_share_path %{_datadir}/cscope
%if !0%{?rhel} && 0%{?fedora} < 36
%define xemacs_lisp_path %{_datadir}/xemacs/site-packages/lisp
%else
%define xemacs_lisp_path %nil
%endif
%define emacs_lisp_path %{_datadir}/emacs/site-lisp
%define vim_plugin_path %{_datadir}/vim/vimfiles/plugin
%description
cscope is a mature, ncurses based, C source code tree browsing tool. It
allows users to search large source code bases for variables, functions,
macros, etc, as well as perform general regex and plain text searches.
Results are returned in lists, from which the user can select individual
matches for use in file editing.
%prep
%autosetup -p1
%build
aclocal
autoheader
autoconf
automake --add-missing
%configure
make
%install
rm -rf $RPM_BUILD_ROOT %{name}-%{version}.files
make DESTDIR=$RPM_BUILD_ROOT install
mkdir -p $RPM_BUILD_ROOT/var/lib/cs
mkdir -p $RPM_BUILD_ROOT%{cscope_share_path}
cp -a contrib/xcscope/xcscope.el $RPM_BUILD_ROOT%{cscope_share_path}
install -m 755 contrib/xcscope/cscope-indexer $RPM_BUILD_ROOT%{_bindir}
cp -a contrib/cctree.vim $RPM_BUILD_ROOT%{cscope_share_path}
for dir in %{xemacs_lisp_path} %{emacs_lisp_path} ; do
mkdir -p $RPM_BUILD_ROOT$dir
ln -s %{cscope_share_path}/xcscope.el $RPM_BUILD_ROOT$dir
touch $RPM_BUILD_ROOT$dir/xcscope.elc
echo "%ghost $dir/xcscope.el*" >> %{name}-%{version}.files
done
%check
make check
%files -f %{name}-%{version}.files
%{_bindir}/*
%dir %{cscope_share_path}
%{cscope_share_path}/
%{_mandir}/man1/*
%dir /var/lib/cs
%doc AUTHORS COPYING ChangeLog README TODO contrib/cctree.txt
%if !0%{?rhel} && 0%{?fedora} < 36
%triggerin -- xemacs
ln -sf %{cscope_share_path}/xcscope.el %{xemacs_lisp_path}/xcscope.el
%endif
%triggerin -- emacs, emacs-nox, emacs-lucid
ln -sf %{cscope_share_path}/xcscope.el %{emacs_lisp_path}/xcscope.el
%triggerin -- vim-filesystem
ln -sf %{cscope_share_path}/cctree.vim %{vim_plugin_path}/cctree.vim
%if !0%{?rhel} && 0%{?fedora} < 36
%triggerun -- xemacs
[ $2 -gt 0 ] && exit 0
rm -f %{xemacs_lisp_path}/xcscope.el
%endif
%triggerun -- emacs, emacs-nox, emacs-lucid
[ $2 -gt 0 ] && exit 0
rm -f %{emacs_lisp_path}/xcscope.el
%triggerun -- vim-filesystem
[ $2 -gt 0 ] && exit 0
rm -f %{vim_plugin_path}/cctree.vim
%changelog
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 15.9-24
- Rebuilt for MSVSphere 10
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 15.9-24
- Bump release for June 2024 mass rebuild
* Mon Apr 01 2024 Vladis Dronov <vdronov@redhat.com> - 15.9-23
- Add OSCI harness
- Add self-tests
* Thu Feb 01 2024 Vladis Dronov <vdronov@redhat.com> - 15.9-22
- Use proper SPDX license identifiers (RHEL-30639)
* Fri Jan 26 2024 Vladis Dronov <vdronov@redhat.com> - 15.9-21
- Initial import from Fedora 40
Loading…
Cancel
Save