summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-01 14:10:56 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-01 14:10:56 +0000
commit5a4035746707b0966ba7c24d332cbf64dadb06d1 (patch)
treefdfc3b581aec7a5c6a8645b365e9ae9a23c37f61
parent016a82dddce53ddb49ed3d206f0c36238aa01e38 (diff)
automatic import of cscopeopeneuler24.03_LTSopeneuler23.09
-rw-r--r--.gitignore1
-rw-r--r--cscope-1-modified-from-patch-81-Fix-reading-include-files-in-.patch45
-rw-r--r--cscope-2-Cull-extraneous-declaration.patch26
-rw-r--r--cscope-3-Avoid-putting-directories-found-during-header-search.patch32
-rw-r--r--cscope-4-Avoid-double-free-via-double-fclose-in-changestring.patch38
-rw-r--r--cscope-5-contrib-ocs-Fix-bashims-Closes-480591.patch77
-rw-r--r--cscope-6-doc-cscope.1-Fix-hyphens.patch130
-rw-r--r--cscope-7-fscanner-swallow-function-as-parameters.patch43
-rw-r--r--cscope-8-emacs-plugin-fixup-GNU-Emacs-27.1-removes-function-p.patch81
-rw-r--r--cscope-9-fix-access-beyond-end-of-string.patch75
-rw-r--r--cscope-a-docs-typo-fixes-in-man-page-and-comments.patch229
-rw-r--r--cscope.spec342
-rw-r--r--dist-1-coverity-fixes.patch26
-rw-r--r--dist-2-cscope-indexer-help.patch52
-rw-r--r--dist-3-add-selftests.patch385
-rw-r--r--dist-4-fix-printf.patch16
-rw-r--r--sources1
17 files changed, 1599 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..f1ae378 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/cscope-15.9.tar.gz
diff --git a/cscope-1-modified-from-patch-81-Fix-reading-include-files-in-.patch b/cscope-1-modified-from-patch-81-Fix-reading-include-files-in-.patch
new file mode 100644
index 0000000..8acf8fa
--- /dev/null
+++ b/cscope-1-modified-from-patch-81-Fix-reading-include-files-in-.patch
@@ -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
+
diff --git a/cscope-2-Cull-extraneous-declaration.patch b/cscope-2-Cull-extraneous-declaration.patch
new file mode 100644
index 0000000..ccbeba2
--- /dev/null
+++ b/cscope-2-Cull-extraneous-declaration.patch
@@ -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
+
diff --git a/cscope-3-Avoid-putting-directories-found-during-header-search.patch b/cscope-3-Avoid-putting-directories-found-during-header-search.patch
new file mode 100644
index 0000000..500ce15
--- /dev/null
+++ b/cscope-3-Avoid-putting-directories-found-during-header-search.patch
@@ -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
+
diff --git a/cscope-4-Avoid-double-free-via-double-fclose-in-changestring.patch b/cscope-4-Avoid-double-free-via-double-fclose-in-changestring.patch
new file mode 100644
index 0000000..8e862bf
--- /dev/null
+++ b/cscope-4-Avoid-double-free-via-double-fclose-in-changestring.patch
@@ -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
+
diff --git a/cscope-5-contrib-ocs-Fix-bashims-Closes-480591.patch b/cscope-5-contrib-ocs-Fix-bashims-Closes-480591.patch
new file mode 100644
index 0000000..1807974
--- /dev/null
+++ b/cscope-5-contrib-ocs-Fix-bashims-Closes-480591.patch
@@ -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
+
diff --git a/cscope-6-doc-cscope.1-Fix-hyphens.patch b/cscope-6-doc-cscope.1-Fix-hyphens.patch
new file mode 100644
index 0000000..290534d
--- /dev/null
+++ b/cscope-6-doc-cscope.1-Fix-hyphens.patch
@@ -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
+
diff --git a/cscope-7-fscanner-swallow-function-as-parameters.patch b/cscope-7-fscanner-swallow-function-as-parameters.patch
new file mode 100644
index 0000000..a089a61
--- /dev/null
+++ b/cscope-7-fscanner-swallow-function-as-parameters.patch
@@ -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
+
diff --git a/cscope-8-emacs-plugin-fixup-GNU-Emacs-27.1-removes-function-p.patch b/cscope-8-emacs-plugin-fixup-GNU-Emacs-27.1-removes-function-p.patch
new file mode 100644
index 0000000..2f32cef
--- /dev/null
+++ b/cscope-8-emacs-plugin-fixup-GNU-Emacs-27.1-removes-function-p.patch
@@ -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
+
diff --git a/cscope-9-fix-access-beyond-end-of-string.patch b/cscope-9-fix-access-beyond-end-of-string.patch
new file mode 100644
index 0000000..8bf1b81
--- /dev/null
+++ b/cscope-9-fix-access-beyond-end-of-string.patch
@@ -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
+
diff --git a/cscope-a-docs-typo-fixes-in-man-page-and-comments.patch b/cscope-a-docs-typo-fixes-in-man-page-and-comments.patch
new file mode 100644
index 0000000..7751172
--- /dev/null
+++ b/cscope-a-docs-typo-fixes-in-man-page-and-comments.patch
@@ -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
+
diff --git a/cscope.spec b/cscope.spec
new file mode 100644
index 0000000..a2acad0
--- /dev/null
+++ b/cscope.spec
@@ -0,0 +1,342 @@
+Summary: C source code tree search and browse tool
+Name: cscope
+Version: 15.9
+Release: 17%{?dist}
+Source0: https://downloads.sourceforge.net/project/%{name}/%{name}/v%{version}/%{name}-%{version}.tar.gz
+URL: http://cscope.sourceforge.net
+License: BSD and GPLv2+
+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
+* Thu Sep 29 2022 Vladis Dronov <vdronov@redhat.com> - 15.9-17
+- Update to the upstream git @ 7f2369ac (bz 2129890)
+
+* Fri Apr 22 2022 Vladis Dronov <vdronov@redhat.com> - 15.9-15
+- Add another small distrubution patch (bz 2072635)
+
+* Mon Apr 11 2022 Vladis Dronov <vdronov@redhat.com> - 15.9-14
+- Add distrubution patches which were not upstreamed (bz 2072635)
+- Add self-tests
+- Add OSCI harness
+
+* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 15.9-12
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+ Related: rhbz#1991688
+
+* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 15.9-11
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Tue Mar 16 2021 Vladis Dronov <vdronov@redhat.com> - 15.9-10
+- Bring in important patches from the upstream (39fb38..eaea31 in a git repo)
+- Fix the upstream tarball URL
+- Remove outdated patch files
+
+* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 15.9-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Wed Jul 29 2020 Neil Horman <nhorman@redhat.com> - 15.9-8
+- Adding missing dependency on ed (bz 1861697)
+
+* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 15.9-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 15.9-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 15.9-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Thu Apr 11 2019 Neil Horman <nhorman@redhat.com> - 15.9-4
+- Fixing double free (bz 1657210)
+
+* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 15.9-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Mon Dec 10 2018 Neil Horman <nhorman@redhat.com> - 15.9-2
+- update Requires to include coreutils (bz 1657775)
+
+* Tue Jul 24 2018 Neil Horman <nhorman@redhat.com> - 15.9-1
+- update to latest upstream
+
+* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 15.8b-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Mar 01 2018 Josh Boyer <jwboyer@fedoraproject.org> - 15.8b-8
+- Conditionalize xemacs
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 15.8b-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 15.8b-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 15.8b-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 15.8b-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Mon Nov 28 2016 Neil Horman <nhorman@redhat.com> - 15.8b-3
+- Changed permissions on cscope-indexer (bz 1399108)
+
+* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 15.8b-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Aug 05 2015 Neil Horman <nhorman@redhat.com> - 15.8b-1
+- Update to latest upstream
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.8-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Tue Sep 30 2014 Neil Horman <nhorman@redhat.com> - 15.8-11
+- Added triggerin support for emacs-nox (bz 961709)
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.8-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.8-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Tue Apr 15 2014 Neil Horman <nhorman@redhat.com> - 15.8-8
+- Fixed formatting issue with empty function array (bz 1087940)
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.8-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon Mar 25 2013 Neil Horman <nhorman@redhat.com> - 15.8-6
+- Fixed build break
+
+* Mon Mar 25 2013 Neil Horman <nhorman@redhat.com> - 15.8-5
+- Updated to run autoreconf for impending aarch64 introduction (bz 925201)
+
+* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.8-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.8-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue Jul 10 2012 Neil Horman <nhorman@redhat.com> - 15.8-2
+- Fix inverted index sizing
+
+* Mon Jun 18 2012 Neil Horman <nhorman@redhat.com> - 15.8
+- Update to latest upstream
+
+* Mon Mar 12 2012 Neil Horman <nhorman@redhat.com> -15.7a-10
+- Fixed a segfault in invlib construction ( bz 786523)
+
+* Mon Mar 05 2012 Neil Horman <nhorman@redhat.com> 15.7a-9
+- Fixed a segfault in the symbol assignment search (bz 799643)
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.7a-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Thu Jun 30 2011 Neil Horman <nhorman@redhat.com> - 15.7a-7
+- Added LEXERR token to catch bad parsing before we crash (bz717545)
+
+* Fri Jun 24 2011 Neil Horman <nhorman@redhat.com> - 15.7a-6
+- Fixed licensing for xcscope.el (bz 715898)
+- Fixed xemacs pkg. dependency (bz 719523)
+
+* Wed Jun 01 2011 Neil Horman <nhorman@redhat.com> - 15.7a-5
+- Fix scriptles macro expansion (bz 708499)
+
+* Thu May 26 2011 Neil Horman <nhorman@redhat.com> - 15.7a-4
+- Added cctree.vim vi plugin
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.7a-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Thu Sep 30 2010 Neil Horman <nhorman@redhat.com - 15.7a-2
+- Ignore SIGPIPE in line mode (bz 638756)
+
+* Mon Mar 1 2010 Neil Horman <nhorman@redhat.com> - 15.7a-1
+- Update to latest upstream release (bz 569043)
+
+* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.6-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Fri Jun 12 2009 Neil Horman <nhorman@redhat.com> - 15.6-4
+- Fix some buffer overflows (bz 505605)
+
+* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 15.6-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Tue Jul 08 2008 Neil Horman <nhorman@redhat.com> -15.6-2.dist
+- Grab upstream patch for -q rebuld (bz 436648)
+
+* Tue Mar 27 2007 Neil Horman <nhorman@redhat.com> -15.6-1.dist
+- Rebase to version 15.6
+
+* Mon Mar 05 2007 Neil Horman <nhorman@redhat.com> -15.5-15.4.dist
+- Make sigwinch handler only register for curses mode (bz 230862)
+
+* Mon Feb 05 2007 Neil Horman <nhorman@redhat.com> -15.5-15.3.dist
+- Fixing dist label in release tag.
+
+* Thu Feb 01 2007 Neil Horman <nhorman@redhat.com> -15.5-15.2.dist
+- Fixing changelog to not have macro in release
+
+* Wed Aug 23 2006 Neil Horman <nhorman@redhat.com> -15.5-15.1
+- fixed overflows per bz 203651
+- start using {dist} tag to make release numbering easier
+
+* Mon Jul 17 2006 Jesse Keating <jkeating@redhat.com> - 15.5-14
+- rebuild
+
+* Fri Jun 23 2006 Neil Horman <nhorman@redhat.com>
+- Fix putstring overflow (bz 189666)
+
+* Fri Jun 23 2006 Neil Horman <nhorman@redhat.com>
+- Fix putstring overflow (bz 189666)
+
+* Fri May 5 2006 Neil Horman <nhorman@redhat.com>
+- Adding fix to put SYSDIR in right location (bz190580)
+
+* Fri Apr 21 2006 Neil Horman <nhorman@redhat.com> - 15.5-13.4
+- adding inverted index overflow patch
+
+* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 15.5-13.2
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 15.5-13.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Fri Dec 16 2005 Jesse Keating <jkeating@redhat.com>
+- rebuild on new gcc
+
+* Tue Nov 30 2004 Neil Horman <nhorman@redhat.com>
+- added tempsec patch to fix bz140764/140765
+
+* Mon Nov 29 2004 Neil Horman <nhorman@redhat.com>
+- updated cscope resize patch to do less work in
+ signal handler and synced version nr. on dist.
+
+* Mon Nov 22 2004 Neil Horman <nhorman@redhat.com>
+- added cscope-1.5.-resize patch to allow terminal
+ resizing while cscope is running
+
+* Tue Oct 5 2004 Neil Horman <nhorman@redhat.com>
+- modified cscope-15.5.-inverted patch to be upstream
+ friendly
+
+* Tue Sep 28 2004 Neil Horman <nhorman@redhat.com>
+- fixed inverted index bug (bz 133942)
+
+* Mon Sep 13 2004 Frank Ch. Eigler <fche@redhat.com>
+- bumped release number to a plain "1"
+
+* Fri Jul 16 2004 Neil Horman <nhorman@redhat.com>
+- Added cscope-indexer helper and xcscope lisp addon
+- Added man page for xcscope
+- Added triggers to add xcscope.el pkg to (x)emacs
+- Thanks to Ville, Michael and Jens for thier help :)
+
+* Fri Jul 2 2004 Neil Horman <nhorman@redhat.com>
+- Added upstream ocs fix
+- Added feature to find symbol assignments
+- Changed default SYSDIR directory to /var/lib/cs
+- Incoproated M. Schwendt's fix for ocs -s
+
+* Fri Jun 18 2004 Neil Horman <nhorman@redhat.com>
+- built the package
diff --git a/dist-1-coverity-fixes.patch b/dist-1-coverity-fixes.patch
new file mode 100644
index 0000000..aac7e0c
--- /dev/null
+++ b/dist-1-coverity-fixes.patch
@@ -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 */
diff --git a/dist-2-cscope-indexer-help.patch b/dist-2-cscope-indexer-help.patch
new file mode 100644
index 0000000..08efb2a
--- /dev/null
+++ b/dist-2-cscope-indexer-help.patch
@@ -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"
+ ;;
diff --git a/dist-3-add-selftests.patch b/dist-3-add-selftests.patch
new file mode 100644
index 0000000..84404a2
--- /dev/null
+++ b/dist-3-add-selftests.patch
@@ -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
+
diff --git a/dist-4-fix-printf.patch b/dist-4-fix-printf.patch
new file mode 100644
index 0000000..e596284
--- /dev/null
+++ b/dist-4-fix-printf.patch
@@ -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
+
diff --git a/sources b/sources
new file mode 100644
index 0000000..c5e183a
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+16f3cce078b6c0e42299def4028eea6f cscope-15.9.tar.gz