tree c48f729be5f57e006bf155e8bfa6d05d91014f1f
parent 7728961e18f6982515950e7bd41c7a13a362af8d
author Thorsten Schöning <tschoening@am-soft.de> 1544767333 +0100
committer Thorsten Schöning <tschoening@am-soft.de> 1544767333 +0100

LOGCXX-502: I prefer tabs over spaces and somewhat strict indentation and the former settings lead to alignment without honoring the indentation settings. So if line 1 was not properly indented, all lines below weren't as well.

    if (StringHelper::equalsIgnoreCase(option,
                                       LOG4CXX_STR("MININDEX"),
                                       LOG4CXX_STR("minindex")))

vs.

	if (StringHelper::equalsIgnoreCase(option,
			LOG4CXX_STR("MININDEX"),
			LOG4CXX_STR("minindex")))

vs.

    if (StringHelper::equalsIgnoreCase( option,
                                        LOG4CXX_STR("MININDEX"),
                                        LOG4CXX_STR("minindex")))

The latter is what I prefer, but can't seem to be configured at all and especially not using tabs.
