diff --git a/.cscope.metadata b/.cscope.metadata index a1b7ba4..91cffc5 100644 --- a/.cscope.metadata +++ b/.cscope.metadata @@ -1 +1 @@ -19e7c78faad104020c32ce3a4275c84e9a060070 SOURCES/cscope-15.9.tar.gz +e89c6a3458164552d9301ccc213181f463e5210e SOURCES/cscope-15.9.tar.gz diff --git a/SOURCES/cscope-1-modified-from-patch-81-Fix-reading-include-files-in-.patch b/SOURCES/cscope-1-modified-from-patch-81-Fix-reading-include-files-in-.patch new file mode 100644 index 0000000..8acf8fa --- /dev/null +++ b/SOURCES/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 +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 +--- + 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/SOURCES/cscope-2-Cull-extraneous-declaration.patch b/SOURCES/cscope-2-Cull-extraneous-declaration.patch new file mode 100644 index 0000000..ccbeba2 --- /dev/null +++ b/SOURCES/cscope-2-Cull-extraneous-declaration.patch @@ -0,0 +1,26 @@ +From 6a6998ecd0392ea643c4c4b317af9af8270761aa Mon Sep 17 00:00:00 2001 +From: Hans-Bernhard Broeker +Date: Thu, 9 Aug 2018 16:25:31 +0200 +Subject: [PATCH 3/9] Cull extraneous declaration + +Signed-off-by: Vladis Dronov +--- + 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/SOURCES/cscope-3-Avoid-putting-directories-found-during-header-search.patch b/SOURCES/cscope-3-Avoid-putting-directories-found-during-header-search.patch new file mode 100644 index 0000000..500ce15 --- /dev/null +++ b/SOURCES/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 +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 +--- + 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/SOURCES/cscope-4-Avoid-double-free-via-double-fclose-in-changestring.patch b/SOURCES/cscope-4-Avoid-double-free-via-double-fclose-in-changestring.patch new file mode 100644 index 0000000..8e862bf --- /dev/null +++ b/SOURCES/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 +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 +--- + 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/SOURCES/cscope-5-contrib-ocs-Fix-bashims-Closes-480591.patch b/SOURCES/cscope-5-contrib-ocs-Fix-bashims-Closes-480591.patch new file mode 100644 index 0000000..1807974 --- /dev/null +++ b/SOURCES/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 +Date: Sat, 8 May 2010 20:15:35 +0300 +Subject: [PATCH 6/9] contrib/ocs: Fix bashims (Closes: #480591) + +Signed-off-by: Jari Aalto +Signed-off-by: Vladis Dronov +--- + 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/SOURCES/cscope-6-doc-cscope.1-Fix-hyphens.patch b/SOURCES/cscope-6-doc-cscope.1-Fix-hyphens.patch new file mode 100644 index 0000000..290534d --- /dev/null +++ b/SOURCES/cscope-6-doc-cscope.1-Fix-hyphens.patch @@ -0,0 +1,130 @@ +From 3f9e3da40a77274705c9cb9103a6046daa950f5d Mon Sep 17 00:00:00 2001 +From: Jari Aalto +Date: Sat, 8 May 2010 20:16:14 +0300 +Subject: [PATCH 7/9] doc/cscope.1: Fix hyphens + +Signed-off-by: Jari Aalto +Signed-off-by: Vladis Dronov +--- + 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/SOURCES/cscope-7-fscanner-swallow-function-as-parameters.patch b/SOURCES/cscope-7-fscanner-swallow-function-as-parameters.patch new file mode 100644 index 0000000..a089a61 --- /dev/null +++ b/SOURCES/cscope-7-fscanner-swallow-function-as-parameters.patch @@ -0,0 +1,43 @@ +From e1b4cbc93529b07b3217928e8f9b1f43b80f9b06 Mon Sep 17 00:00:00 2001 +From: Jiri Slaby +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 +Cc: Hans-Bernhard Bröker +Cc: Neil Horman +Signed-off-by: Vladis Dronov +--- + 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' */ + } + + { +-{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/SOURCES/cscope-dblfree.patch b/SOURCES/cscope-dblfree.patch deleted file mode 100644 index 666943d..0000000 --- a/SOURCES/cscope-dblfree.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up ./src/command.c.dblfree ./src/command.c ---- ./src/command.c.dblfree 2019-04-11 07:08:24.358253603 -0400 -+++ ./src/command.c 2019-04-11 07:08:43.955193615 -0400 -@@ -785,7 +785,6 @@ changestring(void) - } - } - fprintf(script, "w\nq\n!\n"); /* write and quit */ -- fclose(script); - - /* if any line was marked */ - if (anymarked == YES) { diff --git a/SOURCES/cscope-selftest-repoint.patch b/SOURCES/cscope-selftest-repoint.patch deleted file mode 100644 index 43f76f8..0000000 --- a/SOURCES/cscope-selftest-repoint.patch +++ /dev/null @@ -1,216 +0,0 @@ -diff -up ./tests/check0.sh.repoint ./tests/check0.sh ---- ./tests/check0.sh.repoint 2019-03-12 13:15:47.331320989 -0400 -+++ ./tests/check0.sh 2019-03-12 13:20:52.238304290 -0400 -@@ -5,6 +5,11 @@ SINDEX=0 - STERM=main - STYPE="find C symbol" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -15,7 +20,7 @@ rm -f cscope.out - - #Count the number of instances of the string 'Copyright' - #We expect 178 currently --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check1.sh.repoint ./tests/check1.sh ---- ./tests/check1.sh.repoint 2019-03-12 13:15:47.333320983 -0400 -+++ ./tests/check1.sh 2019-03-12 13:20:52.241304280 -0400 -@@ -5,6 +5,11 @@ SINDEX=1 - STERM=main - STYPE="symbol definition" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -15,7 +20,7 @@ rm -f cscope.out - - #Count the number of instances of the string 'Copyright' - #We expect 178 currently --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check2.sh.repoint ./tests/check2.sh ---- ./tests/check2.sh.repoint 2019-03-12 13:15:47.334320979 -0400 -+++ ./tests/check2.sh 2019-03-12 13:20:52.245304266 -0400 -@@ -5,6 +5,11 @@ SINDEX=2 - STERM=build - STYPE="functions called by" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -13,7 +18,7 @@ cd .. - #Remove any previous databases from testing - rm -f cscope.out - --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check3.sh.repoint ./tests/check3.sh ---- ./tests/check3.sh.repoint 2019-03-12 13:15:47.335320976 -0400 -+++ ./tests/check3.sh 2019-03-12 13:20:52.248304256 -0400 -@@ -5,6 +5,11 @@ SINDEX=3 - STERM=printf - STYPE="functions calling" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -14,7 +19,7 @@ cd .. - rm -f cscope.out - - #We expect 178 currently --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check4.sh.repoint ./tests/check4.sh ---- ./tests/check4.sh.repoint 2019-03-12 13:15:47.336320973 -0400 -+++ ./tests/check4.sh 2019-03-12 13:20:52.252304243 -0400 -@@ -4,6 +4,11 @@ SINDEX=4 - STERM=oldsigquit - STYPE="regular text string" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -12,7 +17,7 @@ cd .. - #Remove any previous databases from testing - rm -f cscope.out - --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check6.sh.repoint ./tests/check6.sh ---- ./tests/check6.sh.repoint 2019-03-12 13:15:47.338320966 -0400 -+++ ./tests/check6.sh 2019-03-12 13:20:52.259304220 -0400 -@@ -5,6 +5,11 @@ SINDEX=6 - STERM=msg.*what - STYPE="egrep string" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -15,7 +20,7 @@ rm -f cscope.out - - #Count the number of instances of the string 'Copyright' - #We expect 178 currently --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check7.sh.repoint ./tests/check7.sh ---- ./tests/check7.sh.repoint 2019-03-12 13:15:47.339320963 -0400 -+++ ./tests/check7.sh 2019-03-12 13:20:52.263304206 -0400 -@@ -5,6 +5,11 @@ SINDEX=7 - STERM=main.c - STYPE="file named" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -15,7 +20,7 @@ rm -f cscope.out - - #Count the number of instances of the string 'Copyright' - #We expect 178 currently --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check8.sh.repoint ./tests/check8.sh ---- ./tests/check8.sh.repoint 2019-03-12 13:15:47.340320959 -0400 -+++ ./tests/check8.sh 2019-03-12 13:20:52.267304193 -0400 -@@ -5,6 +5,11 @@ 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'" - - #Get to the top level directory -@@ -15,7 +20,7 @@ rm -f cscope.out - - #Count the number of instances of the string 'Copyright' - #We expect 178 currently --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then -diff -up ./tests/check9.sh.repoint ./tests/check9.sh ---- ./tests/check9.sh.repoint 2019-03-12 13:15:47.341320956 -0400 -+++ ./tests/check9.sh 2019-03-12 13:20:52.270304183 -0400 -@@ -5,6 +5,11 @@ SINDEX=9 - STERM=reftime - STYPE="assignments to symbol" - -+if [ -z "$CSCOPE_BINARY" ] -+then -+ CSCOPE_BINARY=./src/cscope -+fi -+ - echo "Searching item $SINDEX, '$STYPE'" - - #Get to the top level directory -@@ -15,7 +20,7 @@ rm -f cscope.out - - #Count the number of instances of the string 'Copyright' - #We expect 178 currently --COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) -+COUNT=$($CSCOPE_BINARY -R -L -$SINDEX$STERM | wc -l) - - if [ $COUNT -ne $EXPECT ] - then diff --git a/SOURCES/cscope-version.patch b/SOURCES/cscope-version.patch deleted file mode 100644 index 51c95f5..0000000 --- a/SOURCES/cscope-version.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up ./configure.in.version ./configure.in -diff -up ./src/version.h.version ./src/version.h ---- ./src/version.h.version 2019-06-03 10:06:42.185021824 -0400 -+++ ./src/version.h 2019-06-03 10:06:51.500994292 -0400 -@@ -40,6 +40,6 @@ - #define CSCOPE_VERSION_H - - #define FILEVERSION 15 /* Initial Open Source and Linux Port */ --#define FIXVERSION ".8b" /* feature and bug fix version */ -+#define FIXVERSION ".9" /* feature and bug fix version */ - - #endif /* CSCOPE_VERSION_H */ diff --git a/SOURCES/cscope-coverity-fixes.patch b/SOURCES/dist-1-coverity-fixes.patch similarity index 100% rename from SOURCES/cscope-coverity-fixes.patch rename to SOURCES/dist-1-coverity-fixes.patch diff --git a/SOURCES/cscope-cscope-indexer-help.patch b/SOURCES/dist-2-cscope-indexer-help.patch similarity index 100% rename from SOURCES/cscope-cscope-indexer-help.patch rename to SOURCES/dist-2-cscope-indexer-help.patch diff --git a/SOURCES/cscope-selftest.patch b/SOURCES/dist-3-add-selftests.patch similarity index 72% rename from SOURCES/cscope-selftest.patch rename to SOURCES/dist-3-add-selftests.patch index 78075eb..84404a2 100644 --- a/SOURCES/cscope-selftest.patch +++ b/SOURCES/dist-3-add-selftests.patch @@ -20,24 +20,11 @@ index ae0fc53..d79d44e 100644 EXTRA_DIST = INSTALL.gnu packages -diff --git a/bootstrap.sh b/bootstrap.sh -new file mode 100755 -index 0000000..6a363ed ---- /dev/null -+++ b/bootstrap.sh -@@ -0,0 +1,7 @@ -+#!/bin/sh -+ -+aclocal -+autoheader -+autoconf -+automake --add-missing -+ diff --git a/configure.in b/configure.in index c51887d..e0a8b1f 100644 --- a/configure.in +++ b/configure.in -@@ -425,5 +425,5 @@ case "$host_os" in +@@ -415,5 +415,5 @@ case "$host_os" in ;; esac @@ -56,13 +43,13 @@ index 0000000..2278a71 + +TESTS = check0.sh check1.sh check2.sh \ + check3.sh check4.sh check6.sh \ -+ check7.sh check8.sh check9.sh ++ check7.sh check8.sh check9.sh diff --git a/tests/check0.sh b/tests/check0.sh new file mode 100755 -index 0000000..2487107 +index 0000000..6c6883b --- /dev/null +++ b/tests/check0.sh -@@ -0,0 +1,27 @@ +@@ -0,0 +1,32 @@ +#!/bin/sh + +EXPECT=4 @@ -70,7 +57,12 @@ index 0000000..2487107 +STERM=main +STYPE="find C symbol" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -80,7 +72,7 @@ index 0000000..2487107 + +#Count the number of instances of the string 'Copyright' +#We expect 178 currently -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -92,10 +84,10 @@ index 0000000..2487107 + diff --git a/tests/check1.sh b/tests/check1.sh new file mode 100755 -index 0000000..a80997b +index 0000000..78ffe21 --- /dev/null +++ b/tests/check1.sh -@@ -0,0 +1,27 @@ +@@ -0,0 +1,32 @@ +#!/bin/sh + +EXPECT=3 @@ -103,7 +95,12 @@ index 0000000..a80997b +STERM=main +STYPE="symbol definition" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -113,7 +110,7 @@ index 0000000..a80997b + +#Count the number of instances of the string 'Copyright' +#We expect 178 currently -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -125,10 +122,10 @@ index 0000000..a80997b + diff --git a/tests/check2.sh b/tests/check2.sh new file mode 100755 -index 0000000..efbf2e5 +index 0000000..414430a --- /dev/null +++ b/tests/check2.sh -@@ -0,0 +1,25 @@ +@@ -0,0 +1,30 @@ +#!/bin/sh + +EXPECT=96 @@ -136,7 +133,12 @@ index 0000000..efbf2e5 +STERM=build +STYPE="functions called by" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -144,7 +146,7 @@ index 0000000..efbf2e5 +#Remove any previous databases from testing +rm -f cscope.out + -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -156,18 +158,23 @@ index 0000000..efbf2e5 + diff --git a/tests/check3.sh b/tests/check3.sh new file mode 100755 -index 0000000..5ec8fc0 +index 0000000..a6b2c7e --- /dev/null +++ b/tests/check3.sh -@@ -0,0 +1,26 @@ +@@ -0,0 +1,31 @@ +#!/bin/sh + -+EXPECT=44 ++EXPECT=35 +SINDEX=3 +STERM=printf +STYPE="functions calling" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -176,7 +183,7 @@ index 0000000..5ec8fc0 +rm -f cscope.out + +#We expect 178 currently -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -188,17 +195,22 @@ index 0000000..5ec8fc0 + diff --git a/tests/check4.sh b/tests/check4.sh new file mode 100755 -index 0000000..5a58d59 +index 0000000..dd2c98c --- /dev/null +++ b/tests/check4.sh -@@ -0,0 +1,24 @@ +@@ -0,0 +1,29 @@ +#!/bin/sh +EXPECT=3 +SINDEX=4 +STERM=oldsigquit +STYPE="regular text string" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -206,7 +218,7 @@ index 0000000..5a58d59 +#Remove any previous databases from testing +rm -f cscope.out + -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -218,10 +230,10 @@ index 0000000..5a58d59 + diff --git a/tests/check6.sh b/tests/check6.sh new file mode 100755 -index 0000000..b13b33e +index 0000000..c664960 --- /dev/null +++ b/tests/check6.sh -@@ -0,0 +1,27 @@ +@@ -0,0 +1,32 @@ +#!/bin/sh + +EXPECT=1 @@ -229,7 +241,12 @@ index 0000000..b13b33e +STERM=msg.*what +STYPE="egrep string" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -239,7 +256,7 @@ index 0000000..b13b33e + +#Count the number of instances of the string 'Copyright' +#We expect 178 currently -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -251,10 +268,10 @@ index 0000000..b13b33e + diff --git a/tests/check7.sh b/tests/check7.sh new file mode 100755 -index 0000000..3dc0706 +index 0000000..5ac965c --- /dev/null +++ b/tests/check7.sh -@@ -0,0 +1,27 @@ +@@ -0,0 +1,32 @@ +#!/bin/sh + +EXPECT=1 @@ -262,7 +279,12 @@ index 0000000..3dc0706 +STERM=main.c +STYPE="file named" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -272,7 +294,7 @@ index 0000000..3dc0706 + +#Count the number of instances of the string 'Copyright' +#We expect 178 currently -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -284,18 +306,23 @@ index 0000000..3dc0706 + diff --git a/tests/check8.sh b/tests/check8.sh new file mode 100755 -index 0000000..7bede78 +index 0000000..72cb946 --- /dev/null +++ b/tests/check8.sh -@@ -0,0 +1,27 @@ +@@ -0,0 +1,32 @@ +#!/bin/sh + -+EXPECT=9 ++EXPECT=8 +SINDEX=8 +STERM=unistd.h +STYPE="files including this file" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -305,7 +332,7 @@ index 0000000..7bede78 + +#Count the number of instances of the string 'Copyright' +#We expect 178 currently -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -317,10 +344,10 @@ index 0000000..7bede78 + diff --git a/tests/check9.sh b/tests/check9.sh new file mode 100755 -index 0000000..87f59f3 +index 0000000..a728a32 --- /dev/null +++ b/tests/check9.sh -@@ -0,0 +1,27 @@ +@@ -0,0 +1,32 @@ +#!/bin/sh + +EXPECT=2 @@ -328,7 +355,12 @@ index 0000000..87f59f3 +STERM=reftime +STYPE="assignments to symbol" + -+echo "Searching item $SINDEX, '$STYPE'" ++if [ -z "$CSCOPE_BINARY" ] ++then ++ CSCOPE_BINARY=./src/cscope ++fi ++ ++echo "Searching item $SINDEX, '$STYPE', '$STERM'" + +#Get to the top level directory +cd .. @@ -338,7 +370,7 @@ index 0000000..87f59f3 + +#Count the number of instances of the string 'Copyright' +#We expect 178 currently -+COUNT=$(./src/cscope -R -L -$SINDEX$STERM | wc -l) ++COUNT=$($CSCOPE_BINARY -R -L -k -$SINDEX$STERM | wc -l) + +if [ $COUNT -ne $EXPECT ] +then @@ -348,3 +380,6 @@ index 0000000..87f59f3 + +exit 0 + +-- +2.35.1 + diff --git a/SOURCES/dist-4-fix-printf.patch b/SOURCES/dist-4-fix-printf.patch new file mode 100644 index 0000000..e596284 --- /dev/null +++ b/SOURCES/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/SPECS/cscope.spec b/SPECS/cscope.spec index 817942d..50c03c1 100644 --- a/SPECS/cscope.spec +++ b/SPECS/cscope.spec @@ -1,28 +1,39 @@ Summary: C source code tree search and browse tool Name: cscope Version: 15.9 -Release: 9%{?dist} -Source0: https://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}-%{version}.tar.gz +Release: 11%{?dist} +Source0: https://downloads.sourceforge.net/project/%{name}/%{name}/v%{version}/%{name}-%{version}.tar.gz URL: http://cscope.sourceforge.net License: BSD and GPLv2+ -Group: Development/Tools -BuildRequires: gcc pkgconf-pkg-config ncurses-devel flex bison m4 -BuildRequires: autoconf automake -Requires: emacs-filesystem coreutils -Requires: ed -%if !0%{?rhel} +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 -Patch0: cscope-coverity-fixes.patch -Patch1: cscope-selftest.patch -Patch2: cscope-selftest-repoint.patch -Patch3: cscope-version.patch -Patch4: cscope-cscope-indexer-help.patch -Patch5: cscope-dblfree.patch +# 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 +# this patch is not needed - RHEL8 has emacs-26.1 +# Patch8: cscope-8-emacs-plugin-fixup-GNU-Emacs-27.1-removes-function-p.patch +# distrubution patches which were not upstreamed +Patch9: dist-1-coverity-fixes.patch +Patch10: dist-2-cscope-indexer-help.patch +Patch11: dist-3-add-selftests.patch +Patch12: 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 @@ -43,7 +54,6 @@ autoconf automake --add-missing %configure make -make check %install rm -rf $RPM_BUILD_ROOT %{name}-%{version}.files @@ -60,8 +70,10 @@ for dir in %{xemacs_lisp_path} %{emacs_lisp_path} ; do echo "%ghost $dir/xcscope.el*" >> %{name}-%{version}.files done +%check +make check + %files -f %{name}-%{version}.files -%defattr(-,root,root,-) %{_bindir}/* %dir %{cscope_share_path} %{cscope_share_path}/ @@ -69,7 +81,7 @@ done %dir /var/lib/cs %doc AUTHORS COPYING ChangeLog README TODO contrib/cctree.txt -%if !0%{?rhel} +%if !0%{?rhel} && 0%{?fedora} < 36 %triggerin -- xemacs ln -sf %{cscope_share_path}/xcscope.el %{xemacs_lisp_path}/xcscope.el %endif @@ -80,7 +92,7 @@ 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} +%if !0%{?rhel} && 0%{?fedora} < 36 %triggerun -- xemacs [ $2 -gt 0 ] && exit 0 rm -f %{xemacs_lisp_path}/xcscope.el @@ -95,6 +107,12 @@ rm -f %{emacs_lisp_path}/xcscope.el rm -f %{vim_plugin_path}/cctree.vim %changelog +* Fri Apr 22 2022 Vladis Dronov - 15.9-11 +- Add another small distrubution patch (bz 2074437) + +* Mon Apr 11 2022 Vladis Dronov - 15.9-10 +- Add missing upstream patches (bz 2074437) + * Wed Oct 21 2020 Vladis Dronov - 15.9-9 - Remove another fclose() to please covscan (bz1886165) @@ -148,8 +166,7 @@ rm -f %{vim_plugin_path}/cctree.vim * Wed Aug 05 2015 Neil Horman - 15.8b-1 - Update to latest upstream -* Wed Jun 17 2015 Fedora Release Engineering - -* 15.8-12 +* Wed Jun 17 2015 Fedora Release Engineering - 15.8-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Tue Sep 30 2014 Neil Horman - 15.8-11