[Github-comments] [geany/geany] Sync ctags main part (#1263)

Colomban Wendling notifications at xxxxx
Sun Dec 9 09:14:31 UTC 2018


b4n requested changes on this pull request.

OK, here's my latest with the help of GCC.
See also https://github.com/techee/geany/pull/1 which contains some small stuff that I think are relevant, but please review them, don't take them as gospel.

Apart from that, I think the next thing is merging an see how it goes, as as far as I can tell it works very well.

>  	pushNarrowedInputStream (language,
 				 startLine, startCharOffset,
 				 endLine, endCharOffset,
 				 sourceLineOffset);
 #ifndef CTAGS_LIB
 	tagFileResized = createTagsWithFallback1 (language);
+#else
+	/* Simple parsing without rescans - not used by any sub-parsers anyway */

I don't really care right now because as you pointed out there's no use case yet, but you mentioning in the commit message that "the C and Fortran parsers" being the only parsers using retry mode and that they do not support sub-parsers makes the retry case irrelevant is not correct: nothing prevents a parser from calling the C or Fortran parsers as sub-parsers. IIUC, the upstream Flex or so parser actually does this.

But as said, don't worry too much about that right now; we can fix this stuff when we actually have use for it.

>  		else if (c == SINGLE_QUOTE)
 			break;
 		else if (c == NEWLINE)
 		{
-			ungetcToInputFile (c);
-			break;
-		}
-		else if (count == 1  &&  strchr ("DHOB", toupper (c)) != NULL)
-			veraBase = c;
-		else if (veraBase != '\0'  &&  ! isalnum (c))
-		{

I can't find these lines being suppressed upstream, so I assume it's a local change.  However, you should then remove the variable declaration for `veraBase` as well.

>  	vString *const parent, int is_class_parent, const char *arglist)
 {
 	tagEntryInfo tag;
+	int corkIndex;
+	int fqCorkIndex = CORK_NIL;
+	const struct corkInfo nilInfo = {CORK_NIL};

unused variables `fqCorkIndex` and `nilInfo`, any reason to have them?

>  	vString *const parent, int is_class_parent, const char *arglist)
 {
 	tagEntryInfo tag;
+	int corkIndex;
+	int fqCorkIndex = CORK_NIL;
+	const struct corkInfo nilInfo = {CORK_NIL};

I see they were upstream in the old Python parser, but they were used at the time.

>  
 	if (vStringLength (name) > 0)
 	{
+		tagEntryInfo *parent = getEntryOfNestingLevel (nl);

This variable is unused, but upstream (*rst.c*) uses it to mess with the scope (which seems stupid, but well).  Unused variables have that issue that people have a tendency to remove them… which generally seems legitimate.
BTW, if we remove this, then `nl` gets unused, but we still gotta call `getNestingLevel()` because it does the `nestingLevelsPop()` stuff needed.
What do you think?

>  
 	if (vStringLength (name) > 0)
 	{
+		tagEntryInfo *parent = getEntryOfNestingLevel (nl);

same here than in *rest.c*, `parent` is unused, same question applies.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/1263#pullrequestreview-179157159
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20181209/731c05d5/attachment.html>


More information about the Github-comments mailing list