From e1ed2229ff733533666477be6db78b54a823bb66 Mon Sep 17 00:00:00 2001 From: Martino Facchin Date: Tue, 3 May 2016 12:16:17 +0200 Subject: [PATCH] CtagsFileSaver: Look for the hashtag as character, not string TestCTagsRunner* use the #line directive generated file as source instead than # $linenumber. Searching fot the '#' as first char make tests passing --- src/arduino.cc/builder/ctags_target_file_saver.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/arduino.cc/builder/ctags_target_file_saver.go b/src/arduino.cc/builder/ctags_target_file_saver.go index a65d3ee4..cecf6695 100644 --- a/src/arduino.cc/builder/ctags_target_file_saver.go +++ b/src/arduino.cc/builder/ctags_target_file_saver.go @@ -79,10 +79,10 @@ func saveLinesContainingDirectivesAndSketch(src string, tofind []string) string if saveLine || startsWithHashtag(line) { minimizedString += line + "\n" } - if containsAny(line, tofind) && isPreprocessorLineMarker(line) { + if containsAny(line, tofind) && isLineMarker(line) { saveLine = true } - if saveLine && !containsAny(line, tofind) && isPreprocessorLineMarker(line) { + if saveLine && !containsAny(line, tofind) && isLineMarker(line) { saveLine = false } } @@ -106,10 +106,10 @@ func startsWithHashtag(src string) bool { return false } -func isPreprocessorLineMarker(src string) bool { +func isLineMarker(src string) bool { trimmedStr := strings.TrimSpace(src) splittedStr := strings.Split(trimmedStr, " ") - if len(splittedStr) > 2 && splittedStr[0] == "#" { + if len(splittedStr) > 2 && splittedStr[0][0] == '#' { _, err := strconv.Atoi(splittedStr[1]) if err == nil { return true