# Copyright (C) The c-ares project and its contributors
# SPDX-License-Identifier: MIT
sonar.projectKey=c-ares_c-ares
sonar.organization=c-ares

# This is the name and version displayed in the SonarCloud UI.
sonar.projectName=c-ares
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
sonar.sources=src/lib, src/tools
sonar.tests=test/
sonar.exclusions=test/

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8


sonar.issue.ignore.multicriteria=m1,m2,m3
# c:S5955 Loop variables should be declared in the minimal possible scope
# Not possible in C89
sonar.issue.ignore.multicriteria.m1.ruleKey=c:S5955
sonar.issue.ignore.multicriteria.m1.resourceKey=**/*

# c:S924 Reduce the number of nested "goto" statements from 2 to 1 authorized.
# This is a common practice in error handling, don't understand this recommendation.
sonar.issue.ignore.multicriteria.m2.ruleKey=c:S924
sonar.issue.ignore.multicriteria.m2.resourceKey=**/*

# php:S105 Tabulation characters should not be used
# Required for MSVC Makefiles
sonar.issue.ignore.multicriteria.m3.ruleKey=php:S105
sonar.issue.ignore.multicriteria.m3.resourceKey=**/Makefile.inc
